CAN模块
概要
CAN模块是软件最底层中的一部分,用于对硬件进行访问以及提供独立于硬件的接口给上一层级的软件使用。
在AUTOSAR软件架构中,只有CANIF模块可以访问CAN模块的资源。
CAN模块提供初始化发送的服务函数以及调用用于指示相关事件的回调函数,这些函数都是独立于硬件的。此外,CAN模块提供服务函数用于控制在一个CAN硬件单元内的CAN控制器的的行为和状态。
不同的CAN控制器可以被一个CAN模块控制,只要这些CAN控制器属于同一个CAN硬件单元。
模块配置
Can模块的代码配置是特定于Can控制器的,如果可以选址控制器片上,代码生成工具可以模块微控制器特定。如果可以控制器外部设备,生成工具不得微控制器。可以配置的有效值依赖于硬件。因此,这些规则和约束不能在标准中给出。配置工具负责做一个静态配置检查,也关于模块之间的依赖关系(例如端口驱动程序,单片机驱动程序等)。
ETAS中配置CAN是为了适配CAN通信有关的其他模块,保证配置项的一致,避免在代码集成阶段额外的工作。配置时,需要参考对应项目的EB Tresos配置内容,进行手动同步。ETAS ISOLAR中主要配置或修改内容如下:
CanGeneral:
无关联内容,可不配置。
CanConfigSet/CanController
参考EB Tresos中的配置内容,保证CAN节点名称一致。
CanConfigSet/CanHardwareObject
参考EB Tresos中的配置内容,保证CAN HW Handler名称一致。
CanConfigSet/其他
无关联内容,可不配置
自动配置生成
ISOLAR软件可以通过导入DBC、ODX等文件,创建系统配置,进而通过系统配置生成部分底层软件配置。
以CAN模块为例,通过ConfGen工具,可以自动生成CAN节点、CANObject配置,其他配置一般以默认值填充。
Step1
DBC文件检查
删除属性: BA_ "GenSigStartValue" SG_ xxx SigName;
补充节点信息: BU_: VCU ABS …
补充每帧报文的接收发送节点: BO_ CanID MsGName: DLC ABS
SG_ SigName : 0|2@1+ (1,0) [0|3] "" VCU
Step2
导入DBC文件
Step3
生成配置
Step4
参考<模块配置>对生成的CAN模块配置进行修改、适配。
参考文档
[1] AUTOSAR_SRS_CAN.pdf
[2] AUTOSAR_SWS_CANDriver.pdf
[3] AUTOSAR_SRS_SPALGeneral.pdf
[4] RTA-BSWReferenceGuide.pdf