AUTOSAR COM解析

模块简介

COM是AUTOSAR服务层的模块,介于PDUR和RTE之间,如下架构图所示:

COM的主要功能如下:

  1. 为RTE或者ASW提供面向信号的数据接口;
  2. 通讯控制;
  3. 按不同的发送方式发送信号;
  4. 监控接收的信号,信号超时;
  5.  提供发送成功的通知;
  6. 提供初始值和信号更新指示;
  7. 大小端转换;
  8. IPDU和信号之间的打包盒解析;
  9. 支持大数据和动态长度的数据类型。

认识各种PDU

PDU由SDU和PCI构成:SDU(Service Data Unit)服务数据单元是需要传递的数据;PCI(Protocal Control Information)协议控制单元是数据传递所需的信息,比如包含源和目标信息,PCI在传输端由协议层添加,在接收端再次移除。

  1. I-PDU:Interaction Layer Protocal Data Unit。交互层协议数据单元,对应ISO七层模型的表示层。I-PDU承载着信号。
  2. N-PDU:Networt Layer PDU。网络层协议数据单元,对应ISO七层模型的网络层。TP层和IF层之间交互使用,如单帧、多帧、首帧、流控帧。
  3. L-PDU:Data Link Layer PDU。数据链路层协议数据单元,对应ISO七层模型的数据链路层。IF层和driver层之间交互使用。

需求及其对应的软件实现解读

1、支持多种不同阶段的配置

需求:COM需要支持在不同的编译阶段配置,即配置参数需要能够在不同的编译阶段更改:

  1. Pre-Compile-Time:通常的方式,生成的代码、预处理的指令等。
  2. Link Time:模块外的常数,模块编译完成后还能够再修改。
  3. Post-Build-Time:和2类似,模块外可加载的常量数据,但是数据在特定内存段,可以在整个工程编译完成后修改。比如直接刷新此内存区域即可。

软件实现:ComEnableSignalGroupArrayApi(待补充)

2、为PDUR提供接收指示函数

COM的唯一下层模块是PDU Router,当PDUR接收到I-PDU后,COM应该提供一个函数被PDUR调用,函数名为:Com_RxIndication。

软件实现:

void Com_RxIndication (
PduIdType RxPduId,
const PduInfoType* PduInfoPtr
)

RxPduId:接收PDU的ID;

PduInfoPtr:包含接收到的PDU的长度,以及指向PDU元数据的buffer的指针。

3、为PDUR提供发送确认函数

当PDUR发送I-PDU成功到网络后,应该调用COM提供的发送确认函数,函数名为:Com_TxConfirmation。

软件实现:

void Com_TxConfirmation (
PduIdType TxPduId,
Std_ReturnType result
)

TxPduId:发送成功的PDU的ID;

result:发送结果:E_OK:发送成功、E_NOT_OK

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值