- Sur la base d’une précédente expérience de radar FMCW fait maison, il s’agit d’un projet de réalisation d’un radar à compression d’impulsion dans la bande des 6 GHz avec uniquement des composants bon marché et du traitement numérique du signal à haute vitesse
- Il combine un FPGA Zynq 7020, un ADC 12 bits à 250 MHz, un DAC 14 bits à 500 MHz et une architecture d’émission-réception IQ zero-IF afin de prendre en charge l’émission de formes d’onde arbitraires et le traitement par compression d’impulsion
- La difficulté de mise en œuvre se concentre sur les contraintes numériques rapides et RF comme les filtres ADC/DAC, le routage DDR3, l’interface LVDS, l’Ethernet à 1 Gbit/s, la synchronisation d’horloge, le filtrage d’alimentation, la commutation émission/réception et la correction des fuites LO
- En mesure réelle, une bande passante de 150 MHz a permis d’obtenir une résolution en distance d’environ 1 m, et des véhicules en bord de route ont été détectés jusqu’à environ 400 à 450 m ; en théorie, la portée maximale de détection d’une cible avec une section efficace radar de 1 m² est d’environ 1 km
- Le projet a été achevé avec 330 USD pour deux PCB fabriqués et assemblés, et 225 EUR de composants Digikey soudés à la main ; selon l’auteur, il est difficile de trouver à ce niveau de prix un radar commercial à compression d’impulsion ou un SDR avec une bande passante RF comparable
Pourquoi avoir fabriqué un radar à compression d’impulsion plutôt qu’un FMCW
- Avec un radar FMCW, si l’on sépare les antennes d’émission et de réception, il n’y a pas besoin de commutation, et comme le signal reçu peut être mélangé au signal émis pour être ramené à basse fréquence, il est facile à mettre en œuvre même avec un ADC lent
- Les grands radars utilisent principalement des radars à impulsion
- une seule antenne peut être partagée entre l’émission et la réception
- lors de l’utilisation d’une forte puissance d’émission, le risque de saturation du récepteur est moins problématique qu’en FMCW
- les impulsions peuvent être envoyées plus fréquemment, ce qui augmente le Doppler shift maximal non ambigu pour la mesure de vitesse de cibles rapides
- En contrepartie, les contraintes de mise en œuvre d’un radar à impulsion sont bien plus fortes
- si la commutation émission/réception prend 1 µs, les réflexions de cibles situées à 150 m sont manquées
- si une seule antenne est partagée, la distance minimale de détection peut atteindre plusieurs centaines de mètres
- comme il faut échantillonner toute la bande passante RF de l’impulsion émise, un ADC de plusieurs centaines de MHz, voire supérieur à 1 GHz, peut être nécessaire
- L’objectif est un radar à compression d’impulsion capable de prendre en charge des formes d’onde arbitraires, sans se limiter à un balayage linéaire en fréquence
- pour cela, il faut un DAC et un ADC avec un taux d’échantillonnage suffisant
Architecture globale et traitement du signal
- Le radar a une structure similaire à celle d’un SDR, avec deux antennes de réception multiplexées dans le temps et une section d’émission
- l’émetteur est partagé avec l’une des antennes de réception
- le second canal de réception ne nécessitait que l’ajout d’un switch, d’un LNA et d’un connecteur SMA, pour un coût réduit, tout en laissant la possibilité d’un mode FMCW
- Le TX et le RX utilisent une architecture zero-IF
- ce n’est pas le meilleur choix en matière de performances, mais c’est l’option la moins chère
- la sortie du mélangeur contient non seulement le signal souhaité, mais aussi des fuites LO et des signaux image
- en zero-IF, ces composantes indésirables se superposent au signal, ce qui rend leur suppression difficile avec un filtre fixe
- Certaines non-idéalités peuvent être réduites par correction numérique
- une pré-distorsion de la sortie DAC permet de corriger les non-idéalités du mélangeur et de nettoyer le signal d’émission
- la sortie du récepteur peut aussi être corrigée numériquement si elle est caractérisée avec une précision suffisante
- Le DAC produit un signal IQ complexe, que le mélangeur IQ module à la fréquence LO avant émission par l’antenne
- l’IQ complexe représente à la fois les fréquences positives et négatives en bande de base
- après l’émission, le switch T/R bascule en réception et le récepteur échantillonne le signal réfléchi
- La position de la cible est obtenue par corrélation entre le signal émis et le signal reçu
- en pratique, l’implémentation utilise une FFT plutôt qu’une convolution directe dans le domaine temporel
- aux instants correspondant à une cible, la corrélation entre signal reçu et signal émis augmente ; en l’absence de cible, elle reste faible
- Les lobes secondaires sont contrôlés par une fonction de fenêtre
- multiplier l’impulsion de référence par une fonction de fenêtre permet de régler les lobes secondaires en sortie de convolution
- appliquer également une fenêtre à l’impulsion émise permet de réduire encore davantage les lobes secondaires
- l’inconvénient est un lobe principal plus large et une résolution en distance légèrement dégradée
- La vitesse est mesurée à partir de l’évolution de phase du signal reçu sur plusieurs impulsions
- en envoyant un train d’impulsions puis en calculant une FFT sur la dimension des impulsions, on sépare distance et vitesse dans une range-Doppler map
- plusieurs objets à la même distance peuvent aussi être distingués si leurs vitesses diffèrent
- avec une seule antenne, aucune information angulaire n’est disponible
Choix de l’ADC, du DAC et du FPGA
- Le taux d’échantillonnage de l’ADC est le paramètre clé qui détermine la bande passante RF maximale recevable
- il est plus difficile d’augmenter la bande passante disponible côté ADC que d’élargir celle du côté RF ou du DAC
- au moins un ADC à 2 canaux est nécessaire pour l’échantillonnage IQ
- Les ADC avec interface JESD204B nécessitaient des transceivers série rapides sur un FPGA haut de gamme, hors budget ; LVDS a donc été retenu comme l’option la plus rapide connectable aux E/S FPGA classiques
- L’ADC choisi est le ADS4229
- 2 canaux, LVDS, taux d’échantillonnage de 250 MHz
- prix unitaire de 58 EUR
- un ADC 8 bits à 500 MHz existait aussi, mais son SNR était inférieur de 20 dB à celui de l’ADC 12 bits ; doubler le taux d’échantillonnage ne rend qu’environ 3 dB de SNR, il a donc été écarté
- Le DAC choisi est le DAC3174
- 2 canaux, 14 bits, 500 MHz
- prix unitaire de 33 EUR
- la bande passante du système est limitée par l’ADC, mais la marge côté DAC facilite le filtrage
- Un simple microcontrôleur ne suffisait pas pour gérer le timing de génération des impulsions, les flux de données ADC/DAC et le contrôle de la commutation émission/réception ; un FPGA était donc nécessaire
- Le FPGA choisi est le Zynq 7020
- il intègre dans le même boîtier un CPU dual-core ARM-A9 et une fabric FPGA
- il pouvait être obtenu à 17 $ en Chine, contre 173 $ chez Digikey
- le CPU peut gérer la communication avec le PC et le contrôle
- une carte SD a aussi été ajoutée pour exécuter Linux, mais le logiciel initial fonctionnait sans OS
Filtres ADC/DAC et contraintes de bande passante
- Un filtre passe-bas anti-repliement est nécessaire avant l’ADC
- avec un taux d’échantillonnage de 250 MHz, la fréquence de Nyquist est de 125 MHz
- pour augmenter la bande passante exploitable, il faut placer la fréquence de coupure près de Nyquist, mais cela impose une coupure abrupte et complique la conception du filtre
- Le filtre ADC doit avoir une amplitude et un délai de groupe uniformes dans la bande passante
- si l’atténuation varie selon la fréquence, l’impulsion reçue est déformée
- si les écarts de délai de groupe sont importants, la corrélation avec l’impulsion de référence diminue et les lobes secondaires augmentent
- Les paramètres de conception du filtre ADC sont une coupure à 100 MHz et une atténuation de -20 dB à Nyquist, soit 125 MHz
- jusqu’à environ 60 MHz, l’amplitude et le délai de groupe sont bons
- au-delà, il est difficile d’améliorer davantage à cause des contraintes
- si nécessaire, la réponse du filtre peut être corrigée numériquement
- Le DAC étant lui aussi un système d’échantillonnage, ses alias de sortie doivent être filtrés
- le DAC échantillonne à 500 MHz et la bande passante utile du signal est de 100 MHz, ce qui rend la conception du filtre plus simple que pour l’ADC
- les alias d’un signal de 0 à 100 MHz se situent dans la plage 400 à 500 MHz
- en simulation, les alias sont atténués d’au moins 65 dB par rapport au signal
- Avec une puissance de signal de 30 dBm, le signal image peut atteindre environ -35 dBm
- cela semble suffisant pour le fonctionnement, mais pour un radar correctement conçu, une atténuation plus forte pourrait être nécessaire afin d’éviter des émissions hors de la fréquence allouée
Conception numérique et flux de données
- Le SoC Zynq se compose d’un processing system (PS) et d’une programmable logic (PL)
- Le PS est un CPU ARM A9 double cœur
- La PL est la fabric FPGA
- Les deux sont reliés par un bus AXI 64-bit
- L’horloge AXI est réglée à 130 MHz
- 1 bus AXI pour le DMA de l’ADC
- 1 bus AXI pour le DMA du DAC
- un bus AXI lent distinct est utilisé pour la configuration des registres de la PL
- Une connexion rapide avec le PC a été assurée via Ethernet 1 Gbps
- L’USB 3 peut offrir 5 Gbps, mais nécessite un transceiver USB 3 externe et un effort d’implémentation supplémentaire
- Comme le traitement numérique initial est effectué sur le PC, le débit de transfert des échantillons ADC capturés est important
- La DRAM DDR3 est reliée côté PS via une seule puce
- Fonctionnement à 1066 MHz en raison des limitations du contrôleur mémoire
- La largeur de bus est de 16-bit
- Il serait possible d’ajouter une seconde puce DDR3 pour une configuration 32-bit, mais cela n’était pas nécessaire
- La bande passante DDR3 est inférieure à la somme des bandes passantes du DAC et de l’ADC
- Il est impossible de streamer des échantillons DAC depuis la DRAM tout en stockant simultanément des échantillons ADC
- Une mémoire de 1 MB a été placée côté PL pour stocker les échantillons DAC
- Le PC envoie les échantillons d’impulsion vers la DRAM via Ethernet, puis le DMA les transfère vers la mémoire de la PL avant qu’ils ne soient envoyés au DAC à chaque impulsion
- La mémoire DAC de 1 MB limite la durée d’impulsion à 130 µs
- Une impulsion de 130 µs correspond à une portée minimale de détection de 20 km
- La durée d’impulsion typique est d’environ 1 µs, ce qui est suffisant
- L’approche LUT facilite l’expérimentation avec les fenêtres, la prédistorsion et différentes formes d’onde d’impulsion
Front-end RF et commutation émission/réception
- La fréquence de fonctionnement est d’environ 6 GHz, proche de celle du précédent radar fait maison
- Elle a été jugée comme la bande de fréquence la plus élevée disposant de nombreux composants du commerce bon marché grâce aux applications grand public
- La partie RF se compose d’un IQ modulator, d’un IQ demodulator, d’un PLL pour le LO, d’un power amplifier, d’un LNA et de commutateurs
- Le power amplifier choisi est le Skyworks SE5004L
- Le point de compression à 1 dB de sortie typique est de 2 W
- Le gain est de 32 dB
- La documentation de la datasheet était insuffisante et ne donnait pas non plus les valeurs des composants externes, mais le schéma a pu être vérifié dans la documentation de la carte d’évaluation
- Le commutateur T/R choisi est le MASW-007588
- Vitesse de commutation : 55 ns
- Point de compression à 1 dB : 37 dBm
- En 55 ns, la lumière parcourt 16,5 m
- Il existe de meilleurs commutateurs dédiés, mais ils ne rentraient pas dans le budget
- Un circulator était aussi une alternative, mais n’a pas été utilisé
- Il est courant sur les radars haute puissance, peut gérer plusieurs centaines de watts et n’a pas de problème de vitesse de commutation
- Les produits dans cette bande de fréquence sont volumineux et bien plus coûteux qu’un simple commutateur
- Le récepteur doit avoir un plancher de bruit RF suffisamment au-dessus du bruit de quantification de l’ADC
- D’après les calculs, le plancher de bruit RF est d’environ -155 dBV/Hz à l’entrée de l’ADC
- Le plancher de bruit de l’ADC est d’environ -156 dBV/Hz
- En général, le plancher de bruit RF devrait être environ 10 dB plus élevé que celui de l’ADC, mais dans la conception réelle un compromis à quelques dB au-dessus a été retenu
Calcul de la portée maximale de détection
- La portée maximale de détection a été calculée à l’aide de l’équation radar
- La puissance d’émission, le gain d’antenne, la longueur d’onde, la surface équivalente radar de la cible, la température du récepteur, la durée d’impulsion, le nombre d’impulsions, le facteur de bruit et le seuil de détection ont été utilisés
- Les paramètres d’estimation utilisés sont les suivants
- Puissance d’émission : 30 dBm
- Gain d’antenne : 14 dBi
- Longueur d’onde : 5,2 cm
- Surface équivalente radar de la cible : 1 m²
- Température du récepteur : 290 K
- Durée d’impulsion : 1 µs
- Nombre d’impulsions dans la rafale : 1024
- Facteur de bruit du récepteur : 5 dB
- Seuil de détection : 15 dB
- Le résultat du calcul donne une portée maximale de détection de 1200 m pour une cible de surface équivalente radar de 1 m²
- Cette valeur peut être légèrement optimiste
- Pertes dans les câbles d’antenne
- Pertes d’efficacité de l’antenne
- Pertes dues aux désadaptations d’impédance
- L’atténuation atmosphérique n’est pas prise en compte
- Malgré cela, la portée maximale de détection devrait rester de l’ordre de 1 km
- À la portée maximale, la puissance moyenne reçue est égale au seuil minimal de détection
- En moyenne, une cible à cette distance est détectée avec une probabilité de 50 %
- Comme la puissance reçue est inversement proportionnelle à la quatrième puissance de la distance, la probabilité de détection chute rapidement au-delà
PCB, DDR3, lignes de transmission et conception d’alimentation
- Le PCB intègre à la fois la RF et des circuits numériques rapides, ce qui demande une attention particulière au routage
- Un PCB 6 couches a été utilisé
- Le matériau FR-4 standard n’est pas idéal pour la RF, mais cela n’a pas été considéré comme un problème majeur car les traces RF ont été maintenues très courtes
- La mémoire DDR3L fonctionne avec une horloge de 533 MHz et 2 transferts par cycle
- Standard DDR3L basse tension à 1,35 V
- Appariement des longueurs de trace, impédance caractéristique et terminaisons sont nécessaires
- La possibilité d’omettre les résistances de terminaison du bus d’adresses DDR3 a été simulée
- Sans résistances de terminaison, cela semblait fonctionner selon le critère de seuil
- Mais un overshoot d’environ 0,7 V apparaissait, en violation de la limite maximale de 0,4 V indiquée dans la datasheet mémoire
- Des résistances de terminaison ont finalement été ajoutées sur les lignes d’adresses
- Pour le routage DDR3, des traces de 60 ohm et des résistances de terminaison de 50 ohm ont été utilisées
- Une trace de 40 ohm a une largeur de 0,24 mm
- Une trace de 60 ohm a une largeur de 0,10 mm, ce qui permet une implantation plus dense
- Des résistances de 50 ohm étaient aussi nécessaires ailleurs sur le PCB, ce qui permet de réduire la BOM
- Les broches enable du commutateur T/R et de l’IQ modulator doivent commuter très rapidement
- Avec la drive strength maximale du FPGA, le rise time à l’entrée du commutateur est d’environ 400 ps d’après la simulation
- Quelques centimètres de trace PCB se comportent alors comme une ligne de transmission et génèrent des réflexions
- Une terminaison AC avec une résistance de 50 ohm et un petit condensateur en série réduit les réflexions sans problème de niveau DC
- L’alimentation combine des régulateurs à découpage, des LDO et des filtres à ferrite bead
- Comme le bruit de commutation est bien supérieur au plancher de bruit thermique du récepteur, un filtrage important est nécessaire
- Les calculs conduisent à un besoin de filtrage d’alimentation de l’ordre de 100 dB dans le pire des cas
- Un filtre à ferrite bead à deux étages atteint une atténuation de 100 dB à 1 MHz
- Le PCB comporte au total 9 rails d’alimentation
- 1,0 V, 1,8 V, 2,5 V et 3,3 V pour le numérique et le FPGA, ainsi que 1,35 V et 0,675 V pour la DDR3
- Des rails analogiques faible bruit de 1,8 V, 3,3 V et 5,0 V utilisent des LDO et des filtres à ferrite bead
Interfaces haut débit et horloges
- L’ADC est relié au FPGA via un bus LVDS 12 bits
- Le taux d’échantillonnage de l’ADC est de 250 MHz
- Les données des deux canaux sont transmises sur les fronts montant et descendant de l’horloge
- Le FPGA corrige dynamiquement le timing de capture à l’aide d’une ligne à retard ajustable
- Le DAC utilise une interface LVDS 14 bits à 500 MHz
- Ce FPGA ne dispose pas d’ajustement de ligne à retard en sortie, d’où l’importance de l’appariement des longueurs de traces sur le PCB
- D’après l’outil de synthèse, le timing peut être respecté avec un retard de trace de ±25 ps, soit environ ±4 mm de différence de longueur
- L’Ethernet PHY utilise un Realtek RTL8211F
- Il a pu être trouvé à l’unité pour 1 $ en Chine
- La fiche technique officielle est soumise à NDA, mais il a été possible de récupérer chez un revendeur chinois un document marqué « Confidential »
- L’interface RGMII du FPGA Zynq ne respecte pas les spécifications à 3,3 V, donc l’alimentation du côté PS a été réglée à 1,8 V
- Cela rend nécessaire l’usage de level shifters pour la carte SD et l’UART
- Le JTAG et l’UART de debug sont implémentés avec un FTDI FT2232H
- Le débogueur JTAG officiel de Xilinx coûte 270 $, donc il n’a pas été utilisé
- En configurant l’EEPROM avec l’outil
program_ftdide Xilinx, Vivado le reconnaît
- La synchronisation des horloges est essentielle aux performances du radar
- L’ADC fonctionne à 250 MHz
- Le DAC fonctionne à 500 MHz
- La logique du FPGA a besoin d’horloges plus lentes
- Sur le PLL interne du FPGA, la gigue d’une horloge à 100 MHz est estimée par l’outil à 130 ps crête à crête, contre environ 4 ps crête à crête pour un générateur d’horloge externe
- Côté PL, un générateur d’horloge CDCM6208 produit plusieurs horloges à 250 MHz et 500 MHz à partir d’un cristal de 25 MHz
- Ces horloges sont synchronisées en phase entre elles
- Le côté PS utilise son propre cristal de 33 MHz, nécessaire pour programmer le générateur d’horloge après la mise sous tension
- Les domaines d’horloge indépendants de PS et PL sont gérés par des clock domain crossings appropriés
Fabrication et bring-up de la carte
- Le PCB a été commandé auprès d’un fabricant chinois avec assemblage inclus
- Deux cartes assemblées et trois PCB nus ont été reçus
- Certains composants peu courants n’étaient pas fournis par le service d’assemblage et ont dû être commandés et soudés à la main
- Cela incluait des composants coûteux comme l’ADC, le DAC et le PLL
- Le FPGA pouvait être assemblé, ce qui a évité de souder à la main un BGA à 484 broches
- La qualité du PCB était bonne au vu du prix, mais l’une des deux cartes assemblées n’a pas fonctionné immédiatement à cause d’un problème de soudure
- Le FPGA à 15 $ avait son marquage de date et de lot masqué
- Son marquage différait de celui de la puce d’une carte de développement de la même famille
- Il a finalement fonctionné, mais son origine reste douteuse
- Les autres composants ont été soudés à la main avec de la pâte à braser et un outil à air chaud
- Un outil à air chaud est nécessaire pour souder un boîtier QFN sur une carte déjà peuplée
- Pour réduire les coûts d’assemblage double face, tous les composants ont été placés sur la face supérieure
- La face inférieure ne prévoyait de la place que pour d’éventuels condensateurs de découplage supplémentaires, qui n’ont finalement pas été nécessaires
- Après programmation de l’EEPROM du FT2232H, le Zynq 7020 a été reconnu dans le Vivado hardware manager, ce qui a permis la programmation et le débogage du FPGA
Firmware FPGA et timing
- La logique du FPGA sert principalement à déplacer les données
- Interfaces LVDS ADC/DAC
- Timing des impulsions pour allumer et éteindre au bon moment les switchs, le PA, le LNA, etc.
- Registres AXI permettant au PS de configurer le PL
- Deux DMA pour les échantillons ADC/DAC
- Interfaces SPI pour l’ADC, le DAC, le PLL et le générateur d’horloge
- La majeure partie du traitement du signal est effectuée sur le PC
- À l’avenir, un filtrage numérique et une décimation dans le FPGA pourraient réduire le volume de données envoyé au PC et augmenter la fréquence d’images
- Le récepteur LVDS est basé sur l’application note Xilinx xapp1017
- Une ligne à retard et une bascule sont connectées à chaque voie LVDS
- Une machine d’état modifie le retard pour échantillonner au centre de l’œil de données
- Cela compense dynamiquement les écarts dus au routage du PCB et aux retards internes du FPGA
- Le circuit de timing des impulsions repose sur une structure de compteur avec comparaison d’égalité pour chaque événement
- Le compteur démarre quand le PS déclenche
- Chaque sous-système et chaque puce externe est piloté sur le cycle d’horloge exact
- Une fonction de boucle permet d’envoyer plusieurs impulsions avec un intervalle de répétition précisément défini
- Un timing de burst précis est indispensable pour mesurer la vitesse
- Une erreur d’un cycle d’horloge à 125 MHz sur le déclenchement ADC ou DAC entraîne une erreur de distance mesurée de 1,2 m
Mesure du bruit du récepteur et de la puissance d’émission
- Le bruit du récepteur a été vérifié en connectant une charge adaptée au connecteur d’antenne et en enregistrant la sortie ADC avec l’émetteur éteint
- Enregistrement de 33 ms, soit 8 millions d’échantillons
- Le plancher de bruit moyen était de -139 dBFs, proche de la valeur attendue
- Plusieurs signaux d’interférence étaient visibles, le plus important étant aux multiples de 25 MHz
- L’amplitude était d’environ -100 dBFs
- Cela correspond à environ 15 µV RMS à l’entrée de l’ADC
- La cause était un spur fractionnaire du PLL
- En réglant la fréquence de sortie du PLL sur un multiple entier de l’horloge de référence, le spur est minimisé
- L’horloge de référence du PLL est de 250 MHz, mais le détecteur de phase utilise 125 MHz après division par 2
- Avec un réglage à 5,75 GHz, le spur a presque disparu
- 5,875 GHz fonctionnait aussi bien, car proche d’un multiple
- La fréquence de commutation du convertisseur DC/DC était de 2,5 MHz et n’apparaissait pas dans le spectre de sortie
- Le filtrage d’alimentation fonctionnait comme prévu
- La puissance d’émission a été vérifiée via le détecteur de puissance intégré au PA
- La sortie du DAC a été réglée à 85 % de l’amplitude maximale
- La sortie du modulateur IQ est estimée à environ +3 dBm
- Avec un gain de 32 dB du PA, cela suffit à entrer en compression
- La tension de crête mesurée par le détecteur était de 1,72 V
- Une extrapolation linéaire du graphe de la fiche technique donne une puissance de sortie d’environ 33 dBm, soit près de 2 W
- Cela correspond au point de compression à -1 dB typique du PA, donné pour 34 dBm, ce qui indique un fonctionnement en compression
Étalonnage et qualité de la compression d’impulsion
- En condition de matched load, le signal de fuite d’émission via le commutateur T/R a été enregistré
- La forme d’onde d’émission est un balayage linéaire de fréquence de 100 MHz de bande passante sur 1 µs
- Une amplitude de 0,1 de l’amplitude maximale du DAC est utilisée
- Avant étalonnage, plusieurs non-idéalités apparaissent sur la forme d’onde reçue
- ADC DC offset avant l’impulsion
- spike lié à l’allumage de l’émetteur
- pulse DC offset dû à la fuite LO de l’émetteur
- atténuation plus importante aux fréquences de bande de base élevées
- ADC offset après l’impulsion et niveau DC dû au comportement passe-haut du filtre ADC
- Avant étalonnage, le niveau de sidelobe en compression d’impulsion était de -21 dBc
- La cause principale est la fuite LO de l’émetteur
- Comme l’émetteur et le récepteur partagent le même LO, la fuite LO est down-mixée en DC dans le récepteur
- L’ADC DC offset est corrigé en déclenchant le récepteur avec l’émetteur éteint pour le mesurer, puis en le soustrayant des mesures suivantes
- La fuite LO est mesurée en déclenchant le sweep alors que le DAC sort 0
- Idéalement, il ne devrait pas y avoir d’émission, mais à cause de la fuite LO, un signal à la fréquence LO est émis
- Le niveau DC du signal émis est ajusté pour que l’entrée ADC soit à 0, ce qui compense la fuite LO
- Après compensation de la fuite LO, le niveau de sidelobe s’est amélioré à -36 dB
- Soit quelques dB au-dessus de l’idéal de -42 dB
- Une longue réponse rectiligne à -60 dB subsiste à cause du comportement passe-haut du condensateur de couplage AC
- Une autre méthode pour réduire les problèmes de DC offset consiste à moduler le sweep en low-IF plutôt qu’en zero-centered
- Un offset de 25 MHz est utilisé sur un sweep de 50 MHz pour balayer de 0 à 50 MHz
- Le problème de DC offset dû au filtre passe-haut disparaît
- L’inconvénient est que la bande passante maximale utilisable est réduite de moitié par rapport à un sweep zero-centered
- L’application d’une fenêtre de Tukey à l’impulsion d’émission réduit fortement les sidelobes lointains
- À α=0.1, l’énergie de l’impulsion et le SNR du récepteur diminuent de 0,8 dB
- À un décalage de 500 ns, le niveau de sidelobe diminue d’environ 20 dB
Problème de fuite de bruit du PA
- Lors du passage en réception, le commutateur T/R bascule de l’émetteur vers le récepteur, mais si le PA reste allumé, le bruit de sortie du PA fuit vers le récepteur
- Le commutateur T/R commute en environ 50 ns, mais l’activation/désactivation du PA prend environ 10 µs
- Avec une antenne unique, ce long temps de commutation du PA augmente le bruit du récepteur
- Si l’entrée du PA est le bruit thermique d’une résistance de 50 ohms, elle est à -174 dBm/Hz, et après un gain PA de 32 dB ainsi que le bruit propre du PA, le plancher de bruit en sortie est d’environ -135 dBm/Hz
- Après l’isolation du commutateur T/R, le bruit du PA à l’entrée du LNA est estimé à environ -165 dBm/Hz
- Comme c’est supérieur au plancher de bruit thermique de -174 dBm/Hz, le récepteur est limité si le PA n’est pas éteint
- En mesure réelle, avec le PA allumé, le plancher de bruit ADC du récepteur connecté au commutateur T/R était supérieur de 2,1 dB à celui observé lorsqu’il était connecté à l’autre port
- En tenant compte des incertitudes du calcul, cela correspond bien à la théorie
- Avec deux antennes, il est possible de basculer un second commutateur de réception vers RX2 et d’éteindre le LNA de RX1, ce qui améliore l’isolation au point que la fuite du PA n’affecte plus le bruit du récepteur
Logiciel de détection et de suivi
- Le pipeline pour obtenir la détection des cibles à partir des échantillons ADC est le suivant
- exécution de la compression d’impulsion sur chaque impulsion reçue
- exécution d’une FFT sur la dimension du nombre d’impulsions
- génération d’une carte range-Doppler avec la distance et la vitesse Doppler comme axes
- L’amplitude de chaque pixel de la carte range-Doppler représente la puissance reçue dans le bin distance-vitesse correspondant
- Les bins de cibles sont identifiés avec l’algorithme CFAR
- Au lieu d’un plancher de bruit fixe, le plancher de bruit local est estimé par la moyenne des bins voisins
- Si l’amplitude du bin testé est supérieure à threshold × plancher de bruit estimé, il est marqué comme cible
- Le plancher de bruit peut varier avec le temps, les sidelobes des cibles voisines ou le clutter comme les réflexions au sol
- Les fausses détections dues aux sidelobes de grosses cibles sont supprimées en post-traitement
- Si une cible beaucoup plus grande existe sur la même ligne ou la même colonne, elle est considérée comme un sidelobe
- Comme l’amplitude doit être supérieure à celle des bins adjacents, seule la position du pic de l’impulsion compressée est détectée
- Pour le suivi de cibles, la bibliothèque Python Stonesoup est utilisée
- La position, la vitesse et l’incertitude de chaque cible sont suivies avec un filtre de Kalman
- L’implémentation est largement basée sur le tutoriel StoneSoup
- Le radar mesure la distance et la vitesse, mais pas l’angle, donc seul un suivi 1D est possible
- Le modèle de transition utilise une accélération constante
- Le filtre de Kalman estime l’accélération à partir des mesures et prédit la position suivante
Résultats de mesure au bord de la route
- Le radar a été installé au bord d’une route pour mesurer les véhicules
- durée d’impulsion : 2 µs
- bande passante : 150 MHz
- nombre d’impulsions : 1024
- durée RX : 5 µs
- délai avant l’impulsion suivante : 7 µs
- utilisation de deux antennes TX/RX séparées
- les antennes sont des horn antennas fabriquées maison
- Une bande passante de 150 MHz correspond à une résolution en distance de 1 m
- La résolution est la distance minimale permettant de séparer deux cibles ponctuelles
- La précision de position d’une cible unique peut être meilleure que la résolution selon le SNR
- Un intervalle entre impulsions de 12 µs correspond à une pulse repetition frequency de 83 kHz
- Avec une RF de 5,8 GHz et un pulse repetition interval de 12 µs, la plage de vitesse non ambiguë est de -1077 m/s à +1077 m/s
- Cela représente plus de trois fois la vitesse du son, donc il n’y a pas de problème d’ambiguïté de vitesse pour la mesure de voitures
- La résolution en vitesse Doppler est de 2155 m/s ÷ 1024 = 2,1 m/s
- Deux cibles à la même distance doivent avoir environ cet écart de vitesse pour être séparées
- La précision de vitesse d’une cible unique s’améliore aussi avec le SNR
- La Vidéo 9 montre le résultat de la synchronisation entre une vidéo prise au téléphone et la carte range-Doppler
- Les détections CFAR sont indiquées par des croix rouges
- L’axe Y est la vitesse Doppler, les valeurs négatives correspondant à une approche vers le radar
- L’axe X est la distance
- La grande ligne à Doppler nul correspond aux réflexions des cibles immobiles
- Pour les véhicules proches, il était facile de faire correspondre l’image caméra et les détections radar
- Il existe un effet de shadowing où les véhicules à l’avant masquent les objets plus éloignés
- Le radar détecte bien des objets peu visibles sur la caméra
- Il détecte des véhicules jusqu’à environ 400 m avant que la courbure de la route ne bloque la line of sight
- À cause du DC offset, de gros sidelobes apparaissent dans la direction distance
- Cela rend difficile la détection de petits objets proches de grandes cibles
- Les véhicules les plus éloignés ne sont pas toujours détectés par le CFAR à cause des sidelobes superposés
- La Vidéo 10 montre le résultat de l’application du tracker de Kalman à la même mesure
- Le tracker assigne les détections CFAR à des cibles dotées d’un ID unique
- Quand les détections de cibles lointaines manquent à cause du shadowing et des sidelobes, le suivi est perdu et, lorsqu’elles réapparaissent, un nouvel ID leur est attribué
Impulsions low-IF et expérience à antenne unique
- Lors du deuxième essai sur route, une bande passante RF de 75 MHz et une fréquence de modulation de 38 MHz ont été utilisées
- La fréquence balayait de 0,5 MHz à 75,5 MHz
- Les autres paramètres ont été conservés
- Comme prévu, l’énorme lobe secondaire dû à l’offset DC n’était pas visible
- La résolution en distance s’est dégradée jusqu’à environ la moitié de la précédente, mais cela n’a pas posé de problème pour le suivi des véhicules
- Les véhicules étant grands, il restait possible de les séparer avec une résolution en distance de 2 m
- Au début, la seconde réflexion des véhicules qui passaient apparaissait à une distance et une vitesse doubles
- Le trajet du signal passait par le véhicule, un panneau proche, puis de nouveau le véhicule avant de revenir au radar
- Son amplitude était faible et étalée, donc elle n’était pas détectée comme cible CFAR
- Les vélos n’étaient pas détectés comme cibles
- Leur vitesse n’était pas suffisamment séparée de celle des cibles statiques
- Les cibles statiques autour de la cible à faible vitesse entraient dans le calcul du plancher de bruit CFAR
- La faible surface équivalente radar du vélo n’était pas assez grande par rapport au plancher de bruit relevé
- Une fréquence RF plus élevée est avantageuse pour cet usage
- Doubler la fréquence RF double la séparation des bins de vitesse Doppler
- La vitesse Doppler maximale non ambiguë est réduite de moitié
- Les radars de mesure de vitesse de la police utilisent généralement la bande 10 à 35 GHz
- Le SNR des objets détectés était bon à cette distance
- À 450 m, le SNR maximal était d’environ 35 dB
- Au-delà de 550 m, il n’y avait plus de détection faute de line of sight
- À distance doublée, le SNR doit diminuer de 12 dB
- Dans l’expérience à antenne unique, les mêmes paramètres que pour la mesure low-IF ont été utilisés, mais la durée d’impulsion a été réduite de 2 µs à 1 µs
- Une seule antenne était utilisée en commutation entre émission et réception
- 1 µs correspond à 300 m parcourus par la lumière, mais comme le signal fait un aller-retour, la distance minimale pour recevoir l’impulsion complète est de 150 m
- Les cibles situées à moins de 150 m pouvaient aussi être détectées via une impulsion partielle
- N’utiliser qu’une impulsion partielle pour la compression d’impulsion réduit la résolution en distance et le SNR
- Dans cette configuration, la distance minimale de détection était d’environ 40 m
Coût, documents publiés et évaluation finale
- Le schéma du radar a été publié
- Avec quelques modifications, il pourrait aussi être utile pour un SDR
- Il peut également servir de référence pour d’autres applications nécessitant un FPGA
- Le firmware et le logiciel ne sont pas publiés à ce stade
- Il n’a pas encore été décidé s’ils le seront
- Le coût est le suivant
- Fabrication du PCB et assemblage de 2 cartes : 330 USD
- Composants Digikey soudés à la main : 225 EUR, soit environ 240 USD
- Les prix incluent 24 % de TVA et les frais de livraison
- Il n’existe probablement pas de radar commercial à compression d’impulsion comparable dans cette gamme de prix
- Même les SDR avec une bande passante RF similaire sont bien plus chers
- Le radar terminé a fondamentalement une architecture similaire à celle des grands radars modernes
- Il utilise le traitement numérique du signal
- Il prend en charge des formes d’onde arbitraires
- Grâce à une pulse repetition frequency élevée, la vitesse Doppler maximale non ambiguë est importante
- Sa puissance de sortie et la taille de son antenne étant réduites, sa portée maximale est plus courte que celle des grands radars
2 commentaires
Avis sur Hacker News
Ça me rappelle un ancien article du même site, https://hforsten.com/heartbeat-detection-with-radar.html
J’avais acheté sur Amazon des modules radar Doppler 10GHz/24GHz bon marché pour bricoler avec, et rien qu’en regardant le spectrogramme, on pouvait clairement distinguer le rythme cardiaque et la respiration
À l’époque, j’avais comme échantillons une vidéo à 10GHz pointée vers un ventilateur de plafond https://www.youtube.com/watch?v=tIiFvByf1CQ, une vidéo pointée de bas en haut sous la surface où une pièce rebondit puis retombe https://www.youtube.com/watch?v=8riretP8ylE, et une vidéo pointée vers une pièce qui tourne à la surface https://www.youtube.com/watch?v=5lnYvJoxRak
Le filtrage en peigne produit par une surface en rotation est vraiment génial, et le module 10GHz utilisé était celui-ci : https://www.amazon.com/HiLetgo-Microwave-Detector-Wireless-1...
C’est génial. Il ne manquait plus que cette dernière pièce pour un système de guidage de missile de banlieue, et la famille Jones risque d’avoir du mal à dépasser la fête de quartier cette année
La prochaine fois, j’aimerais bien qu’il traite aussi du radar à réseau phasé. J’ai quelques voisins qui ne ramassent pas les déjections de leur chien, donc il me faut une meilleure précision
Cela dit, ils ont dû retirer du firmware/logiciel les éléments liés au radar, probablement à cause de l’ITAR : https://forum.krakenrf.com/t/where-has-the-passive-radar-cod...
Tactical and Strategic Missile Guidance, Seventh Edition https://www.amazon.com/Tactical-Strategic-Missile-Guidance-S...
Tactical missile warheads https://www.amazon.com/Tactical-Warheads-Progress-Astronauti...
http://www.interestingprojects.com/cruisemissile/
Cela demanderait très peu de modifications et permettrait aussi d’augmenter le gain de l’antenne. L’essentiel relève de la fabrication physique, donc ça semble accessible même comme hobby
https://www.radartutorial.eu/06.antennas/Phased%20Array%20An...
Travail impressionnant. C’est incroyable qu’une seule personne ait réussi ça, et monté sur une plateforme tournante, cela devient un détecteur radar planaire
En y ajoutant l’inclinaison, cela ne semble plus très différent d’un radar météo ou aéronautique. Le coût n’est pas faible en devise locale, et d’après un autre commentaire on parle de 570 dollars, mais vu le temps investi, c’est compréhensible
Avec un budget suffisant, on a l’impression qu’il n’y a pas vraiment de limite. Je me demande comment on interpréterait le fait qu’un avion militaire soit suivi par un radar 6GHz fabriqué par un civil. La portée maximale estimée serait de 1200 m, mais qu’en serait-il si on la multipliait par 10 avec une antenne plus grande, par exemple ?
D’abord, les radars embarqués sur les avions ont des récepteurs et captent aussi les impulsions émises par d’autres radars. Le brouillage radar fonctionne d’ailleurs de la même manière : on arrose avec une forte puissance dans la même bande/à la même longueur d’onde pour remplir l’écran de clutter
Les radars ont des caractéristiques comme la fréquence, la fréquence de répétition des impulsions (PRF) et la forme d’onde, ce qui les rend assez faciles à identifier. Les bandes dans lesquelles les radars opèrent sont réglementées, et l’armée ainsi que diverses agences civiles détectent les émissions radar
Ce petit projet DIY ne constitue pas une grande menace, mais si vous émettez près d’une installation radar, surtout militaire, vous risquez d’avoir des ennuis très rapidement
Je ne sais pas pour la Finlande, mais là où j’habite, les civils ne sont pas autorisés à relever l’empreinte de radars militaires ni à constituer une base de données de ces empreintes. En pratique, seule l’armée peut le faire
Dès qu’on augmente la puissance, ce genre d’objet sort très vite du cadre du DIY. J’aimerais aussi voir cette personne fabriquer un radar à réseau phasé. Source : j’ai travaillé dans le domaine du radar
Les récepteurs d’alerte radar militaires sont des systèmes très finement réglés pour l’environnement de menace opérationnelle attendu
Les Finlandais ont encore frappé. La profondeur et l’étendue de leur domaine d’expertise sont presque difficiles à croire
Ils ont tout planifié, l’ont fait fabriquer en Chine, puis il semble que la moitié de la carte ait réellement fonctionné. Ça rappelle un peu la sensation de faire une appli backend + frontend dans une startup en un mois en se disant « pitié, fais que ça tourne »
À propos du passage « le FPGA à 15 dollars étrangement bon marché avait aussi sa date et son code lot curieusement masqués », j’avais demandé il y a quelque temps à un responsable des opérations chez GoPro comment une contrefaçon chinoise qui ressemblait à un vrai produit à 400 dollars pouvait être vendue 40 dollars
Sa réponse était qu’ils récupéraient littéralement les puces dans des parcs à ferraille. Par exemple, ils achetaient des lots de puces mémoire n’ayant pas passé les tests, qui pouvaient ne fonctionner que dans une certaine plage de température
Il disait aussi que, pour d’autres composants, ils ajustaient souvent les spécifications en sélectionnant des pièces censées tenir plutôt 6 mois que 6 ans en moyenne. Parce qu’ils savent que la plupart de ces « gadgets » sont utilisés un peu le week-end puis rangés dans un placard
Pour ce genre de projet de R&D, ça peut aller, mais il faut faire attention quand on conçoit un produit commercial. Il y a aussi l’aspect politique, et c’est peut-être un peu parano, mais des lois apparaissent également pour empêcher l’usage de composants en silicium chinois dans des produits destinés à certains marchés
Un bon exemple est l’AlienTek DP100, une micro alimentation de labo USB-C 100 W à 45 dollars : https://www.youtube.com/watch?v=Pd6LG7iP2GQ
Avec un logo Digilent dessus, un produit similaire coûterait sans doute dans les 500 dollars
Et les vrais GoPro ont eux aussi un taux de panne supérieur à la moyenne, avec des problèmes de surchauffe ou d’arrêt aléatoire en enregistrement 4K
C’est vraiment impressionnant
Les anciens articles https://hforsten.com/radar-phase-measurements.html et https://hforsten.com/6-ghz-frequency-modulated-radar.html m’ont beaucoup aidé dans mon travail sur mon système sonar
Cet article aussi explique très bien un sujet complexe. Un exemple de travail connexe se trouve ici : https://twitter.com/alextoussss/status/1756371553460121766
Superbe travail. Henrik mène depuis longtemps des projets de radar et d’acquisition de données RF d’un niveau rarement vu dans la documentation publique, et la qualité de la documentation est elle aussi très élevée
Travail remarquable. Il est rare de voir une telle profondeur technique sur l’ensemble de la stack, du RF au hardware, au firmware et au logiciel
Plus on lit l’article, meilleur il devient
Je me demande pourquoi le plan de masse a été placé sur les couches 2 et 6 plutôt que sur les couches 1 et 6
Sans expérience en conception de PCB haute fréquence, j’aurais pensé faire le blindage avec la masse et mettre le plan d’alimentation sur la couche 3 ou 4. Il y a sûrement une bonne raison, mais elle ne me saute pas aux yeux
Il faut découper le plan de masse autour de toutes les puces, et les signaux rapides ont vraiment besoin d’un plan de masse continu. En particulier, les circuits intégrés RF doivent avoir un accès court à la masse
Pour minimiser la distance entre l’IC et le plan de masse, la couche 2 est la meilleure
Pour conserver une impédance caractéristique donnée, il faut un plan (GND) à une distance déterminée d’une piste de largeur donnée. Sans plan au-dessus ou au-dessous du signal, on ne peut pas obtenir la valeur d’impédance voulue
On peut aussi ajouter du cuivre de remplissage sur les couches supérieure et inférieure, mais cela n’influe que légèrement sur l’impédance
D’après l’image, les signaux semblent être sur les couches 1 (rouge), 3 (orange) et 6 (bleu), la masse sur les couches 2 (vert) et 5 (rose), et l’alimentation sur la couche 4 (cyan)
En faisant correspondre quelques vias, les couches 2 et 5 semblent clairement reliées
On voit aussi qu’il n’y a pas de remplissage autour. L’ordre des couches n’est pas totalement clair sur le schéma, mais on dirait tantôt 123/654, et il semble que le texte soit erroné et qu’en 123/456 les couches 2 et 4 soient la masse
Les signaux numériques internes à basse vitesse semblent pris en sandwich entre des plans masse/alimentation, ou masse/masse si on corrige cela, ce qui peut être un bon choix puisqu’ils sont souvent la plus grande source de bruit quand on les laisse à proximité d’autres parties du PCB
Les plans d’alimentation et de masse doivent être juste l’un contre l’autre. À ces fréquences, les condensateurs de découplage ne remplissent presque plus leur rôle
Puisqu’on parle de radar, on trouve désormais des radars utilisables pour 34 centimes : https://www.aliexpress.com/item/1005006240906322.html
Cette puce n’a même pas été conçue à l’origine pour cet usage, c’est un recyclage de puce de capteur PIR
L’essentiel du radar n’est qu’un unique transistor multi-GHz au centre de la moitié gauche du PCB, plus une boucle de rétroaction très ingénieuse réalisée avec un motif de cuivre que quelqu’un a probablement conçu et affiné pendant des années
Un génie de l’ingénierie complètement fou, au-delà de l’imagination...
Bien trop proche de l’idée un peu floue que je me faisais d’un ingénieur.