Kmunikacja szeregwa UART: Serial Buses UART Universal Asynchrnus Receiver Transmitter: Standard rzwinięty już w latach 60, Prsty, uniwersalny, dbrze udkumentwany, Wlna kmunikacja: max. 1Mbit/s, P jednym przewdzie kmunikacyjnym w każdym z kierunków plus wspólna masa sygnałwa, Asynchrniczna dbirnik i nadajnik muszą wcześniej znać szybkść transmisji, Bity START i STOP nrmują przesyłanie, Mżliwe dłączenie infrmacji parzystści (kntrla błędów). źródł: Philips I2C Manual
Infrmacje: km. szeregwa Dwa pdstawwe typy kmunikacji szeregwej: synchrniczna równlegle z ciągiem bitów przesyłany jest sygnał synchrnizujący, kreślający kiedy dane są ważne (valid), asynchrniczny dane nie są związane z żadnym sygnałem synchrnizującym parametry transmisji trzeba ustawić wcześniej ręcznie, a d danych trzeba ddać pewne infrmacje mgące zsynchrnizwać dane przesyłane i dbierane (np.: ramka 8, N, 1; 8, E, 2), Nazewnictw: Prt duplekswy (dwukierunkwy) mże równcześnie nadawać i dbierać dane (analgia: telefn), Prt half-duplekswy (jednkierunkwy) jednczesny dbiór i nadawanie nie jest mżliwe (analgia: CB radi). W AVR ach mamy w pełni duplekswy (dwukierunkwy, sbne rejestry nadawania i dbiru) USART czyli transmisja asynchrniczna lub synchrniczna
Infrmacje: układ USART USART skrót d Universal Synchrnus Asynchrnus Receiver/Transmitter jest t sprzętwy kntrler transmisji szeregwej, który zamienia dane równległe (wpisywane d rejestru) na pstać szeregwą, która wysyłana jest d dbirnika, np. pprzez RS232 (p zmianie pzimów lgicznych). USART wyknuje wszelkie zadania: synchrnizację, sprawdzanie parzystści i inne niezbędne pdczas transmisji.
Infrmacje: RS232 specyfikacja Brak sygnału synchrnizująceg upraszcza znacznie transmisję, ale kniecznie należy pamiętać, że: bity wysyłane są z daną częsttliwścią (baud rate) i ta musi być jednakwa dla dbirnika i nadajnika, dbirnik mże zacząć dbiór w niedpwiednim mmencie, (rzsynchrnizwanie) - na pnwną synchrnizację ptrzeba czasu, ptrzebne są ddatkwe bity aby właściwie zaznaczyć pczątek i kniec właściwych danych. W tym celu prtkół kreśla następujące bity ddawane d transmitwanych danych: bit startu, bit parzystści, bit stpu
Układ aplikacyjny układu MAX232 źródł: TI MAX232 Datasheet
Infrmacje: RS232 - fizycznie Płączenie z PC: fizyczny rzkład wyprwadzeń gniazda DB9, znacz.: nazwa pis wypr.: TXD transmitted data dane nadawane z DTE d DCE, przy braku transmisji stan MARK 3(M), 2(F) RXD received data dane dbierane przez DTE z DCE, przy braku transmisji stan MARK 2(M), 3(F) RTS request t send żądanie nadawania, sygnalizuje gtwść DTE 7 CTS clear t send gtwść d dbiru przez DCE 8 DSR DCE ready gtwść DCE d prwadzenia transmisji 6 DTR DTE ready gtwść DTE d prwadzenia transmisji 4 DCD carrier detect wykrycie nśnej, wykrzystywane przy mdemach 1 SG signal grund masa sygnałwa, pzim dniesienia dla wszystkich sygnałów 5 RI ring indicatr sygnał dzwnienia, gdy DTE jest mdemem 9 GND signal grund masa sygnałwa dla wszystkich linii 5
Infrmacje: RS232 - fizycznie Płączenie z PC: płączenie null-mdem najłatwiejszy spsób na płączenie dwu urządzeń przez RS232 d transmisji wykrzystywane są jedynie linie Tx (3), Rx (2) raz GND - signal grund (5), zwarte sygnały kntrli transmisji zakładamy, że zarówn dbirnik, jak i nadajnik są zawsze gtwe d wymiany danych.
Infrmacje: RS232 - fizycznie Napięcia na liniach: Stan wyski (mark state) - napięcie ujemne, Stan niski (space state) - napięcie ddatnie Napięcia te mają wpływ na maksymalną długść kabla, szybkść transmisji a przede wszystkim na mgące wystąpić błędy (np. przy zakłóceniach występujących w przemyśle lepszym rzwiązaniem jest RS485). Długść linii RS232: Standard kreśla jednznacznie: 50m. Zmniejszając baud rate mżna jednak kabel wydłużyć wg tabeli.
Kd przykładwy: Inicjalizacja //! - 1 --! #define FOSC 14745600 // Clck Speed #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 vid main( vid ) {... USART_Init ( MYUBRR );... } vid USART_Init( unsigned int ubrr) { } //! - 2 --! UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; //! - 3 --! UCSRB = (1 << RXEN) (1 << TXEN); //! - 4 --! UCSRC = (1<<URSEL) (3<<UCSZ0); Kmentarz d kdu: 1. Definiując dpwiednie FOSC (pdane w Hz) raz BAUD unikamy szukania dpwiedniej wartści w tabelach na str. 159, Inicjalizacja USART: 2. ustawiamy dpwiednią prędkść transmisji (przekazaną w definicji MYUBRR przy wywłaniu funkcji inicjalizacji), 3. włączamy dbirnik raz nadajnik USARTu, 4. knfigurujemy parametry ramki interfejsu: 8 bitów danych, jeden bit stpu brak parzystści UWAGA na bit URSEL!!! źródł: ATmega8(L) Datasheet
Kd przykładwy: Transmisja vid USART_Transmit { } ( unsigned char data ) //! - 1 --! while (!( UCSRA&(1<<UDRE)) ) ; //! - 2 --! UDR = data; Funkcja wysyłająca pjedynczy bajt: 1. Pling bitu UDRE z rejestru UCSRA czekiwanie na zwlnienie bufra danych mikrkntrlera (zabezpieczenie przed zamazaniem nie wysłanych jeszcze danych), 2. Zapisanie danych d rejestru UDR wysyłka następuje autmatycznie. źródł: ATmega8(L) Datasheet
Kd przykładwy: Odbiór unsigned char USART_Receive( vid ) { //! - 1 --! while (!(UCSRA & (1<<RXC)) ) ; } //! - 2 --! return UDR; Funkcja dbierająca pjedynczy bajt: 1. Pling bitu RXC z rejestru UCSRA czekiwanie na zakńczenie dbiru danych przez blk USART UWAGA: gdy dane nie zstaną nadane mikrkntrler zatrzymuje się w tym punkcie. 2. Odczyt debranych danych z rejestru UDR raz zwrócenie ich jak wartść funkcji. źródł: ATmega8(L) Datasheet
Więcej UART / Serial Prt Wikipedia EN: http://en.wikipedia.rg/wiki/rs-232 Beynd Lgic, Interfacing The RS232 / Serial Prt: http://www.beyndlgic.rg/serial/serial.htm Intrductin t Serial Cmmunicatins: http://www.taltech.cm/resurces/intr-sc.html RS232 Tutrial: http://www.camiresearch.cm/data_cm_basics/rs232_st andard.html