• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2016-11-03 22:53:48張一嬌
      科技視界 2016年18期
      關(guān)鍵詞:CAN總線

      張一嬌

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

      【關(guān)鍵詞】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 引言

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

      1 CAN總線通信原理

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

      在國(guó)際標(biāo)準(zhǔn)化組織(ISO)提出的“開(kāi)放系統(tǒng)互聯(lián)(OSI)”的參考模式中,網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)劃分為7層。從上到下依次是應(yīng)用層,表示層,會(huì)話層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層。

      下表為各層的定義。

      CAN協(xié)議也是建立在國(guó)際標(biāo)準(zhǔn)化組織的開(kāi)放系統(tǒng)互聯(lián)模型基礎(chǔ)上的。不過(guò),其模型結(jié)構(gòu)只有3層,即只取OSI底層的物理層,數(shù)據(jù)鏈路層和上層的應(yīng)用層。由于CAN的數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,又是范圍較小的局域網(wǎng),因此不需要其他中間層,應(yīng)用層數(shù)據(jù)直接取自數(shù)據(jù)鏈路層或直接向鏈路層寫(xiě)數(shù)據(jù),而物理層主要完成設(shè)備間的信號(hào)傳送,把各種信息轉(zhuǎn)換為可以傳輸?shù)奈锢硇盘?hào)(通常為電信號(hào)或光信號(hào)),并將這些信號(hào)傳輸?shù)狡渌繕?biāo)設(shè)備。結(jié)構(gòu)層次少,有利于系統(tǒng)中實(shí)時(shí)控制信號(hào)的傳送。

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

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

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

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

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

      3.1 需要用到的硬件

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

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

      3.2 具體測(cè)試方法

      運(yùn)行在CAN總線應(yīng)用層上的是SAEJ1939協(xié)議,在CAN網(wǎng)絡(luò)中有2個(gè)節(jié)點(diǎn),一個(gè)是真實(shí)節(jié)點(diǎn)ECU,另一個(gè)節(jié)點(diǎn)是CANoe仿真工具。該CAN網(wǎng)絡(luò)是用來(lái)測(cè)試ECU的CAN模塊實(shí)現(xiàn)的SAEJ1939協(xié)議功能是否正確。

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

      CANoe仿真功能中的總線數(shù)據(jù)庫(kù)工具是CANdb++,它包含整個(gè)系統(tǒng)的各個(gè)節(jié)點(diǎn)、環(huán)境變量、消息的設(shè)定以及信號(hào)在消息中的相對(duì)位置,即數(shù)據(jù)幀中數(shù)據(jù)場(chǎng)的位置關(guān)系[4]。本測(cè)試系統(tǒng)使用CANdb++工具定義了報(bào)文DM4、DM5等的ID類(lèi)型及ID號(hào)等信息。

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

      面板是CAN網(wǎng)絡(luò)節(jié)點(diǎn)的外部設(shè)備,用戶可以通過(guò)面板上面的信號(hào)觀察節(jié)點(diǎn)當(dāng)前狀態(tài),也可以通過(guò)點(diǎn)擊按鈕發(fā)送CAN報(bào)文。

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

      在實(shí)現(xiàn)了ECU的CAN模塊編程以及CANoe仿真工具的報(bào)文輸出功能后,就可以通過(guò)PC機(jī)上的CAN卡來(lái)觀察CAN網(wǎng)絡(luò)中的報(bào)文傳輸情況。

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

      在圖4中,我們還可以看到,ECU節(jié)點(diǎn)的CAN模塊會(huì)發(fā)送DM1報(bào)文,DM1報(bào)文是不需要接收請(qǐng)求報(bào)文的,它會(huì)按照1s的周期定時(shí)發(fā)送。

      4 結(jié)束語(yǔ)

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

      【參考文獻(xiàn)】

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

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

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

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

      [責(zé)任編輯:楊玉潔]

      猜你喜歡
      CAN總線
      基于CAN總線的生物質(zhì)燃料鍋爐溫度集中控制研究
      論網(wǎng)絡(luò)通信技術(shù)
      基于嵌入式的汽車(chē)輔助制動(dòng)系統(tǒng)研究
      CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
      商用車(chē)基于CAN總線的組合儀表開(kāi)發(fā)與應(yīng)用
      CAN總線在鐵路設(shè)備通信中的應(yīng)用
      利用MC9S12(X)單片機(jī)構(gòu)建CAN總線網(wǎng)絡(luò)的研究
      基于CAN總線的智能微噴灌監(jiān)控系統(tǒng)中下位機(jī)的硬件電路組成與設(shè)計(jì)
      基于CAN總線的變電站通訊網(wǎng)絡(luò)設(shè)計(jì)
      CAN總線技術(shù)、系統(tǒng)實(shí)現(xiàn)及發(fā)展趨勢(shì)
      石景山区| 崇左市| 安图县| 武义县| 潍坊市| 雷波县| 云林县| 绥中县| 土默特左旗| 宁阳县| 奉节县| 南华县| 合水县| 松溪县| 平凉市| 杭锦旗| 桃园市| 射洪县| 海林市| 错那县| 绍兴县| 旅游| 郴州市| 噶尔县| 邢台市| 获嘉县| 柯坪县| 泗阳县| 南江县| 金沙县| 星座| 旺苍县| 色达县| 沛县| 平乐县| 光山县| 郸城县| 广宗县| 广东省| 陵川县| 卓资县|