AUTOSAR進階圖解==>AUTOSAR_SRS_Transformer

AUTOSAR Transformer 詳解

基于AUTOSAR 4.4.0標準的Transformer模塊分析與說明

目錄

  • 1. Transformer概述
    • 1.1 Transformer的作用
    • 1.2 Transformer的基本特性
  • 2. Transformer架構
    • 2.1 整體架構
    • 2.2 類層次結構
  • 3. Transformer類型
    • 3.1 SOME/IP Transformer
    • 3.2 COM Based Transformer
  • 4. Transformer處理流程
    • 4.1 SOME/IP Transformer處理流程
  • 5. 總結

1. Transformer概述

1.1 Transformer的作用

Transformer是AUTOSAR中基礎軟件服務層的重要組件,主要作用是對數據進行轉換處理。根據SRS_Xfrm_00001的要求,Transformer負責接收來自RTE(運行時環境)的數據,對數據進行處理后,將結果返回給RTE。Transformer可以執行以下兩類主要操作:

  • 序列化/線性化數據:將結構化數據轉換為線性形式
  • 轉換數據:修改或擴展線性數據,例如添加校驗和

Transformer作為系統服務集群中的BSW(基礎軟件)模塊,為RTE提供服務。它們由RTE調用執行,并可以保持內部狀態,但也可以工作為無狀態組件。

1.2 Transformer的基本特性

根據AUTOSAR SRS對Transformer的規范要求,所有Transformer應具備以下基本特性:

  • 固定接口:提供標準化接口供RTE調用(SRS_Xfrm_00002)
  • 緩沖機制:支持就地(in-place)和復制(copy)緩沖機制(SRS_Xfrm_00003)
  • 錯誤處理:支持將錯誤返回給RTE(SRS_Xfrm_00004)
  • 數據兼容性:能夠處理比預期更多的數據(SRS_Xfrm_00005)
  • 并發執行:支持并發執行(SRS_Xfrm_00006)
  • 數據提取:反序列化轉換器支持提取數據子集(SRS_Xfrm_00007)
  • 輸出格式規范:明確指定其輸出數據格式(SRS_Xfrm_00008)
  • 類別歸屬:每個Transformer屬于特定的Transformer類(SRS_Xfrm_00011)

此外,Transformer可以組成轉換器鏈,由RTE按照指定順序調用鏈中的轉換器。這種配置在系統模板中完成,轉換器鏈的最大長度限制為255個轉換器。


2. Transformer架構

2.1 整體架構

下圖展示了AUTOSAR中Transformer的整體架構,包括其在AUTOSAR分層架構中的位置以及與其他組件的關系:

在這里插入圖片描述

從圖中可以看出,Transformer位于AUTOSAR架構的基礎軟件服務層,主要負責連接應用層的軟件組件與通信服務層的各種通信模塊。架構的關鍵組成部分包括:

  • 應用層:包含軟件組件(SWC),是數據的最終來源和目的地
  • RTE層:包含運行時環境和Transformer管理器,負責協調Transformer的執行
  • 基礎軟件服務層
    • Transformer類:包括COM Based Transformer、SOME/IP Transformer和其他類型的Transformer
    • 通信服務:包括COM模塊和SOME/IP堆棧等,負責底層通信實現

Transformer管理器是RTE的一部分,負責按配置順序調用Transformer鏈、處理錯誤返回以及協調并發執行。所有Transformer都提供標準化接口,支持就地和復制緩沖、錯誤處理及并發執行。

2.2 類層次結構

下圖展示了AUTOSAR中Transformer的類層次結構:

在這里插入圖片描述

