AutoSar_Com 基础概念整理

AutoSAR COM
1.通信模型
发送逻辑:SwcAppSender->Rte->Com->Pdur->CanIf->CanDrv
接收逻辑:CanDrv->CanIf->PduR->Com->Rte->SwcAppReceiver
2.协议数据单元
PDU的概念:通信过程中需要通过其通信堆栈交换的信息实体需要PDU去承载
PDU = SDU(数据服务单元) + PCI(Protocol Control Information);
SDU&PDU的命名规则
数据链路层
autosar中的驱动模块和接口模块都被分配到数据链路层(L层)。因此在这两个模块之间交换的PDU被称为L-PDU
网络层(N层)
与osi相反,autosar中的传输协议模块被分配到网络层。因此在这两个模块之间交换的PDU被称N-PDU
交互层(I层)
位于Rte和Tp模块之间的通信栈的所有模块都分配给autosar中的交互层。因此这些模块之间的PDU交换在Autosar中被命名为I-PDU
使用下层的PduR的API进行发送,PDU在参数中进行传递
Com_RxIndication()
PduR_ComTransmit() --> Com_TxConfirmation()
Com层发送报文的调用顺序
Rte_COMCbkTAck_signal() <-- Com_TxConfirmation()
3.com信号的发送接口
信号的发送:上层调用通过Com_SendSignal来更新信号的值
SWC(arxml系统描述文件)–>RTE–>COM
信号的接收:上层通过Com_ReceiveSignal来读取信号的值
COM(Com_ReceiveSignal)–>RTE–>SWC
4.通信的发送代码ComSendSignal分析
发送代码分析(异步)
信号的配置结构体
报文PDU的配置结构体
长度较大的Pdu数据的Pdu buffer的数据锁定问题
信号的transfer属性
触发trigger属性
pending属性
None属性
信号的更新位的概念
临界段的进入和退出

uint8 Com_SendSignal(Com_SignalIdType SignalId, const void *SignalDataPtr) 
{
	
	// 根据SignalId 标识获取信号结构体
	const ComSignal_type * Signal = GET_Signal(SignalId);
	// 根据IPduHandleId 标识获取Pdu结构体
	const ComIPdu_type *IPdu 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sumerking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值