BswM如何控制通信收发
2026/7/30 21:39:47 网站建设 项目流程

一、参考官方文件

实际上BswM(Basic Software Mode Manager)本身并不直接发送或接收CAN报文,它只是模式管理者(Mode Manager),通过执行Action去控制COM、PduR、CanSM等模块,从而达到"允许通信"或"禁止通信"的目的。AUTOSAR规范中,BswM负责根据规则(Rules)仲裁模式请求,并执行诸如启动/停止COM的I-PDU Group、启停PduR Routing Group等动作;CanSM则负责根据ComM请求控制CAN网络状态。真正的数据发送仍由COM、PduR、CanIf、Can Driver等通信栈完成。

二、理解通信协议栈

一条CAN报文的发送路径:

SWC--RTE--Com--PduR--CanIf(CanIf_Transmit--Can_Write发)--Can Driver(发完时触发发送完成中断)--Can Controller--Can Bus--另一个ECU

一条CAN报文的接收路径:

Can Bus--Can Controller(收发器-MCU)--Can Driver(MCU触发中断)--CanIf(CanIf_RxIndication)--PduR--Com--RTE--SWC

BswM并不在数据流里面,它负责的是通过执行Action去控制COM、PduR、CanSM等模块。

BswM ----------------- | | | COM PduR CanSM

BswM控制是否允许通信,而不控制报文如何发送。

三、BswM控制通信主要的三种方式

1、控制COM的IPDU Group(最普遍常用)

COM里面所有报文都会属于某个IPDU Group。

BswM可以执行:

MODE:ON Com_IpduGroupStart(); COM开始发送所有TxPDU COM开始接收所有RxPDU MODE:OFF Com_IpduGroupStop(); COM不再发送 COM收到数据直接丢弃 收发已经关闭

这是BswM最经典的通信控制方式。BswM负责启动/停止COM的I-PDU Group,并可同时控制相关信号的Deadline Monitoring。

2、控制PduR Routing Group(不常用)

通信流程:

COM--PduR--CanIf

PduR负责路由。

BswM执行:PduR_EnableRouting(); 正常发送: COM ↓ PduR ↓ (TxRoutingGroup1) CanIf BswM执行:PduR_DisableRouting(); Routing断开: COM ↓ PduR ↓ XXXXX 断开 CanIf COM虽然发送,但发不出去 接收同理: CanIf ↓ PduR ↓ XXXXX 断开 COM 数据不会上传 即Routing Group关闭以后,通信停止

3、控制CanSM(控制CAN网络)

这一种控制方式更加底层。

在AUTOSAR中,ComM向CanSM请求通信模式,CanSM负责切换CAN控制器及收发器状态,并把状态变化通知BswM;BswM据此执行进一步动作。

CanSM 并不直接写寄存器 CanSM 通过 CanIf 和 Can Driver 去控制 Controller CAN Controller的常见状态有: STOPPED STARTED SLEEP(部分支持低功耗模式) CanSM ↓ CanIf_SetControllerMode() ↓ Can Driver(MCAL) ↓ Can_SetControllerMode() ↓ CAN Controller(硬件)

CanSM 并不是直接操作硬件,而是通过 CanIf 和 MCAL Can Driver 将 CAN Controller 切换到 STARTED、STOPPED 或(部分硬件支持的)SLEEP 等状态,从而实现 CAN 网络的启动、停止和休眠。

MCAL CAN Mailbox,实际上 Mailbox 就属于CAN Controller的一部分。

还需注意区分CAN Controller和CAN Transceiver(CAN收发器)

CAN Controller(CAN控制器)的作用:

  • CAN协议处理
  • Mailbox管理
  • FIFO管理
  • CRC
  • 仲裁
  • Filter(接收过滤)
  • 中断

它属于 MCU 内部的一个硬件外设。

CAN Transceiver(CAN收发器)的作用:把 MCU 的数字信号转换成 CANH/CANL 差分信号。

Controller 管协议,Transceiver 管电平。

四、图文总结

Application ↓ ComM │ Request FULL/NO COMM ↓ CanSM │ Start/Stop CAN Controller ↑ BswM ┌─────────────┼─────────────┐ │ │ │ ↓ ↓ ↓ Start/Stop Enable/Disable Request COM I-PDU PduR Routing Communication Group Group Mode │ │ └──────► 通信数据路径 ◄──────┘

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询