《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于ISO11783的ECU通信節(jié)點設(shè)計

基于ISO11783的ECU通信節(jié)點設(shè)計

2008-07-09
作者:席志強(qiáng)1 , 周志立1 , 張明

??? 摘? 要: 介紹了ISO11783通信協(xié)議的基本特點,并給出了一種基于TMS320F2812 DSP實現(xiàn)的ISO11783總線ECU通信節(jié)點的軟硬件設(shè)計方案。
??? 關(guān)鍵詞: 通信技術(shù)? ISO11783? TMS320F2812? ECU? 農(nóng)業(yè)機(jī)械

?

??? 隨著拖拉機(jī)與自走式農(nóng)業(yè)機(jī)械" title="農(nóng)業(yè)機(jī)械">農(nóng)業(yè)機(jī)械向電子化方向發(fā)展,目前農(nóng)林車輛上的電子裝置也越來越多,而給農(nóng)業(yè)機(jī)械添加電子設(shè)備的必然結(jié)果是:要求這些電子設(shè)備之間能夠?qū)崿F(xiàn)相互通信。例如,拖拉機(jī)上的牽引力控制器可以和傳動機(jī)構(gòu)以及發(fā)動機(jī)的控制器之間進(jìn)行通信,從而達(dá)到優(yōu)化性能的目的。電子通信用來協(xié)調(diào)車輛上的各個部件,允許信息在各部件之間共享,從而實現(xiàn)分布式控制。增加通信的費用只占整個電子化開發(fā)成本的一小部分,但卻可以給車輛帶來功能、生產(chǎn)效率和性能方面的重大改進(jìn)[1]
?? ?農(nóng)林車輛傳統(tǒng)的電氣系統(tǒng)大多采用點對點的單通信方式,相互之間少有聯(lián)系,其結(jié)果是造成龐大的布線系統(tǒng)[2]。有鑒于此,國際標(biāo)準(zhǔn)化組織根據(jù)現(xiàn)代農(nóng)業(yè)機(jī)械發(fā)展的需要,特別是精密農(nóng)業(yè)領(lǐng)域未來的發(fā)展趨勢,制定了農(nóng)林機(jī)械、拖拉機(jī)串行控制和數(shù)據(jù)通信的網(wǎng)絡(luò)總線協(xié)議標(biāo)準(zhǔn),即ISO11783標(biāo)準(zhǔn)(通常稱為ISOBUS)。這個標(biāo)準(zhǔn)為在拖拉機(jī)為農(nóng)具之間統(tǒng)一交換數(shù)據(jù)和控制指令提供了技術(shù)可能,滿足了車輛各種電氣設(shè)備信息共享的要求,并對關(guān)于農(nóng)業(yè)機(jī)械的各種變量參數(shù)的定義和表示進(jìn)行了規(guī)范,從而使不同原始設(shè)備制造商所開發(fā)的設(shè)備能夠做到互通互聯(lián)。本文主要對實現(xiàn)ISO11783總線通信的最小系統(tǒng)以及采用TI公司的TMS320F2812 DSP作為微處理器的ECU通信節(jié)點的軟硬件設(shè)計方案進(jìn)行探討。
1 ISO11783總線特點
  ISO11783參照SAE J1939、DIN 9684標(biāo)準(zhǔn),以控制器局域網(wǎng)總線協(xié)議(即CAN 2.0B)作為網(wǎng)絡(luò)協(xié)議支持,規(guī)定了在拖拉機(jī)或農(nóng)具上懸掛或安裝的各種不同設(shè)備(如:任務(wù)管理器、虛擬終端、設(shè)備控制器、傳感器和執(zhí)行器)之間進(jìn)行信息傳輸交換的方法和格式。
  ISO11783的物理層標(biāo)準(zhǔn)用來實現(xiàn)電子控制單元(ECU)和網(wǎng)絡(luò)總線部分的電氣連接,與ISO11898規(guī)范兼容并采用符合該規(guī)范的CAN控制器及收發(fā)器??偩€段最大長度為40米,數(shù)據(jù)傳輸率為250Kbps。ECU連接總數(shù)受限于總線的電氣負(fù)載能力,按照ISO11783物理層電氣參數(shù)規(guī)定,每段最多連接30個ECU。傳輸介質(zhì)為四芯雙絞線,其中兩條導(dǎo)線分別為CAN_H和CAN_L,由通信信號驅(qū)動;另外兩條導(dǎo)線為TBC_PWR和TBC_RTN,為總線段上的終端偏置電路(TBC)供電線。整個11783總線至少被分成兩個部分:應(yīng)用于拖拉機(jī)上自身各個功能器件之間通信的拖拉機(jī)總線及用于拖拉機(jī)所安裝的各個附加功能設(shè)備(如虛擬終端、任務(wù)控制器和GPS等)以及各個農(nóng)具ECU之間實現(xiàn)通信的設(shè)備總線[3]。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

