关键词
嵌入式、C语言、autosar、OS、BSW
平台说明
项目 | Value |
---|---|
OS | autosar OS |
autosar厂商 | vector , |
芯片厂商 | TI 英飞凌 |
编程语言 | C,C++ |
编译器 | HighTec (GCC) |
autosar版本 | 4.3.X |
一、背景
介绍了一个信号如何从应用层传输到CAN总线的函数调用。note:该报文类型为应用报文
处理方式为轮询模式
二、PDU转换
详情查看[AutoSar]BSW_Com 01 Can通信入门。
应用层将要发送的值通过Rte_Write_XX接口更新到COM 的I-PDU shadow buffer中,然后COM再向下一步一步传到 PduR—>CanIf–>CanDriver 最终到CAN总线上。
三、函数调用
typedef struct
{
SduDataPtrType SduDataPtr;/*数据存放指针*/
PduLengthType SduLength;/*DPU长度*/
} PduInfoType;
1.调用Com_SendSignal,后续函数会将值写入COM buffer。
2.BSW schedule -->Com_MainFunctionTx会在条件满足后将PDU传到PDUR上。
四、发送确认流程
如果勾选了confirmation,则会当发送成功后从CAN开始–>canif–>pdur—>com开始确认流程。
Canif_TxConfirmation()–>PDUR_TxConfirmation()—>Com_Canif_TxConfirmation().