Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Master-slave komunikacija realizovana korišćenjem RS485 interfejsa

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Master-slave komunikacija realizovana korišćenjem RS485 interfejsa"— Μεταγράφημα παρουσίασης:

1 Master-slave komunikacija realizovana korišćenjem RS485 interfejsa
Predmet: Mikroprocesorski sistemi Predmetni nastavnik: Prof. dr. Mile Stojčev

2 Projektni zadatak Realizovati protokol koji ostvaruje master-slave komunikaciju između 3 uređaja na zajedničkoj magistrali Protokol mora imati neku vrstu provere greške prilikom prenosa Treba se realizovati mogucnost broadcast slanja Sanja Tomić Stevan Marinković

3 Načini prenosa podataka

4 Nacini prenosa podataka
Podela po broju bitova koji se prenose u jednom trenutku Serijski prenos Paralelni prenos Podela po načinu sinhronizacije Sinhroni prenos Asinhroni prenos Sanja Tomić Stevan Marinković

5 Nacini prenosa podataka
Paralelni prenos Brži Potrebno više linija Moraju imati sinhronizaciju (handshake) Serijski prenos Sporiji Bit po bit Moze biti i asinhron Sanja Tomić Stevan Marinković

6 Sinhroni prenos podataka
Korišćenje sinhronizacionih signala na nivou takta Predajnik generiše taktni signal koji je… Prenet do prijemnika bilo preko posebnog kanala ili… Direktno regenerisan od strane prijemnika iz dolazećeg signala Sanja Tomić Stevan Marinković

7 Asinhroni prenos podataka
Predajnik može u bilo kom trenutku generisati bitove Asinhroni prijemnik ne regeneriše takt na osnovu dolazećeg signala Početak i kraj rada prijema : metod start-stop Predajnik i prijemnik koriste posebne taktne impulse čije su frekvencije veoma bliske jedna drugoj Sanja Tomić Stevan Marinković

8 Vrste serijskog prenosa
Simpleks (simplex) Polu Dupleks (half-duplex) Potpuni dupleks (full-duplex) Sanja Tomić Stevan Marinković

9 RS485

10 RS485 Serijski Asinhroni Polu-dupleks i Potpuni-dupleks
Diferencijalni linijski predajnici i prijemnici Sanja Tomić Stevan Marinković

11 RS485 Dvosmerna komunikacija većeg broja uređaja vezanih na jedan vod
Upredene parice Zc=100Ω do Zc=120Ω Do 32 predajna stepena i 32 prijemnika Rastojanje do 1200 metara Sanja Tomić Stevan Marinković

12 RS485 Osobine diferencijalnih signala omogućavaju visok imunitet na šum i komunikaciju na velikim rastojanjima RS-485 mreža komunicira sa naponima od -7V do +12V Binarni protok do 10 Mb/s Sanja Tomić Stevan Marinković

13 RS485 Završna impedansa Polarizacija Sanja Tomić Stevan Marinković

14 RS485 SN75176B drajver Potrošnja drajvera je do 60mA
Napon napajanja je 5V Sanja Tomić Stevan Marinković

15 RS485 Električna šema ulaza(D,DE,RE) portova (A,B) i izlaza (R)
Sanja Tomić Stevan Marinković

16 Provera tačnosti prenosa

17 Provera tačnosti - čeksuma
karakter provere (check character checksum) jednostruka preciznost (single precision checksum) dvostruka preciznost (double precision checksum) Honeywell (Honeywell checksum) ostatak (residue checksum) Sanja Tomić Stevan Marinković

18 Čeksuma – karakter provere
Svakom karakteru se dodeljuje decimalna vrednost Decimalne vrednosti svakog karaktera u poruci se zajedno sabiraju . Ovaj karakter se pridružuje na kraju poruke u obliku redundantnih bitova i vrši se predaja Sanja Tomić Stevan Marinković

19 Čeksuma – jednostruka preciznost
Čeksuma se izračunava binarnim sabiranjem podataka u okviru poruke Carry out Čeksuma kod sabiranja u običnoj preciznosti predstavlja samo LS bajt aritmetičke sume binarnih podataka koji se prenose Korišćena u projektu Sanja Tomić Stevan Marinković

20 Čeksuma – jednostruka preciznost
H E L L O C 4C 4F H 48 E 45 L 4C O 4F 1 74 H E L L O CHSUM C 4C 4F 74 LS bajt je 74 h Sanja Tomić Stevan Marinković

