Czujniki pomiaru odległości typu ToF – poradnik projektanta

| Technika

Technologia pomiaru Time-of-Flight (ToF) jest coraz częściej stosowana do pomiaru odległości i wykrywania obiektów w wielu aplikacjach, od produktów konsumenckich po urządzenia przemysłowe. Coraz lepsza dostępność układów scalonych realizujących funkcjonalność czujnika ToF upraszcza wdrażanie tych rozwiązań, ale wciąż projektanci muszą podejmować decyzje na temat tego, jakie emitery i fotodiody należy wykorzystać oraz jak je zintegrować z procesorem ToF. Na szczęście w sprzedaży są też produkty bardziej zintegrowane, znacznie upraszczające i przyspieszające proces aplikacji.

Czujniki pomiaru odległości typu ToF – poradnik projektanta

Przykładem produktu, który oszczędza dużo pracy, jest płytka ewaluacyjna ToF firmy Digilent, która w połączeniu z wydajną płytą systemową i biblioteką oprogramowania zapewnia kompletne sprzętowe rozwiązanie czujnika ToF. Z jej użyciem można natychmiast rozpocząć prototypowanie aplikacji lub wykorzystać tę platformę sprzętową i towarzyszące jej oprogramowanie jako podstawę do własnego projektu o specyficznej funkcjonalności.

W niniejszym artykule pokrótce opisano zasadę działania czujników ToF. Następnie przedstawiono płytkę Pmod ToF firmy Digilent i pokazano, jak można jej użyć w połączeniu z zestawem Digilent Zybo Z7-20 we własnych projektach.

Zasada działania czujników ToF

Funkcja pełniona przez czujniki ToF we współczesnej technice szybko się zwiększa. Są one używane w pojazdach i sprzęcie przemysłowym, gdzie ostrzegają operatorów o przeszkodach podczas parkowania lub manewrowania albo innych obiektach znajdujących się w bliskiej odległości. W zastosowaniach konsumenckich lub systemach automatyki domowej zapewniają wykrywanie (pojawienie się) użytkownika, po to, aby wybudzić urządzenie lub włączyć podświetlenie ekranu. Działanie takie polega na emisji światła w kierunku obiektu, rejestracji jego odbicia i wyliczeniu odległości na bazie czasu propagacji na drodze do obiektu i z powrotem.

ISL29501

ISL29501 firmy Renesas to zaawansowany procesor scalony będący bazą sprzętową dla czujnika ToF. Oblicza on odległość, mierząc przesunięcie fazowe między światłem przesyłanym z zewnętrznej diody LED lub laserowej a światłem odbitym od przedmiotu z użyciem fotodiody. Nadawane światło (Tx) jest modulowane sygnałem prostokątnym z częstotliwością fm, a odbity sygnał optyczny (Rx) z obiektu wraca z przesuniętą fazą φ i mniejszą amplitudą R (rysunek 1).

 
Rys. 1. Procesor Renesas ISL29501 firmy wykorzystuje możliwości cyfrowego przetwarzania sygnałów do obliczania odległości do obiektów na podstawie pomiaru przesunięcia fazowego między światłem emitowanym i odbitym

Relacja między przesunięciem fazowym φ a odległością D jest następująca:

W powyższej zależności D to odległość do obiektu, c – prędkość światła, fm – częstotliwość modulacji, a φ to kąt fazowy (w radianach).

Ponieważ częstotliwość sygnału modulującego fm i prędkość światła c są wielkościami znanymi, odległość można obliczyć, mierząc kąt fazowy φ. Sprzętowo jest to realizowane za pomocą detektora sygnału kwadraturowego. W tym przypadku komponenty sygnału w fazie (I) i kwadraturowy (Q) są generowane przez oddzielne kanały zawierające demodulator, filtr dolnoprzepustowy (LPF) i przetwornik analogowo-cyfrowy (ADC) (rys. 2).

 
Rys. 2. Aby obliczyć kąt fazowy wymagany do obliczenia odległości, Renesas ISL29501 demoduluje, filtruje i przekształca składowe sygnału fazy (I) i kwadratury (Q) sygnału wejściowego

Blok dekodowania sygnału poprzedza część analogowa z głowicą wejściową (AFE) realizującą współpracę z czujnikiem, obwody kondycjonowania sygnału łącznie ze wzmacniaczem transimpedancyjnym (TIA) i wzmacniaczem niskoszumowym (LNA). Razem z obwodami automatycznej regulacji wzmocnienia (AGC), których działanie kontroluje odpowiedni algorytm, zapewnia to optymalny stosunek sygnału do szumu (SNR).

