Programowanie mikrokontrolerów. 15 stycznia 2008



Podobne dokumenty
TECHNIKA MIKROPROCESOROWA

Układ transmisji szeregowej AVR

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

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

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

Programowanie mikrokontrolerów. 8 listopada 2007

Komunikacja szeregowa UART:

Przemysłowe Sieci informatyczne

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

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

MIKROPROCESORY architektura i programowanie

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

Hardware mikrokontrolera X51

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

Czujnik zbliżeniowy indukcyjny

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

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

Programowanie mikrokontrolerów. 5 grudnia 2007

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

Kod produktu: MP01105T

IZOLATOR FOTOELEKTRYCZNY Z INTERFEJSEM SZEREGOWYM RS-232

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MAGISTRALA MODBUS W SIŁOWNIKU XSM Opis sterowania

TECHNIKA MIKROPROCESOROWA

Kod produktu: MP01105

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

Modem Bluetooth MBL-232/UK

dokument DOK wersja 1.0

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

Kod produktu: MP01611

. Rodzaje transmisji sygnału i RS-232

TECHNIKA MIKROPROCESOROWA II

Transmisja danych cyfrowych

Ćwiczenie 6 Komunikacja z komputerem (łącze RS232)

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

Zestaw przedłużacza, 4K HDMI HDBaseT, 70 m

Zestaw przedłużacza, 4K HDMI HDBaseT, 100 m

Programowanie mikrokontrolerów

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

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

Kod produktu: MP01611-ZK

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

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

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

interfejs szeregowy wyświetlaczy do systemów PLC

Programowanie mikrokontrolerów 2.0

Kod produktu: MP-BTM222-5V

Wstęp Architektura... 13

Techniki mikroprocesorowe i systemy wbudowane

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Mikrokontroler 80C51/52

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

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

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

CR232.S v2 KONWERTER CAN / RS232

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Interfejsy szeregowe TEO 2009/2010

SM211 RS485 - JBUS/MODBUS dla SM103E. Æ Instrukcja obsługi

Start Bity Bit Stop 1 Bit Par Rys. 1

SML3 październik

Konwerter RS232/RS485-RS422-2xRS485 KO-485c. Instrukcja obsługi. tel: fax:

Komunikacja w mikrokontrolerach Laboratorium

Instrukcja obsługi czytnika MM-R32

LABORATORIUM TELEINFORMATYKI W GÓRNICTWIE

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

ZL8AVR. Płyta bazowa dla modułów dipavr

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Urządzenia peryferyjne RS-232. Wykład 2

Data utworzenia Data aktualizacji Korekta 3 Il. stron 7

CM Konwerter ModBus RTU slave ModBus RTU slave

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Interfejs transmisji danych

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Moduł RS232 E054. TAP - Systemy Alarmowe Sp. z o. o. os. Armii Krajowej Poznań tel ; fax:

Instytut Teleinformatyki

Przemysłowy odtwarzacz plików MP3

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Moduł uruchomieniowy mikrokontrolera MC68HC912B32

CM Konwerter SUCOM_A Master - ModBus RTU Slave

Moduł komunikacyjny Modbus RTU w standardzie RS-485 do ciepłomierza SonoMeter 31 i przelicznika energii Infocal 9

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

Adres rejestru. szesnastkowo. Typ zmiennej. Numer funkcji Modbus. Opis zmiennej. (dziesiętnie)

MICROSENS GmbH & Co. KG - Küferstraße Hamm - Tel / FAX

Schematy Połączeń Kas Fiskalnych z Wagami Elektronicznymi

Programowanie mikrokontrolerów. 3 stycznia 2008

Instytut Teleinformatyki

Diagnostyka systemu transmisji opartego na konwerterach typu JTS

Standard transmisji równoległej LPT Centronics

Wbudowane systemy mikroprocesorowe. Interfejs RS-485. Blok peryferyjny USART

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

Transkrypt:

Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 15 stycznia 2008

RS232 Jeden z najstarszych interfejsów szeregowych Pierwotne przeznaczenie to łączenie terminali znakowych z komputerem, często z wykorzystaniem modemów Dwa typy urządzeń DTE (Data Terminal Equipment) terminal, komputer DCE (Data Communication Equipment, Data Circuit-terminating Equipment) zwykle modem Prędkości transmisji od kilkudziesięciu b/s do kilkuset kb/s, typowe wartości 1200, 2400, 4800, 9600, 19200, 38400 b/s Zasięg do kilkunastu metrów Brak jednoznacznego standardu połączeń kabli Wersja asynchroniczna i synchroniczna Skupimy się na interfejsie asynchronicznym w wersji uproszczonej 3 drutowej: RxD odbiór w DTE, nadawanie w DCE TxD nadawanie w DTE, odbiór w DCE GND masa

