reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
reklama
© tugores34_dreamstime.com Technologie | 05 lutego 2016

Debugowanie sygnałów na szynach szeregowych przy użyciu oscyloskopów

Chęć ograniczenia wymiarów urządzeń, poboru mocy i kosztów w przemyśle elektronicznym jest powodem coraz częstszego stosowania szyn szeregowych w urządzeniach embedded. Choć szyny szeregowe pozwalają ograniczyć liczbę wyprowadzeń układów scalonych, pobór mocy i powierzchnię płytki drukowanej, to jednak ich wadą jest większa złożoność projektu.
Inżynierowie korzystający z tego typu szyn potrzebują szybkiej metody debugowania i walidacji swoich projektów. Asynchroniczny tryb pracy przyjęty w wielu standardach transmisji szeregowej stanowi wyzwanie dla systemu rejestracji i dekodowania sygnałów. Podczas, gdy analizatory protokołów są doskonałymi narzędziami do identyfikacji błędów funkcjonalnych i czasowych pojawiających się na szynach szeregowych, oscyloskopy pozwalają inżynierom izolować źródła szumów, rejestrować zaburzenia impulsowe, przeprowadzać testy kompatybilności warstwy fizycznej i mierzyć pobór mocy. Po wbudowaniu funkcji wyzwalania i dekodowania sygnałów na szynach szeregowych, oscyloskop staje się doskonałym wielofunkcyjnym narzędziem dla inżyniera pracującego nad systemami embedded.

Przechwytywanie i dekodowanie

Zanim w oscyloskopach pojawiły się dekodery sygnałów transmitowanych na szynach szeregowych, inżynierowie musieli ręcznie dekodować ramki danych. Wymagało to dobrej znajomości specyfikacji szyny szeregowej i nieco szczęścia potrzebnego podczas próby przechwycenia konkretnej ramki danych. Rysunek 1 przedstawia ramkę danych I2C przechwyconą na oscyloskopie z linią SCL (Serial Clock Line) podłączoną do kanału 1 i linią SDA (Serial Data Line) podłączoną do kanału 2. Zdekodowanie ręczne ramki danych wymaga zastosowania następującej procedury:

1. zarejestrowania ramki za pomocą oscyloskopu,
2. zarejestrowania zdjęcia ekranu,
3. otwarcia obrazu na komputerze i dodania linii pomocniczej przy każdym narastającym zboczu zegarowym,
4. przyporządkowania sygnałowi z linii SDA wartości logicznej 1 lub 0 w zależności od jego poziomu w momencie pojawienia się zbocza narastającego na linii SCL,
5. przekonwertowania wartości binarnych na heksadecymalne, bazując na specyfikacji I2C.

Zliczając takty zegara i wiedząc, że w specyfikacji I2C występuje impuls zerowy, 7 bitów adresowych, bit odczytu/zapisu, bit potwierdzenia, 8 bitów danych, kolejny bit potwierdzenia i w końcu bit stopu, możemy ustalić, że mamy do czynienia z ramką zapisu o polu adresu równym 0x29 i polu danych równym 0x04.


Rys. 1: Ręczne dekodowanie sygnału na szynie I2C

Taka metoda jest czasochłonna, a ponadto istnieje możliwość, że wychwycona ramka nie jest tą, której szukamy. Jeśli zachodzi potrzeba zdekodowania wielu ramek, potrzeby na to czas może być bardzo długi. W tej sytuacji zalety wbudowanej w oscyloskop funkcji wyzwalania i dekodowania sygnałów na szynach szeregowych stają się oczywiste. Na rysunku 2 uwidoczniono działanie tej funkcji. Dodatkowo, zastosowano tu mechanizm wyzwalania sygnałem z szyny szeregowej pozwalający szybko odnaleźć konkretny pakiet danych. Przebieg niebieski w dolnej części ekranu odpowiada zdekodowanej ramce, a pomarańczowe znaczniki w górnej części ekranu oznaczają punkt wyzwalania. Użytkownik może wykorzystać wspomnianą funkcję do szybkiego odnalezienia konkretnych danych bez potrzeby wnikania w dokładną specyfikację szyny szeregowej.


Rys. 2: Funkcja automatycznego wyzwalania i dekodowania danych na szynie I2C

Wykorzystanie pamięci segmentowanej do rejestracji konkretnych zdarzeń na szynie szeregowej

