精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

什么是Signal Group,為什么要用Signal Group?

832065824 ? 來源:汽車電子嵌入式 ? 作者:Tomas Li ? 2022-11-23 09:23 ? 次閱讀

前言

最近在研究AUTOSAR通信協(xié)議棧的時候發(fā)現(xiàn)對Com模塊的Signal Group很是疑惑,產(chǎn)生了以下幾個問題:

(1)什么是Signal Group,為什么要用Signal Group?

(2)什么是Shadow buffer,Shadow buffer機制為什么能保證數(shù)據(jù)的一致性?

(3)一個信號又屬于一個信號組,那么可以為這個信號和所在的信號組都配置Notificaition嗎?

(4)信號組包括的信號可以跨不同IPDU嗎?

(5)RTE在獲取一個Signal時,如果這個Signal屬于一個Signal Group,那么Signal的值沖Signal的buffer獲取還是Shadow buffer獲取?

本文先梳理一遍Com Signal報文的手法過程過程,然后回答這些問題。

AUTOSAR 通信服務(wù)-Com模塊概念詳解

正文

1.Signal Group概念介紹

為了支持復(fù)雜數(shù)據(jù)類型的AUTOSAR概念,AUTOSAR COM提供了信號組的解決方案。AUTOSAR COM模塊一致地發(fā)送和接收信號組,為復(fù)雜數(shù)據(jù)類型提供必要的一致性。信號組支持靜態(tài)配置。對于每個信號組,可以配置一個符號名。

AUTOSAR COM模塊通過shadowbuffer緩沖區(qū)機制實現(xiàn)信號組的一致性,即RTE訪問shadowbuffer緩沖區(qū)中的組信號。如果shadow緩沖區(qū)需要與I-PDU同步,RTE可以使用Com_SendSignalGroup或Com_ReceiveSignalGroup顯式觸發(fā)。同步是以原子方式執(zhí)行的。

一個信號組一致性的替代方法是啟用信號組數(shù)組APICom_SendSignalGroupArray和com_receivesignalgrouparray

1.1 Initialization

通過調(diào)用Com_Init, AUTOSAR COM模塊將初始化發(fā)送端信號組的shadow緩沖區(qū),一個結(jié)構(gòu)良好的SWC在調(diào)用Com_ReceiveSignalGroup之前嘗試讀取組信號。

1.2 Transmission

如果Com_SendSignal或com_invalidatsignal被調(diào)用的信號屬于一個信號組,那么AUTOSAR COM將只更新這個信號組的shadow緩沖區(qū)。除非I-PDU內(nèi)容發(fā)生了變化,否則不需要像TMS評估那樣進(jìn)行進(jìn)一步的I-PDU處理。

如果為信號組調(diào)用Com_SendSignalGroup, AUTOSAR COM模塊將自動復(fù)制shadow緩沖區(qū)內(nèi)容到I-PDU buffer。

Example with two group signals signal_a and signal_b, which belong to group_x:

/* copy a to shadow buffer */

Com_SendSignal (signal_a, &a);

/* copy b to shadow buffer */

Com_SendSignal (signal_b, &b);

/* copy shadow buffer to I-PDU */

Com_SendSignalGroup (group_x)

1.3 Reception

當(dāng)信號組數(shù)據(jù)被Com_ReceiveSignalGroup復(fù)制到shadow buffer后,可以通過調(diào)用com_receivessignal函數(shù)從shadow緩沖區(qū)接收組信號。

如果為一個信號組調(diào)用Com_ReceiveSignalGroup, AUTOSAR COM模塊將自動將數(shù)據(jù)從I-PDU緩沖區(qū)復(fù)制到shadow緩沖區(qū)。

Example with two group signals signal_a and signal_b, which belong to group_x:

/* copy I-PDU to shadow buffer */

Com_ReceiveSignalGroup (group_x);

/* copy a from shadow buffer */

Com_ReceiveSignal (signal_a, &a);

/* copy b from shadow buffer */

Com_ReceiveSignal (signal_b, &b)

1.4 Notifications

下表顯示,所有的通知功能僅可為信號組配置,而不是為單個組的信號配置。

6da358d8-6abe-11ed-8abf-dac502259ad0.png

2.Signal Group的接收過程

6dcb72dc-6abe-11ed-8abf-dac502259ad0.png

1)如果是Defered IPDU,那么Com_RxIndication只完成IPDU數(shù)據(jù)拷貝到IPUD的buffer中去,下一個mainfunction中中再去解析IPDU中的Signal。

2)如果是Immediate IPDU,那么Com_RxIndication中完成IPDU數(shù)據(jù)拷貝到IPUD的buffer中去后還完成Signal和Signal Group數(shù)據(jù)的解析和拷貝到Buffer當(dāng)中去,1和2中buffer是一個地方。

