【基于CANOpen協(xié)議的汽車電子通信系統(tǒng)】通信系統(tǒng)相關(guān)的業(yè)務(wù)和協(xié)議
發(fā)布時(shí)間:2020-02-16 來(lái)源: 感悟愛(ài)情 點(diǎn)擊:
摘要:CANopen是基于CAN(Controller Area Network)總線的應(yīng)用層協(xié)議,本文通過(guò)對(duì)CANopen協(xié)議設(shè)計(jì)的實(shí)質(zhì)和核心內(nèi)容的分析,給出了基于該協(xié)議的汽車電子通信系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方案。 通過(guò)CAN硬件接口的設(shè)計(jì)和DLL模塊實(shí)現(xiàn)了利用CANopen通信模型構(gòu)造汽車電子通信系統(tǒng)的基本框架模型,總結(jié)了CANopen協(xié)議的在本方案中的優(yōu)缺點(diǎn)和適用性。
關(guān)鍵詞:CAN;CANopen;LIN;OD
中圖分類號(hào):TP393.04 文獻(xiàn)標(biāo)識(shí)碼:A
1 概述
CANopen[1]協(xié)議集定義基于CAN的分布式工業(yè)自動(dòng)化系統(tǒng)的應(yīng)用標(biāo)準(zhǔn)以及CAN應(yīng)用層通信標(biāo)準(zhǔn)。CANopen是CAN-in-Automation(CiA)定義的標(biāo)準(zhǔn)之一,并且在發(fā)布后不久就獲得了廣泛的承認(rèn)。尤其是在歐洲,CANopen被認(rèn)為是在基于CAN的工業(yè)系統(tǒng)中占領(lǐng)導(dǎo)地位的標(biāo)準(zhǔn)。CANopen協(xié)議集基于所謂的“通信子集”,該子集規(guī)定了基本的通信機(jī)制及其特性,如圖1。
應(yīng)用層(Application layer):為網(wǎng)絡(luò)中每一個(gè)有效設(shè)備都能夠提供一組有用的服務(wù)與協(xié)議。
通訊描述(Communication profile):提供配置設(shè)備、通訊數(shù)據(jù)的含義,定義數(shù)據(jù)通訊方式。
設(shè)備描述(Device proflile):為設(shè)備(類)增加符合規(guī)范的行為。
CANopen主要應(yīng)用在汽車、工業(yè)控制、自動(dòng)化儀表等領(lǐng)域,目前由CIA負(fù)責(zé)管理和維護(hù)。
2CANopen協(xié)議設(shè)計(jì)的實(shí)質(zhì)
CAN處于OSI網(wǎng)絡(luò)模型中物理層和數(shù)據(jù)鏈路層,而CANopen是基于CAN的應(yīng)用層,因?yàn)楝F(xiàn)場(chǎng)總線通常只包括一個(gè)網(wǎng)段,因此不需要第3層(傳輸層)和第4層(網(wǎng)絡(luò)層),也不需要第5層(會(huì)話層)、第6層(描述層)的作用。正是因?yàn)橛辛薈ANopen這樣應(yīng)用層協(xié)議的存在,從而使CAN總線成為了一個(gè)更加完善的網(wǎng)絡(luò)系統(tǒng)。
CANopen協(xié)議在設(shè)計(jì)的時(shí)候,對(duì)總線上傳輸?shù)臄?shù)據(jù)進(jìn)行了分類,即每一個(gè)傳輸數(shù)據(jù)都是某一特定類的對(duì)象,從而實(shí)現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)。在CANopen中每一類傳輸對(duì)象都有其規(guī)范化的格式,從而實(shí)現(xiàn)了應(yīng)用層結(jié)構(gòu)上的統(tǒng)一。這樣無(wú)論從規(guī)范化角度,還是從模塊化程序設(shè)計(jì)角度講,CANopen協(xié)議都是一個(gè)設(shè)計(jì)比較完善的協(xié)議,圖2是CANopen 內(nèi)核[2]。圖2CANopen master kernel在CANopen協(xié)議的數(shù)據(jù)傳輸中共定義了4類對(duì)象(通訊模式)[3],分別為管理對(duì)象(NMT)、服務(wù)數(shù)據(jù)對(duì)象(SDO)、過(guò)程數(shù)據(jù)對(duì)象(PDO)和特殊功能對(duì)象。其中NMT用來(lái)傳遞主節(jié)點(diǎn)對(duì)整個(gè)網(wǎng)絡(luò)系統(tǒng)的管理信息,SDO用來(lái)傳遞網(wǎng)絡(luò)系統(tǒng)中的配置信息,PDO用來(lái)傳遞過(guò)程數(shù)據(jù)信息(例如電壓的變化值),特殊功能對(duì)象包括同步對(duì)象(SYNC)、緊急對(duì)象(Emergency)、時(shí)間基準(zhǔn)(Time-Stamp)等。各類對(duì)象傳輸時(shí)的幀格式在參考文獻(xiàn)中有詳細(xì)的規(guī)定,在這里就不詳細(xì)介紹。在實(shí)際的工程中用戶只要根據(jù)需要,按照類的規(guī)定把要傳輸?shù)臄?shù)據(jù)映射到相應(yīng)的對(duì)象中就可以了。
3CANopen協(xié)議中的核心內(nèi)容
為了對(duì)各類對(duì)象進(jìn)行規(guī)范化和方便的管理,在CANopen協(xié)議中定義了對(duì)象字典的概念。它是一個(gè)有序的對(duì)象組,其中定義了一個(gè)設(shè)備的所有信息,在CANopen網(wǎng)絡(luò)系統(tǒng)中每一個(gè)設(shè)備都要有一個(gè)唯一的對(duì)象字典,每個(gè)設(shè)備的對(duì)象字典具有結(jié)構(gòu)相同、內(nèi)容不同的特點(diǎn)。通過(guò)對(duì)對(duì)象字典中的對(duì)象定義一個(gè)唯一的16位主索引和8位子索引,就可以方便地訪問(wèn)對(duì)象字典中的對(duì)象。CANopen協(xié)議中定義了通用的對(duì)象字典結(jié)構(gòu),其中規(guī)定了各種數(shù)據(jù)在對(duì)象字典中的位置區(qū)域。在我們建立設(shè)備對(duì)象字典的時(shí)候,主要工作應(yīng)集中在定義通訊子協(xié)議區(qū)域(1000~1FFF)和制造商特定子協(xié)議區(qū)域(2000~5FFF)部分[4]。
在整個(gè)CANopen協(xié)議中,對(duì)象字典起到了連接DLL模塊(通訊接口)和應(yīng)用程序的作用。我們要想把一個(gè)應(yīng)用程序中的數(shù)據(jù)(如I/O的輸入值)送到CAN總線上,我們首先要確定這個(gè)數(shù)據(jù)屬于對(duì)象字典中的哪一類對(duì)象(例如I/O口的輸入值應(yīng)為過(guò)程數(shù)據(jù)對(duì)象),然后用DLL模塊訪問(wèn)對(duì)象字典中相應(yīng)的對(duì)象,并把其按照相應(yīng)的幀格式發(fā)送到CAN總線上去,從而完成了數(shù)據(jù)的傳輸。
4汽車電子通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1汽車網(wǎng)絡(luò)方案
對(duì)于CAN在汽車上的應(yīng)用,具有很多行業(yè)標(biāo)準(zhǔn)或者是國(guó)際標(biāo)準(zhǔn),比如國(guó)際標(biāo)準(zhǔn)化組織(International Organization for Standardization)的ISO11992、ISO11783以及汽車工程協(xié)會(huì)(Society of Automotive Engineers )的SAE J1939。CAN總線已經(jīng)作為汽車的一種標(biāo)準(zhǔn)設(shè)備列入汽車的整體設(shè)計(jì)中[5]。
通過(guò)圖3[6]可以看到,藍(lán)色較粗線代表CAN總線,它連接了傳動(dòng)裝置控制單元、燈控單元、門控單元、座椅控制單元以及儀表盤控制單元等等。紅色較細(xì)線代表LIN總線,由LIN總線構(gòu)成的LIN網(wǎng)絡(luò)作為CAN網(wǎng)絡(luò)的輔助網(wǎng)絡(luò),連接了車窗控制單元、雨刷控制單元、天窗控制單元等低速設(shè)備。
LIN網(wǎng)絡(luò)[7](Local Interconnect Network),由汽車廠商為汽車開(kāi)發(fā),作為CAN網(wǎng)絡(luò)的輔助網(wǎng)絡(luò),目標(biāo)應(yīng)用在低端系統(tǒng),不需要CAN的性能、帶寬以及復(fù)雜性。LIN的工作方式是一主多從,單線雙向低速傳送數(shù)據(jù)(最高20K位/),與CAN相比具有更低的成本,且基于UART接口,無(wú)需硬件協(xié)議控制器,使系統(tǒng)成本更低。
4.2系統(tǒng)中CAN硬件接口設(shè)計(jì)
在汽車中ECU的設(shè)計(jì),應(yīng)該首先從安全的角度來(lái)考慮,對(duì)于關(guān)鍵控制部分如:汽車引擎、剎車裝置、安全氣囊等單元應(yīng)該采用分散式控制;而對(duì)于那些與安全無(wú)關(guān)的單元如:燈控單元、門控單元、座椅控制單元等出于成本的考慮可以采用CAN與LIN混合的集中控制方式。圖4給出ECU結(jié)構(gòu)圖。
4.3DLL模塊的實(shí)現(xiàn)
MB90F543具有兩個(gè)CAN控制器分別為CAN0和CAN1,我們只用CAN0,這樣CAN1可以在系統(tǒng)擴(kuò)展時(shí)使用。CAN控制器具有如下的特點(diǎn)[8]:
。1)符合規(guī)范CAN2.0A和CAN2.0B;
(2)支持通過(guò)接收遠(yuǎn)程幀發(fā)送數(shù)據(jù);
。3)16個(gè)收、發(fā)緩沖區(qū),每個(gè)緩沖區(qū)都具有29比特ID和8字節(jié)數(shù)據(jù),多級(jí)緩沖配置;
。4)每個(gè)緩沖區(qū)支持標(biāo)準(zhǔn)幀和擴(kuò)展幀的多種過(guò)濾方式;
(5)波特率可從10Kbit/s到1Mbit/s。
在我們系統(tǒng)中使用規(guī)范CAN2.0A,波特率為125k/s,并且為每類消息分配了一個(gè)獨(dú)立的緩沖區(qū),這樣做可以減少中斷程序的處理時(shí)間,從而提高系統(tǒng)的實(shí)時(shí)性。
5結(jié)束語(yǔ)
汽車電子設(shè)備的網(wǎng)絡(luò)化、標(biāo)準(zhǔn)化是組成車載監(jiān)控系統(tǒng)的一個(gè)重要條件,同時(shí)也是車載設(shè)備發(fā)展的一個(gè)重要方向。CANopen協(xié)議作為CAN總線的應(yīng)用層協(xié)議,在車輛領(lǐng)域有著廣闊的應(yīng)用前景。本文通過(guò)把車載平臺(tái)做成符合CANopen協(xié)議的標(biāo)準(zhǔn)化裝置,從而增強(qiáng)了設(shè)備的可擴(kuò)展性,同時(shí)也提高了數(shù)據(jù)傳輸?shù)目煽啃,可以滿足現(xiàn)代化應(yīng)用環(huán)境中的實(shí)際需求。
參考文獻(xiàn)
。1]www.can-cia.de.
。2] www.省略.
。3]CiA DS-301,Version 4.0,June 16 1999.
[4]CiA Draft Standard Proposal DSP 402, Version 1.0 Device Profiles Drives and Motion Control.
。5] CANopen application profile for lift control systems CiA DSP 417.
。6] M. Cheng, et al. Design and implementation of a braincomputer interface with high transfer rates IEEE Trans. Biomed. Eng., 2002,49:pp.1181-1186.
。7]CiA DSP-401,Version 1.4,Dec 1996.
。8]CANopen high-level protocol for CAN-bus H.Boterenbrood NIKHEF,March 20,2000.
。ū疚膶徃尻惿倜簦
相關(guān)熱詞搜索:通信系統(tǒng) 汽車電子 協(xié)議 基于CANOpen協(xié)議的汽車電子通信系統(tǒng) 單片機(jī)通信協(xié)議 單片機(jī)通訊協(xié)議
熱點(diǎn)文章閱讀