Układ transmisji szeregowej AVR

Podobne dokumenty
Programowanie mikrokontrolerów. 15 stycznia 2008

TECHNIKA MIKROPROCESOROWA

Komunikacja w mikrokontrolerach Laboratorium

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Podstawy systemów mikroprocesorowych. Interfejs USART. Interfejsy szeregowe w mikrokontrolerach AVR

Instytut Teleinformatyki

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

Programowanie mikrokontrolerów AVR z rodziny ATmega.

MIKROPROCESORY architektura i programowanie

Hardware mikrokontrolera X51

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Spis tre 1. Przedstawienie standardu Opis sprz towy AVR+MAX Wykorzystanie USARTa Przykładowe programy obsługi w j

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

Czujnik zbliżeniowy indukcyjny

Interfejsy systemów pomiarowych

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Programowanie mikrokontrolerów. 8 listopada 2007

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Interfejs urządzeń peryferyjnych

Interfejsy. w systemach pomiarowych. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

Systemy wbudowane Wykład 6 - transmisje szeregowe: UART i pochodne. Komunikacja szeregowa Notes. Rodzaje transmisji Notes. Rodzaje transmisji Notes

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Transmisja danych cyfrowych

Przetworniki analogowo-cyfrowe (A/C)

. Rodzaje transmisji sygnału i RS-232

TECHNIKA MIKROPROCESOROWA

ARS3-MODEM dokumentacja modemu radiowego do lokalnej transmisji danych w wolnych pasmach 433MHz i 868MHz

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Komunikacja w mikrokontrolerach Laboratorium

Kod produktu: MP-BTM222-5V

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

SML3 październik

Kod produktu: MP01611

SYSTEM PRZERWAŃ ATmega 32

TECHNIKA MIKROPROCESOROWA II

Zastosowania mikrokontrolerów w przemyśle

dokument DOK wersja 1.0

Wstęp Architektura... 13

Architektura komputerów

Kod produktu: MP01105T

Architektury Komputerów - Laboratorium Informatyka III rok studia dzienne

MSP430 w przykładach (8)

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

Instytut Teleinformatyki

System interfejsu RS 232C opracowali P. Targowski i M. Rębarz

Ogólne przeznaczenie i możliwości interfejsu sieciowego przepływomierza UniEMP-05 z protokołem MODBUS. ( )

Komunikacja w mikrokontrolerach Laboratorium

Instrukcja obsługi czytnika MM-R32

Kod produktu: MP01105

2.1 Porównanie procesorów

Start Bity Bit Stop 1 Bit Par Rys. 1

Programowanie mikrokontrolerów. 5 grudnia 2007

RS-H0-05 (K)* Czytnik RFID MHz Mifare. Karta użytkownika

Opis procedur asemblera AVR

Programowanie Mikrokontrolerów. Komunikacja szeregowa w standardzie EIA232 z wykorzystaniem modułu USART.

Odbiór i dekodowanie znaków ASCII za pomocą makiety cyfrowej. Znaki wysyłane przez komputer za pośrednictwem łącza RS-232.

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

Instytut Teleinformatyki

Opis bezprzewodowego układu do pomiaru oporu elektrycznego skóry

Instrukcja Obsługi. Modułu wyjścia analogowego 4-20mA PRODUCENT WAG ELEKTRONICZNYCH

Przemysłowe Sieci informatyczne

Komunikacja szeregowa UART:

TECHNIKA MIKROPROCESOROWA II

CM Konwerter ModBus RTU slave ModBus RTU slave

Konwerter DAN485-MDIP

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Architektura komputerów

Przemysłowy odtwarzacz plików MP3

Kod produktu: MP01611-ZK

RS485 MODBUS Module 6RO

Architektura komputerów. Układy wejścia-wyjścia komputera

Interfejs transmisji danych

Architektura mikrokontrolera MCS51

Interfejsy szeregowe TEO 2009/2010

RS485 MODBUS Module 6RO

Architektura mikrokontrolera MCS51

