国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CAN總線時間同步協(xié)議測試的研究與分析

2023-02-08 08:43:26李志濤耿偉峰
汽車電器 2023年1期
關(guān)鍵詞:報文時鐘總線

李志濤,耿偉峰

(長城汽車股份有限公司技術(shù)中心,河北 保定 071000)

CAN(Controller Area Network)總線作為一種可靠的汽車計算機網(wǎng)絡(luò)總線,已經(jīng)在汽車上應(yīng)用多年[1]。CAN總線因其實時性好、抗干擾能力強、可靠性高等優(yōu)點成為當(dāng)今最成功的車載總線之一,被廣泛應(yīng)用在車載通信中。隨著汽車電子技術(shù)與車輛智能化的發(fā)展,對汽車上電器控制單元(ECU)的通信實時性要求日趨嚴格,特別是在某些高速或安全駕駛場景下,微小時間的偏差可能導(dǎo)致災(zāi)難性的后果。各個控制單元間要有一個一致的時鐘來提供相對準確、精度足夠的絕對時間值,并且將此時間同步到各個ECU,實現(xiàn)高精度和高可靠的時鐘同步,來滿足車輛功能實時性需求。因此,一種基于CAN總線的時間同步技術(shù)應(yīng)運而生。

1 CAN總線時間同步概述

時間同步是分布式系統(tǒng)的核心技術(shù)之一,其目的是維護一個全局一致的物理或邏輯時鐘,以使系統(tǒng)中的節(jié)點基于一個全局一致的時間進行信息交互。時間同步技術(shù)在以太網(wǎng)、CAN、Flexray總線上都有相應(yīng)的實現(xiàn),用于各節(jié)點精確獲取采樣時間。CAN系統(tǒng)時間同步可分為兩類,物理層時鐘同步和應(yīng)用層時鐘同步。物理層時鐘同步包含硬同步和重同步兩種同步方式,節(jié)點根據(jù)總線上檢測到的信號沿與自身位定時相比較,通過硬同步或重同步適當(dāng)調(diào)整位定時,保證數(shù)據(jù)幀的正確收發(fā);應(yīng)用層時鐘同步通過軟件、硬件或者軟硬件相結(jié)合調(diào)整各個節(jié)點時鐘,使得各節(jié)點擁有一個全局一致的邏輯時鐘,實現(xiàn)CAN網(wǎng)絡(luò)各節(jié)點協(xié)同工作以及節(jié)點間消息的實時調(diào)度。只有物理層硬同步和重同步準確無誤,應(yīng)用層時鐘同步才能被正確執(zhí)行。

AUTOSAR標(biāo)準[2]規(guī)定了CAN總線時鐘同步機制與相關(guān)需求。在CAN總線網(wǎng)絡(luò)中,ECU分為時間網(wǎng)關(guān)節(jié)點(TG)、主時鐘節(jié)點(TM)與從時鐘節(jié)點(TS),映射到網(wǎng)絡(luò)中的真實ECU時,網(wǎng)絡(luò)中的一個ECU可以是主時鐘節(jié)點,甚至是全局主時鐘節(jié)點,而對于網(wǎng)絡(luò)中的其它ECU需為從時鐘節(jié)點,網(wǎng)絡(luò)中的相關(guān)ECU在總線網(wǎng)絡(luò)中或子網(wǎng)中,組建成時間域和相應(yīng)的時間子域,見圖1。

圖1 時間域示例

主時鐘節(jié)點是一個實體,它是某一時間基的參考源,并將該時間基傳播到網(wǎng)絡(luò)中的從時鐘節(jié)點,作為從時鐘節(jié)點的時間基源。如果主時鐘節(jié)點也是全局時間基的所有者,網(wǎng)絡(luò)中其它節(jié)點的時間基都從該節(jié)點派生,那么該主時鐘節(jié)點為全局時間主時鐘節(jié)點。通常車載網(wǎng)關(guān)節(jié)點作為全局時基的所有者,由一個時間主端口組成,該端口連接到一個或多個時鐘從端口,從而構(gòu)建成一個或多個時間子域。

