基于W77E58雙串口通信的監(jiān)控系統(tǒng)
3 通信協(xié)議
本系統(tǒng)中MR16與W77E58及上位機(jī)三方都既是發(fā)送方又是接收方,都工作在半雙工模式。MR16和上位機(jī)的發(fā)送和接收均采用查詢方式,W77E58 的串口0和串口1發(fā)送均采用查詢方式,接收均采用中斷方式。要想保證通信準(zhǔn)確可靠,通信雙方除規(guī)定好字符格式和波特率外,還要定義好通信協(xié)議。通過分析和實(shí)驗(yàn),最后確定了MR16和W77E58之間通信以77E58為主。W77E58和上位機(jī)之間通信以上位機(jī)為主的“主從通信法”通信協(xié)議。下面以 W77E58串口0和上位機(jī)為例,將這種通信協(xié)議介紹如下。
◆ W77E58串行口0通信協(xié)議(以W77E58為主機(jī))
發(fā)送(查詢方式):
fe+fe+fe+代碼 ......請求回發(fā)相應(yīng)代碼的數(shù)據(jù)包
fe+fe+ef+代碼+高字節(jié)+低字節(jié)+校驗(yàn)和 ......發(fā)送要修改的數(shù)據(jù)包
接收(中斷方式):
fe+fe+aa+故障代碼 ......接收故障代碼
fe+fe+fe+代碼+高字節(jié)+低字節(jié)+校驗(yàn)和
......接收要顯示的數(shù)據(jù)包
◆ 上位機(jī)通信協(xié)議(以上位機(jī)為主機(jī))
發(fā)送(查詢方式):
fe+fe+站號(hào) ......查詢相應(yīng)站點(diǎn)
fe+fe+fe ......請求回發(fā)要顯示的數(shù)據(jù)包
接收(查詢方式):
fe+fe+站號(hào) ......接收回發(fā)校驗(yàn)站號(hào)
fe+fe+高字節(jié)+低字節(jié)+校驗(yàn)和
......接收要顯示的數(shù)據(jù)包
協(xié)議里的斜體為包頭碼,黑體加下劃線為命令碼,站號(hào)即為多機(jī)通信時(shí)用于選擇單相逆變器的令牌,每臺(tái)單相逆變器的站號(hào)均不相同。數(shù)據(jù)包的包頭均是 0xfe,0xfe。以W77E58串口0為例,當(dāng)W77E58使用命令0xfe向MR16請求回發(fā)相應(yīng)代碼的數(shù)據(jù)包后,若接收到命令0xaa,則表明有故障,然后根據(jù)收到的故障代碼進(jìn)行相應(yīng)的故障顯示;若收到命令0xfe,則把收到的參數(shù)值送給液晶顯示器進(jìn)行顯示。
從數(shù)據(jù)包格式可以看出,MR16和W77E58之間通信以W77E58為主,W77E58和上位機(jī)之間通信以上位機(jī)為主,MR16的發(fā)送和接收都是由W77E58串口0來控制的,而W77E58串口1的發(fā)送和接收又都是由上位機(jī)來控制的,這種主從方式是RS485標(biāo)準(zhǔn)中常采用的模式。這里通過發(fā)送包頭的辦法來實(shí)現(xiàn)數(shù)據(jù)同步,發(fā)送方每次都必須先發(fā)送包頭,然后再發(fā)送數(shù)據(jù);接收方只有在正確接收包頭后才開始接收數(shù)據(jù)。當(dāng)接收數(shù)據(jù)出錯(cuò)或發(fā)送的數(shù)據(jù)丟失時(shí)就放棄本次接收,在下個(gè)主循環(huán)重新通信。這樣可以在一次通信出錯(cuò)后自動(dòng)恢復(fù),同時(shí)避免“死機(jī)”現(xiàn)象的發(fā)生。
4 軟件實(shí)現(xiàn)
基于對該監(jiān)控通信系統(tǒng)通用性的考慮,我們采用了模塊化設(shè)計(jì)方法,將通信程序作為主程序的一個(gè)模塊來處理。因?yàn)锽CD碼是以數(shù)字“0”到“9”開頭的,而控制命令則以字母“A”到“F”開頭,在發(fā)送端將數(shù)據(jù)轉(zhuǎn)化成BCD碼發(fā)送。這樣可區(qū)分這兩類信號(hào),在接收端分別將它們解碼處理。
MR16通信模塊包括查詢接收程序和查詢發(fā)送程序,程序流程類似于圖3;W77E58串口1通信模塊包括中斷接收程序和查詢發(fā)送程序,程序流程與串口0相類似,這里都不再給出。
參考文獻(xiàn)
1 WINBOND electronics corp. 8-Bit Microcontroller——W77E58. 2001.7
2 Fail-Safe, High-Speed (10Mbps), Slew-Rate-Limited RS-485/RS-422 Transceivers,MAXIM Document , 1997
3 Advance Information. MC68HC908MR16/MC68HC908MR32?Rev. 4.0. MOTOROLA Document, 2000
4 李朝青. PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù). 北京:北京航空航天大學(xué)出版社,2000
評(píng)論