目录
一、为什么会出现CANFD?
1、信号数量大量增加
2、新要求,新总线系统
3、CAN性能限制
4、更短的位时间也能满足
???CAN是否会被取代?
二、CANFD优点
1、更多数据,更低总线负载率
2、开发更简单
3、通信控制器向下兼容
4、新旧控制器并行使用
5、沿用现有的CAN知识
CAN和CANFD硬件兼容
6、CANFD控制器支持经典CAN
三、CANFD 帧类型
1、标准格式和扩展格式
2、CANFD没有远程帧
3、RRS取代RTR
一、为什么会出现CANFD?
1、信号数量大量增加
最近数十年,人们的出行方式得到极大的改善,汽车行业也得到了迅猛的发展,汽车嵌入式系统结构也发生了重大的变化,最明显的就是车上电子器件的数量,可以说是增涨了好几倍,如果还是之前的CAN、LIN总线,哪些只能满足数百个信号的传输,而今天这个数字已经达到了五位数,并且还在发展中,因此CANFD就应运而生了。
2、新要求,新总线系统
随着数据量的增多,CAN总线上面的负载越来越来越高(CAN总线为广播信号);因此除了对带宽的要求在不断的增加,对确定性的系统行为需求也在不断的增加,这也导致了新总线系统的开发不得不出现。因此出现了主要用于信息娱乐的MOST总线,确定性的总线FlexRay,主要用在驾驶辅助相关的功能上,而在低端带宽上,引入了成本极其低廉的LIN总线解决方案,主要用在实时性不高的系统例如电动尾门、座椅、车窗等,然而这么多总线的出现依然没有替代CAN总线的统治地位,它依然是今天的主流。
3、CAN性能限制
CAN总线的性能限制主要是由于自身的属性所决定的,在报文传输过程中,CAN总线网络中是存在多个网络节点都在发送消息的;仲裁段会在报文发送的时候就会开始,并且贯穿于报文发送过程的始末状态;这也就意味着,一个位的传输事件一定不小于节点从一个端点到另一个端点时间的2倍。比如:在一个40米的CAN总线上,一个传输所需要的时间是一定不会小于1微秒,也就是说最大传输速率会小于1Mb/s。
4、更短的位时间也能满足
但在CAN报文仲裁阶段和应答场之间,仅允许一个发送节点。因此,这一部分对位时间的最小持续时间没有限制。那么在博世的工程师看来,如果在CAN报文这一部分提高传输速率会怎样?只需在两个不同的传输速率之间切换:在CAN报文的开头和末尾切换为慢速,在中间切换为快速。这就是CAN FD的基本概念
???CAN是否会被取代?
上面其实已经回答过这个问题,CAN是不会被取代的,极少数需要速度更快、带宽更宽、价格便宜的才会替代,整体来说CAN总线在速度、带宽、价格平衡性最好的一款总线,其他的总线都会因为各种各样的限制导致无法进行普及,并且软件、硬件、系统转换为新技术的开发工作巨大。当前各种CAN的新方案也在探索之中,比如多路CAN、速度更高的CANFD、CANXL等。因此短时间内不用担心被取代的问题,依然是汽车上最重要的总线之一。
二、CANFD优点
1、更多数据,更低总线负载率
传输速率更快,当前支持的最大传输速率可到达10 Mbit/s,同样的数据,总线负载率会降低很多,一帧报文可以传输更多的数据场。例如:如果CANFD以8倍的速度传输数据场,那么CANFD传输在同样的时间内传输数据接近CAN的5倍,并且只需要一个原来八分之一的ID。
2、开发更简单
1)总线负载率问题将大大减少
2)不再需要使用多条CAN总线
3)即使未能消除对网关的需求,也会大大减少
4)由于每一帧可以承担更多的有效负载,因此需要的数据段更少
5)使用更少的帧,获得更理想的有效负载与开销数据比
3、通信控制器向下兼容
为了确保CANFD能够正常的工作,因此需要新的CANFD控制器,而且又为了兼容旧的CAN协议,并且能够正常的处理经典CAN,将CAN总线上的各个ECU逐渐替换为支持CANFD的控制器,就能够保证ECU既能够支持经典CAN又能够支持CANFD,平缓的实现了过度,无论是软件和硬件都能够完美的适用。
4、新旧控制器并行使用
汽车上有很多ECU,然而并非需要将所有的ECU都更换为支持CANFD才能直接使用,上面说过,当前车上存在的ECU数量众多,因此车身、娱乐、控制等等模块都是使用不同的总线进行交互的,因此会存在多条总线共存的情况,并且单个ECU也可以存在多条总线,他们可以是经典CAN,也可以是CANFD,因此只需要将他们分别挂在不同的总线即可,这样就能实现新旧控制器的并行使用。
5、沿用现有的CAN知识
CANFD还有一个非常大的优点就是,它并非一个全新的技术,个人认为它与经典CAN的相似度达到95%以上,甚至如果稍微偏一点应用,那几乎与经典CAN毫无差别;这也就意味着做经典CAN的测试和开发工程师来说,几乎不花费太多的学习成本,即可实现CANFD的应用。
CAN和CANFD硬件兼容
6、CANFD控制器支持经典CAN
CAN FD控制器可以发送和接收经典CAN帧以及CAN FD,但经典CAN控制器接收到CAN FD帧报文时将始终使用错误帧进行响应:因为在经典CAN中,认为保留位的显性位的值为1是违反规则的;因此在经典CAN中将采用错误帧来回复该无效值。故而传统的CAN控制器不支持CAN FD帧。
三、CANFD 帧类型
1、标准格式和扩展格式
CANFD与经典CAN类似,同样采用两种类型的数据格式: 具有11位标识符的标准顿和具有29位标识符的扩展帧。因此,只需要对CANFD进行微调即可使用CANopen、SAE-J1939、ISO-14229等相关的高层协议。
2、CANFD没有远程帧
这里是CANFD一个特殊的点,由于CANFD中没有为远程帧定义单独的格式,因此导致CANFD没有了远程帧,不过这对于使用来说没有任何的影响,远程帧没有数据场,因此提高传输速率也没有用(CANFD的高速率是体现在数据段的),因此经典CAN的远程帧请求帧也可以作为CANFD的远程帧使用。
3、RRS取代RTR
与上面对应,因为CANFD没有了远程帧,因此RTR位也是可有可无的存在,所以就被RRS(Remote Request Substitution远程请求替代位取代,并始终显性);帧起始(SOF)、标识符和扩展位标识符(IDE)保持不变;另外CANFD结束应答位(ACK)、界定符(DEL)、间隔场(TM)保持与经典CAN一致。CANFD和经典CAN的区别仅仅是在IDE与应答位之间的内容进行了部分的修改。