0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Autosar時(shí)間同步實(shí)現(xiàn)原理介紹

jf_EksNQtU6 ? 來(lái)源: 汽車(chē)與基礎(chǔ)軟件 ? 2023-11-27 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

在當(dāng)今的汽車(chē)電子控制器中,時(shí)間同步成為了一個(gè)非常重要的需求。這主要是因?yàn)槠?chē)中各個(gè)ECU(電子控制單元)之間需要進(jìn)行高效且可靠的信息交換,以實(shí)現(xiàn)諸如自動(dòng)駕駛、智能交通控制、車(chē)輛遠(yuǎn)程信息處理等功能。而要實(shí)現(xiàn)這些功能,就需要一個(gè)統(tǒng)一的時(shí)間基準(zhǔn),以確保各個(gè)ECU能夠協(xié)同工作。

PTP(Precision Time Protocol)和gPTP(Generalized Precision Time Protocol)就是為此目的而設(shè)計(jì)的。

PTP是一種用于計(jì)算網(wǎng)絡(luò)中時(shí)間同步的協(xié)議,它最初是為工業(yè)自動(dòng)化應(yīng)用而設(shè)計(jì)的。PTP的主要特點(diǎn)是其基于IEEE 1588標(biāo)準(zhǔn)的同步機(jī)制,這種機(jī)制可以精確地測(cè)量網(wǎng)絡(luò)中的時(shí)間差異,并使用這種信息來(lái)同步網(wǎng)絡(luò)中的所有設(shè)備。在汽車(chē)電子域控制器中,PTP可以用于將時(shí)間信息從一個(gè)ECU傳遞到另一個(gè)ECU,從而實(shí)現(xiàn)時(shí)間同步。

gPTP則是PTP的一個(gè)擴(kuò)展版本,它被設(shè)計(jì)用于滿足汽車(chē)工業(yè)的特定需求。gPTP的主要特點(diǎn)是其能夠適應(yīng)汽車(chē)環(huán)境中的各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),包括CAN、LIN、MOST、Ethernet等。此外,gPTP還具有更好的魯棒性和可靠性,能夠處理網(wǎng)絡(luò)中的故障和延遲,從而確保時(shí)間同步的準(zhǔn)確性。

總的來(lái)說(shuō),汽車(chē)電子域控制器需要時(shí)間同步是因?yàn)樾枰鱾€(gè)ECU協(xié)同工作以實(shí)現(xiàn)復(fù)雜的功能。而PTP和gPTP則是為了滿足這一需求而設(shè)計(jì)的協(xié)議。通過(guò)使用這些協(xié)議,可以確保汽車(chē)中的各個(gè)ECU具有精確且一致的時(shí)間基準(zhǔn),從而實(shí)現(xiàn)高效且可靠的信息交換。

1. 協(xié)議介紹

1.1 PTP簡(jiǎn)介

PTP(Precision Time Protocol,精確時(shí)間協(xié)議)是一種時(shí)間同步的協(xié)議,可用于設(shè)備之間的高精度時(shí)間同步和頻率同步。PTP的時(shí)間同步精度為亞微秒級(jí)。

1.1.1 PTP的基本概念

PTP協(xié)議標(biāo)準(zhǔn)即PTP profile。不同類型的PTP協(xié)議標(biāo)準(zhǔn)可實(shí)現(xiàn)不同的PTP功能。PTP協(xié)議標(biāo)準(zhǔn)包括以下類型:

ef8cb54c-8c41-11ee-939d-92fbcf53809c.png

· IEEE 1588 version 2:簡(jiǎn)稱1588v2。IEEE 1588規(guī)范了網(wǎng)絡(luò)中用于高精度時(shí)鐘同步的原理和報(bào)文交互處理規(guī)范,最初是應(yīng)用于工業(yè)自動(dòng)化,現(xiàn)主要用于橋接局域網(wǎng)。IEEE 1588對(duì)網(wǎng)絡(luò)環(huán)境沒(méi)有做出強(qiáng)制要求,適用性比較廣,可以根據(jù)不同的應(yīng)用環(huán)境對(duì)該協(xié)議標(biāo)準(zhǔn)進(jìn)行定制,增強(qiáng)或者裁剪特定的功能。最新版本為V2版本,即1588v2。

· IEEE 802.1AS:簡(jiǎn)稱802.1AS。802.1AS是基于IEEE 1588產(chǎn)生的一個(gè)協(xié)議標(biāo)準(zhǔn),對(duì)IEEE 1588在橋接局域網(wǎng)中的實(shí)現(xiàn)進(jìn)行了細(xì)化。802.1AS支持的BMC(Best Master Clock,最佳主時(shí)鐘)算法和IEEE 1588略有不同,參考了MSTP(Multiple Spanning Tree Protocol,多生成樹(shù)協(xié)議)的實(shí)現(xiàn)方式。802.1AS支持的物理介質(zhì)類型只有點(diǎn)對(duì)點(diǎn)全雙工以太網(wǎng)鏈路、IEEE 802.11鏈路和IEEE 802.3 EPON鏈路。