???????????????????????
??? ISO11783協(xié)議在CAN 2.0B協(xié)議的基礎(chǔ)上具體實現(xiàn)了應(yīng)用層" title="應(yīng)用層">應(yīng)用層, 將CAN 擴(kuò)展幀封裝成一個單一的協(xié)議數(shù)據(jù)單元(PDU)。ISO11783PDU數(shù)據(jù)格式由七個部分構(gòu)成:優(yōu)先權(quán)、保留位、數(shù)據(jù)頁、PDU格式、特定PDU(目標(biāo)地址、組擴(kuò)展或?qū)S茫?、源地址和?shù)據(jù)域,如表1所示。這些域的信息由應(yīng)用層提供。在傳輸過程中,先將PDU分隔成一個或多個CAN 數(shù)據(jù)幀,然后通過物理介質(zhì)傳輸?shù)狡渌W(wǎng)絡(luò)掛接設(shè)備上。

????????????????????????
  優(yōu)先權(quán)用于總線傳輸中優(yōu)化數(shù)據(jù)延遲,保留位留待將來擴(kuò)展使用,數(shù)據(jù)頁為選擇參數(shù)組擴(kuò)展的輔助頁位,PDU格式(PF)有PDU1和PDU2兩種,用來確定數(shù)據(jù)域?qū)?yīng)參數(shù)組編號。特定PDU(PS)的定義取決于PDU格式,若PF域的值小于240,則PS域是目標(biāo)地址;若PF域的值在240~255之間。則PS為組擴(kuò)展(GE)值。當(dāng)PF=239時,為專用PDU1格式;PF=255時,為專用PDU2格式。使用兩種PDU 格式,不但能實現(xiàn)定向到特定目標(biāo)地址的通信,還能提供盡可能多的參數(shù)組編號組合。已定義的專用PDU格式因制造商而異。源地址為消息發(fā)送設(shè)備在總線網(wǎng)絡(luò)中的地址[4]
2 總體設(shè)計
??? 典型的基于DSP的ISO11783通信系統(tǒng)結(jié)構(gòu)框圖如圖2所示。每個節(jié)點均由物理層接口CAN總線收發(fā)器模塊、DSP控制器模塊、應(yīng)用層模塊組成。總線的每個終端需接抑制信號反射的終端電阻,其阻值應(yīng)與總線介質(zhì)的特性阻抗相匹配,使用雙絞線時一般取Rr=100~200Ω。

?????????????????
2.1 硬件設(shè)計
  主控芯片CPU采用TI公司的TMS320F2812 DSP作為微處理器,它內(nèi)部集成了完全支持CAN2.0B協(xié)議的增強(qiáng)型控制器局域網(wǎng)(eCAN)模塊,有32個郵箱,每個郵箱具有獨立可編程的接收過濾屏蔽,且都可用標(biāo)準(zhǔn)的或擴(kuò)展的標(biāo)識符配置為發(fā)送或接收郵箱,支持?jǐn)?shù)據(jù)幀和遠(yuǎn)程幀,對發(fā)送和接收的超時現(xiàn)象可采用一種可編程的中斷操作。所有進(jìn)行數(shù)據(jù)傳輸和接收濾波的協(xié)議功能都由eCAN控制器執(zhí)行,通過DSP內(nèi)的特殊功能寄存器可配置CAN控制器訪問接收到的數(shù)據(jù)以及傳輸數(shù)據(jù)[5]。因此,TMS320F2812可以完成ISO11783總線協(xié)議的數(shù)據(jù)鏈路層和應(yīng)用層的所有功能。
  CAN收發(fā)器采用SN65HVN230作為CAN協(xié)議控制器和物理總線之間的接口,與ISO11898標(biāo)準(zhǔn)完全兼容,可提供對總線的差動發(fā)送能力和對控制器的差動接收能力,可編程輸出轉(zhuǎn)換時間,有助于減小電磁干擾,從而提高系統(tǒng)可靠性;同時,還具有可編程斜率控制和休眠功能,可進(jìn)一步降低系統(tǒng)功耗;SN65HVN230的工作電壓為3.3V,因此無需電平轉(zhuǎn)換即可實現(xiàn)與TMS320F2812的有效連接。具體連接電路如圖3所示。

