色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

基于AUTOSAR的應(yīng)用層如何獲取準(zhǔn)確的時間戳嗎?

汽車ECU開發(fā) ? 來源:汽車ECU開發(fā) ? 作者:ADAS與ECU之吾見 ? 2022-09-21 14:40 ? 次閱讀

前言

首先,請問大家?guī)讉€小小問題,你清楚:

基于AUTOSAR的應(yīng)用層如何獲取準(zhǔn)確的時間戳嗎?

時間同步的具體過程包含哪些細(xì)節(jié)呢?

如何正確地獲取到全局時間戳呢?

今天,我們來一起探索并回答這些問題。為了便于大家理解,以下是本文的主題大綱:

eb2ee662-396f-11ed-9e49-dac502259ad0.png

正文

時間同步軟件框架

正如前文《AUTOSAR基礎(chǔ)篇之CanTsyn》所述,CanTsyn模塊負(fù)責(zé)時間同步之間的協(xié)議處理,StbM模塊則用來負(fù)責(zé)抽象底層不同的時間同步協(xié)議,為上層提供統(tǒng)一的時間戳接口以及當(dāng)前的時間同步狀態(tài)的接口。

通過如下圖1所示的Tsync則用來代表基于不同總線通訊的時間同步協(xié)議,StbM則是時間同步協(xié)議層基礎(chǔ)上的抽象,OS作為Triggered Customer,SW-C則作為Active Customer,后文將解釋這兩者之間的區(qū)別。

ebe2bf48-396f-11ed-9e49-dac502259ad0.png

圖1 AUTOSAR時間同步協(xié)議軟件框架

在上圖中,我們可以看到存在5個不一樣的數(shù)據(jù)流,下面將一一解釋每個數(shù)據(jù)流的基本作用:

數(shù)據(jù)流1表示StbM主動調(diào)用TriggerCustomer提供的函數(shù)接口來完成時間同步,當(dāng)前主要應(yīng)用場景為OS Schedule Table的同步;

數(shù)據(jù)流2表示Active Customer(SW-C)主動調(diào)用StbM提供的標(biāo)準(zhǔn)接口來獲取當(dāng)前時間戳或者時間同步狀態(tài);

數(shù)據(jù)流3表示Active Customer(SW-C)主動調(diào)用StbM提供的標(biāo)準(zhǔn)接口來更新StbM維護的時間基準(zhǔn);

數(shù)據(jù)流4表示StbM模塊通過Tsyn模塊提供的標(biāo)準(zhǔn)函數(shù)接口來更新StbM的時間基準(zhǔn);

數(shù)據(jù)流5表示StbM模塊主動通過Tsyn模塊提供的標(biāo)準(zhǔn)函數(shù)接口來將當(dāng)前的時間同步信息發(fā)送到相應(yīng)的bus總線上。

在時間同步領(lǐng)域內(nèi)涉及到諸多專有名詞,因此為了便于大家理解后續(xù)的內(nèi)容,有必要在此跟大家解釋些重要的標(biāo)準(zhǔn)術(shù)語,具體細(xì)節(jié)如下圖2所示:

ebffe0fa-396f-11ed-9e49-dac502259ad0.png

圖2 時間同步標(biāo)準(zhǔn)術(shù)語解釋

啟動階段

在該階段StbM模塊將會提供完成必要的初始化來提供針對上層應(yīng)用的時間同步服務(wù)。

前置條件

StbM模塊通過調(diào)用函數(shù)接口StbM_Init來完成初始化工作,但是在此之前需務(wù)必完成基礎(chǔ)通訊模塊的初始化,如Canif模塊初始化,CanTsyn模塊初始化等。

初始化

通過調(diào)用上述函數(shù)完成初始化之后,將會完成如下基本動作:

變量StbMSynchrinizedTimeBase將會被初始化為0;

timeBaseStatus將會將所有的bit初始化為0;

如果參數(shù)StbMStoreTimebaseNonVolatile等于STORAGE_AT_SHUTDOWN,那么就會從NVM中獲取數(shù)據(jù)(一般包含s跟ns部分),如果NVM獲取數(shù)據(jù)不成功,則都會賦值為0處理。

