目前在市场上的商用车和工业控制领域中广泛使用CAN总线网络。随着电子、半导体、通讯等行业的快速发展,为了提高汽车的安全性和舒适性,实现工业控制领域的智能化,以及增强网络连接与安全等问题,使得CAN总线的负载急剧增大。这时候CAN总线1Mbps的最高传输速率就显得捉襟见肘。
每个CAN报文只有8字节,当节点需要发送较大的数据报文时很容易受限,所以要传输大于8字节数据时,就要进行分包传输。
由此可见,在一些特殊场景,只有8字节的CAN帧容量给功能的实现带来了许多困扰。
一些常见的问题:
1,传输大于8字节的内容的时候必须分包传输,这就导致了每发一次8字节CAN帧,都需要重新发送ID、CRC、帧结尾等“无用”的数据。
2、CAN控制器与CPU之间的通讯需要一位进行校验,如果没有校验就会导致出错风险,而每个CAN帧只有8字节,再减去1个校验字节,就只有7个字节是有效负载,更加恶化了数据传输。
3、在采取分包传输的方法时,很容易被其他优先级较高的报文插入,或者因为干扰等错误引起报文丢失、抑或延迟,导致了接受节点的软件判断困难,增加了软件复杂程度。
介绍三种方法解决报文传输数据不够用的解决办法
一、把CAN ID中的某些位当作数据来用
下图所示的就是在29位ID的扩展帧ID中,可以挤出3个字节做数据位。
二、升级到CAN FD
CAN FD协议在2012年Bosch发布了CAN总线的升级协议。CAN FD相较于CAN拥有更高的带宽与更快的传输速率。
CANbridge NT420具有4个CAN通道,其中两个通道也可以作为CAN FD通道使用。
CANbridge NT具有强大处理能力,可以进行消息过滤,ID翻译和数据多路复用技术 (例如需要CAN FD到CAN消息转换)。