Przypuśćmy, że w systemie znajduje się kilka układów scalonych komunikujących się z mikrokontrolerem za pomocą szyny I2C i zachodzi potrzeba przeanalizowania wszystkich danych zapisywanych do konkretnego układu scalonego. Można to łatwo zrealizować ustawiając układ wyzwalania na wyszukiwanie konkretnego adresu zapisu. W wyniku tego oscyloskop zostanie wyzwolony każdorazowo po pojawieniu się tego adresu na szynie, ale wciąż trudno byłoby przeanalizować wszystkie przesyłane dane z pojedynczego przebiegu rejestrowanego przez oscyloskop.

Przychodzi tu z pomocą pamięć segmentowana. Nakazuje ona oscyloskopowi czekać na pojawienie się warunku zdefiniowanego dla układu wyzwalania, a następnie przepisuje zarejestrowany przebieg do pamięci oscyloskopu, oznaczając go znacznikiem czasowym, ponownie uzbraja układ wyzwalania i oczekuje na ponowne pojawienie się warunku koniecznego do wyzwolenia oscyloskopu.

Na rysunku 3 uwidoczniono sytuację, gdy układ wyzwalania jest aktywowany każdorazowo po pojawieniu się komendy zapisu do układu scalonego o adresie wynoszącym 0x64, a licznik zapisu do pamięci segmentowanej ustalono na 1000. Dzięki temu można prześledzić kolejne dane zapisywane do konkretnego układu scalonego, ich częstotliwość występowania i obejrzeć fizyczny przebieg odpowiadający kolejnym ramkom. Jeśli w którejś z nich pojawią się nieoczekiwane wartości, użytkownik może łatwo podejrzeć fizyczny przebieg w celu sprawdzenia jego integralności. Błędy mogą być spowodowane szumem lub wystąpieniem przepięcia.


Rys. 3: Dekodowanie danych na szynie szeregowej z wykorzystaniem pamięci segmentowanej

Wyszukiwanie impulsów zakłócających

Impulsy zakłócające sprzęgane z linią szeregową mogą powodować błędy danych lub powodować przypadkowe zresetowanie mikroprocesora. Przy użyciu tradycyjnych metod wyzwalania dostępnych w oscyloskopach mogą być one bardzo trudne do wyizolowania. Obecność cyfrowych danych szeregowych wraz z nałożonymi na nie impulsami zakłócającymi w dużym stopni utrudnia odnalezienie impulsu pojawiającego się sporadycznie.

Jedną z metod odnalezienia takiego impulsu może być zastosowanie trybu nieskończonej poświaty. W trybie tym wyświetlacz nie jest wygaszany pomiędzy kolejnymi wyświetleniami przebiegów, lecz są one stale nanoszone na poprzednie. W wyniku wyświetlania wszystkich kolejnych ramek bez wygaszania, na ekranie pojawia się przebieg z wypełnionymi wszystkimi polami bitowymi. Jeśli w przebiegu tym pojawiają się impulsy zakłócające, będą się one wyróżniały na ekranie i można je szybko zauważyć. Po stwierdzeniu obecności takiego impulsu należałoby go obejrzeć, a więc odpowiednio zaprogramować układ wyzwalania.

Jak już wspomniano, używając tradycyjnych metod wyzwalania jest to bardzo trudne. Jednak dzięki pojawieniu się oscyloskopów z ekranem dotykowym, pojawiła się też nieznana wcześniej metoda wyzwalania. Korzystając z funkcji Zone Trigger, wyzwalanie na impulsach zakłócających staje się trywialne. Na rysunku 4 widać sygnał na szynie USB z impulsem zakłócającym.


Rys. 4: Sygnał na szynie USB z impulsem zakłócającym

Aby wyzwolić oscyloskop na tym impulsie, należy jedynie narysować w odpowiednim miejscu pole i wybrać funkcję Zone 1 Must Intersect. Oscyloskop wyzwalał się wcześniej na początku ramki USB. Po włączeniu funkcji Zone Trigger otrzymuje dodatkowy warunek wyzwalania jedynie na tych ramkach, w których dodatkowo sygnał przecina narysowany obszar. Widać to na rysunku 5. Po takim zaprogramowaniu układu wyzwalania można analizować impuls zakłócający, próbując ustalić jego źródło.


