Mikrokontrolleres rendszerek kommunikációja Bevezetés • Összekapcsolás célja • Mit, mivel, miért kapcsolunk össze? • Összeköttetés paraméterei – Átviteli sebesség – Megbízhatóság – Költség • Kiépítés • Üzemeltetés Szabványosság • Sokféle hardver és.

Download Report

Transcript Mikrokontrolleres rendszerek kommunikációja Bevezetés • Összekapcsolás célja • Mit, mivel, miért kapcsolunk össze? • Összeköttetés paraméterei – Átviteli sebesség – Megbízhatóság – Költség • Kiépítés • Üzemeltetés Szabványosság • Sokféle hardver és.

Mikrokontrolleres rendszerek
kommunikációja
Bevezetés
• Összekapcsolás célja
• Mit, mivel, miért kapcsolunk össze?
• Összeköttetés paraméterei
– Átviteli sebesség
– Megbízhatóság
– Költség
• Kiépítés
• Üzemeltetés
Szabványosság
• Sokféle hardver és szoftver
• Különböző gyártók
• Szabványos felületek kellenek
Szabványosság
• Fizikai szinten
– Jelek villamos jellemzői
– Csatlakozó alakja
• Logikai szinten
– Kommunikációs protokoll(ok)
– Időzítések
• Lehetővé válik különböző gyártók
eszközeinek összekapcsolása
– pl. PC-k, hálózati eszközök, szerverek stb.
Felépítés
• Kommunikáció bonyolult
• Elkülönülő részekre bontható
• Jól definiált felületekkel rendelkező,
kezelhető részekre kell bontani
• Réteges szerkezet
Réteges szerkezet
Alkalmazási
HTTP FTP SMTP
Szállítási
TCP
UDP
HTTP FTP SMTP
TCP
UDP
Hálózati
IP
IP
Host to network
Ethernet
PPP
Aszinkron soros
Fizikai és
adatkapcsolati réteg
RS232
Kommunikációs szabványok
• I2C (Inter-Integrated Circuit)
– Szinkron soros kommunikáció
– Busz rendszer
– Integrált áramkörök összekapcsolására
• SPI (Serial Peripheral Interface)
– Szinkron soros kommunikáció
– Pont-pont kommunikáció
Kommunikációs szabványok
• RS-232
– Aszinkron soros kommunikációhoz használják
– Fizikai jelszinteket és csatlakozó alakot
definiál
• CAN (Control Area Network)
– Fizikai jelszinteket és a ráépülő protokollokat
is definiálja
– A buszon minden üzenet egyedi prioritással
rendelkezik
– Autóiparban használatos
Kommunikációs szabványok
• Ethernet
– Fizikai és adatkapcsolati réteg
• TCP/IP protokollcsalád
– IP
– TCP
– UDP
• PPP (Point to point protocol)
– TCP/IP használata soros vonalon
Fizikai közeg
Villamos
Vezetékes
Üveg
Optikai
Műanyag
Optikai
Vezeték nélküli
Rádiós
Fizikai közeg
• Más-más követelményeket támaszt a
felsőbb rétegekkel szemben
– Hibaarány
– Ütközések
• Villamos összeköttetés
– Galvanikus leválasztás
– Leválasztott rész tápfeszültsége
• DC/DC konverter
• Távtáplálás
Megoldások mikrovezérlővel
• Kontrollernek beépített kommunikációs
kontrollere van
– pl. UART, I2C, SPI stb.
– Fizikai réteg vezérlő
• Kontrollernek nincs kommunikációs
kontrollere
– Kommunikációs kontroller illesztése
– Kommunikáció szoftverből
Kommunikáció szoftverből
• Szabványos kell legyen
• Komplex
• Lehetőségek:
Nagy ráfordítás
– Ingyenes változat → Létezik? Megbízható?
– Megvásároljuk → Ár, royalty?
– Beágyazott operációs rendszer része
– Megírjuk → Sok munka
• Megbízhatóság?
• IrDA: IrPHY 68 oldal, IrLMP 98 oldal, IrLAP 116
oldal, IrCOMM 98 oldal
• IrDA: kommunikációs chip: kb. 1300 Ft
Tápellátás
• A kommunikáció teljesítményt igényel
• Tipikusan nem folyamatosan
– Kivétel pl. Ethernet: „idle” szimbólum
• Vétel folyamatosan kell menjen
– Kevesebb energiát igényel
• Tápellátás a kommunikációs közegen
keresztül
– pl. USB, Power over Ethernet
– RFID kártyák
Aszinkron soros kommunikáció
PIC-en
UARTInit
banksel TRISB
bsf TRISB, 2
bsf TRISB, 1
banksel SPBRG
movlw d'25'
movwf SPBRG
banksel TXSTA
bcf TXSTA, SYNC
bsf TXSTA, BRGH
banksel RCSTA
bsf RCSTA, SPEN
bsf RCSTA, CREN
banksel TXSTA
bsf TXSTA, TXEN
return
;configure RX and TX as inputs
;initialize SPBRG
;Fosc=4MHz, BRGH=1, 9600bps
;asynchronous mode
;BRGH=1 - high speed baud rate for greater precision
;enable serial port
;enable reception
Aszinkron soros kommunikáció
PIC-en
UARTSend
banksel PIR1
btfss PIR1, TXIF
goto $-1
movwf TXREG
return
UARTReceive
banksel PIR1
btfss PIR1, RCIF
goto skip
banksel RCREG
movf RCREG, W
…
skip
…
Billentyűzet kiolvasás
kbd_cntr EQU 0x20
kbd_byte EQU 0x21
kbd_state EQU 0x22
kbd_flag EQU 0x23
kbd_char EQU 0x24
;count the bits read in a keyboard byte
;the data byte read from the keyboard
;the status of the keyboard reading process
;keyboard flags
;Constants for kbd_state
KBD_START EQU 1
;a start bit has been read - data reading or parity or stop
KBD_READ_DONE EQU 2 ;the data byte reading is over - reading parity or stop
KBD_PARITY EQU 3
;the parity bit
KBD_VALID EQU 4
;keyboard reading has been done
KBD_OK EQU 5
;a valid ascii code is in kbd_char
Billentyűzet kiolvasás
interrupt
;save registers
;check if a start bit has already been received
banksel kbd_state
btfsc kbd_state, KBD_START
goto kbd_reading
;if so, go to reading the data byte
;handle start bit
btfsc PORTB, 3
goto ITEnd
bsf kbd_state, KBD_START
movlw 8
;new data -> 8 data bits are going to be read
movwf kbd_cntr
goto ITEnd
Billentyűzet kiolvasás
;read a data byte from keyboard
kbd_reading
movf kbd_cntr, W
;check if an entire byte has been read
btfsc STATUS, Z
;if so, go to reading the parity
goto kbd_parity
btfsc PORTB, 3
bsf kbd_byte, 7
btfss PORTB, 3
bcf kbd_byte, 7
decfsz kbd_cntr, F
rrf kbd_byte, F
goto ITEnd
;read next bit and return
;decrease the number of data bits left to be read
;if this was not the MSB, rotate it down
Billentyűzet kiolvasás
;read the parity bit
kbd_parity
btfsc kbd_state, KBD_READ_DONE
goto kbd_stop
bsf kbd_state, KBD_READ_DONE ;reading byte is done
btfsc PORTB, 3
bsf kbd_state, KBD_PARITY
btfss PORTB, 3
bcf kbd_state, KBD_PARITY
goto ITEnd
kbd_stop
;simply ignore stop bit
clrf kbd_state
bsf kbd_state, KBD_VALID
bcf PORTA, 4
;inhibit the keyboard from sending additional
;data until this was processed