本文主要是介绍达芬奇CAN配置----CANIF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CANIF是属于承上启下的一层,为CAN抽象层的范畴,对接MACL的CAN驱动层,
对接CANIF的上层为多种,PDUR、CANTP、CANSM、CANNM、ECUM,具体上层往哪边传,需要你在配置的过程中选,DBC中对相应的信号也要配置好,如:哪些是诊断报文、哪些是网络管理报文、XCP不需要在DBC中做特殊的处理,在配置的过程中选到XCP协议即可
在导入 dbc后,配置完CAN模块,从Communication->PDUs->Modules->CanIf,首先点开CanIfRxPduCfgs,配置接收模块中的每个报文的配置:
主要是长度检测,Basic和Full 选择,每条报文都必须配置,还有一个比较重要的就是Upper Layer选择,如果是普通的CAN报文,我们都会默认选PDUR,当然你也可以选择 CDD去手动处理,特别是做网关路由开发,有的需要这样选择,至于为什么选择,这个需要单独讨论。
有时候选择upper Layer到CAN TP会报错,选不到,那是因为你的其它模块没有配置好,这个具体问题后面再讨论,CANIF的发送配置也类似,打开CanIfTxPduCfgs,与接收类似,需要配置Tx Buffer,如果选择了Full CAN,tx Buffer则会自动给你生成,这里要注意,需要先在Basic CAN的状态,选择发送的Basic邮箱,再点击Full复选框,这样它就会基于你选的Basic CAN这一路来创建FUll CAN的邮箱,要不然它随机生成的FULL Buffer可能不对,生成到其它路CAN去了,这一点切记
诊断报文配置,我们的项目是CANFD诊断报文,既支持CANFD,又支持CAN诊断,所有会生成两个RX和两个TX,这个不是错误,之前没理解,一直以为是错误,如果只想要CANFD诊断,需要在DBC中修改相应的参数,CANFD-Only打开即可。
XCP配置比较简单,直接upper layer选中到XCP即可。
当然配置过程中也可能会出现乱七八糟的错误,具体问题具体分析,总体思路跟大致如此。
这篇关于达芬奇CAN配置----CANIF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!