許矛盾,殷安龍,陳 琳,鄒鵬飛,張持健
(安徽師范大學 物電學院,安徽 蕪湖 241000)
基于CAN總線通信協議安全及汽車溫度檢測系統的研究
許矛盾,殷安龍,陳 琳,鄒鵬飛,張持健
(安徽師范大學 物電學院,安徽 蕪湖 241000)
為了實現對汽車內CAN節點的安全通信和汽車溫度的實時檢測,本文采用單片機和CAN總線設計出一套汽車溫度檢測系統。該系統基于CAN總線通信協議,實現對各個節點相互通信時的安全校驗,并能實時檢測車身各個部分溫度。經實驗表明,該系統在安全性和實時性具有顯著的提高,同時具有很好的可移植性,方便二次開發。
CAN總線;通信協議 ;安全性;溫度檢測
隨著在汽車應用中的電子設備逐漸增多,汽車總線技術越來越重要。在技術成熟的所有總線當中,CAN總線技術具有數據通信突出的實時性、安全性和精確性的特點,成為目前國際上應用最廣泛的現場總線之一[1]。CAN總線在汽車中的應用,不僅保證了汽車系統的安全,增加汽車網絡數據傳輸的安全,還提高了車內電子設備的穩定性。在本文中,研究將CAN總線網絡系統嵌入到汽車系統之中,同時努力解決CAN總線節點間的通信安全問題;反過來,當汽車溫度過高時,溫度檢測系統能夠即使提醒車主進行相應的處理,進而有效地降低車輛設備的損壞。
但是隨著車內電子設備不斷增多,節點間因同時發送信息而產生的沖突的概率也會增大,這就會導致優先級較低的節點等待時間過長,因此CAN總線系統的安全性和實時性變得很差。如果節點間的傳送數據延遲過長,從而影響多個CAN節點之間傳送數據,導致了車輛系統的安全性變差,造成車輛駕駛的安全。
與此同時,很多文獻都針對CAN總線網絡協議帶來的問題提出了改進措施。文獻[2]基于CAN總線通信協議,提出了排隊理論并給出了非強占M/G/1排隊論模型;文獻[3]針對總線資源受限的問題,本文提出,采用靈活的量化調度方法提高系統的實時性;文獻[4]進一步提出了CAN協議車載網絡級系統V字型系統工程開發方法,完善了整車網絡級系統的系統集成策略;文獻[5]驗證了在自主開發的網絡平臺上驗證了CAN-open協議的有效性。但是針對如何識別CAN總線各節點間的身份,給出的對策較少。文中提出一種識別各節點身份,增強CAN總線網絡完全的一種方案。
CAN總線節點間通信采用的協議是 CSMA/CA協議(帶有沖突避免的載波監聽多路訪問),CAN總線網絡節點之間通信,與一般網絡相比較得出:具有更好的安全性和可靠性。仲裁過程中,標識符小的數據可以不受影響的連續發送數據,標識符大的數據則退出等待,由于總線響應的請求是根據報文在整個系統中的重要性按順序處理的,所以CAN總線實現了較高的效率[6]。CAN總線各個節點之間,沒有主從關系的概念。每個節點作為獨立的節點,均可與掛載在總線上的其它節點進行通信。各節點只需通過報文濾波即可實現點對點、一點對多點以及全局廣播等方式傳送接受數據[7]。CAN總線上的各節點間數據通信,使用無破壞性總線仲裁技術,當CAN節點出現故障,這個節點可以自動關閉,不會影響到總線中其他節點之間的通信。
1.1 CAN總線的實時性改進
由節點間發送信息沖突所引起的非周期性通信延遲問題,本文在溫度檢測系統采用了了時分多路優先級方法對CAN總線的實時性進行了優化,其數學期望如下:

公式中di表示非周期性信息幀,di表示競爭時下個窗口到來的延遲時間。Dm表示延遲時間的數學期望。由于采用了時分多路方法,節點間時間觸發基本無排隊延遲。結合優先級排隊原理,運用競爭時窗內的優先級晉升方案來解決非周期性事件觸發。優化前后的效果如圖1(a)和圖1(b):

圖1 優化前后相應時間圖
通過以上分析得出,時分多路優先級方法有效減少節點間通信的實時性問題。
1.2 CAN總線的安全性改進
CAN總線作為一種多節點、無主從的實時通信總線,在通信中則會存在潛在的外部威脅問題。很多文獻中都指出了車載網絡CAN節點間通信的安全性問題,但是提出增強車載網絡CAN節點間安全性的解決辦法的相對較少。
本文通過軟件編程來實現:當CAN節點正在傳送信息幀時,寄存器SJA1000使用flag來進行標識。為了保證CAN節點預防方法的響應的實時性,在寄存器SJA1000中,編程實現能夠檢查輸入的所有數據。當檢查到為授權的數據在CAN節點上傳送數據時候,立即發送一個錯誤幀。具體數據幀授權實現流程如圖2。