RS232 Sygnalizacja napięciem o wartości bezwzględnej od 3 do 25 V, typowe wartości 5, 10, 12, 15 V Dwa poziomy napięcia niski, napięcie ujemne sygnał mark, logiczna 1, stan off wysoki, napięcie dodatnie sygnał space, logiczne 0, stan on Pojedyncza transmisja asynchroniczna 1 bit startowy, space, logiczne 0 5 do 9 bitów danych, typowo 7 lub 8, najpierw najmniej znaczący (LSB) opcjonalny bit parzystości lub nieparzystości 1 bit lub 1,5 bita lub 2 bity stopu, mark, logiczna 1 Najczęściej spotykane kombinacje to 7E1 7 bitów danych, bit parzystości, 1 bit stopu 8N1 8 bitów danych, brak kontroli parzystości, 1 bit stopu Dowolnej długości przerwa między kolejnymi transmisjami

Obsługa RS232 w ATmega16 Mikrokontroler ATmega16 ma na pokładzie USART (Universal Synchronous and Asynchronous serial Receiver Transmitter), który może pracować jako RS232.

Rejestr UDR USART Data Register Są osobne rejestry nadawczy i odbiorczy (USART pracuje w trybie full duplex), widziane pod tym samym adresem wejścia-wyjścia. Zapis dokonywany jest do rejestru nadawczego. Odczyt dotyczy bufora odbiorczego. Odbierane bity są gromadzone w rejestrze odbiorczym. Odebrane dane są dodatkowo buforowane w dwuelementowej kolejce FIFO.

Rejestry UBRRH i UBRRL USART Baud Rate Registers 7 6 5 4 3 2 1 0 URSEL UBRR bity 11:8 UBRR bity 7:0 Bit URSEL (bit 7 w UBRRH) musi być ustawiony na 0. Bity 6:4 w UBRRH są zarezerwowane i należy je zerować. Szybkość transmisji wynosi BAUD = Wartość UBRR obliczamy ze wzoru UBRR = f OSC 16(UBRR + 1). f OSC 16 BAUD 1.

Rejestry UBRRH i UBRRL, przykład Częstotliwość taktowania 1 MHz. Szybkość transmisji 2400 b/s. Obliczamy f OSC 16 BAUD 1 25,04. Przyjmujemy UBRR = 25. Rzeczywista szybkość transmisji wynosi f OSC 2404 b/s. 16(UBRR + 1)

Liczba przesyłanych bitów Konfigurowana za pomocą bitu UCSZ2 z rejestru UCSRB i bitów UCSZ1, UCSZ0 z rejestru UCSRC. UCSZ2 UCSZ1 UCSZ0 liczba bitów 0 0 0 5 0 0 1 6 0 1 0 7 0 1 1 8 1 0 0 zarezerwowane 1 0 1 zarezerwowane 1 1 0 zarezerwowane 1 1 1 9

Rejestr UCSRC USART Control and Status Register C 7 6 5 4 3 2 1 0 URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL Bit 7 musi być ustawiony na 1. Bit 6 tryb pracy 0 asynchroniczny 1 synchroniczny Bity 5:4 tryb parzystości 00 bez bitu parzystości 01 wartość zarezerwowana 10 bit parzystości (ang. even parity) 11 bit nieparzystości (ang. odd parity) Bit 3 liczba bitów stopu 0 jeden bit 1 dwa bity Bity 2:1 liczba przesyłanych bitów Bit 0 polaryzacja sygnału zegara, dotyczy trybu synchronicznego

Rejestr UCSRA USART Control and Status Register A 7 6 5 4 3 2 1 0 RXC TXC UDRE FE DOR PE U2X MPCM Bit 7 Ustawiony, gdy w buforze odbiorczym są nieprzeczytane dane. Może służyć do wyzwolenia przerwania. Bit 6 Ustawiany, gdy zakończy się nadawanie ramki. Może służyć do wyzwolenia przerwania. Zerowany przez wpisane 1 lub przy wywołaniu przerwania. Bit 5 Ustawiony, gdy rejestr nadawczy jest pusty. Może służyć do wyzwolenia przerwania. Bit 4 błąd ramki Bit 3 przepełnienie kolejki odbiorczej Bit 2 błąd parzystości Bit 1 podwojenie prędkości transmisji, tylko dla trybu asynchronicznego Bit 0 włączenie trybu komunikacji wieloprocesorowej