該圖描述了Transformer的基類和派生類的層次關系:

  • Transformer基類:定義了所有Transformer必須實現的接口和功能要求(SRS_Xfrm_00001 - SRS_Xfrm_00011),包括:

    • 提供固定接口
    • 執行轉換
    • 支持錯誤處理
    • 支持in-place/copy緩沖
    • 處理超長數據
    • 支持并發執行
    • 指定輸出格式
    • 提供抽象錯誤集合
  • 派生類

    • SOME/IP Transformer:提供SOME/IP協議相關功能(SRS_Xfrm_00101 - SRS_Xfrm_00106)
    • COM Based Transformer:提供COM模塊相關功能(SRS_Xfrm_00201 - SRS_Xfrm_00202)
    • 其他Transformer類型:提供其他特定功能

根據SRS_Xfrm_00009和SRS_Xfrm_00011的要求,AUTOSAR中存在固定的Transformer類集合,每個Transformer必須屬于特定的Transformer類,同時每個類提供一組固定的抽象錯誤集合。


3. Transformer類型

3.1 SOME/IP Transformer

SOME/IP Transformer(可擴展面向服務中間件/IP)是一種專門處理SOME/IP協議通信的轉換器。根據SRS_Xfrm_00101到SRS_Xfrm_00106的要求,SOME/IP Transformer提供以下功能:

  1. 數據序列化:將原子和結構化數據元素序列化為線性數組(SRS_Xfrm_00101)
  2. 通信協議:定義ECU間客戶端/服務器通信的協議(SRS_Xfrm_00102)
  3. 異常通知:支持應用程序的異常通知(SRS_Xfrm_00103)
  4. 錯誤處理:支持服務器端客戶端/服務器通信的自主錯誤反應(SRS_Xfrm_00105)
  5. 擴展數據支持:支持具有標記成員/參數的可擴展數據結構和方法的序列化(SRS_Xfrm_00106)

SOME/IP Transformer的創建動機是為了滿足嵌入式環境中的資源消耗需求,同時兼容各種用例和通信伙伴,可以在不同的操作系統(AUTOSAR、GENIVI、OSEK)上實現,甚至可以在沒有操作系統的嵌入式設備上使用。

代碼示例:SOME/IP Transformer接口定義

/* SOME/IP Transformer接口示例 */
typedef struct {uint16 ServiceId;            /* 服務標識符 */uint16 MethodId;             /* 方法標識符 */uint8 InterfaceVersion;      /* 接口版本 */boolean ExtensibleFormat;    /* 是否使用可擴展格式 */
} SomeIp_ServiceConfigType;/* SOME/IP Transformer序列化函數 */
Std_ReturnType SomeIp_Serialize(const void* dataPtr,          /* 輸入數據指針 */uint32 dataSize,              /* 輸入數據大小 */uint8* targetBufferPtr,       /* 目標緩沖區指針 */uint32* targetBufferSizePtr,  /* 目標緩沖區大小指針 */const SomeIp_ServiceConfigType* configPtr  /* 服務配置 */
);/* SOME/IP Transformer反序列化函數 */
Std_ReturnType SomeIp_Deserialize(const uint8* dataPtr,         /* 輸入數據指針 */uint32 dataSize,              /* 輸入數據大小 */void* targetStructPtr,        /* 目標結構體指針 */uint32* targetSizePtr,        /* 目標大小指針 */const SomeIp_ServiceConfigType* configPtr  /* 服務配置 */
);/* SOME/IP Transformer錯誤處理函數 */
Std_ReturnType SomeIp_HandleError(uint8 errorId,                /* 錯誤標識符 */uint8* responseBufferPtr,     /* 響應緩沖區指針 */uint32* responseSizePtr       /* 響應大小指針 */
);

3.2 COM Based Transformer

COM Based Transformer是一種基于COM模塊配置的轉換器。根據SRS_Xfrm_00201和SRS_Xfrm_00202的要求,COM Based Transformer提供以下功能:

  1. 數據序列化:基于固定數據映射將原子和結構化數據元素序列化為線性數組(SRS_Xfrm_00201)
  2. 配置來源:從COM模塊獲取配置信息(SRS_Xfrm_00202)

