Data Acquisitor

Data Acquisitor

Jest to aplikacja, która umożliwia pobieranie danych z mikrokontrolera oraz ich prezentację na ekranie monitora. Program może aktualnie wykorzystywać następujące interfejsy:

  • port szeregowy - bezpośrednie połączenie z urządzeniem przy pomocy interfejsu RS-232,
  • port TCP/IP - połączenie z urządzeniem poprzez serwer pośredniczący uC Server,
  • port TCP/IP - bezpośrednie połączenie z urządzeniem, które posiada wbudowany serwer zgodny z uC Server.

Aplikacja wspiera dwa tryby wprowadzania danych (polecenie akwizytora):

  • wprowadzanie danych w postaci napisów (ASCII),
  • wprowadzanie danych w postaci binarnej (Hex).
Aktualnie wspierane tryby prezentacji danych to:
  • wykres liniowy,
  • wykres punktowy,
  • wykres słupkowy,
  • prezentacja danych w postaci binarnej (Hex).

Instrukcja

  1. Skonfiguruj ustawienia portu równoległego Settings -> Serial port.
  2. Wprowadź nazwę portu szeregowego: COM1, COM2, ... (Windows) lub /dev/ttyS0, ..., /dev/ttyUSB0, ... (Linux). Następnie naciśnij przycisk Connect w celu nawiązania połączenia.
  3. W polu Command wprowadź komendę, która będzie cyklicznie wysyłana do mikrokontrolera w celu pobrania nowej porcji danych.
Szczegółowa instrukcja

Przykłady użycia

Poniżej znajduje się lista przykładowych projektów, które wykorzystują program Data Acquisitor do prezentacji danych pobranych z mikrokontrolera. Jeżeli użyłeś naszego programu w jakimś projekcie i chciałbyś podzielić się efektami swojej pracy - napisz do nas na adres uctools@cmmsigma.eu.

Format ramki danych

Ramka UART - oprogramowanie wysyła i odbiera ramki danych w określonym przez użytkownika formacie. Domyślną szybkością jest 9600 baud/s, a pojedyncza ramka UART ma postać:

StartBit0Bit1Bit2Bit3 Bit4Bit5Bit6Bit7Stop
Należy pamiętać, że ewentualna modyfikacja ramki UART nie może zmieniać liczby bitów danych, która powinna wynosić 8. Ramki UART grupowane są w ramki protokołu.

Ramka polecenia - składa się z jednego bajtu nagłówka oraz bajtów właściwej komendy. Jeśli chcemy na przykład wysłać polecenie "GetData" w formacie ASCII, to do mikrokontrolera trafi następująca ramka.

7'G''e''t''D''a' 't''a'

Ramka danych - aby program mógł w sposób prawidłowy analizować dane, to każda odebrana od mikrokontrolera ramka (ramka danych) musi składać się z:

Nagłówek zawiera liczbę bajtów w pozostałej części ramki protokołu. Pole formatu określa natomiast w jaki sposób mają być interpretowane nadesłane dane: Jeśli mikrokontroler chce przesłać 4 wyniki, z których każdy zakodowany jest na 8 bitach, to taka ramka ma postać
500_000100_bData0[0:7]Data1[0:7] Data2[0:7]Data3[0:7]
W przypadku wysyłania 2 wyników, z których każdy zakodowany jest na 16 bitach, ramka ma postać
501_000010_bData0[8:15]Data0[0:7] Data1[8:15]Data1[0:7]
Jeśli natomiast mikrokontroler wysyła 1 wynik zakodowany na 32 bitach, to taka ramka ma postać
510_000001_bData0[24:31]Data0[16:23] Data0[8:15]Data0[0:7]
Zdefiniowany format ramki pozwala na przesłanie do 63 wyników, z których każdy kodowany jest na maksymalnie 32 bitach. W takim przypadku całkowity rozmiar ramki wraz z nagłówkiem wynosi 1 + 1 + 63x4 = 254 bajty.

Protokół komunikacyjny

Protokół komunikacyjny jest ustalony i polega na naprzemiennym wysyłaniu ramek przez komputer PC i mikrokontroler. Inicjatorem połączenia jest zawsze komputer PC. Oznacza to, że przebieg protokołu po stronie komputera ma postać: