基于Tricore的CANFD入门工程

面包芯语   2023-07-11 18:43:55

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

汽车嵌入式开发,很多时候,想学一些东西(eg:CANFD),但又不知道如何下手,这应该是大多数刚入行工程师的苦恼。目前项目上,CANFD的使用已经很普遍,而单纯阅读芯片手册,可能无法透彻的理解CANFD,如果想透彻的理解CANFD,结合目标板去实践是不二选择。


(相关资料图)

官网的MCMCAN_FD_1_KIT_TC375_LK工程用的回环模式,并不能真实发送/接收报文,本文基于官网工程做了二次开发,希望此Demo可以助力大家高效学习CANFD。

本文环境:TC375开发板+Tasking编译器。

(二)CAN_H、CAN_L Pin配置

代码实现如下:

(三)波特率设置

配置代码如下:

如上,设置Normal段速率为500Kbps,Data段速率为2000Kbps,采样点均设置80%。

(四)接收过滤配置

配置代码实现如下所示:

CAN报文的接收过滤主要设置两部分:

1、Global Filter Configuration

主要配置GFC寄存器,本文对Standard帧进行过滤处理,如果与设置的接收范围不匹配,则Rejet,设置GFC寄存器的ANFS位域,如下所示:

注意:Standard Message 0并不是一个具体的寄存器,而是CAN模块专用的RAM区,由实现者根据需要配置所使用的SRAM大小和起始地址。

而CAN模块SRAM区的切割要按照手册要求划分,如下所示:

在500Kbps/2000Kbps通信速率下,一帧64Byte数据长度的CANFD报文(CANID 0x55),数据内容0x55或者0xAA,大概需要320us,如下所示:

对应发送的报文如下所示,CAN ID = 0x55,可以对应如上的解析。

如下图,一帧报文传输用时是一个范围,统计如下所示:

会员权益:(点击可进入)谈思实验室VIP会员

最新资讯