· SMPTE ST 2059-2:簡(jiǎn)稱ST2059-2。ST2059-2是基于IEEE 1588產(chǎn)生的一個(gè)協(xié)議標(biāo)準(zhǔn),本協(xié)議自定義了一些參數(shù),參數(shù)的默認(rèn)值,參數(shù)的允許范圍的描述。ST2059-2是專門(mén)用于專業(yè)廣播環(huán)境中音頻、視頻設(shè)備的時(shí)間同步的精準(zhǔn)時(shí)間協(xié)議。

· AES67-2015:AES67-2015是基于IEEE 1588產(chǎn)生的一個(gè)協(xié)議標(biāo)準(zhǔn),本協(xié)議自定義了一些參數(shù),參數(shù)的默認(rèn)值,參數(shù)的允許范圍的描述。AES67-2015是專門(mén)用于專業(yè)廣播、音樂(lè)制作和影視后期制作設(shè)備的時(shí)間同步的精準(zhǔn)時(shí)間協(xié)議。

1.2 gPTP簡(jiǎn)介

gPTP協(xié)議是Precision Time Protocol的簡(jiǎn)稱,是一種用于精確時(shí)間同步的協(xié)議。它是IEEE 802.1AS標(biāo)準(zhǔn)的一部分,主要應(yīng)用在局域網(wǎng)網(wǎng)絡(luò)中,可以實(shí)現(xiàn)亞微秒級(jí)的時(shí)間同步。

1.2.1 PTP的基本概念

gPTP協(xié)議通過(guò)使用硬件支持的時(shí)間戳和測(cè)量網(wǎng)線上的傳輸延時(shí)來(lái)達(dá)到精確的時(shí)間同步。在gPTP網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都有一個(gè)本地時(shí)鐘,用于生成時(shí)間戳。當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送一個(gè)數(shù)據(jù)包時(shí),它會(huì)在數(shù)據(jù)包中添加一個(gè)時(shí)間戳,然后接收節(jié)點(diǎn)在接收到數(shù)據(jù)包后,會(huì)測(cè)量從發(fā)送節(jié)點(diǎn)到接收節(jié)點(diǎn)的傳輸時(shí)間,并計(jì)算出偏移量。這個(gè)偏移量會(huì)被用來(lái)調(diào)整接收節(jié)點(diǎn)的本地時(shí)鐘,以確保它與發(fā)送節(jié)點(diǎn)的時(shí)鐘同步。

efad3254-8c41-11ee-939d-92fbcf53809c.png

gPTP協(xié)議具有以下特點(diǎn):

1.基于硬件時(shí)間戳:gPTP協(xié)議使用硬件時(shí)間戳來(lái)記錄數(shù)據(jù)包的發(fā)送和接收時(shí)間,這樣可以避免軟件時(shí)間戳引入的誤差和不確定性。

2.測(cè)量傳輸時(shí)間:gPTP協(xié)議可以測(cè)量數(shù)據(jù)包從發(fā)送節(jié)點(diǎn)到接收節(jié)點(diǎn)的傳輸時(shí)間,從而計(jì)算出偏移量并調(diào)整接收節(jié)點(diǎn)的本地時(shí)鐘。

3.多跳同步:gPTP協(xié)議可以支持多跳同步,即可以通過(guò)中間節(jié)點(diǎn)的傳遞來(lái)實(shí)現(xiàn)更遠(yuǎn)距離的節(jié)點(diǎn)之間的同步。

4.適應(yīng)網(wǎng)絡(luò)拓?fù)洌篻PTP協(xié)議可以適應(yīng)不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),如星型、樹(shù)型、環(huán)型等。

5.可靠性和魯棒性:gPTP協(xié)議具有可靠性和魯棒性,可以在網(wǎng)絡(luò)中出現(xiàn)故障或延遲時(shí)仍然保持同步精度。

總之,gPTP協(xié)議是一種高精度的時(shí)間同步協(xié)議,適用于需要精確時(shí)間同步的局域網(wǎng)網(wǎng)絡(luò)應(yīng)用場(chǎng)景。

1.3 PTP 與 gPTP 的區(qū)別

? gPTP假設(shè)PTP實(shí)例之間的所有通信僅使用IEEE 802 MAC pdu和尋址完成,而IEEE Std 1588-2019支持各種第2層和第3-4層通信方法。

