Kulkuaikaan perustuvan etäisyystunnistuksen nopea toteutus valmisratkaisun avulla
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2020-04-02
Kulkuaikatekniikan (Time-of-Flight, ToF) käyttö yleistyy koko ajan etäisyysmittauksessa ja läheisyyden tunnistuksessa monilla aloilla, muun muassa kuluttajatuote- ja teollisuuslaitesovelluksissa. Yhden sirun ToF-prosessointipiirit tekevät näiden ratkaisujen toteutuksesta yksinkertaisempaa. Kehittäjille jää kuitenkin edelleen sellaisia kriittisiä tehtäviä kuten sopivien emitterien ja fotodiodien etsiminen ja optimointi sekä näiden niiden integrointi ToF-prosessoriin. Integroidumpi lähestymistapa voi yksinkertaistaa prosessia huomattavasti ja säästää aikaa.
Digilent on kehittänyt tähän tarkoitukseen valmiin ToF-lisäkortin. Kun se yhdistetään tehokkaaseen emolevyyn ja vastaavaan ohjelmistokirjastoon, ne muodostavat kattavan ToF-laitteistoratkaisun. Niiden avulla kehittäjät voivat aloittaa välittömästi ToF-sovellusten prototyyppien kehittämisen tai käyttää tätä laitteistoa ja ohjelmistoa lähtökohtana räätälöityjen ToF-laitteiden ja -ohjelmistojen suunnittelussa.
Tässä artikkelissa kuvataan lyhyesti, miten ToF-anturit toimivat. Sen jälkeen artikkelissa esitellään Digilentin Pmod-ToF-kortti ja näytetään, miten sitä voidaan käyttää yhdessä Digilentin Zybo Z7-20 -kehitysalustan kanssa ToF-tekniikan arvioimiseen ja optisen etäisyystunnistuksen nopeaan toteutukseen omissa malleissa.
Miten ToF-anturit toimivat
ToF-antureilla on tärkeä merkitys yhä useammissa käyttökohteissa. Ajoneuvoissa ja teollisissa laitteissa nämä anturit varoittavat käyttäjiä esteistä pysäköitäessä tai muuten liikuttaessa ahtaissa tiloissa. Kuluttajasovelluksissa nämä laitteet toimivat läheisyysilmaisimina mobiilituotteissa tai kodin automaatiojärjestelmissä. Näissä ja muissa sovelluksissa optiset ToF-järjestelmät laskevat etäisyyden ulkoiseen kohteeseen tai esteeseen eri menetelmillä, joista kaikki perustuvat ulkoisen kohteen heijastaman valon ja alun perin lähetetyn valon väliseen eroon.
Kehittynyt ToF-laite, kuten ToF-pohjainen signaalinkäsittelyyn tarkoitettu Renesas ISL29501 -mikropiiri, laskee etäisyyden mittaamalla ulkoisesta ledistä tai laserista lähetetyn valon ja fotodiodista vastaanotetun valon välisen vaihesiirtymän. Kun ISL29501 lähettää neliöaallolla moduloitua valoa (Tx) tietyllä taajuudella fm, kohteesta heijastunut optinen signaali (Rx) palaa ISL29501-piiriin vaimentuneella amplitudilla R. Myös sen vaihe on siirtynyt vaihesiirtymällä j (kuva 1).
Kuva 1: kehittyneet ToF-laitteet kuten Renesas ISL29501 pystyvät digitaaliseen signaalinkäsittelyyn käyttävät sitä laskeakseen objekteihin lähetetyn ja niistä heijastuneen valon välisen vaihesiirtymän j perusteella etäisyyden objektiin. (Kuvan lähde: Renesas)
Laite voi laskea etäisyyden D mittaamalla tämän vaihesiirtymän:
Yhtälö 1
Yhtälössä:
D = etäisyys kohteeseen
c = valonnopeus
fm = modulaatiotaajuus
φ = vaihekulma (radiaania)
Koska moduloitu taajuussignaali fm ja valon nopeus c tunnetaan, etäisyys voidaan laskea selvittämällä jäljellä oleva tekijä eli vaihekulma, φ. Tämä tekijä voidaan laskea signaalinkäsittelyn perinteisillä kvadratuuritekniikoilla. Tässä demodulaattorin, alipäästösuodattimen (LPF) ja analogia-digitaalimuuntimen (ADC) sisältävät erilliset vaihe (I)- ja kvadratuuri (Q) -signaalipolut muodostavat I- ja Q-signaalikomponentit (kuva 2).
Kuva 2: Renesas ISL29501 laskee etäisyyden laskemisessa tarvittavan vaihekulman φ demoduloimalla, suodattamalla ja muuntamalla tulosignaalin (VIN) vaihe (I)- ja kvadratuuri (Q) -signaalikomponentit. (Kuvan lähde: Renesas)
ISL29501-piiri sisältää täyden signaalipolun, joka edeltää demodulaatioketjua. Tämä sisältää AFE (analog front-end) -signaalikäsittelyvaiheen transimpedanssivahvistimella (TIA) ja pienikohinaisella vahvistimella (LNA). ISL29501-piirin tulosignaalipolussa AFE-vaihetta seuraa säädettävä vahvistus (Av), automaattisen vahvistuksen säädön (AGC) sisältävä silmukka, joka optimoi signaali-kohinasuhteen (SNR) sisäänrakennettujen algoritmiensa avulla.
Lähtöpuolella ISL29501-piiri sisältää emitterin sisäänrakennetun ohjainketjun, joka kykenee lähettämään neliöaaltopulsseja 4,5 megahertsin (MHz) modulaatiotaajuudella ja syöttämään jopa 255 milliampeeria (mA) virtaa sopivaan emitteriin. Tätä toiminnallista arkkitehtuuria täydentää sisäinen digitaalinen signaaliprosessori (DSP), joka käsittelee etäisyystuloksen luomisessa tarvittavat laskennat vaihe-, amplitudi- ja taajuustiedoista (kuva 3).
Kuva 3: Renesas ISL29501 sisältää signaalipolut emitterin ohjaamiseen ja fotodiodin tulon käsittelyyn sekä sisäisen digitaalisen signaaliprosessorin, joka suorittaa etäisyyslaskennassa tarvittavat algoritmit vaihe-, amplitudi- ja taajuustietojen perusteella. (Kuvan lähde: Renesas)
Emitterien ja fotodiodien valitseminen
Koska ISL29501-piiriin on integroitu fotodiodin tulo, emitterin lähtö ja prosessointiominaisuudet, se muodostaa joustavan laitteistoperustan ToF-etäisyystunnistusratkaisujen kehittämiselle. Sellaiset ominaisuudet kuten AFE ja AGC-silmukka tulopuolella ja ohjelmoitava emitterin ohjain lähtöpuolella on tarkoitettu nimenomaan tukemaan mahdollisimman laajaa valikoimaa emittereitä ja fotodiodeja. Koko ToF-ratkaisun tehokkuuden optimointi edellyttää puolestaan emitterin ja fotodiodin huolellista valitsemista ja konfigurointia.
ISL29501-piirin joustavuuden ansiosta kehittäjät voivat esimerkiksi valita emitterin monenlaisten infrapuna (IR) -ledien, pintaemittoivien laserdiodien (VCSEL) tai muiden jännite-, virta- ja taajuusominaisuuksiltaan vastaavien laserlaitteiden joukosta. Tyypillisessä ToF-ratkaisussa emitterin tyyppi ei itse asiassa olekaan kovin ratkaiseva. NIR- (near infrared) tai MWIR (medium wavelength infrared) -laitteen käyttö on kuitenkin suositeltavaa ympäristön valonlähteiden aiheuttamien häiriöiden vähentämiseksi. Kun laite on valittu, kehittäjän pitää määrittää optimaalinen ohjausvirta emitterin pulssille sekä mahdollinen tarvittava tasavirtakomponentti. Sen jälkeen kehittäjän on ohjelmoitava laite lähettämään pulsseja ja mahdollista tasavirtaa käyttäen erillisiä sisäisiä digitaali-analogiamuuntimia (DAC), jotka on integroitu emitterilähdön ohjausketjuun.
ISL29501 voi myös tukea monenlaisia fotodiodeja, mutta sovellus ja valittu emitteri ovat keskeisessä asemassa optimaalisen vaihtoehdon määrittämisessä. Aivan kuten emitterin tapauksessa, NIR- tai MWIR-aallonpituuksia käyttävän fotodiodin valinta vähentää ympäröivän valaistuksen aiheuttamia häiriöitä. Ideaalisesti valodiodin spektrivastekäyrä on mahdollisimman kapea ja sen huippu on keskellä emitterin huippuaallonpituutta. Tämä optimoi järjestelmän signaali-kohinasuhteen (SNR). Vaikka valodiodin pitää pystyä keräämään mahdollisimman paljon valoa, valodiodin pinta-alan kasvattaminen lisää myös sen kapasitanssia (sekä liitos- että hajakapasitanssia), mikä heikentää valodiodin vasteaikaa ja sen kykyä seurata emitterin nousu- ja laskuaikoja. Tästä syystä kehittäjien on löydettävä optimaalinen tasapaino valodiodin pinta-alan ja sisäisen kapasitanssin välillä, jotta signaalin amplitudi saadaan maksimoitua suorituskyvyn heikentymättä.
Integroitu ToF-ratkaisu
Digilentin Pmod-ToF-kortti on suoraan käyttövalmis ratkaisu, joka nopeuttaa ToF-sovellusten kehittämistä. Se sisältää Renesas ISL29501 ToF -mikropiirin, Microchip Technology AT24C04D EEPROM-muistin, infrapunaledin ja fotodiodi pienellä kortilla, jossa on kuuden pinnin liittimet Pmod-isännälle ja läpiviennillePmod-laajennuskorttien lisäämistä varten (kuva 4).
Kuva 4: Digilentin Pmod-ToF-kortti on täysi ToF-anturiratkaisu, joka yhdistetään emolevyn Pmod-liittimien avulla. (Kuvan lähde: Digilent)
Valonlähteenä ja tunnistimena kortissa käytetään suuritehoista 860 nanometrin (nm) OSRAM Opto Semiconductors SFH 4550 -lediä ja OSRAM SFH 213 FA -fotodiodia, jolla on nopea kytkentäaika ja jonka spektrin herkkyys on 750–1100 nm ja huippuherkkyys 900 nm.
Vaikka Renesas ISL29501 ei tarvitse lisäkomponentteja siihen liittyviä ledejä ja fotodiodeja varten, se tarvitsee sopivan 2,7–3,3 voltin virtalähteen kullekin sen kolmesta tehoalueesta: analogisen jännitelähteen (AVCC), digitaalisen jännitelähteen (DVCC) ja emitterin ohjausjännitteen (EVCC) syötölle on omat kontaktinsa. Vaikka näiden syöttöön voidaan käyttää samaa virtalähdettä, Renesas suosittelee kaikkien kolmen syötön erottamista toisistaan. Kuten Digilentin Pmod-ToF-kaaviosta nähdään, Digilent toteuttaa tämän erottamisen ToF-kortissa kullekin syötölle järjestetyillä erillisillä Murata Electronicsin BLM15BD471SN1D-ferriittirenkailla ja kondensaattoreilla (kuva 5).
Kuva 5: Digilentin Pmod-ToF-kortti tarjoaa sekä välittömän laitteistoratkaisun nopeaan prototyyppien kehittämiseen että suunnitelmareferenssin räätälöityjä ToF-järjestelmiä varten. (Kuvan lähde: Digilent)
Kehitysympäristö
Digilent nopeuttaa ToF-sovellusten toteutusta entisestään Digilent Zybo Z7-20 -korttiin perustuvalla kehitysympäristöllä. Kortti tarjoaa erittäin tehokkaan käyttöympäristön, jossa käytetään täysin ohjelmoitavaa Xilinx Zynq XC7Z020 -SoC-piiriä (APSoC). APSoC-piiri integroi kaksiytimisen Arm® Cortex®-A9 -suorittimen ja laajan ohjelmoitavan FPGS-rakenteen, joka tukee 53 200 hakutaulua (LUT), 106 400 kiikkukytkintä ja 630 kilotavua (kt) lohkohajasaantimuistia (RAM). Xilinx Zynq XC7Z020 APSoC -piirin lisäksi Zybo Z7-20 -kortissa on 1 gigatavu (Gt) RAM-muistia, 16 megatavua (Mt) SPI flash -muistia sekä useita liitäntöjä, liittimiä ja kuusi Pmod-laajennusporttia.
Zybo Z7-20 -korttia varten suunniteltu Digilentin ZyboZ7-20 PmodToF-Demo -ohjelmistopakkaus sisältää hierarkkiselle Pmod-ToF-lohko-ohjelmistokirjastolle tarkoitetun ohjelmistokehyspaketin (SDK). Tämä kirjasto tarjoaa kehittäjille intuitiivisen API-ohjelmointirajapinnan, jolla rakentaa Xilinx SDK:n sisältämiin tai Digilentin Pmod-ToF-korttia varten tarjoamiin ohjaimiin ja tukimoduuleihin perustuvia sovelluksia (kuva 6).
Kuva 6: Digilentin hierarkkinen Pmod-ToF-lohko-ohjelmistokirjasto tukee Xilinx SDK:n matalan tason ajureita moduuleilla, jotka on tarkoitettu Renesas ISL29501 -anturille, EEPROM-muistille ja Pmod-ToF-palveluille. (Kuvan lähde: Digilent)
Digilent-kirjastossa yhdistyvät Xilinx SDK:n sisältämät matalan tason I2C-, GPIO- ja UART-tiedonsiirron ajurit sekä moduulit, joilla toteutetaan Digilentin Pmod-ToF-kortin EEPROM-muistin ja Renesas ISL29501 -piirin rekisteritason toiminnot. ISL29501-moduuli sisältää esimerkiksi toiminnon, jolla voi suorittaa etäisyysmittauksen ISL29501-piirin avulla. Koska ISL29501 toteuttaa sisäisesti kyseisen mittauksen suorittamiseksi tarvittavien toimenpiteiden sarjan tarkalleen määritetyllä tavalla, etäisyysmittauksen suorittamiseksi tarvitaan vain lyhyt alkumääritys ja joukko rekisterien luku- ja kirjoitustoimintoja. Digilent-kirjaston ISL29501-moduuli tarjoaa toiminnot, joilla toteutetaan haluttuja ISL29501-operaatioita, mm. etäisyysmittaus (listaus 1).
Kopioi 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; }
Listaus 1: Digilent-kirjaston ISL29501-moduulin sisältämät funktiot toteuttavat rekisteritason toimintoja, kuten tässä esitellyn etäisyysmittauksen. (Lähdekoodi: Digilent)
Digilent-kirjaston PmodToF-moduuli sisältää näiden matalan tason moduulien päälle rakennettuja korkeamman tason palveluja. Esimerkiksi suorittaakseen ja näyttääkseen mittauksen PmodTof-moduulin funktio ”PmodToFCMD_MeasureCmd()” kutsuu ISL29501-moduulin rekisteritason funktiota ”PmodToF_perform_distance_measurement()” toistuvasti ja näyttää tulosten keskiarvon (listaus 2).
Kopioi /*** 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); }
Listaus 2: Digilent-kirjaston PmodToF-moduulin funktiot tarjoavat sovellustason palveluja, esimerkkinä tässä kuvattu useiden etäisyysmittausten keskiarvon näyttäminen. (Lähdekoodi: Digilent)
Kehittäjät voivat käyttää kaikkia Digilentin hierarkkisen Pmod ToF -lohko-ohjelmistokirjaston moduuleja tai vain sovelluksensa vaatimia moduuleja. Kehittäjien on kuitenkin varmistettava mittaustarkkuus kussakin sovelluksessa suorittamalla magnitudin, ylikuulumisen ja etäisyyden kalibrointi. Magnitudi on sisäinen kalibrointi, mutta kaksi muuta kalibrointia edellyttävät jonkin verran valmistelua. Ylikuulumisen kalibroinnissa kehittäjät voivat peittää optiset laitteet kortin mukana toimitetulla vaahtomuovikappaleella ja suorittaa kalibroinnin. Etäisyyden kalibroinnissa kehittäjä asettaa ToF-kortin niin, että sen optiikka on jollain tunnetulla etäisyydellä IR-säteitä tehokkaasti heijastavasta kohteesta ja suorittaa sitten kalibroinnin. Vaikka ISL29501 ei sisälläkään haihtumatonta muistia, kehittäjät voivat tallentaa uudet kalibrointiarvot Pmod-ToF-kortin EEPROM-muistiin ja ladata ne ohjelmiston alustuksen aikana.
Tämä suoraan hyllystä löytyvä laitteistojen ja ohjelmistojen yhdistelmä tarjoaa käyttövalmiin alustan optisten ToF-sovelluksien kehittämiseen. Kehittäjät voivat testata prototyyppiä välittömästi kokeilemalla kirjastopaketin esimerkkiohjelmistoja Digilentin Pmod-ToF-kortilla ja Zybo Z7-20 -kortilla. Räätälöidyssä sovelluskehityksessä kehittäjät voivat hyödyntää Pmod-ToF-kortin tarjoamaa esimerkkisuunnitelmaa laitteistosta ja Digilentin kirjastopakettiin sisältyvää ohjelmistokoodia.
Yhteenveto
Vaikka yhden sirun ToF-prosessointipiirit yksinkertaistavat ToF-ratkaisujen toteuttamista monissa sovelluksissa, kehittäjien on silti haettava ratkaisuun sopivat ja siihen integroitavat emitterit ja fotodiodit. Kuten artikkelissa esitetään, helppokäyttöisempi ratkaisu on valmis ToF-laajennuskortti yhdessä suorituskykyisen emolevyn kanssa, jolloin ne tarjoavat yhdessä täyden ToF-laitteistoratkaisun. Kun tämä laitteistoratkaisu yhdistetään vastaavaan ohjelmistokirjastoon, kehittäjät voivat aloittaa välittömästi ToF-sovellusten prototyyppien kehittämisen tai käyttää tätä laitteistoa ja ohjelmistoa lähtökohtana räätälöityjen ToF-laitteiden ja -ohjelmistojen suunnittelussa.

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.