21 Čeksuma – dvostruka preciznost
Čeksuma je suma obima 2n bitova Ako podatke čine 8-bitni karakteri, čeksuma će biti 16-bitna, čime se smanjuje verovatnoća generisanja pogrešne čeksume Sanja Tomić Stevan Marinković

22 Honeywell čeksuma Čeksuma je obima 2n bitova
Čeksuma se formira preplitanjem uzastopnih reči podataka sa ciljem da se dobiju reči dvostruke dužine Reči dvostruke dužine se sabiraju zajedno pa se formira čeksuma dvostruke preciznosti Sanja Tomić Stevan Marinković

23 Čeksuma ostatak Prividno identična čeksumi jednostruke preciznosti
Razlika: ostatak bit prenosa se dodaje LS bajtu sume Za primer malopre, čeksuma ostatak se formira dodavanjem 1 vrednosti 74 h, pa se dobija 75 h Sanja Tomić Stevan Marinković

24 Opis sistema

25 Blok šema sistema DISPLEJ MASTER TASTERI SLAVE 1 SLAVE 2
RS485 magistrala LED DIODE Sanja Tomić Stevan Marinković

26 Opis blok šeme Koristi se RS485 interfejs Polu – dupleks
Master slave komunikacija Displej i tastatura za komunikaciju sa korisnikom User – frendly meny Moguće adresiranje jednog ili svih uređaja (broadcast) Detekcija greške čeksumom jednostruke preciznosti Detekcija prisutnosti uređaja time-out funkcijama Sanja Tomić Stevan Marinković

27 Električna šema jednog bloka
Sanja Tomić Stevan Marinković

28 Blok šema PCB ploče Sanja Tomić Stevan Marinković

29 Komunikacioni protokol
Format poruke Start karakter Adresa pošiljaoca Adresa primaoca Podaci Čeksuma End karakter 1bajt 2bajta različita dužina 2 bajta Start karakter Ascii '!' HEX '0x21' Adresa pošiljaoca Ascii 00 do FF 00 je rezervisana za master, a FF za broadcast Adresa primaoca Ascii 00 do FF Podaci Ascii poruka Čeksuma Ascii Dvobajtna reprezentacija čeksume jednostruke preciznosti End karakter Ascii HEX '0x40' Sanja Tomić Stevan Marinković

30 Primer komuniciranja sa jednim uređajem
Neka poruka bude oblika: ascii tj u HEX obliku. Slave prima prvi karakter (!) koji je prepoznao kao start karakter, i sada očekuje poruku Upisuje poruku u buffer dok ne nakon čega je spremna obrada poruke Upoređuje se adresa koja je stigla sa adresom u memoriji Slave1 prepoznaje da je poruka za njega Proverava da li je checksum ok Ukoliko je sve u redu, smešta adresu onoga koji je slao (00) na adresu za slanje (za odgovor) Prepoznaje se D3 kao naredba da se upale određene diode Šalje se odgovor Masteru (adresi 0) Sanja Tomić Stevan Marinković

31 Primer broadcast slanja
Neka poruka bude oblika: ascii Koraci su isti kao i za slanje jednom uređaju Prepoznaje se broadcast adresa (FF) Proverava se checksum Ukoliko je sve u redu, smešta se adresa onoga koji je slao (00) na adresu za slanje (za odgovor) Prepoznaje se D3 kao naredba da se upale određene diode Generiše se slučajna vrednost Čeka se određeno vreme u zavisnosti od slučajne vrednosti Šalje se odgovor Masteru (adresi 0) Sanja Tomić Stevan Marinković

32 Meni za upravljanje uređajem
Koristi se dvoredni displej sa 16 karaktera u redu Upravljanje uređajem se vrši pomoću 2 tastera Bira se adresa uređaja kome se šalje i raspored dioda koje treba upaliti Nakon inicirane komunikacije prikazuje se status (uspešna ili neuspešna komunikacija) Sanja Tomić Stevan Marinković

33 Software

34 Biranje adrese uredjaja
inicijalizacija Set displej Adresa = counts Poruka = counts Stanje = 2 Stanje = 3 Iniciranje slanja Cekanje odgovora Kom = OK Kom = err Counts++ Stanje = 1 Counts = 0 start while (1) switch taster switch stanje Switch taster counts > 4 counts > 8 start ekran (1) Biranje adrese uredjaja (2) slanje podataka (3) pritisnut enter pritisnut select F T Algoritam programa za master modul Sanja Tomić Stevan Marinković

