You are on page 1of 26
a= & RSan5 Master Max 232 Max 485 § 1, Trong cong nghiép ngay nay, chudn truyén thong RS232 kh6ng thé dap tng duge nhu cdu truyén théng ntfa vi duéng truyén khong cén bang (cde tin higu déu ily dim chuan la duemg sass chung, bj anh buémg cia nhigu téc ding) do dé téc dé truyén va khong céch truyén bj gigi han (khoang céch truyén théng t6i da 100m). Vi vy dé dp (mg nbu edu truyén thong cong nghigp, nguéi ta sit dung chudn truyén thong RS485 khi cdn ting khodng céch va téc dé truyén thong (Khong cdch truyén thong t6i da 1200m va vn te truyén lén dén 10 Mbit/s). Nguyén hin ma RS 485 c6 thé ting tc d9 va khodng ech truyén théng la do RS 485 six dung pheong phip truyén 2 day vi sai (vi 2 day e6 dc tinh ging nhau, ti higu truyén di 1a higu sé dign Sp giita 2 day do dé loai tr duge nhigu chung). ‘Mit Khe do chudn truyén thong RS 232 khOng cho phép c6 hom 2 thiét bj truyén nbn tin trén dug day trong khi d6 v6i chun RS 485 ta o6 thé n6i 32 thiét bj thu phat trén 2 day. g 9 2. Dé tai cua dé dn xudt phat te twéng két hgp sir dung chudn truyén thong RS232 va S485 dé digu kbién thu thap va xir ly di ligu, thong tin trong cOng nghiép.Chiing t6i si dung vi digu khién master dé xuat dja chi dén céc vi digu kbién slave, vi dieu khién slave s® thu thip da ligu thong tin 43 durge cdi dit sin sau d6 truyén tin higu tr vé master. IL Linh kign sir dung trong mach: 1.AT89CS1; Diy la linh kign vi diéu khién 8 bit v6i 4 Kbytes bg nhé ngi e6 kha nang lip trinh duge va e6 kha nang xéa chuong trinh bang dign, * CPU 8 bit duge 161 wu héa cho cde img dung diéu khién * Cac kha nang xir If cdc bién Boole mé rong * Ving dia chi nh chuong trinh 64K * Viing dia chi nhé dt ligu 64K * 128 byte dit ligu Ram trén chi * 32 dutmg 1/0 2 chigu va cé thé dinh dia chi riéng 18 *2b§ dém.mgch dint thi 16 bit * UART song c6ng (full duplex) * Cu inie ngat 5 vector /6 nguén véi 2 cdp wu tién * Mach dao dong xung nip trong chip Sau day la so dé kh6i cia ATS9CS1: im” ~ BRDHESOE F3 a PORT SERIE JowteAAUPhion Srecln Trev octersh tae OCTETS} Pi TenroR caren [Lac 4 cPU AMD SAR | exes PREW A POOR OPTS vo Ro onl er SR ESSE 7BCRNEE Va day la so dé chin ciia AT89CS1 ror | a0t Fos ans Fos ans Fad pas Fo3 F403 Faz au2 Foi Fan Fan} ago = Bb Fx an Fish 5¥ vee Fiabe rap Hv rol w Spar rar bas om rae Fae b ate nm fess sb ais to fess roa aia mifess sb att RrOfos2 rab aio reo fos: Fifa xo —fes0 ropa Y nghia céc chiin cia ATS9CS1 *ATS9CSI 06 tit ci 40 chin trong dé chin 40 la chin nguén, chin 20 fa chin ‘mass, chan 18 va chin 19 duge néi qua | thach anh 11.056Mhz dé tao dao dng cho vi digu khién. Chan 31 EA duoe ding dé chon sir dung Rom ndi hay Rom ngoai, néu chin niy duge néi lén ngudn thi ta sie dung Rom noi cén néu ndi nudng mass thi ta sic dung Rom ngodi * PORT 0:8 1 Port 2 chite ning ,rén cde chin 32-39, Trong cde tht ké nhs, né ¢6 chite nang nhu cde dudng 1/0. Doi véi cdc thiét ké lén voi b6 nhé mé rong ,1 duge dba kénh gitta bus data vi bus address. * PORT 1: 1 céng danh rigng cho xudt /nhip trén cdc chin 1-8. Cong nay chi c6 chite nang giao tigp voi cde thiét bi ngoai _ "PORT 2:18 1 céng cong dung kép trén cée chia 21-28, duge ding nu ede duéng xuit nhép hoe la Byte cao cia bus dia chi * PORT 3: ld cng cong dung kép trén cée chan 10-17 ,.véi cde ehite nang: Bit, Tén | Dja chi bit | Chife ning chuyén a0 P30 RXD | _BOH Di ligu nh cho Port nt 3.1 TXD_| BIH Di ligu phat cho Port nt P32, INTO | B2H Ngit 0 bén ngoai P33 INT | B3H Ngit I bén ngoai P34 10 | B4H Ng6 vio Timer/Counter 0 P35 TL | BSH ‘Ngo vio Timer/Counter | P36 WR | B6H Xung ghi_b6 nhé data ngoait P37 RD | B7H Xung doe b6 nhé data ngoai * PSEN 13 TH ra trén chan 29, N6 la TH digu khién dé cho phép b9 nhé chuong trinh mé réng va thuémg duge n6i dén chan OE cia | EPROM. 2.1C tao ngudn dp chun duong 7805: Pay 18 IC ty chinh dinh vididu khién, ao ra ngudn ap chuan duong +5V cung cp cho mach Sau day 1a so db IC 7805,Chin 1 n6i mass, chin 2 la ng vao cia ép ngubn, chin 3 lirng® ra =5V dé cp dign cho vi ditu khién va cd linh kign dign tir kbd 3.1C tg0 ngudn 4p chudn 4m 7905: Diy 1a IC c6 chite ning gidng nhw IC 7805 nhung né tao ra 4p chudn 4m -SV him cung cp dp cho cée linh ign hay cic module cdn sic dung agubn 4p ém hay ngudn ip Iugng eve, Sau day 18 3 dang chan cfu tgo va chite ning timg chén eta IC 7905 ngodi thi el B®, ih a irudng, ay (a1 4.1C Max 232: ___Max 232 ding dé chuyén tin higu logie +5V ota vi ditu Khia song tin higu cba chun saya thong RS 232 va truyén di rn ding day RS232, oP Max 232 gdm c6 2 bé phét chuyén déi tin higu TTL ng6 vio thanh tin higu RS 232 ng6 1a va c6 2 b6 thu nhiia tin higu RS 232 ng@ vio va chuyén d6i thank tin higu CMOS tong ting ng ra. S.AC Max 485: Tt ra dy don thuin ci la 1 69 chuyén 232 sang a déi tir in higu cin chun gino tip RS iu cia chufin giao tip RS 485 dé c6 thé truyén tin higu di trén dudng dy RRS 485 va tied8 of thé truyen tin higu di xa vi nhanh duge. Diy 1a so dé chin cla Max 485: Max 485 gdm b6 lai va b6 thu, tin higu vao b§ lai D logic TTL doi thanh 2 tin higu A va A\, khi tin higu digu khién DE mie thip thi 2 chin AA\ cdch ly véi vi mach, Tin higu vao b§ thu 1a/A va A\, tin higu ra R logic TTL ty thude higu dign dp gitta A va A\,, khi RE\ logic 1 thi R cAch ly véi vi mach. Mang 485 lam vige theo ché d6 master-slave, master cho DE mic 1 dé truyén dt ligu, edn eée slave c6 DE=0, RE\=0 chi nhiin dat ligu. Khi master muén nbn dé ligu thi DE=0, RE(-0 cn slave phat s€ o6 DE=1, RE\-1. Ta ditu khién ca dutmg DE, RE\ bing tin higa RTS hay mach dinh thi UL. Cite khdi mach gino tiép: 1.Khéi tao nguén: -— () sl Dy 1d mgch ding dé tgo ra nguén dp chudn SV . Ta str dung IC 7805 dé tgo ra 4p chudin 45V va IC 7905 dé tao dp chun -5V. 2Khéi power: Chan B cia transistor duge néi véi chin power (P1.0) ciia master. Nguén SV néi vio qua transistor C885 ri ldy ding ra 6 chan B nhim han dong truée khi dua vao master. 3.Khéi reset: — = y 3a ____Khinbdn nit reset thi dp SV duge ndi vao chan reset cia master dé khéi dng lai hé théng. 4.Khéi master: +50 : i if aagbhbes beats seaueo LE ED eae aaaszaza| * Ee ERAT Resse, Bor Tae dt Vi chuong trinh sir dung ROM n6i nén ta n6i chin EA voi ngubn SV Ding thach anh 11.056 MHz ndi vao chin XTALI vao XTAL2 dé tao xung clock. 5.Khéi giao tiép: 5.1.Max232: 48 4 An te . R2OUT, RIOUT, T2IN diing dé néi vao cae chin IN cia Max485, 5.2.Maxd85: sv i Four ve —— eS Rioue 4 ae niin rsa, # ——— ~ ‘Max485 ding dé chuyén tin bigu trén dudng day RS232 thank tin higu trén dudmg day S485 va diing chusin giao tiép ndy dé truyén tin higu di xa,Chén Tl cla Max232 néi véi chin. RO cla Max485 vi cde chin R2OUT, RIOUT, T2n duge ndi tuomg ty nn hinh ve WV. ‘Mach hoan chinh: ae V. Chwong trinh phin mém: 1, Giai phép xir ly phan mém: Gia php xi ly pin mém la nicl timg tée vu thong qua phuong phip lip lich vi so dB gino tgp cia Master vi Slave nb sau: Master Slave Thing iki ti Mae Se Ta edn tgo m@t vong “siéu kip"(Supper Loop) lam co si xi Iy cho mot chong trinh nhiing trong C. void main(y’ t /* Chuan bj cho tTée vp X */ X Init; while(1) /* ‘khong bao gits két thic! (Super Loop) */ X03 /* Thye hign te vu */ } } Trong ham main trén o6 tig te vy xay ra ma ta cn phai xit Khdi nigm tc vu (task) cing hay duge str dung thé n6i, te vy la mbt nhigm vy xit ly théng tin trong bé théng, o6 thé thy hign theo co ché twain boda (periodic task) hoge theo sy kiga (event task). Cée dang tée vu qui diah trong chun IEC 61131-3 (Programmable Controllers — Part3: Programming Languages) duge minh hoa trén hinh sau, Vidy : Mét téc vy thye hign nhigm vy dig khién cho mft hoje nhitu mgch vong, kin ¢6 chu kj trich méu gidng ahau, Hoe, mt téc vy e6 thé thye higa nhigm ve digu Khign logic, digu Khign trinh ty theo cée sy: kign xay ra. Tc vp c6 thé thye hign dudi dang mt qué trinh tinh todn duy nbét, hoe mt day céc qué trinh tinh todn khée nau. Che toi chu ky oie 1M ehure thi Ma thnve thi ‘The eye dink ‘Tic vp taka hota Che sy kigu ai ‘Ma dupe thi ‘Tie vo aw kita . 8 chite vige thyc hign cdc téc vy duge higu qua, mt hé théng thé’ gian thye ta cin cde phuong phap lip lich. Trréc hét, co ché l§p lich thyc hign cho cdc tic vy c6 thé duge thye hign theo hai céch: * Lap lich tinh: thir tyr thye hign ede tic vy khOng thay déi ma duge xéc din trude ip lich dong: Ham xae dinh lich sau khi hé théng da di vao hoat dor Sau khi xéc dinh duge eo ché lip lich, Ham cin sr dung mot sich hage lap linh (strategy) dé ap dung d6i véi sim (C5 thé chon mt trong nhimng cich sau: + FIFO (First In Fist Out): mit tie vy dén trade 58 duge thye hig truée, * Mire au tén o6 dinh/dGng: tai cing mgt thoi diém, cde téc vu duge dit ce mie wu tién 6 dinh hode ¢é thé thay déi néu cfn. * Preemptive: cin goi la sich luge chen hing, tre la chon mbt tie wy dé thye hig trudée cde tée vu khée. * Non-preemptive: cd goi sich luge khéng chen hing. Céc ti bign binh thurimg dya trén mirc uu tin cia ching Vic tinh mite uu tién cia méi tién trinh duge thyc hign theo mét trong s6 cdc thugt todn sau: Rate monotonic: téc vu nao edng dign ra thudng xu; * Deadline monotonic: téc vu nao cing, wu tign, n cing durge wu tin 6 thoi han cusi cang sém cing duge * Least laxity: tdc vu ndo 6 1y 1g thoi gian tinh todn/thér han cudi ciimg( deadline) cang lém cang duge we tien, Bén canh phuong phip lap lich, co ché xi ly this cbn dat ra nhigu vin dé khde nia nr quan ly va déng b6 héa vige str dung tai nguyén, giao tiép Lién qua trinb, ... MBi hé théng difu khién 1A mét hé thdi gian thre i thé noi, tat ede cdc be thong diu khién 8 be thoi gian thye, Neue lai, mot s6 lim cdc bg théng thoi gian thyc la cac he thong diéu khién. Khong c6 hé théng diéu khién rio 6 thé hoat dng binh thudng néu nhur né khéng dap ting duge cée yeu edu vé thd sian, bit ké la hg thOng diéu khign nhigt d6, diéu khién dp sudt, digu kbién ku hong hay digu khién chuyén dng, M6t b6 diéu khién phai dua ra duge tin higu digu Khién kip thi sau m@t thé gian nin duge tin higu do dé dua qua trinh k¥ thudt vé trang thai mong, mudn, Mét mang truyén théng trong mt hé thdng ditu khién ¢6 tinh ning thé gian tye phai c6 kha nang truyén tin m@t céch tin e4y va kip thoi déi véi ede yéu cau cia céc bo didu khién, cdc thiét bi vao/ra, cdc thiét bj do va thiél bj chip hanh. Tinh ning thdi gian thye eta mot bé théng diéu khién phan tén khOng chi phy thuge vao tinh nang thir gian thye eta timg thanh phan trong hé thong, mi con phy thud vio su phéi hop hoat ding sitta cdc thinh phin 46, Trong thye té, yéu cdu vé tinh thi gian thye déi voi méi img dung digu khién cling e6 ede dc tht khéc nhau, mic d6 ngit nghéo kha ahau, Vidu:Cau sie phuomg php ip lich vi ede ming tie vy duge sie dng trong nay void main(void) { /* Tyo scheduler */ SCH_Init_ 120; /* Chudn bi cho mét téc vu"? X Init); /*Nap thdi gian cho téc vu */ SCH_Add_Task(X_Update,a, b); /* Bit dau scheduler */ SCH Start); while(1) t SCH_Dispateh_Tasks(); } } void SCH_Update(void) interrupt INTERRUPT_Timer_2_ Overflow t /* Dank sich cic tée-wultask) */ } ‘ xs /* Ving lum trit dit ligu,néu c6 thé duge dé vige nity dim ra nhanh ‘Téng dung luong b§ nhé sir dung cho mt tdc vu(task) 1b Toyte */ typedef dat $e como eh ie vt ask (Void (i fnetin void (code * pTask)(void); /* Khoang tré cho him ké tiép* tWord Delay; #* Khodng thoi gian lip lai mgt chu trinh tWord Repeat; /* Sct lén 1 (bdi scheduler)kbi tée vu duge thye thi */ {Byte RunMe; } sTasks struct tip */ Che ming tic vu duge img dung trong suét phuong php lap lich P* Maing tc vu( task) */ sTask SCH_tasks_G[SCH_MAX_TASKS]; Vin dé nap cd him trong phong phap tp lich: Clu tric Sch_Add_Task(Task_Name, Initial Delay, Task Interval); im SCH_Add_Task(Do_X,1000,0); ‘Task_ID =SCH_Add_Task(Do_X,1000,0); SCH_Add_Task(Do_X,0,1000); Ham Do_X0 qui tic thy thi nh sau khoang Igp lich la 1000 Tée vu du tién thye thi 6 T=300 thi cdc téc vu tiép theo 1b & 1300;2300;...thi ta c6 edu tric len sau: SCH_Add_Task(Do_X,300,1000); * Ham Disphatcher SCH_Dispateh_Tasks() Ham Dispatcher c nhigm vy khi c6 mét téc vy sn sing thi lénb: SCH_Dispatch_Tasks() sé cho phép né chay. Ham nay duge goi trong ving lip cia ham main, void main(void) { while(1) t SCH_Dispatch_Tasks0; ) *V4n dé bao 16i ta 06 céc Ignh sau: {Byte Error_code_G Dé sao chép cae 16i may ta ding cc Iénh sau: Error_code_G=ERROR_SCH_TOO_MANY_TASKS; Error_code_G ERROR SCH_) Error_code_G= ERROR _SCH_WAITING_FOR_START_COMMAND_FROM_MA STER; Error_code_G ERROR _SCH_ONE_OR_MORE_SLAVES_DID_NOT_STAR Error_code_G= ERROR_SCH_LOST_SLAVE; Error_code_G = ERROR_SCH_CAN_BUS_ERROR; VAITING_FOR_SLAVE_TO_ACK; é bio IBita dung ham sau: SCH_Report_Status() *Céc vin dé bao 18: khi c6 sy c6 . > Ching ta bift ring méi con vi xit ly host dng & mét nhigt d6 khéc ‘hau, khi e6 sy thay déi vé nhigt d6 tc d6 xung clock sé thay d6i vi vay cn e6 mt chong trinh dng, b xung clock.Trong ting dung nay ta str dung chuong trinh SCU SCHEDULER (RS-485) for 8051/52. Trong chong trinh nay ta sir dung mot b6 watchdog timer sé bdo tran khi chu kj cia con Slave c6 vé chfm(nhanhJhom so v6i céc khodng thé gian ta da dinh nghia, > Khi truyén de ligu gitta Master va Slave ma Slave khéng nhan duge cae thong digp kiém tra tit Master thi timer s8 tri Khi truyén da ligu gitta Master va Slave thi timer bj trin va cg ché lap lich sé goi Va khi dé m6t byte da ligu sé duge chu cho tat c@ cdc Slave (thong void MASTER_Update_T2(void) interrupt INTERRUPT_Timer_2_Overflow { MASTER_Send_Tick_Messaget...); } Kbi da nhan de ligu céc Slave duge ngét ding thai hic nay vige lap lich goi ham “update” 1a 6 trong cac Slave. Vi vay céc Slave sé git Iai cac théng digp xde nbn cho Master(thng qua UART). void SLAVE_Update(voi { interrupt INTERRUPT_UART_Rx_Tx SLAVE_Send_Ack_Message_T } |_Master0s Cu tric ctia mot chudi thong digp: ¥ M6i Slave duge dinh nghia bang mot dia chi ID(Ox01 dén OxFF) Y Méi thong digp kiém tra duge gui tir Master dén Slave e6 dé dai 2 byte duge git theo tiing khoding (xung) riéng bigt Byte du tién chira dia chi ID Slave byte this hai chira da ligu cia thong dip. Tit cd céc Slave sé xy ra ngit khi nha cc théng Master Y Khi céc Slave nhgin cde thong digp véi diing dia chi ID cia mink thi khi d6 ede Slave sé tra lai lai bang cdc thong digp xac nhéin. V Che théng digp xéc nhén cing c6 2 byte va duge chuyén di theo timg khong (xung) rigng bigt.Byte dau chita dia chi ID cia Slave dé ,byte thi hai chia thong digp tra ei YY Ngoai vige chuyén mos yte di lig ta bn e6 thé chuyén nbibu thong digp. Vigc truyén dit ligu siz dyng ho 8051 cho phép truyén 9-bit duge mé ta nhw sau yng UART & mode 3 trayn'nhdn 11 -bits.Bit thir 9 duge trayén théng qua bit TBS cia thanh ghi SCON va vige nha thing qua bit RBS. Byte dia chi duge nhin dang bang cach set bit chung (TBS) én 1, byte dt igu thi set bit d6 v8 0 Vigc truyén dit cho ngit trén Slave 6 m6t khoding Vin dd k&t ndi song song hoie nbi tiép Giao tip théng qua RS485 2. Phan code hoan chinh: ‘finclude "Main.h" include "Port.h"” include "SCU_Bm.H" define PRELOADOI (6553 1063))) define PRELOADOIH (PRELOADOI / 256) define PRELOADOIL (PRELOADOI % 256) ~ (tWord)(OSC_FREQ / (OSC_PER_INST * void main( void) SCU_B_MASTER_Init_T1_T2(9600); SCU_B_MASTER Stan(); while(1) t SCH_Dispatch_Tasks(); } ‘void Hardware Delay TO(const tWord N) ‘ iWord ms; TMOD & OxFO; ‘TMOD |= 0x01; ETO=0; for (ms = 0; ms OX7F; SCON = 0xD2; TMOD = 0x20; THI = (256 - ((Byte)((((tLong)OSC_FREQ / 100) * 3125) /((«Long) BAUD_RATE * OSC_PER_INST * 1000))) TL =THI; TRI~1; TI-1 ES=0; T2CON = 0x04: T2MOD = 0x00: TH2 = 0xEC; RCAP2H = OxEC; TL2 =Ox78, RCAP2L = 0x78; ET2 =I, TR2 = 1. : void SCU_B_MASTER_Start(void) ‘ Byte Slave_ID; ‘tByte Num _active_slaves; Byte Id, i First_byte = 0; it Slave_replied_correctly; ‘Byte Slave_index; CU_B MASTER Watchdog Reftesh(): SCU_B_MASTER Enter Safe_State(); ‘Network error pin NETWORK. ERROR; Error_code_G = ERROR_SCH_WAITING_FOR_SLAVE_TO_ACK; SCH Report Status); for (1-0; i< 100; i++) { Hardware Delay T0(30); SCU_B_MASTER Watchdog Refresh(); : Num_active_slaves ~ 0; Slave_index~0; do { SCU_B_MASTER Watchdog Refresh); First_byte=0; Slave_ID ~ (tByte) Current_Slave_IDs_G[Slave_index]; TI-0; TBS = | SBUF = Slave ID; Hardware Delay 10(5); if(RI==1) { Id = (Byte) SBUF; RI-0; ind = t First_byte ~ , ) m= TBS = 1; SBUF = Slave ID; Hardware Delay T0(5); Slave _replied_correctly ~ 0; Slave ID) && (RBS == 1)) if(RII- 0) { Id = (Byte) SBUF; RI-0; if (Ud = = Slave_ID) && (RBS == 1) && (First_byte==1)) t Slave_replied_cortectly ~ 1; , ) if'(Slave_seplied_correctly) 4 Num_active_slavest-+; Slave_index++; ) else t if (Current_Slave IDs_G[Slave_index] ! BACKUP_SLAVE_IDs[Slave_index]) ‘ Current Slave IDs_G[Slave_index] ~ BACKUP_SLAVE IDs(Slave_ index); } else ‘ Slave_index+; ) } } while (Slave_index < NUMBER_OF_SLAVES); if (Num active slaves < NUMBER_OF SLAVES) 4 Error_code_G ERROR, SCH_ONE_OR_MORE_SLAVES_DID_NOT_START; SCU_B_MASTER Shut Down the Network(); Error_code_G = 0; Network_ertor_pin = NO_NETWORK_ERROR; } Message_byte_G=1; First_ack_G~ 1; Current_siave_index_G =0; EA=1, } void SCU_B_MASTER_Update_T2(void) interrupt INTERRUPT Timer 2 Overflow { ‘tByte Task_index; Byte Previous_slave_index; TF2 =0; SCU_B MASTER Watchdog Retresh(); Network_error_pin = NO_NETWORK_ERROR; Previous_slave_index = Current_slave_index_G; if (Message_byte_G ~~ 0) { Message_byte_G=1; } else 4 Message byte G~0; if (+Current_slave_index_G >= NUMBER_OF_SLAVES) t Current slave index G~0; } : if (SCU_B_MASTER Process_Ack(Previous_slave_index) ~~ RETURN_ERROR) 4 Network error_pin=NETWORK ERROR; Error_code_G = ERROR_SCH_LOST_SLAVE; if (++Slave_reset_attempts_G[Previous_slave_index] >= SLAVE_RESET INTERVAL) ‘ SCU_B_MASTER Reset the Network(); } t else ‘ Slave_reset_attempts_G[Previous_slave_index] = 0: ' SCU_B_MASTER_Send_Tick_Message(Current_stave_index_G): for (Task index ~ 0; Task index < SCH_MAX_TASKS; Task_index++) IN(SCH tasks ‘Task_index].pTask) IFSCHLtsis_G[Task index} Deby ==0) Sot tosis G(Tak iden} RuaMe 1 if (SCH_tasks_G[Task_index] Period) 4 SCH_tasks_G[Task_index].Delay = SCH_tasks_G[Task_index] Period: } } else t SCH_tasks_G[Task_index] Delay ~ , void SCU_B_MASTER. t tLong Timeout; tByte Slave_ID = (tByte) Current_Slave_IDs_G[SLAVE_INDEX}) if (Message_byte_G = 0) ‘ ‘Timeout = 0; while ((++Timeout) && (TI=~ 0)); if (Timeout ~~ 0) { Errot_code_G ~ ERROR_USART_TI; return, } TI=0; ‘TBS = 1; SBUE ~ Slave_ID; ' else snd_Tick_Message(const ‘Byte SLAVE_INDEX) t Timeout ~ 0; while ((++Timeout) && (TI== 0)); if(Timeout == 0) =ERROR_USART_TI; TBS = 0; SBUE ~ Tick_message_data_G[SLAVE_INDEX]; I h bit SCU_B_MASTER Process_Ack(const { tByte Message_contents; tByte Slave ID; if (First_ack_G) { First_ack_G = 0; return RETURN_NORMAL; } Slave_ID = (‘Byte) Current_Slave_IDs_G{Slave_index); if(RI = 0) t Network_error_pin = NETWORK_ERROR; retum RETURN_ERROR; yyte Slave_index) 3 Message_contents ~ (tByte) SBUF; RI-0; if (Message_byte_G == 1) 4 if(RB8 ~~1) t if (Slave_ID ~~ (tByte) Message contents) return RETURN_NORMAL; ) } Network_error_pin = NETWORK_ERROR; retum RETURN_ERROR; y else ‘ Ack_message_data_G[Slaye_index] = Message_contents; return RETURN_NORMAL; ) } void SCU_B_MASTER _Reset_the_Network(void) t EA=0: while(1); 4 void SCU_B_MASTER_Shut_Down_the_Network(void) t EA=0: ‘Network_error_pin = NETWORK_ERROR; SCH_Report_Status(); while) ‘ SCU_B_MASTER Watchdog Refresh0) : t ‘void SCU_B_MASTER Watchdog _Init(void) t ) void SCU_B_MASTER_Watchdog_Refiesh( void) reentrant t if WATCHDOG state_G ==1) ‘ WATCHDOG state G~0; WATCHDOG pin = 0; : else t WATCHDOG state G WATCHDOG pin =1; } ) Ting két: 1. Tong kéevé stung va kha ning sing dung thye tin cin dB ta Qua vige sir dung két hop 2 chudn truyén théng giao tiép théng dung hign nay va sir dung phuong thie thu thp, phn tn dit ligu master-slave, rng vige thu thap va phn tén théng tin duge thye hién nhanh chong, dé ding hon va die bigt 18 gin nb ic ta 06 thé giao tiép véi nhiéu module trong mdi quan hé chat ché, c6 thi ty. Vi digu khign master o6 thé giao tiép v6i khodng 256 module trén dudng day truyén thong RS-485 véi thai gian thu phat dd ligu gitta 2 module ké tiép nhau la khong ding ké. Vi vay J twéng cua dé tai ndy 6 thé dmg dung vao mang truyén thong trong ee inhi may, xi nghigp gdm nhiéu bé phén lam vigc 6 céch xa nhau ma vige thu thdp va phan ‘én théng tin theo phuong that thi cng li khOng kha thi. Cée b§ phiin 6 trich nhign thu {hp va pha tin d& liu chi cn 6 tai v tricia master dé e@p nh va kiém soatth6ng tin, Ho chi can thiét ké he thong hop ly phi hop véi niu céu va khéng gian cia dia digm lam vige 18 c6 thé giao tiép v6i cdc b6 phfin khéc 48 ding va nhanh chéng ma lpi cé duge noi ddung théng tin chinh xéc. 2. Phuong huéng phit trién cua dé tai Ney nay si phét trién vi bio cia hé théng truyén thong Internet da kim bing nd mt phuong thie truyén thong m6 nhanh hom gdp nhieu in, thong tin ehinh xe va rt thudn tign cho ngudi lim vige. Cho nén phuong huéng phit trién cia dé tai I théng tin tir vidigu khién duge ep nbit va truyén qua méy vi tinh sau d6 ste dung hg théng mang Internet théng qua dia chi IP dé truyén théng tin dén mét ngudi 6 tréch nhigm cao nit & bat ki 1 noi ndo dé trén thé gidi xiry va truyén thong tin mguge lai. Vige may vita lim. iim thigu duge ngudn nhdin céng 6 dinh tai noi lam vige vita lam gid due khong. agian nha may. ‘Tém lai phurong thie nay #8 tro nén phé bién rng rBi trong thdi gian kh6ng xa téi day.

You might also like