正常工作

Synchronized Time Base

每一次調(diào)用函數(shù)接口StbM_BusSetGlobalTime()時就會更新對應(yīng)的同步time base以及對應(yīng)的Time Base Status。

Time Master 同步狀態(tài)監(jiān)控

如下圖3所示,一個全局時間網(wǎng)絡(luò)至少一個Time Master跟一個Time Slave, Time Master將會將其時間信息傳遞至在同一Time Domain下的Time Slave。

ec2e2d34-396f-11ed-9e49-dac502259ad0.png

圖3 Time Master 同步狀態(tài)更新示意圖

由上圖可知,Time Master通過reference本地clock來更新本地全局時間,然后通過sync/FUP報文發(fā)送給到總線上。其中,如果Time Domain為0-15則為synchronized time base,而Time Domain 16-31則為Offset Time Base。

通過調(diào)用函數(shù)接口 StbM_GetCurrentTime() 來獲取當(dāng)前對應(yīng)Time Domain下的Time Base,對應(yīng)的timebasestatus以及user data;

通過調(diào)用函數(shù)接口StbM_GetCurrentTimeRaw() 來獲取當(dāng)前時間Time Base的ns部分;

通過調(diào)用函數(shù)接口StbM_GetCurrentTimeDiff() 來獲取輸入的時間戳與當(dāng)前時間戳的時間間隔,單位為ns;

通過調(diào)用函數(shù)接口StbM_BusSetGlobalTime()來更新當(dāng)前的Time Base以及設(shè)置對應(yīng)的timebaseStatus;

通過調(diào)用函數(shù)接口 StbM_SetGlobalTime()并且會就將GLOBAL_TIME_BASE bit位置1,同時清除其他bit 位;

Time Slave 同步狀態(tài)監(jiān)控

如下圖4所示體現(xiàn)了Time Slave的數(shù)據(jù)流交互關(guān)系,在下圖中我們可以看到Time Slave會接收來自同一Time Domin下的sync/fup 報文,同時加上本地計算出來的接收sync/fup報文的時間差最終用于更新當(dāng)前StbM的Time Base,該Time Base將最終被應(yīng)用到應(yīng)用層。

ec4ef06e-396f-11ed-9e49-dac502259ad0.png

圖4 Time Slave同步狀態(tài)更新圖

Time Slave在完成上述時間同步的過程中,需要注意幾點:

每次更新調(diào)用函數(shù)StbM_BusSetGlobalTime時,都會比較下當(dāng)前更新的時間戳與當(dāng)前內(nèi)部正在使用的時間戳的差值是否超過StbMSyncLossThreshold參數(shù)設(shè)定的值,如果該值為0,則會取消該部分的檢查,如果超過了設(shè)定的值, 那么將會將timeBaseStatus中的狀態(tài)位TIMELEAP 置1;

如果下一次更新,差值保證在范圍內(nèi),那么timeBaseStatus中的狀態(tài)位TIMELEAP將會被清0;

TIme Slave會實時確認(rèn)下當(dāng)前的時間戳與最近一次調(diào)用該函數(shù)的時間差距是否在參數(shù)StbMSyncLossTimeout設(shè)定的范圍內(nèi),如果Timeout發(fā)生,那么需置timeBaseStatus中的TIMEOUT bit位,一旦調(diào)用StbM_BusSetGlobalTime函數(shù)將會清除該TIMEOUT bit位。

如果從來沒有發(fā)生過時間同步, 那么TIMEOUT位將不會置位,只要發(fā)生過一次成功的時間同步,后續(xù)同步?jīng)]有按照預(yù)期發(fā)送,那么就會啟動這個Timeout檢查。

如果參數(shù)syncToTimeBase設(shè)定為sync to GTM,那么調(diào)用StbM_BusSetGlobalTime() 將會清除timeBaseStatus中的SYNC_TO_GATEWAY bit位;