35 obrada poruke i promena stanja na diodama
inicijalizacija start while (1) databuf[0] = ‘!” databuf[1..2] = my address format poruke OK primljena poruka ? obrada poruke i promena stanja na diodama odgovor “OK” ERROR Algoritam programa za slave modul Sanja Tomić Stevan Marinković

36 Inicilizaciona sekvenca
ORG 0 LJMP INIT ;************ INICIJALIZACIJA ********* ;************************************** ORG 30H INIT: MOV SP, #STCK MOV R0,#7FH MOV A,#00H FILL00: ; INT MEM =00 DJNZ R0, FILL00 CLR EN485TX ; RS485 U RECEIVE MODU CLR SEL_EN ; DRUGI KRAJ SELECT TASTERA NA MASU CLR ENT_EN ; DRUGI KRAJ ENTER TASTERA SETB STAT.MASTER LCALL SERINI LCALL RANDOM_INIT ; ****** INIT INTERNOG UARTA ********** ;*************************************** SERINI: MOV A,#0FDH ; 9600 MOV TH1, A ; SET TIMER 1 TO SELECTED BAUD RATE MOV TMOD,#20H ; SET TIMER 1 TO AUTO RELOAD MODE MOV TCON,#0C0H ; START TIMER 1 MOV SCON,#52H ; EN.SER.RECEIVE ; 8N1; TI=1 RET Sanja Tomić Stevan Marinković

37 Master – glavna petlja MAIN: MOV COUNTS, #0 MOV COUNTE, #0
MOV A, #080H LCALL DCOMW MOV DPTR, #MSG2 LCALL DSTRW MOV A, #0C0H LCALL DCOMW MOV DPTR, #MSG3 MOD0: JNB SELECT, SEL_PRESS JNB ENTER, ENT_PRESS SJMP MOD0 SEL_PRESS: MOV R7,# ; 30mS - VIBRACIJA TASTERA LCALL WAIT1 LCALL OBR_SEL JNB SELECT, $ ;SACEKAJ DA SE PUSTI TASTER MOV R7,# ; 60mS - VIBRACIJA TASTERA ENT_PRESS: MOV R7,# ; 30mS - VIBRACIJA TASTERA LCALL OBR_ENT JNB ENTER, $ ;SACEKAJ DA SE PUSTI TASTER MOV R7,# ; 60mS - VIBRACIJA TASTERA LCALL WAIT1 Master – glavna petlja Sanja Tomić Stevan Marinković

38 Glavno stanje (biranje adreae uređaja) ENT0
Master – obrada tastera enter ;****** OBRADA TASTERA ENTER ************ OBR_ENT: MOV A, COUNTE XRL A, #00H JZ ENT1 ;TRUE= PRELAZI U STANJE 1 XRL A, #01H JZ ENT2 ;TRUE= PRELAZI U STANJE 2 XRL A, #02H JZ ENT0 ;TRUE= PRELAZI U STANJE 0 Postoje 3 stanja Glavno stanje (biranje adreae uređaja) ENT0 Biranje rasporeda dioda ENT1 Slanje poruke ENT2 Sanja Tomić Stevan Marinković

39 Master – obrada tastera enter
ENT0: MOV COUNTE, #00H ; MOV A, #PRVIR ; LCALL DCOMW ; MOV DPTR, #MSG2 ; LCALL DSTRW ; MOV A, #DRUGIR ;VRATI START EKRAN LCALL DCOMW ; MOV DPTR, #MSG3 ; LCALL DSTRW ; LJMP EXITENT ; ENT1: MOV COUNTE, #01H MOV ADRX, COUNTS ;STAVI U ADRESU ZA SLANJE MOV S_ADR, COUNTS ;STAVI U ADRESU ZA PROVERU ODGOVORA MOV A, #DRUGIR LCALL DCOMW MOV A, #ST LCALL DDATAW MOV A, #PRVIR MOV A, #' ' LJMP EXITENT ENT2: MOV COUNTE, #02H MOV A, #DRUGIR+8 MOV DPTR, #MSG7 ;STAVI LCALL DSTRW MOV A, COUNTS XRL A, #08H ;DA LI JE SLANJE PAKETA? JNZ ENT3 MOV COMDATA, #'M' ;SLANJE PAKETA..... MOV COMDATA+1, #00H SJMP ENT4 Sanja Tomić Stevan Marinković