Rejestr UCSRB USART Control and Status Register B 7 6 5 4 3 2 1 0 RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8 Bit 7 włączenie przerwania, gdy odebrano dane (ustawiony bit RXC) Bit 6 włączenie przerwania, gdy zakończono nadawanie (ustawiony bit TXC) Bit 5 włączenie przerwania, gdy rejestr nadawczy pusty (ustawiony bit UDRE) Bit 4 włączenie odbiornika, zmiana funkcji nogi PD0 na RxD Bit 3 włączenie nadajnika, zmiana funkcji nogi PD1 na TxD Bit 2 liczba przesyłanych bitów Bit 1 dziewiąty odbierany bit Bit 0 dziewiąty nadawany bit

Inicjalizacja Zaczynamy jak zwykle. RS232_init: push r16 push r17 Ustawiamy szybkosc transmisji..equ SYS_FREQ_HZ = 1000000.equ RS232_BAUD_RATE = 2400 ldi r17, high(sys_freq_hz/(16*rs232_baud_rate)-1) ldi r16, low(sys_freq_hz/(16*rs232_baud_rate)-1) out UBRRH, r17 out UBRRL, r16

Inicjalizacja, cd. Ustawiamy format ramki..equ RS232_7E1 = 1<<URSEL 1<<UPM1 1<<UCSZ1.equ RS232_8N1 = 1<<URSEL 1<<UCSZ1 1<<UCSZ0 ldi r16, RS232_8N1 out UCSRC, r16 Uaktywniamy odbiornik i nadajnik. ldi r16, 1 << RXEN 1 << TXEN out UCSRB, r16 Kończymy inicjalizację. pop r17 pop r16 ret

Wysłanie pojedynczej ramki Rejestr r16 zawiera dane do wysłania. Czekamy dopóki rejestr nadawczy jest niepusty. RS232_transmit_frame: sbis UCSRA, UDRE rjmp RS232_transmit_frame Wstawiamy dane do rejestru nadawczego i wracamy. out UDR, r16 ret

Odebranie pojedynczej ramki Rejestr r16 będzie zawierał odebrane dane. Rejestr r17 będzie zawierał kod błędu. Znacznik będzie Z ustawiony, gdy nie było błędu, a wyzerowany, gdy wystąpił błąd odbioru. Czekamy na odebranie ramki. RS232_receive_frame: sbis UCSRA, RXC rjmp RS232_receive_frame Wczytujemy znaczniki powodzenia transmisji i odebraną wartość. Ważna jest kolejność tych operacji. in r17, UCSRA in r16, UDR Maskujemy bity błędów, modyfikujemy znacznik Z i wracamy. andi r17, 1 << FE 1 << DOR 1 << PE ret

Konfiguracja sprzętu 0 w mikrokontrolerze to napięcie 0 V, a 1 to napięcie zasilania. Trzeba zastosować konwerter poziomów logicznych, np. układ MAX232. Na płytce uruchomieniowej mamy jego odpowiednik ST3232. Trzeba odłączyć nogi PD0 i PD1 od wyświetlacza LCD przez wyjęcie odpowiednich zworek. Trzeba połączyć: nogę PD1 (TxD) z wejściem TxD konwertera, nogę PD0 (RxD) z wyjściem RxD konwertera, kablem złącze DB9 na płytce uruchomieniowej z odpowiednim złączem w komputerze.

Konfiguracja oprogramowania Do komunikacji możemy użyć programu Hypherterminal. Trzeba tylko skonfigurować parametry komunikacji.

Konfiguracja w VMLAB 2400 bitów na sekundę, 8 bitów, bez parzystości, 1 bit stopu XRS232 TTY(2400 8) PD0 PD1 2400 bitów na sekundę, 7 bitów, bit parzystości, 1 bit stopu XRS232 TTY(2400 7 1) PD0 PD1

Zadania na dzisiaj Zaimplementować termometr podłączany do komputera przez RS232. Mikrokontroler w pętli: czeka na rozkaz wykonania pomiaru, dokonuje pomiaru, odsyła wynik pomiaru. Zaimplementować instrument muzyczny sterowany z komputera przez RS232. Mikrokontroler w pętli: odbiera wysokość i długość dźwięku, generuje odpowiedni dźwięk.