Po stronie wyjściowej ISL29501 ma zintegrowany driver diody nadawczej LED, zdolny do dostarczania fali nośnej o częstotliwości 4,5 MHz modulowanej sygnałem prostokątnym. Ma wydajność prądową do 255 mA, co zapewnia dużą moc promieniowania. Całość uzupełnia wewnętrzny cyfrowy procesor sygnałowy (DSP) realizujący obliczenia wymagane do przygotowania wyniku odległości na podstawie danych fazy, amplitudy i częstotliwości fali modulującej (rys. 3).

 
Rys. 3. Renesas ISL29501 zapewnia obwody sterujące diodą nadawczą LED, układy współpracujące z fotodiodą odbiorczą oraz ma wewnętrzny procesor sygnałowy z zapisanymi algorytmami realizującymi obliczenia odległości na podstawie fazy, amplitudy i częstotliwości

Dobór emiterów LED i fotodiod

Połączenie w jednym chipie obwodów wejściowych dla fotodiody, stopnia sterującego diodą LED nadajnika oraz jednostki przetwarzającej dane zapewnia łatwość użycia czujnika w projekcie. Z kolei wbudowane obwody współpracy z fotodiodą, w tym układ jej zasilania, głowica wejściowa AFE i układ regulacji wzmocnienia pozwalają na wykorzystanie różnych elementów optycznych. Jednocześnie skuteczność kompletnego rozwiązania ToF zależy przede wszystkim od starannego wyboru i konfiguracji emitera i fotodiody.

Driver nadajnika ISL29501 pozwala wybierać spośród szerokiej gamy podczerwonych diod LED, laserów z emisją krawędziową (VCSEL) lub gotowych modułów laserowych, gdy potrzebny jest duży zasięg wykrywania. W rzeczywistości typowe rozwiązanie ToF jest stosunkowo mało wrażliwe na typ użytego emitera. Niemniej jednak zaleca się stosowanie fotoelementów działających w zakresie bliskiej podczerwieni (NIR) lub podczerwieni o średniej długości fali (MWIR), aby zmniejszyć poziom zakłóceń ze źródeł światła otoczenia. Dla wybranego komponentu trzeba określić optymalny prąd sterujący w impulsie, a także wartości wymaganych komponentów pomocniczych. W kolejnym kroku trzeba zaprogramować parametry wewnętrznego drivera (prąd w impulsie i wartość składowej stałej prądu podkładu), które ustalają oddzielne wewnętrzne przetworniki cyfrowo- analogowe (DAC).

ISL29501 może współpracować z wieloma typami fotodiod. Podobnie jak w przypadku emitera, fotodioda działająca w zakresie podczerwieni NIR lub MWIR pomaga istotnie zmniejszyć poziom zakłóceń od światła otoczenia. W przypadku idealnym, krzywa czułości widmowej tego elementu powinna być możliwie wąska z wyraźnie istniejącym pikiem spektralnym wyśrodkowanym na szczytową długość fali emitera, aby zoptymalizować stosunek sygnału do szumu (SNR). Chociaż fotodioda powinna zbierać jak najwięcej światła odbitego od obiektu, zwiększenie obszaru aktywnego tego elementu zwiększa również pojemności (zarówno samego złącza PN, jak i pasożytnicze), co może wpłynąć negatywnie na czas jej reakcji i zdolność do detekcji szybkich sygnałów o charakterze impulsowym. W rezultacie projektant musi znaleźć optymalną równowagę między czułością fotodiody rozumianą jako pole powierzchni jej struktury czułej na światło i pojemności własnej elementu ograniczającej pasmo i stromość zboczy, a więc wydajność.

Zintegrowane rozwiązanie czujnika ToF

 
Rys. 4. Płytka Pmod ToF firmy Digilent stanowi kompletne rozwiązanie czujnika ToF przeznaczone do połączenia z innymi elementami systemowymi za pomocą złączy Pmod

Przykładem gotowego do użycia w projekcie aplikacji z czujnikiem ToF rozwiązania jest płytka Digilent Pmod ToF. Łączy ona w sobie omówiony wcześniej chip ISL29501 razem z pamięcią EEPROM AT24C04D firmy Microchip, diodą IR oraz fotodiodą. Jest też sześciopinowe złącze Pmod zapewniające możliwość dodawania dodatkowych kart rozszerzeń Pmod (rys. 4).

Jako tor optyczny pracują dioda LED dużej mocy SFH 4550 Osram Opto mająca pik emisji widma na 860 nm i fotodioda Osram SFH 213 FA, charakteryzująca się krótkim czas przełączania, dużą czułością widmową w zakresie 750 do 1100 nm i mająca czułość szczytową przy długości fali 900 nm.

Mimo że układ ISL29501 nie wymaga dodatkowych komponentów zewnętrz

nych dla LED i fotodiody, konieczne jest zapewnienie odpowiedniego źródła zasilania wartości od 2,7 do 3,3 V dla każdego z trzech bloków. Mają one osobne piny dla części analogowej (AVCC), cyfrowej (DVCC) i dodatkowe dla drivera emitera światła (EVCC). Chociaż końcówki te mogą być połączone i zasilanie może być dostarczane z tego samego źródła, Renesas zaleca odizolowanie tych trzech bloków. Jak pokazano na schemacie, Digilent użył do eliminacji zakłóceń koralików ferrytowych BLM15BD471SN1D firmy Murata Electronics i kondensatorów blokujących dla każdej linii zasilania (rys. 5).

 
Rys. 5. Płytka Digilent Pmod ToF to gotowe rozwiązanie sprzętowe do celów szybkiego prototypowania systemów z czujnikami ToF

