CAN 總線(xiàn)車(chē)載網(wǎng)絡(luò )通訊組件的研究和實(shí)現
3.3 分隔應用程序和通訊協(xié)議,保證變更靈活性
如圖 2 所示,新方法為ECU 通訊功能提供了標準的網(wǎng)絡(luò )通訊組件。該組件將應用程序和通訊協(xié)議成功分隔開(kāi)來(lái),使得各自的修改互不影響,保證了協(xié)議修改的靈活性。網(wǎng)絡(luò )通訊組件提供面向總線(xiàn)、應用程序和通訊協(xié)議三方面的標準接口。面向應用程序的接口是基于信號的操作,不包含通訊協(xié)議的參數。面向通訊協(xié)議的接口負責識別通訊協(xié)議。只要遵守接口標準,協(xié)議可以進(jìn)行任意改變,而且不影響應用程序。
圖 2 分隔應用程序和通訊協(xié)議
這種設計方案其優(yōu)勢在于整車(chē)廠(chǎng)商可以很容易地修改協(xié)議,不需要供應商支持,因此保證了系統變更的靈活性,同時(shí)也增加了系統的可移植性以及應用的復用性。
4 系統設計
為了避免傳統設計方法的缺點(diǎn),本系統參考新方法理論進(jìn)行設計。整個(gè)系統主要分為兩大部分:一、靜態(tài)配置編譯工具;二、網(wǎng)絡(luò )組件,稱(chēng)為COM 組件。
4.1 靜態(tài)配置編譯工具
該靜態(tài)配置編譯工具使用配置語(yǔ)言進(jìn)行信號、幀、幀模式等等的配置。配置語(yǔ)言定義了四個(gè)文件的配置規則語(yǔ)法,這四個(gè)文件分別為:fixed 文件、network 文件、target 文件和private文件。
.fix 文件主要用來(lái)描述可用的網(wǎng)絡(luò )接口以及ECU 中的每個(gè)通信接口所收發(fā)的信號的描述。這些描述內容可以在工程的很早階段就可以定義,甚至是在選定供應商之前就可以進(jìn)行定以。
.net 文件通常由系統Interator 創(chuàng )建,主要用來(lái)描述網(wǎng)絡(luò )接口配置、信號、幀及其想關(guān)參數(例如:幀的ID,傳輸類(lèi)型、周期、偏移以及信號的映射表),如果應用有需要的話(huà),還可以進(jìn)行調度表的調度表的定義(應用于使用網(wǎng)關(guān)的情況)。這些信息將會(huì )存儲到NVRAM中,并且對于應用軟件不是直接可見(jiàn)的。
.tgt 文件是由ECU 的供應商提供的,它包括ECU 的硬件特性描述,比如CPU 類(lèi)型、存儲數據的內存的大小和地址等。
.pri 文件主要用來(lái)定義信號的標志、超時(shí)以及信號的重命名等信息。通過(guò)使用配置語(yǔ)言配置的這四個(gè)文件實(shí)現了靜態(tài)可裁剪配置,同時(shí)控制了信號傳遞的時(shí)序,有效地控制了通訊延遲并避免了數據的丟失,充分利用了網(wǎng)絡(luò )資源。
經(jīng)過(guò)配置后獲得的四個(gè)文件經(jīng)過(guò)配置編譯器編譯后生成三個(gè)文件,分別為:s_gen.c 、s_hand.h 以及s_nvram。
s_gen.c 文件包含了一些配置產(chǎn)生的數據結構,并且這些數據結構與ECU 供應商提供的ECU 其他部分應用軟件代碼進(jìn)行集成編譯和鏈接。應用軟件將包含s_hand.h 文件,以便訪(fǎng)問(wèn)不同的通訊對象,例如:特定的信號等。s_nvram 文件是產(chǎn)生的ECU 二進(jìn)制配置數據。
評論