Implementing A Modern Software Defined Radio Using RFSoC-FPGA
Laurila, Santeri (2025)
Laurila, Santeri
2025
Sähkötekniikan DI-ohjelma - Master's Programme in Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
Hyväksymispäivämäärä
2025-02-17
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202502062034
https://urn.fi/URN:NBN:fi:tuni-202502062034
Tiivistelmä
Elektroniikan kehittyessä, erilaisten laitteiden integraatioasteen kasvaminen on ollut melkeinpä luonnonlaki. Esimerkiksi tietokoneet olivat ennen kokonaisen huoneen kokoisia mutta nykyään ne mahtuvat housuntaskuihin. Samaan aikaan, vanhanmallinen tietokone pystyi suorittamaan ehkä vain tietyntyyppisiä laskutoimenpiteitä, kun taas nykyaikainen älypuhelin pystyy hyvin monenlaisiin asioihin. Tämä sama järjestelmätason periaate on läsnä myös ohjelmistoradioissa, jossa nykyaikaiset RFSoC-piirit pakkaavat paljon toiminnallisuutta hyvin pieneen tilaan, RF-komponentit ja järjestelmäpiiri ovat kaikki pakattuna yhdelle piisirulle ja piirikortille.
Ohjelmistoradiot ovat yleistyneet entistä kehittyneempien langattomien kommunikaatiomenetelmien myötä. Tästä syystä myös vaatimukset tällaiselle järjestelmille ovat kasvaneet. Samalla ohjelmistoradioiden joustavuus on mahdollistanut uusien ja kompleksisempien tietoliikennestandardien kehittämisen. Tätä voidaan ajatella molemminpuolisena kehityssyklinä. Nykyaikaiselle ohjelmistoradiolle on paljon vaatimuksia. Laskentatehoa vaaditaan paljon ja lopputuotteesta halutaan energiatehokas, ja tämän kaiken tulee toteutua mahdollisimman edullisesti, ajatellen tuotekehitysresursseja ja tuotteen energiankulutusta.
Ohjelmistoradioiden toteutukset vaihtelevat aina vahvasti ohjelmistopohjaisista arkkitehtuureista enemmän laitteistoon pohjautuviin versioihin. Ääripäissä ohjelmistoihin perustuvat toteutukset eivät ole riittävän energiatehokkaita ja pelkkiin laitteistoratkaisuihin perustuvien radioiden hinnat nousevat helposti hyvin korkeiksi. Niin sanottuja keskitien ratkaisuja edustavat sovulluskohtaiset arkkitehtuurit ja uudelleenohjelmoitavat laitteistot, eli FPGA-toteutukset. Nämä erilaiset tavat implementoida ohjelmistoradio vaihtelevat, riippuen tarpeesta ja tilanteesta.
Tässä diplomityössä toteutetaan ohjelmistoradio nykyaikaiselle ZCU216 RFSoC-FPGA-kehitysalustalle. RFSoC-FPGA-piirin soveltuvuutta tietoliikennekäyttöön selvitetään aiemmin jo yrityksessä suunnitellun ohjelmistoradion toteutusalustana. Työn pääpainona on ohjelmistorajapintojen toteutus, ja testiohjelmiston rakentaminen ja toteuttaminen. Tähän liittyy paljon laiteläheistä toteutusta, kuten sulautetun Linux -imagen luominen, ajurikehitys ja korkeamman tason testiapplikaation kehitys.
Ohjelmistoradiot ovat yleistyneet entistä kehittyneempien langattomien kommunikaatiomenetelmien myötä. Tästä syystä myös vaatimukset tällaiselle järjestelmille ovat kasvaneet. Samalla ohjelmistoradioiden joustavuus on mahdollistanut uusien ja kompleksisempien tietoliikennestandardien kehittämisen. Tätä voidaan ajatella molemminpuolisena kehityssyklinä. Nykyaikaiselle ohjelmistoradiolle on paljon vaatimuksia. Laskentatehoa vaaditaan paljon ja lopputuotteesta halutaan energiatehokas, ja tämän kaiken tulee toteutua mahdollisimman edullisesti, ajatellen tuotekehitysresursseja ja tuotteen energiankulutusta.
Ohjelmistoradioiden toteutukset vaihtelevat aina vahvasti ohjelmistopohjaisista arkkitehtuureista enemmän laitteistoon pohjautuviin versioihin. Ääripäissä ohjelmistoihin perustuvat toteutukset eivät ole riittävän energiatehokkaita ja pelkkiin laitteistoratkaisuihin perustuvien radioiden hinnat nousevat helposti hyvin korkeiksi. Niin sanottuja keskitien ratkaisuja edustavat sovulluskohtaiset arkkitehtuurit ja uudelleenohjelmoitavat laitteistot, eli FPGA-toteutukset. Nämä erilaiset tavat implementoida ohjelmistoradio vaihtelevat, riippuen tarpeesta ja tilanteesta.
Tässä diplomityössä toteutetaan ohjelmistoradio nykyaikaiselle ZCU216 RFSoC-FPGA-kehitysalustalle. RFSoC-FPGA-piirin soveltuvuutta tietoliikennekäyttöön selvitetään aiemmin jo yrityksessä suunnitellun ohjelmistoradion toteutusalustana. Työn pääpainona on ohjelmistorajapintojen toteutus, ja testiohjelmiston rakentaminen ja toteuttaminen. Tähän liittyy paljon laiteläheistä toteutusta, kuten sulautetun Linux -imagen luominen, ajurikehitys ja korkeamman tason testiapplikaation kehitys.
