FlexRay测试开发实践之诊断刷写
前言
FlexRay總線目前主要應用在高端品牌車型(如寶馬、奔馳、奧迪、沃爾沃、捷豹路虎、凱迪拉克等),在以太網(wǎng)技術沒有成熟之前,也有部分OEM將其作為主干網(wǎng)應用。
相對于傳統(tǒng)的CAN測試,FlexRay測試有哪些特點呢?本期我們將主要介紹FlexRay相關協(xié)議,并分享FlexRay診斷刷寫測試實踐經(jīng)驗。
FlexRay簡介
FlexRay的出現(xiàn)始于二十世紀九十年代末,BMW和Daimler Chrysler開始著手進行FlexRay的研究,其初始目標是為了實現(xiàn)線控等應用。2000年成立了FlexRay聯(lián)盟,2005年發(fā)布FlexRay V2.1規(guī)范。2006年,FlexRay首次應用于量產(chǎn)車——用在BMW X5的懸架系統(tǒng)中。FlexRay總線具有以下技術特點:
? 時間確定性
FlexRay靜態(tài)段采用基于時間觸發(fā)的媒體訪問策略,保證了消息傳輸?shù)臅r間確定性。
? 容錯性
FlexRay支持單通道和雙通道的容錯通信,使得當一個通道出現(xiàn)故障無法進行通信時,另一個通道上的數(shù)據(jù)可以保證系統(tǒng)的正常運行。
? 靈活性
FlexRay通信周期分為靜態(tài)段和動態(tài)段,將基于時間觸發(fā)和基于事件觸發(fā)兩種媒體訪問方式相結(jié)合。
? 高帶寬(相對于CAN/CAN FD)
FlexRay支持兩個通道同時進行數(shù)據(jù)傳輸,每個通道的帶寬最高可達10Mbit/s。
另外,大家可以留意下近期新的以太網(wǎng)通信技術10Base-T1,其相關的通信技術與FlexRay有異曲同工之處。
FlexRay通信協(xié)議
FlexRay拓撲結(jié)構
FlexRay有兩個通道,即通道A和通道B,支持多種網(wǎng)絡拓撲結(jié)構,可配置成:
? 單通道或雙通道總線網(wǎng)絡
? 單通道或雙通道星型網(wǎng)絡
? 總線型和星型的混合型網(wǎng)絡
FlexRay幀格式
FlexRay數(shù)據(jù)幀由幀頭、有效負載數(shù)據(jù)段和幀尾三部分構成。
FlexRay媒體訪問控制(MAC)
FlexRay媒體訪問控制(MAC)是基于循環(huán)的通信周期來實現(xiàn)的,在一個通信周期中,FlexRay協(xié)議提供兩種MAC:
? 靜態(tài)段基于時分多址TDMA(time division multiple access)的訪問機制
? 動態(tài)段基于最小時隙的訪問機制,也稱靈活的時分多址FTDMA(flexible time division multiple access)
通信周期是 FlexRay 媒體訪問控制的基本要素,協(xié)議是通過時間分層的方法來定義通信周期的。
1.通信周期層
一個通信周期包括靜態(tài)段、動態(tài)段、符號窗口和網(wǎng)絡空閑時間四個部分。
? 靜態(tài)段采用TDMA機制進行數(shù)據(jù)傳輸
? 動態(tài)段采用FTDMA機制進行數(shù)據(jù)傳輸
? 符號窗口主要用來發(fā)送特征符號
? 網(wǎng)絡空閑時間在一個通信周期的末尾,主要用來進行時鐘同步
2.仲裁網(wǎng)格層
在仲裁網(wǎng)格層中,靜態(tài)段是由若干個等長的靜態(tài)時隙(static slot)組成的,動態(tài)段是由若干個等長的最小時隙(minislot)組成的。
3.最大時間節(jié)拍層
不同數(shù)目的最大時間節(jié)拍(macrotick)分別構成了靜態(tài)時隙、最小時隙、符號窗口及網(wǎng)絡空閑時間部分,所以整個通信周期是由若干最大時間節(jié)拍組成的。
4.最小時間節(jié)拍層
一個最大時間節(jié)拍是由若干個最小時間節(jié)拍(microtick)組成的。
FlexRay傳輸層協(xié)議
ISO 10681-2規(guī)定了FlexRay網(wǎng)絡層和傳輸層協(xié)議(本文不做區(qū)分,統(tǒng)稱傳輸層協(xié)議),相對于CAN傳輸層協(xié)議,FlexRay傳輸層協(xié)議具有如下不同點:
協(xié)議功能
? 支持無ACK應答和有ACK應答(帶消息重傳機制)的數(shù)據(jù)傳輸
? 支持已知消息長度和未知消息長度的數(shù)據(jù)傳輸
傳輸層C_PDU類型與PCI字節(jié)
圖5 C_PDU類型與PCI字節(jié)-
起始幀
分為無ACK的STFU和有ACK的STFA兩種,通過PCI第一個字節(jié)的低4位來區(qū)分兩者,FPL表示該幀傳輸?shù)挠行艉砷L度,ML表示數(shù)據(jù)傳輸?shù)目傞L度。 -
連續(xù)幀
一般情況下使用CF1,如果有消息重傳時,需要CF1和CF2之間進行切換。當發(fā)送buffer和接收buffer受限時,每個block的傳輸會以CF_EOB(End Of Block)結(jié)束,用于請求接收端給出下一個流控應答。
? 流控幀
PCI第一個字節(jié)的低四位用于區(qū)分流控狀態(tài):
o 3表示CTS(ContinueToSend)
o 4表示ACK_RET(Acknowledge/Retry)
o 5表示W(wǎng)T(Wait)
o 6表示ABT(Abort)
o 7表示OVFLW(Overflow)
? 尾幀
與CAN 傳輸層協(xié)議不同,FlexRay在分段傳輸時必須以LF結(jié)束。
接收節(jié)點的接收性能參數(shù)
? CAN: 傳輸層協(xié)議通過BlockSize (BS)和SeparationTime (STmin)來體現(xiàn),FlexRay是通過BufferSize (BfS)和Bandwidth Control (BC)來體現(xiàn)的
? BfS:表示接收節(jié)點當前可接收的最大buffer
? BC:包含兩個參數(shù),separation cycle exponent (SCexp)和maximum number of PDUs per cycle (MNPC)
傳輸層C_PDU與鏈路層L_PDU的映射
圖7 C_PDU格式 圖8 L_PDU格式
FlexRay診斷刷寫測試實踐
FFlexRay診斷相關的測試相對CAN/CAN FD而言,其測試規(guī)范的制定及測試腳本的開發(fā)相對更為復雜,如下為北匯信息基于Vector公司的CANoe及部分自定義函數(shù)在項目中實現(xiàn)了FlexRay診斷刷寫測試的示例。
FlexRay診斷報文示例
FlexRay診斷測試開發(fā)
采用CANoe的CAPL腳本及部分自定義函數(shù)實現(xiàn)了診斷通信、診斷服務和診斷刷寫的自動化測試。
圖10 FlexRay診斷通信部分測試項示例 圖11 FlexRay診斷服務部分測試項示例 圖12 FlexRay診斷刷寫部分測試項示例 圖13 FlexRay診斷測試報告示例總結(jié)
北匯信息多年來一直專注于汽車電子測試,在網(wǎng)絡測試、診斷測試以及功能測試等領域積累了豐富的實踐經(jīng)驗。目前,我們已實現(xiàn)了CAN、CAN FD、LIN、FlexRay和Ethernet的診斷及刷寫測試,歡迎感興趣的客戶朋友與我們探討交流~
部分圖片來源于Vector
參考文獻
[1] ISO 10681-2
[2] FlexRay Communications System Protocol Specification v3.0.1
|
更多相關資訊及業(yè)務介紹,歡迎訪問上海北匯信息官方網(wǎng)站:上海北匯信息科技有限公司
更多技術干貨,行業(yè)前沿動態(tài),請關注上海北匯信息官方公眾號:
聯(lián)系方式:
電話:021-34716271
郵箱:info@polelink.com
北匯信息成立于2010年,是一家技術驅(qū)動的創(chuàng)新型服務企業(yè)。北匯信息始終專注于汽車電子領域的新技術和新產(chǎn)品,為整車廠和零部件企業(yè)提供完整的研發(fā)、測試解決方案。從測試工具、專用測試設備、完整測試方案到實車測試服務,我們與我們的客戶一起努力,讓中國的汽車變得越來越安全、越來越舒適、越來越智能。
總結(jié)
以上是生活随笔為你收集整理的FlexRay测试开发实践之诊断刷写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arm linux驱动 知乎_学习lin
- 下一篇: ZOJ2604-DP