E88新能源汽車網(wǎng)關(guān)軟件設(shè)計方案_第1頁
E88新能源汽車網(wǎng)關(guān)軟件設(shè)計方案_第2頁
E88新能源汽車網(wǎng)關(guān)軟件設(shè)計方案_第3頁
E88新能源汽車網(wǎng)關(guān)軟件設(shè)計方案_第4頁
E88新能源汽車網(wǎng)關(guān)軟件設(shè)計方案_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、密級: E88 新能源汽車網(wǎng)關(guān)軟件設(shè)計方案 長春啟陽信息技術(shù)股份有限公司長春啟陽信息技術(shù)股份有限公司目目 錄錄1引言(引言(INTRODUCTION).31.1網(wǎng)關(guān)軟件設(shè)計.51.2網(wǎng)關(guān)路由功能設(shè)計 .51.2.1 接收中斷處理.51.2.2 接收處理任務(wù).71.3報文周期發(fā)送報警處理 .71.3.1 采用操作系統(tǒng)提供的報警.71.3.2 發(fā)送定時器更新模塊.91.3.3 路由過程中發(fā)送定時器處理模塊.91.4報文發(fā)送任務(wù).101.5報文處理.102網(wǎng)關(guān)直接網(wǎng)絡(luò)管理功能設(shè)計及實現(xiàn)網(wǎng)關(guān)直接網(wǎng)絡(luò)管理功能設(shè)計及實現(xiàn).122.1OSEK/VDX 直接網(wǎng)絡(luò)管理介紹.122.1.1 直接網(wǎng)絡(luò)管理概念.12

2、2.1.2 直接網(wǎng)絡(luò)管理的內(nèi)部狀態(tài).122.1.3 直接網(wǎng)絡(luò)管理的通信消息.122.2.1 任務(wù)總體設(shè)計.142.2.2 定時器總體設(shè)計.162.2.3 NMPDU 到 CAN 報文的映射.173網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計及實現(xiàn)網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計及實現(xiàn).183.1OSEK/VDX 間接網(wǎng)絡(luò)管理介紹.183.2間接網(wǎng)絡(luò)管理功能設(shè)計 .193.2.1 報文接收狀態(tài)配置表.193.2.2 接收定時器.193.2.3 報文接收過濾及處理模塊.213.2.4 接收定時器更新模塊.223.2.5 接收超時處理模塊.231引言(引言(Introduction)針對電動汽車車身網(wǎng)絡(luò)平臺而言,作為網(wǎng)絡(luò)交通樞

3、紐的中央網(wǎng)關(guān)控制器需要將接收到的報文存入數(shù)據(jù)緩沖區(qū),同時還需要將轉(zhuǎn)發(fā)的數(shù)據(jù)重新拆分打包,進行協(xié)議轉(zhuǎn)換出來,因此在網(wǎng)關(guān)控制器的選擇上要求其具有較高的內(nèi)存容量和較快的處理速度。隨著全球汽車電子行業(yè)的迅猛發(fā)展,從 C51 單片機到 ARM9 微處理器,車內(nèi)控制器的性能一直不斷提高。目前 32 位 RISC 內(nèi)核微處理器不但占據(jù)了高端控制器市場,同時也向低端控制器領(lǐng)域發(fā)展,憑借其低功耗、高性價比等提點,在汽車控制網(wǎng)絡(luò)中得到廣泛應(yīng)用是可以預(yù)見的,因此本方案選取了 NXP 公司汽車專用的V850ES/FK3 的 32 位 RISC 內(nèi)核微處理器,其豐富的外設(shè)接口和強大性能有利于后續(xù)網(wǎng)絡(luò)的擴展功能。本文檔介

4、紹網(wǎng)關(guān)的基本工作原理和系統(tǒng)結(jié)構(gòu),提出基于 CAN/LIN 總線的車身網(wǎng)關(guān)功能定義和整體設(shè)計方案,針對電動汽車特點制定了基于 SAEJ1939 的 CAN 應(yīng)用層協(xié)議。CAN/LIN 網(wǎng)關(guān)在硬件架構(gòu)上采用了 NEC 基于RISC 內(nèi)核內(nèi)核的 32 位控制器 V850ES/FK3 和容錯低速 CAN 接收器(TJA1054)。CAN 節(jié)點采用 V850ES/FK3 系列單片機,完成了電動機控制節(jié)點和狀態(tài)顯示節(jié)點的電路板制作和程序設(shè)計。 最后將各節(jié)點與網(wǎng)關(guān)組合起來,借助硬件節(jié)點與仿真軟件相結(jié)合的方法對整個通信網(wǎng)絡(luò)的關(guān)鍵性能進行測試分析,在調(diào)試過程中對設(shè)計中存在的不足進行優(yōu)化和改善。實驗結(jié)果表明 CA

5、N、LIN 節(jié)點與網(wǎng)關(guān)軟硬件工作穩(wěn)定,實現(xiàn)了網(wǎng)關(guān)的報文轉(zhuǎn)發(fā)和模擬電動機控制、車身控制臺和門鎖控制節(jié)點的功能,對車身控制中的其他部分有著借鑒意義,為整車控制網(wǎng)絡(luò)平臺和其他功能節(jié)點提供了參考模型1.1網(wǎng)關(guān)軟件設(shè)計網(wǎng)關(guān)軟件設(shè)計網(wǎng)關(guān)軟件整體結(jié)構(gòu)包括三部分,分別是操作系統(tǒng),底層驅(qū)動程序和應(yīng)用軟件,其中應(yīng)用軟件部分包括路由功能模塊和網(wǎng)絡(luò)管理模塊。網(wǎng)關(guān)軟件整體結(jié)構(gòu)如下圖 1 所示。操操作作系系統(tǒng)統(tǒng)底底層層驅(qū)驅(qū)動動程程序序網(wǎng)絡(luò)管理功能路由功能應(yīng)應(yīng)用用軟軟件件任務(wù)管理中斷報警資源管理事件管理CAN驅(qū)動I/O驅(qū)動看門狗驅(qū)動定時器驅(qū)動圖 1 網(wǎng)關(guān)軟件整體結(jié)構(gòu)操作系統(tǒng)采用符合 OSEK/VDX 標(biāo)準(zhǔn)的 osCAN 實

6、現(xiàn),由于 osCAN 硬件平臺基于 MPC555,因此該部分重點是針對網(wǎng)關(guān)所采用的控制器進行操作系統(tǒng)的移植。OSEK 操作系統(tǒng)在 NEC32 位硬件平臺的移植工作已經(jīng)完成,經(jīng)過驗證,目前操作系統(tǒng)在 32 位 NEC 單片機中可以正常運行。單片機底層驅(qū)動程序的設(shè)計與實現(xiàn)中,重點針對網(wǎng)關(guān)的實際應(yīng)用,對 CAN 模塊、定時器模塊以及中斷模塊等底層驅(qū)動程序進行了設(shè)計及實現(xiàn)。CAN 底層驅(qū)動程序包括 CAN 模塊寄存器初始化、CAN 報文發(fā)送、CAN 報文接收、CAN 中斷設(shè)置以及總線睡眠與喚醒設(shè)置等。 應(yīng)用軟件是實現(xiàn)網(wǎng)關(guān)信息交互和網(wǎng)絡(luò)管理功能的關(guān)鍵,本文檔主要介紹網(wǎng)關(guān)應(yīng)用軟件的設(shè)計。1.2網(wǎng)關(guān)路由功能

7、設(shè)計網(wǎng)關(guān)路由功能設(shè)計1.2.1接收中斷處理接收中斷處理為了減少中斷處理時間,在接收中斷中只進行接收濾波工作,包括接收報文幀類型、報文 ID 以及報文數(shù)據(jù)長度濾波,然后將需要路由的報文存入接收隊列緩沖區(qū)中,同時激活接收處理任務(wù)。接收隊列的結(jié)構(gòu)設(shè)計如下:#define RX_FRM_QUEUE_LEN (GATEWAY_RX_FRM_CNT(TTyp)|J K,J0;N-1被監(jiān)控節(jié)點的故障必須被邏輯環(huán)內(nèi)所有其他節(jié)點識別,當(dāng) NMReset 后的第一個 ring 消息被發(fā)送時,所有節(jié)點必須再次進入 NMNormal。這就得出對網(wǎng)絡(luò)系統(tǒng)內(nèi)部報警精度的要求(不考慮消息發(fā)送時間和軟件的實時性)。(TMax

8、 + TTyp)|K(TTyp)|J K,J0;N-1對于每個節(jié)點,每個報警都應(yīng)具有一個容許范圍(|min和|max)。在網(wǎng)絡(luò)內(nèi)部所以節(jié)點必須滿足如下要求:(TMax|min + TTyp|min)|K(TTyp|max)|J K,J0;N-1(TMax|min)|K(TTyp|max)|J K,J0;N-1對于報警 TError沒有特別需要考慮的要求。報警 TError的典型值是 TTyp的 10 倍。范圍計算不重要。在具有設(shè)定位 sleep.ack 的 ring 消息成功發(fā)送后,在發(fā)送隊列中仍然可以有用戶消息。處于狀態(tài) limp-home 的節(jié)點正以延時 TError發(fā)送 limp-hom

9、e 消息。在此周期中幾個 limp-home 消息可以被接收,因此狀態(tài) NMBusSleep 的轉(zhuǎn)換可以正常進行。時間 TWaitBusSleep的定義遵照定時器 TError。在網(wǎng)絡(luò)范圍內(nèi)要滿足TWaitBusSleep|minTError|max。TWaitBusSleep典型值為 TError的 1.5 倍。2.2.3NMPDU 到到 CAN 報文的映射報文的映射網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(NMDPU)通常應(yīng)該包括用于區(qū)別網(wǎng)絡(luò)管理消息和其它應(yīng)用消息的 IDBase、本地節(jié)點的標(biāo)識號 sourceID、目的節(jié)點的標(biāo)識號 destinationID、標(biāo)識網(wǎng)絡(luò)管理消息類型的操作碼 opCode、物理

10、網(wǎng)絡(luò)的標(biāo)識號 NetID 和網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)NetworkStatus。將這些信息映射成 CAN 數(shù)據(jù)幀,如表 4-4 所示。表 4-4NMPDU 到 CAN 的映射CAN 標(biāo)識符CAN 數(shù)據(jù)域(位)IDBaseSourceIDDestinationIDopCodeNetIDNetworkStatusData3(21)888816網(wǎng)絡(luò)管理報文過濾發(fā)送節(jié)點的標(biāo)識號目的節(jié)點的標(biāo)識號網(wǎng)絡(luò)管理消息類型網(wǎng)絡(luò)號網(wǎng)絡(luò)配置數(shù)據(jù)操作碼格式為 xxxx0000,其中從最右面開始第一位和第二位代表消息類型是 Ring 消息或 Alive 消息或 Limp Home 消息,第三位代表是否要求總線睡眠,第四位代表是否確定總

