[ad_1]
Avevo bisogno di inventare un dispositivo di comunicazione per trasmettere una manciata di byte, ogni ora, da un piccolo sistema solare off-grid al mio negozio a circa 150 piedi di distanza. Il primo pensiero è stato il Wi-Fi, ma ho già molte decine di dispositivi collegati al mio Wi-Fi e mantenerli tutti funzionanti è come far girare i piatti (per chi ha meno di 50 anni guarda questo video). Volevo una soluzione diversa e ho pensato di utilizzare trasduttori a ultrasuoni configurati in un framework di tipo radio definito dal software (SDR) come ricetrasmettitore. Mentre lavoravo al design mi sono reso conto che sarebbe stato molto utile per chiunque volesse esplorare o insegnare lo strato fisico (PHY) dell’SDR. (Lo strato PHY del firmware prende il segnale ricevuto e lo demodula, lo suddivide, lo controlla e invia il pacchetto di dati per un’ulteriore elaborazione sullo strato successivo del modello OSI. All’estremità di trasmissione, crea un segnale modulato basato sui dati da inviare, sulla velocità di trasmissione e sullo schema di modulazione selezionato, quindi invia il segnale modulato a un trasmettitore.)
Stupisci il mondo dell’ingegneria con il tuo design unico: Guida per la presentazione di idee di progettazione
Perché usare gli ultrasuoni
Come vedrai, utilizzando gli ultrasuoni per inviare e ricevere i dati, eliminiamo la necessità di costose apparecchiature RF come oscilloscopi ad alta velocità, analizzatori di spettro, analizzatori di rete vettoriale, per non parlare del costo di un ricetrasmettitore SDR. Tutti i segnali in questo sistema possono essere visualizzati utilizzando un oscilloscopio economico: per visualizzare tutti i segnali funzionerà un oscilloscopio di base con larghezza di banda di 10 MHz. Il sistema a ultrasuoni elimina inoltre la necessità di eseguire qualsiasi programmazione FPGA, che può essere problematica per alcuni ingegneri di firmware embedded. Insieme a questi vantaggi eliminiamo anche i fastidiosi problemi dei sistemi RF (mi scuso con gli ingegneri RF) come parassiti, instradamento complicato della scheda, abbinamento dell’antenna, per non parlare del lavoro con i parametri S e le carte Smith.
Sviluppo firmware SDR
L’ultimo motivo per esplorare un SDR su questo sistema a ultrasuoni è che il firmware sviluppato è quasi esattamente lo stesso del firmware su un ricetrasmettitore RF SDR ad alta frequenza. Pertanto, qualsiasi conoscenza acquisita si tradurrà in questi sistemi DSP più ampi. Per alcuni anni ho scritto firmware per un sistema SDR che trasmetteva e riceveva nella banda ISM a 900 MHz. Il sistema è stato progettato per ricevere 64 canali a 100k baud simultaneamente, trasmettendo anche 16 canali a 100k baud. Sebbene funzioni su un sistema con 3 processori ARM e 160 GFLOP di DSP, il codice del livello PHY è molto simile al codice utilizzato in questo sistema a ultrasuoni. Se riesci a sviluppare firmware su questo sistema a ultrasuoni, puoi sviluppare firmware SDR su sistemi RF più grandi.
Sistemi DSP
Come forse saprai, l’SDR è una delle aree calde dell’ingegneria elettrica. Attualmente viene progettato e utilizzato nei radar, nelle comunicazioni militari, nei servizi di telefonia cellulare, nei satelliti e persino nei sistemi di infotainment per auto. Da un punto di vista di alto livello, elimina gran parte della progettazione RF a favore della ricezione digitalizzata tramite conversione da analogico a digitale, elaborazione del segnale digitale e conversione da digitale ad analogico il più vicino possibile all’antenna trasmittente. Esistono diverse architetture SDR che variano nella quantità di RF sostituita dall’elaborazione digitale. Alcune di queste architetture sono supereterodina, conversione diretta e campionamento diretto. Il Santo Graal dell’SDR è il campionamento diretto, come mostrato in Figura 1.
Figura 1 Architettura di campionamento diretto per un SDR in cui la RF viene digitalizzata molto presto nella catena di ricezione e nessuna conversione nella catena di trasmissione, richiedendo che ADC e DAC abbiano frequenze di campionamento molto elevate.
L’essenza di ciò è che la RF ricevuta viene quasi immediatamente digitalizzata all’ingresso: senza missaggio LO, senza conversione. Inoltre, il lato di trasmissione non esegue alcuna conversione di frequenza. Dico che questo è il Santo Graal perché, nella RF ad alta frequenza, questo è molto difficile da fare a causa delle velocità coinvolte nei convertitori analogico-digitale (ADC) e nei convertitori digitale-analogico (DAC), e quindi il velocità dati che deve essere elaborata nell’FPGA e/o nel processore collegato.
Ma il campionamento diretto è fattibile quando si ha a che fare con segnali ultrasonici, infatti lo faremo utilizzando un Arduino Nano da 16 MHz e senza FPGA.
Il sistema SDU-X
figura 2 mostra la progettazione generale di un sistema che chiamo ricetrasmettitore ultrasonico progettato tramite software o SDU-X. La figura mostra un numero minimo di parti: una coppia di trasduttori a ultrasuoni, un amplificatore ricevitore/filtro passa banda, un Arduino Nano, un DAC e un amplificatore di trasmissione. Non vengono mostrati alcuni elementi come alimentatori e alcuni LED.
figura 2 Il design SDU-X con un numero minimo di parti esclusi alimentatori e LED.
Per facilitare la ricezione del segnale, è disponibile una parabola stampabile in 3D per il trasduttore del ricevitore. Questa parabola è montata su una torre stampabile in 3D che contiene il trasduttore del trasmettitore e dispone di una serie di fori di mira per puntare la parabola. L’antenna offre un miglioramento della ricezione di circa 9 dB.
Il codice attuale consente la selezione di diversi tipi di modulazione. Alcuni sono completamente implementati per l’invio e la ricezione. Alcuni sono implementati solo come trasmettitori e il ricevitore per quel tipo di modulazione è qualcosa che l’utente può sperimentare creando. È inteso come qualcosa come un esercizio per gli studenti.
Un sistema SDU-X, come visto in Figura 3, è costituito da due assembly: uno è chiamato Richiedente e l’altro Risponditore. L’hardware (PCBA) è lo stesso per entrambi, ma hanno compilazioni diverse del firmware. Durante l’esecuzione, il Richiedente invierà una trasmissione chiedendo dati al Risponditore o un’azione da eseguire da parte del Risponditore. Nel firmware attuale, i dati richiesti possono essere qualcosa come le misurazioni SNR dei risponditori o un valore dall’ingresso analogico integrato o dallo stato I/O digitale. Questi dati vengono ritrasmessi al Richiedente che può quindi stamparli su una porta seriale (disponibile nell’IDE di Arduino). Le azioni richieste possono, ad esempio, includere il fatto che il risponditore lampeggi i suoi LED o imposti alcuni I/O digitali su alto o basso.
Figura 3 Architettura del sistema SDU-X con un gruppo richiedente e risponditore collegato a due antenne paraboliche stampabili in 3D per il trasduttore del ricevitore.
Lo schema dell’SDU-X
Diamo un’occhiata allo schema in Figura 4.
Figura 4 Schema del sistema SDU-X con il trasduttore del ricevitore (in alto a sinistra) e il trasduttore del trasmettitore (in alto a destra).
Sul lato in alto a sinistra vediamo il trasduttore del ricevitore collegato a un amplificatore operazionale (U1A) che funge da filtro passa banda con un guadagno regolabile fino a 100 (40 dB). In genere, questo guadagno è impostato al massimo, a meno che le unità non siano distanti pochi metri l’una dall’altra. Le frequenze di attenuazione di -3 dB sono a circa 7 kHz e 90 kHz. Anche il trasduttore stesso è un buon filtro centrato a 40 kHz. Dai miei test la banda acustica di 40 kHz sembra essere piuttosto silenziosa, quindi il filtraggio dell’ingresso non è molto critico.
Dopo il primo stadio c’è un amplificatore operazionale (U1B) configurato come filtro passa banda Sallen-Key con un guadagno di circa 10 (20 dB). Se combinato con il primo stadio, l’amplificatore del ricevitore fornisce un guadagno totale di 1000 (60 dB). Le frequenze di attenuazione di -3 dB dei due stadi combinati sono a 38 kHz e 42 kHz, ripulendo ulteriormente il segnale. L’uscita da 0 a +5 V di questo amplificatore viene quindi collegata a un pin di ingresso analogico di Arduino Nano che è collegato internamente all’ADC a 10 bit del Nano.
Spostandoci in alto a destra dello schema, possiamo vedere una coppia di amplificatori operazionali. Quello superiore (IC U6A) è configurato come un amplificatore non invertente con una risposta passa-alto attenuata di -3 dB a circa 1,5 kHz. Il circuito dell’amplificatore operazionale inferiore (IC U6B) è configurato come un amplificatore invertente con circa la stessa risposta passa alto. Quando le uscite di questi circuiti sono collegate al trasduttore del trasmettitore, agiscono come un driver differenziale, consentendo al trasduttore di vedere un segnale di circa +/-12 V. Il filtraggio dell’uscita passa-basso si basa sulle caratteristiche del filtro del trasduttore di trasmissione, che funziona molto bene La risposta del trasduttore diminuisce di -3 dB a circa +/- 1 kHz. Si noti che i due resistori (R37 e R38) sull’uscita degli amplificatori operazionali servono a favorire la stabilità, se necessario, nel pilotare il trasduttore altamente capacitivo. L’ingresso a questi due amplificatori operazionali proviene da un DAC a 8 bit (IC U3) pilotato direttamente dal Nano. Si noti che i due amplificatori operazionali doppi sono TL082, selezionati principalmente per la velocità di risposta.
Questo è essenzialmente l’hardware completo dei sistemi di campionamento diretto.
Alcune altre parti completano lo schema. L’alimentatore genera 3 tensioni; +8 V CC per alimentare il Nano, +5 V CC per alimentare gli amplificatori operazionali e i LED del ricevitore e +15 V CC per alimentare gli amplificatori operazionali dei circuiti di trasmissione. Sulla scheda sono presenti anche un paio di LED bicolore rosso/verde, insieme ad alcuni LED verdi per gli indicatori di alimentazione. La potenza in uscita è compresa tra 10 e 13 V CC a 100 mA minimo. Un semplice adattatore AC funziona bene.
Sono disponibili I/O digitali e ingressi analogici di riserva e una piccola area prototipale per la sperimentazione e nuove funzionalità. Inoltre, sul PCB sono presenti diversi punti di test strategici per monitorare l’ingresso e l’uscita analogica, nonché per l’uso nel monitoraggio dei flussi di dati interni come campioni ricevuti, forma di correlazione, tempi di sincronizzazione di segnalazione, ecc. Alcuni punti di test sono opportunamente distanziati e dimensionati per consentire l’uso con una molla di messa a terra della sonda dell’oscilloscopio per un comodo sondaggio a mani libere.
Esplorando la radio definita dal software (senza il fastidioso RF) – Parte 2
Nella prossima puntata esamineremo il firmware dell’SDU-X. Nel frattempo, il PCB, lo schema, i file 3D per le torri paraboliche, le note di progettazione e il firmware possono essere trovati su: https://www.thingiverse .com/thing:6268613
Damian Bonicatto è un ingegnere consulente con decenni di esperienza nella progettazione di hardware, firmware e sistemi embedded. Detiene oltre 30 brevetti.
Phoenix Bonicatto è una scrittrice freelance.
Contenuto relativo
- Il semplice riferimento disciplinato GPS a 10 MHz utilizza doppi PWM
- Stazione di calibrazione del sensore di corrente split-core ad effetto Hall
- Adattatore da sonda per oscilloscopio stampabile in 3D a cavo
- Sintonizzazione di frequenze ultra-ampia nelle radio definite dal software
- Nozioni di base sulla radio definita dal software, parte 1
Il post Esplorando la radio definita dal software (senza il fastidioso RF) – Parte 1 è apparso per la prima volta su EDN.
[ad_2]
Source link