張傳明
摘 要 隨著科學(xué)技術(shù)的發(fā)展,當(dāng)前社會已經(jīng)逐漸向智能化、信息化、自動化的方向發(fā)展,無論是在人們的日常生活中,還是在企業(yè)生產(chǎn)過程中,都逐漸開始加大對先進科學(xué)技術(shù)的應(yīng)用。本文主要是對CAN總線的通信設(shè)計從總體設(shè)計思路和設(shè)計與應(yīng)用分析兩個方面進行了詳細(xì)的分析和介紹,這對促進CAN總線技術(shù)更好的應(yīng)用,提高其可靠性和穩(wěn)定性具有重要的意義和作用。
【關(guān)鍵詞】CAN總線 通信設(shè)計 設(shè)計思路
CAN總線是現(xiàn)場總線中的一種形式,也被稱之為控制器局域網(wǎng),能夠?qū)崿F(xiàn)實時控制或分布式控制的串行通信網(wǎng)絡(luò),其具有價格低廉、可靠性高、性能卓越等方面的優(yōu)勢,在各個領(lǐng)域和行業(yè)中得到廣泛應(yīng)用。
1 總體設(shè)計思路
通過對波形重現(xiàn)裝置系統(tǒng)和電力故障錄波中的DSP單元與PC單元,可以得出CAN總線共分為下位節(jié)點(處理單元)、PC-CAN適配卡以及上位PC單元三個部分。對于CAN總線的通信方式來說,具有一定的多樣性和靈活性,工作方式具有一定的多主性,任何一個網(wǎng)絡(luò)節(jié)點都能夠當(dāng)作是主節(jié)點來使用,接收其他節(jié)點或向其他節(jié)點發(fā)送數(shù)據(jù)信息,在PC單元中,開發(fā)環(huán)境優(yōu)越、軟件資源豐富,因此有利于對數(shù)據(jù)進行高級管理和處理。在CAN總線上將PC單元作為其中的一個節(jié)點,就必須有具有總線控制功能的數(shù)據(jù)卡。
2 通信軟件設(shè)計與應(yīng)用
2.1 CAN總線通信協(xié)議
在CAN總線通信協(xié)議中,編碼的對象由原先的站地址轉(zhuǎn)變?yōu)橥ㄐ艛?shù)據(jù)塊。數(shù)據(jù)塊標(biāo)識碼由29位二進制數(shù)或者是11位二進制數(shù)組成,這樣就能夠?qū)?shù)據(jù)塊定義為219個或者是211個。其中8字節(jié)是最多的數(shù)據(jù)段長度,占用總線的時間不會很長,因此通信的實時性能夠得到有效保證。在CAN協(xié)議中具備糾錯功能 和CRC校驗功能。因此通信的可靠性也能夠得到有效保證。隨著在更多的領(lǐng)域廣泛的應(yīng)用CAN技術(shù),這就需要根據(jù)領(lǐng)域性質(zhì)的不同,制定出相應(yīng)的通信報文標(biāo)準(zhǔn)。
2.2 CAN數(shù)據(jù)幀結(jié)構(gòu)
發(fā)送器與接收器之間完成信息傳遞的依據(jù)主要是數(shù)據(jù)幀,是CAN中的一種幀格式,其他幾種幀格式分別為超載幀、出錯幀以及遠程幀。其中數(shù)據(jù)幀是由幀結(jié)束、ACK場、CRC場、數(shù)據(jù)場、控制場、仲裁場以及幀起始七個部分。
2.2.1 幀結(jié)束
是由七個標(biāo)志序列共同組成,這些標(biāo)志序列都是隱性位。
2.2.2 ACK場
是由應(yīng)答界定符和應(yīng)答間隙兩個部分構(gòu)成。
2.2.3 CRC場
其中包括1位CRC界定符和15位CRC共同組成,其中CRC界定符的作用主要是用于進行幀校驗,組成部分是1位隱性位。
2.2.4 數(shù)據(jù)場
主要是由用于發(fā)送的數(shù)據(jù)信息構(gòu)成,控制場中央的數(shù)據(jù)長度碼,也就是字節(jié)數(shù)一般為0-8個字節(jié)。
2.2.5 控制場
是由4位數(shù)據(jù)長度碼和2位保留位共同組成,其變化長度需要控制在0-8個字節(jié)的范圍內(nèi)。
2.2.6 仲裁場
由RTR位和11位標(biāo)識符共同組成,其中當(dāng)顯性位RTR位的時候代表數(shù)據(jù)幀,為隱性位RTR位的時候表示數(shù)據(jù)幀,按照從高到低的順序依次發(fā)送標(biāo)識符,而且前7位按照規(guī)定不能全部設(shè)置為隱性位,標(biāo)識符在總線訪問和報文傳送過程中具有一定的優(yōu)先權(quán),優(yōu)先權(quán)與數(shù)值大小成反比,即數(shù)值越大,優(yōu)先權(quán)越小,數(shù)值越小,優(yōu)先權(quán)越大.
2.2.7 幀起始
表示數(shù)據(jù)幀的開始,是由顯性位組成,其中顯性位的個數(shù)為單數(shù),節(jié)點開始發(fā)送的基礎(chǔ)和前提是總線處于空閑狀態(tài),這樣能夠保證節(jié)點與總線的同步進行。
2.3 實現(xiàn)通信
在通信協(xié)議設(shè)計的過程中,其標(biāo)準(zhǔn)為CAN技術(shù)規(guī)范2.0A以及實際情況。在整個設(shè)計環(huán)節(jié)中最關(guān)鍵的主要是設(shè)計SJA1000內(nèi)部寄存器的方法,這樣就能夠快速的設(shè)置好傳輸速率和傳輸優(yōu)先級,并按照相應(yīng)的協(xié)議實現(xiàn)數(shù)據(jù)傳輸。因此,可以將通信工作分為節(jié)點初始化和數(shù)據(jù)發(fā)送與接收兩個部分。
2.3.1 節(jié)點初始化
第一步是對寄存器進行設(shè)置,保證其進入復(fù)位狀態(tài);第二步是設(shè)置好時鐘分頻寄存器;第三步是設(shè)置驗收屏蔽寄存器和驗收碼寄存器;第四步是設(shè)置總線定時寄存器;第五步是設(shè)置輸出控制寄存器;第六步是將控制寄存器進行正常狀態(tài),并中斷開放;第七步是結(jié)束。
在節(jié)點初始化的過程中,首先需要設(shè)置好其中的復(fù)位請求位,只有將其設(shè)置為“高”時,才能夠初始化設(shè)置CAN控制器,然后再設(shè)置其他的CAN寄存器。濾波設(shè)置的驗收工作是由驗收屏蔽寄存器和驗收碼寄存器共同完成的,當(dāng)系統(tǒng)設(shè)置好這兩個寄存器之后,就能夠優(yōu)先設(shè)置其他節(jié)點,并同步判斷接收數(shù)據(jù)的正確性。如果接收緩存器中存在空置現(xiàn)象的話,并滿足以下兩個條件的話,才能夠完成報文信息的完整接收,其條件為:
(1)驗收寄存器與報文中標(biāo)識符的高8位之間是相互對應(yīng),且相同的;
(2)在驗收屏蔽寄存器中的8位設(shè)置成不相關(guān),這也就表示AM.7-AM.0=11111111B。如果接收緩存器不能滿足上述條件的話,則不能正確的接受報文數(shù)據(jù)信息。
總線中的定時寄存器分別為BTR1和BTR0,通過合理的設(shè)置這兩個定時寄存器,同步跳轉(zhuǎn)寬度和波特率就能夠唯一確定下來。
2.3.2 數(shù)據(jù)的發(fā)送與接收
根據(jù)技術(shù)規(guī)范要求,CAN控制器SJA1000能夠獨立完成數(shù)據(jù)發(fā)送和接收。在發(fā)送程序中,需要保證數(shù)據(jù)能夠準(zhǔn)確的發(fā)送至緩存器當(dāng)中,并將命令寄存器的發(fā)送請求位置位。在數(shù)據(jù)接收的時候,數(shù)據(jù)通過CAN控制器和總線,能夠傳至接收緩存器當(dāng)中,如果其中的數(shù)據(jù)有效,在本地儲存器中就會將數(shù)據(jù)儲存下來,并將接收緩存器釋放,進而處理接收到的數(shù)據(jù)。
3 結(jié)語
目前在醫(yī)療器械、智能大樓、工業(yè)現(xiàn)場控制、汽車制造等多個領(lǐng)域都已經(jīng)逐漸開始應(yīng)用CAN總線技術(shù),能夠快速的對數(shù)據(jù)進行傳輸、處理和分析,其抗干擾性、可靠性以及實時性都得到有效保障。
參考文獻
[1]黃湘俊,許同樂,杜華程,侯蒙蒙,宋洪宇.基于CAN總線的尾礦庫在線監(jiān)測預(yù)警系統(tǒng)[J].金屬礦山,2014(01):129-132.
[2]昌路,郭永紅,關(guān)永峰,范驁馳.一種開放式CAN總線網(wǎng)絡(luò)仿真開發(fā)平臺的實現(xiàn)[J].系統(tǒng)仿真學(xué)報,2014(06):1236-1243.
[3]陳海燕,劉思遠,袁春柱,李志剛.支持多主通信的星載CAN總線應(yīng)用協(xié)議設(shè)計[J].航天器工程,2014(04):72-76.
[4]陳騰鵬,吳萌嶺,繆許敏,沈國金.基于ARM的CAN總線通信節(jié)點設(shè)計及其在軌道交通制動系統(tǒng)中的應(yīng)用[J].儀表技術(shù)與傳感器,2012(06):101-102+105.
[5]林智偉,蔣東方,牛鵬宇.基于FPGA與ARM單片機的CAN總線分析儀設(shè)計[J].計算機測量與控制,2011(09):2308-2311.