引言
在當(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)包括以下類型:
· 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í)鐘同步。
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。
?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)系:
?主/從節(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è)。
? ?
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í)間信息
?StbM 為 上層應(yīng)用提供時(shí)間信息
所以從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];
代碼邏輯如下
我們把重點(diǎn)放在下面的gPTP 協(xié)議本身
2.2.2 TsynOverETH
在 gPTP 中 main函數(shù)主要維護(hù)了
?同步報(bào)文
?發(fā)送消除誤差報(bào)文
?響應(yīng)消除誤差報(bào)文
主要體現(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ò)程。
2.2.2.1.1 代碼sync, follow up 報(bào)文
通過(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í)間同步。
那么控制器是在哪里拿到系統(tǒng)時(shí)間的呢。這里我們使用ETH硬件MAC 時(shí)間。下面是時(shí)間戳寄存器。可以讀取。
如果說(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í)間的。
autosar 實(shí)現(xiàn)的具體邏輯分流
這時(shí)候slaver 收到req之后,進(jìn)行響應(yīng)response. 邏輯如下
這里就出現(xiàn)一個(gè)問(wèn)題,看著response 和 follow up 報(bào)文一樣,但是發(fā)送的內(nèi)容是不一樣的。所以autosar 組包,組以太網(wǎng)包
/** *************************************************************************************************** * 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ò)程,同上
-
汽車(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
+關(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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何開(kāi)發(fā)符合AUTOSAR規(guī)范的電機(jī)控制器軟件
時(shí)間同步Autosar是什么意思
時(shí)間同步Autosar就是讓ECUs的軟件架構(gòu)標(biāo)準(zhǔn)化
AUTOSAR是什么
為什么使用AUTOSAR呢
介紹AUTOSAR支持的四種功能安全機(jī)制
AUTOSAR CAN時(shí)鐘同步問(wèn)題
一種AUTOSAR軟件架構(gòu)中RTE的實(shí)現(xiàn)方法
車(chē)載以太網(wǎng)時(shí)間同步之EthTsync技術(shù)解析

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

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

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

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

評(píng)論