???????????????????
2.2 軟件設(shè)計
  通信節(jié)點的主要功能是通過ISO11783實現(xiàn)各ECU之間的相互通信,發(fā)送接收命令、信息、對象池等,實現(xiàn)總線數(shù)據(jù)的共享,從而提高各自的控制性能和運(yùn)行效率,并對來自總線的干擾進(jìn)行隔離,保證ECU的可靠工作。ISO11783總線的每個節(jié)點(ECU)都有自己的網(wǎng)絡(luò)地址和名稱相對應(yīng)。地址是ECU在網(wǎng)絡(luò)上發(fā)送或接收數(shù)據(jù)時用來識別自身的信息標(biāo)識符,同時也可通過其網(wǎng)絡(luò)管理協(xié)議中的地址管理程序?qū)蝹€的源地址和特殊的ECU功能聯(lián)系起來。而名稱則標(biāo)識了ECU的基本功能。各個節(jié)點連續(xù)監(jiān)視總線上發(fā)出的各種數(shù)據(jù),當(dāng)所收到的數(shù)據(jù)地址值與自身地址相吻合時,就接收并處理數(shù)據(jù),然后根據(jù)相關(guān)數(shù)據(jù)類型做出回應(yīng)。這樣可以有效避免多個ECU節(jié)點同時傳輸數(shù)據(jù)時所引起的混亂。
  基于DSP的ECU節(jié)點通信程序是在TI公司的CCS2000集成化開發(fā)環(huán)境下編寫的,其C編譯器支持標(biāo)準(zhǔn)的ANSI C語言,因此,可以利用高級語言的特性降低編程的難度,提高程序的可維護(hù)性和縮短開發(fā)時間。程序主要包括eCAN模塊的初始化、中斷接收處理以及信息發(fā)送等程序。
2.2.1 eCAN模塊初始化
  eCAN模塊使用前必須初始化,按照ISO11783物理層標(biāo)準(zhǔn)要求設(shè)置適當(dāng)?shù)木W(wǎng)絡(luò)位定時參數(shù),其流程圖如圖4所示。首先要設(shè)置主控制寄存器" title="控制寄存器">控制寄存器(CANMC)的改變配置請求位(CCR),當(dāng)其為1時,eCAN才處于配置模式;然后等待錯誤狀態(tài)寄存器(CANES)的改變配置使能位(CCE)置位" title="置位">置位,當(dāng)其為1時,初始化操作才能被執(zhí)行;最后就可以對位定時器配置寄存器(CANBTC)的相應(yīng)位進(jìn)行設(shè)置,以達(dá)到所要求的總線傳輸速率。

???????????????????????????????????? ?????

2.2.2 信息發(fā)送
??? 信息的發(fā)送程序由郵箱配置和發(fā)送信息兩部分組成。CPU把要發(fā)送的數(shù)據(jù)存儲在被配置為發(fā)送郵箱的某個郵箱中。假設(shè)這個郵箱通過設(shè)置對應(yīng)的ME.n位已被使能,那么在將數(shù)據(jù)和標(biāo)識符寫到RAM以后,且對應(yīng)的TRS.n位已被置位,則郵箱中的信息將被發(fā)送出去;如果同時有多個郵箱被設(shè)置為發(fā)送郵箱和多個相應(yīng)的TRS.n位被置位,則會按照郵箱優(yōu)先級的高低,依次發(fā)送對應(yīng)的消息。如果由于缺少仲裁或錯誤使發(fā)送失敗,則要重新嘗試發(fā)送。在此之前,CAN模塊要檢驗是否有其他的發(fā)送請示,然后以最高的優(yōu)先級發(fā)送原來的消息。其信息發(fā)送流程如圖5所示。

????????????????????????????????????????????
2.2.3 中斷接收程序
????通過使用合適的屏蔽,將每一個接收消息的標(biāo)識符和接收郵箱中的標(biāo)識符進(jìn)行比較,如果相等,則將接收到的標(biāo)識符、控制位和數(shù)據(jù)字節(jié)寫入到相應(yīng)的RAM區(qū)域,同時,將相應(yīng)的接收消息未決位RMP.n置位,并且將產(chǎn)生一個接收中斷(如果已被使能)。然后調(diào)用相應(yīng)的CAN郵箱中斷服務(wù)程序,讀取數(shù)據(jù)并復(fù)位RMP.n;反之,若標(biāo)識符不相符,則消息不被存儲。如果需要保護(hù)郵箱里的數(shù)據(jù)不被新的數(shù)據(jù)覆蓋,則要置位覆蓋保護(hù)控制寄存器(CANOPC)的相應(yīng)位,并要有其他郵箱用來存儲“溢出”的消息,否則可能會丟失消息而無任何提示。其信息接收流程如圖6所示。

