Implementer hurtigt Time-of-Flight-afstandsregistrering ved hjælp af en forhåndsbygget løsning
Bidraget af DigiKeys nordamerikanske redaktører
2020-04-02
ToF-teknologi (Time-of-Flight) bruges i stigende grad til afstandsmåling og nærhedsregistrering i anvendelsesområder, der spænder lige fra forbrugerprodukter til industrielt udstyr. Tilgængeligheden af ToF-behandlings-IC'er på enkeltchip bidrager til at forenkle implementeringen af disse løsninger, men udviklere har stadig kritiske opgaver med f.eks. at finde og optimere egnede emittere og fotodioder samt integrere disse enheder med ToF-processoren. En mere integreret strategi kan forenkle processen markant og spare tid.
Det har Digilent gjort noget ved og har udviklet et forhåndsbygget ToF-tilføjelseskort, der ved kombination med et højtydende systemkort og tilknyttet softwarebibliotek leverer en komplet ToF-hardwareløsning. Nu kan udviklere omgående starte med prototyping af ToF-applikationer eller bruge denne hardware og software som grundlaget for at designe specialudviklet ToF-hardware og -software.
I denne artikel beskrives det kort, hvordan ToF-sensorer fungerer. Derefter introduceres Digilents Pmod ToF-kort og vises, hvordan det kan bruges sammen med Digilents Zybo Z7-20-udviklingskort til at evaluere ToF-teknologi og hurtigt udrulle optisk afstandsregistrering i deres egne design.
Sådan fungerer ToF-sensorer
ToF-sensorer spiller en vigtig rolle i en stadig længere række af applikationer. I køretøjer og industrielt udstyr hjælper disse sensorer med at advare operatører om forhindringer, mens de parkerer eller på anden måde manøvrerer på begrænset plads. I forbrugerapplikationer giver disse enheder nærhedsregistrering i mobile produkter eller automatiseringssystemer i hjemmet. I disse og andre applikationer beregner optiske ToF-systemer afstanden til et eksternt objekt eller en forhindring ved hjælp af forskellige metoder, der alle tager udgangspunkt i en vis forskel mellem det lys, der reflekteres af det eksterne objekt, og det lys, der oprindeligt blev sendt.
En avanceret ToF-enhed som Renesas ISL29501 ToF-baseret signalbehandlings-IC beregner afstand ved at måle faseforskydningen mellem det lys, der transmitteres fra en ekstern LED eller laser, og det modtagne lys fra en fotodiode. Når ISL29501 transmitterer lys (Tx), der er moduleret af en firkantbølge ved en given frekvens fm, vender det reflekterede optiske signal (Rx) fra et objekt tilbage til ISL29501 med en dæmpet amplitude R med en vis faseforskydning j (figur 1).
Figur 1: Avancerede ToF-enheder som Renesas ISL29501 bruger deres interne digitale signalbehandlingsfunktioner til at beregne afstand til objekter baseret på faseforskydningen j mellem transmitteret og reflekteret lys. (Billedkilde: Renesas)
Ved at måle denne faseforskydning kan enheden beregne afstanden D:
Ligning 1
Hvor:
D = afstand til mål
c = lysets hastighed
fm = modulationsfrekvens
φ = fasevinkel (radians)
Da det modulerede frekvenssignal fm og lysets hastighed c er kendt, kan afstanden beregnes ved at finde den resterende faktor, fasevinklen φ. Denne faktor kan beregnes med traditionelle kvadratur-signalbehandlingsteknikker. Her genereres signalkomponenter for i-fase (I) og kvadratur (Q) af separate I- og Q-signalbaner, der omfatter en demodulator, et lavpasfilter (LPF) og en ADC (analog-til-digital-konverter) (figur 2).
Figur 2: For at beregne fasevinklen φ, der kræves til afstandsberegningen, demodulerer, filtrerer og konverterer Renesas ISL29501 inputsignalets (VIN) signalkomponenter for i-fase (I) og kvadratur (Q). (Billedkilde: Renesas)
Internt integrerer ISL29501 en omfattende signalbane, der ligger før demodulations-pipelinen, med et AFE-signalbehandlingstrin (analog frontend), som består af en overføringsimpedansforstærker (TIA) og forstærker med lavt støjtal (LNA). ISL29501's inputsignalbane følger AFE med en variabel forstærkning (Av), AGC-loop (automatisk gainkontrol), der bruger sine indbyggede algoritmer til at optimere SNR.
På outputsiden integrerer ISL29501 en on-chip emitterdriverkæde, der kan levere firkantbølgeimpulser ved en modulationsfrekvens på 4,5 megahertz (MHz) og styrestrøm op til 255 milliampere (mA) til en egnet emitter. Som fuldstændiggørelse af denne funktionsarkitektur håndterer en intern digital signal-processor (DSP) de beregninger, der kræves for at generere afstandsresultatet ud fra fase-, amplitude- og frekvensdata (figur 3).
Figur 3: Renesas ISL29501 kombinerer signalbaner for at drive et emitter- og behandlingsfotodiodeinput sammen med en intern digital signal-processor, som afvikler algoritmer, der bruges til at beregne afstand ud fra fase-, amplitude- og frekvensdata. (Billedkilde: Renesas)
Valg af emittere og fotodioder
Ved at integrere fotodiodeinput, emitteroutput og behandlingsfunktioner leverer ISL29501 et fleksibelt hardwarefundament for opbygning af ToF-løsninger til afstandsregistrering. Egenskaber som f.eks. AFE og AGC-loop på inputsiden og den programmerbare emitterdriver på outputsiden er designet specifikt til at understøtte en bred vifte af emittere og fotodioder. På samme tid er effektiviteten af en komplet ToF-løsning meget afhængig af, at emitteren og fotodioden udvælges og konfigureres omhyggeligt.
For emitterens vedkommende kan udviklere eksempelvis med ISL29501's fleksibilitet vælge blandt en lang række infrarøde LED'er (IR), VCSEL'er (Vertical-Cavity Surface-Emitting Lasers) eller andre laserenheder med kompatible specifikationer for spænding, strøm og frekvens. En typisk ToF-løsning er rent faktisk relativt ufølsom over for emittertype. Ikke desto mindre anbefales det at bruge en NIR- eller MWIR-enhed (nær-infrarød eller mellembølge-infrarød) for at reducere interferens fra omgivende lyskilder. Når enheden er valgt, skal udvikleren fastlægge den optimale emitterimpulsstyrestrøm samt eventuelle jævnstrømskomponenter, der måtte være påkrævet. Udvikleren skal derefter programmere enheden til at levere impulsen og eventuel jævnstrøm ved hjælp af de separate interne digital-til-analog-konvertere (DAC'er), der er integreret i emitterdriverens outputkæde.
På samme måde kan ISL29501 understøtte en bred vifte af fotodioder, men anvendelsen og valget af emittere spiller en afgørende rolle, når det optimale valg skal fastlægges. Ligesom med emitteren bidrager en fotodiode, der fungerer ved NIR- eller MWIR-bølgelængder, til at reducere interferens fra omgivende lys. Ideelt set bør fotodiodens spektrale responskurve være så smal som muligt med en spids centreret på emitterens maksimale bølgelængde for at optimere signal-støj-forholdet (SNR). Selvom fotodioden skal maksimere den mængde lys, den er i stand til at fange, medfører forøgelse af fotodiodearealet også højere kapacitans (både overgangs- og parasitkapacitancs), hvilket kan kompromittere fotodiodens responstid og dens evne til at spore emitterens stige- og faldetider. Udviklere skal derfor finde den optimale balance mellem fotodiodearealet og den interne kapacitans, der er nødvendig for at maksimere signalamplituden uden at gå på kompromis med ydeevnen.
Integreret ToF-løsning
Digilents Pmod ToF-kort, der er designet til at fremskynde udviklingen af ToF-applikationer, er en kommercielt tilgængelig ToF-løsning, som kombinerer Renesas ISL29501 ToF IC, en Microchip Technology AT24C04D EEPROM, en IR-LED og en fotodiode på et kort i lille format med 6-bens Pmod værts- og pass-through-konnektorer, så der kan tilføjes yderligere Pmod-udvidelseskort (figur 4).
Figur 4: Digilents Pmod ToF-kort leverer en komplet ToF-sensorløsning, der er designet, så den kan tilsluttes systemkort med Pmod-konnektorer. (Billedkilde: Digilent)
Som lyskilde og detektor har kortet en højtydende OSRAM Opto Semiconductors SFH 4550 LED på 860 nanometer (nm) med en OSRAM SFH 213 FA-fotodiode, der har en hurtig koblingstid, spektral følsomhed fra 750 til 1100 nm og en maksimal følsomhed ved 900 nm.
Selvom Renesas ISL29501 ikke kræver yderligere komponenter til den tilknyttede LED og fotodiodeenheder, kræver den dog en egnet kilde på 2,7 volt til 3,3 volt til hver enkelt af dens tre strømdomæner, der forsynes via særskilte ben til dens analoge spændingskilde (AVCC), digitale spændingskilde (DVCC) og emitterdriverspænding (EVCC). Selvom disse kan forsynes fra samme kilde, anbefaler Renesas, at disse tre forsyninger isoleres. Som vist på den skematiske fremstilling af Digilents Pmod ToF opnår Digilent denne isolering for ToF-kortet ved hjælp af Murata Electronics' BLM15BD471SN1D-ferritstøjfiltre og -kondensatorer til hver enkelt forsyning (figur 5).
Figur 5: Digilents Pmod ToF-kort tilbyder både en øjeblikkelig hardwareløsning til hurtig prototyping samt et referencedesign til specialbyggede ToF-systemer. (Billedkilde: Digilent)
Udviklingsmiljø
Digilent hjælper yderligere med at fremskynde implementering af ToF-applikationer med et udviklingsmiljø baseret på Digilents Zybo Z7-20-kort. Kortet leverer et højtydende driftsmiljø bygget op omkring Xilinx' Zynq XC7Z020 100 % programmerbare SoC (APSoC). Denne APSoC integrerer en Arm® Cortex®-A9-processor med dobbelt kerne og en omfattende programmerbar struktur, herunder understøttelse til 53.200 opslagstabeller (LUT'er), 106.400 flip-flops og 630 kilobyte (KB) blok-RAM. Sammen med Xilinx' Zynq XC7Z020 APSoC indeholder Zybo Z7-20-kortet 1 gigabyte (GB) RAM, 16 megabyte (MB) quad SPI flash, flere interfaces, konnektorer og seks Pmod-udvidelsesporte.
Digilents ZyboZ7-20 PmodToF-Demo-softwaredistribution, der er designet til at køre på Zybo Z7-20-kortet, indeholder Software Development Kit (SDK) til sit Pmod ToF-softwarebibliotek med hierarkisk blok. Dette bibliotek giver udviklere et intuitivt API (Application Programming Interface) til opbygning af applikationer baseret på drivere og støttemoduler i Xilinx' SDK, eller leveret af Digilent til Pmod ToF-kortet (figur 6).
Figur 6: Digilents Pmod ToF-softwarebibliotek med hierarkisk blok styrker interfacedrivere på lavt niveau i Xilinx' SDK med moduler til Renesas ISL29501-sensor, EEPROM og Pmod ToF-tjenester. (Billedkilde: Digilent)
Digilent-biblioteket kombinerer drivere på lavt niveau til I2C-, GPIO- og UART-kommunikation fra Xilinx' SDK med moduler, som implementerer handlinger på registerniveau for Digilent Pmod ToF-kortets EEPROM og Renesas ISL29501-enheden. ISL29501-modulet indeholder for eksempel en funktion til at foretage en afstandsmåling med ISL29501. Eftersom ISL29501 internt implementerer den detaljerede sekvens af handlinger, der kræves for at foretage denne måling, kræver udførelse af afstandsmåling kun en vis indledningsvis opsætning og en serie af registerlæsninger og -skrivninger. Digilent-bibliotekets ISL29501-modul indeholder funktionerne til at implementere specifikke ISL29501-handlinger, herunder én til at udføre en afstandsmåling (post 1).
Kopier double PmodToF_perform_distance_measurement() { /* WRITE REG */ u8 reg0x13_data = 0x7D; u8 reg0x60_data = 0x01; /* READ REG */ u8 unused; u8 DistanceMSB; u8 DistanceLSB; double distance = 1; ISL29501_WriteIIC(&myToFDevice, 0x13, ®0x13_data, 1); ISL29501_WriteIIC(&myToFDevice, 0x60, ®0x60_data, 1); ISL29501_ReadIIC(&myToFDevice, 0x69, &unused, 1); CALIB_initiate_calibration_measurement(); //waits for IRQ while((XGpio_DiscreteRead(&gpio, GPIO_CHANNEL) & GPIO_DATA_RDY_MSK) != 0 ); ISL29501_ReadIIC(&myToFDevice, 0xD1, &DistanceMSB, 1); ISL29501_ReadIIC(&myToFDevice, 0xD2, &DistanceLSB, 1); distance =(((double)DistanceMSB * 256 + (double)DistanceLSB)/65536) * 33.31; return distance; }
Post 1: Softwarefunktioner medtaget i Digilent-bibliotekets ISL29501-modul implementerer handlinger på registerniveau som for eksempel at foretage en afstandsmåling som vist her. (Kildekode: Digilent)
Digilent-bibliotekets PmodToF-modul leverer tjenester på højere niveau, der er bygget på modulerne på lavere niveau. For at udføre og vise en måling kalder PmodToF-modulets funktion PmodToFCMD_MeasureCmd() for eksempel ISL29501-modulets funktion PmodToF_perform_distance_measurement() på registerniveau flere gange og viser gennemsnittet af resultaterne (post 2).
Kopier /*** PmodToFCMD_MeasureCmd ** ** Parameters: ** none ** ** Return Value: ** ERRVAL_SUCCESS 0 // success ** ** Description: ** This function displays over UART the distance measured by the device.
** Before calling this function, it is important that a manual calibration was made or the calibration
** was imported(calibration stored by the user in EEPROM user area )/restored from EEPROM(factory calibration).
*/
void PmodToFCMD_MeasureCmd()
{
int N = 100, sum = 0;
int distance_val, distance_val_avg;
// 100 distance values that are measure will be averaged into a final distance value
for(int j=0;j<N;j++)
{
distance_val = 1000 * PmodToF_perform_distance_measurement(); // the distance value is in millimeters
sum = sum + distance_val;
}
distance_val_avg = sum/N;
sprintf(szMsg, "Distance measured D = %d mm.", distance_val_avg);
ERRORS_GetPrefixedMessageString(ERRVAL_SUCCESS, "", szMsg);
UART_PutString(szMsg);
}
Post 2: Softwarefunktioner medtaget i Digilent-bibliotekets PmodToF-modul leverer tjenester på applikationsniveau som for eksempel at vise gennemsnittet af flere afstandsmålinger som vist her. (Kildekode: Digilent)
Udviklere kan bruge det komplette sæt moduler i Digilents Pmod ToF-softwarebibliotek med hierarkisk blok eller blot bruge det minimale sæt moduler, der kræves til deres applikation. For hver applikations vedkommende skal udviklere dog udføre størrelses-, krydstale- og afstandskalibreringer for at sikre nøjagtigheden. Selvom størrelsen er en intern kalibrering, kræver de to andre en vis mængde opsætning. Til krydstalekalibreringen blokerer udviklerne simpelthen de optiske enheder med et stykke skum, der følger med kortet, og kører kalibreringen. Til afstandskalibrering anbringer udviklere ToF-kortet, hvor optikken er placeret i en kendt afstand fra et mål med høj IR-refleksionsevne, og kører kalibreringen. Selvom ISL29501 ikke indeholder ikke-flygtig hukommelse, kan udviklere gemme nye kalibreringsværdier i Pmod ToF-kortets EEPROM og indlæse disse værdier under procedurer til initialisering af software.
Denne kombination af kommercielt tilgængelig hardware og software danner et brugsklart fundament for udvikling af optiske ToF-applikationer. Til hurtig prototyping kan udviklere med det samme køre biblioteksdistributionens prøvesoftware ved hjælp af Digilents Pmod ToF- og Zybo Z7-20-kort. I forbindelse med specialudviklede applikationer kan udviklere bygge videre på det hardwarereferencedesign, der er repræsenteret af Pmod ToF-kortet, og på den softwarekode, der findes i Digilents biblioteksdistribution.
Konklusion
Selvom ToF-behandlings-IC'er på enkeltchip bidrager til at forenkle implementeringen af ToF-løsninger for mange applikationer, er udviklere stadig nødt til at finde egnede emittere og fotodioder til integration. Som vist er en mere tilgængelig løsning at kombinere et forhåndsbygget ToF-tilføjelseskort med et højtydende systemkort, der tilsammen leverer en komplet ToF-hardwareløsning. Ved at kombinere denne hardwareløsning med et tilknyttet softwarebibliotek kan udviklere straks starte med prototyping af ToF-applikationer eller bruge denne hardware og software som grundlaget for at designe specialudviklet ToF-hardware og -software.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




