Title: Mikrokontrolleres rendszerek kommunik
1Mikrokontrolleres rendszerek kommunikációja
2Bevezeté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
3Szabványosság
- Sokféle hardver és szoftver
- Különbözo gyártók
- Szabványos felületek kellenek
4Szabványosság
- Fizikai szinten
- Jelek villamos jellemzoi
- Csatlakozó alakja
- Logikai szinten
- Kommunikációs protokoll(ok)
- Idozítések
- Lehetové válik különbözo gyártók eszközeinek
összekapcsolása - pl. PC-k, hálózati eszközök, szerverek stb.
5Felépítés
- Kommunikáció bonyolult
- Elkülönülo részekre bontható
- Jól definiált felületekkel rendelkezo, kezelheto
részekre kell bontani - Réteges szerkezet
6Réteges szerkezet
Fizikai és adatkapcsolati réteg
7Kommuniká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ó
8Kommuniká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ülo protokollokat
is definiálja - A buszon minden üzenet egyedi prioritással
rendelkezik - Autóiparban használatos
9Kommuniká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
10Fizikai közeg
Villamos
Vezetékes
Üveg
Optikai
Muanyag
Optikai
Vezeték nélküli
Rádiós
11Fizikai közeg
- Más-más követelményeket támaszt a felsobb
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
12Megoldások mikrovezérlovel
- Kontrollernek beépített kommunikációs kontrollere
van - pl. UART, I2C, SPI stb.
- Fizikai réteg vezérlo
- Kontrollernek nincs kommunikációs kontrollere
- Kommunikációs kontroller illesztése
- Kommunikáció szoftverbol
13Kommunikáció szoftverbol
- Szabványos kell legyen
- Komplex
- Lehetoségek
- 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
Nagy ráfordítás
14Tá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
15Aszinkron soros kommunikáció PIC-en
UARTInit banksel TRISB configure RX
and TX as inputs bsf TRISB, 2 bsf TRISB, 1
banksel SPBRG initialize SPBRG movlw
d'25' Fosc4MHz, BRGH1, 9600bps movwf SPBRG
banksel TXSTA bcf TXSTA, SYNC asynchronous
mode bsf TXSTA, BRGH BRGH1 - high speed baud
rate for greater precision banksel RCSTA bsf
RCSTA, SPEN enable serial port bsf RCSTA,
CREN enable reception banksel TXSTA bsf TXSTA,
TXEN return
16Aszinkron 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
17Billentyuzet kiolvasás
kbd_cntr EQU 0x20 count the bits read in
a keyboard byte kbd_byte EQU 0x21 the
data byte read from the keyboard kbd_state EQU
0x22 the status of the keyboard reading
process kbd_flag EQU 0x23 keyboard
flags kbd_char EQU 0x24
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
18Billentyuzet 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 -gt 8 data bits are going to be read
movwf kbd_cntr goto ITEnd
19Billentyuzet 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 read
next bit and return bsf kbd_byte, 7 btfss
PORTB, 3 bcf kbd_byte, 7 decfsz kbd_cntr, F
decrease the number of data bits left to be
read rrf kbd_byte, F if this was not
the MSB, rotate it down goto ITEnd
20Billentyuzet 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