CAN總線時間同步,采用主時鐘節(jié)點發(fā)送特定的同步報文,從時鐘節(jié)點作為同步報文接收節(jié)點,對本地時鐘進行調(diào)節(jié),以獲得更加精準的時間信息,從而實現(xiàn)與主時鐘節(jié)點的同步,以解決因各ECU節(jié)點的硬件時鐘信號偏差、CAN總線傳輸延時(如協(xié)議仲裁)以及各ECU節(jié)點內(nèi)的軟件處理等原因?qū)е碌臅r間延遲。

2 CAN時間同步機制

基于CAN總線的時間同步機制,主時鐘節(jié)點(TM)以廣播的形式將時間信息傳輸?shù)礁鲝臅r鐘節(jié)點(TS),還可通過時間網(wǎng)關(guān)(TW)將時間同步到其它子網(wǎng),同步通信機制主要分為兩步。第1步,主時鐘節(jié)點(TM)發(fā)送SYNC報文;第2步,主時鐘節(jié)點(TM)發(fā)送FUP報文。CAN時間同步機制,見圖2。

圖2 CAN時間同步機制

TM節(jié)點在t0r時刻開始發(fā)送SYNC報文,t1r時刻發(fā)出SYNC報文,SYNC報文中攜帶的時間為SYNC開始發(fā)送的時刻t0r,并且為秒時間s(t0r);TS節(jié)點接收SYNC報文,并通過接收確認機制獲取完成SYNC報文接收的時間戳(t2r);TM節(jié)點在發(fā)送完SYNC報文后,再次發(fā)送FUP報文,該報文中攜帶時間信息t4r,t4r為上一個SYNC報文開始發(fā)送與實際確認發(fā)送完成之間的時間。TS節(jié)點在接收到FUP報文后,根據(jù)接收SYNC報文后獲取的t2r時間信息,計算t3r時刻的本地的時間同步值,即本地的相對時間為t3r-t2r+s(t0r)+t4r=t3rt2r+t1r。主時鐘節(jié)點分配同步時基,從時鐘節(jié)點接收同步時基,實現(xiàn)網(wǎng)絡(luò)從時鐘節(jié)點與主時鐘節(jié)點之間的時間同步。

在AUTOSAR軟件協(xié)議棧中[3],實現(xiàn)CAN時間同步,需配置的模塊主要涉及3個,分別為StbM、CanIf、CanTSyn。其中StbM用于同步各軟件模塊,獲取和設(shè)置當(dāng)前時間值,提供絕對時間值,涉及到Timebase、時鐘源等配置信息;對于CanTSyn模塊而言,需配置Time Domain與參考時鐘源;在CanIf模塊中,用于接收和發(fā)送報文,需要將報文設(shè)置為時間同步報文等。

2.1 主時鐘節(jié)點時間同步步驟

1)SYNC報文發(fā)送。通過StbM_GetCurrentTime()獲取同步基準時間t0,并將t0秒時間部分寫入SYNC報文中的SyncTimeSec;通過StbM_GetCurrentTimeRaw()獲取傳輸延遲時間測量的原始時間t0r。

2)SYNC報文TX確認。計算FUP報文中的t4為t4r=[t1r-s(t0r)],其中t0r ns為t0的納秒部分。

3)FUP報文的發(fā)送。將t4(t4>=1s)的時間的秒部分寫入OVS;將t4的納秒部分寫入SyncTimeNSec。

經(jīng)過以上這些步驟,計算出TM節(jié)點的同步時基為(s(t0r)+t4r)。

2.2 從時鐘節(jié)點時間同步步驟

1)通過SYNC報文接收確認機制,SYNC報文傳遞同步時基的t0部分,并通過StbM_GetCurrentTimeRaw()獲取本地時間戳,定義為t2r。

2)通過FUP報文接收,F(xiàn)UP報文傳遞同步時基的t4部分(t4=OVS+SyncTimeNSec),并通過StbM_GetCurrentTimeDiff()獲取函數(shù)調(diào)用期間內(nèi)部時間戳t3r和之前接收到t2r的時間戳之間的時間差,即t3diff=(t3r-t2r)。

