国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于AUTOSAR的應用層如何獲取準確的時間戳呢

汽車ECU開發 ? 來源:ADAS與ECU之吾見 ? 作者:奮斗的農民工 ? 2022-09-21 14:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

首先,請問大家幾個小小問題,你清楚:

基于AUTOSAR的應用層如何獲取準確的時間戳嗎?

時間同步的具體過程包含哪些細節呢?

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

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

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

正文

時間同步軟件框架

正如前文《AUTOSAR基礎篇之CanTsyn》所述,CanTsyn模塊負責時間同步之間的協議處理,StbM模塊則用來負責抽象底層不同的時間同步協議,為上層提供統一的時間戳接口以及當前的時間同步狀態的接口。

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

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

圖1 AUTOSAR時間同步協議軟件框架

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

數據流1表示StbM主動調用TriggerCustomer提供的函數接口來完成時間同步,當前主要應用場景為OS Schedule Table的同步;

數據流2表示Active Customer(SW-C)主動調用StbM提供的標準接口來獲取當前時間戳或者時間同步狀態;

數據流3表示Active Customer(SW-C)主動調用StbM提供的標準接口來更新StbM維護的時間基準;

數據流4表示StbM模塊通過Tsyn模塊提供的標準函數接口來更新StbM的時間基準;

數據流5表示StbM模塊主動通過Tsyn模塊提供的標準函數接口來將當前的時間同步信息發送到相應的bus總線上。

在時間同步領域內涉及到諸多專有名詞,因此為了便于大家理解后續的內容,有必要在此跟大家解釋些重要的標準術語,具體細節如下圖2所示:

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

圖2 時間同步標準術語解釋

啟動階段

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

前置條件

StbM模塊通過調用函數接口StbM_Init來完成初始化工作,但是在此之前需務必完成基礎通訊模塊的初始化,如Canif模塊初始化,CanTsyn模塊初始化等。

初始化

通過調用上述函數完成初始化之后,將會完成如下基本動作:

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

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

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

正常工作

Synchronized Time Base

每一次調用函數接口StbM_BusSetGlobalTime()時就會更新對應的同步time base以及對應的Time Base Status。

Time Master 同步狀態監控

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

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

圖3 Time Master 同步狀態更新示意圖

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

通過調用函數接口 StbM_GetCurrentTime() 來獲取當前對應Time Domain下的Time Base,對應的timebasestatus以及user data;

通過調用函數接口StbM_GetCurrentTimeRaw() 來獲取當前時間Time Base的ns部分;

通過調用函數接口StbM_GetCurrentTimeDiff() 來獲取輸入的時間戳與當前時間戳的時間間隔,單位為ns;

通過調用函數接口StbM_BusSetGlobalTime()來更新當前的Time Base以及設置對應的timebaseStatus;

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

Time Slave 同步狀態監控

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

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

圖4 Time Slave同步狀態更新圖

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

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

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

TIme Slave會實時確認下當前的時間戳與最近一次調用該函數的時間差距是否在參數StbMSyncLossTimeout設定的范圍內,如果Timeout發生,那么需置timeBaseStatus中的TIMEOUT bit位,一旦調用StbM_BusSetGlobalTime函數將會清除該TIMEOUT bit位。

如果從來沒有發生過時間同步, 那么TIMEOUT位將不會置位,只要發生過一次成功的時間同步,后續同步沒有按照預期發送,那么就會啟動這個Timeout檢查。

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

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

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

Time Gateway同步狀態監控

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

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

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

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

TIme Slave會實時確認下當前的時間戳與最近一次調用該函數的時間差距是否在參數StbMSyncLossTimeout設定的范圍內,如果Timeout發生,那么需置timeBaseStatus中的TIMEOUT bit位,一旦調用StbM_BusSetGlobalTime函數將會清除該TIMEOUT bit位。

