国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CANoe的J1939協(xié)議在ECU通信中的應用

2016-11-03 22:53張一嬌
科技視界 2016年18期
關鍵詞:CAN總線

張一嬌

【摘 要】作為現(xiàn)場總線一員的CAN總線的架構使用了OSI七層參考模型,其主要使用了七層參考模型中的物理層、數據鏈路層和應用層,本文對這三層進行了介紹。本文使用TC1728芯片的CAN模塊來實現(xiàn)一個傳送J1939協(xié)議報文的CAN節(jié)點。該ECU的CAN節(jié)點與CANoe仿真工具模擬的一個CAN節(jié)點之間使用J1939協(xié)議相互通信。用戶即可在CAN卡的圖形化界面中觀察ECU的CAN節(jié)點的報文幀是否正確。

【關鍵詞】CAN總線;OSI七層參考模型;CANoe

J1939 Protocol in ECU communication based on CANoe

ZHANG Yi-jiao

(Chengdu College of University of Electronic Science & Technology, Chengdu Sichuan 611731, China)

【Abstract】CAN bus architecture as a field bus uses the OSI reference model, which is mainly used seven layer reference model physical layer, data link layer and application layer, these three are described herein. As used herein, TC1728 chip CAN module to implement a packet transmission protocol J1939 CAN node. The communication between the CAN node of the ECU and CANoe simulation tool simulation is using J1939 protocol. The user can observe the ECU CAN node in the graphical interface of CAN card and they can judge whether the message frame is correct.

【Key words】CAN bus; OSI seven layer reference model; CANoe

0 引言

在當今社會,汽車技術快速發(fā)展,汽車性能不斷提高,各類電子設備在汽車上應用得越來越廣泛。傳統(tǒng)的布線技術難以滿足現(xiàn)代汽車技術的需求,因此汽車總線技術得到越來越多汽車廠商的青睞。在汽車總線發(fā)展歷程中,K線等總線正在被淘汰,CAN線等總線已經發(fā)展成熟,MOST等總線則正處于研究階段。

1 CAN總線通信原理

CAN總線是現(xiàn)場總線家族中極其重要的一員,而現(xiàn)場總線的定義為:應用于工業(yè)現(xiàn)場,采用總線方式連接多個設備,用于傳輸工業(yè)現(xiàn)場各種數據的一類通信系統(tǒng)[1]。

在國際標準化組織(ISO)提出的“開放系統(tǒng)互聯(lián)(OSI)”的參考模式中,網絡系統(tǒng)結構劃分為7層。從上到下依次是應用層,表示層,會話層,傳輸層,網絡層,數據鏈路層,物理層。

下表為各層的定義。

CAN協(xié)議也是建立在國際標準化組織的開放系統(tǒng)互聯(lián)模型基礎上的。不過,其模型結構只有3層,即只取OSI底層的物理層,數據鏈路層和上層的應用層。由于CAN的數據結構簡單,又是范圍較小的局域網,因此不需要其他中間層,應用層數據直接取自數據鏈路層或直接向鏈路層寫數據,而物理層主要完成設備間的信號傳送,把各種信息轉換為可以傳輸的物理信號(通常為電信號或光信號),并將這些信號傳輸到其他目標設備。結構層次少,有利于系統(tǒng)中實時控制信號的傳送。

2 CAN總線與J1939協(xié)議

CAN總線其本質是一種串行數據通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等工作[2]。CAN總線通信是通過5種類型的幀進行的,它們分別是數據幀、遠程幀、錯誤幀、過載幀和幀間隔。為了使數據能夠在總線上可靠傳輸,CAN總線對各類幀的格式、用途及發(fā)送時機都進行了詳細的規(guī)定。數據幀用于發(fā)送節(jié)點向接收節(jié)點傳送數據,是使用最多的幀類型,遠程幀用于接收節(jié)點向某個發(fā)送節(jié)點請求數據,錯誤幀用于在檢測出通信錯誤(如校驗錯誤)時向其他節(jié)點發(fā)出通知,過載幀用于接收節(jié)點通知,用于將數據幀和遠程幀與前面的幀分離開來。

根據應用場合的不同,國際上出現(xiàn)了多種CAN應用層協(xié)議,如CANopen、DeviceNet、J1939等。J1939協(xié)議基于CAN2.0B協(xié)議,即數據幀為擴展數據幀,數據標識符(ID)由29位構成,包括優(yōu)先級P、保留位R、數據頁DP、PDU格式PF、特定PDU(目標地址PS)、源地址(SA)。J1939報文標識符的具體結構如圖1所示。

3 總線測試系統(tǒng)的實現(xiàn)

CANoe是德國VECTOR公司開發(fā)的功能強大的仿真及測試軟件,使用時需要借助其他硬件測試工具配合使用,常使用的硬件包括CANcaseXL,CANScope,CANStress等[3]。本系統(tǒng)使用的硬件是CANcaseXL。

3.1 需要用到的硬件

