Jako Koło Naukowe Politechniki Warszawskiej zajmujemy się kompleksowym projektowaniem i wykonywaniem urządzeń pomiarowych i elektronicznych: od projektu koncepcyjnego, poprzez schemat elektryczny, projekt płytki drukowanej PCB, projekt obudowy, oprogramowanie (firmware i software) do uruchomienia finalnego oraz testowania urządzenia. Zapraszamy do pracowni PERG, Wydział EiTI, pok. 603B oraz 230.
6. Testy
6. Testy
W celu sprawdzenia poprawnego przygotowania modułów sprzętowych oraz działania aplikacji wykonano serię podstawowych testów.
6.1. Testy kontrolerów
Zostały wykonane testy kontrolerów RS i USB zaimplementowanych na płycie UMC. Testy polegały na 100-krotnym wykonaniu zapisu/odczytu 4096 słów 16-bitowych do/z pamięci przetworników zaimplementowanych na płycie DAC. W ten sposób każdy zapis został zweryfikowany. Wyniki testu dla kontrolera RS i USB są przedstawiane kolejno w tabelach 6.1 oraz 6.2.
Tabela 6.1. Wyniki testu kontrolera RS
Tabela 6.2. Wyniki testu kontrolera USB
Na łączną liczbę zapisywanych bajtów składają się: 12 bajtów komendy zapisu nadanych 409600 oraz 7 bajtów komendy odczytu również nadanych 409600 razy.
Na łączną liczbę odczytywanych bajtów składają się:
W przypadku kontrolera RS: 8 bajtów wyniku komendy odczytu oraz 2 bajty dodatkowe (znak spacji i powrotu karetki). Razem 10 bajtów odebranych 409600 razy. Odbieranie echa komend następuje równolegle z ich nadawaniem, stąd nie wchodzą one w skład łącznie odbieranych bajtów.
W przypadku kontrolera USB: 8 bajtów wyniku komendy odczytu oraz 2 bajty potwierdzenia komendy zapisu i odczytu. Razem 10 bajtów odebranych 409600 razy. Zwarzywszy na zaimplementowaną metodę ponawiania transmisji, w przypadku nie uzyskania prawidłowej informacji zwrotnej, to przewidywania odnośnie wyników testów zostały spełnione, co jednocześnie dowodzi efektywności tej metody.
6.2. Testy generacji i akwizycji sygnałów
Przedstawiane testy generacji i akwizycji sygnałów przy pomocy przetworników LTC2207 i AD9777 zostały przedstawione w [10]. W niniejszej pracy zostały przetestowane jedynie dodane funkcje oraz poprawność działania aplikacji użytkownika.
6.2.1. Test generacji
W ramach testu generacji zostały przetestowane:
-
poprawność konfigurowania częstotliwości próbkowania,
-
poprawność generowanych wyników z sygnałami mierzonymi doświadczalnie przy pomocy oscyloskopu TDS7404B.
-
Test poprawności konfiguracji częstotliwości polegał na konfiguracji układów MAX9452 oraz AD9512, i porównaniu uzyskiwanej doświadczalnie częstotliwości z wyliczoną przez aplikację użytkownika.
Sygnałem testowym był sygnał prostokątny o wypełnieniu 50% składający się z 4096 próbek. Mierzona doświadczalnie częstotliwość próbkowania powinna wynosić tyle ile częstotliwość sygnału pomnożona 4096 razy.
Wybrane konfiguracje układów MAX9452 i AD9512i, wraz z wynikami, zostały przedstawione kolejno w tabelach 6.3 i 6.4. W przepadku testowania zgodności częstotliwości konfigurując układ MAX9452, układ AD9512 został skonfigurowany tak by nie dzielił sygnału zegarowego.
Tabela 6.4. Test konfiguracji AD9512
-
Test poprawności generacji przebiegów sygnału polegał na skonfigurowaniu częstotliwości próbkowania na 25MHz oraz wykorzystania kanału drugiego układu AD9777.
Następnie zmierzony sygnał porównano z wygenerowanym sygnałem w oknie podglądu wewnątrz aplikacji użytkownika.
Wyniki porównywania kształtów zostały przedstawione na rysunkach od 6.1 do 6.6, a wyniki porównania uzyskanych wartości międzyszczytowych sygnału prostokątnego dla różnych ustawień wzmocnienia dalej w tabeli 6.5.
Sygnał prostokątny
Rysunek 6.1. Sygnał generowany: Vpp = 919mV, czst. = 6.1kHz
Rysunek 6.2. Sygnał zmierzony TDS7404B: Vpp = 917mV, czst. = 6.1kHz
Sygnał sinusoidalny
Rysunek 6.3. Sygnał generowany: Vpp = 919mV, czst. = 24.4kHz
Rysunek 6.4. Sygnał zmierzony TDS7404B: Vpp = 913mV, czst. = 24.4kHz
Sygnał schodkowy
Rysunek 6.5. Sygnał generowany: Vpp = 919mV, czst. = 6.1kHz
Rysunek 6.6. Sygnał zmierzony TDS7404B: Vpp = 915, czst. = 6.1kHz
Tabela 6.5. Wyniki porównania wartości międzyszczytowych sygnałów
Przedstawione wyniki, odnośnie konfiguracji układów MAX9452 i AD9512 pokazują, iż użytkownik ma możliwość ustawienia częstotliwości próbkowania z dużą dokładnością. Wyniki odnośnie generacji sygnałów wykazały jednak, iż użytkownik powinien brać pod uwagę niedokładność sygnału w oknie podglądu względem rzeczywiście wygenerowanego sygnału.
Z tabeli 6.5 widać, że różnica może osiągnąć nawet ok. 12mV. Różnica ta jest spowodowana nieliniową charakterystyką przetwornika AD9777.
6.2.2. Test akwizycji
W ramach testu akwizycji zostały przetestowane:
-
moduł odpowiedzialny za układ wyzwalania,
-
poprawność odbieranych sygnałów z sygnałami mierzonymi doświadczalnie przy pomocy oscyloskopu TDS7404B.
-
Test wyzwalania polegał na uruchomieniu akwizycji z ustawionym na pewną wartość poziomu wyzwalania. Wybrane ustawienia wraz z otrzymanymi sygnałami prezentowane są na rysunkach od 6.7 do 6.11.
Rysunek 6.7. Sygnał odebrany. Ustawione wyzwolenie na 76.25mV
Rysunek 6.8. Sygnał odebrany. Ustawione wyzwolenie na 152.5mV
Rysunek 6.9. Sygnał odebrany. Ustawione wyzwolenie na 208.75mV
Rysunek 6.10. Sygnał odebrany. Ustawione wyzwolenie na 295.0mV
Rysunek 6.11. Sygnał odebrany. Ustawione wyzwolenie na 457mV
-
Test poprawności odbieranych sygnałów polegał na porównaniu kształtu, częstotliwości oraz wartości międzyszczytowych sygnałów: zmierzonego doświadczalnie z sygnałem otrzymywanym w podglądzie wew. aplikacji.
W tym celu wykorzystano generator sygnałów, generujący sygnał trójkątny, oraz drugi kanał akwizycji, w którym częstotliwość próbkowania została ustalona na 12.5MHz. Kanałowi temu została przydzielona pamięć wystarczająca na 2048 próbek, stąd wynika, iż sygnał którego k okresów jest widoczne w oknie podglądu jest o częstotliwości około 6, 1 · k [kHz].
Wyniki testu umieszczono na rysunkach począwszy od 6.12 do 6.15.
Pierwszy pomiar
Rysunek 6.12. Sygnał zmierzony TDS7404B: Vpp = 912, czst. = 12.18kHz
Rysunek 6.13. Sygnał odebrany: Vpp = 915, czst. = 12.2kHz
Drugi pomiar
Rysunek 6.14. Sygnał zmierzony TDS7404B: Vpp = 903, czst. = 42.78kHz
Rysunek 6.15. Sygnał odebrany: Vpp = 915, czst. = 42.7kHz
Prezentowane testy odnośnie układu wyzwalania, począwszy od rysunku 6.7, pokazują prawidłowe wyzwalanie akwizycji. Dalsze testy, począwszy od rysunku 6.12, odnośnie poprawności otrzymywanych sygnałów w oknie podglądu pokazują, iż ustawiana przez użytkownika częstotliwość próbkowania jest dobrym przybliżeniem rzeczywistej częstotliwości próbkowania.
Różnice w prezentowanych wynikach wynikają głównie z niedokładności oszacowania części pełnych okresów w oknie podglądu sygnału. Widoczne są również różnice w wartościach międzyszczytowych między sygnałem zmierzonym a odebranym. Wynikają one głównie z niedokładności oszacowania punktów szczytowych w oknie podglądu sygnału.
Otrzymane wyniki testów akwizycji i generacji sygnałów, pokazały prawidłowe działanie aplikacji użytkownika oraz modułów sprzętowych. Należy nadmienić, iż na bazie wyników testów, podgląd sygnału generowanego nie powinien być uznawany jako dokładne odzwierciedlenie sygnału.
6.3. Test sterowania interfejsem GPIB
W ramach testów sterowania interfejsem GPIB zostały wykonane następujące procedury pomiarowe.
-
Wykonanie prostej procedury, w której urządzenie zaadresowane i dołączone do interfejsu GPIB zwraca swój kod indentyfikacyjny. Plik z procedurą został umieszczony w katalogu "testGpib" pod nazwą "testTektronix.gpib",
-
Wykonanie prostego pomiaru częstotliwości. Plik z procedurą został umieszczony w katalogu "testGpib" pod nazwą "MeasFreqTestTektronix.gpib",
-
Wykonanie procedury wysyłającej numeryczną formę sygnału do oscyloskopu TDS7404B. Sygnał ten został wygenerowany przez przetworniki DAC, a następnie został spróbkowany przez przetwornik ADC i zapisany do pliku. Plik z procedurą został umieszczony w katalogu "testGpib" pod nazwą "ToOscWfmTestTektronix.gpib".
6.3.1. Wyniki procedury identyfikacji
Wynik procedury identyfikacji został zaprezentowany na rysunku 6.16 – w oknie podglądu wykonywanego kodu.
Rysunek 6.16. Identyfikacja TDS7404B
Jak widać z powyższego rysunku zwróconym kodem identyfikacji jest słowo "TEKTRONIX,TDS7404B,B020487,CF:91.1CTFV:4.0.4", co jest prawidłowym kodem oscyloskopu TDS7404B znajdującym się w laboratorium PERG.
6.3.2. Wyniki procedury pomiaru częstotliwości
Do procedury pomiaru częstotliwości został wygenerowany sygnał z przetwornika DAC1. Następnie została wykonana procedura pomiaru częstotliwości tego sygnału. Sygnał oraz wynik procedury są prezentowane kolejno na rysunkach 6.17 i 6.18.
Sygnał przedstawiany na rysunku 6.17 (kanał 1) został zbadany oscyloskopem TDS7404B. Odczyt częstotliwości sygnału wynosił ok 44.9 kHz. Następnie została wykonana procedura, której wynik widoczny jest na rysunku 6.18 – w oknie podglądu wykonywanego kodu.
Rysunek 6.17. Sygnał referencyjny (kanał 1)
Rysunek 6.18. Pomiar częstotliwości
Jak widać z powyższego rysunku zwróconą wartością częstotliwości sygnału jest "44.927E+3", co zgadza się w dobrym przybliżeniu z pomiarem.
6.3.3. Wynik procedury transmisji sygnału do TDS7404B
Sygnał prezentowany na rysunku 6.17 (kanał 1) w poprzednim podrozdziale został spróbkowany przez przetwornik ADC1. Wynik spróbkowana widoczny jest na rysunku 6.19 (kanał 1 ADC).
Rysunek 6.19. Spróbkowany sygnał
Spróbkowany sygnał został zapisany do pliku "data.aint". Do pliku została dopisana na początku komenda oscyloskopu "curve" pozwalająca na wysłanie sygnału do oscyloskopu TDS7404B. Nie jest to wymagane i zostało dodane tylko jako test sterowania interfejsem GPIB z pliku.
Po pełnej transmisji danych otrzymano wynik na ekranie oscyloskopu TDS7404B, który prezentowany jest na rysunku 6.20. Oscylogram ten zgadza się z wytworzonym sygnałem, co ostatecznie dowodzi prawidłowości transmisji danych. Dodatkowo test ten pokazuje, że zadania analizy sygnałów mogą zostać przeprowadzane z wykorzystaniem oscyloskopu TDS7404B, co podsumowuje ostatecznie założenie koncepcyjne o przełożeniu zadań analizy sygnałów na oscyloskop cyfrowy.
Wykonane testy dowodzą również poprawności działania modułu sprzętowego kontrolera GPIB oraz działania kodu sterującego napisanego w zaimplementowanym języku skryptowym.
Rysunek 6.20. Oscylogram sygnału
6.4. Test sterowania interfejsem I2C
Test interfejsu I2C opierał się na skonfigurowaniu i odebraniu serii próbek sygnału z przetwornika analogowo-cyfrowego MAX1037 [49] zaimplementowanego w NanoBoardzie NB1. Wyniki wartości próbek odebranych z przetwornika przy zadanym sygnale wejściowym zostały zaprezentowane w tabeli 6.6.
Widoczne różnice w próbkach oczekiwanych i odebranych są wynikiem niestabilnego sygnału próbkowanego. Różnice te są jednak niewielkie, co dowodzi poprawnego działania sprzętowych modułów i aplikacji.
Tabela 6.6. Wyniki odebranych próbek
6.5. Test sterowania interfejsem RS232C
W ramach testów sterowania interfejsem RS232C zostały wykonane następujące
testy:
-
Wysłanie/odebranie niedużego zdjęcia zapisanego w formacie .bmp,
-
Użyto interfejs wraz z możliwościami aplikacji jako komunikator, gdzie przeprowadzono rozmowę pomiędzy użytkownikiem jednego komputera a użytkownikiem drugiego komputera.
W obu testach sprawdzono poprawność nadanego i odebranego bajtu. Do testów interfejsu jako komunikatora wykorzystano program "Terminal v1.9b 20040204" [50] po stronie drugiego komputera (nie podłączonego do płyty UMC). Wyniki testów pokazane
są w tabeli 6.7.
Tabela 6.7. Wyniki nadawania/odbierania
Testy te wykazały poprawność każdego nadanego bajtu z bajtem odebranym, co dowodzi poprawności działania sprzętowych modułów oraz aplikacji.
--------------------
-
Łukasz Dymanowski. Projekt i wykonanie modułu akwizycji danych z wykorzystaniem standardu PMC. Politechnika Warszawska, 2007.
-
Maxim. MAX1036-MAX1039. http://www.datasheetcatalog.com/datasheets_pdf/M/A/X/1/MAX1037.shtml.
-
Terminal v1.9. http://www.port80h.com.pl/articles.phpfilng=pl&pg=276.