40 Master – slanje paketa i provera odgovora za slanje jednom uređaju
ENT4: LCALL INITTI ;INICIRAJ TRANSMIT MOV A, S_ADR XRL A, #0FFH ;DA LI JE BROADCAST? JZ RNDCHK ENT5: MOV T_OUT, #0FFH ; CEKAJ 0.5S NA ODGOVOR LCALL GETDATA JC ENT20 ;DA LI JE PRIMLJENA ISPRAVNA PORUKA ZA MENE? ENT22: MOV A, #DRUGIR+8 LCALL DCOMW ;NIJE MOV DPTR, #MSG4 LCALL DSTRW LCALL HEXTOA LCALL DDATAW SJMP EXITENT ENT20: MOV A, COMDATA ;JESTE, PROVERI DA LI JE FORMAT 'OK' XRL A, #'O' JNZ ENT22 MOV A, COMDATA+1 XRL A, #'K' MOV A, ADRX XRL A, S_ADR JNZ ENT22 ;ERROR ENT21: MOV A, #DRUGIR+8 LCALL DCOMW MOV DPTR, #MSG5 ;OK JE EXITENT: MOV COUNTS, #00H RET Sanja Tomić Stevan Marinković

41 Master –provera odgovora za broadcast slanje
RNDCHK: MOV STREC, #00H MOV T_OUT, #00H SETB TR2 MOV R1, #22 RND1: JB RI, JTOGET JNB TF2, RND1 CLR TF2 DJNZ R1, RND1 CLR TR2 JB STREC.U1, RND4 MOV A, #DRUGIR+8 LCALL DCOMW MOV DPTR, #MSG10 LCALL DSTRW RND4: JB STREC.U2, EXITENT MOV A, #DRUGIR+11 MOV DPTR, #MSG11 SJMP EXITENT JTOGET: LCALL GETBR JNC RND1 MOV A, ADRX CJNE A, #01H, RND2 SETB STREC.U1 MOV DPTR, #MSG8 RND2: MOV A, ADRX CJNE A, #02H, RND3 SETB STREC.U2 MOV DPTR, #MSG9 RND3: SJMP RND1 Sanja Tomić Stevan Marinković

42 Master – obrada tastera select
OBR_SEL: MOV A, COUNTE XRL A, #00H JZ SEL0 ;TRUE= ENTER STANJE 0 XRL A, #01H JZ SEL1 ;TRUE= ENTER STANJE 1 XRL A, #02H JNZ SEL0 LJMP SEL2 ;TRUE= ENTER STANJE 2 U zavisnosti od stanja u kom se nalazi meni, tasterom select se menja ili adresa uređaja, ili raspored dioda koje treba upaliti Sanja Tomić Stevan Marinković

43 Master – obrada tastera select
OBR_SEL: MOV A, COUNTE XRL A, #00H JZ SEL0 ;TRUE= ENTER STANJE 0 XRL A, #01H JZ SEL1 ;TRUE= ENTER STANJE 1 XRL A, #02H JNZ SEL0 LJMP SEL2 ;TRUE= ENTER STANJE 2 SEL0: INC COUNTS MOV A, COUNTS CJNE A, #03H , SEL01 MOV COUNTS, #0FFH ;BROADCAST ADRESA FF MOV A, #PRVIR+10 LCALL DCOMW MOV DPTR, #MSG1 LCALL DSTRW SJMP SELEND SEL01: MOV A, #PRVIR+10 LCALL HEXTOA LCALL DDATAW MOV A, #' ' LCALL DDATAW ;DVA PRAZNA MESTA SEL1: INC COUNTS MOV A, COUNTS CJNE A, #09H, SEL12 MOV COUNTS, #00H SEL12: MOV A, #DRUGIR+11 LCALL DCOMW JB 3, SEL10 ;VECI JE OD 7H; NIJE ZA DIODE JB 2, SEL5 MOV A, #OFF LCALL DDATAW SJMP SEL6 SEL5: MOV A, #ON SEL6: MOV A, COUNTS JB 1, SEL7 SJMP SEL8 SEL7: MOV A, #ON SEL8: MOV A, COUNTS JB 0, SEL9 SJMP SELEND SEL9: MOV A, #ON SEL10: MOV DPTR, #MSG6 LCALL DSTRW SEL2: LJMP ENT0 ;KAO DA JE PRITISNUT ENTER SELEND: RET Sanja Tomić Stevan Marinković

