Autosar之Com模塊

Com模塊主要實現了Signal在I-PDU中的封裝及解析功能,為RTE層提供了基于Signal的發送與接收接口,實現了基于Signal的網關功能,實現了PDU的不同發送模式,以及Signal濾波,Update bit,Pdu Counter等功能
在這里插入圖片描述
圖 Com模塊層次圖

Com模塊處于AUTOSAR架構中的通信服務層,其下層模塊為PduR模塊,上層模塊為RTE。
I-PDU Group功能
I-PDU Group功能介紹
Com模塊實現基于I-PDU Group的使能控制,接收超時檢測使能控制。根據I-PDU與I-PDU Group的包含關系,間接實現對各個I-PDU的通信使能控制及Rx I-PDU的接收超時檢測使能控制。

I-PDU Group使能控制功能實現
通過ComIPdu配置參數ComIPduGroupRef,以及ComIPduGroup的配置實現將ComIPdu進行不同的分組。對于不從屬于任何ComIPduGroup的ComIPdu其通信使能狀態初始化之后一直為Enable且不可動態更改,Rx ComIPdu接收超時使能狀態初始化之后一直為Disable且不可動態更改。

IpduGroupVector中的每個bit位代表一個ComIPduGroup,通過調用Com_IpduGroupControl和Com_ReceptionDMControl實現ComIPduGroup通信使能控制和接收超時使能控制,間接實現每個ComIPdu的控制。

Com提供兩個接口Com_ClearIpduGroupVector和Com_SetIpduGroup實現對每個ComIPduGroup所在IpduGroupVector中對應bit位置0或置1(0表示Disable,1表示Enable)。

Signal封裝解析功能
Signal封裝解析功能介紹
信號的封裝和解析是Com模塊的核心功能,根據各個信號的配置信息將發送Signal封裝到關聯的Tx IPdu數據中,從Rx IPdu數據中解析接收Signal。

Com模塊為RTE/應用層提供了完整的基于Signal/SignalGroup的收發接口。

Signal封裝解析功能實現
信號的封裝和解析涉及的信號配置參數為ComBitPosition,ComBitSize,ComSignalEndianness,ComSignalType,ComSignalLength。Com模塊根據這些配置信息,將發送信號值封裝到對應IPdu報文數據中,從接收IPdu報文數據中解析出接收信號值。

上層通過調用Com_SendSignal來請求非動態長度類型Signal/GroupSignal的發送,調用Com_SendDynSignal來請求動態長度類型(UINT8_DYN)Signal/GroupSignal的發送,調用Com_SendSignalGroup來請求SignalGroup的發送,調用Com_InvalidateSignal來請求Signal發送無效值,調用Com_InvalidateSignalGroup來請求SignalGroup發送無效值,調用Com_SendSignalGroupArray請求上層字節對齊的SignalGroup(已完成各GroupSignal的封裝)發送。

上層通過調用Com_ReceiveSignal獲取非動態長度類型接收Signal/GroupSignal信號值,調用Com_ReceiveDynSignal獲取動態長度類型接收Signal/GroupSignal信號值,調用Com_ReceiveSignalGroup請求SignalGroup的接收,調用Com_ReceiveSignalGroupArray獲取字節對齊SignalGroup的數據值。

IPdu收發功能
IPdu收發功能介紹
Com模塊實現IPdu的收發方式按數據流分兩種類型,即IF方式和TP方式,IF方式通常用于“數據長度較小”的IPdu,而TP方式通常用于“數據長度較大”的IPdu,這里的“數據長度”是相對于傳輸總線來定義的,如CAN總線為8字節,CANFD為64字節,ETH可以達到1000+字節。其中IF IPdu的發送又分為Direct和TriggerTransmit兩種類型,前者發送時機由Com決定,后者發送時機由下層模塊決定。

Tx IPdu從發送時機角度又分為四種模式,即PERIODIC,DIRECT,MIXED,NONE。NONE模式通常與TriggerTransmit,或者調用Com_TriggerIPDUSend/ Com_TriggerIPDUSendWithMetaData來配置實現IPdu的發送。