? gPTP指定了一個(gè)獨(dú)立于媒體的子層,它簡(jiǎn)化了具有完全不同的媒體訪問(wèn)協(xié)議的多種不同網(wǎng)絡(luò)技術(shù)在單個(gè)定時(shí)域中的集成。gPTP為每種媒體指定一個(gè)與媒體相關(guān)的子層。在PTP實(shí)例之間交換的信息被一般化,以支持不同的數(shù)據(jù)包格式和適合特定網(wǎng)絡(luò)技術(shù)的管理方案。另一方面,IEEE Std 1588-2019引入了一種基于媒體獨(dú)立和媒體依賴子層的新架構(gòu)(參見(jiàn)IEEE Std 1588-2019的6.5.2、圖5和圖6);然而,這種體系結(jié)構(gòu)是可選的。IEEE標(biāo)準(zhǔn)1588-2008 [B10]的體系結(jié)構(gòu)不是基于媒體獨(dú)立和媒體依賴層,它被保留在互聯(lián)網(wǎng)協(xié)議(IP)版本4、IP版本6、以太網(wǎng)局域網(wǎng)和幾個(gè)工業(yè)自動(dòng)化控制協(xié)議中。IEEE Std 1588- 2019的意圖是,基于媒體獨(dú)立層和媒體依賴層的新架構(gòu)將用于使用gPTP規(guī)范的IEEE 802.11網(wǎng)絡(luò)、IEEE 802.3 EPON和CSN,并且如果使用了本機(jī)定時(shí)機(jī)制,則必須將該架構(gòu)用于定義本機(jī)定時(shí)機(jī)制的傳輸。

?在gPTP中只有兩種類型的PTP實(shí)例:PTP結(jié)束實(shí)例和PTP中繼實(shí)例,而IEEE Std 1588-2019有普通時(shí)鐘,邊界時(shí)鐘,端到端透明時(shí)鐘和P2P透明時(shí)鐘。PTP結(jié)束實(shí)例對(duì)應(yīng)于IEEE 1588普通時(shí)鐘,而PTP中繼實(shí)例是IEEE 1588邊界時(shí)鐘的一種,其操作定義非常嚴(yán)格,以至于具有以太網(wǎng)端口的PTP中繼實(shí)例可以在數(shù)學(xué)上等同于如何執(zhí)行同步的P2P透明時(shí)鐘,如11.1.3所示。此外,PTP中繼實(shí)例可以在一種模式下運(yùn)行(即,變量syncLocked為T(mén)RUE的模式;參見(jiàn)10.2.5.15),其中PTP中繼實(shí)例在發(fā)送時(shí)間同步消息方面相當(dāng)于P2P透明時(shí)鐘。時(shí)間感知系統(tǒng)測(cè)量鏈路延遲和停留時(shí)間,并在校正場(chǎng)中進(jìn)行通信。綜上所述,PTP中繼實(shí)例符合IEEE Std 1588-2019中對(duì)邊界時(shí)鐘的規(guī)范,但PTP中繼實(shí)例不符合IEEE Std 1588-2019中對(duì)P2P透明時(shí)鐘的完整規(guī)范,因?yàn)?

–當(dāng)syncLocked為FALSE時(shí),PTP中繼實(shí)例根據(jù)邊界時(shí)鐘的規(guī)格發(fā)送同步,并且

–PTP中繼實(shí)例調(diào)用BMCA并具有PTP端口狀態(tài)。

? PTP實(shí)例只與其他PTP實(shí)例直接通信gPTP信息。也就是說(shuō),一個(gè)gPTP域只由PTP實(shí)例組成。非ptp中繼實(shí)例不能用于中繼gPTP信息。在IEEE Std 1588-2019中,可以在IEEE 1588域中使用非IEEE-1588感知繼電器,盡管這會(huì)減慢時(shí)間收斂并引入額外的抖動(dòng)和抖動(dòng),必須由任何IEEE 1588時(shí)鐘濾波。

?e)對(duì)于全雙工以太網(wǎng)鏈路,gPTP要求使用點(diǎn)對(duì)點(diǎn)延遲機(jī)制,而IEEE Std 1588-2019也允許使用端到端延遲測(cè)量。f)對(duì)于全雙工以太網(wǎng)鏈路,gPTP需要使用兩步處理(使用Follow_Up和Pdelay_Resp_Follow_Up消息來(lái)通信時(shí)間戳),可選的一步處理模式是在同步中嵌入時(shí)間戳,因?yàn)樗鼈冋趥鬏?gPTP沒(méi)有指定對(duì)對(duì)等延遲消息的一步處理)。IEEE Std 1588-2019允許根據(jù)特定配置文件需要兩步或一步處理(同步和對(duì)等延遲消息)。

?一個(gè)gPTP域中所有的PTP實(shí)例在邏輯上是同步的;換句話說(shuō),它們都使用相同的頻率來(lái)測(cè)量時(shí)間間隔。這是通過(guò)7.3.3中描述的過(guò)程完成的,并且是強(qiáng)制性的。IEEE Std 1588-2019中的同步是可選的。gPTP使用的同步方法在IEEE Std 1588-2019中作為一種選項(xiàng)得到支持,但使用的是IEEE Std 1588-2019中標(biāo)準(zhǔn)化的TLV(此功能是IEEE Std 1588-2019的新功能),而gPTP使用11.4.4.3中指定的ORGANIZATION_EXTENSION TLV。