44 Slave – glavna petlja SLAVE: MOV T_OUT, #00H LCALL GETDATA JNC SLAVE
MOV A, COMDATA XRL A, #'D' ;UPALI DIODE JZ KOMAND1 SJMP SLAVE KOMAND1: MOV A, COMDATA+1 LCALL ATOHEX SWAP A RL A CPL A ORL A, #1FH MOV P2, A MOV A, S_ADR MOV S_ADR, #00H XRL A, #0FFH JNZ KOM11 LCALL RANDOM ANL A, #7FH MOV R4, A LCALL WAIT10 KOM11: MOV COMDATA, #'O' MOV COMDATA+1, #'K' MOV COMDATA+2, #00H LCALL INITTI LJMP SLAVE Sanja Tomić Stevan Marinković

45 Potprogrami koji su korišćeni u master i/ili slave programu
Funkcije za čekanje: wait 1 ms – WAIT1 wait 10 ms – WAIT10 Funkcije za konverziju podataka: ascii u hex – ATOHEX hex u ascii – HEXTOA Funkcije za upravljanje displejom inicijalizacija displeja – DISPINI pošalji komandu – DCOMW pošalji karakter – DDATAW pošalji niz karaktera – DSTRW ispitavanje da li je slobodan displej – WTBUSY kreiranje simbola – CHAR_SET Funkcije za slanje i primanje podataka: Inicijalizacija serijskog porta – SERINI primi podatke – GETDATA pošalji podatke – INITTI Funkcije za generisanje nasumičnih vrednosti random init – RANDOM_INIT random - RANDOM Sanja Tomić Stevan Marinković

46 O autorima – Sanja Tomić
Ime: Sanja Prezime: Tomić Datum i mesto rođenja: Surdulica Bračno stanje: Neudata Adresa stanovanja: Čarnojevića 6/29, Niš Obrazovanje: Gimnazija ‚‚Jovan Skerlić‘‘ – Vladičin Han Godina upisa na Elektronski fakultet: 2003. Smer: Elektronika Poznavanje jezika: Engleski Poznavanje softvera: Protel, mikroC, MSoffice Interesovanja: Planinarenje, Programiranje Dosadašnji projekti: 1. Real-time operativni sistem koji ispisuje podatke na 4 led displeja i čita tastaturu sa 12 tastera sa ¼ duty ciklusom Sanja Tomić Stevan Marinković

47 O autorima – Stevan Marinković
Ime: Stevan Prezime: Marinković Datum i mesto rođenja: Niš Bračno stanje: Neoženjen Adresa stanovanja: Bulevar Nemanjića 78/20, Niš Obrazovanje: Gimnazija ‚‚Svetozar Marković‘‘ – Niš Godina upisa na Elektronski fakultet: 2003. Smer: Elektronika Poznavanje jezika: Engleski, Nemački Poznavanje softvera: Active HDL, uClinux, C#, Protel, mikroC, MSoffice Poznavanje programskih jezika Assembler, C, C++, C#, VHDL Interesovanja: Programiranje, Pilotiranje, Plivanje, Tenis Radovi: 1. Microcontroler system for temperature regulation with GSM support - ETRAN, Herceg novi, 2007 2. Portable system for heartbeat and respiration measurement - INDEL, Banja Luka , 2006 Sanja Tomić Stevan Marinković

48 O autorima – Stevan Marinković
Dosadašnji projekti: 1. Embedded sistem sa Blackfin procesorom i uClinux operativnim sistemom 2. Real-time operativni sistem koji ispisuje podatke na 4 led displeja i čita 12 tastera sa ¼ duty ciklusom 3. Digitalni deo LCD drajvera koji može upravljati sa 168 displej segmenata sa ¼ duty ciklusom i tri naponska nivoa 4. Robot sa 4 točka upravljan preko RF veze 5. Mikrokontrolerski sistem za temperaturnu regulaciju upravljan SMS porukama 6. Analogni i digitalni deo sistema za merenje broja otkucaja srca u minuti i broja udisaja u minuti 7. Digitalni deo sistema sa touch-screen displejom koji upravlja fizioterapeutske sonde za lasersko i ultrazvučno lečenje Ostalo: Član plivačkih klubova ‚‚Niš‘‘ i ‚‚Sveti Nikola‘‘ u periodu od 1993 do 2002 Učesnik u timu koji je predstavljao Elektronski fakultet u Nišu na tri međunarodna takmičenja studenata elektronike Hard&Soft. Sanja Tomić Stevan Marinković

49 Hvala na pažnji


Κατέβασμα ppt "Master-slave komunikacija realizovana korišćenjem RS485 interfejsa"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google