經(jīng)過以上步驟,TS節(jié)點計算全局時基來更新本地時基為:GlobalTimeBase=(t3r-t2r)+s(t0r)+t4r=t3r-t2r+t1r

通過以上TM與TS節(jié)點的時間同步步驟,各個TS節(jié)點基于一個一致的主時鐘節(jié)點(TM節(jié)點),來提供絕對時間值,并且將此時間同步到時間域內(nèi)的各個網(wǎng)絡(luò)節(jié)點。

3 時間同步幀解析

CAN時間同步所應(yīng)用的同步幀,包含SYNC報文幀和FUP報文幀。SYNC報文和FUP報文共用一個CAN ID,分時發(fā)送,先發(fā)送SYNC報文,再發(fā)送FUP報文。同步報文幀中的CRC校驗是可配置的,可配置使用TM節(jié)點發(fā)送的Time Base值,無需應(yīng)用CRC校驗,同步報文幀格式見圖3。

圖3 SYNC/FUP報文幀

3.1 SYNC報文幀

SYNC報文幀的Byte0表示是否應(yīng)用CRC校驗,其中Byte0=0x10表示未應(yīng)用,Byte0=0x20表示應(yīng)用;若Byte0=0x20,Byte1用于存儲CRC的值,Byte0=0x10時,Byte1的默認值為0;Byte2的高四位表示時間同步域,低四位為Sequence Counter,該序列計數(shù)器用于檢測錯誤的協(xié)議序列和數(shù)據(jù);Byte3為用戶自定義數(shù)據(jù),默認值為0;Byte4-Byte7為同步時間,長度為32bits,單位為秒。

3.2 FUP報文幀

FUP報文幀的Byte0表示是否應(yīng)用CRC校驗,其中Byte0=0x18表示未應(yīng)用,Byte0=0x28表示應(yīng)用;若Byte0=0x28,Byte1用于存儲CRC的值,Byte0=0x18時,Byte1的默認值為0;同樣Byte2的高四位表示時間同步域,低四位為Sequence Counter,該序列計數(shù)器用于檢測錯誤的協(xié)議序列和數(shù)據(jù);Byte3的高5位為保留位,默認值為0,Byte3字節(jié)的bit2位為SGW位,用于表示時間同步狀態(tài),其中數(shù)值0表示為Sync-ToGTM,數(shù)值1表示為SyncToSubDomain,Byte3字節(jié)的bit1與bit0位為OVS(Overflow of seconds)位,表示時間同步溢出時間;Byte4-Byte7字節(jié)中的高2位為數(shù)值0,低30位表示同步時間,單位為納秒。

4 時間同步協(xié)議測試

在汽車電子電氣領(lǐng)域,典型的V模型在OEM電子電器產(chǎn)品開發(fā)中廣泛應(yīng)用,該模型從左到右,描述了電子電器產(chǎn)品基本的開發(fā)過程和測試行為[4]。參照V模型,總線時間同步協(xié)議測試可分為ECU級測試、集成級測試。ECU級測試,用于ECU協(xié)議一致性測試,集成級測試包含系統(tǒng)臺架與實車環(huán)境下的測試,用于總線系統(tǒng)時間同步協(xié)議正確性及應(yīng)用穩(wěn)定性的驗證。

4.1 測試內(nèi)容

基于Vector測試工具鏈,通過CANoe軟、硬件開發(fā)測試系統(tǒng),集成相應(yīng)的硬件工具,完成測試環(huán)境的搭建。依據(jù)被測系統(tǒng)的總線拓撲及時間同步域,測試工具連接至相應(yīng)的時間域鏈路中,分別監(jiān)測TG節(jié)點與TM節(jié)點,TM節(jié)點與各TS節(jié)點之間的通信數(shù)據(jù),實現(xiàn)整個時間域與子時間域數(shù)據(jù)的采集、測試等。測試環(huán)境連接示意圖,見圖4。