圖2 數據幀授權實現流程
根據分析CAN總線的傳輸協議,在CRC界定符之后,SJA1000芯片來檢測所有輸入數據的循環冗余碼校驗(CRC)場。在滿足CAN總線通信協議的情況下,預防方法能夠在包含一個標準CAN控制器SJA1000的ECU中得以合理的實現。該方法優點:當CAN總線網絡中出現了未授權信息幀的情況,通過編程使得ECU一直出路循環檢測中,這樣只要有未授權的數據幀出現,總線的各個節點就能檢測到未授權的信息幀,然后隨后立即發送一個錯誤幀,提醒其他總線節點出現未授權數據幀為錯誤幀,從而使ECU避免了接收到未授權的數據幀。
從功能方面分析,系統可分為電源模塊、CAN總線驅動器模塊、串口通信模塊、溫度采集模塊、報警模塊和單片機主控模塊。汽車生產廠商生產的汽車所提供的電源電壓是12 V,而要使用CAN控制芯片SJA1000必須要求供電電壓為直流電壓5 V,所以采用了接口簡單,使用方便的穩壓芯片TLE4264,完成+12 V向+5 V的電壓的轉化。溫度采集模塊主要使用DS18B20溫度傳感器,DS18B20溫度傳感器是由美國DALLAS半導體公司生產。該溫度采集模塊在應用設計中需要注意的問題是:節點上掛載的溫度傳感器不能超過8個。系統MCU(中央處理單元)使用的是STC89C52RC單片機,它的優勢在于空閑態電流為1mA,工作電流5.5mA,掉電狀態僅為20nA。該單片機這樣的功耗,適合于小型供電系統。為了解決本系統嵌入到車載電腦系統的問題,增加了RS232串口通信模塊。報警模塊由LED發光二極管、GPRS(sim300芯片)和LCD液晶顯示屏組成。系統結構框圖如圖3所示。

圖3 汽車溫度檢測系統框圖
2.1 CAN節點電路硬件設計
CAN節點的硬件電路由SJA1000控制芯片和TJA1050總線驅動芯片組成,主要功能是檢測出車內電子設備當前溫度。節點電路處于不停的間隔檢測當前車內各個部分的溫度,當監測溫度超出預先設定的值時,LED發光二極管會發出警示,并立即通過SIM300芯片給車主發送消息。如果該節點因意外故障發生損壞,或者檢測到未授權的信息幀時,則會關閉發生故障的節點,會立即發送錯誤幀,保證了總線上其他CAN節點間的通信。
總線與CAN-BUS間的通信,使用了最新TJA1050收發芯片。TJA1050收發芯片用于連接CAN節點與物理總線,與很多人使用的PCA82C250收發芯片相比較,TJA1050的優勢在于性價比高、電磁輻射EME極低、電磁抗干擾EMI性極高。CAN總線節點電路如圖4所示。

圖4 SJA1000節點電路
2.2 CAN節點軟件總體流程
從功能角度分析,CAN節點的軟件主要實現了:節點與節點之間相互通信、對每個節點進行溫度的實時監測。系統的軟件程序完成MCU模塊上電初始化,初始化部分包括單片機模塊初始化、CAN總線模塊初始化、液晶模塊初始化、時鐘模塊初始化。開放中斷,溫度傳感器DS18B20采集數據并對數據是否超過預定值進行判斷。在處理程序上,主程序處于無限循環狀態,當采集到的溫度超過預定值,則觸發標志位,來執行相應的標志位所對應的操作。軟件總體流程如圖5。

圖5 軟件執行流程
經實際結果表明,基于CAN總線的溫度檢測系統,其采集溫度的精確性和網絡通信的實時性、安全性都得到了很好的保證。而且該系統的成本低廉,CAN總線節點間通信網絡搭建便捷,還可以根據車內設備數量的增多或減少,系統節點可以進行相應的增多和減少,有利于二次開發,具有實際的應用前景。
[1]張培仁,朱東杰,馬云,等.自動控制技術和應用[M].合肥:中國科學技術大學出版社,2001.
[2]陳曦.CAN總線實時性和可靠性若干問題的研究[D].天津:天津大學,2010.
[3]匡付華.CANopen總線網絡應用的實時性和可靠性若干問題的研究[D].廣州:華南理工大學,2011.
[4]曹萬科.CAN協議車載網絡若干關鍵理論研究[D].沈陽:東北大學,2008.
[5]李芳,張俊志,王麗芳,廖承林.電動汽車動力總成系統控制器局域網 (CAN)總線通信協議[J].機械工程學報,2008,44(5):101-107.
[6]王津津,張培仁,崔軍輝,等.基于 CAN總線通信系統實驗的設計[J].自動化與儀表,2008(5):17-21.
[7]屈敏.汽車車身舒適系統的 CAN總線及其測控系統研究[D].南京:南京林業大學,2007.
Research on communication protocol security and automotive temperature detection system based on CAN bus
XU Mao-dun,YIN An-long,CHEN Lin,ZOU Peng-fei,ZHANG Chi-jian
(College of Physics and Electronic Information,Anhui Normal University,Wuhu 241000,China)
In order to achieve real-time detection of secure communications and automotive temperature inside the car CAN node,we use microcontrollers and CAN bus design a car temperature detection system.The system is based on CAN bus communication protocol to implement safety check at each node to communicate with each other,and real-time detection of various parts of the body temperature.The experiment shows that the system in real-time safety and a significant increase,but also has good portability,convenient secondary development.
CAN bus;communication protocol;security;temperature detection
TN911.72
A
1674-6236(2016)18-0182-03
2015-10-13 稿件編號:201510075
許矛盾(1989—),男,江蘇宿遷人,碩士研究生。研究方向:嵌入式開發與智能控制。