如果參數(shù)syncToTimeBase設(shè)定為sync to subdomain,那么調(diào)用StbM_BusSetGlobalTime() 將會置位timeBaseStatus中的SYNC_TO_GATEWAY bit位;

一旦調(diào)用函數(shù)接口fStbM_BusSetGlobalTime(),那么就會設(shè)置timeBaseStatus中的GLOBAL_TIME_BASE Bit位,一旦置位,則不會清除。

Time Gateway同步狀態(tài)監(jiān)控

Time Gateway既作為屬于某個Time Domain的Time slave,同時也會作為某個Time Domain下的Time Master而存在,如果存在Time Gateway的節(jié)點,那么必然存在Time SubDomain的概念。

如果Time Gateway作為某個Time Domain的Time Slave存在,同樣存在著如下特性需要了解:

每次更新調(diào)用函數(shù)StbM_BusSetGlobalTime時,都會比較下當(dāng)前更新的時間戳與當(dāng)前內(nèi)部正在使用的時間戳的差值是否超過StbMSyncLossThreshold參數(shù)設(shè)定的值,如果該值為0,則會取消該部分的檢查,如果超過了設(shè)定的值, 那么將會將timeBaseStatus中的狀態(tài)位TIMELEAP 置1;

如果下一次更新,差值保證在范圍內(nèi),那么timeBaseStatus中的狀態(tài)位TIMELEAP將會被清0;

TIme Slave會實時確認(rèn)下當(dāng)前的時間戳與最近一次調(diào)用該函數(shù)的時間差距是否在參數(shù)StbMSyncLossTimeout設(shè)定的范圍內(nèi),如果Timeout發(fā)生,那么需置timeBaseStatus中的TIMEOUT bit位,一旦調(diào)用StbM_BusSetGlobalTime函數(shù)將會清除該TIMEOUT bit位。

如果從來沒有發(fā)生過時間同步, 那么TIMEOUT位將不會置位,只要發(fā)生過一次成功的時間同步,后續(xù)同步?jīng)]有按照預(yù)期發(fā)送,那么就會啟動這個Timeout檢查。

如果參數(shù)syncToTimeBase設(shè)定為sync to GTM,那么調(diào)用StbM_BusSetGlobalTime() 將會清除timeBaseStatus中的SYNC_TO_GATEWAY bit位;

如果參數(shù)syncToTimeBase設(shè)定為sync to subdomain,那么調(diào)用StbM_BusSetGlobalTime() 將會置位timeBaseStatus中的SYNC_TO_GATEWAY bit位;

一旦調(diào)用函數(shù)接口fStbM_BusSetGlobalTime(),那么就會設(shè)置timeBaseStatus中的GLOBAL_TIME_BASE Bit位,一旦置位,則不會清除。

Offset Time Base

對于Offset Time Base,相比Synchronized Time Base存在著如下一些特性:

每次調(diào)用StbM_SetOffset()就會用來更新相應(yīng)的Time base的 Offset Time;

函數(shù)StbM_SetOffset() 與StbM_GetOffset() 只能接收16-31的TimeBaseId;

每一次調(diào)用函數(shù)StbM_GetOffset()將會返回對應(yīng)的Offset Time Base的Offset Time;

在配置上也會存在限制,即只有StbMSynchronizedTimeBaseIdentifier為16至31,StbMOffsetTimeBase才會真實有效。

Customer

Customers作為理解為基于StbM模塊基礎(chǔ)之上的一種應(yīng)用角色,按照其功能作用可劃分為如下兩種角色:

Active customers:顧名思義就是一種主動觸發(fā)調(diào)用StbM相關(guān)函數(shù)接口的應(yīng)用角色;

Triggered customers:就是一種被動被StbM模塊調(diào)用其自身接口的應(yīng)用角色;

Active customers

對于Active customers,為了便于理解,我們可以列出如下場景來體現(xiàn)其基本作用:

讀取當(dāng)前的time base value,同步狀態(tài)以及user data;

設(shè)置對應(yīng)time base的value以及相應(yīng)的user data;

Triggered customers

