Implementera snabbt Time-of-Flight-avståndsmätning med en förbyggd lösning
Bidraget med av DigiKeys nordamerikanska redaktörer
2020-04-02
Time-of-Flight-teknik (ToF) används i allt högre grad för avståndsmätning och närhetsavkänning i tillämpningar inom allt från konsumentprodukter till industriutrustning. Tillgängligheten till enkla ToF-processningskretsar hjälper till att förenkla implementeringen av dessa lösningar. Dock återstår fortfarande kritiska uppgifter för utvecklarna som att hitta och optimera lämpliga emittrar och fotodioder och integrera dessa kretsar med denna ToF-processor. En mer integrerad metod kan förenkla processen betydligt och spara tid.
För att lyckas med detta har Digilent utvecklat ett färdigt ToF-tilläggskort, som i kombination med ett systemkort med hög prestanda och förknippat programvarubibliotek ger en komplett ToF-hårdvarulösning. Nya utvecklare kan omedelbart börja konstruera prototyper för ToF-tillämpningar eller använda den här hårdvaran och programvaran som grund för att utveckla anpassad ToF-hårdvara och -programvara.
Den här artikeln beskriver kort hur ToF-sensorer fungerar. Därefter introduceras Digilents Pmod ToF-kort och visar hur det kan användas i kombination med Digilents Zybo Z7-20-utvecklingskort för att utvärdera ToF-tekniken och snabbt implementera optisk avståndsavkänning i egna konstruktioner.
Hur ToF-sensorer fungerar
ToF-sensorer spelar en viktig roll i en allt bredare uppsättning tillämpningar. I fordon och industriutrustning hjälper dessa sensorer till att varna operatörerna om hinder under parkering eller manövrering i trånga utrymmen. I konsumenttillämpningar ger dessa enheter närhetsavkänning i mobila produkter eller hemautomatiseringssystem. I dessa och andra tillämpningar beräknar optiska ToF-system avståndet till ett externt föremål eller hinder med olika metoder som alla bygger på skillnaden mellan det ljus som reflekteras av det externa föremålet och ljuset som ursprungligen sänts ut.
En avancerad ToF-enhet som Renesas ISL29501 ToF-baserade signalbehandlingskrets beräknar avståndet genom att mäta fasförskjutningen mellan ljuset som sänds från en extern lysdiod eller laser och det mottagna ljuset från en fotodiod. När ISL29501 sänder ut ljus (Tx) som moduleras av en fyrkantvåg med en given frekvens fm återvänder den reflekterade optiska signalen (Rx) från ett föremål till ISL29501 med minskad amplitud R med en viss fasförskjutning j (figur 1).
Figur 1: Avancerade ToF-enheter som Renesas ISL29501 använder sina interna digitala signalbehandlingsegenskaper för att beräkna avståndet till föremål baserat på fasförskjutningen j mellan utsänt och reflekterat ljus. (Bildkälla: Renesas)
Genom att mäta denna fasförskjutning kan enheten beräkna avståndet D:
Ekvation 1
Där:
D = avstånd till målet
c = ljusets hastighet
fm = moduleringsfrekvens
φ = fasvinkel (radianer)
Eftersom den modulerade frekvenssignalen fm och ljusets hastighet c är kända kan avståndet beräknas genom att hitta den återstående faktorn, fasvinkeln φ. Denna faktor kan beräknas med traditionella signalbehandlingstekniker med kvadratursignal. Här genereras i-fas- (I) och kvadratursignalkomponenterna (Q) av separata I- och Q-signalbanor som består av en demodulator, ett lågpassfilter (LPF) och en A/D-omvandlare (ADC) (figur 2).
Figur 2: För att beräkna fasvinkeln φ som krävs för avståndsberäkningen, demodulerar, filtrerar och omvandlar Renesas ISL29501 i-fas- (I) och kvadratursignalkomponenterna (Q) för ingångssignalen (VIN). (Bildkälla: Renesas)
ISL29501 innehåller en omfattande signalväg som föregår demoduleringspipelinen med ett signalbehandlingssteg med en analog frontend (AFE) som innehåller en transimpedansförstärkare (TIA) och en lågbrusförstärkare (LNA). ISL29501:s ingående signalbana följer AFE:n med en slinga med variabel förstärkning (Av) och automatisk förstärkningsstyrning (AGC) som använder sina inbyggda algoritmer för att optimera SNR.
På utgångssidan integrerar ISL29501 en emitterdrivkretskedja på kretsen som kan leverera fyrkantsvågpulser med en moduleringsfrekvens på 4,5 MHz och drivström upp till 255 mA till en lämplig emitter. För att komplettera denna funktionella arkitektur finns en intern digital signalprocessor (DSP) som hanterar beräkningarna som krävs för att generera avståndsresultat utifrån fas-, amplitud- och frekvensdata (figur 3).
Figur 3: Renesas ISL29501 kombinerar signalbanor för att driva en emitter och fotodiodbehandlingsingång tillsammans med en intern digital signalprocessor som kör algoritmer som används för att beräkna avståndet utifrån fas-, amplitud- och frekvensdata. (Bildkälla: Renesas)
Välja emittrar och fotodioder
Genom att integrera fotodiodinmatning, emitterutmatning och processningskapacitet tillhandahåller ISL29501 en flexibel hårdvarugrund för att bygga lösningar för ToF-avståndsavkänning. Funktioner som AFE- och AGC-slingor på ingångssidan och den programmerbara emitterdrivkretsen på utgångssidan är särskilt utformade för att stödja ett stort sortiment av emittrar och fotodioder. Samtidigt är effektiviteten i en komplett ToF-lösning kritiskt beroende av att emittern och fotodioden väljs och konfigureras noggrant.
När det gäller emittern, till exempel, gör ISL29501:s flexibilitet det möjligt för utvecklarna att välja från ett stort urval av infraröda (IR) lysdioder, VCSEL-lasrar (vertical-cavity surface-emitting lasers) eller andra laserenheter med kompatibla spännings-, ström- och frekvensspecifikationer. En typisk ToF-lösning är relativt okänslig för emittertyp. Dock rekommenderas att använda en NIR- (near infrared) eller MWIR-enhet (medium wavelength infrared) för att minska störningar från omgivande ljuskällor. Efter att ha valt enhet måste utvecklaren avgöra den optimala emitterpulsdrivströmmen samt eventuella DC-strömkomponenter som kan behövas. Därefter måste utvecklaren programmera enheten för att leverera puls- och DC-ström (tillval) med de separata interna D/A-omvandlare (DAC) som ingår i emitterdrivkretsens utgående kedja.
Dessutom stödjer ISL29501 många olika fotodioder, men tillämpningen och valet av emittrar spelar en viktig roll för att avgöra det optimala valet. Som med emittern hjälper en fotodiod som arbetar på NIR- eller MWIR-våglängder till att minska störningar från omgivningsljuset. Helst ska fotodiodens spektrumsvarskurva vara så snäv som möjligt med en topp som centreras på emitterns optimala våglängd för att optimera signal-brusförhållandet (SNR). Trots att fotodioden behöver maximera mängden ljus den kan samla in, medför ökningen av fotodiodytan även högre kapacitans (både övergångs- och restkapacitans), vilket kan försämra fotodiodens svarstid och dess förmåga att spåra emitterns stig- och falltider. Därför måste utvecklarna hitta den optimala balans mellan fotodiodyta och intern kapacitans som krävs för att maximera signalamplituden utan att kompromissa med prestandan.
Integrerad ToF-lösning
Digilent Pmod ToF-kortet är utformat för att påskynda utvecklingen av ToF-tillämpningar och erbjuder en färdig ToF-lösning som kombinerar Renesas ISL29501 ToF-kretsen, en Microchip Technology AT24C04D EEPROM, en IR-lysdiod samt en fotodiod i ett litet kort med sexpoliga Pmod-värd- och genomföringskontaktdon för att ansluta ytterligare Pmod-expansionskort (figur 4).
Figur 4: Digilent Pmod ToF-kortet erbjuder en komplett ToF-sensorlösning som är utformad för att anslutas till systemkort med Pmod-kontaktdon. (Bildkälla: Digilent)
Som ljuskälla och detektor kombinerar kortet OSRAM Opto Semiconductors 860 nm effektlysdiod SFH 4550 med OSRAM:s SFH 213 FA-fotodiod med snabb omkopplingstid, spektrumkänslighet från 750 till 1100 nm och toppkänslighet på 900 nm.
Även om Renesas ISL29501 inte kräver ytterligare komponenter för de förknippade lysdiod- och fotodiodenheterna, kräver den en lämplig 2,7- till 3,3-voltskälla för var och en av sina kraftdomäner som matas med separata stift för sin analoga spänningskälla (AVCC), digitala spänningskälla (DVCC) och emitterdrivkretsspänning (EVCC). De kan matas från samma källa, men Renesas rekommenderar att de tre försörjningarna isoleras. Som visas i Digilent Pmod ToF-schemat uppnår Digilent denna isolering för ToF-kortet med Murata Electronics BLM15BD471SN1D ferritkärna och kondensatorer för varje försörjning (figur 5).
Figur 5: Digilent Pmod ToF-kortet erbjuder både en direkt hårdvarulösning för snabb prototypkonstruktion samt en referenskonstruktion för anpassade ToF-system. (Bildkälla: Digilent)
Utvecklingsmiljö
Digilent hjälper dessutom till att förkorta implementeringstiden i ToF-tillämpningar med en utvecklingsmiljö som baseras på Digilent Zybo Z7-20-kortet. Kortet tillhandahåller en användningsmiljö med hög prestanda som byggts runt Xilinx Zynq XC7Z020 helt programmerbara SoC (APSoC). Denna APSoC innehåller en Arm® Cortex®-A9-processor med dubbla kärnor med omfattande programmerbar struktur, inklusive stöd för 53 200 LUT-enheter (look up tables), 106 400 vippor och 630 kilobyte block-RAM. Tillsammans med Xilinx Zynq XC7Z020 APSoC inkluderar Zybo Z7-20-kortet 1 Gb RAM, 16 Mb fyrdubbelt SPI-flashminne, flera gränssnitt, kontaktdon och sex Pmod-expansionsportar.
Digilents ZyboZ7-20 PmodToF-Demo-programdistribution är utformad för att köras på Zybo Z7-20-kortet och inkluderar programvaruutvecklingssatsen (SDK) för sitt hierarkiska Pmod ToF-blockprogramvarubibliotek. Detta bibliotek erbjuder utvecklarna ett intuitivt programmeringsgränssnitt (API) för att bygga tillämpningar som baseras på drivkretsar och stödmoduler i Xilinx SDK eller som tillhandahålls av Digilent för Pmod ToF-kortet (figur 6).
Figur 6: Digilents hierarkiska Pmod ToF-blockprogramvarubibliotek förstärker lågnivågränssnittsdrivkretsar i Xilinx SDK med moduler för Renesas ISL29501-sensor, EEPROM och Pmod ToF-tjänster. (Bildkälla: Digilent)
Digilentbiblioteket kombinerar lågnivådrivkretsar för I2C, GPIO- och UART-kommunikation från Xilinx SDK med moduler som implementerar registernivåfunktioner för Digilent Pmod ToF-kort EEPROM och Renesas ISL29501-enhet. Till exempel erbjuder ISL29501-modulen en funktion för att köra avståndsmätning med ISL29501. Eftersom ISL29501 implementerar den detaljerade uppgiftssekvens som krävs för att utföra mätningen internt, kräver körningen av avståndsmätningen endast vissa inledande inställningar och ett antal registerläsningar och -skrivningar. Digilentbibliotekets ISL29501-modul innehåller funktioner för att implementera specifika ISL29501-funktioner inklusive en för att utföra en avståndsmätning (lista 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; }
Lista 1: Programvarufunktioner som ingår i Digilent-bibliotekets ISL29501-modul implementerar registernivåfunktioner som att utföra avståndsmätning som visas här. (Kodkälla: Digilent)
Digilent-bibliotekets PmodToF-modul tillhandahåller högnivåtjänster som bygger på dessa lågnivåmoduler. För att till exempel köra och visa en mätning anropar PmodToF-modulens PmodToFCMD_MeasureCmd()-funktion ISL29501-modulens PmodToF_perform_distance_measurement()-funktion på registernivå upprepade gånger och visar genomsnittet av resultaten (lista 2).
Copy /*** 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); }
Lista 2: Programvarufunktioner som ingår i Digilentbibliotekets PmodToF-modul tillhandahåller tjänster på applikationsnivå, såsom att visa genomsnittet för flera avståndsmätningar som visas här. (Kodkälla: Digilent)
Utvecklarna kan använda hela uppsättningen av moduler i Digilents hierarkiska Pmod ToF-blockprogramvarubibliotek eller endast använda den minimala uppsättning av moduler som krävs för tillämpningen. För alla tillämpningar måste dock utvecklarna utföra kalibreringar av magnitud, överhörning och avstånd för att säkerställa precision. Magnituden är en intern kalibrering, men de andra två kräver en viss grad av inställningar. För kalibrering av överhörning blockerar utvecklarna helt enkelt de optiska enheterna med en bit skum som medföljer kortet och kör kalibreringen. Vid avståndskalibrering placerar utvecklarna ToF-kortet med optik placerat på ett känt avstånd från ett mål med hög IR-reflektionsförmåga och kör kalibreringen. Trots att ISL29501 inte inkluderar icke flyktigt minne kan utvecklarna spara nya kalibreringsvärden i Pmod ToF-kortets EEPROM och läsa in dessa värden under rutinerna för programvaruinitiering.
Den här kombinationen av färdig hårdvara och programvara utgör en färdig grund för att skapa optiska ToF-tillämpningar. För snabb prototypkonstruktion kan utvecklarna köra biblioteksdistributionens provprogramvara direkt med Digilent Pmod ToF och Zybo Z7-20-kortet. För anpassad utveckling kan utvecklarna bygga vidare på hårdvarureferenskonstruktionen som representeras av Pmod ToF-kortet samt på programvarukoden i Digilent-biblioteksdistributionen.
Slutsatser
Enkla ToF-processningskretsar hjälper till att förenkla implementeringen av ToF-lösningar för många tillämpningar, men utvecklarna måste fortfarande hitta lämpliga emittrar och fotodioder för integrering. Som visats är en mer tillgänglig lösning att använda ett färdigt ToF-tilläggskort i kombination med ett systemkort med höga prestanda, som tillsammans levererar en komplett hårdvaru-ToF-lösning. Genom att kombinera hårdvarulösningen med ett förknippat programvarubibliotek kan utvecklarna omedelbart börja konstruera prototyper för ToF-tillämpningar eller använda denna hårdvara och programvara som grund för att utforma anpassad ToF-hårdvara och -programvara.
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.