11、線睡眠,具體如下圖。操作碼(xxxx0000)含義xxxx0100睡眠指示位 sleep.indxxxx1000睡眠確認(rèn)位 sleep.ackxxxx0001Ring 消息xxxx0010Alive 消息xxxx0011LimpHome 消息網(wǎng)絡(luò)狀態(tài)數(shù)據(jù) NetworkStatus 長度為 16 位,采用位編碼方式時最多可以標(biāo)識 16 種網(wǎng)絡(luò)狀態(tài)。目前網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)定義如下表所示。表 4-5 網(wǎng)絡(luò)狀態(tài)的譯碼位描述置 0 的解釋置 1 的解釋0當(dāng)前網(wǎng)絡(luò)配置穩(wěn)定不穩(wěn)定穩(wěn)定1網(wǎng)絡(luò)物理接口的操作模式?jīng)]有錯誤錯誤,總線阻塞2NM 模式 active/passiveNMPassiveNMActive3NM

12、模式 on/offNMOnNMOff4Limp Home 模式不是 NMLimpHome是 NMLimpHome5Bus Sleep 模式不是 NMBusSleep是 NMBusSleep6等待總線睡眠不等待 Twbs 到時等待 Twbs 到時7Ring 數(shù)據(jù)有效允許 Ring 數(shù)據(jù)訪問不允許 Ring 數(shù)據(jù)訪問8GoToMode 調(diào)用Awake 調(diào)用BusSleep 調(diào)用1) 在邏輯環(huán)中最后的 NM 消息循環(huán)中配置保持不變;2) NM 消息成功接收和發(fā)送3) 比如 CAN busoff3網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計及實現(xiàn)網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計及實現(xiàn)3.1OSEK/VDX 間接網(wǎng)絡(luò)管理介紹間接網(wǎng)