COM Based Transformer使Transformer功能可用于使用固定通信矩陣和壓縮數據表示的目標總線系統。它從系統描述中的固定數據映射獲取序列化數據的信息,并從COM模塊ECU配置中獲取配置。

代碼示例:COM Based Transformer接口定義

/* COM Based Transformer配置類型 */
typedef struct {uint16 ComHandleId;          /* COM句柄標識符 */uint8 ComSignalType;         /* COM信號類型 */uint8 ComBitSize;            /* COM位大小 */uint8 ComBitPosition;        /* COM位位置 */boolean ComSignalEndianness;  /* COM信號字節序 */
} ComBased_SignalConfigType;/* COM Based Transformer序列化函數 */
Std_ReturnType ComBased_Serialize(const void* dataPtr,          /* 輸入數據指針 */uint32 dataSize,              /* 輸入數據大小 */uint8* targetBufferPtr,       /* 目標緩沖區指針 */uint32* targetBufferSizePtr,  /* 目標緩沖區大小指針 */const ComBased_SignalConfigType* configPtr  /* 信號配置 */
);/* COM Based Transformer反序列化函數 */
Std_ReturnType ComBased_Deserialize(const uint8* dataPtr,         /* 輸入數據指針 */uint32 dataSize,              /* 輸入數據大小 */void* targetStructPtr,        /* 目標結構體指針 */uint32* targetSizePtr,        /* 目標大小指針 */const ComBased_SignalConfigType* configPtr  /* 信號配置 */
);

4. Transformer處理流程

4.1 SOME/IP Transformer處理流程

下圖展示了SOME/IP Transformer的詳細處理流程:

在這里插入圖片描述

從圖中可以看出,SOME/IP Transformer的處理流程主要包括以下步驟:

  1. 數據輸入:軟件組件發起數據傳輸或服務請求
  2. RTE處理:RTE接收數據并確定Transformer鏈
  3. SOME/IP處理
    • 序列化處理
      • 檢查數據結構
      • 序列化原子和結構化數據
      • 對客戶端/服務器通信添加SOME/IP協議頭
      • 處理可選參數(使用Tag/Length/Value編碼)
    • 反序列化處理
      • 接收線性數組
      • 解析SOME/IP協議頭
      • 處理異常情況
      • 解析Tag/Length/Value編碼
      • 跳過未知/不支持的字段
      • 反序列化數據結構
      • 提取需要的數據子集
  4. 結果返回:返回處理結果給RTE
  5. RTE后續處理:處理可能的錯誤或繼續處理鏈中的下一個Transformer
  6. 完成處理:向軟件組件返回最終結果

這一流程體現了SRS_Xfrm_00106中要求的可擴展數據結構支持,允許在發送方接口定義中任意位置擴展結構/方法,同時接收方如果不需要新成員/參數,則不需要進行適配。發送方也不需要發送可選但當前不可用的結構成員。


5. 總結

AUTOSAR Transformer作為AUTOSAR架構中重要的基礎軟件服務組件,通過提供標準化的數據轉換機制,使應用層軟件組件與底層通信細節解耦,為不同ECU之間的通信提供了強大的支持。

主要優勢

  • 標準化接口:提供一致的接口,簡化軟件組件開發
  • 可擴展性:支持新數據結構和協議的擴展
  • 靈活性:支持多種轉換器類型和轉換器鏈
  • 兼容性:支持不同操作系統和嵌入式環境
  • 錯誤處理:提供完善的錯誤處理機制

應用場景

  • ECU間通信:實現不同ECU之間的數據交換
  • 協議轉換:將應用數據轉換為特定協議格式
  • 數據保護:添加校驗和等保護機制
  • 數據優化:優化數據格式,提高傳輸效率

通過理解和正確使用Transformer,開發人員可以更好地實現AUTOSAR架構下的軟件系統,確保系統的可靠性、可維護性和可擴展性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90362.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90362.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90362.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【算法專題訓練】05、最大單詞長度乘積

