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

下載本文檔

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

文檔簡介

1、密級: E88 新能源汽車網(wǎng)關(guān)軟件設(shè)計(jì)方案 長春啟陽信息技術(shù)股份有限公司長春啟陽信息技術(shù)股份有限公司目目 錄錄1引言(引言(INTRODUCTION).31.1網(wǎng)關(guān)軟件設(shè)計(jì).51.2網(wǎng)關(guān)路由功能設(shè)計(jì) .51.2.1 接收中斷處理.51.2.2 接收處理任務(wù).71.3報(bào)文周期發(fā)送報(bào)警處理 .71.3.1 采用操作系統(tǒng)提供的報(bào)警.71.3.2 發(fā)送定時(shí)器更新模塊.91.3.3 路由過程中發(fā)送定時(shí)器處理模塊.91.4報(bào)文發(fā)送任務(wù).101.5報(bào)文處理.102網(wǎng)關(guān)直接網(wǎng)絡(luò)管理功能設(shè)計(jì)及實(shí)現(xiàn)網(wǎng)關(guān)直接網(wǎng)絡(luò)管理功能設(shè)計(jì)及實(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è)計(jì).142.2.2 定時(shí)器總體設(shè)計(jì).162.2.3 NMPDU 到 CAN 報(bào)文的映射.173網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計(jì)及實(shí)現(xiàn)網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計(jì)及實(shí)現(xiàn).183.1OSEK/VDX 間接網(wǎng)絡(luò)管理介紹.183.2間接網(wǎng)絡(luò)管理功能設(shè)計(jì) .193.2.1 報(bào)文接收狀態(tài)配置表.193.2.2 接收定時(shí)器.193.2.3 報(bào)文接收過濾及處理模塊.213.2.4 接收定時(shí)器更新模塊.223.2.5 接收超時(shí)處理模塊.231引言(引言(Introduction)針對電動汽車車身網(wǎng)絡(luò)平臺而言,作為網(wǎng)絡(luò)交通樞

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

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

5、N、LIN 節(jié)點(diǎn)與網(wǎng)關(guān)軟硬件工作穩(wěn)定,實(shí)現(xiàn)了網(wǎng)關(guān)的報(bào)文轉(zhuǎn)發(fā)和模擬電動機(jī)控制、車身控制臺和門鎖控制節(jié)點(diǎn)的功能,對車身控制中的其他部分有著借鑒意義,為整車控制網(wǎng)絡(luò)平臺和其他功能節(jié)點(diǎn)提供了參考模型1.1網(wǎng)關(guān)軟件設(shè)計(jì)網(wǎng)關(guān)軟件設(shè)計(jì)網(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ù)管理中斷報(bào)警資源管理事件管理CAN驅(qū)動I/O驅(qū)動看門狗驅(qū)動定時(shí)器驅(qū)動圖 1 網(wǎng)關(guān)軟件整體結(jié)構(gòu)操作系統(tǒng)采用符合 OSEK/VDX 標(biāo)準(zhǔn)的 osCAN 實(shí)

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

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

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

9、e 消息。在此周期中幾個(gè) limp-home 消息可以被接收,因此狀態(tài) NMBusSleep 的轉(zhuǎn)換可以正常進(jìn)行。時(shí)間 TWaitBusSleep的定義遵照定時(shí)器 TError。在網(wǎng)絡(luò)范圍內(nèi)要滿足TWaitBusSleep|minTError|max。TWaitBusSleep典型值為 TError的 1.5 倍。2.2.3NMPDU 到到 CAN 報(bào)文的映射報(bào)文的映射網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(NMDPU)通常應(yīng)該包括用于區(qū)別網(wǎng)絡(luò)管理消息和其它應(yīng)用消息的 IDBase、本地節(jié)點(diǎn)的標(biāo)識號 sourceID、目的節(jié)點(diǎn)的標(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ò)管理報(bào)文過濾發(fā)送節(jié)點(diǎn)的標(biāo)識號目的節(jié)點(diǎn)的標(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 位,采用位編碼方式時(shí)最多可以標(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)]有錯(cuò)誤錯(cuò)誤,總線阻塞2NM 模式 active/passiveNMPassiveNMActive3NM

12、模式 on/offNMOnNMOff4Limp Home 模式不是 NMLimpHome是 NMLimpHome5Bus Sleep 模式不是 NMBusSleep是 NMBusSleep6等待總線睡眠不等待 Twbs 到時(shí)等待 Twbs 到時(shí)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è)計(jì)及實(shí)現(xiàn)網(wǎng)關(guān)間接網(wǎng)絡(luò)管理功能設(shè)計(jì)及實(shí)現(xiàn)3.1OSEK/VDX 間接網(wǎng)絡(luò)管理介紹間接網(wǎng)

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

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

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

16、o4 |= (1 4 &= (1 RxTimerPrescaler) = counter) 定時(shí)器更新處理;/*系統(tǒng)定時(shí)計(jì)數(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;接收定時(shí)器定義在網(wǎng)關(guān)路由表的接收報(bào)文描述中,這樣可以利用網(wǎng)關(guān)路由表生成工具自動生成接收報(bào)文描述。更改的接收報(bào)文描述結(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報(bào)文接收過濾及處理模塊報(bào)文接收過濾及處理模塊此模塊負(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論