?)最后,本標(biāo)準(zhǔn)包括時(shí)間感知應(yīng)用的正式接口定義,包括原語(yǔ)(見(jiàn)第9條)。IEEE標(biāo)準(zhǔn)1588-2019描述外部接口,但沒(méi)有描述特定的接口原語(yǔ)。

1.4 時(shí)間同步常用角色解釋

?OC(Ordinary Clock,普通時(shí)鐘):該時(shí)鐘節(jié)點(diǎn)在同一個(gè)PTP域內(nèi)只有一個(gè)PTP接口參與時(shí)間同步,并通過(guò)該接口從上游時(shí)鐘節(jié)點(diǎn)同步時(shí)間。此外,當(dāng)時(shí)鐘節(jié)點(diǎn)作為時(shí)鐘源時(shí),可以只通過(guò)一個(gè)PTP接口向下游時(shí)鐘節(jié)點(diǎn)發(fā)布時(shí)間。

?BC(Boundary Clock,邊界時(shí)鐘):該時(shí)鐘節(jié)點(diǎn)在同一個(gè)PTP域內(nèi)擁有多個(gè)PTP接口參與時(shí)間同步,它通過(guò)其中一個(gè)接口從上游時(shí)鐘節(jié)點(diǎn)同步時(shí)間,并通過(guò)其余接口向下游時(shí)鐘節(jié)點(diǎn)發(fā)布時(shí)間。此外,當(dāng)時(shí)鐘節(jié)點(diǎn)作為時(shí)鐘源時(shí),可以通過(guò)多個(gè)PTP接口向下游時(shí)鐘節(jié)點(diǎn)發(fā)布時(shí)間,如圖1-1中的BC 1。

efc5abe0-8c41-11ee-939d-92fbcf53809c.png

?TC(Transparent Clock,透明時(shí)鐘):TC有多個(gè)PTP接口,但它只在這些接口間轉(zhuǎn)發(fā)PTP協(xié)議報(bào)文并對(duì)其進(jìn)行轉(zhuǎn)發(fā)延時(shí)校正,而不會(huì)通過(guò)任何一個(gè)接口同步時(shí)間。與BC/OC相比,BC/OC需要與其他時(shí)鐘節(jié)點(diǎn)保持時(shí)間同步,而TC則不與其他時(shí)鐘節(jié)點(diǎn)保持時(shí)間同步。TC包括以下兩種類型:

?E2ETC(End-to-End Transparent Clock,端到端透明時(shí)鐘):直接轉(zhuǎn)發(fā)網(wǎng)絡(luò)中所有PTP協(xié)議報(bào)文,參與計(jì)算整條鏈路的延時(shí)。

?P2PTC(Peer-to-Peer Transparent Clock,對(duì)等透明時(shí)鐘):只直接轉(zhuǎn)發(fā)Sync報(bào)文、Follow_Up報(bào)文和Announce報(bào)文,而終結(jié)其他PTP協(xié)議報(bào)文,參與計(jì)算整條鏈路上每一段鏈路的延時(shí)。

1.5 時(shí)間同步常用關(guān)系解釋

主從關(guān)系(Master-Slave)是相對(duì)而言的,對(duì)于相互同步的一對(duì)時(shí)鐘節(jié)點(diǎn)來(lái)說(shuō),存在如下主從關(guān)系:

efde196e-8c41-11ee-939d-92fbcf53809c.png

?主/從節(jié)點(diǎn):發(fā)布同步時(shí)間的時(shí)鐘節(jié)點(diǎn)稱為主節(jié)點(diǎn)(Master Node),而接收同步時(shí)間的時(shí)鐘節(jié)點(diǎn)則稱為從節(jié)點(diǎn)(Slave Node)。

?主/從時(shí)鐘:主節(jié)點(diǎn)上的時(shí)鐘稱為主時(shí)鐘(Master Clock),而從節(jié)點(diǎn)上的時(shí)鐘則稱為從時(shí)鐘(Slave Clock)。

?主/從接口:時(shí)鐘節(jié)點(diǎn)上發(fā)布同步時(shí)間的PTP接口稱為主接口(Master Port),而接收同步時(shí)間的PTP接口則稱為從接口(Slave Port),主接口和從接口均可存在于BC或OC上。

?此外,還存在一種既不發(fā)布也不接收同步時(shí)間的PTP接口,稱為被動(dòng)接口(Passive Port)。

2. Autosar 時(shí)間同步

2.1 時(shí)間同步框架

在autosar 架構(gòu)中,時(shí)間同步的對(duì)上層使用接口,時(shí)間同步協(xié)議,底層通訊介質(zhì)都是相互獨(dú)立解耦的存在。