Rte_COMCbk_ISigGrp_Receive_Test_Signal_Group(void)
{
Array_uint8_8data;

   (void)Com_ReceiveSignalGroup(((VAR(Com_SignalGroupIdType, AUTOMATIC))0));


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))0),&data[0]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))1),&data[1]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))2),&data[2]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))3),&data[3]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))4),&data[4]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))5),&data[5]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))6),&data[6]);


(void)Com_ReceiveShadowSignal(((VAR(Com_SignalIdType,AUTOMATIC))7),&data[7]);


(void)Rte_Rx_000001(&data);
}

6e0d855a-6abe-11ed-8abf-dac502259ad0.png

6e336086-6abe-11ed-8abf-dac502259ad0.png

3)如果配置了一個Signal Group的Notification且所在的IPDU是Immediate IPDU,那么在Com_RxIndication中就會調(diào)用Notification,且這個Notification的名字為Rte_COMCbk_

6e632726-6abe-11ed-8abf-dac502259ad0.png

4)Notification中會調(diào)用Com_ReceiveSignalGroup完成Signal Group數(shù)據(jù)從shadow buffer拷貝到Signal Group buffer中去,然后調(diào)用Com_ReceiveShadowSignal將Signal Group數(shù)據(jù)拷貝到外部buffer中去。

3. Signal Group的發(fā)送過程

6e858a46-6abe-11ed-8abf-dac502259ad0.png

Rte_ImplWrite_Transmit_Test_Signal_Group(P2CONST(uint8, AUTOMATIC, RTE_APPL_DATA) data) /* 1 */
{
   VAR(Std_ReturnType, AUTOMATIC) rtn = RTE_E_OK;


   Rte_memcpy(Rte_Ms_000001, data, sizeof(Array_uint8_8));


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))0), &data[0]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))1), &data[1]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))2), &data[2]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))3), &data[3]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))4), &data[4]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))5), &data[5]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))6), &data[6]);


   Com_UpdateShadowSignal(((VAR(Com_SignalIdType, AUTOMATIC))7), &data[7]);


   if ( ((VAR(StatusType, AUTOMATIC))E_OK) != Com_SendSignalGroup(((VAR(Com_SignalGroupIdType, AUTOMATIC))1)) )
   {
      rtn = ((VAR(Std_ReturnType, AUTOMATIC))RTE_E_COM_STOPPED);
   }


   /* Send complete */
   return rtn;
}

6ea0d760-6abe-11ed-8abf-dac502259ad0.png

6ed0a4d6-6abe-11ed-8abf-dac502259ad0.png

信號組是可以直接和SWC進(jìn)行Pport-Rport連接的,也就是說SWC可以通過RTE讀取或者發(fā)送Signal Group數(shù)據(jù)。在通過RTE發(fā)送Signal Group數(shù)據(jù)的時候,首先通過通過Com_UpdateShadowSignal函數(shù)將要發(fā)送的數(shù)據(jù)拷貝到Signal Group的shadow buffer中去,然后調(diào)用Com_SendSignalGroup將shadow buffer中的數(shù)據(jù)以原子操作的方式拷貝到IPDU的Buffer中去,并且觸發(fā)IPDU的數(shù)據(jù)發(fā)送(調(diào)用PduR_Transmit)。

4.問題回答

問題1:什么是Signal Group,為什么要用Signal Group?

答:為了支持復(fù)雜數(shù)據(jù)類型的AUTOSAR概念,AUTOSAR COM提供了信號組的解決方案。AUTOSAR COM模塊一致地發(fā)送和接收信號組,為復(fù)雜數(shù)據(jù)類型提供必要的一致性。通俗的來講,Signal Group就是一個IPDU里面的幾個Signal的集合,這幾個Signal的操作需要保持一致性(也就是如果外部發(fā)送方有對這幾個數(shù)據(jù)中一個或多個數(shù)據(jù)有改動,那么接收方也需要同時更新,比如車道線的一階參數(shù)、二階參數(shù)、三階參數(shù)、常數(shù)項是4個不同的Signal,這4個Signal就需要保持一致性,不然到最后儀表上畫出來的車道線就會偶發(fā)的和實際不一樣)。

問題2:什么是Shadow buffer,Shadow buffer機制為什么能保證數(shù)據(jù)的一致性?

答:本來COM模塊為每個Rx Signal和Rx Signal都設(shè)有一個Signal Buffer的,Signal數(shù)據(jù)的收發(fā)都通過這個Signal來實現(xiàn)。如果Signal Group,COM模塊為每個Signal Group又額外設(shè)置了一片Signal Group Buffer,這片Buffer就是所謂的Shadow buffer。在發(fā)送Signal Group的時候,將Signal Group拷貝到IPDU Buffer的時候是原子操作(也就是拷貝前關(guān)閉全局中斷,拷貝后打開全局中斷,保證拷貝過程不被中斷干擾)保證了Signal Group數(shù)據(jù)的一致性。

