針對FlexRay系統的嵌入式軟件
標準化的軟件組件將有助于管理ECU中所有軟件組件之間日趨復雜的關聯關系。今年三月,在Vector的FlexRay研討會上,提出了針對FlexRay的現代ECU軟件開發方法。
本文引用地址:http://www.j9360.com/article/81514.htm FlexRay總線協議是一種車載網絡協議,適用于具有較大傳輸帶寬要求的高速控制系統。FlexRay的帶寬比CAN高出20倍,從而可以通過使用更少的網關來降低系統的復雜性。由于FlexRay是時間觸發控制,所以特別適合分布式的容錯系統的通訊和與安全相關的應用。另外,AUTOSAR對于軟件系統結構的標準化,將有利于控制汽車電控系統復雜度的增長。
FlexRay ECU軟件的特征
為了充分發揮FlexRay通訊系統的優點,有必要根據AUTOSAR,從根本上開發相關的基礎軟件。AUTOSAR規定了新的開發方法,即軟件體系結構和基礎軟件。OEM可以一步一步地將其引入到新的車型中。符合標準的ECU軟件具有模塊化的結構(圖 1),從而可以在RTE以上劃分軟件組件,在RTE以下劃分基礎軟件。基礎軟件具有模塊化的內部結構,并通過明確的接口定義進行了說明。因此,任何來源的代碼都可以集成到其中使用。另外,AUTOSAR還定義了交換格式以及獨立模塊之間的接口如何運行。
這種模塊化使得裁剪軟件特性以滿足某個車型的具體需求變得更加容易,例如,沒有網絡管理的ECU。因為獨立的軟件模塊可以被軟件供應商預先配置好,從而降低了OEM和ECU供應商開發基礎軟件的投入。這樣可以讓開發人員將更多的重心放在創新和實際功能的開發上。
FlexRay的嵌入式結構
Vector的FlexRay基礎軟件體系結構如圖2。FlexRay基礎軟件體系結構包括接口、驅動、網絡管理和傳輸協議,這些都包括在FlexRay協議棧中。驅動對硬件進行了抽象,使其能夠適用于不同的通訊控制器。驅動負責初始化控制器,發送和接收幀以及檢測控制器錯誤。這些接口與上層之間進行通訊,將協議數據單元轉化為幀,反向則將幀轉化為協議數據單元。另外,它還負責向相關層提供發送和接收應答。考慮到總線系統的通信需求,網絡管理協調網絡中所有的ECU之間的通訊。如果所有的網絡節點不再有通訊需求,將切換到總線休眠ECU模式。
FlexRay傳輸協議同樣位于FlexRay接口上,用來處理不能在一個協議數據單元中發送的大數據,將其分割成若干部分發送,并將其在接收端重新組合。
針對Freescale和NEC的兩款FlexRay控制器驅動,可以看出這些模塊是怎么樣適應實際需要的。經過優化裁減的驅動適應特定的硬件使用需求,同時提供給上層一個不變的特性和行為的模式。在Freescale的16位S12X控制器中,FlexRay驅動必須管理RAM存儲器,因為該控制器必需的存儲空間需要交換到系統RAM。32位的NEC V850控制器已經包含了一個大的RAM,作為FlexRay控制器的存儲器。這就是驅動執行其有效的分割和利用的地方。
運用XCP在FlexRay上面進行ECU標定
在該構架中,可以非常方便的集成最近開發的組件,例如,因為新的協議或者標準的擴展而必需開發的組件。這些接口也必須與AUTOSAR標準一致。例如,XCP功能可以添加到以前定義的FlexRay協議棧中,這樣就可以測量和標定FlexRay ECU內部的信號。
XCP是優化ECU系統參數的通用通訊協議。由于其獨立的協議層和傳輸層,XCP可以工作在不同類型的通訊網絡中(CAN, FlexRay, Ethernet, USB, RS232或者SPI/SCI)。這種明顯的分層還體現在FlexRay協議棧中的集成。通用通訊協議層XCP在FlexRay專用傳輸層(FrXCP)的上面,FlexRay專用傳輸層與FlexRay接口進行信號交換(圖3)。
由于帶寬是動態配置的,驅動必須在測量或標定的過程中配置緩存。因此,該模塊被標準AUTOSAR驅動的擴展版取代。
XCP是面向地址的協議。通訊發生在控制器組件和XCP Master中的相似結構的軟件組件之間。一般來說,XCP Master是測量和標定的工具(例如:Vector的CANape),其訪問測量數據是通過面向地址的方式實現的,這就要求ECU中任務同步(事件驅動)。
動態帶寬管理
連接是通過在ECU描述文件(A2L)中定義的初始通訊通道建立的。通過傳輸層命令,XCP Master控制一個循環中動態部分的可變時隙的分配,這樣就能夠擴展通道用于傳輸測量和標定數據。這種“負載分配”在運行時動態優化帶寬利用。由于同一總線上有多個ECU通訊,一個時隙不能專門分配給特定的ECU,而是采用多路技術,即多個ECU使用同一時隙。這在需要較小帶寬時非常有意義,例如,一個ECU僅僅需要每秒發送一條報文,或者每四個周期發送一條報文。每一個報文的具有唯一的地址,詳細描述了時隙、周期和通道信息。這樣就可以在每個周期內給不同ECU數據使用相同的時隙。測量數據包含時戳,可以在比一個周期時間更短的間隔內訪問測量變量。例如,系統的周期為5ms,而測量的周期可以是2.5ms。當然,這也需要保證有足夠的帶寬在期望的時間內傳輸數據。
在該通訊過程中,ECU必須保留并動態配置發送和接收的緩存(RAM)。RAM可以包含在控制器中,也可以在必要的時候使用外部的存儲單元,該存儲單元由FlexRay驅動管理。
在系統定義的時候,需要明確定義XCP可以使用多少時隙,什么樣的情況下進行時隙分配。這是在FIBEX文件中完成的,還需要定義保留給XCP的slot。以下情況都是可能出現的:
·每個ECU都有自己的時隙
·多ECU使用相同的slot
在這種情況下,每一個ECU都有自己的地址。可以通過命令來激活緩存或使之失效。
·緩存可配置,這樣符合動態分配
無論是否使用傳輸協議,XCP master的用戶接口應該準確描述實際測量和標定任務。這樣,應用工程師就可以優化ECU參數,而無需依賴他們所標定的ECU的總線系統。
利用標識符進行標定工作,可以在ECU中找到參數和測量變量,而無需知道變量的代碼地址。應用程序根據ECU的描述文件將名字(標識符)與物理地址關聯起來(圖 4)。
支持所有開發階段
FlexRay的開發人員可以從Vector公司獲得支持:從系統描述到基礎軟件的實現以及ECU的標定。這包括用于設計、開發、仿真、分析、測試ECU和分布式網絡的工具以及相應的總線接口。CANape是第一個支持基于FlexRay的XCP測量、標定和診斷的工具。結合針對ECU的成熟的軟件協議棧和標定工具對于XCP-on-FlexRay的支持,用戶可以獲得與其它組件完美結合的組件,從而建立符合AUTOSAR的體系結構。(恒潤科技譯)
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論