對于Triggered customer,當(dāng)前僅用于同步OS的schedule table,通過調(diào)用OS提供的API函數(shù) SyncScheduleTable() 來實現(xiàn)Schedule Table之間的counter同步。

通過配置參數(shù)STBM_TRIGGERED_CUSTOMER_PERIOD來完成StbM定周期調(diào)用上述函數(shù)接口來完成各個sechdule table的os counter間的同步;

同時StbM僅在Schedule Table 處于WAITING,RUNNING,或者 RUNNING_SYNCHRONOUS狀態(tài)時完成同步,因此也就意味著StbM在同步前先要確認(rèn)下當(dāng)前需同步的Schedule Table的狀態(tài),然后才能進行同步。

關(guān)閉階段

針對Shutdown階段,僅存在一個需要做的操作,如果參數(shù)StbMStoreTimebaseNonVolatile等于STORAGE_AT_SHUTDOWN,那么便會將當(dāng)前實時時間戳(S跟ns部分)存儲在NVM中。

常用函數(shù)接口說明

為了便于大家了解StbM模塊所提供的基本功能,因此將常見的函數(shù)接口列舉如下,以方便大家的查閱:

ec6cefa6-396f-11ed-9e49-dac502259ad0.png

圖5 StbM模塊常用函數(shù)接口

編輯:黃飛

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

    關(guān)注

    10

    文章

    360

    瀏覽量

    21558
  • 總線通訊
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    10758

