Logo Katedry
Strona główna
Katedra Systemów Mikroelektronicznych, Wydział Elektroniki, Telekomunikacji i Informatyki, Politechnika Gdańska Logo Wydziału
English English version

Obsługa portu RS-232

Zadanie: Należy zaprojektować moduły nadajnika i odbiornika danych w standardzie RS-232 dla następujących parametrów transmisji: 8 bitów danych, bez bitu parzystości, jeden bit stopu, szybkość transmisji 9600bps bez sprzętowej kontroli przepływu.
Moduły należy połączyć tak aby odbiornik RS232 po otrzymaniu danych podawał je do sumatora i po dodaniu do nich wartości 20h, moduł nadajnika wysyłał je.

Wejścia układu:
clk_i - zegar 50MHz,
rst_i - reset asynchroniczny,
RXD_i - wejście danych,
TXD_o - wyjście danych RS232.

Należy wykonać symulację funkcjonalną oraz zweryfikować układ praktycznie poprzez zaprogramowanie płytki testowej. Weryfikacja praktyczna polega na podłączeniu wyprowadzeń zaprojektowanych modułów do portu COM1 komputera PC i uruchomieniu programu Hyperterminal.
W Hyperterminalu należy ustawić identyczne parametry transmisji jak parametry w zadaniu! Naciśnięcie klawisza na klawiaturze powinno spowodować wyświetlenie znaku o zwiększonym kodzie. Dla powyższego przypadku, dodanie 20h spowoduje zamianę liter wielkich ma małe.

Nadawanie i odbiór sygnałów w standardzie RS232 Nadawanie i odbiór sygnałów w standardzie RS232 odbywa się w sposób szeregowy, oddzielnie na dwóch liniach w kierunkach do i od urządzenia. W czasie braku transmisji sygnał na danej linii jest w stanie wysokim. Rozpoczęcie transmisji inicjowane jest przez tzw. bit startu będący "0" logicznym, który powinien trwać przez okres równy odwrotności prędkości transmisji, w naszym przypadku wynoszący 1/9600 [sekund]. Wszystkie następne informacje są przesyłane z identycznym okresem trwania. Następnie nadawane są szeregowo dane począwszy od najmniej znaczącego bitu aż do bitu najbardziej znaczącego (D0-D7). Później występuje bit parzystości, będący operacją logiczną XOR na danych D0-D7. Bit parzystości jest opcjonalny i w przypadku niniejszego zadania nie występuje. Zakończenie transmisji sygnalizowane jest bitami stopu, w ilości zazwyczaj od 1 do 2. Przykład sygnału, zgodnego z wymaganiami zadania, przenoszącego kod 01010011 przedstawiony jest na poniższym rysunku.

Transmisja RS-232
Rys.1 Przykładowa transmisja kodu 01010011 przez RS-232


Informacje dodatkowe o standardzie RS232:
http://www.fizyka.umk.pl/~ptarg/labview/folie/RS232.pdf
http://pl.wikipedia.org/wiki/RS-232

Plik ucf do zadania, płytka Digilent Spartan-3, układ Spartan-3 3S200 FT256-4:
# Clock:
NET "clk_i" LOC = "T9" ; # 50 MHz clock
# Push-buttons:
NET "rst_i" LOC = "L14" ; # pressed high BTN3
# RS232:
NET "TXD_o" LOC = "R13" ; # RS 232 TXD
NET "RXD_i" LOC = "T13" ; # RS 232 RXD