15
E lektrotehni čki fakultet, Univerzitet u Beogradu Predmet : Namenski računarski sistemi Domaći zadatak : Asinhroni serijski prenos. Hardver i formati razmene podataka Profesor : Student: Dr. Lazar Saranovac Vlajić Jovan 2008 / 321

Asynchronous serial data transfer, UART and CAN controller

Embed Size (px)

Citation preview

Page 1: Asynchronous serial data transfer, UART and CAN controller

Elektrotehnički fakultet, Univerzitet u Beogradu

Predmet : Namenski računarski sistemi

Domaći zadatak : Asinhroni serijski prenos.

Hardver i formati razmene podataka

Profesor : Student:

Dr. Lazar Saranovac Vlajić Jovan 2008 / 321

Septembar 2015

Page 2: Asynchronous serial data transfer, UART and CAN controller

Sadržaj

1.Uvod………………………………………………………………………………3

2.UART……………………………………………………………………………..4

3.CAN……………………………………………………………………………….6

Literatura…………………………………………………………………………...11

2

Page 3: Asynchronous serial data transfer, UART and CAN controller

1. Uvod

Najčešći metod komunikacije između mikroprocesora i periferija u namenski računarskim sistemima je putem asinhrone serijske magistrale. Ovakva magistrala se sastoji od jednog simetričnog para žica koje povezuju mikrokontorler koji predstavlja Master na magistrali i periferije koje predstavljaju Slave uređaj na magistrali. Kad god mikrokontroler ima podatak koji želi da pošalje periferiji on to čini tako što šalje kodovan niz bitova preko svoje linije za slanje (TX-transmit wire). Podaci se prenose do periferije koja ih prima preko svoje prihvatne linije (Rx-receive wire). Komunikacija od periferije ka mikrokontroler se obalja na sličan način samo u suprotnom pravcu. Na slici 1. je prikazan blok dijagram asinhronog serijskog prenosa.

Slika1. Blok dijagram asinhronog serijskog prenosa

Ovaj vid komunikacije se nazia asinhroni zato što Master i Slave uređaj ne rade po istom taktu odnosno ne postoji CLK signal na magistrali. Umesto toga koriste se posebni bitovi koji su kodovani u samoj poruci koji se šalju od predajnika ka prijemniku i moraju biti dekodovani u prijemniku. Najčešće korišćeni uređaj za kodovanje i dekodovanje poruka na asinhronoj serijskoj magistrali je UART (Universal Asynchronous Receiver/Transmitter) U daljem tekstu bavićemo se tipovima asinhronih magistrala,kao i hardverom i formatima razmene podataka.

3

Page 4: Asynchronous serial data transfer, UART and CAN controller

1. UART (Universal Asynchronous Receiver/Transmitter)

UART predstavlja uređaj za konvertovanje paralelnog tipa podataka u serijski tip podataka i obrnuto. Komunikacioni standard je implementiran još 60-ih godina i do danas je ostao najjednostavniji,univerzalni,najbolje razumljiv i najbolje hardverski podržan standard. Kablovi za komunikaciju imaju jedan par žica,jedan za slanje podataka,drugi za primanje podataka(Tx,Rx). Serijski port šalje povorku bitova,bit po bit.Serijski tip podataka se u periferiji ponovo pretvara u paralelni tip podataka da bi mikrokontroler mogao da obrađuje podatke.Podaci koji se šalju preko UART-a su organizovani u bajtovima što je konvencionalno i podudara se sa veličinom ASCII karaktera. Osim konverzije tipa podataka koji je njegov osnovni zadatak,UART takođe menja nivoe logičkih jedinica i nula prilikom prenosa preko magistrale. Na 8-bitni podatak koji se šalje dodaju se dodatni bitovi koji se nazivaju start i stop bit,kao i bit koji vodi o računa o parnosti podatka. Brzina prenosa podataka je mnogo sporija nego kod paralelnog prenosa unutar mikrokontrolera. Zbog toga postoje standardne brzine prenosa podataka koje mogu da se koriste na ovakvoj magistrali.Format poruke koji se prenosi preko UART-a data je na slici 2.

Stop 8-bitni podatak bit

D0 D1 D2 D3 D4 D5 D6 D7Start Bit Parnosti bit Slika2. Format poruke koja se prenosi preko UART-a

Definisaćemo bitove u formatu poruke koja je prikazana na slici 2.

- Start bit predstavlja početak poruke podataka.Uglavnom se koristi da je start bit vrednosti 0 i na taj način se zna da je to početak nove poruke.

- Stop bit predstavlja kraj poruke podataka.Uglavnom se koristi da je stop bit vrednosti 1 i na taj način se zna da je to kraj tekuće poruke.

- Bit parnosti predstavlja bit za detekciju grešaka prenošene poruke. Može se računati kao bit

4

Page 5: Asynchronous serial data transfer, UART and CAN controller