基于以太網(wǎng)的 gPTP 協(xié)議涉及到的模塊有以下幾個(gè)。

eff23232-8c41-11ee-939d-92fbcf53809c.png ? ?

2.1.1 STBM(Software Timer Bus

STBM(Software Timer Bus)是AUTOSAR軟件定時(shí)器總線模塊,它提供了一個(gè)用于管理軟件定時(shí)器的統(tǒng)一接口,并支持在分布式系統(tǒng)中對(duì)多個(gè)軟件組件進(jìn)行時(shí)間同步。STBM模塊通過(guò)定義一個(gè)時(shí)間戳接口來(lái)傳遞定時(shí)器事件,并使用一個(gè)時(shí)間同步狀態(tài)接口來(lái)報(bào)告時(shí)間同步的狀態(tài)。

2.1.2 ETHTsync

ETHTsync是AUTOSAR中用于以太網(wǎng)時(shí)間同步的模塊。它通過(guò)以太網(wǎng)連接接收來(lái)自其他節(jié)點(diǎn)的時(shí)鐘同步信號(hào),并使用該信號(hào)來(lái)同步自己的時(shí)間。ETHTsync模塊還提供了一個(gè)接口,以便其他軟件組件可以通過(guò)調(diào)用其接口來(lái)獲取當(dāng)前的時(shí)間戳。

2.1.3 ETHIF

ETHIF是AUTOSAR中用于以太網(wǎng)接口的模塊。它提供了一個(gè)用于發(fā)送和接收以太網(wǎng)數(shù)據(jù)包的接口,以便在車(chē)輛網(wǎng)絡(luò)中實(shí)現(xiàn)數(shù)據(jù)通信。ETHIF模塊支持各種以太網(wǎng)協(xié)議,包括TCP/IP、UDP等。

2.1.4 MCAL(Microcontroller Abstraction Layer)

MCAL(Microcontroller Abstraction Layer)是AUTOSAR微控制器抽象層模塊。它位于AUTOSAR BSW(Basic Software)的最底層,為上層軟件提供了一個(gè)統(tǒng)一的接口來(lái)訪問(wèn)微控制器和外設(shè)芯片。MCAL主要包括微控制器驅(qū)動(dòng)、存儲(chǔ)器驅(qū)動(dòng)、通信驅(qū)動(dòng)和輸入輸出驅(qū)動(dòng)四個(gè)部分,各部分又由具體的與微控制器硬件相對(duì)應(yīng)的驅(qū)動(dòng)模塊組成。此外,MCAL還包含加密驅(qū)動(dòng)和無(wú)線通訊驅(qū)動(dòng)等其他部分。

2.2 實(shí)現(xiàn)原理介紹

2.2.1 StbM

對(duì)于對(duì)時(shí)本身來(lái)說(shuō),最重要的有兩個(gè)事情。

?StbM 與 下層的協(xié)議時(shí)間信息

f00c7a98-8c41-11ee-939d-92fbcf53809c.png

?StbM 為 上層應(yīng)用提供時(shí)間信息

f02283e2-8c41-11ee-939d-92fbcf53809c.png

所以從StbM 的角度,無(wú)所謂時(shí)間來(lái)源,也可以說(shuō)無(wú)所謂時(shí)間的對(duì)與錯(cuò)。只需要知道時(shí)間已經(jīng)被“同步”,可以獲取到時(shí)間信息。當(dāng)然也會(huì)提供一些set時(shí)間的接口,這本質(zhì)還是讓 時(shí)間對(duì)其。

2.2.1.1 stbm main

在main函數(shù)中,主要是同步系統(tǒng)時(shí)間宇stbm的時(shí)間信息。下面有一個(gè)全局變量的維護(hù)作為基礎(chǔ)。

StbM_TimeStampType StbM_GlobalTimeTupleArray_ast[STBM_CFG_NUM_OF_TIMEBASES];

代碼邏輯如下

f03dd566-8c41-11ee-939d-92fbcf53809c.png

我們把重點(diǎn)放在下面的gPTP 協(xié)議本身

2.2.2 TsynOverETH

在 gPTP 中 main函數(shù)主要維護(hù)了

?同步報(bào)文

?發(fā)送消除誤差報(bào)文

?響應(yīng)消除誤差報(bào)文

f053be3a-8c41-11ee-939d-92fbcf53809c.png

主要體現(xiàn)在上面三個(gè)狀態(tài)機(jī)。在這三個(gè)狀態(tài)機(jī)里面用來(lái)

發(fā)送 sync, follow up 報(bào)文

發(fā)送 peer_delay_req 報(bào)文

響應(yīng) peer_delay_req 報(bào)文

具體的實(shí)現(xiàn)來(lái)自于下面幾個(gè)子集狀態(tài)機(jī)。

需要說(shuō)明一下。sync 和 follow up 報(bào)文 是master 發(fā)送給slaver 用來(lái)時(shí)間同步用。

peer delay 是消除傳輸誤差的作用。

2.2.2.1 sync, follow up 報(bào)文

master 主動(dòng)發(fā)送sync 和 follow up 報(bào)文來(lái)對(duì)slaver 進(jìn)行時(shí)間信息傳入。這個(gè)是向的過(guò)程。

f06133d0-8c41-11ee-939d-92fbcf53809c.png

2.2.2.1.1 代碼sync, follow up 報(bào)文

f077b18c-8c41-11ee-939d-92fbcf53809c.png

通過(guò)函數(shù)

static void EthTSyn_GetHwTime( uint8              CtrlrIdx_u8,                     
                               uint8              BufIdx_u8,                     
                               uint8             *MsgType_pu8,                     
                               Eth_TimeStampType *TimeStampPtrCurrent_pst,                     
                               uint8              IdxDomain_u8,                     
                               uint8              IdxGlbTim_u8 )

獲取硬件時(shí)間戳,經(jīng)過(guò)Follow Up 報(bào)文發(fā)送出去。如果前面的STBM 與 ETH 的時(shí)間已經(jīng)同步完成,注意這里不是與外部時(shí)間同步。

f08b3072-8c41-11ee-939d-92fbcf53809c.png

那么控制器是在哪里拿到系統(tǒng)時(shí)間的呢。這里我們使用ETH硬件MAC 時(shí)間。下面是時(shí)間戳寄存器。可以讀取。

f0a728fe-8c41-11ee-939d-92fbcf53809c.png

f0bacb16-8c41-11ee-939d-92fbcf53809c.png

如果說(shuō)需要更新mac 的時(shí)候,需要對(duì)其他寄存器進(jìn)行操作。這里不一一列取。通過(guò)Mcal 提供的函數(shù)進(jìn)行更新系統(tǒng)時(shí)間戳。

/*******************************************************************************                     
**                                                                            **                     
** Traceability    : [cover parentID={0CC425E3-DC66-46d8-AB0B-587E1C70CDEA}]  **                     
**                                                                            **                     
** Syntax           : Std_ReturnType Eth_17_GEthMac_SetGlobalTime             **                     
**                              (const uint8 CtrlIdx,                         **                     
**                              const Eth_TimeStampType* const timeStampPtr)  **                     
**                                                                            **                     
** Description      : Allows the Time Master to adjust the global ETH         **                     
**                    Reference clock in HW. We can use this method to        **                     
**                    set a global time base on ETH in general or to          **                     
**                    synchronize the global ETH time base with another       **                     
**                    time base, e.g. FlexRay.                                **                     
**                                                                            **                     
** [/cover]                                                                   **                     
**                                                                            **                     
** Service ID       : 0x1b                                                    **                     
**                                                                            **                     
** Sync/Async       : Synchronous                                             **                     
**                                                                            **                     
** Reentrancy       : Non Reentrant                                           **                     
**                                                                            **                     
** Parameters (in)  : CtrlIdx       -  Index of Eth Controller within the     **                     
**                                     context of the Ethernet driver.        **                     
**                    timeStampPtr  -  new time stamp                         **                     
**                                                                            **                     
** Parameters (out) : None                                                    **                     
**                                                                            **                     
** Return value     : Std_ReturnType - E_OK: successful                       **                     
**                                     E_NOT_OK: failed                       **                     
**                                                                            **                     
*******************************************************************************/                     
Std_ReturnType Eth_17_GEthMac_SetGlobalTime(const uint8 CtrlIdx, const                     
                                        Eth_TimeStampType* const timeStampPtr)

其實(shí)就是對(duì)這些寄存器(沒(méi)完全列出來(lái))進(jìn)行了操作。即更新了MAC 的時(shí)間戳。

Ifx_GETH_MAC_SYSTEM_TIME_HIGHER_WORD_SECONDS MAC_SYSTEM_TIME_HIGHER_WORD_SECONDS;

2.2.2.2 peer delay req報(bào)文

peer delay 是為了消除master 到 slaver, 和 slaver 到master. 這是平等的過(guò)程,也是一樣的過(guò)程。這里只介紹一下master發(fā)送peerdelay req.

在發(fā)送過(guò)程中是不需要帶有時(shí)間信息的。只是響應(yīng)端需要回復(fù)帶有時(shí)間信息的報(bào)文。即 response, response follow up. 因?yàn)榘l(fā)送端是知道自己發(fā)送時(shí)候的具體時(shí)間的。

