层层交互,组件解耦:Autosar通信BSW详解

Autosar通信模块BSW分析

本文将详细介绍Autosar通信模块BSW中的各个组件,并以Vector的达芬奇为例说明接口调用关系和原理。

COM组件

COM组件是应用层和BSW通信模块之间的接口。应用层无需关心数据走什么总线,只需要与COM交互。COM将数据分配到相应的总线,也将不同总线的数据汇总上传给应用层。

应用层通过Com_SendSignal接口将数据发送给COM。COM将数据写入PDU,再通过PduR_ComTransmit接口发送给PDU Router。

反之,PDU Router通过PduR_ComTransmit接口将接收到的数据发送给COM。COM将数据发送给应用层。应用层通过Com_ReceiveSignal接口读取数据。

PDU Router组件

PDU Router的功能是将COM发送下来的PDU分发到相应的总线,也将不同总线接收到的PDU发送给COM。

COM通过PduR_ComTransmit接口将PDU发送给PDU Router。PDU Router解析PDU,确定其所属总线,然后调用相应总线的PduR_Transmit接口将PDU发送出去。

各总线通过PduR_RxIndication接口将接收到的PDU发送给PDU Router。PDU Router调用PduR_ComTransmit接口,将PDU发送给COM。

CAN Interface组件

CAN Interface管理CAN总线的发送接收队列,以及CAN FD和CAN主从站配置。它与硬件无关,由下层的CAN Driver实现硬件交互。

PDU Router通过PduR_CanIfTxConfirmation接口将发送结果发送给CAN Interface。CAN Interface确认PDU是否发送成功,写入发送结果。

CAN Interface从发送队列中取出PDU,通过CanIf_Transmit接口将PDU发送给CAN Driver进行发送。

CAN Driver通过CanIf_TxConfirmation接口将PDU的发送结果发送回CAN Interface。CAN Interface更新发送结果。

CAN Driver通过CanIf_RxIndication接口将接收到的PDU发送给CAN Interface。CAN Interface将PDU发送给PDU Router。

CAN Driver组件

CAN Driver实现了与MCU的CAN模块交互,完成CAN总线的发送和接收功能。

它接收来自CAN Interface的发送请求,通过MCAL中的CAN接口与CAN模块交互,在总线上发送PDU。发送完成后,它通过CanIf_TxConfirmation接口将结果发送给CAN Interface。

当CAN模块接收到数据时,它通过CanIf_RxIndication接口将接收到的PDU发送给CAN Interface。

Trcv Driver组件

如果使用外置的CAN收发器,则需要Trcv Driver组件实现与其交互。CAN Driver与Trcv Driver进行交互,Trcv Driver再与CAN收发器通信,来实现CAN消息的发送和接收。

CAN Driver通过Trcv_Write接口将发送数据传给Trcv Driver。Trcv Driver与CAN收发器交互,在CAN总线上传送数据。发送完成后,通过Trcv_Confirmation接口将结果返回给CAN Driver。

CAN收发器接收到数据后,会通知Trcv Driver。Trcv Driver接收到的数据通过Trcv_Read接口发送给CAN Driver。

综上,Autosar通信模块BSW的组件通过层层的接口调用,实现从应用层到CAN总线的发送,以及从CAN总线到应用层的接收。各组件分工明晰,通过标准接口进行交互,实现了解耦和重用。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江南侠客(上海)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值