Mikrokontroler 80C51/52

2.1 Przesył danych między procesorem a tabelą zmiennych

ul. Herbaciana 9, Reguły tel. (22) fax (22)

CM Konwerter ModBus RTU slave ModBus RTU master

Instrukcja MM-717 Tarnów 2010

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

SmartDRIVE protokół transmisji szeregowej RS-485

Magistrala LIN

Komunikacja z urzadzeniami zewnętrznymi

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Plan wykładu. 1. Urządzenia peryferyjne 2. Rodzaje transmisji danych 3. Interfejs COM 4. Interfejs LPT 5. Plug and Play

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Instrukcja do oprogramowania ENAP DEC-1

Kod produktu: MP-BT-RS232

8 kanałowy przedłużacz analogowy z RS485

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Wbudowane układy peryferyjne cz. 1 Wykład 7

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

Interfejsy komunikacyjne pomiary sygnałów losowych i pseudolosowych. Instrukcja do ćwiczenia laboratoryjnego

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Transkrypt:

Układ transmisji szeregowej AVR Transmisja szeregowa/równoległa porównanie: w transmisji szeregowej dane wysyłane są bit po bicie, mniej przewodów niż w transmisji równoległej (dwa przewody elektryczne lub jeden światłowód), z natury mniejszy transfer, używana do transmisji na większe odległości, niższy koszt interfejsu (najdroższe jest łącze fizyczne - kabel, światłowód), bardziej skomplikowany interfejs zamiana informacji równoległej na szeregową i odwrotnie. Rodzaje transmisji szeregowej: asynchroniczna np. U(S)ART, synchroniczna np. TWI, SPI. Dane przesyłane asynchronicznie nie są związane z żadnym dodatkowym sygnałem synchronizują-cym, w szczególności nie towarzyszy im sygnał zegara. Transmisja przebiega zwykle bajtami przesyłanymi szeregowo w postaci ciągów bitów. Oprócz ośmiu bitów danych przesyła się dodatkowo bit startu oraz opcjonalnie bit parzystości do detekcji błędów i bit stopu. Pomiędzy nadajnikiem, a odbiornikami musi być uzgodniona częstotliwość przesyłania danych. Przy transmisji synchronicznej równolegle z ciągiem bitów danych przesyła się sygnał synchronizujący (zegarowy), który określa chwile, w których stan linii danych odpowiada ważnym wartościom kolejnych bitów. Po każdym bajcie może być dodatkowo przesłany bit parzystości. Rodzaje portów (interfejsów) szeregowych: dwukierunkowy (fullduplex) możliwość równoczesnego odbierania i nadawania danych dwie oddzielne linie do nadawania i odbioru. jednokierunkowy (halfduplex) możliwość transmisji danych tylko w jednym kierunku dane przesyłane na jednej linii.

Schemat ideowy portu szeregowego dwukierunkowego Port umożliwia: wysyłanie w postaci szeregowej, poprzez określone wyprowadzenie portu, zawartości rejestru, tzw. bufora nadajnika - na wyjściu linii portu pojawia się ciąg binarny odpowiadający zawartości wysyłanego rejestru (funkcja nadajnika transmiter). odbiór ciągu binarnego doprowadzonego do wejścia określonej linii portu i przetworzenie go na zawartość rejestru, zwanego buforem odbiornika. (funkcja odbiornika - receiver) Bufory nadajnika i odbiornika są dostępne z poziomu programu użytkownika.

Moduł USART w ATmega16. USART - uniwersalny synchroniczny/asynchroniczny port szeregowy - jest układem umożliwiającym prowadzenie prostej komunikacji szeregowej, np. pomiędzy dwoma mikrokontrolerami. Przy zastosowaniu zewnętrznych konwerterów (napięciowych, prądowych lub napięcioworóżnicowych) może być stosowany do obsługi interfejsu RS-232 (również RS-485) i połączenia z komputerem klasy PC (przez port COM). Cechy USART: dwukierunkowość (niezależne rejestry nadawania i odbioru), praca synchroniczna lub asynchroniczna, precyzyjny generator szybkości transmisji, obsługa rożnych konfiguracji ramek i kontroli parzystości, wykrywanie błędów transmisji, filtracja przeciwzakłóceniowa, trzy niezależne źródła przerwań, tryb podwójnej szybkości w trybie asynchronicznym, tryb komunikacji wieloprocesorowej. Format ramki danych