parne parnosti i kao bit neparne parnosti na osnovu podataka prenošene poruke.

- Bitovi podataka D0..D7 predstavljaju prave podatke koji trebaju da budu prenešeni.

Brzina prenosa jednog bita preko serijskog porta naziva se Baud rate. Ako se prenosi 8 bitova podataka sa jednim start i jednim stop bitom, bez bita parnosti, može se ostvariti sledeća brzina prenosa (115200 baud rate =115200bits/sec ,efektivna brzina prenosa iznosi 92160 bits/sec)

UART se najčešće koristi zajedno sa RS-232 standardom za prenos podatka koji specificira električne,mehaničke,funkcionalne i proceduralne karakteristike komunikacione opreme.Kao što smo ranije napomenuli UART se sastoji od predajnika i prijemnika.Predajnik u suštini predstavlja specifični shift registar u koji se upisuju podaci u paralelnom obliku a ispisuju se bit po bit pomeranjem određenom brzinom prenosa.Prijemnik prima podatke u serijskom obliku koje zatim rekonstruiše u poslate paralelne podatke.

Ovakav način komunikacije se koristi uglavnom gde je potrebno ostvariti male troškove povezivanja mikrokontrolera i periferija u sistem.Blok dijagram UART sistema je dat na slici 3.

Slika 3. Blok dijagram UART sistema

Na serijskoj liniji kada nema prenosa signala prisutan je nivo logičke jedinice.Prenos podataka počinje kada se detekutje start bit čija je vrednost jednaka nuli.Na slici 4 su prikazane strukture UART predajnika i prijemnika.

5

Page 6: Asynchronous serial data transfer, UART and CAN controller

Slika 4. Struktura UART predajnika i prijemnika

U registar predajnika TDR upisuje se osmobitni podataka sa magistrale podataka . Zatim se taj osmobitni podataka upisuje u šift registar TSR. Prvo se iz šift registra generiše start bit čija je standardna vrednost jednaka nuli a zatim se podaci pomeraju udesno 8puta bit po bit. Na kraju generiše se i stop bit čija je vrednost jednaka 1. UART prijemnik očekuje na svom ulazu RxD start bit,kada ga detekuje serijski podaci se smeštaju u registar RSR zajedno sa start,stop bitom. Nakon primljenog stop bita koji označava kraj poruke svi podaci se iz RSR registra upisuju u RDR. Zatim se ti podaci šalju na magstralu podataka ka mikrokontroleru. Na UART magistrali moraju unapred postojati određeni uslovi između prijemnika i predajnika a to su :- Brzina prenosa podataka (Baud rate)- Broj bita podataka i stop bitova- Upotreba bita parnosti

UART se vrlo često koristi za veliki broj perifernih uređaja. Navešćemo neke od njih koji se koriste u namenski računarskim sistemima :1. GSM/GPRS modemi2. Bluetooth modemi3. GPS prijemnici

2. CAN (Controller Area Networking )

CAN magistrala je definisana kasnih 80-ih godina od strane firme Bosch koja se prvobitno koristila u automobilskoj industriji. Kasnije se otkrilo da može biti veoma korisna i široko primenljiva i u industrijskim sistemima. Ova magistrala podržava više master uređaja na njoj za povezivanje elektronskih kontrolnih sistema.Svaki sistem može da šalje i prima poruke ali ne simultano. Poruka se uglavnom sastoji od identifikatora (ID) koji predstavljaju prioritet poruke i 8 bajtova podataka. Poruka se prenosi serijski na magistralu. Uređaji koji koriste CAN magistralu su uglavnom senzori,aktuatori i drugi kontrolni uređaji.Ovi uređaji nisu direktno vezani na magistralu već preko CAN kontrolera.CAN kontroler je sofisticiran uređaj,preko njega skoro sve funkcije CAN protokola se automatski odrađuju bez potrebe uticaja mikrokontrolera. Najbitnije je da se na početku on konfiguriše upisivanjem podataka u njegove register dok on kasnije vrši operacije samostalno I šalje poruke na magistralu.Struktura CAN kontrolera je prikazana na slici 5.

6

Page 7: Asynchronous serial data transfer, UART and CAN controller

Slika 5. Struktura CAN kontrolera

Prema slici 5 možemo primetiti da se CAN kontroler sastoji od više blokova koje ćemo objasniti.

CAN Core Block – ima ulogu da kontroliše prijem i slanje CAN poruka prema CAN specifikaciji.Interface Management Logic - ima ulogu povezivanja CAN kontrolera sa mikrokontrolerom preko multipleksirane magistrale adresa i podataka.Transmit Buffer – služi za skladištenje cele CAN poruke.Kada je prenos podataka od strane mikrokontrolera u toku poruka se upisuje u bafer na jednoj strani i zatim se čita iz njega od strane CAN Core Block-a.Acceptance Filter – ima ulogu da filtrira i prosleđuje poruku konvertovanu iz serijskog u paraleleni tip podataka ka mikrokontroleru.Receive FIFO – služi za skladištenje poruka koje su prihvaćene od strane Acceptance Filter-a koje se zatim šalju ka mikrokontroleru.

