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