Schemat blokowy U(S)ART Struktura Układ składa się z trzech oddzielnych bloków: nadajnik, odbiornik, generator taktujący. Zasada działania - układ nadajnika: Transmisja jest inicjowana przez wpis danej do rejestru danych UDR. Jeśli dana jest 9 bitowa, wcześniej należy wpisać wartość 9-tego bitu do rejestru UCSRB - bit TXB8. Dana jest przesyłana z rejestru UDR do rejestru przesuwnego gdy : nowa dana została wpisana do UDR po tym jak wysłany został ostatni bit danej poprzedniej. Rejestr przesuwny jest ładowany natychmiast. nowa dana została wpisana do UDR zanim zakończono wysyłanie poprzedniej. Rejestr przesuwny jest ładowany dopiero po wysłaniu bitu stopu danej poprzedniej.

Zasada działania układ odbiornika: Odbiornik próbkuje sygnał na wejściu RxD z częstotliwością 16*BAUD (BAUD częstotliwość transmisji). Gdy linia jest w stanie spoczynkowym (IDLE stan wysoki), pojedyncza próbka o stanie 0 jest interpretowana jako zbocze opadające bitu startu i rozpoczyna się procedura sprawdzająca - czy stan 0 na linii jest bitem startu czy zakłóceniem. W tym drugim przypadku zbocze jest ignorowane. Po stwierdzeniu poprawności bitu startu (3 kolejne próbki z rzędu mają wartość 0), następuje odczyt bitów danej, rozpoczynając od LSB. Każdy bit próbkowany jest 3 razy i jako prawdziwa wartość interpretowana jest ta, która pojawia się w przynajmniej 2 próbkach - eliminacja zakłóceń. Kiedy do odbiornika trafia bit stopu, przechodzi on procedurę sprawdzenia poprawności jeśli z 3 próbek 2 lub 3 są zerami, ustawiana jest flaga FE (błąd ramki). Niezależnie od ewentualnego błędu ramki, ustawiana jest flaga RXC, a dana jest przesyłana do UDR. Jeśli ustawiony jest tryb odbioru danej 9 bitowej, bit RXB8 w rejestrze UCSRB jest ładowany wartością 9-tego bitu danej odebranej. UWAGA! Przed odczytaniem rejestru UDR należy więc zawsze sprawdzać stan flagi FE. Ogólna obsługa interfejsu UART: wybór prędkości transmisji wpisanie odpowiedniej wartość do rejestru prędkości, wybór 8 lub 9 bitowy format danych w rejestrze konfiguracyjnym, odblokowanie przerwania od nadajnika i/lub odbiornika (koniec wysyłania/odbioru danej), włączenie nadajnika i/lub odbiornika, uruchomienie nadawania wprowadzenie danej do rejestru danych zapisu UDR, odbiór odczyt danej z rejestru danych odczytu UDR, po sprawdzeniu flagi końca odbioru.

