步豐盛
(西南交通大學(xué),四川 成都 611756)
本文在對現(xiàn)有的CAN總線技術(shù)和ZigBee無線通訊技術(shù)的研究成果和應(yīng)用實例進(jìn)行分析和總結(jié)的基礎(chǔ)上不僅完成基于CAN總線的ZigBee無線通訊模塊的系統(tǒng)整體設(shè)計,并且,在硬件方面,完成了系統(tǒng)的硬件設(shè)計;在軟件方面,實現(xiàn)了CAN總線的基本功能和CAN總線通過無線的方式與上位機(jī)的通訊。本文所設(shè)計的基于CAN總線的ZigBee無線通訊模塊是一種實驗性的系統(tǒng),若要運(yùn)用于實際生產(chǎn)中,還需要進(jìn)一步的完善改進(jìn)。
現(xiàn)場總線近年來發(fā)展迅速,CAN總線作為現(xiàn)場總線的一種,由于采用了新技術(shù)和獨特的設(shè)計,具有突出的可靠性、實時性和靈活性,而被廣泛的應(yīng)用。ZigBee技術(shù)是一種新的短矩離無線通信技術(shù),它具有成本低、體積小、能量消耗小和傳輸速率低的特性被應(yīng)用到諸如工業(yè)控制、環(huán)境監(jiān)測、商業(yè)監(jiān)控、汽車電子、家庭自動化等低速率網(wǎng)絡(luò)應(yīng)用場合。隨著無線通訊技術(shù)的迅猛發(fā)展,無線通訊技術(shù)被越來越多的應(yīng)用到了控制領(lǐng)域。
本文在介紹CAN總線協(xié)議和zigbee協(xié)議棧的基礎(chǔ)上,給出了一種基于CAN總線的zigbee無線通訊系統(tǒng)的軟硬件設(shè)計方案。文中介紹了SJA1000CAN總線控制器,CC2430無線單片機(jī),P87C52單片機(jī)的使用方法。本文所要完成以下的任務(wù):了解CAN協(xié)議和ZigBee協(xié)議棧,完成系統(tǒng)設(shè)計方案。
CAN協(xié)議是一串行通訊協(xié)議,CAN 總線規(guī)范規(guī)定了任意兩個CAN節(jié)點之間的兼容性包括電氣特性及數(shù)據(jù)解釋協(xié)議。CAN總線是建立在OSI參考模型基礎(chǔ)上的,不過只采用了其中最關(guān)鍵的兩層,即物理層和數(shù)據(jù)鏈路層(如圖1)。數(shù)據(jù)鏈路層的主要功能是將要發(fā)送的數(shù)據(jù)進(jìn)行封裝,即加上差錯校驗位、數(shù)據(jù)鏈路協(xié)議的控制信息頭尾標(biāo)記等附加信息組成數(shù)據(jù)幀,從物理信道上發(fā)送出去,在接收到數(shù)據(jù)幀后,再把附加信息去掉,得到通信數(shù)據(jù);物理層的主要內(nèi)容是規(guī)定了通信介質(zhì)的機(jī)械、電氣、功能和規(guī)程特性。CAN總線的物理層和數(shù)據(jù)鏈路層的功能是在CAN控制器中完成的。
圖1 CAN協(xié)議結(jié)構(gòu)
只要總線空閑,任何節(jié)點都可以向總線發(fā)送報文。如果有兩個或兩個以上的節(jié)點同時發(fā)送報文,就會引起總線訪問碰撞。通過使用標(biāo)識符的逐位仲裁可以解決這個碰撞。仲裁的機(jī)制確保了報文和時間均不損失。當(dāng)具有相同標(biāo)識符的數(shù)據(jù)幀和遠(yuǎn)程幀同時發(fā)送時,數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。在仲裁期間,每一個發(fā)送器都對發(fā)送位的電平與被監(jiān)控的總線電平進(jìn)行比較。如果電平相同,則這個單元可以繼續(xù)發(fā)送,如果發(fā)送的是“隱性”電平而監(jiān)視到的是“顯性”電平,那么這個單元就失去了仲裁,必須退出發(fā)送狀態(tài)。這種解決沖突的機(jī)理是基于競爭的仲裁。
在CAN中存在5類不同的錯誤:①位錯誤;②填充錯誤;③CRC錯誤;④形式錯誤;⑤應(yīng)答錯誤。在網(wǎng)絡(luò)中的任何一個節(jié)點,根據(jù)其錯誤計數(shù)器的數(shù)值,可能處于下列三種狀態(tài)之一。①“錯誤—激活”節(jié)點:一個“錯誤—激活”節(jié)點可以正常參與總線通信,并在檢測到錯誤時,發(fā)出一個激活錯誤標(biāo)志;②“錯誤—認(rèn)可”節(jié)點:一個“錯誤—認(rèn)可”節(jié)點不應(yīng)發(fā)送激活錯誤標(biāo)志,它參與總線通信,但在檢測到錯誤時,發(fā)出一個認(rèn)可錯誤標(biāo)志;③“總線脫離”節(jié)點:當(dāng)一個節(jié)點由于請求故障界定實體而對總線處于關(guān)閉狀態(tài)時,其處于“總線脫離”狀態(tài)。在“總線脫離”狀態(tài)下,節(jié)點既不發(fā)送,也不接收任何幀。只有應(yīng)用戶請求,節(jié)點才能解脫總線脫離狀態(tài)。
該系統(tǒng)的主要功能是使用無線通訊技術(shù)實現(xiàn)CAN總線與上位機(jī)的交互通信。由于這套系統(tǒng)是應(yīng)用在現(xiàn)場的,因此其要具有以下的特點:系統(tǒng)具有廣泛的通用性;具有較高的可靠性;具有低功耗的特點。
我們能夠得出數(shù)據(jù)在整個系統(tǒng)中的傳輸過程,即ZIGBEE數(shù)據(jù)包←→數(shù)據(jù)←→CAN總線數(shù)據(jù)包。在系統(tǒng)中無線通信模塊采用ZigBee無線通訊技。ZigBee技術(shù)在低數(shù)據(jù)傳輸率的環(huán)境下具有很高的可靠性與穩(wěn)定性,并且還具有低功耗低成本的特點。CAN總線傳輸采用CAN2.0A標(biāo)準(zhǔn),其采用11位的標(biāo)識符來判別過濾信息。
本文所給出的只是一種理論研究學(xué)習(xí)的模塊,要將其用于工業(yè)控制中去還需要做出很多改進(jìn)。首先,硬件設(shè)計方面要增強(qiáng)電路的抗干擾能力,增加對核心電路的保護(hù)電路等。在軟件方面,文中所采用的ZigBee無線通訊協(xié)議棧只是一個簡化版的,需要對這部分軟件在于通訊的安全性和可靠性上做出改進(jìn),CAN的部分也需要在可靠性和錯誤的處理能力上做出改進(jìn)。
基于這種原理設(shè)計的無線通訊控制系統(tǒng)以其低成本,低功耗,突出的可靠性、實時性和穩(wěn)定性完全可以勝任現(xiàn)代控制的需要。
[1]李東生.Protel 99SE電路設(shè)計技術(shù)入門與應(yīng)用.電子工業(yè)出版社.2002
[2]楊斌.微機(jī)原理及接口設(shè)計原理.西南交通大學(xué)出版社.2005
[3]童長飛.C8051F系列單片機(jī)開發(fā)與C語言編程.北京航空航天大學(xué)出版社.2005.2