何丹丹, 葉小平, 崔書超, 孫 燦
(北京汽車研究總院,北京101300)
網(wǎng)關(guān)控制器平臺(tái)化設(shè)計(jì)
何丹丹, 葉小平, 崔書超, 孫 燦
(北京汽車研究總院,北京101300)
網(wǎng)關(guān)控制器實(shí)現(xiàn)車內(nèi)不同網(wǎng)段電控單元之間的數(shù)據(jù)轉(zhuǎn)發(fā).傳統(tǒng)的網(wǎng)關(guān)控制器中,任何數(shù)據(jù)變更,均會(huì)導(dǎo)致控制器內(nèi)部軟件的調(diào)整,影響整車的開發(fā)周期和成本.本文設(shè)計(jì)的網(wǎng)關(guān)控制器的通道使能配置、采樣點(diǎn)控制參數(shù)、傳輸速率設(shè)置和網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲(chǔ)在非易失存儲(chǔ)器中,網(wǎng)關(guān)控制器上電初始化或復(fù)位后,從非易失存儲(chǔ)器中獲取CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)功能.非易失性存儲(chǔ)器中的通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表可通過診斷設(shè)備動(dòng)態(tài)更新,實(shí)現(xiàn)不同網(wǎng)關(guān)控制器的數(shù)據(jù)轉(zhuǎn)發(fā)功能,進(jìn)而實(shí)現(xiàn)網(wǎng)關(guān)控制器的平臺(tái)化設(shè)計(jì).
網(wǎng)關(guān)控制器;配置參數(shù);數(shù)據(jù)轉(zhuǎn)發(fā)路由表;非易失存儲(chǔ)器
網(wǎng)關(guān)控制器實(shí)現(xiàn)整車不同網(wǎng)段的通信數(shù)據(jù)轉(zhuǎn)發(fā).不同車型網(wǎng)關(guān)控制器CAN通道數(shù)量、傳輸速率、采樣點(diǎn)或轉(zhuǎn)發(fā)數(shù)據(jù)存在差異,網(wǎng)關(guān)控制器均需要重新獨(dú)立開發(fā);新車型在研發(fā)初始階段,一般采用現(xiàn)有的車型進(jìn)行改制,電控單元數(shù)量的增減及數(shù)據(jù)接口定義的變化都會(huì)導(dǎo)致不同網(wǎng)段間轉(zhuǎn)發(fā)數(shù)據(jù)的變更,網(wǎng)關(guān)控制器需要進(jìn)行軟件更新;在整車開發(fā)階段,車內(nèi)電控單元的控制策略依據(jù)試驗(yàn)結(jié)果進(jìn)行調(diào)整,網(wǎng)段間轉(zhuǎn)發(fā)數(shù)據(jù)隨之變更,網(wǎng)關(guān)控制器需要進(jìn)行軟件更新.無論是網(wǎng)關(guān)控制器重新開發(fā)還是軟件更新都會(huì)增加整車開發(fā)成本和周期,并且變更后需要重新進(jìn)行測(cè)試驗(yàn)證,在人力成本上也造成了極大的浪費(fèi),延緩了整車開發(fā)進(jìn)度[1].
平臺(tái)化網(wǎng)關(guān)控制器設(shè)計(jì)支持多路CAN通道之間的通信數(shù)據(jù)轉(zhuǎn)發(fā),CAN通道的使能配置、采樣點(diǎn)控制參數(shù)、傳輸速率設(shè)置和數(shù)據(jù)轉(zhuǎn)發(fā)路由表都存儲(chǔ)在非易失性存儲(chǔ)器中,且可通過診斷設(shè)備進(jìn)行動(dòng)態(tài)更新.在重新上電或診斷復(fù)位后,網(wǎng)關(guān)控制器讀取非易失性存儲(chǔ)器中CAN通道配置信息和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能.網(wǎng)關(guān)控制器平臺(tái)化設(shè)計(jì)方案實(shí)現(xiàn)網(wǎng)關(guān)控制器CAN通道數(shù)目的可調(diào)性,通道傳輸速率和采樣點(diǎn)的可配置性,數(shù)據(jù)轉(zhuǎn)發(fā)的可動(dòng)態(tài)變更性,進(jìn)而實(shí)現(xiàn)網(wǎng)關(guān)控制器通用性的平臺(tái)化設(shè)計(jì).
網(wǎng)關(guān)控制器硬件設(shè)計(jì)系統(tǒng)框圖如圖1所示.
圖1 網(wǎng)關(guān)控制器硬件設(shè)計(jì)系統(tǒng)框圖
圖中:控制器的MCU芯片F(xiàn)reescale MPC5604C支持6路CAN通道,1路作為診斷CAN通道,用于網(wǎng)關(guān)控制器與診斷設(shè)備之間的信息交互;3路CAN通道連接整車不同的CAN網(wǎng)段,用于實(shí)現(xiàn)通信數(shù)據(jù)轉(zhuǎn)發(fā)功能;另外2路CAN通道作為預(yù)留接口,且其中1路為容錯(cuò)CAN接口(CAN收發(fā)器TJA1053),以兼容具有容錯(cuò)CAN網(wǎng)段的車型.系統(tǒng)基礎(chǔ)芯片NXP UJA1076實(shí)現(xiàn)MPC5604C和CAN收發(fā)器TJA1042的電源管理和看門狗定時(shí)管理,其內(nèi)部集成的高速CAN收發(fā)器用于診斷CAN通道數(shù)據(jù)的發(fā)送與接收.非易失性存儲(chǔ)器芯片ST M95080(EEPROM)最大存儲(chǔ)容量達(dá)8 kbit,為網(wǎng)關(guān)控制器數(shù)據(jù)存儲(chǔ)擴(kuò)展預(yù)留足夠的空間.MPC5604C與EEPROM之間采用SPI總線傳輸數(shù)據(jù),有效保證了CAN通道配置數(shù)據(jù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表的讀取時(shí)間,將網(wǎng)關(guān)控制器系統(tǒng)初始化過程控制在整車控制器啟動(dòng)允許的時(shí)間范圍內(nèi)[2].
3.1 網(wǎng)關(guān)初始化程序
網(wǎng)關(guān)控制器在上電或復(fù)位后執(zhí)行初始化程序,網(wǎng)關(guān)控制器從EEPROM中讀取CAN通道配置信息判斷CAN通道使能狀態(tài),初始化使能CAN通道的底層寄存器,實(shí)現(xiàn)CAN通道的參數(shù)配置和傳輸速率設(shè)置.所有使能CAN通道初始化完成后,網(wǎng)關(guān)控制器將對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)路由表讀取到MCU內(nèi)部存儲(chǔ)器中,用于數(shù)據(jù)轉(zhuǎn)發(fā)路由表的快速查詢,提高數(shù)據(jù)轉(zhuǎn)發(fā)效率[3].
3.2 網(wǎng)關(guān)應(yīng)用主程序
網(wǎng)關(guān)控制器應(yīng)用主程序包含CAN通道數(shù)據(jù)檢測(cè)控制程序和EEPROM數(shù)據(jù)更新處理程序,CAN通道數(shù)據(jù)檢測(cè)控制程序?qū)崿F(xiàn)CAN通道數(shù)據(jù)檢測(cè)和數(shù)據(jù)轉(zhuǎn)發(fā),EEPROM數(shù)據(jù)更新處理程序?qū)崿F(xiàn)CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲(chǔ)數(shù)據(jù)的更新.
3.2.1 CAN通道數(shù)據(jù)檢測(cè)控制程序
平臺(tái)化網(wǎng)關(guān)控制器數(shù)據(jù)轉(zhuǎn)發(fā)基于報(bào)文路由方式實(shí)現(xiàn),不進(jìn)行報(bào)文信號(hào)的提取與重組,通過檢測(cè)CAN通道接收?qǐng)?bào)文ID確定報(bào)文轉(zhuǎn)發(fā)目標(biāo)網(wǎng)段.報(bào)文路由方式有利于整車電控單元通用化接口設(shè)計(jì),便于整車平臺(tái)化架構(gòu)設(shè)計(jì)實(shí)現(xiàn),隨著網(wǎng)絡(luò)通信速率的提高和網(wǎng)絡(luò)傳輸可靠性的提升,其逐漸成為網(wǎng)關(guān)控制器實(shí)現(xiàn)通信數(shù)據(jù)轉(zhuǎn)發(fā)功能的設(shè)計(jì)趨勢(shì).
網(wǎng)關(guān)控制器CAN通道數(shù)據(jù)檢測(cè)控制程序依次檢測(cè)CAN1、CAN2和CAN3通道,檢測(cè)周期10 ms,若檢測(cè)的CAN通道為使能狀態(tài),則逐一讀取該通道報(bào)文接收緩沖區(qū)中報(bào)文ID,并在該通道相關(guān)的數(shù)據(jù)轉(zhuǎn)發(fā)路由表中檢測(cè)報(bào)文ID,若檢測(cè)到則將報(bào)文轉(zhuǎn)發(fā)到數(shù)據(jù)路由表指定的CAN通道上,接收緩沖區(qū)中所有報(bào)文ID完成檢測(cè)后,進(jìn)入下一個(gè)CAN通道的數(shù)據(jù)檢測(cè)控制流程.CAN1通道數(shù)據(jù)檢測(cè)控制流程如圖2所示,CAN2和CAN3通道處理方式與其相同.
圖2 CAN1通道數(shù)據(jù)檢測(cè)控制流程圖
3.2.2 EEPROM數(shù)據(jù)更新處理程序
EEPROM數(shù)據(jù)更新處理程序?qū)崿F(xiàn)網(wǎng)關(guān)控制器與診斷設(shè)備之間的信息交互,完成CAN通道配置數(shù)據(jù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲(chǔ)數(shù)據(jù)的更新.診斷設(shè)備對(duì)網(wǎng)關(guān)控制器EEPROM存儲(chǔ)數(shù)據(jù)更新流程如下:
1)診斷設(shè)備使網(wǎng)關(guān)控制器進(jìn)入擴(kuò)展會(huì)話(0x10 0x03),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x50 0x03 P2server, P2*server),若回復(fù)否定響應(yīng)則直接退出EEPROM數(shù)據(jù)更新流程;
2)診斷設(shè)備使網(wǎng)關(guān)控制器進(jìn)行安全訪問解密(0x27 0x01/0x27 0x02 key1, key2, key3, key4),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x67 0x01/0x02)完成安全訪問驗(yàn)證,若回復(fù)否定響應(yīng)則直接退出EEPROM數(shù)據(jù)更新流程;
3)診斷設(shè)備寫入網(wǎng)關(guān)控制器CAN通道配置參數(shù)(0x2E 0x66 0x10 Configuration Parameters),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x6E 0x66 0x10),并將通道配置參數(shù)存儲(chǔ)到EEPROM中;
4)診斷設(shè)備更新數(shù)據(jù)轉(zhuǎn)發(fā)路由表(0x2E 0x66 0x1X Routing Data Table),數(shù)據(jù)轉(zhuǎn)發(fā)路由表對(duì)應(yīng)的CAN通道配置為使能狀態(tài),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x6E 0x66 0x1X),并將數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲(chǔ)到EEPROM中,若CAN通道為非使能狀態(tài),網(wǎng)關(guān)控制器回復(fù)否定響應(yīng)碼0x31,其中X=1..6;
5)診斷設(shè)備復(fù)位網(wǎng)關(guān)控制器(0x11 0x01),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x51 0x01)并執(zhí)行網(wǎng)關(guān)控制器復(fù)位操作;
6)網(wǎng)關(guān)控制器復(fù)位完成后進(jìn)入初始化程序,從EEPROM中讀取CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表更新網(wǎng)關(guān)數(shù)據(jù)轉(zhuǎn)發(fā)功能.
網(wǎng)關(guān)控制器根據(jù)數(shù)據(jù)標(biāo)識(shí)符訪問EEPROM中CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,網(wǎng)關(guān)控制器數(shù)據(jù)標(biāo)識(shí)符分配如表1所示.
表1 數(shù)據(jù)標(biāo)識(shí)符分配列表
CAN通道配置參數(shù)定義如表2所示.Byte0~Byte2定義CAN1~CAN3通道的使能狀態(tài)位(Enable)、標(biāo)稱位時(shí)間(NBT)和傳播段(ProSEG);Byte3~Byte5定義CAN1~CAN3通道的傳輸速率.
表2 CAN通道配置參數(shù)表
注:E-傳輸速率物理值;N-傳輸速率網(wǎng)絡(luò)傳輸邏輯值.
網(wǎng)關(guān)控制器獲取CAN通道配置參數(shù)并對(duì)使能CAN通道控制寄存器進(jìn)行配置,以設(shè)置指定的傳輸速率和采樣點(diǎn).CAN通道采樣點(diǎn)計(jì)算公式如下:
(1)
(2)
式(1)中:NBT為標(biāo)稱位時(shí)間;ProSEG為傳播段;PSEG1為相位緩沖段1;PSEG1的計(jì)算公式如公式(2)所示. 若CAN通道配置信息中的參數(shù)NBT或ProSEG設(shè)置為0,網(wǎng)關(guān)控制器內(nèi)部軟件默認(rèn)設(shè)置采樣點(diǎn)75%.
每個(gè)CAN通道數(shù)據(jù)轉(zhuǎn)發(fā)路由表占用40 Byte的存儲(chǔ)空間,一條報(bào)文ID占用2 Byte用于存儲(chǔ)CAN標(biāo)準(zhǔn)幀的11位ID,數(shù)據(jù)轉(zhuǎn)發(fā)路由表最大可支持20條報(bào)文路由,為網(wǎng)關(guān)控制器轉(zhuǎn)發(fā)數(shù)據(jù)功能預(yù)留足夠的擴(kuò)展空間.
網(wǎng)關(guān)控制器功能驗(yàn)證通過測(cè)試用例驗(yàn)證平臺(tái)化網(wǎng)關(guān)控制器實(shí)現(xiàn).驗(yàn)證測(cè)試用例中網(wǎng)關(guān)控制器目標(biāo)狀態(tài):3路CAN通道均設(shè)置為使能狀態(tài), CAN1通道連接娛樂CAN,傳輸速率500 kbps,采樣點(diǎn)80%;CAN2通道連接動(dòng)力CAN,傳輸速率500 kbps,采樣點(diǎn)80%;CAN3通道連接車身CAN,傳輸速率125 kbps,采樣點(diǎn)75%.網(wǎng)關(guān)控制器在CAN2通道上接收到報(bào)文0x1A0、0x280和0x311,其中報(bào)文0x280是發(fā)動(dòng)機(jī)控制單元與車身控制器認(rèn)證報(bào)文,需轉(zhuǎn)發(fā)到CAN3通道上,報(bào)文0x1A0和0x311是發(fā)動(dòng)機(jī)轉(zhuǎn)速和車速的報(bào)文,用于儀表顯示和車身控制器策略判斷,需轉(zhuǎn)發(fā)到CAN1和CAN3通道上.診斷設(shè)備依據(jù)網(wǎng)關(guān)控制器的目標(biāo)狀態(tài)更新EEPROM中的CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,網(wǎng)關(guān)控制器復(fù)位后讀取EEPROM中存儲(chǔ)數(shù)據(jù)完成初始化過程并開始報(bào)文檢測(cè).網(wǎng)關(guān)控制器在CAN2通道接收到報(bào)文0x1A0、0x280和0x311后,依次檢測(cè)CAN2→CAN1和CAN2→CAN3數(shù)據(jù)轉(zhuǎn)發(fā)路由表,報(bào)文0x1A0和0x311在CAN2→CAN1路由表和CAN2→CAN3路由表中檢測(cè)到,則將報(bào)文0x1A0和0x311分別轉(zhuǎn)發(fā)到CAN1通道和CAN3通道上,報(bào)文0x280在CAN2→CAN3路由表中檢測(cè)到,則將報(bào)文0x280轉(zhuǎn)發(fā)到CAN3通道上.網(wǎng)關(guān)控制器功能驗(yàn)證如圖3所示.
圖3 網(wǎng)關(guān)控制器功能驗(yàn)證圖
平臺(tái)化網(wǎng)關(guān)控制器將CAN通道使能配置、采樣點(diǎn)控制參數(shù)、傳輸速率設(shè)置和網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲(chǔ)在非易失存儲(chǔ)器中,網(wǎng)關(guān)控制器初始化過程中,將CAN通道配置參數(shù)和使能的CAN通道的數(shù)據(jù)轉(zhuǎn)發(fā)路由表讀取到應(yīng)用軟件內(nèi)部實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能,非易失存儲(chǔ)器中,CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表可通過診斷設(shè)備動(dòng)態(tài)更新,上述方式實(shí)現(xiàn)了網(wǎng)關(guān)控制器數(shù)據(jù)的可更新性,增加了網(wǎng)關(guān)控制器功能實(shí)現(xiàn)的靈活性,實(shí)現(xiàn)了不同車型上網(wǎng)關(guān)控制器的通用性,有效的降低了整車開發(fā)成本,縮短了整車開發(fā)和驗(yàn)證周期.
[1] 秦貴和. 車上網(wǎng)絡(luò)技術(shù)[M]. 北京: 機(jī)械工業(yè)出版社, 2003.
[2] 周潤景, 袁偉亭. 高速電路板設(shè)計(jì)與仿真[M]. 北京: 電子工業(yè)出版社, 2006.
[3] 邵貝貝. 單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M]. 北京: 清華大學(xué)出版社, 2004.
Platform Design of Gateway Controller
HE Dan-dan, YE Xiao-ping, CUI Shu-chao, SUN Can
(Beijing Automotive Technology Center, Beijing 101300)
A gateway controller unit (GCU) realizes the data forwarding between the units of different network segments in a vehicle. In a traditional GCU, any data change will cause the adjustment in the controller software architecture, affecting the development cost and research cycle of the vehicle. According to the design idea, the CAN channel-enable configuration, the sample-point control parameter, the transmission baud-rate setting and the network data forwarding routing table of the GCU are all stored in a non-volatile memory. After each GCU is powered-on for initialization or for reset, the CAN channel configuration parameters and data forwarding routing table are obtained from the non-volatile memory, implementing the function of network data forwarding. The parameters and the table can be dynamically updated, realizing the data forwarding function of different gateway controllers and the platform design of the gateway controller.
gateway controller unit (GCU); configuration parameters; data forwarding routing table; non-volatile memory
1009-4687(2017)02-0018-04
2016-12-6
何丹丹(1982-),女,碩士,研究方向?yàn)檎囯娖飨到y(tǒng)設(shè)計(jì).
U472.7
A