IPdu收發功能實現
通過ComIPdu的配置參數ComIPduType決定該IPdu通過IF/TP方式進行收發:

1.IF發送:PduR_ComTransmit→ Com_TxConfirmation;

2.IF接收:Com_RxIndication;

3.TP發送:PduR_ComTransmit→N次Com_CopyTxData→ Com_TpTxConfirmation;

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

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

相關文章

【iOS】NSRunLoop

目錄 概念 RunLoop與線程的關系 Runloop對外的接口 CFRunLoopSourceRef Source0 Source1 CFRunLoopTimer CFRunLoopObserver RunLoop的Mode 應用場景 Runloop的內部邏輯 Runloop應用 tableView延遲加載圖片,保證流暢 Timer不被ScrollView的滑動影響 A…

HTTP接口鑒權方式

幾種主流且可行的HTTP接口鑒權方式,從簡單到復雜,各有其適用場景。我將它們分為兩大類:傳統方式和現代方式。一、傳統方式這類方式簡單易用,但通常安全性較低或擴展性較差,適用于內部系統或簡單API。1. HTTP Basic Aut…

DIC技術極端環境案例分享:系泊鏈在海水環境下氫脆化性能測試

實驗結果的具體視頻可詳見以下鏈接:研索儀器DIC技術在極端條件下的應用 01 海水環境: DIC技術在海水環境下的應用核心挑戰在于惡劣的光學條件(如散射、衰減、畸變)、嚴酷的化學/生物環境(腐蝕、生物污損)…

DL00291-聯邦學習以去中心化鋰離子電池健康預測模型完整實現

聯邦學習在鋰離子電池健康預測中的應用:去中心化訓練與客戶選擇策略在鋰離子電池健康預測領域,隨著電池使用環境的多樣化以及電池狀態監測需求的不斷增長,傳統的集中式數據訓練方法逐漸顯現出局限性。為了解決數據隱私保護和大規模數據集中處…

TCP協議大全