1、題目信息 https://leetcode.cn/problems/aseY1I/description/ 給定一個字符串數組 words,請計算當兩個字符串 words[i] 和 words[j] 不包含相同字符時,它們長度的乘積的最大值。假設字符串中只包含英語的小寫字母。如果沒有不包含相同字符的一對字符串…

Tenable 利用 AI 升級漏洞評級系統,提升風險優先級排序能力

網絡安全公司 Tenable Holdings Inc. 今日宣布對其漏洞優先級評級系統(Vulnerability Priority Rating,VPR)進行人工智能驅動的升級,旨在幫助機構更準確地識別和應對最具威脅性的漏洞。從60%到1.6%的精準聚焦Tenable VPR 系統于20…

安全插座項目規劃書

安全插座項目規劃書 一、項目概述 本項目旨在設計并開發一款安全插座,通過集成多種安全保護功能,有效預防因電氣故障引發的安全問題,如過載、短路、漏電等,為用戶提供更加可靠的用電環境。 二、技術架構 (一&#xff0…

Logcat日志分析

1. AndroidRuntime關鍵字(跟整個系統代碼相關) 一、AndroidRuntime的核心作用 AndroidRuntime是Android系統負責啟動和運行應用程序的核心組件,當應用因未處理的異常(如空指針、數組越界等)導致崩潰時,Andr…

Apache Ranger 權限管理

編譯 mvn install package -DskipTests -Dfast -Drat.skiptrue -Dmaven.test.skiptrue -Dcheckstyle.skiptrue -Denforcer.skiptrueinstall.properties PYTHON_COMMAND_INVOKERpython#DB_FLAVORMYSQL|ORACLE|POSTGRES|MSSQL|SQLA DB_FLAVORMYSQL ## # Location of DB client l…

tailscale+GitLab

1. 查看當前 LFS 的遠程地址 bash 復制 git lfs env | grep Endpoint 你會看到類似: Endpointhttp://192.168.3.36/makeup/classicparking.git/info/lfs (authbasic) 2. 修改 LFS 的遠程地址 使用以下命令將 LFS 的地址改為 http://100.125.163.56&#xff1…

微信通話自動錄音器

—————【下 載 地 址】——————— 【?本章下載一】:https://pan.xunlei.com/s/VOVvLpQuRxYadClkxTGwO2OnA1?pwdvind# 【?本章下載二】:https://pan.xunlei.com/s/VOVvLpQuRxYadClkxTGwO2OnA1?pwdvind# 【百款黑科技】:https://uc…

05.原型模式:從影分身術到細胞分裂的編程藝術

目錄序幕:當復制對象成為戰略需求一、原型工廠的核心裝備庫1.1 Java原生的淺克隆術二、深度克隆的煉金法則2.1 手工克隆大法(硬核派)2.2 序列化克隆術(魔法派)三、原型模式的工業級裝配3.1 原型注冊管理局3.2 Spring框…

[NLP]如何在 Synopsys VCS 仿真腳本中處理多個 UPF 文件的加載

如何在 Synopsys VCS 仿真腳本中處理多個 UPF 文件的加載 摘要:我將詳細解釋在 Synopsys VCS(VCS)模擬腳本中如何處理多個 UPF 文件的加載,包括原理、命令選項、示例腳本以及注意事項。這基于 VCS 的 native low power verification 支持(IEEE 1801 UPF 標準)。如…

DNF: Decouple and Feedback Network for Seeing in the Dark

DNF:用于暗光視覺的解耦與反饋網絡 摘要 RAW 數據的獨特屬性在低光照圖像增強方面展現出巨大潛力。然而,現有架構在單階段和多階段方法中的固有局限性限制了其性能。跨兩個不同域(噪聲到干凈和 RAW 到 sRGB)的混合映射&#xff0c…

論文精讀《Frequency domain watermarking: An overview》

1. 數字水印技術基礎概念與發展背景 數字水印技術作為信息隱藏領域的核心分支,其發展歷程可以追溯到20世紀90年代中期計算機網絡和信息技術的快速發展時期。隨著大量版權作品以數字文件形式存在,電子出版逐漸普及,傳統的版權保護方法面臨前所未有的挑戰。數字水印技術應運而…

北斗短報文兜底、5G-A增強:AORO P1100三防平板構建應急通信網絡

公網中斷的災區現場,泥石流阻斷了最后一條光纜。一支救援隊卻在廢墟間有序穿行,隊長手中的三防平板正閃爍著北斗衛星信號,定位坐標與傷亡信息化作一行行短報文,穿透通信孤島直達指揮中心。這是AORO P1100三防平板搭載的北斗短報文…

Java排序算法之<冒泡排序>

目錄 1、冒泡排序介紹 2、算法步驟 3、Java 實現(帶優化) 4、算法復雜度分析 5、優點與缺點 前言 排序算法的“進化路線”: 冒泡排序 → 選擇排序 → 插入排序 → 希爾排序 → 快速排序 → 歸并排序 → 堆排序↓Java 內置排序&#xff…

生活毫無頭緒就毫無頭緒吧(7.24)

最近好長一段時間沒有記錄了明顯感覺自己陷入了混亂中作息規律,專注力,心流,營養的飯菜如今下筆也沒有什么頭緒,前些日子本有感想但是又疲于記錄,忘了許許多多最近在寫論文,但嘗試了游泳——蛙泳感覺太神奇…

vulhub-master 靶場Apache(httpd)漏洞

apache_parsing_vulnerability 漏洞原理在Apache1.x/2.x中Apache 解析?件的規則是從右到左開始判斷解析,如果后綴名為不可識別?件解析,就再往左判斷。如 1.php.xxxxx,Apache會試圖識別你的代碼,從右往左一個一個試。漏洞攻略參加一個1.php.jpg文件&…

Python 數據分析(一):NumPy 基礎知識

目錄 1. 簡介2. 使用 2.1 ndarray2.2 數據類型2.3 索引與切片2.4 副本與視圖2.5 軸的概念2.6 基本運算2.7 常用操作 1. 簡介 NumPy(Numerical Python)是一個開源的 Python 科學計算擴展庫,主要用來處理任意維度數組與矩陣,通常…

編程與數學 03-002 計算機網絡 04_數據鏈路層功能

編程與數學 03-002 計算機網絡 04_數據鏈路層功能一、數據鏈路層的基本任務(一)封裝成幀(二)差錯控制(三)流量控制二、差錯檢測與糾正方法(一)常用的差錯檢測碼(二&#…

latex中既控制列內容位置又控制列寬,使用>{\centering\arraybackslash}p{0.85cm}

示例:\usepackage{array} % 為 >{...} 修飾符提供支持\begin{table*}[ht!]\centering \begin{tabular}{p{2.8cm} >{\centering\arraybackslash}p{0.85cm} >{\centering\arraybackslash}p{0.85cm} >{\centering\arraybackslash}p{0.85cm} >{\ce…

醫療數據挖掘Python機器學習案例

1. 醫療數據挖掘概述 醫療數據挖掘是從大量的醫療數據中提取有價值信息和知識的過程,旨在輔助醫療決策、疾病預測、治療方案優化等。隨著醫療信息化的發展,電子病歷、醫療影像、基因數據等多源異構數據不斷積累,為醫療數據挖掘提供了豐富的素…

人工智能概述

🌟 歡迎來到AI奇妙世界! 🌟 親愛的開發者朋友們,大家好!👋 我是人工智能領域的探索者與分享者,很高興在CSDN與你們相遇!🎉 在這里,我將持續輸出AI前沿技術、實…