如果從來沒有發生過時間同步, 那么TIMEOUT位將不會置位,只要發生過一次成功的時間同步,后續同步沒有按照預期發送,那么就會啟動這個Timeout檢查。

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

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

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

Offset Time Base

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

每次調用StbM_SetOffset()就會用來更新相應的Time base的 Offset Time;

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

每一次調用函數StbM_GetOffset()將會返回對應的Offset Time Base的Offset Time;

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

Customer

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

Active customers:顧名思義就是一種主動觸發調用StbM相關函數接口的應用角色;

Triggered customers:就是一種被動被StbM模塊調用其自身接口的應用角色;

Active customers

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

讀取當前的time base value,同步狀態以及user data;

設置對應time base的value以及相應的user data;

Triggered customers

對于Triggered customer,當前僅用于同步OS的schedule table,通過調用OS提供的API函數 SyncScheduleTable() 來實現Schedule Table之間的counter同步。

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

同時StbM僅在Schedule Table 處于WAITING,RUNNING,或者 RUNNING_SYNCHRONOUS狀態時完成同步,因此也就意味著StbM在同步前先要確認下當前需同步的Schedule Table的狀態,然后才能進行同步。

關閉階段

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

常用函數接口說明

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

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

圖5 StbM模塊常用函數接口




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • AUTOSAR
    +關注

    關注

    10

    文章

    398

    瀏覽量

    23649
  • NVM
    NVM
    +關注

    關注

    1

    文章

    47

    瀏覽量

    19783
  • Bus總線
    +關注

    關注

    1

    文章

    6

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    飛凌嵌入式ElfBoard-系統信息與資源之獲取時間time

    用于獲取當前時間(1970 年以來的秒數),通常用于簡單的時間計算,時間精度為秒級。1.頭文件#include 2.函數原型time_t
    發表于 01-16 08:38

    如何確保電能質量在線監測裝置運行日志的準確性?

    “真實、完整、可追溯”。以下是具體落地措施: 一、源頭把控:確保日志數據采集的真實性與精度 日志的準確性始于數據采集環節,需從 “時間同步、傳感器精度、硬件穩定性” 三方面筑牢基礎: 1. 高精度時間同步(日志
    的頭像 發表于 12-17 11:08 ?571次閱讀
    如何確保電能質量在線監測裝置運行日志的<b class='flag-5'>準確</b>性?

    基于以太網芯片的應用層方案

    聚焦于以沁恒微電子以太網芯片(如CH394/CH395及集成型MCU CH32V317等)為基礎構建的多種高效應用層方案,闡述其如何以簡化的硬件與低成本,實現豐富的網絡功能。
    的頭像 發表于 12-09 14:47 ?513次閱讀
    基于以太網芯片的<b class='flag-5'>應用層</b>方案

    應用層外設進行數據傳輸,是否應該調用rt_device_create,rt_device_register等函數

    假如我要在應用層用一個新的usart2串口傳輸數據,那我應該是怎么做? 1.在工程未編譯前將usart2加上,即定義宏BSP_USING_UART2,利用RT-Thread在硬件初始化
    發表于 10-11 06:29

    時間同步問題可能會對裝置的哪些方面產生影響?

    在電能質量監測、工業控制、電網運維等場景中,裝置(如電能質量在線監測儀、數據校驗系統、通信模塊、故障錄波器等)的時間同步是保障其功能正常的核心基礎。時間同步問題(如同步精度不足、時間
    的頭像 發表于 09-23 11:24 ?1039次閱讀

    RT-Thread睿賽德正式加入AUTOSAR 組織,成為開發合作伙伴!

    近日,AUTOSAR宣布RT-Thread睿賽德已正式加入AUTOSAR組織成為開發合作伙伴!AUTOSAR組織AUTOSAR組織的本質是一個開發合作伙伴關系。作為全球汽車開放式系統架
    的頭像 發表于 09-04 17:07 ?1305次閱讀
    RT-Thread睿賽德正式加入<b class='flag-5'>AUTOSAR</b> 組織,成為開發合作伙伴!

    使用羅德與施瓦茨CMX500的吞吐量應用層測試方案

    5G NR(New Radio)吞吐量應用層測試是評估5G網絡性能的一個重要方面,它主要關注的是在實際應用條件下,用戶能夠體驗到的數據傳輸速率。這種測試通常包括了對下行鏈路和上行鏈路的吞吐量進行測量,以確保網絡可以滿足各種應用場景的需求,比如高清視頻流、虛擬現實、增強現實、大規模物聯網等。
    的頭像 發表于 09-02 13:56 ?7942次閱讀
    使用羅德與施瓦茨CMX500的吞吐量<b class='flag-5'>應用層</b>測試方案

    時間準確?就選網絡時間服務器

    網絡時間服務器是為網絡設備提供準確、標準、、可靠和多功能的時間服務的解決方案,能提供準確的同步時鐘信號,支持標準的NTP和SNTP網絡時間
    的頭像 發表于 08-13 15:39 ?1079次閱讀
    <b class='flag-5'>時間</b>不<b class='flag-5'>準確</b>?就選網絡<b class='flag-5'>時間</b>服務器

    東軟睿馳亮相第16屆AUTOSAR開放大會

    此前,5月27日-28日,第16屆AUTOSAR開放大會(16th AUTOSAR Open Conference)在比利時布魯日成功召開,本屆大會以“AUTOSAR solutions
    的頭像 發表于 06-06 16:07 ?1626次閱讀

    光庭信息亮相第16屆AUTOSAR開放大會

    此前,當地時間5月27日至28日,第16屆AUTOSAR開放大會 (AUTOSAR Open Conference)在比利時布魯日會議中心隆重舉行。
    的頭像 發表于 05-30 15:09 ?962次閱讀

    感知、傳輸應用層一體化:工控一體機廠家聚徽詳解集成技術方案

    過程的全面智能化與高效化。本文將深入探討工控一體機中感知、傳輸應用層一體化的集成技術方案,剖析其工作原理、技術優勢以及實際應用案例。 一、工控一體機概述 工控一體機是一種專為工業環境設計的計算機設備,具備高可
    的頭像 發表于 05-27 14:35 ?1213次閱讀

    部署時鐘同步服務器(時間同步產品)的重要意義

    NTP(Network Time Protocol,網絡時間協議)是網絡中用于時間同步的標準協議,它采用Client/Server模式,NTP客戶端借助NTP協議,從NTP服 務 器獲取準確
    的頭像 發表于 05-22 14:46 ?408次閱讀
    部署時鐘同步服務器(<b class='flag-5'>時間</b>同步產品)的重要意義

    基于RK3576的時間參數系統操作

    ,文章介紹了時間操作API的使用,包括獲取時間、系統延時、獲取和設置系統日期時間等功能,并提供
    的頭像 發表于 05-12 14:32 ?1003次閱讀
    基于RK3576的<b class='flag-5'>時間</b>參數系統操作

    時間同步裝置的應用領域有哪些

    時間同步裝置是一種用于確保不同設備之間時間一致性的裝置。在現代社會中,各種設備都需要準確時間參考,如計算機網絡、通信系統、金融交易、工業自動化等。
    的頭像 發表于 04-15 11:37 ?954次閱讀
    <b class='flag-5'>時間</b>同步裝置的應用領域有哪些<b class='flag-5'>呢</b>?

    芯對話 | CBM1307讓時間精準續航,為設備注入可靠「芯」動力

    基準,確保這些功能能夠在設定的時間準確執行。RTC的高精度時間功能支持智能門鎖的事件記錄和日志功能。它可以精確記錄每一次門鎖的操作時間
    的頭像 發表于 03-18 13:07 ?2610次閱讀
    芯對話 | CBM1307讓<b class='flag-5'>時間</b>精準續航,為設備注入可靠「芯」動力