Uređaji na CAN magistrali se nazivaju čvorovima i u zavisnosti od njihove funkcije primaju ili šalju specifične poruke. CAN čvor treba da sadrži mikrokontroler,CAN kontroler,primopredajnik.

Mikrokontroler odlučuje koje poruke su relevantne za njega i koje on želi da pošalje. Senzori,akutatori i kontrolni uređaji mogu biti povezani na mikrokontroler.

CAN kontroler ima dvojaku ulogu,slanje i primanje poruka sa magistrale. Prilikom primanja poruke kontroler prima serijski podatak sa magistrale dok cela poruka ne bude dostupna a zatim je prosleđuje mikrokontroleru. Prilikom slanja podataka,mikrokontroler prosleđuje poruku CAN kontroleru koji zatim šalje bitove na serijsku magistralu.

7

Page 8: Asynchronous serial data transfer, UART and CAN controller

Primopredajnik prilagođava nivoe signala sa magistrale na CAN kontroler i obratno.Takođe on ima i zaštitnu ulogu kojom štiti kontroler od spoljnih uticaja.Na sledećoj slici prikazano je povezivanje CAN uređaja na magistralu.

Slika 6. Blok šema povezivanja CAN uređaja na magistralu

Karakteristike CAN magistrale :

- Moristi upreden kabl

- Maksimalna frekvencija signala do 1Mbit/sec

-Dužina se obično kreće 40m

-Velika pouzdanost i efikasan sistem kontrole grešaka

-Uređaji nemaju specifične adrese

Funkcionisanje CAN magistrale

Svakom čvoru dodeljen je jedinstveni idnetifikacioni broj koji predstavlja binarnu prezentaciju broja čvora.(na primer ako je čvor 5,dodeljen je identifikacioni broj 101) Svi čvorovi koji žele da

8

Page 9: Asynchronous serial data transfer, UART and CAN controller

pošalju poruku bore se za svoje mesto na magistrali tako što šalju binarni signal koji predstavlja njihov identifikacioni broj.Čvor sa najmanjim identifikacionim brojem pobeđuje i dobija pravo na korišćenje magistrale.

Format poruka na CAN magistrali

Format poruka na CAN magistrali prikazan je na slici 7.

SOF MID RTR CONTROL DATA CRC ACK EOF

Slika 7. Format poruka na CAN magistrali

SOF – Početak poruke (Start Of Frame )

MID – Identifikator poruke ( Message Identifier ) Što je manja vrednost to poruka ima veći prioritet. Dužina je od 11 do 29 bita u zavisnosti od standard koji se koristi.

RTR - Remote Transmission Request. Zahtev za slanje,inicijalna vrednost jednaka nuli.

CONTROL- Specificira broj bajtova poruke koja sledi

DATA - Podaci dužine 0-8 bajtova

CRC – Sadrži 15-bitni CRC kod

ACK- Predstavlja prazan slot koji će biti popunjen bilo kojim čvorom koji prihvata poruku

EOF – Kraj poruke

Vreme trajanja jednog bita (Bit timing)

Svaki čvor u CAN magistrali ima svoj lokalni CLK ali CLK ne postoji na magistrali pošto je ona serijska asinhrona magistrala. Međutim na magistrali mora postojati neki način sinhronizacije kako bi predajnik i prijemnik pravilno čitali poruke.Sinhronizacija je urađena deljenjem svakog bita u poruci na nekoliko segmenata :

- Sinhronizacija- Propagacija

9

Page 10: Asynchronous serial data transfer, UART and CAN controller

- Faza 1 i faza 2

Dužina svakog faznog segmenta može se podesiti u skladu sa trenutnim stanjem na mreži i u čvoru. Na slici 8 je prikazan trajanje jednog bita.

Slika 8. Vremenski dijagram trajanja jednog bita

Primena CAN magistrale je najveća u auto industriji. Na slici 9 je prikazana CAN magistrala u automobilu sa svim magistralama i ona predstavlja glavnu magistralu u sistemu.

10

Page 11: Asynchronous serial data transfer, UART and CAN controller

Slika 9. Primer korišćenja CAN magistrale u auto indistriji

Literatura

1. Embedded Systems and Applications (Serial) Buses, Cristinel Ababei ,Department of Electrical Engineering, University at Buffalo ,Spring 2013

2. Vehicle Applications of Controller Area Network , Karl Henrik Johansson,Lars Nielsen

3. Serial Communications, Silicon Labs

4. SJA1000 Stand-alone CAN controller, Philips semiconductors

11