??????????????????????????????????????????????????????????????????????????????????
3 軟件設(shè)計注意問題
??? eCAN的控制和狀態(tài)寄存器要求以32位方式訪問。在采用高級語言編寫程序時,如果直接對寄存器的位進(jìn)行操作,編譯器會把訪問變?yōu)?6位的訪問方式" title="訪問方式">訪問方式,但對高16位進(jìn)行寫操作時,可能會破壞控制寄存器中的內(nèi)容。解決的辦法是:使用1個32位的臨時寄存器,先把欲操作的整個寄存器的內(nèi)容讀入到臨時寄存器中,此操作是32位的訪問方式。在臨時寄存器中對其中的某些位進(jìn)行操作,然后再把值以32位寫的方式賦給eCAN控制寄存器,以此來強(qiáng)制實現(xiàn)32位訪問方式[6]。實例如下:
??? struct ECAN_REGS ECanaShadow;
??? ECanaShadow.CANMC.all= ECanaRegs.CANMC.all;
??? ECanaShadow.CANMC.bit.CCR=1;????????? //Set CCR=1
??? ECanaRegs.CANMC.all= ECanaShadow.CANMC.all;
  此外,在中斷處理過程當(dāng)中,為了讓CPU內(nèi)核識別并處理CAN中斷,在任何CAN中斷服務(wù)程序(ISR)中必須進(jìn)行如下操作:
??? (1)必須首先清除寄存器CANGIF0/CANGIF1中引起中斷的標(biāo)志位。根據(jù)標(biāo)志類型可通過寫入1或?qū)ο嚓P(guān)寄存器的相應(yīng)位進(jìn)行寫操作來清除。
??? (2)CAN模塊對應(yīng)的PIEACK位必須寫入1。其C語言實現(xiàn)為:
???????? PieCtrlRegs.PIEACK.bit.ACK9 =1;? //使能PIE
??? (3)必須使能CAN模塊對應(yīng)的中斷線。
??? ????? IER |= 0x0100;???????????????? //使能INT9
??? (4)必須通過清除INTM位來使CPU中斷處于全局使能。其匯編語言實現(xiàn)為:asm('clrc INTM')。
??? 從國內(nèi)外發(fā)展來看,ISO11783通信協(xié)議已成為當(dāng)前農(nóng)林機(jī)械信息化建設(shè)的一個最為重要的標(biāo)準(zhǔn)和依據(jù),而基于此協(xié)議的ECU通信節(jié)點的設(shè)計在整個車輛網(wǎng)絡(luò)的構(gòu)建當(dāng)中是必不可少的。通過對拖拉機(jī)虛擬終端和變速器控制器之間的通信實驗結(jié)果分析表明,本文所提出的設(shè)計方案能夠正常實現(xiàn)符合ISO11783協(xié)議要求的通信功能,并保證了系統(tǒng)運(yùn)行的穩(wěn)定性和可靠性。
參考文獻(xiàn)
[1] STONE M L, MCKEE K D, FORMWALT C W, et al.?ISO11783: An electronic communications protocol for?agricultural equipment[A]. Agricultural Equipment Technology Conference (Louisville, Kentucky, USA). ASAE?Publication Number 913C1798, 1999.
[2] 程軍,茍凱英.車輛控制系統(tǒng)總線通信和控制協(xié)議SAEJ 1939[J].世界汽車,2000,(2):19-21.
[3]?FELLMETH P. CAN-based tractor-agricultural implement?communication ISO11783 [EB/OL]. 2003-09.
?? ?http://www.can-cia.org/j1939based/iso11783/isobus.pdf.
[4] ISO11783: Tractors and machinery for agriculture and?forestry-serial control and communications data network[S].2004.
[5]?張衛(wèi)寧.TMS320C28x系列DSP的CPU與外設(shè)[M].北京:清華大學(xué)出版社,2005:561-613.
[6] TI.Programming examples for the TMS320F281x eCAN[M],2003.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。