f0c6aa44-8c41-11ee-939d-92fbcf53809c.png

autosar 實(shí)現(xiàn)的具體邏輯分流

f0d605a2-8c41-11ee-939d-92fbcf53809c.png

這時(shí)候slaver 收到req之后,進(jìn)行響應(yīng)response. 邏輯如下f0e5ecce-8c41-11ee-939d-92fbcf53809c.png

這里就出現(xiàn)一個(gè)問(wèn)題,看著response 和 follow up 報(bào)文一樣,但是發(fā)送的內(nèi)容是不一樣的。所以autosar 組包,組以太網(wǎng)包

f0f56fbe-8c41-11ee-939d-92fbcf53809c.png

/**                   
 ***************************************************************************************************                   
 * Function Name : EthTSyn_ComposePdelayRespMsg()                   
 *                   
 * Function Description                   
 * Composes Pdelay_Resp message                   
 *                   
 * Parameters (in) :                   
 * param BufPtr_pu8 - Buffer pointer                   
 *                   
 * Parameters (inout):                   
 * None                   
 *                   
 * Parameters (out):                   
 * None                   
 *                   
 * Return Value: None                   
 * Return Type : void                   
 ***************************************************************************************************                   
 */                   
void EthTSyn_ComposePdelayRespMsg( uint8 *BufPtr_pu8 )                   
                   
                   
/**                   
 ***************************************************************************************************                   
 * Function Name : EthTSyn_ComposePdelayRespFollowUpMsg()                   
 *                   
 * Function Description                   
 * Composes Pdelay_Resp_Follow_Up message                   
 *                   
 * Parameters (in) :                   
 * param BufPtr_pu8 - Buffer pointer                   
 *                   
 * Parameters (inout):                   
 * None                   
 *                   
 * Parameters (out):                   
 * None                   
 *                   
 * Return Value: None                   
 * Return Type : void                   
 ***************************************************************************************************                   
 */                   
