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