何丹丹, 葉小平, 崔書超, 孫 燦
(北京汽車研究總院,北京101300)
網(wǎng)關(guān)控制器平臺化設(shè)計
何丹丹, 葉小平, 崔書超, 孫 燦
(北京汽車研究總院,北京101300)
網(wǎng)關(guān)控制器實現(xiàn)車內(nèi)不同網(wǎng)段電控單元之間的數(shù)據(jù)轉(zhuǎn)發(fā).傳統(tǒng)的網(wǎng)關(guān)控制器中,任何數(shù)據(jù)變更,均會導(dǎo)致控制器內(nèi)部軟件的調(diào)整,影響整車的開發(fā)周期和成本.本文設(shè)計的網(wǎng)關(guān)控制器的通道使能配置、采樣點控制參數(shù)、傳輸速率設(shè)置和網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲在非易失存儲器中,網(wǎng)關(guān)控制器上電初始化或復(fù)位后,從非易失存儲器中獲取CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)功能.非易失性存儲器中的通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表可通過診斷設(shè)備動態(tài)更新,實現(xiàn)不同網(wǎng)關(guān)控制器的數(shù)據(jù)轉(zhuǎn)發(fā)功能,進而實現(xiàn)網(wǎng)關(guān)控制器的平臺化設(shè)計.
網(wǎng)關(guān)控制器;配置參數(shù);數(shù)據(jù)轉(zhuǎn)發(fā)路由表;非易失存儲器
網(wǎng)關(guān)控制器實現(xiàn)整車不同網(wǎng)段的通信數(shù)據(jù)轉(zhuǎn)發(fā).不同車型網(wǎng)關(guān)控制器CAN通道數(shù)量、傳輸速率、采樣點或轉(zhuǎn)發(fā)數(shù)據(jù)存在差異,網(wǎng)關(guān)控制器均需要重新獨立開發(fā);新車型在研發(fā)初始階段,一般采用現(xiàn)有的車型進行改制,電控單元數(shù)量的增減及數(shù)據(jù)接口定義的變化都會導(dǎo)致不同網(wǎng)段間轉(zhuǎn)發(fā)數(shù)據(jù)的變更,網(wǎng)關(guān)控制器需要進行軟件更新;在整車開發(fā)階段,車內(nèi)電控單元的控制策略依據(jù)試驗結(jié)果進行調(diào)整,網(wǎng)段間轉(zhuǎn)發(fā)數(shù)據(jù)隨之變更,網(wǎng)關(guān)控制器需要進行軟件更新.無論是網(wǎng)關(guān)控制器重新開發(fā)還是軟件更新都會增加整車開發(fā)成本和周期,并且變更后需要重新進行測試驗證,在人力成本上也造成了極大的浪費,延緩了整車開發(fā)進度[1].
平臺化網(wǎng)關(guān)控制器設(shè)計支持多路CAN通道之間的通信數(shù)據(jù)轉(zhuǎn)發(fā),CAN通道的使能配置、采樣點控制參數(shù)、傳輸速率設(shè)置和數(shù)據(jù)轉(zhuǎn)發(fā)路由表都存儲在非易失性存儲器中,且可通過診斷設(shè)備進行動態(tài)更新.在重新上電或診斷復(fù)位后,網(wǎng)關(guān)控制器讀取非易失性存儲器中CAN通道配置信息和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能.網(wǎng)關(guān)控制器平臺化設(shè)計方案實現(xiàn)網(wǎng)關(guān)控制器CAN通道數(shù)目的可調(diào)性,通道傳輸速率和采樣點的可配置性,數(shù)據(jù)轉(zhuǎn)發(fā)的可動態(tài)變更性,進而實現(xiàn)網(wǎng)關(guān)控制器通用性的平臺化設(shè)計.
網(wǎng)關(guān)控制器硬件設(shè)計系統(tǒng)框圖如圖1所示.
圖1 網(wǎng)關(guān)控制器硬件設(shè)計系統(tǒng)框圖
圖中:控制器的MCU芯片F(xiàn)reescale MPC5604C支持6路CAN通道,1路作為診斷CAN通道,用于網(wǎng)關(guān)控制器與診斷設(shè)備之間的信息交互;3路CAN通道連接整車不同的CAN網(wǎng)段,用于實現(xiàn)通信數(shù)據(jù)轉(zhuǎn)發(fā)功能;另外2路CAN通道作為預(yù)留接口,且其中1路為容錯CAN接口(CAN收發(fā)器TJA1053),以兼容具有容錯CAN網(wǎng)段的車型.系統(tǒng)基礎(chǔ)芯片NXP UJA1076實現(xiàn)MPC5604C和CAN收發(fā)器TJA1042的電源管理和看門狗定時管理,其內(nèi)部集成的高速CAN收發(fā)器用于診斷CAN通道數(shù)據(jù)的發(fā)送與接收.非易失性存儲器芯片ST M95080(EEPROM)最大存儲容量達8 kbit,為網(wǎng)關(guān)控制器數(shù)據(jù)存儲擴展預(yù)留足夠的空間.MPC5604C與EEPROM之間采用SPI總線傳輸數(shù)據(jù),有效保證了CAN通道配置數(shù)據(jù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表的讀取時間,將網(wǎng)關(guān)控制器系統(tǒng)初始化過程控制在整車控制器啟動允許的時間范圍內(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通道的底層寄存器,實現(xiàn)CAN通道的參數(shù)配置和傳輸速率設(shè)置.所有使能CAN通道初始化完成后,網(wǎng)關(guān)控制器將對應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)路由表讀取到MCU內(nèi)部存儲器中,用于數(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ù)檢測控制程序和EEPROM數(shù)據(jù)更新處理程序,CAN通道數(shù)據(jù)檢測控制程序?qū)崿F(xiàn)CAN通道數(shù)據(jù)檢測和數(shù)據(jù)轉(zhuǎn)發(fā),EEPROM數(shù)據(jù)更新處理程序?qū)崿F(xiàn)CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲數(shù)據(jù)的更新.
3.2.1 CAN通道數(shù)據(jù)檢測控制程序
平臺化網(wǎng)關(guān)控制器數(shù)據(jù)轉(zhuǎn)發(fā)基于報文路由方式實現(xiàn),不進行報文信號的提取與重組,通過檢測CAN通道接收報文ID確定報文轉(zhuǎn)發(fā)目標網(wǎng)段.報文路由方式有利于整車電控單元通用化接口設(shè)計,便于整車平臺化架構(gòu)設(shè)計實現(xiàn),隨著網(wǎng)絡(luò)通信速率的提高和網(wǎng)絡(luò)傳輸可靠性的提升,其逐漸成為網(wǎng)關(guān)控制器實現(xiàn)通信數(shù)據(jù)轉(zhuǎn)發(fā)功能的設(shè)計趨勢.
網(wǎng)關(guān)控制器CAN通道數(shù)據(jù)檢測控制程序依次檢測CAN1、CAN2和CAN3通道,檢測周期10 ms,若檢測的CAN通道為使能狀態(tài),則逐一讀取該通道報文接收緩沖區(qū)中報文ID,并在該通道相關(guān)的數(shù)據(jù)轉(zhuǎn)發(fā)路由表中檢測報文ID,若檢測到則將報文轉(zhuǎn)發(fā)到數(shù)據(jù)路由表指定的CAN通道上,接收緩沖區(qū)中所有報文ID完成檢測后,進入下一個CAN通道的數(shù)據(jù)檢測控制流程.CAN1通道數(shù)據(jù)檢測控制流程如圖2所示,CAN2和CAN3通道處理方式與其相同.
圖2 CAN1通道數(shù)據(jù)檢測控制流程圖
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ā)路由表存儲數(shù)據(jù)的更新.診斷設(shè)備對網(wǎng)關(guān)控制器EEPROM存儲數(shù)據(jù)更新流程如下:
1)診斷設(shè)備使網(wǎng)關(guān)控制器進入擴展會話(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)控制器進行安全訪問解密(0x27 0x01/0x27 0x02 key1, key2, key3, key4),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x67 0x01/0x02)完成安全訪問驗證,若回復(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ù)存儲到EEPROM中;
4)診斷設(shè)備更新數(shù)據(jù)轉(zhuǎn)發(fā)路由表(0x2E 0x66 0x1X Routing Data Table),數(shù)據(jù)轉(zhuǎn)發(fā)路由表對應(yīng)的CAN通道配置為使能狀態(tài),網(wǎng)關(guān)控制器回復(fù)肯定響應(yīng)(0x6E 0x66 0x1X),并將數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲到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ù)位完成后進入初始化程序,從EEPROM中讀取CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表更新網(wǎng)關(guān)數(shù)據(jù)轉(zhuǎn)發(fā)功能.
網(wǎng)關(guān)控制器根據(jù)數(shù)據(jù)標識符訪問EEPROM中CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,網(wǎng)關(guān)控制器數(shù)據(jù)標識符分配如表1所示.
表1 數(shù)據(jù)標識符分配列表
CAN通道配置參數(shù)定義如表2所示.Byte0~Byte2定義CAN1~CAN3通道的使能狀態(tài)位(Enable)、標稱位時間(NBT)和傳播段(ProSEG);Byte3~Byte5定義CAN1~CAN3通道的傳輸速率.
表2 CAN通道配置參數(shù)表
注:E-傳輸速率物理值;N-傳輸速率網(wǎng)絡(luò)傳輸邏輯值.
網(wǎng)關(guān)控制器獲取CAN通道配置參數(shù)并對使能CAN通道控制寄存器進行配置,以設(shè)置指定的傳輸速率和采樣點.CAN通道采樣點計算公式如下:
(1)
(2)
式(1)中:NBT為標稱位時間;ProSEG為傳播段;PSEG1為相位緩沖段1;PSEG1的計算公式如公式(2)所示. 若CAN通道配置信息中的參數(shù)NBT或ProSEG設(shè)置為0,網(wǎng)關(guān)控制器內(nèi)部軟件默認設(shè)置采樣點75%.
每個CAN通道數(shù)據(jù)轉(zhuǎn)發(fā)路由表占用40 Byte的存儲空間,一條報文ID占用2 Byte用于存儲CAN標準幀的11位ID,數(shù)據(jù)轉(zhuǎn)發(fā)路由表最大可支持20條報文路由,為網(wǎng)關(guān)控制器轉(zhuǎn)發(fā)數(shù)據(jù)功能預(yù)留足夠的擴展空間.
網(wǎng)關(guān)控制器功能驗證通過測試用例驗證平臺化網(wǎng)關(guān)控制器實現(xiàn).驗證測試用例中網(wǎng)關(guān)控制器目標狀態(tài):3路CAN通道均設(shè)置為使能狀態(tài), CAN1通道連接娛樂CAN,傳輸速率500 kbps,采樣點80%;CAN2通道連接動力CAN,傳輸速率500 kbps,采樣點80%;CAN3通道連接車身CAN,傳輸速率125 kbps,采樣點75%.網(wǎng)關(guān)控制器在CAN2通道上接收到報文0x1A0、0x280和0x311,其中報文0x280是發(fā)動機控制單元與車身控制器認證報文,需轉(zhuǎn)發(fā)到CAN3通道上,報文0x1A0和0x311是發(fā)動機轉(zhuǎn)速和車速的報文,用于儀表顯示和車身控制器策略判斷,需轉(zhuǎn)發(fā)到CAN1和CAN3通道上.診斷設(shè)備依據(jù)網(wǎng)關(guān)控制器的目標狀態(tài)更新EEPROM中的CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表,網(wǎng)關(guān)控制器復(fù)位后讀取EEPROM中存儲數(shù)據(jù)完成初始化過程并開始報文檢測.網(wǎng)關(guān)控制器在CAN2通道接收到報文0x1A0、0x280和0x311后,依次檢測CAN2→CAN1和CAN2→CAN3數(shù)據(jù)轉(zhuǎn)發(fā)路由表,報文0x1A0和0x311在CAN2→CAN1路由表和CAN2→CAN3路由表中檢測到,則將報文0x1A0和0x311分別轉(zhuǎn)發(fā)到CAN1通道和CAN3通道上,報文0x280在CAN2→CAN3路由表中檢測到,則將報文0x280轉(zhuǎn)發(fā)到CAN3通道上.網(wǎng)關(guān)控制器功能驗證如圖3所示.
圖3 網(wǎng)關(guān)控制器功能驗證圖
平臺化網(wǎng)關(guān)控制器將CAN通道使能配置、采樣點控制參數(shù)、傳輸速率設(shè)置和網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)路由表存儲在非易失存儲器中,網(wǎng)關(guān)控制器初始化過程中,將CAN通道配置參數(shù)和使能的CAN通道的數(shù)據(jù)轉(zhuǎn)發(fā)路由表讀取到應(yīng)用軟件內(nèi)部實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能,非易失存儲器中,CAN通道配置參數(shù)和數(shù)據(jù)轉(zhuǎn)發(fā)路由表可通過診斷設(shè)備動態(tài)更新,上述方式實現(xiàn)了網(wǎng)關(guān)控制器數(shù)據(jù)的可更新性,增加了網(wǎng)關(guān)控制器功能實現(xiàn)的靈活性,實現(xiàn)了不同車型上網(wǎng)關(guān)控制器的通用性,有效的降低了整車開發(fā)成本,縮短了整車開發(fā)和驗證周期.
[1] 秦貴和. 車上網(wǎng)絡(luò)技術(shù)[M]. 北京: 機械工業(yè)出版社, 2003.
[2] 周潤景, 袁偉亭. 高速電路板設(shè)計與仿真[M]. 北京: 電子工業(yè)出版社, 2006.
[3] 邵貝貝. 單片機嵌入式應(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-),女,碩士,研究方向為整車電器系統(tǒng)設(shè)計.
U472.7
A