在本文所搭建的測試系統(tǒng)中,我們選擇了以英飛凌Tricore架構的32位微控制器TC1728為核心芯片的ECU作為一個節(jié)點。TC1728芯片實現(xiàn)的CAN模塊屬于全CAN設備,即,用硬件實現(xiàn)全部的總線協(xié)議,包括接收濾波和報文管理。CAN模塊的報文對象被組織為雙鏈列表,在該列表結構中,每個報文對象都有兩個指針,一個指向列表中的前一個報文對象,另一個指向列表中的后一個報文對象。CAN模塊提供8個列表,每個報文對象分配給其中之一。

圖2是TC1728芯片與PC機的一個通信示例。PC機通過CAN卡發(fā)送報文,然后TC1728芯片中的CAN節(jié)點0的報文對象10接收到報文后,在中斷函數中處理報文,最后使用報文對象12,通過CAN卡發(fā)送報文到PC機上。我們根據下圖編寫代碼,實現(xiàn)TC1728芯片發(fā)送CAN報文,然后根據CAN總線應用層的J1939協(xié)議,可以發(fā)送滿足J1939協(xié)議的報文。

3.2 具體測試方法

運行在CAN總線應用層上的是SAEJ1939協(xié)議,在CAN網絡中有2個節(jié)點,一個是真實節(jié)點ECU,另一個節(jié)點是CANoe仿真工具。該CAN網絡是用來測試ECU的CAN模塊實現(xiàn)的SAEJ1939協(xié)議功能是否正確。

在本測試系統(tǒng)中,我們用到了CANoe在ECU開發(fā)過程中的半物理仿真。即將CANcaseXL硬件工具當作一個節(jié)點,與ECU共同處于一個CAN網絡中。CANoe軟件工具運行在CANcaseXL硬件工具之上,使用了CANoe仿真功能中的總線數據庫以及建模(包含CAPL編程以及面板)兩項功能。

CANoe仿真功能中的總線數據庫工具是CANdb++,它包含整個系統(tǒng)的各個節(jié)點、環(huán)境變量、消息的設定以及信號在消息中的相對位置,即數據幀中數據場的位置關系[4]。本測試系統(tǒng)使用CANdb++工具定義了報文DM4、DM5等的ID類型及ID號等信息。

CAPL是CAN總線訪問編程語言,是一種類C語言。CAPL程序能夠檢測事件,并執(zhí)行和事件相關的程序。檢測的事件類型包括:程序開始執(zhí)行事件、程序停止執(zhí)行事件、鍵盤輸入事件、CAN消息的接收事件、定時器超時事件、圖形面板輸入事件。CAPL程序是基于事件程序的組合。

面板是CAN網絡節(jié)點的外部設備,用戶可以通過面板上面的信號觀察節(jié)點當前狀態(tài),也可以通過點擊按鈕發(fā)送CAN報文。

根據圖3所示,用戶可以通過點擊面板上面的按鈕輸出報文給ECU節(jié)點。CANoe軟件可發(fā)送的報文有DM4、DM5、DM6、DM12、DM21、DM23、DM26、DM28、DM29.

在實現(xiàn)了ECU的CAN模塊編程以及CANoe仿真工具的報文輸出功能后,就可以通過PC機上的CAN卡來觀察CAN網絡中的報文傳輸情況。

在CAN網絡中,ECU節(jié)點的地址是0x00,CANcaseXL節(jié)點的地址是0x2B,CANcaseXL節(jié)點利用面板點擊按鈕發(fā)送報文,ECU接收報文。發(fā)送和接收的報文格式符合SAEJ1939協(xié)議的應用層規(guī)范,如圖4所示。

在圖4中,我們還可以看到,ECU節(jié)點的CAN模塊會發(fā)送DM1報文,DM1報文是不需要接收請求報文的,它會按照1s的周期定時發(fā)送。

4 結束語

本文使用CANoe仿真工具配合ECU進行CAN通信,來測試ECU中CAN通信模塊功能是否正常。CANoe仿真工具使用面板實現(xiàn)了人機交互功能,使界面更加友好。在未來的研究中,可以嘗試加入更多的報文,并更精確報文發(fā)送的間隔時間。

【參考文獻】

[1]周立功.項目驅動-CAN-bus現(xiàn)場總線基礎教程[M].北京:航空航天大學出版社,2012.

[2]胡艷峰.基于CANoe的汽車CAN總線通信及診斷設計[J].汽車電器,2015(6):10-13,20.

[3]張軍.基于CANoe軟件的電動汽車CAN總線測試系統(tǒng)的研究[J].傳動技術,2012,26(3):10-13,42.

[4]李志濤.基于CANoe的汽車網絡功能配置系統(tǒng)的開發(fā)[J].汽車電器,2015(4):51-53.

[責任編輯:楊玉潔]

猜你喜歡
CAN總線
基于CAN總線的生物質燃料鍋爐溫度集中控制研究
基于嵌入式的汽車輔助制動系統(tǒng)研究