Środowisko programistyczne

Firma Digilent ułatwia pracę nad przygotowaniem aplikacji z czujnikami ToF za pomocą środowiska programistycznego współpracującego z płytką ewaluacyjną Zybo Z7-20, której sercem jest programowalny układ SoC Xilinx Zynq XC7Z020 (tzw. all programmable SoC – APSoC). Integruje on dwurdzeniowy procesor Arm Cortex-A9 z rozbudowanymi zasobami programowalnymi takimi jak tabele wyszukiwania (LUT), przerzutniki flip- flop i pamięć RAM. Na płytce jest też dodatkowy 1 Gb RAM, 16 MB pamięci Flash z SPI, wiele interfejsów, złącza i sześć portów rozszerzeń Pmod.

 
Rys. 6. Biblioteki oprogramowania Pmod ToF firmy Digilent rozszerzają możliwości zapewniane przez drivery niskiego poziomu z zestawu SDK Xilinx o moduły dla czujnika Renesas ISL29501, pamięci EEPROM i Pmod ToF

Oprogramowanie towarzyszące płytce z tym chipem – ZyboZ7-20 Pmod ToF-Demo firmy Digilent, zawiera zestaw programistyczny (SDK) i biblioteki oprogramowania niezbędne do stworzenia interfejsu programowania aplikacji (API) do rozwijania aplikacji opartych na driverach i modułach zawartych w Xilinx SDK lub dostarczonych przez Digilent dla płytki Pmod ToF (rys. 6).

Biblioteka zawiera drivery niskiego poziomu do obsługi komunikacji przez I2C, GPIO i UART z Xilinx SDK z modułami i chipami zawartymi na płytce Pmod ToF Board, np. procesorem ISL29501 oraz pamięcią EEPROM. Na przykład funkcja pomiaru odległości za pomocą ISL29501 wymaga przeprowadzenia szczegółowej sekwencji operacji wymaganych do wykonania tego pomiaru. Są one realizowane przez wewnętrzne obwody ISL29501, a oprogramowanie biblioteczne zapewnia konfigurację, ustawienie rejestrów oraz potem odczyt wyniku (Listing 1).

 /* 
 ** Listing 1. Funkcje biblioteczne oprogramowania firmy Digilent
 ** dla ISL29501 realizują operacje na poziomie
 ** rejestrów i dostarczają wynik pomiaru odległości
 */

 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, &reg0x13_data, 1);
    ISL29501_WriteIIC(&myToFDevice, 0x60, &reg0x60_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;
 }

Z kolei biblioteka Pmod ToF bazuje na powyższych procedurach i dostarcza usługi wyższego poziomu. Na przykład, aby wykonać i wyświetlić pomiar, funkcja PmodToFCMD_MeasureCmd() w bibliotece PmodToF wywołuje funkcję PmodToF_perform_distance_measurement () dla ISL29501 i podaje średnią wyników (Listing 2).

 /*
 ** Listing 2. Procedury biblioteki Digilent PmodToF
 ** zapewniają usługi programistyczne wyższego rzędu,
 ** takie jak wyświetlanie średniej z serii wielu pomiarów odległości
 */
 /*** 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 fi nal
        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_GetPrefi xedMessageString(ERRVAL_SUCCESS, "", szMsg);
   UART_PutString(szMsg);
  }

Dokładność pomiarów dystansu wymaga przeprowadzenia kalibracji, gdyż w zależności od warunków konstrukcyjnych pojawiają się zakłócenia, takie jak przesłuchy z diody nadawczej do fotodiody. Skalibrować trzeba też wynik pomiaru odległości i używa się do tego referencyjnego obiektu z pianki z tworzywa sztucznego o wysokim współczynniku odbicia promieniowania IR. Po umieszczeniu obiektu przed czujnikiem wywołuje się procedurę kalibracji, a współczynniki poprawek wyliczone w wyniku jej działania są zapisywane w pamięci EEPROM.

Podsumowanie

Z pewnością jednochipowe rozwiązania procesorów pomiarowych ToF upraszczają projektowanie i wdrażanie takich rozwiązań w aplikacjach, niemniej wciąż wymagają dobrania odpowiednich emiterów i fotodiod. Na szczęście są też kompletne rozwiązania systemowe dostępne w postaci gotowych do użycia płytek oraz oprogramowania zapewniającego obsługę pomiarów.

 

Rich Miron
Digi-Key Electronics

 

Digi-Key Electronics
https://www.digikey.pl/

Dostępne nowe wydanie
Pobierz bezpłatnie