Dedykowane rejestry funkcyjne USART bufor danych rejestr UDR rejestry kontrolno-statusowe UCSRA, UCSRB, UCSRC rejestr prędkości transmisji UBRR(H:L) BAUD = f OSC / ( 16 ( UBRR+1 ) ). Rejestr UDR Rejestr nadawczy i odbiorczy USART współdzielą ten sam adres przestrzeni adresowej IO. Zapis do rejestru UDR spowoduje umieszczenie danych w buforze nadawczym (TXB), natomiast poprzez odczyt spod adresu tego rejestru spowoduje odczytanie danych rejestru odbiorczego (RXB). Bufor nadawczy może być nadpisany tylko wówczas, gdy jest ustawiona flaga UDRE w rejestrze UCSRA, w innym przypadku próba wpisania jest ignorowana. Wpisanie danych do buforu nadawczego, podczas gdy moduł nadawczy jest odblokowany, spowoduje przeniesienie danych do rejestru przesuwnego (jeśli rejestr przesuwny jest pusty), a to jest równoznaczne z rozpoczęciem transmisji na pinie TXD. Bufor odbiorczy składa się z dwóch buforów FIFO. Ze względu na budowę, nie należy korzystać z instrukcji bitowych pod adresem rejestru, gdyż zmienią one stan buforu.

Rejestr A kontroli i statusu - UCSRA RXC Odbiór zakończony. Flaga jest ustawiona, jeśli w buforze odbiorczym znajdują się nieodczytane dane. Flaga jest wykasowana, jeśli bufor jest pusty. Wyłączenie układu odbiornika kasuje zawartość buforu, więc i bit RXC jest także kasowany. Flaga RXC może generować przerwanie zakończenia odbioru (zob. opis RXCIE). TXC Transmisja zakończona. Flaga jest ustawiana, gdy cała ramka zostanie wysłana z nadawczego rejestru przesuwnego, oraz bufor nadawczy jest pusty. Flaga jest automatycznie kasowana przy wykonywaniu instrukcji spod wektora przerwań związanego z zakończeniem transmisji, lub może być skasowana przez wpisanie jedynki. Flaga TXC może generować przerwanie zakończenia transmisji (zob. opis bitu TXCIE). UDRE Pusty rejestr danych. FE Błędna ramka, np. bit stopu = 0 DOR Przepełnienie danych. Ten bit ma wartość 1, gdy zostało wykryte zdarzenie przepełnienia danych. Zdarzenie to następuje, gdy bufor odbiorczy jest pełny, a został wykryty kolejny bit startu. Bit jest ważny aż do odczytania buforu odbiorczego (UDR). Zapisując do UCSRA należy zawsze wpisywać temu bitowi wartość 0. PE Błąd parzystości. Bit ten ma wartość 0, gdy zawartość rejestru odbiorczego ma błąd parzystości oraz jest włączona kontrola parzystości (UPM1=1). Bit traci ważność z chwilą odczytania rejestru odbiorczego. Zapisując do UCSRA należy wpisywać 0. U2X Podwójna szybkość transmisji asynchronicznej. MPCM tryb komunikacji między procesorami.

Rejestr B kontroli i statusu - UCSRB RXCIE TXCIE UDRIE RXEN TXEN UCZ2 RXB8 TXB8 włączenie przerwań od układu odbiornika (gdy flaga TXC=1). włączenie przerwań od układu nadajnika (gdy flaga RXC=1). włączenie przerwań gdy bufor jest pusty (gdy flaga UDRE=1). włączenie odbiornika. PD0 staje się końcówką odbiornika RxD. włączenie nadajnika. PD1 staje się końcówką nadajnika TxD. rozmiar danej (wraz z UCZ1:0 z rejestru UCSRC) 9-ty bit odebranych danych, odczyt przed odczytem UDR 9-ty bit nadawanego znaku, zapis przed wpisaniem do UDR bitów nadawanych Rejestr C kontroli i statusu - UCSRC URSEL wybór rejestru Służy do przełączania dostępu między rejestrami UBRRH i UCSRC. Ma wartość 1 jeśli odczytany został rejestr UCSRC. Chcąc zapisać do rejestru UCSRC należy do tego bitu wpisywać wartość 1. Porównaj z opisem dla rejestru UBRRH. UMSEL wybór trybu pracy: asynchroniczna (0), synchroniczna (1). UPM1:0 wybór trybu parzystości, USBS wybór liczby bitów stopu. UCSZ2:0 liczba bitów w ramce danych UCPOL polaryzacja zegara w trybie synchronicznym