問題3:一個信號又屬于一個信號組,那么可以為這個信號和所在的信號組都配置Notificaition嗎?

答:AUTOSAR規(guī)范規(guī)定,一個Signal配置為一個Signal Group的Group Signal后只能有Signal Group的Notification。

問題4:信號組包括的信號可以跨不同IPDU嗎?

答:這個問題在AUTOSAR規(guī)范當(dāng)中沒有找到。通過閱讀源碼發(fā)現(xiàn)Signal Group中的Signal應(yīng)該都是同一幀IPDU中的Signal(這個有待進(jìn)一步確認(rèn))。

問題5:RTE在獲取一個Signal時,如果這個Signal屬于一個Signal Group,那么Signal的值從Signal的buffer獲取還是Shadow buffer獲取?

答:從Shadow buffer中獲取。






審核編輯:劉清

聲明:本文內(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

    文章

    350

    瀏覽量

    21473
  • PDU
    PDU
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    16963

原文標(biāo)題:AUTOSAR下Com模塊中Signal Group詳解

文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【AMD社招】Signal Validation Engineer

    AMD超威半導(dǎo)體上海研發(fā)中心招聘 Signal Validation Engineer,請有意向者將簡歷發(fā)送到 Maggie1.Zhang@amd.com 以及
    發(fā)表于 03-13 16:30

    沒有與IODELAY GROUP關(guān)聯(lián)的IDELAYCTRL

    元素與IODELAY_GROUP'tri_mode_ethernet_mac_iodelay_grp'相關(guān)聯(lián),但沒有與此IODELAY_GROUP關(guān)聯(lián)的IDELAYCTRL。單獨的示例設(shè)計運行良好但是
    發(fā)表于 10-25 15:26

    如何使用命令添加用戶到group

    useradd 示例 – 增加一個新用戶到附加用戶組?新增加一個用戶并將其列入一個已有的用戶組中需要用到 useradd 命令。如果還沒有這個用戶組,可以先創(chuàng)建該用戶組。命令參數(shù)如下:useradd
    發(fā)表于 09-01 17:25

    Advanced Digital Signal Proces

    Advanced Digital Signal Processing and Noise Reduction
    發(fā)表于 03-25 15:48 ?32次下載

    Digital Signal Processing--Filtering Approach

    Digital Signal Processing--Filtering Approach: Digital signal processing (DSP) refers
    發(fā)表于 07-25 16:16 ?22次下載
    Digital <b class='flag-5'>Signal</b> Processing--Filtering Approach

    DIGITAL RF SIGNAL GENERATORS 3

    DIGITAL RF SIGNAL GENERATORS 3410 Series Operating Manual:This manual explains how to use the 3410
    發(fā)表于 11-14 16:33 ?52次下載

    When Signal Integrity Matters

    I recently served on a panel where I was asked, “At whatpoint does signal integrity become a
    發(fā)表于 01-15 10:08 ?0次下載

    PROGRAMME Digital Signal Proce

    PROGRAMME Digital Signal Processing (DSP)
    發(fā)表于 07-05 11:21 ?10次下載

    SIGNAL PROCESSING TECHNIQUES F

    ABSTRACTThe recent development of commercial hearing aids withdigital signal processing (DSP
    發(fā)表于 07-06 21:02 ?17次下載

    Signal Source Basics

    Slide 1A signal source produces sine waves.  This is the most basic definition of a signal
    發(fā)表于 07-10 11:09 ?11次下載

    High-Gain Signal Conditioning

    high-gain signal conditioning. For typical applications where signal gain of less than 250V/V is sufficient, any of the high precision
    發(fā)表于 04-20 16:15 ?846次閱讀
    High-Gain <b class='flag-5'>Signal</b> Conditioning

    Overview of sensor signal path

    Overview of sensor signal paths This tutorial explains the sensor signal chain for the most
    發(fā)表于 05-13 08:07 ?1279次閱讀
    Overview of sensor <b class='flag-5'>signal</b> path

    Group Communication for the Constrained Application Protocol (CoAP)

    Group Communication for the Constrained Application Protocol (CoAP),CoAP下的組通信協(xié)議說明
    發(fā)表于 11-26 15:22 ?10次下載

    16Bit Group Ripple Adder

    16Bit Group Ripple Adder。
    發(fā)表于 03-21 15:07 ?0次下載

    ADIsimRF Signal Chain Calculator

    ADIsimRF Signal Chain Calculator
    發(fā)表于 01-28 14:39 ?28次下載
    ADIsimRF <b class='flag-5'>Signal</b> Chain Calculator