Rys. 5: Wyizolowanie impulsu zakłócającego przy użyciu funkcji Zone Trigger

Wyszukiwanie źródeł szumów

A co w sytuacji, gdy w systemie nie występują przypadkowe impulsy zakłócające, lecz zamiast tego obecny jest ciągły szum? Aby zidentyfikować jego źródło trzeba zastosować inną metodę, ponieważ oscyloskopu nie można wyzwolić na szumie. Przychodzi tu z pomocą matematyczna funkcja wyznaczania transformaty FFT (Fast Fourier Transform). FFT przekształca postać czasową sygnału na jego reprezentację w dziedzinie częstotliwości. Pozwala to identyfikować składowe w widmie będące źródłem szumu. Na rysunku 6 widoczny jest zaszumiony sygnał na szynie USB.


Rys. 6: Sygnał na szynie USB z szumem niskoczęstotliwościowym

Już po pobieżnym przyjrzeniu się ramce danych USB widać, że napięcie międzyszczytowe szumu wynosi około 150 mV. Aby określić jego źródło zastosowana zostanie transformata FFT i markery szczytu (peak). Po pierwszym uruchomieniu FFT nie widać wyraźnie żadnego komponentu w widmie, odpowiedzialnego za szum. Wskazuje to na znacznie mniejszą częstotliwość sygnału zakłócającego od częstotliwości sygnału USB.


Rys. 7: Transformata FFT sygnału USB z szumem niskoczęstotliwościowym

Aby zidentyfikować źródło szumu przeskalowano oś poziomą na zakres 10 ms/dz. Przy tej podstawie czasu FFT może identyfikować składowe o niskiej częstotliwości. Na rysunku 7 widać, że źródłem szumu jest składowa o częstotliwości równej około 61 Hz. Jest to więc szum pochodzący od sieci zasilającej, która w USA pracuje właśnie na tej częstotliwości.

Innym częstym źródłem szumów pojawiających się na szynach szeregowych są generatory zegarowe pracujące na częstotliwościach rzędu MHz. Na rysunku 8 przedstawiono transformatę FFT sygnału USB z sygnałem zakłócającym pochodzącym od zegara 16 MHz. Urządzenia korzystające z bezprzewodowych sieci LAN są ponadto narażone na szumy radiowe. Na rysunku 9 widać sygnał USB z sygnałem zakłócającym mającym swoje maksimum na częstotliwości 2,4 GHz, odpowiadającej właśnie częstotliwości pracy sieci WLAN.


Rys. 8: Sygnał USB ze składową zakłócającą pochodzącą od zegara 16 MHz


Rys. 9: Sygnał USB ze składową zakłócającą 2,4 GHz pochodzącą od sieci WLAN

Podsumowanie

Inżynierowie projektujący systemy embedded wciąż podejmują wyzwania związane z projektowaniem coraz mniejszych, tańszych i bardziej energooszczędnych urządzeń. Wymaga to korzystania z coraz lepszych narzędzi do debugowania i prowadzenia pomiarów. Nowoczesne oscyloskopy DSO z wbudowaną funkcją wyzwalania i dekodowania sygnałów z szyn szeregowych nadają się znakomicie do tego celu.

Konieczność ręcznego dekodowania ramek odchodzi dzięki nim do przeszłości. Zaawansowane tryby wyzwalania sygnałami z szyn szeregowych pozwalają rejestrować konkretne, interesujące użytkownika ramki znacznie łatwiej niż dotychczas.

Pamięć segmentowana w połączeniu z układem wyzwalania sygnałami z szyn szeregowych umożliwia rejestrację i dekodowanie wielu konkretnych pakietów danych w długim okresie czasu. Nowe techniki wyzwalania, które pojawiły się wraz z pojawieniem się w oscyloskopach ekranów dotykowych umożliwiają bardzo łatwe wyizolowywanie impulsów zakłócających. Z kolei źródła szumu ciągłego mogą być identyfikowane dzięki oscyloskopowej funkcji FFT. Inżynierowie mający na biurku nowoczesny oscyloskop zyskują więc równocześnie cały zestaw narzędzi przydatnych do debugowania.

© AM Technologies

Artykuł opublikowano dzięki uprzejmości firmy AM Technologies
reklama
reklama
Załaduj więcej newsów
November 29 2016 16:13 V7.6.2-1