什么是TCP?基本定義與屬性TCP(傳輸控制協議)是傳輸層的重要協議,具有面向連接(傳輸前需先建立連接,是發送方和接收方的點對點一對一連接)、基于字節流(以字節流形式傳輸數據&#xf…

當硅基生命遇見碳基萌寵:Deepoc具身智能如何重新定義“寵物監護者”

在東京某高級公寓里,一只布偶貓正優雅地踱步到智能喂食器前。令人驚訝的是,這個通體雪白的喂食器突然"活"了過來——它微微傾斜身體,用柔和的機械音發出問候,同時伸出仿生機械臂輕輕撫過貓咪的背部。這不是科幻電影場景…

線上日志排查問題

1、查異常堆棧 顯示該行及其后面的50行內容,然后通過 less 命令進行分頁查看 grep -A 50 "NullPointerException" a.log | less參數解釋: grep: 文本搜索命令-A 50: After 的意思,顯示匹配行后面的50行“NullPointerException”: 要…

LabVIEW與CAN開發燃料電池監控

?基于 LabVIEW 與 CAN 總線技術,構建了一套多組質子交換膜燃料電池(PEMFC)堆監控系統。系統采用優質硬件設備,通過 LabVIEW 的圖形化編程能力實現數據采集、實時監控與多堆切換控制,穩定可靠,為燃料電池性…

CVPR焦點 | 神經網絡新范式:輕量化與精度并行,重塑視覺任務性能天花板

關注gongzhonghao【CVPR頂會精選】神經網絡卷積想找新亮點?不妨考慮:動態結構設計。作為深度學習架構搜索與高效建模兩大熱點的結合,動態神經網絡憑借自適應推理與高效特征利用的優勢,在視覺識別、視頻理解等任務中脫穎而出&#…

機器學習之集成算法學習

一、集成學習概述集成學習(ensemble learning)通過構建并結合多個個體學習器來完成學習任務,核心思想是 “集眾家之長”—— 就像多個專家共同判斷往往比單個專家更可靠。其關鍵在于如何生成多樣化的個體學習器并設計有效的結合策略。結合策略…

Unreal Engine UE_LOG

Unreal🎮 Unreal Engine - UE_LOG📝 定義🏛 類/宏關聯? 關鍵特性🛠? 常見配置📚 使用方法🔧 基礎語法🔍 示例🪂 典型應用場景🔗 與其他組件對比?? 常見問題與注意事項…

Halcon那些事:什么是動態閾值,如何用dyn_threshold分割圖片

Halcon那些事:什么是動態閾值,如何用dyn_threshold分割圖片 一、什么是動態閾值?為什么需要它? 1. 傳統全局閾值的局限性 2. 動態閾值的核心思想 二、Halcon 中的核心算子:`dyn_threshold` 1. 算子原型 2. 參數詳解 三、工作原理(數學模型) 四、詳細使用步驟與實例 五、關…

Go初級二

Go初級入門(二):變量、常量與數據類型 大家好,歡迎來到《Go初級入門》系列的第二篇!在上一篇文章中,我們介紹了如何安裝Go環境并運行第一個“Hello, World”程序。今天,我們將深入Go語言的基礎語…

《戰神:諸神黃昏》v1.0.668中文版,索尼大作,PC平臺體驗諸神黃昏

[游戲名稱]: 《戰神:諸神黃昏》v1.0.668中文版 [軟件大小]: 175 GB [軟件大小]: 夸克網盤 游戲介紹 《戰神:諸神黃昏》是由索尼制作并發行的動作冒險游戲,作為《戰神4》的正統續作,它繼續了奎托斯與阿特柔斯的神話之旅。在諸神…

AI賦能環保精準治理:AI水質監測溯源快、空氣質量預測施策準,守護生態新效能

傳統環境保護工作長期受限于 “污染監測滯后”“溯源難度大”“治理方案針對性弱” 的問題,而 AI 技術的深度應用,正讓環保工作從 “被動應對” 轉向 “主動預判”,既能實時捕捉污染蹤跡,還能精準制定治理方案,讓生態保…

yolo訓練實例(一)

yolo官網 https://github.com/ultralytics/ultralytics?tabreadme-ov-file 下載python和解除限制 https://www.python.org/downloads/windows/ Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled"…

STM32-BKP備份寄存器與RTC實時時鐘

引言本文主要從BKP備份寄存器和RTC實時時鐘的原理,特性及應用三個方面展開討論,解析它們在STM32中的獨特價值,助力開發者更好的掌握和運用它們。BKP備份寄存器的定義STM32的BKP備份寄存器是一種特殊的存儲單元,它位于備份區域&…

Linux網絡服務(五)——FTP服務詳解與實踐操作手冊

文章目錄前言一、FTP服務概述1.1 FTP基本定義1.2 VSFTP模式分類1.3 FTP端口作用二、FTP作用與工作原理(重點)2.1 FTP的作用、模式及通信方式2.1.1 FTP核心作用2.1.2 VSFTP模式與通信協議2.2 FTP工作原理與流程2.2.1 主動模式工作原理2.2.2 被動模式工作原…

5.3 包管理工具 npm yarn pnpm 對比

基本介紹 工具發布時間開發者定位npm2010 年npm Inc / OpenJS FoundationNode.js 官方包管理器Yarn2016 年Facebook(現 Meta)更快、更可靠的替代方案pnpm2016 年Zoltan Kochan高性能、節省磁盤空間 一、核心機制與設計差異 1. npm(Node Pa…

爬蟲基礎學習-授權認證,cookie認證,異常處理

驗證: HTTPBasicAuthHandler(用戶基本的身份驗證處理) HTTPPasswordMgrWithDefaultRealm(經常和authhandler一起出現)#創建一個密碼管理器 password_mgr urllib.request.HTTPPasswordMgrWithDefaultRealm() #添加進目…