本文档为AutoSAR通讯部分配置文档,配置工具为Vector公司DaVinci Configurator Pro。
- 模块
- BSW架构
- CAN通讯,通过接口层到PDU Router模块;(路径:CanDrv--CanIf--PduR--Com)
- UDS服务,通过接口层到CANTp模块;(路径:CanDrv--CanIf--CanTp--PduR--Dcm)
- XCP服务,通过接口层到XCP模块。(路径:CanDrv--CanIf--XCP)
-
- Can通讯发送接收流程
- 应用层Send一个数据进COM
- COM写信号进PDU Buffer中
- PDU被PDU Router立刻发送或按周期发送(每个PDU都有一个独立的ID),之后PDU Router辨认总线种类,并把PDU发向不同的下级模块
- Interface根据不同的通道,把报文写入不同的队列
- Driver根据报文的优先级立刻发送报文
- 硬件接收报文
- 由Driver发出Rx中断(函数),之后通过RxIndication,数据被传递到Interface
- 传递到PDU Router
- 传递到COM(如果SWCs使用Data ReceptionTrigger,就通知RTE;否则暂存到Buffer中)
- 信号被RTE读取,然后应用层读取
-
- 各层级间交互
由CAN Driver收取报文生成L-PDU,而后进入CAN Interface进行抽象隔离处理,生成I-PDU,进入PDUR进行分配,根据地址信息(PCI)将I-PDU传入COM,COM对I-PDU的数据信息SDU进行解析,生成signals,signals通过RTE传输给APP层,发送则正好相反。
本章节主要为DaVinci Configurator Pro的配置。
-
- 新建工程以及EB Mcal的导入
配置顺序:没有严格要求,一般过程是先MCAL,再导入dbc(包含诊断报文),然后配置COM,CANIF,PDUR,然后再导入诊断cdd数据库,再配dcm,dem。
填写相应的工程名、路径和作者等,NEXT
选择版本和编译工具等信息(Davince会根据这些信息生成动态代码),Next
-
-
- 导入DBC文件
-
(Input Files->Open the Input Files Assistant->Add->ECU Instance修改为MyECU(当前ECU的节点名叫MyECU(这个根据DBC文件不同而有差异))->Finish->Update Configuration)
导入dbc文件后,自动生成Com、ComM、CanIf、PduR等通信相关的模块的部分配置
(注意:导入时需要将DaVinci Developer软件关闭)
-
-
- 导入EB中生成的Mcal的arxml文件
-
在导入之前,进入Basic Editor将MCU模块删掉
否则会因为DaVinci与EB兼容性的问题,出现两个Mcu(如下图)
File->Import
选择EB中生成的Mcal的arxml文件
因为是第一次导入,所以全选添加(如果是配置变更的导入,需要将Import Mode由Add改成replace再导入),Finish
-
-
- 对工程进行配置
-
对从Mcal导入的模块进行配置,implementation variant按照实际情况修改
然后点击下方黄色Synchronize now,进行同步
至此新建工程以及EB MCAL的导入结束
来源地址:https://blog.csdn.net/leiyijing/article/details/127735739