Projektując urządzenie oparte o mikrokontroler, często zachodzi potrzeba przesłania informacji pomiędzy komputerem, a budowanym układem. Wynika to z funkcji jaką ma pełnić aplikacja, lub zaimplementowanych w niej procedur debugujących.

Do takich zastosowań przydatne są programy zwane terminalami. W Windowsie dostępny jest standardowo program o nazwieHyperTerminal, który może pełnić podstawowe funkcje nadawczo-odbiorcze. Niestety program ten jest strasznie niepraktyczny.

1. Bray Terminal

W sieci dostępnych jest sporo programów realizujących funkcję terminala, ale mi osobiście najlepiej pracuje się na Bray Terminal. Niestety program nie jest już dostępny na macierzystej stronie projektu. Od dłuższego czasu pracowałem na wersji z 2004 roku znalezionej gdzieś w sieci.

Ostatnio coś mnie tknęło, żeby zobaczyć, czy nie pojawiła się nowa wersja (choć wątpiłem) i rzeczywiście znalazłem taką. Pojawił się Bray Terminal w wersji 20080315. Program troszeczkę się rozbudował, choć wersja, którą posiadam pisząc te słowa, jest wersją beta i działa trochę niestabilnie.

Cechy aplikacji:

  • nie wymaga instalacji (cała aplikacja, to jeden plik exe),
  • proste przesyłanie plików,
  • licznik znaków,
  • ustawiana dowolna prędkość transmisji do 256kb/s,
  • obsługa portów COM do numeru 20,
  • logowanie sesji do pliku (w trybie tekstowym lub hexadecymalnym),
  • makra,
  • skrypty,
  • miłe dodatki typu: tablica ASCII, wykres, obsługa zdalna.

2. Obsługa

Program jest dość prosty w obsłudze, chciałbym jednak przedstawić kilka ważnych rzeczy.

Dla mnie jedną z najistotniejszych cech programu jest możliwość przesyłania danych w postaci ACSII, HEX (bajt zapisany w postaci szesnastkowej), czy też DEC (bajt zapisany w postaci dziesiętnej) wpisując je bezpośrednio z klawiatury. Mało tego możemy zapisy dowolnie mieszać, a jak to zrobić przedstawię poniżej.

W polu, gdzie wpisujemy dane do wysłania oraz w makrach możemy stosować wszystkie znaki z klawiatury, a także dowolny znak ASCII używając zapisu $xx (HEX) lub #xxx (DEC). Gdy chcemy wysłać znak # lub $ musimy napisać go dwa razy ($$=$ i ##=#).

Program umożliwia także obliczenie wartości XOR przesyłanych bajtów (komenda %XOR) oraz sumy (komenda %SUM).

Bardzo ciekawą cechą programu jest możliwość wstawiania opóźnień w makrach. Robi się to stosując zapis %DLYxxxx, gdzie xxxx jest wartością z zakresu 0000 – 9999 w ms.

Aby wszystko było zrozumiałe przedstawię proste przykłady.

  • Przykład 1.
    abcdefgh123456 – wysłane zostanie: ‘abcdefgh123456′
  • Przykład 2.
    AT#013#010 – wysłane zostanie ‘AT’ oraz znacznik CR + LF (powrót karetki + nowa linia)
  • Przykład 3.
    X1##Y2##Z3##$0D$0A – wysłane zostanie ‘X1#Y2#Z3#’ oraz CR + LF
  • Przykład 4.
    $$value=123$0D – wysłane zostanie ‘$value=123′ oraz CR
  • Przykład 5.
    $01$02$03$04$05%XOR – wysłane zostaną liczby (HEX) $01 $02 $03 $04 $05 oraz obliczona wartość XOR tych bajtów, czyli $01
  • Przykład 6.
    ABC%DLY0123DEF – wysłane zostanie ‘ABC’ i po 123ms ‘DEF’
  • Przykład 7.
    $01$02$03%SUM – wysłane zostaną liczby (HEX) $01$02$03$06
Porty COM

Porty COM

Na koniec mała uwaga. Najnowsza wersja programu zaraz po jej uruchomieniu skanuje dostępne porty COM.

Okazuje się, że gdy na komputerze zainstalowane są porty Bluetooth (może ich być nawet ponad 10) program startuje bardzo długo i działa niestabilnie. Rozwiązaniem jest wyłączenie nieużywanych portów (Menadżer Urządzeń->Porty (COM i LPT)) analogicznie jak na przedstawionym zrzucie ekranu