Rejestr prędkości transmisji UBRRH:L URSEL Wybór rejestru. Służy do przełączania dostępu między rejestrami UBRRH i UCSRC. Ma wartość 0 jeśli odczytany został rejestr UBRRH. Zapisując do rejestru UBRRH należy do tego bitu wpisywać wartość 0. Porównaj z opisem dla rejestru UCSRC. Bity 14:12 Zarezerwowane do przyszłych zastosowań, zapisując należy ustawiać na wartość 0. UBRR11:0 Rejestr szybkości transmisji (12 bitowy). Wpisanie bitów UBRR wprowadza natychmiastową zmianę preskalera w generatorze prędkości transmisji. Sposób wyznaczania szybkości transmisji BAUD i ustawień UBRR

Nastawy UBRR dla standardowych częstotliwości oscylatorów

Transmisja szeregowa - przykłady Przykład 1. init_rs: cli ldi r16, 0 out ubrrh, r16 ldi r16, 51 out ubrrl, r16 ldi r16, 0b10000110 out ucsrc, r16 ldi r16, 0b10011000 out ucsrb, r16 sei ret ; inicjalizaja ; prędkość transmisji 19200 bps ; 51 dla 16 MHz ; 25 dla 8MHZ ; tryb asynchroniczny 8 bit z jednym bitem stopu ; załączenie nadajnika, odbiornika i przerwań RXD Przykład 2. send_rs: sbis ucsra, UDRE rjmp send_rs out UDR, r16 ret ; procedura wysyłania 1 bajtu z rejestru r16 ; testowanie TXC ; wyślij bajt Przykład 3. send_str: lpm r16, z+ ; procedura wysyła łańcuch aż napotka zero cpi r16, 0 breq end_str rcall send_rs rjmp send_str end_str: ret Przykład 4. usart_rxc: push r16 ; procedura obsługi przerwania od odbiornika in r16, sreg push r16 in r24, udr rcall wr_data dec r23 brne wy_rxc ldi r23, 16 ldi r24, line1 rcall wr_instr wy_rxc: pop r16 out sreg, r16 pop r16 reti

Realizacja RS232 na USART Interfejs USART używany jest zwykle do komunikacji mikrokontrolera z komputerem PC. Odbywa się to najczęściej za pomocą standardu RS232. RS 232 interfejs szeregowy, służący w zamierzeniach do połączenia z mikrokomputerem przez modem. Obecnie umożliwia również połączenie dwóch urządzeń. Sygnały interfejsu RS-232 C Przebiegi czasowe w RS 232C Poziomy sygnałów interfejsu, dla zwiększenia odporności na zakłócenia, zawierają się w zakresie: ( 15 +15V): sygnał z zakresu: (-15V... -3V) interpretowany jest jako logiczna 1, a z zakresu: (+3V... +15V) jako logiczne 0. Maksymalne napięcia nie mogą przekroczyć ± 25V.

Sposób realizacji sprzętowej standardu RS232C. Zadaniem układu MAX232 jest konwersja sygnałów między poziomem TTL na wyprowadzeniach mikrokontrolera, a poziomem sygnału ±12V wykorzystywanym podczas transmisji łączem RS232C. Łącze to wymaga co najmniej trzech przewodów: linii nadajnika, odbiornika oraz linii odniesienia, czyli tzw. masy. Jest to zatem łącze asymetryczne. Umożliwia ono komunikację ze sobą tylko dwóch jednostek przy zastosowaniu transmisji fullduplex. Uproszczone połączenie - modem zerowy Uwaga: przewód połączeniowy skrosowany.

Wykorzystanie USART w ATmega. 1. RS-232 19200 bps; kabel 15m, jeden nadajnik, jeden odbiornik. 2. RS-485 10M bps; kabel 1200 m; transmisja półdupleksowa, 32 urządzenia (nadajniki odbiorniki) na jednej linii; standard przemysłowy (układy kontrolno-pomiarowe). 3. Moduły radiowe 433MHz 4. USB FTDI 232