13、絡(luò)管理介紹間接網(wǎng)絡(luò)管理通過監(jiān)控周期性應(yīng)用消息來確定連接至網(wǎng)絡(luò)中的節(jié)點狀態(tài),也就是說,一個節(jié)點發(fā)出的特定周期信息被一個或多個節(jié)點接收,接收節(jié)點通過監(jiān)督這個周期性信息完成間接網(wǎng)絡(luò)管理。間接網(wǎng)絡(luò)管理常用于中央控制型網(wǎng)絡(luò),由功能強大的獨立網(wǎng)關(guān)作為網(wǎng)絡(luò)管理的主 ECU,其他節(jié)點 ECU 被網(wǎng)關(guān)節(jié)點監(jiān)控,每個節(jié)點 ECU 必須要發(fā)送特定的周期性信息來實現(xiàn)被監(jiān)督。一個網(wǎng)絡(luò)節(jié)點存在兩種狀態(tài):接收狀態(tài)或者發(fā)送狀態(tài)。對于給定節(jié)點 i,發(fā)送方狀態(tài)用于檢查節(jié)點 i 是否確實能夠發(fā)送報文。包括兩種情況:節(jié)點不是沉默的(特定的應(yīng)用消息可以被發(fā)送);節(jié)點沉默(特定的應(yīng)用消息沒有在一個超時期間被發(fā)送,擴展時為節(jié)點靜態(tài)沉默,指

14、特定的應(yīng)用消息沒有在數(shù)個超時期間被發(fā)送)。對于接收方狀態(tài),給定的節(jié)點i 監(jiān)控網(wǎng)絡(luò)中的 k 個節(jié)點,節(jié)點 i 僅僅監(jiān)控它接收周期性應(yīng)用消息的源節(jié)點。因此節(jié)點 i 會保持 k 個接收方狀態(tài)子集,k 是由節(jié)點 i 監(jiān)控的源節(jié)點數(shù)目。接收方狀態(tài)用來檢查節(jié)點 i 確實從它的源節(jié)點中接收信息。包括兩種情況:節(jié)點在線(特定的應(yīng)用消息被接收);節(jié)點離線(特定的應(yīng)用消息沒有在超時期間被接收,擴展時為節(jié)點靜態(tài)的離線,指特定的應(yīng)用消息沒有在數(shù)個超時期間被接收)。3.2間接網(wǎng)絡(luò)管理功能設(shè)計間接網(wǎng)絡(luò)管理功能設(shè)計3.2.1報文接收狀態(tài)配置表報文接收狀態(tài)配置表報文接收狀態(tài)配置表包括短超時配置表和長超時配置表。配置表結(jié)構(gòu)設(shè)計

