當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > SoM
發(fā)布日期:2022-10-09 點擊率:139
車載以太網(wǎng)(BroadR-Reach)已經(jīng)在汽車攝像頭領(lǐng)域得到了應(yīng)用,并逐步擴展到其他應(yīng)用領(lǐng)域。為了實現(xiàn)帶寬的高效利用,車載以太網(wǎng)采取與CAN總線通信方式相反的支持動態(tài)的、面向服務(wù)的通信。因此,相應(yīng)的開發(fā)工具也必須要能夠支持面向服務(wù)的協(xié)議,如SOME/IP(Scalable service-Oriented MiddlewarE over IP)。
本文以SOME/IP為例介紹如何實現(xiàn)動態(tài)的、面向服務(wù)的IP網(wǎng)絡(luò)殘余總線仿真,如圖1所示。并從媒介訪問、同步以及仿真控制的角度進行探討,希望可以給相關(guān)開發(fā)人員提供一些有價值的參考。
圖1 車載網(wǎng)絡(luò)測試示例
基于SOME/ IP的服務(wù)協(xié)議使用
在以太網(wǎng)(IP)領(lǐng)域,有眾多協(xié)議可供選擇,從而導(dǎo)致一種錯誤的印象:即現(xiàn)有協(xié)議可以直接用于車內(nèi)所有可想象到的應(yīng)用程序。但是,車載網(wǎng)絡(luò)并非從零開始,所選用的協(xié)議也要能滿足特定的需求。比如,新的協(xié)議要能很好地適配于當(dāng)前的車載網(wǎng)絡(luò)系統(tǒng),特別是涉及到AUTOSAR架構(gòu)的良好集成以及在出現(xiàn)通信錯誤情況下如何確保時間延遲的快速反應(yīng)機制。寶馬開發(fā)并定義的SOME/IP,是一種可以滿足汽車使用需求的開放式協(xié)議。Vector提供基于SOME/IP的完整工具鏈,包括TCP/IP協(xié)議棧、服務(wù)發(fā)現(xiàn)(Service Discovery)和BroadR-Reach以太網(wǎng)驅(qū)動程序等。
SOME/IP提供面向服務(wù)的通信接口,與當(dāng)前汽車主要總線CAN的面向信號的通信方式有很大不同,如圖2所示。SOME/IP可以大致分為三個部分:服務(wù)發(fā)現(xiàn)(Service Discovery,SD),遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)以及訪問進程數(shù)據(jù)。ECU通過SD在網(wǎng)絡(luò)中查找服務(wù)或者提供服務(wù),客戶端(Client)通過RPC去調(diào)用SD提供的方法,如圖3(Part A)所示。此外,ECU還可以將特定事件設(shè)置為通知,如圖3(Part B)所示,由服務(wù)端(Server)ECU自動向客戶端ECU發(fā)送服務(wù)內(nèi)容。客戶端ECU的應(yīng)用程序也可通過讀寫函數(shù)去訪問任意特定進程的數(shù)據(jù),如圖3(Part C)所示。SOME/IP期望以一種最優(yōu)的方式利用帶寬并實現(xiàn)靈活的通信方式,其數(shù)據(jù)庫格式有FIBEX(FIBEX 4.1或更高版本)和ARXML(AUTOSAR4.1或更高版本)。
圖2 SOME/IP提供可用于標(biāo)定的接口
圖3 SOME/IP訪問方式
基于CANoe的SOME/IP網(wǎng)絡(luò)仿真應(yīng)用
在殘余總線仿真中,SOME/IP作為復(fù)雜的協(xié)議和中間件,設(shè)計時較為靈活。為了盡可能地降低工程的復(fù)雜度,在CANoe中與SOME/IP相關(guān)的絕大部分配置都可以自動化完成,前提條件是標(biāo)準(zhǔn)格式的數(shù)據(jù)庫文件(比如FIBEX或ARXML)。CANoe中SOME/IP的仿真功能基于SomeIP_IL.dll以及CANoeILNL_AUTOSAR_ETH.DLL實現(xiàn),可在Simulation Setup中將上述dll文件分配給對應(yīng)的仿真節(jié)點并配置其SOME/IP交互層屬性。
> 在以太網(wǎng)網(wǎng)段里添加FIBEX或ARXML數(shù)據(jù)庫文件
圖4.1 添加數(shù)據(jù)庫
> 鼠標(biāo)右擊數(shù)據(jù)庫文件,選擇Node Synchronization,選擇需要創(chuàng)建的節(jié)點,點擊>>按鈕,點擊Next、Finish即可
圖4.2 創(chuàng)建仿真節(jié)點
> 在Simulation Setup界面,鼠標(biāo)右擊bus node分配相應(yīng)的dll文件(dll文件存儲在CANoe安裝目錄下Exec32文件夾中)
圖4.3 分配dll文件
至此,一個完整的殘余總線仿真環(huán)境已經(jīng)搭建完成。用戶還可以通過右擊Network node,選擇Component Configuration,修改服務(wù)的發(fā)送方式,如圖5所示,服務(wù)發(fā)現(xiàn)以及訂閱后的通知就會周期性的發(fā)送,進一步的功能還可以通過CAPL編程實現(xiàn),例如讀寫信號值,調(diào)用Method等。
圖5 配置IL屬性
在CANoe->Trace窗口可以查看SOME/IP的通信過程,如圖6所示。
圖6 Trace窗口
CANoe 11.0版本中新增一個EthernetNetwork Monitor分析窗口,可以方便地查看SOME/IP各節(jié)點的訂閱關(guān)系和相關(guān)服務(wù)信息,如圖7所示。
圖7 Ethernet Network Monitor
如果沒有數(shù)據(jù)庫或者數(shù)據(jù)庫不完整的話,CANoe也可以直接通過相關(guān)dll文件封裝好的函數(shù),利用CAPL去創(chuàng)建服務(wù)(Event/Method),以及實現(xiàn)Event的觸發(fā)發(fā)送和Method的調(diào)用,相關(guān)函數(shù)在CANoe的幫助文檔中都有示例可供參考,如圖8所示。
圖8 CAPL腳本
利用測試工具實現(xiàn)靈活的訪問網(wǎng)絡(luò)
利用測試工具能夠以最優(yōu)的方式去實現(xiàn)復(fù)雜的測試任務(wù),比如殘余總線仿真,需要工具可以靈活、高效地訪問物理媒介,如圖9所示。通過對物理媒介的訪問,開發(fā)人員可以修改網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)來生成錯誤的測試用例(如CRC錯誤)。但如果僅僅只是監(jiān)測分析兩個節(jié)點之間的通信行為,則需要一種特殊的測量方法來實現(xiàn)透明、無干擾的訪問物理媒介。雖然邏輯上Open Alliance BroadR-Reach(OABR)是一種總線系統(tǒng),但從物理層角度來看屬于點對點連接,所以這種特殊的測量方法是很有必要的。解決方案之一是在系統(tǒng)中使用的交換機上增加一個額外的監(jiān)控端口,但由于成本原因,不是所有交換機都會預(yù)留監(jiān)控端口。在這種解決方案中,交換機會將所有接收到的數(shù)據(jù)轉(zhuǎn)發(fā)到監(jiān)控端口,從而產(chǎn)生兩個問題:一是轉(zhuǎn)發(fā)的數(shù)據(jù)沒有共同的時間基準(zhǔn),因為沒有時戳;二是交換機只會將有效的數(shù)據(jù)轉(zhuǎn)發(fā)給監(jiān)控端口,導(dǎo)致對一些錯誤的分析變得困難。
圖9 VN5610在不同應(yīng)用案例中的使用
為了最大限度地減小媒介訪問對網(wǎng)絡(luò)分析的影響,引入了一種名為TAP(TestAccess Point)的分析方法。與標(biāo)準(zhǔn)的數(shù)據(jù)轉(zhuǎn)發(fā)不同,通過TAP可以在不影響節(jié)點通信的前提下透明地分析網(wǎng)絡(luò),如圖9所示。根據(jù)具體需求,TAP可以工作在兩種不同的模式:
> 被動模式:可以保證恒定的較短的延遲時間,但是只能監(jiān)聽物理媒介。
> 主動模式:在數(shù)據(jù)轉(zhuǎn)發(fā)過程中可以插入額外數(shù)據(jù),但是會有一定的延遲。
由于主動模式要對數(shù)據(jù)流進行處理,而流控涉及到了數(shù)據(jù)鏈路層(OSI Layer2),因此不能用在物理層(OSI Layer1)。與此同時,流控不能保證恒定的等待時間。無論選擇哪一種模式,為了盡可能精確地分析PacketData(分組數(shù)據(jù)),都需要獲得盡可能接近物理層的精確時間戳。由于網(wǎng)絡(luò)分析通常關(guān)注多個以太網(wǎng)路徑,同時還需考慮汽車上其他的總線網(wǎng)絡(luò),因此這些時間戳必須要與其他接口設(shè)備進行同步。
選擇合適的開發(fā)工具
基于以上的考慮,每個開發(fā)者在選擇相應(yīng)的開發(fā)工具時都可以先思考下面五個問題:
> 工具是否能夠支持面向服務(wù)的通信,比如SOME/IP?
> 工具是否能夠提供日志記錄以及在有或者沒有違反協(xié)議的情況下控制仿真?
> 工具是否能夠支持訪問主流的車載網(wǎng)絡(luò),如OABR,CAN,F(xiàn)lexRay和MOST?
> 接口是否可以靈活的用作鏡像的TAP轉(zhuǎn)換器以及交換機?
> 支持多種網(wǎng)絡(luò)類型的接口是否能夠與常用的總線系統(tǒng)和IP網(wǎng)絡(luò)同步?
軟件CANoe.Ethernet與硬件VN5610A/VN5640可以滿足上述的所有要求。通過CANoe.Ethernet可以實現(xiàn)以太網(wǎng)通信的監(jiān)測、以太網(wǎng)節(jié)點仿真、以太網(wǎng)數(shù)據(jù)鏈路層及其上層協(xié)議測試。以太網(wǎng)接口卡VN5610A包含兩路以太網(wǎng)通道和兩路高速CAN/CAN FD通道,VN5640接口卡支持16路以太網(wǎng)通道和兩路高速CAN/CAN FD通道。16路以太網(wǎng)中包含12路車載以太網(wǎng)通道和4路標(biāo)準(zhǔn)以太網(wǎng)通道。VN5640可工作于Standalone模式下,脫離上位機實現(xiàn)2層交換機的報文轉(zhuǎn)發(fā)功能,同時還提供數(shù)字/模擬IO通道。Vector一直致力于為用戶提供高效優(yōu)質(zhì)的產(chǎn)品和服務(wù),CANoe.Ethernet與VN5610A/VN5640的組合在行業(yè)中得到了廣泛應(yīng)用。
 
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航