原文標(biāo)題:AUTOSAR基礎(chǔ)篇之StbM

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    時間同步獲取時間

    新手一枚,對單片機原理還不是很清楚,求教:TinyOS中的時間同步首先要獲取本地時間,getStartTime(),想知道它是怎么獲取
    發(fā)表于 03-20 10:37

    請問RX23T如何獲取系統(tǒng)時鐘,以便獲取類似時間,如何獲取此段代碼運行時間

    RX23T 如何獲取系統(tǒng)時鐘,以便獲取類似時間,如何獲取此段代碼運行時間。 系統(tǒng)
    發(fā)表于 07-23 08:09

    AUTOSAR基礎(chǔ)軟件是由哪些部分組成的

    AUTOSAR基礎(chǔ)軟件即BSW(Basic Software),與應(yīng)用層、運行環(huán)境共同搭建了AUT
    發(fā)表于 02-17 08:00

    請問一下rk3288應(yīng)用層如何獲取電池電量呢

    請問一下rk3288電池電量如何獲取?應(yīng)用層如何獲取電池電量呢?在線等大神回復(fù)。
    發(fā)表于 06-10 09:36

    ulog里現(xiàn)在默認(rèn)的時間是從哪里獲取的呢?

    我現(xiàn)在用的外部RTC,想在ulog里的時間顯示外部RTC的時間,ulog里現(xiàn)在默認(rèn)的時間是從哪里獲取
    發(fā)表于 11-14 14:22

    如何在tilebox上獲取時間

    你好我知道 tilebox 有一個 RTC 模塊,所以我意識到獲取當(dāng)前時間來為數(shù)據(jù)生成時間是可行的??梢赃@樣做嗎?在給定的項目示例中是否有任何實現(xiàn)?謝謝
    發(fā)表于 01-05 08:59

    基于橢圓曲線盲簽名的安全數(shù)字時間方案

    時間能為電子文件或電子交易提供準(zhǔn)確時間證明。該文在時間相對認(rèn)證和
    發(fā)表于 04-18 09:45 ?17次下載

    UNIX時間和北京時間的相互轉(zhuǎn)換

    文章目錄什么是時間頭文件time.h介紹UNIX時間轉(zhuǎn)北京時間北京時間轉(zhuǎn)UNIX
    發(fā)表于 11-21 19:06 ?11次下載
    UNIX<b class='flag-5'>時間</b><b class='flag-5'>戳</b>和北京<b class='flag-5'>時間</b>的相互轉(zhuǎn)換

    AUTOSAR 基礎(chǔ)軟件

    AUTOSAR基礎(chǔ)軟件即BSW(Basic Software),與應(yīng)用層、運行環(huán)境共同搭建了AUT
    發(fā)表于 12-22 19:03 ?26次下載
    <b class='flag-5'>AUTOSAR</b> 基礎(chǔ)軟件<b class='flag-5'>層</b>

    基于AUTOSAR應(yīng)用層如何獲取準(zhǔn)確時間

    OS作為Triggered Customer,SW-C則作為Active Customer,后文將解釋這兩者之間的區(qū)別。
    的頭像 發(fā)表于 09-21 14:42 ?2458次閱讀

    Java中時間的使用

    Java中時間的使用
    的頭像 發(fā)表于 11-06 16:04 ?190次閱讀
    Java中<b class='flag-5'>時間</b><b class='flag-5'>戳</b>的使用

    使用Tessy對AUTOSAR應(yīng)用層軟件進行SIL測試

    最近了解到了Tessy這款測試軟件,嘗試一下使用它來測試AUTOSAR應(yīng)用層軟件。
    的頭像 發(fā)表于 07-22 10:06 ?2737次閱讀
    使用Tessy對<b class='flag-5'>AUTOSAR</b><b class='flag-5'>應(yīng)用層</b>軟件進行SIL測試

    AUTOSAR架構(gòu)自適應(yīng)平臺

    。AUTOSAR架構(gòu)的目標(biāo)是實現(xiàn)汽車電子系統(tǒng)的模塊化、可重用和可擴展,以提高開發(fā)效率和系統(tǒng)的可靠性。 AUTOSAR架構(gòu)由三個主要的層次組成:應(yīng)用層(Application Layer)、運行時環(huán)境
    的頭像 發(fā)表于 10-27 15:23 ?1270次閱讀
    <b class='flag-5'>AUTOSAR</b>架構(gòu)自適應(yīng)平臺

    AUTOSAR通信與CAN協(xié)議的關(guān)系

    AUTOSAR通信模型: AUTOSAR定義了一個分層的軟件架構(gòu),其中包括應(yīng)用層、基礎(chǔ)軟件和微控制器抽象。在這些
    的頭像 發(fā)表于 12-17 14:57 ?147次閱讀

    AUTOSAR中通信堆棧的配置 AUTOSAR通信模塊測試方法

    )的開發(fā)和生產(chǎn)。通信堆棧是AUTOSAR架構(gòu)中的關(guān)鍵組成部分,負(fù)責(zé)處理ECU之間的通信。 AUTOSAR中通信堆棧的配置 通信模型 : AUTOSAR定義了一種分層的通信模型,包括應(yīng)用層
    的頭像 發(fā)表于 12-17 15:01 ?215次閱讀
    主站蜘蛛池模板: 好男人好资源在线观看| 久久精品美女| 久久免费精彩视频| 欧美囗交xx bbb视频| 亚洲第一伊人| 999国产高清在线精品| 国产成人在线免费| 99re.05久久热最新地址| 内射白浆一区二区在线观看| 午夜噜噜噜私人影院在线播放 | 欧美午夜理伦三级在线观看| 无限资源网免费看| 98久久人妻少妇激情啪啪| 国产 精品 亚洲 欧美 高清| 久久久久久久久女黄| 熟妇无码乱子成人精品| 在线自拍综合亚洲欧美| 国产AV午夜精品一区二区入口| 久久精品视频在线看99| 沈芯语麻豆0076 视频| 中国国产不卡视频在线观看| 亚洲AV福利天堂一区二区三| 2019一級特黃色毛片免費看| 国产日韩欧美三级| 日本19xxxx撤尿| 一级片mp4| 国产精品永久在线| 青青青伊人| 友田真希息与子中文字幕| 国产成人精品电影| 牛牛在线精品视频| 一本久道久久综合狠狠躁AV| 国产白丝精品爽爽久久久久久蜜臀| 秘密教学26我们在做一次吧免费| 亚洲精品资源网在线观看| 打开双腿狠狠蹂躏蜜桃臀| 麻豆国产人妻欲求不满| 亚洲免费在线观看| 国产人妻麻豆蜜桃色在线| 日本色高清| beeg日本老师|