15、如下圖所示。FrmShortToutTblFRM_TOUT_TBL_SIZE(16 位數(shù)組)行數(shù)組元素16 位整型數(shù)01514131211109876543210131302928272625242322212019181716第 0 行的第 0 位表示接收報文標(biāo)識號為 0 的報文超時狀態(tài),第 1 位表示接收報文標(biāo)識號為 1 的報文超時狀態(tài),依次類推,長度為 FRM_TOUT_TBL_SIZE 的配置表可以表示(FRM_TOUT_TBL_SIZE*16)個報文的超時狀態(tài)。設(shè)報文標(biāo)識號為 frame_no,則將該報文設(shè)置為超時即對應(yīng)位置“1”的算法為:FrmShortToutTblframe_n

16、o4 |= (1 4 &= (1 RxTimerPrescaler) = counter) 定時器更新處理;/*系統(tǒng)定時計數(shù)值處理*/counter+;/* if the lowest nibble is 10 clear it and increment nibble 1 */if (counter&0 x0f)=10) counter&=0 xf0; counter+=0 x10;接收定時器定義在網(wǎng)關(guān)路由表的接收報文描述中,這樣可以利用網(wǎng)關(guān)路由表生成工具自動生成接收報文描述。更改的接收報文描述結(jié)構(gòu)體定義如下:/* member of the RxTable arra

17、y */typedef struct unsigned short ID:11; /* ID of the frame */unsigned short node:5; /*node number*/unsigned short RxToutReload:4; /* the RxTimeoutHandler is only called after specified number of timeouts; 0 means never */unsigned short RxToutCntr:4; /* counter of timeouts */unsigned short SignalCou

18、nt:8; /* number of signals */tSignalDescr * pSignalDescr; /* pointer to Signal descriptors */tTimer RxTimer; /* Rx timeout */unsigned short RxTimerPrescaler:5; /* prescaller of the Rx Timer */unsigned short DataSize:4; /* expected data size for this frame */unsigned short byte_copy:1; /* signals spe

19、cify numbers and positions of bytes rather than bits - this is to speed up processiong of 1:1 frames */unsigned short IndirectNM:1; /*indicate if the frame is used for indirect nm*/ tRxFrmDescr;/* descriptor of timer */typedef struct unsigned char load_value;unsigned char counter; tTimer;3.2.3報文接收過濾及處理模塊報文接收過濾及處理模塊此模塊負(fù)責(zé)對

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論