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 ReportTranscript 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