[国产单片机] 如何从普通CAN升级至CAN-FD?

[复制链接]
5195|0
 楼主| Dick Hou 发表于 2024-10-14 10:54 | 显示全部楼层 |阅读模式
本帖最后由 Dick Hou 于 2024-10-14 10:59 编辑

1 CAN和CAN-FD的区别CAN最高速率为1Mbps,每帧最大传输8字节
CAN-FD采用可变位速率,数据段最大可超过10Mbps,多数设计采用5Mbps或8Mbps
每帧最大传输64字节
CRC计算方式不一样,且增加了位填充计数(stuff count)
增加BRS位(位速率切换)和ESI位(错误状态指示)
增加TDC(传输延迟补偿)

2 CAN升级至CAN-FD

2.1 硬件
MCU主控
用得较多的STM32F042/072/091,以及STM32F103。可以直接使用闪芯微的FCM32F075/FCM32F095代替,主要特点:
引脚兼容,软件二进制兼容(软件开发工具不变,硬件烧写/调试工具不变),电源电压1.8~5.5V,最高频率72MHz,硬件除法及开方
支持双CAN-FD
支持USB与CAN同时使用
闪芯微为目前唯一一家做到STM32F072/091无缝升级至CAN-FD的厂家!

CAN PHY
PHY应该升级到支持CAN-FD的相应器件

2.2 软件
因为CAN-FD增加了一些功能,因此,FCM的exCAN IP在兼容STM32的bxCAN基础上,扩充部分位,用以支持CAN-FD:
  • FDOE,CAN-FD模式允许
  • BRSE,位速率切换允许
  • NISO,ISO/BOSCH模式
  • TDC相关位,传输延迟补偿的相关设定
  • ESIMOD,错误状态指示模式
  • DBTR相关位,数据段的位速率设定
  • FDF/R1/BRS/ESI,数据帧中的相关位
只要在原来的应用上,补充以上位的设定,即可添加CAN-FD的支持,如下所示:

另外,由于CAN-FD支持最大64字节数据帧,因此,访问FIFO的方式在CAN-FD模式,作出了改变:
  • 对于发送,连续写入TDLxR寄存器
  • 对于接收,连续读出RDLxR寄存器
以上相关的底层驱动,FCM已提供适配,只要替换相应h/c及可

FCM提供双CAN-FD的例子,且CAN及CAN-FD的应用都有客户在稳定出货。
有任何需求,请至“闪芯微”网站查看联系方式。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

252

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部