void EthTSyn_ComposePdelayRespFollowUpMsg( uint8 *BufPtr_pu8 ) 
                   

2.2.2.3 peer delay resp報(bào)文

反向過(guò)程,同上

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 汽車(chē)電子
    +關(guān)注

    關(guān)注

    3036

    文章

    8279

    瀏覽量

    169789
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7639

    瀏覽量

    90419
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    376

    瀏覽量

    22482
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    926

    瀏覽量

    55595
  • 域控制器
    +關(guān)注

    關(guān)注

    0

    文章

    272

    瀏覽量

    3019

原文標(biāo)題:

文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何開(kāi)發(fā)符合AUTOSAR規(guī)范的電機(jī)控制器軟件

    基于AUTOSAR規(guī)范的電機(jī)控制器軟件開(kāi)發(fā)本系列文章主要介紹如何開(kāi)發(fā)符合AUTOSAR規(guī)范的電機(jī)控制器軟件的詳細(xì)過(guò)程。全系類分為基礎(chǔ)篇和實(shí)戰(zhàn)篇:基礎(chǔ)篇內(nèi)簡(jiǎn)要介紹最新的
    發(fā)表于 08-30 08:59

    時(shí)間同步Autosar是什么意思

    時(shí)間同步Autosar就是讓ECUs的軟件架構(gòu)標(biāo)準(zhǔn)化:1.讓軟件和硬件分的清清楚楚2.讓不同功能的軟件模塊分的清清楚楚3.非常方便模塊再利用4.減少開(kāi)發(fā)成本,提高質(zhì)量和效率就像是統(tǒng)一了手機(jī)充電接口
    發(fā)表于 09-03 06:33

    時(shí)間同步Autosar就是讓ECUs的軟件架構(gòu)標(biāo)準(zhǔn)化

    時(shí)間同步Autosar就是讓ECUs的軟件架構(gòu)標(biāo)準(zhǔn)化:1.讓軟件和硬件分的清清楚楚2.讓不同功能的軟件模塊分的清清楚楚3. 非常方便模塊再利用4. 減少開(kāi)發(fā)成本,提高質(zhì)量和效率就像是統(tǒng)一了手機(jī)充電
    發(fā)表于 09-03 07:25

    AUTOSAR是什么

    一、AUTOSAR是什么AUTOSAR組織自己的介紹AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide deve
    發(fā)表于 11-10 07:47

    為什么使用AUTOSAR

    文章目錄一、總概述1 為什么使用AUTOSAR?1.1 AUTOSAR出現(xiàn)之前的行業(yè)現(xiàn)狀1.2 AUTOSAR出現(xiàn)之后可以實(shí)現(xiàn)如下目標(biāo)2、AUTOS
    發(fā)表于 12-09 07:50

    介紹AUTOSAR支持的四種功能安全機(jī)制

    1、AUTOSAR的四種功能安全機(jī)制雖然AUTOSAR不是一個(gè)完整的安全解決方案,但它提供了一些安全機(jī)制用于支持安全關(guān)鍵系統(tǒng)的開(kāi)發(fā)。本文用于介紹AUTOSAR支持的四種功能安全機(jī)制:內(nèi)
    發(fā)表于 06-10 17:33

    AUTOSAR CAN時(shí)鐘同步問(wèn)題

    請(qǐng)問(wèn)有沒(méi)有AUTOSAR CAN時(shí)鐘同步的能運(yùn)行的代碼,或者有沒(méi)有能做這一塊的大佬,主要是CanTsyn和STBM這兩個(gè)模塊的。有償,價(jià)格都好商量,急需。
    發(fā)表于 11-09 00:00

    一種AUTOSAR軟件架構(gòu)中RTE的實(shí)現(xiàn)方法

    介紹了一種AUTOSAR軟件架構(gòu)中RTE的實(shí)現(xiàn)方法。
    發(fā)表于 07-13 16:02 ?7次下載

    車(chē)載以太網(wǎng)時(shí)間同步之EthTsync技術(shù)解析

    本文將重點(diǎn)介紹EthTsync模塊在AUTOSAR模塊中的層級(jí)關(guān)系,以太網(wǎng)時(shí)間同步原理,與EEE802.1AS定義的gPTP時(shí)間
    發(fā)表于 05-08 10:09 ?2308次閱讀
    車(chē)載以太網(wǎng)<b class='flag-5'>時(shí)間</b><b class='flag-5'>同步</b>之EthTsync技術(shù)解析

    車(chē)載以太網(wǎng)時(shí)間同步AUTOSAR層級(jí)關(guān)系

    小T講到EthDriver一般都具備硬件時(shí)間戳特性,該特性便是車(chē)載以太網(wǎng)實(shí)現(xiàn)時(shí)間同步的一個(gè)關(guān)鍵前提,在AUTOSAR標(biāo)準(zhǔn)規(guī)范中,EthTsync模塊就是用來(lái)
    的頭像 發(fā)表于 07-24 10:24 ?1661次閱讀
    車(chē)載以太網(wǎng)<b class='flag-5'>時(shí)間</b><b class='flag-5'>同步</b><b class='flag-5'>AUTOSAR</b>層級(jí)關(guān)系

    車(chē)載AUTOSAR中g(shù)PTP協(xié)議介紹

    AUTOSAR中g(shù)PTP協(xié)議介紹 相比IEEE802.1AS規(guī)范中定義的gPTP協(xié)議,AUTOSAR組織結(jié)合車(chē)載網(wǎng)絡(luò)應(yīng)用場(chǎng)景針對(duì)其部分內(nèi)容也做了進(jìn)一步限制與約束,以便能夠更加靈活應(yīng)用,降低整個(gè)系統(tǒng)
    的頭像 發(fā)表于 07-24 10:39 ?3234次閱讀
    車(chē)載<b class='flag-5'>AUTOSAR</b>中g(shù)PTP協(xié)議<b class='flag-5'>介紹</b>

    車(chē)載時(shí)鐘同步can_tsync實(shí)現(xiàn)原理

    CAN時(shí)鐘同步來(lái)源,AUTOSAR cp的規(guī)范,AUTOSAR定義的基于CAN總線時(shí)間同步的CanTSyn模塊處理CAN總線上的
    的頭像 發(fā)表于 10-27 14:39 ?3536次閱讀
    車(chē)載時(shí)鐘<b class='flag-5'>同步</b>can_tsync<b class='flag-5'>實(shí)現(xiàn)</b>原理

    AUTOSAR經(jīng)典平臺(tái)介紹

    經(jīng)典平臺(tái)(AUTOSAR CP) AUTOSAR經(jīng)典平臺(tái)(AUTOSAR CP)是AUTOSAR軟件架構(gòu)的一種實(shí)現(xiàn),旨在提供一種標(biāo)準(zhǔn)化的方法
    的頭像 發(fā)表于 10-27 15:30 ?1814次閱讀
    <b class='flag-5'>AUTOSAR</b>經(jīng)典平臺(tái)<b class='flag-5'>介紹</b>

    AUTOSAR通信協(xié)議解析 如何實(shí)現(xiàn)AUTOSAR通信

    AUTOSAR(Automotive Open System Architecture)即汽車(chē)開(kāi)放系統(tǒng)架構(gòu),該架構(gòu)支持汽車(chē)電子控制單元(ECU)之間的通信,實(shí)現(xiàn)了高度模塊化和可重用性。AUTOSAR
    的頭像 發(fā)表于 12-17 14:54 ?2624次閱讀

    AUTOSAR通信組件介紹 AUTOSAR通信層功能分析

    AUTOSAR通信組件介紹 AUTOSAR(AUTomotive Open System ARchitecture)是一個(gè)全球性的汽車(chē)軟件架構(gòu)合作伙伴計(jì)劃,旨在創(chuàng)建和建立一個(gè)開(kāi)放的標(biāo)準(zhǔn)化軟件架構(gòu),以
    的頭像 發(fā)表于 12-17 14:55 ?1409次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品