Kom raskt i gang med detektering av flyvetiddistanse (Time-of-Flight-distanse) raskt ved hjelp av en forhåndsbygd løsning
Bidrag fra DigiKeys nordamerikanske redaktører
2020-04-02
Flyvetid (Time-of-Flight – ToF)-teknologi brukes stadig mer for måling av distanse og nærhetsdeteksjon innenfor bruksområder som spenner fra forbrukerprodukter til industrielt utstyr. Tilgjengeligheten av single-chip IC-kretser som prosesserer ToF, bidrar til å forenkle implementeringen av disse løsningene, men utviklerne sitter likevel fortsatt igjen med kritiske oppgaver som å finne og optimalisere egnede emittere og fotodioder og integrere disse enhetene med denne ToF-prosessoren. En mer integrert tilnærming kan forenkle prosessen vesentlig og spare tid.
For dette formålet har Digilent utviklet et forhåndsbygd ToF-tilleggskort. Når det kombineres med et hovedkort med høy ytelse og tilknyttet programvarebibliotek, utgjør det en komplett maskinvarebasert ToF-løsning. Nå kan utviklerne begynne prototyping av ToF-applikasjoner umiddelbart eller bruke denne maskinvaren og programvaren som grunnlag for design av spesialtilpasset ToF-maskinvare og -programvare.
Denne artikkelen gir en kort beskrivelse av hvordan ToF-sensorer fungerer. Deretter presenterer den Digilents PMod ToF-kort og viser hvordan det kan brukes i kombinasjon med Digilent Zybo Z7-20 utviklingskort for evaluering av ToF-teknologi og hurtig distribusjon av optisk distansedeteksjon i egne design.
Slik fungerer ToF-sensorer
ToF-sensorer spiller en viktig rolle innen stadig flere og mer varierte bruksområder. I kjøretøyer og industrielt utstyr bidrar disse sensorene til å advare operatører om hindringer når de parkerer eller utfører annen form for manøvrering under trange forhold. I forbrukerapplikasjoner gir disse enhetene nærhetsdeteksjon i mobile produkter eller systemer for hjemmeautomasjon. I slike og andre applikasjoner beregner optiske ToF-systemer avstanden til et eksternt objekt eller hinder ved hjelp av ulike metoder som alle er avhengige av en forskjell mellom lyset som sendes ut og det lyset som reflekteres av det eksterne objektet.
En avansert ToF-enhet som Renesas ISL29501 ToF-basert signalbehandling-IC kalkulerer avstanden ved å måle faseskiftet mellom lyset som sendes ut fra en ekstern LED eller laser, og det lyset som mottas av en fotodiode. Når ISL29501 sender ut (TX) lys modulert av en firkantet bølge ved en gitt frekvens fm, vil det reflekterte optiske signalet (RX) fra et objekt komme tilbake til ISL29501 med en dempet amplitude R med et faseskift j (figur 1).
Figur 1: Avanserte ToF enheter som Renesas ISL29501 bruker sine interne digitale funksjoner for signalbehandling til å kalkulere avstanden til objekter basert på faseskiftet j mellom utsendt og reflektert lys. (Bildekilde: Renesas)
Ved å måle dette faseskiftet kan enheten beregne D-avstanden:
Ligning 1
Der:
D = avstand til målet
c = lysets hastighet
fm = modulasjonsfrekvens
φ = fasevinkel (radianer)
Siden det modulerte frekvenssignalet fm og lysets hastighet c er kjent, kan avstanden beregnes ved å finne fasevinkelen φ, som er den siste faktoren. Denne faktoren kan kalkuleres med tradisjonelle kvadraturteknikker for signalbehandling. Her blir signalkomponentene for innfasen (i) og kvadraturen (Q) generert av separate I- og Q-signalbaner som utgjøres av en demodulator, et lavpassfilter (LPF) og en analog-til-digital omformer (ADC) (figur 2).
Figur 2: For å beregne fasevinkelen φ som kreves for avstandsberegningen, demodulerer, filtrerer og konverterer Renesas ISL29501 signalkomponentene for inn-fasen (I) og kvadraturen (Q) i inngangssignalet (VIN). (Bildekilde: Renesas)
Internt integrerer ISL29501 en omfattende signalbane som ligger før demodulasjonstilførselen, med et analogt front-end (AFE) signalkondisjoneringstrinn som består av en transimpedansforsterker (TIA) og en forsterker med lav støy (LNA). Inngangssignalbanen i ISL29501 følger AFE med en sløyfe med variabel forsterkning (Av) og automatisk forsterkningskontroll (AGC) som bruker sine innebygde algoritmer for å optimalisere signal-støyforholdet (SNR).
På utgangssiden integrerer ISL29501 en on-chip emitter-driverkjede som er i stand til å levere firkantbølgepulser med en modulasjonsfrekvens på 4,5 megahertz (MHz) og drivstrøm opp til 255 milliampere (mA) til en passende emitter. For å gjøre denne funksjonelle arkitekturen komplett, håndterer en intern digital signalprosessor (DSP) de beregninger som kreves for å generere distanseresultatet fra dataene for fase, amplitude og frekvens (figur 3).
Figur 3: Renesas ISL29501 bruker de samme signalbanene for å drive en emitter og prosessere inngående signaler fra fotodioden, sammen med en intern digital signalprosessor som kalkulerer algoritmene som brukes til å beregne avstand basert på dataene for fase, amplitude og frekvens. (Bildekilde: Renesas)
Valg av emittere og fotodioder
Ved å integrere fotodiodeinngang, emitterutgang og prosesseringsfunksjoner, utgjør ISL29501 en fleksibel maskinvarebase for å bygge ToF-løsninger for måling av distanse. Funksjoner som AFE- og AGC-loopen på inngangssiden og den programmerbare emitterdriveren på utgangssiden er designet spesielt for å støtte et bredt spekter av emittere og fotodioder. Samtidig vil effektiviteten av en komplett ToF-løsning være kritisk avhengig av at emitteren og fotodioden velges og konfigureres med omhu.
For eksempel lar fleksibiliteten i ISL29501 utvikleren velge emitter fra et bredt utvalg av infrarøde (IR) lysdioder, overflateemitterende lasere med vertikalt hulrom (vertical-cavity surface-emitting lasers –VCSEL) eller andre laserenheter med kompatible spesifikasjoner for spenning, strøm og frekvens. En typisk ToF-løsning er faktisk relativt ufølsom for emittertype. Ikke desto mindre anbefales det at det brukes en nær infrarød (NIR) eller medium bølgelengde infrarød (MWIR)-enhet for å redusere forstyrrelser fra omkringliggende lyskilder. Etter å ha valgt emitteren, må utvikleren bestemme den optimale drivstrømmen for emitterpulsen og hvilken likestrømskomponent som eventuelt kan være nødvendig. Deretter må utvikleren programmere enheten for å levere pulsen og eventuell likestrøm ved hjelp av de separate interne digital-til-analog-omformerne (DAC-er) som er integrert i emitterdriverens utgangskjede.
Tilsvarende kan ISL29501 støtte et bredt utvalg av fotodioder, men applikasjonen og valget av emittere vil være vesentlig for å bestemme det optimale valget. På samme måte som med emitteren, vil en fotodiode som fungerer ved NIR- eller MWIR-bølgelengder, bidra til å redusere interferens fra omgivelseslys. Ideelt sett bør fotodiodens spektralresponskurve være så smal som mulig, med en spiss som er sentrert der emitteren har sin spiss i bølgelengde, for å optimere signal-støyforholdet (SNR). Selv om det er viktig at fotodioden får maksimert lysmengden den er i stand til å samle inn, vil en økning av fotodiodearealet også medføre høyere kapasitans (både koblings- og strøkapasitanser), noe som kan påvirke fotodiodens responstid negativt samt dens evne til å spore emitterens stignings- og falltider. Utviklerne må derfor finne den optimale balansen mellom fotodiodeareal og den interne kapasitansen som er nødvendig for å maksimere signalets amplitude uten at det går ut over ytelsen.
Integrert ToF-løsning
Digilents Pmod ToF-kort er designet for hurtigere utvikling av ToF-applikasjoner, og tilbyr en ToF-løsning som hyllevare. Det kombinerer Renesas ISL29501 ToF-IC, en Microchip Technology AT24C04D EEPROM, en IR-LED og en fotodiode på et kort i lite format, med seks-pinners Pmod-host- og gjennomgangskontakter for å legge til ytterligere Pmod-utvidelseskort (figur 4).
Figur 4: Digilent Pmod ToF-kortet gir en komplett ToF-sensorløsning designet for å kobles til systemkort med Pmod-kontakter. (Bildekilde: Digilent)
Som lyskilde og detektor kombinerer kortet en OSRAM Opto Semiconductors høyeffekt SFH 4550 860 nanometer (nm) LED med en OSRAM SFH 213 FA fotodiode som har hurtig svitsjetid, spektral følsomhet fra 750 til 1100 nm og en spissensitivitet ved 900 nm.
Selv om Renesas ISL29501 ikke krever tilleggskomponenter for de tilhørende LED- og fotodiodeenhetene, krever den en passende kilde på 2,7 volt til 3,3 volt for hvert av sine tre strømdomener, levert gjennom separate pinner for dens analoge spenningskilde (AVCC), digitale spenningskilde (DVCC), og emitterdriverspenning (EVCC). Til tross for at disse kan leveres fra samme kilde, anbefaler Renesas å isolere disse tre forsyningene. Som vist i skjemaet for Digilent PMod ToF, oppnår Digilent denne isoleringen for ToF-kortet ved bruk av Murata Electronics BLM15BD471SN1D ferrittkuler og kondensatorer for hver forsyning (figur 5).
Figur 5: Digilent PMod ToF-kort tilbyr både en umiddelbart tilgjengelig maskinvareløsning for rask prototyping og et referansedesign for tilpassede ToF-systemer. (Bildekilde: Digilent)
Utviklingsmiljø
Digilent bidrar også til å akselerere implementeringen av ToF-applikasjoner med et utviklingsmiljø basert på Digilent Zybo Z7-20-kortet. Kortet gir et svært effektivt driftsmiljø bygget rundt Xilinx Zynq XC7Z020 fullstendig programmerbar SoC (APSoC). Denne APSoC-en integrerer en tokjerne Arm® Cortex®-A9-prosessor med et omfattende programmerbart miljø, inkludert støtte for 53.200 oppslagstabeller (LUTs), 106.400 flip-flops og 630 kilobyte (Kbytes) blokk-RAM. Sammen med Xilinx Zynq XC7Z020 APSoC har Zybo Z7-20-kortet 1 gigabyte (Gbyte) RAM, 16 megabyte (Mbyte) quad SPI-flash, flere grensesnitt, kontakter og seks Pmod-utvidelsesporter.
Digilents ZyboZ7-20 Pmod ToF-demo programvaredistribusjon er utviklet for å kjøre på Zybo Z7-20-kortet, og inkluderer programvareutviklingssettet (SDK) for Pmod ToFs hierarkiske blokk-programvarebibliotek. Dette biblioteket gir utviklere et intuitivt grensesnitt for applikasjonsprogrammering (API) for å bygge applikasjoner basert på drivere og støttemoduler i Xilinx SDK, eller levert av Digilent for PMod ToF-kortet (figur 6).
Figur 6: Digilents PMod ToF hierarkiske blokk-programvarebibliotek utvider lavnivå-grensesnittdriverne i Xilinx SDK med moduler for Renesas ISL29501-sensor, EEPROM og PMod ToF-tjenester. (Bildekilde: Digilent)
Digilent-biblioteket kombinerer lavnivådrivere for I2C, GPIO og UART-kommunikasjon fra Xilinx SDK med moduler som implementerer operasjoner på registernivå for DIGILENT PMod ToF-kort EEPROM og Renesas ISL29501-enheten. ISL29501-modulen har for eksempel en funksjon for å utføre en avstandsmåling med ISL29501. Fordi ISL29501 internt implementerer den detaljerte sekvensen av operasjoner som kreves for å utføre denne målingen, kreves kun litt innledende oppsett og en serie lesing fra og skriving til register for å utføre en avstandsmåling. Digilent-bibliotekets ISL29501-modul inneholder funksjonene for å implementere spesifikke ISL29501-operasjoner, blant annet for å utføre en avstandsmåling (liste 1).
Copy
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;
}
Liste 1: Programvarefunksjoner som er inkludert i Digilent-bibliotekets ISL29501-modul, implementerer operasjoner på registernivå, for eksempel for å utføre en avstandsmåling som vist her. (Kildekode: Digilent)
Digilent-bibliotekets Pmod ToF-modul leverer tjenester på høyere nivå, bygget på lavnivåmodulene. For å utføre og vise en måling, kaller for eksempel Pmod ToF-modulens funksjon PmodToFCMD_MeasureCmd () ISL29501-modulens funksjon PmodToF_perform_distance_measurement () på registernivå gjentatte ganger og viser gjennomsnittet av resultatene (liste 2).
Copy
/*** PmodToFCMD_MeasureCmd
**
** Parameters:
** none
**
** Return Value:
** ERRVAL_SUCCESS 0 // success
**
** Beskrivelse:
** This function displays over UART the distance measured by the device.
** Før denne funksjonen kalles, er det viktig at det er gjort en manuell kalibrering eller at kalibreringen
** er importert (kalibrering lagret av brukeren i EEPROM brukerområde )/hentet fra EEPROM (kalibrering fra fabrikk).
*/
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);
}
Liste 2: Programvarefunksjoner som er inkludert i Digilent-bibliotekets PmodToF-modul, tilbyr tjenester på applikasjonsnivå, for eksempel visning av gjennomsnittet av flere avstandsmålinger som vist her. (Kildekode: Digilent)
Utviklere kan bruke hele settet med moduler i Digilent PMod ToF hierarkisk blokk-programvarebibliotek eller bare det minimale settet med moduler som kreves for applikasjonen deres. Utviklerne vil imidlertid måtte kalibrere størrelsesorden, crosstalk og avstand for hver applikasjon for å sikre nøyaktighet. Størrelsesorden er en intern kalibrering, mens de to andre krever litt oppsett. For crosstalk-kalibrering blokkerer utviklere ganske enkelt de optiske enhetene med et stykke skumplast som følger med kortet, og kjører kalibreringen. For avstandskalibrering plasserer utviklerne ToF-kortet med optikk i en kjent avstand fra et mål med høy IR-reflektivitet og kjører kalibreringen. Selv om ISL29501 ikke har ikke-flyktig minne, kan utviklere lagre nye kalibreringsverdier i PMod ToF-kortets EEPROM og laste inn disse verdiene som en del av applikasjonens nullstillingsprosedyrer.
Denne kombinasjonen av ferdig tilgjengelig maskinvare og programvare gir et grunnlag som er klart til bruk for å lage optiske ToF-applikasjoner. For hurtig prototyping kan utviklere umiddelbart kjøre bibliotekdistribusjonens eksempelprogrammer ved bruk av Digilent PMod ToF og Zybo Z7-20-kort. For tilpasset utvikling kan utviklere bygge på maskinvarens referansedesign, representert av PMod ToF-kortet, og på programvarekoden som følger med i Digilents biblioteksdistribusjon.
Konklusjon
Single-chip-IC-er for ToF-prosessering bidrar til å forenkle implementeringen av ToF-løsninger for mange bruksområder, men utviklerne må fortsatt finne egnede emittere og fotodioder for integrering. En mer tilgjengelig løsning som vist er et forhåndsbygd ToF-tilleggskort i kombinasjon med et systemkort med høy ytelse, som sammen utgjør en komplett maskinvareløsning for ToF. Ved å kombinere denne maskinvareløsningen med et tilhørende programvarebibliotek, kan utviklere umiddelbart begynne prototyping av ToF-applikasjoner, eller bruke denne maskinvaren og programvaren som grunnlag for å designe sin egen tilpassede ToF-maskinvare og-programvare.
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.




