Kā izveidot digitālo radio ar DSP
Digitālais radio kļūst arvien populārāks, pateicoties tā spējai nodrošināt labāku skaņas kvalitāti, efektīvāku frekvenču spektra izmantošanu un papildu funkcijām, piemēram, dziesmu informācijas metadatiem. Viens no galvenajiem digitālā radio izstrādes komponentiem ir digitālā signāla procesora (DSP) izmantošana. Šajā rakstā tiks aplūkoti soļi, kas nepieciešami digitālā radio izstrādei, izmantojot DSP.
Pendahuluan
DSP jeb digitālais signālu procesors ir mikroprocesors, kas īpaši paredzēts digitālo signālu apstrādei reāllaikā. Digitālā radio kontekstā DSP pārveido analogos signālus digitālos signālos, apstrādā šos signālus un visbeidzot pārveido digitālos signālus atpakaļ dzirdamos analogos signālos.
Lai izveidotu digitālo radio, ir nepieciešamas vairākas galvenās sastāvdaļas, proti:
1. Antena: Radiosignālu uztveršanai.
2. Radio uztvērējs: Lai izvēlētos vēlamo radio frekvenci.
3. DSP: digitālai signāla apstrādei.
4. DAC (digitāli-analogi pārveidotājs): digitālo signālu pārveidošanai atpakaļ analogos signālos.
5. Skaļrunis vai austiņas: Skaņas izvadei.
Pirmais solis: komponentu izvēle
1. Antena
Izmantotajai antenai jābūt piemērotai frekvencei, kuru vēlaties uztvert. FM radio uztveršanai parasti tiek izmantota teleskopiskā antena vai vienkārša monopola antena.
2. Skaņotājs
Skaņotājs var būt lietošanai gatavs modulis vai komponents, piemēram, Si4703 vai TEA5767 mikroshēma. Šiem moduļiem parasti ir I2C vai SPI saskarne, kas atvieglo frekvences kontroli, izmantojot mikrokontrolleri.
3. DSP
DSP izvēle ir vissvarīgākā daļa. Daži izplatīti DSP, ko izmanto radio lietojumprogrammās, ir šādi:
– Texas Instruments (TI) TMS320 sērija
– Analogās ierīces (ADI) SHARC sērija
– STM32 sērija ar DSP perifērijas ierīcēm
4. DAC
Lai pārveidotu digitālo signālu atpakaļ analogā signālā, var izmantot DAC, piemēram, PCM5102 vai ES9018, kas ir DAC ar labu audio kvalitāti.
5. Skaļrunis
Lai radītu skaidrāku un skaļāku skaņu, varat izmantot aktīvos skaļruņus vai nelielu pastiprinātāja moduli, piemēram, PAM8403.
Ierīces dizains
Bloķēšanas shēma
1. Antena -> 2. Uztvērējs -> 3. DSP -> 4. DAC -> 5. Skaļrunis
Šīs sistēmas galvenā apstrāde notiek DSP, kur signālu uztver antena un atlasa uztvērējs, pēc tam tas nonāk DSP digitālajai apstrādei un visbeidzot DAC to pārveido analogā signālā un izvada caur skaļruni.
Ķēdes shēma
1. Antena
– Vienkārša antenas diagramma, kas pievienota uztvērēja ieejai.
2. Skaņotāja modulis
– Saskarnes shēma starp skaņotāju un frekvences kontrolei izmantoto mikrokontrolleri.
3. DSP
– DSP elektroinstalācijas shēma, kas savienota ar skaņotāju ieejas signālu saņemšanai un arī ar mikrokontrolleri programmas augšupielādei.
4. DAC
– Digitālā signāla pārveidošanas shēma no DSP uz analogo signālu, kas pievienots skaļrunim.
5. Skaļrunis
– Vienkārša skaļruņa pievienošanas shēma pastiprinātājam, ja nepieciešams.
Programmatūras ieviešana
Kad aparatūra ir pabeigta, nākamais solis ir izstrādāt programmaparatūru, kas darbosies mikrokontrollerā un DSP.
Skaņotāja vadība
Vispirms pārliecinieties, vai jūsu mikrokontrolleris var sazināties ar skaņotāju. Moduļiem, kas izmanto I2C vai SPI komunikāciju, jums būs jāintegrē I2C/SPI bibliotēka savā mikrokontrollerā.
Koda piemērs TEA5767 uztvērēja moduļa vadīšanai ar Arduino:
“Cpp
ietvert
anulēt iestatīšanu () {
Wire.begin(); // I2C inicializācija
Serial.begin (9600);
setFrequency(101.1); // Iestatīt frekvenci uz 101.1MHz
}
void loop () {
// nav nepieciešams
}
void setFrequency(float frekvence) {
uint16_t frekvenceB = 4 (frekvence 1000000 + 225000) / 32768;
baitu buferis[5];
buferis[0] = frekvenceB >> 8;
buferis[1] = frekvenceB un 0XFF;
buferis[2] = 0xB0;
buferis[3] = 0x10;
buferis[4] = 0x00;
Vads.sāktPārraidi(0x60);
Wire.write(buferis, 5);
Vads.endTransmission();
}
“
Signālu apstrāde ar DSP
DSP programmēšana var būt sarežģītāka atkarībā no DSP veida un iespējām. Piemēram, izmantojot Texas Instruments DSP, koda izstrādei un augšupielādei DSP, visticamāk, izmantosiet Code Composer Studio (CCS).
Pseidokoda piemērs DSP, kas demodulē FM signālu:
“Cpp
void main() {
initDSP(); // Inicializēt DSP
kamēr (1) {
// Nolasīt signālu no uztvērēja
signālsAnalogs = lasītAnalogoIevadi();
// Digitālā signāla apstrāde
signālsDigitāls = analogToDigitāls(signālsAnalogs);
demodulētsSignāls = FM_Demodulēt(DigitālaisSignāls);
// Pārveidot atpakaļ uz analogo signālu
outputSignal = digitalToAnalog(demodulētsSignāls);
// Nosūtīt uz DAC
sendToDAC(izejasSignāls);
}
}
“
DAC iestatīšana
Pēc apstrādes pabeigšanas DSP digitālais signāls ir jāpārveido atpakaļ analogā signālā, izmantojot DAC. Šī iestatīšana parasti tiek veikta, izmantojot I2C vai SPI. Pārliecinieties, vai izmantotais DAC ir saderīgs ar DSP digitālā signāla izeju.
Vienkāršs koda piemērs PCM5102 DAC vadīšanai ar Raspberry Pi:
"" Python
importēt smbus
kopne = smbus.SMBus(1)
adrese = 0x4C
def set_volume(apjoms):
bus.write_byte_data(adrese, 0x00, apjoms)
Iestatiet skaļumu noteiktā līmenī, piemēram, 0x7F
kopa_apjoms(127)
“
Testēšana un atkļūdošana
Kad visa ķēde ir pievienota un programmaparatūra ir augšupielādēta, nākamais solis ir testēšana, lai pārliecinātos, ka visas sastāvdaļas darbojas pareizi.
Testēšanas padomi
1. Veikt pakāpenisku testēšanu: pirms katra komponenta apvienošanas pārbaudīt to atsevišķi.
2. Izmantojiet osciloskopu: Lai novērotu signāla viļņu formu dažādos ķēdes punktos.
3. Pakāpeniska atkļūdošana: Ja rodas problēma, pirms nonākšanas DSP, izolējiet problēmu no HF komponentes.
4. Pievērsiet uzmanību traucējumiem: antenas novietojums un ekranēšana var ietekmēt signāla kvalitāti.
Visbeidzot, ja visas sastāvdaļas darbojas pareizi, jūs varat klausīties digitālo radio ar skaidru skaņas kvalitāti no jūsu izveidotās sistēmas.
Secinājums
Digitālā radio izveidei ar DSP ir nepieciešama pamatīga izpratne par digitālā signāla aparatūru un programmēšanu. Rūpīgi plānojot un pareizi izvēloties komponentus, jūs varat izveidot augstas kvalitātes digitālo radio. DSP nodrošina signāla apstrādes elastību un iespējo vairākas papildu funkcijas, kas nav iespējamas ar tradicionālajām analogajām metodēm. Izklaidējieties, veidojot savu digitālo radio, un izbaudiet sava darba augļus!