Zaawansowane pomiary magistral szeregowych
Kupując markowe oscyloskopy cyfrowe warto zwracać uwagę na instalowane w nich opcje pomiarowe w kontekście przewidywanych zastosowań. Od liczby opcji uzależniona jest jednak cena przyrządu, dlatego producent daje użytkownikom możliwość wybierania własnej konfiguracji przy zakupie. Nie zamyka to oczywiście drogi do późniejszego rozszerzania oprogramowania firmowego. W artykule skoncentrujemy się na rozszerzeniach programowych dla oscyloskopów firmy Tektronix wykorzystywanych w zaawansowanych pomiarach magistral szeregowych.
Jako przyrząd, na którym były wykonywane eksperymenty opisane w artykule, służył oscyloskop MSO5204 z zainstalowanymi opcjami dobranymi pod kątem pomiarów magistral szeregowych spotykanych w nowoczesnych urządzeniach elektronicznych.
Charakterystyka oscyloskopu MSO5204
Dane techniczne oscyloskopu MSO5204 przedstawiono w tab. 1. Jest to przyrząd 4-kanałowy z wejściem dla 16-kanałowej sondy cyfrowej. Można nim analizować jednocześnie sygnały analogowe i cyfrowe. Duży wyświetlacz z ekranem dotykowym zapewnia dobry komfort pracy. Jeszcze wygodniej pracuje się po dołączeniu do oscyloskopu klawiatury i myszki USB. Jest to możliwe, ponieważ obsługa oscyloskopu jest realizowana przez aplikacje uruchamiane w systemie Windows 7 Ultimate. Parametry częstotliwościowe modelu MSO5204 są wystarczające do badania stosowanych obecnie magistral szeregowych.
Tab. 1. Najważniejsze parametry oscyloskopu MSO5204
Liczba kanałów analogowych | 4 |
Pasmo analogowe (-3 dB) | 2 GHz |
Czas narastania | 175 ps |
Rozdzielczość pionowa | 8 bitów (11 bitów w trybie Hi Res) |
Częstotliwość próbkowania | 10 GSa/s (jeden lub dwa kanały) 5 GSa/s (cztery kanały) |
Rekord | 250 Mpunktów |
Szybkość rejestracji | 250000 wfms/s >310000 wfms/s (FastFrame) |
Liczba wejść cyfrowych | 16 |
Wyświetlacz | 10,4” XGA z ekranem dotykowym |
Obsługiwane interfejsy szeregowe | I2C, SPI, CAN, LIN, FlexRay, RS-232/422/485/UART, MIL-STD-1553, USB 2.0 |
Wyzwalanie i analiza
Magistrale szeregowe wykorzystywane są do przesyłania sygnałów cyfrowych, jednak w praktyce inżynierskiej często zachodzi konieczność określania również wielu parametrów analogowych. Z tego względu do pomiarów magistral szeregowych wymagane jest użycie odpowiednich przyrządów cyfrowych. Najlepiej nadają się do tego oscyloskopy mixed signal (np. przyrządy rodziny MSO5000), umożliwiające jednoczesną obserwację sygnałów analogowych i cyfrowych. Tektronix oferuje specjalne opcje rozszerzające dla firmware’u zawierające funkcje analizy protokołów i udostępniające specjalne tryby wyzwalania zoptymalizowane pod kątem badania magistral szeregowych.
W każdym typie interfejsów szeregowych wykorzystywany jest specyficzny protokół transmisji. W większości spotykanych rozwiązań dane są przesyłane w adresowanych ramkach o stałej lub zmiennej długości. W magistralach szeregowych oprócz pojedynczej linii przesyłającej dane występują też specjalne linie sterujące, realizujące sprzętową część interfejsu. Przykładem może być linia SS (CS) w SPI, aktywująca wybrany układ peryferyjny. Sygnały tego typu mogą być wprawdzie wykorzystywane do wyzwalania oscyloskopu, jednak zdarzenia z nimi związane będą zwykle zbyt mało precyzyjne. Dużo lepsze rezultaty są uzyskiwane, gdy oscyloskop analizuje w czasie rzeczywistym pracę magistrali, a wyzwolenie następuje po rozpoznaniu ściśle określonej sytuacji.
Optymalne wyzwolenie to jednak dopiero początek dalszych działań, polegających na prawidłowym zinterpretowaniu zdarzeń uchwyconych przez oscyloskop. Czasy, w których użytkownik musiał analizować przebiegi „ręcznie” – bit po bicie – minęły już bezpowrotnie. W nowoczesnych oscyloskopach są implementowane odpowiednie funkcje, które całą tę żmudną część pracy wykonują automatycznie. Na ekranie oscyloskopu podawana jest gotowa, przetworzona informacja. Użytkownik może wybrać najbardziej dogodną dla siebie postać wyników – na przykład typowe wykresy czasowe (oscylogramy) lub tabele, w których są wyszczególniane poszczególne zdarzenia z załączonymi do nich znacznikami czasowymi. Pomiary wybranych magistral szeregowych zostaną przedstawione w dalszej części artykułu na kilku przykładach.
Pomiary interfejsów UART, RS232/422/485
Protokół stosowany w interfejsach UART, RS232/422/485 jest jednym z najprostszych i najczęściej wykorzystywanych w urządzeniach elektronicznych z magistralami komunikacyjnymi. W swojej naturalnej postaci nie przewiduje on adresowania urządzeń. Dane są przesyłane asynchronicznie dwoma liniami – oddzielnie dla każdego kierunku. Interfejs umożliwia sprzętową kontrolę przepływu za pomocą wyodrębnionych linii sterujących: RTS – żądanie nadawania, CTS – gotowość nadawania, DSR – gotowość urządzenia komunikacyjnego, DTR – gotowość terminala. Sprzętowa kontrola nie jest jednak wymagana i w wielu przypadkach transmisja jest realizowana bez niej. Jeśli jednak zachodzi potrzeba sterowania w jakiś sposób przepływem danych, ale bez linii sterujących, to w urządzeniach jest implementowany protokół XON-XOFF, w którym inicjowanie i wstrzymywanie transmisji następuje po przesłaniu wyróżnionych znaków (XON=11h, XOFF=13h). Zasadniczo wszystkie urządzenia końcowe są równorzędne, nie są wyróżniane jednostki master i slave. Interfejsy te są często wykorzystywane do transmisji danych między terminalami (np. komputerami) za pośrednictwem różnych mediów (przewód, radio, światło). Z tego względu w interfejsie występują dwa rodzaje urządzeń: terminal – DTE (Data Terminal Equipment – komputer) i modem – DCE (Data Communication Equipment). Ramka transmisyjna (rys. 1) składa się z bitu startu, 5…8 bitów danych, opcjonalnego bitu parzystości i jednego lub dwóch bitu stopu. Najczęściej stosowanym formatem danych przesyłanych omawianymi interfejsami jest format znakowy wykorzystujący kod ASCII. Zawiera on znaki alfanumeryczne oraz pewną grupę znaków sterujących. Znaki są kodowane na 7 bitach (przybierają wartości od 0 do 127). Transmisja przebiega asynchronicznie ze standardowymi prędkościami od najmłodszego do najstarszego bitu (rys. 2). Oznacza to, że w interfejsie nie ma linii zegarowej taktującej nadawanie i odbiór. W interfejsie RS-232 przyjęto dość wysokie napięcia, typowo jest to +15 („0” logiczne) i –15 V („1” logiczna). Dzięki temu uzyskano dobrą odporność transmisji na szumy, ale odbywa się to kosztem stosunkowo niewielkich prędkości przesyłania danych. W interfejsie UART napięcie 0 V odpowiada „0” logicznemu, a np. 3 V „1” logicznej.