ransmisja danych cyfrowych Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Mariusz Rawski 1
łytka laboratoryjna U1 Education Board Mariusz Rawski 2
Standard RS 232 Standard RS-232 (Recommended Standard) został wprowadzony w 1962 roku przez Electronic ndustries Association (EA) w celu normalizacji interfejsu pomiędzy urządzeniem danych DE (Data erminal Equipment) a urządzeniem DCE (Data Commumication Equipment). omimo tego, że główny nacisk położono na zdefiniowanie interfejsu pomiędzy terminalem ( DE) a modemem (DCE), to standard ten jest również bardzo często stosowany przy szeregowej transmisji danych pomiędzy różnymi typami urządzeń DE. sierpniu 1969 roku EA wprowadziło zrewidowaną normę oznaczoną RS-232C, która prezentuje powszechnie akceptowany sposób transmisji danych na nieduże odległości (do 15 m), z niewielką szybkością (do 20 kbitów/s), przez niesymetryczne łącze. Mariusz Rawski 3
Standard RS 232 Mariusz Rawski 4
Standard RS 232 standardzie RS-232 transmisja danych odbywa się szeregowo bit po bicie, przy czym istnieje możliwość asynchronicznej transmisji znakowej lub transmisji synchronicznej. Asynchroniczna transmisja znakowa polega na przesyłaniu pojedynczych znaków, które posiadają ściśle określony format. oczątek znaku stanowi bit startu, jałowy z punktu widzenia przesyłanej informacji i służący jedynie celom synchronizacyjnym. o nim następuje pole danych, na które wprowadza się kolejne bity stanowiące treść znaku. Bezpośrednio za polem danych przewidziano bit kontrolny, służący zabezpieczeniu informacji znajdującej się na polu danych. ransmitowany znak kończy jeden lub dwa bity stopu. Mariusz Rawski 5
Standard RS 232 Mariusz Rawski 6
Standard RS 232 rzedstawiony poniżej zespół bitów tworzy jednostkę informacyjną -ramkę Cisza Start ole danych Bit(y) stopu Cisza d0 d1 d2 d3 d4 d5 d6 d7 lub bit kont rolny 1 bit 7 lub 8 bitów 1 lub 2 bity Mariusz Rawski 7
Standard RS 232 ramach jednostki informacyjnej bity przesyłane są synchronicznie - zgodnie z taktem nadajnika. Natomiast poszczególne jednostki są przesyłane asynchronicznie - ich wyprowadzanie nie jest synchronizowane żadnym sygnałem, a więc odstęp pomiędzy nimi jest dowolny. Czas trwania bitu w jednostce informacyjnej nazywa się odstępem jednostkowym. Jego odwrotność określa szybkość transmisji w bodach (1 bd = 1 bit/s). ypowe wartości szybkości transmisji przy asynchronicznej transmisji znakowej wynoszą: 1200, 2400, 4800, 9600 bd, co przy założeniu 10-bitowej długości jednostki informacyjnej i przysłaniu znaków bezpośrednio jeden za drugim odpowiada 120, 240, 480, 960 znakom na sekundę. Mariusz Rawski 8
Moduł SAR Simple Asynchronous Receiver ransmitter send sygnał do wysłania danych z portu Busn[] send dataready Busn[ ] dane do wysłania RxD linia odbiorcza Busn[7..0] BusOut[7..0] dataready sygnał odebrania danych dane na szynie BusOut[] BusOut[ ] odebrane dane xd linia nadawcza RxD xd readyosend sygnał gotowości do wysłania clock readyosend Mariusz Rawski 9
estowanie modułu SAR Mariusz Rawski 10
Moduł SAR Schemat blokowy send Automat nadawczy readyosend Busn[7..0] Rejestr VCC Data[7..0] Multiplekser xd RxD GND Rejestr przesuwający odbiorczy BusOut[7..0] Automat odbiorczy dataready clock Generacja zegara Mariusz Rawski 11
Automat odbiorczy d1 d2 d3 d4 Cisza Start Bit(y) stopu Cisza d5 d6 d7 d8 1 0 r_start X r_data1 X r_data2 X r_data3 X r_data4 r_idle 1 0 Uaktywnij rejestr przesuwający r_stop ystaw sygnał dataready X r_data8 X r_data7 X r_data6 r_data5 Mariusz Rawski 12 X X
Automat nadawczy 0 1 t_start X t_data1 X t_data2 X t_data3 X t_data4 t_idle 1 X 0 t_stop X t_data8 X t_data7 X t_data6 X t_data5 send Automat nadawczy readyosend Busn[7..0] Rejestr VCC Data[7..0] GND Multiplekser xd Mariusz Rawski 13
SAR - Realizacja arametry i stałe potrzebne do dzielnika częstotliwości Zegar dla układu nadawczego Zegar dla układu odbiorczego Dzielnik częstotliwości dla układu nadawczego Dzielnik częstotliwości dla układu odbiorczego Mariusz Rawski 14
SAR - Realizacja Rejestr przesuwający odbiorczy Uaktywnienie rejestru odbiorczego Rejestr danych do nadania Sygnał kontrolujący multiplekser wyjściowy Uaktywnienie rejestru nadawczego dla zapisania danych Synchronizacja wyjścia nadawczego Automat nadawczy Automat odbiorczy Mariusz Rawski 15
SAR - Realizacja Dzielnik częstotliwości dla ukł odbiorczego impuls w połowie zakresu liczenia Dzielnik częstotliwości dla ukł nadawczego impuls w połowie zakresu liczenia Mariusz Rawski 16
SAR - Realizacja Część odbiorcza Mariusz Rawski 17
SAR - Realizacja Automat nadawczy Mariusz Rawski 18
SAR - Realizacja Multiplekser nadawczy Mariusz Rawski 19
SAR - estowanie Mariusz Rawski 20
SAR Brak synchronizacji d1 d2 d3 d4 Cisza Start Bit(y) stopu Cisza d5 d6 d7 d8 Generator kwarcowy łytki U1 = 25,175 MHz DVALUE = 25175000 /9600 = 2622 (,395) 25,175 MHz / 2622 = 9601 Hz Błąd w dopasowaniu częstotliwości zegarów powoduje zgubienie synchronizacji d1 d2 d3 d4 Cisza Start Bit(y) stopu Cisza d5 d6 d7 d8 Rozwiązaniem jest wykorzystanie bitu startu do zsynchronizowania układu Mariusz Rawski 21
Brak synchronizacji - rozwiązanie Dzielnik częstotliwości jest uaktywniany dopiero po pojawieniu się bitu startu Umożliwia to synchronizacje ramki. Mariusz Rawski 22
SAR - estowanie Ciągle cos nie jest dobrze? Układ gubi synchronizację przy wysyłaniu ciągu znaków jeden za drugim Mariusz Rawski 23
Brak synchronizacji - rozwiązanie poprzedniej wersji, przy wysyłaniu szeregu danych jedna za drugą automat nie wchodził do stanu idle i nie mógł się zsynchronizować. Zmiana pozwala synchronizować odbiornik przy każdym odbieranym znaku. Mariusz Rawski 24
odsumowanie iele pracy przy tworzeniu prostego modułu nadawczo odbiorczego. A gdyby tak skorzystać z istniejącego rozwiązania Mariusz Rawski 25
Moduł USB Mariusz Rawski 26
Moduł USB schemat blokowy Mariusz Rawski 27
Moduł USB działanie Mariusz Rawski 28
Moduł USB tryb czytania Mariusz Rawski 29
Moduł USB tryb zapisu Mariusz Rawski 30
Moduł USB wykorzystanie Jedyne co musimy zrobić to urządzenie sterujące tym modułem clock Mariusz Rawski 31
Moduł Echo Zadaniem modułu jest generować echo odebranych danych. data[7..0] rd wr Rejestr rxf txe clock Automat Mariusz Rawski 32
Odbiór danych dle RDStrobe aitfordata DataRead inactive Mariusz Rawski 33
Nadawanie danych aitforclearosend ReadyoSend wrstrobe datasent Mariusz Rawski 34
Echo - realizacja Komunikacja USB -> Echo Sygnał zerujące automat i rejestr Komunikacja Echo -> USB ołączenie z wyświetlaczem 7- segmentowym Dwukierunkowa szyna danych Automat sterujący Mariusz Rawski 35
Echo - realizacja Rejestr przechowujący daną odebraną Bufor 3-stanowy i sygnał kontrolny dla tego bufora Dwa wyświetlacze 7- segmentowe Domyślne wartości sygnałów wyjściowych ołączenie wejść rejestru z szyną dwukierunkową data[ ] ołączenie wyjść z rejestru do szyny dwukierunkowej data[ ] Mariusz Rawski 36
Echo - realizacja Odbiór danych Nadawanie danych Sterowanie rejestrem, buforem 3-stanowym i komunikacją z USB Mariusz Rawski 37
Echo - realizacja odłączenie do wyświetlaczy 7-segmentowych Mariusz Rawski 38
Echo przypisanie numerów pinów Mariusz Rawski 39
Echo - program Otwarcie dostępu do urządzenia Okno danych wysyłanych przez naciskanie klawiszy lub z pliku Zamknięcie dostępu do urządzenia ysłanie pliku Okno wiadomości Reset programu Okno danych odebranych nformacje o liczbie bajtów wysłanych i odebranych Mariusz Rawski 40
Echo - program rojekt programu musi zawierać bibliotekę FD2XX.lib Należy dołączyć nagłówek FD2XX.h Należy zdefiniować zmienne służące do obsługi modułu USB Status portu, Zaczep do portu Liczba urządzeń Numer urządzenia ndeks urządzenia Licznik bajtów wysłanych i odebranych Mariusz Rawski 41
Otwieranie i zamykanie dostępu do urządzenia rzed należy otworzyć dostęp do urządzenia o zakończeniu pracy należy zamknąć dostęp do urządzenia Mariusz Rawski 42
ysyłanie i odbieranie danych ysłanie dwbytesorite bajtów z bufora lpbuffer Odebranie dwbytesorite bajtów i umieszczenie ich w buforze lpbuffer Mariusz Rawski 43
estowanie wysyłanie pojedynczych znaków Mariusz Rawski 44
estowanie wysyłanie pliku tekstowego Mariusz Rawski 45
Koniec projektu Mariusz Rawski 46