總線集成測試,對時間同步系統(tǒng)基本需求實現(xiàn)的正確性、準確性、合理性進行測試,并結(jié)合不同的車輛運行場景,對系統(tǒng)在不同場景下的運行狀態(tài)進行檢測,結(jié)合用戶典型應(yīng)用場景,進行誤用和濫用方面的測試,同時考慮主機廠自定義及一些特殊需求,開展相應(yīng)測試。主要涉及的測試內(nèi)容為時間同步序列的測試、同步報文格式的測試、時間同步算法測試、魯棒性測試、故障注入、車輛電源模式切換、發(fā)動機啟動、用戶功能應(yīng)用觸發(fā)場景下的測試等。

時間同步協(xié)議測試,不僅需開展ECU級協(xié)議一致性的測試、系統(tǒng)層級協(xié)議需求實現(xiàn)的正確性測試,更需基于整個時間域網(wǎng)絡(luò)、功能應(yīng)用、車輛場景等維度,評估系統(tǒng)的性能指標(biāo)的符合性、驗證時間域系統(tǒng)通信的穩(wěn)定性和可靠性。

4.2 測試示例

本示例為同步報文發(fā)送序列及數(shù)據(jù)正確性的測試,驗證CAN總線時間同步系統(tǒng)中TM節(jié)點所發(fā)送的SYNC/FUP報文的序列、周期、間隔、數(shù)據(jù)字段等是否滿足設(shè)計需求。測試前,參照圖4搭建測試環(huán)境,連接測試設(shè)備。

圖4 測試環(huán)境連接示意圖

運行CANoe工具,開始進行數(shù)據(jù)采集。系統(tǒng)上電,CAN總線系統(tǒng)被激活。系統(tǒng)中的TM節(jié)點開始發(fā)送同步報文,分別為SYNC報文與FUP報文,見圖5。

圖5 總線同步報文

查看并分析所采集的數(shù)據(jù),SYNC報文和FUP報文共用一個CAN ID,分時發(fā)送,先發(fā)送SYNC報文,間隔50ms再發(fā)送FUP報文,然后再進行下一次同步過程。SYNC報文中的Payload Type=0x10、Payload SGW=0、Payload SC=6、Payload CRC=0;FUP報文中的Payload Type=0x18、Payload SGW=0、Payload SC=6、Payload CRC=0。經(jīng)分析同步報文發(fā)送序列、周期、時間間隔、Payload字段數(shù)值符合設(shè)計需求。同樣按以上測試步驟及要求,進行各子時間域同步報文發(fā)送序列、周期、數(shù)據(jù)字段格式正確性的驗證。

5 結(jié)束語

隨著汽車智能化發(fā)展、汽車功能的增加,汽車上的電子控制單元也越來越多[5],ECU數(shù)量的爆發(fā)式增長,對車載通信的速率、實時性、可靠性等方面提出了更高的要求,尤其是對于自動駕駛的感知和決策輸入而言,通常需要攝像頭、毫米波雷達、超聲波雷達、激光雷達等傳感器具備精確的數(shù)據(jù)采集能力,防止車輛決策規(guī)劃出錯誤的動作。因此,總線時間同步技術(shù)應(yīng)用的必要性至關(guān)重要,本文對CAN總線時間同步機制與測試進行了研究分析,為進一步深入開展相關(guān)測試工作奠定了基礎(chǔ)。

猜你喜歡
報文時鐘總線
基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
別樣的“時鐘”
古代的時鐘
CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
淺析反駁類報文要點
中國外匯(2019年11期)2019-08-27 02:06:30
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
有趣的時鐘
ATS與列車通信報文分析
時鐘會開“花”
栾城县| 寿宁县| 宜君县| 桃园县| 平泉县| 会东县| 长岛县| 林周县| 阳泉市| 太康县| 普安县| 山丹县| 文水县| 来凤县| 安龙县| 太原市| 阿城市| 沾化县| 洪湖市| 雷波县| 甘泉县| 资源县| 夏邑县| 太谷县| 遵化市| 邵东县| 虹口区| 砚山县| 抚远县| 临泽县| 嘉定区| 北辰区| 济源市| 清原| 偃师市| 阳高县| 襄城县| 齐河县| 安图县| 通化市| 杭州市|