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
March 20 2019 22:26 V12.5.11-1