一、CAN总线的硬件属性
CAN即控制器局域网(Controller Area Network),这一技术源于博世公司,是为了汽车内部各电子控制单元ECU的互联设计的,我们可以由这一点想到CAN具有的几点特性:多节点通讯(汽车内部电控系统众多),传输速度快(电控系统反应要快,安全问题),可靠性要高(汽车内部电控系统众多而复杂,涉及人身安全,要求可靠性极高),等等。那么我们从硬件到软件来看一看CAN的特性。
1、电平标准
电平标准是通讯的最基础的物理层特性,CAN也是一种差分电平通讯。
所谓的隐性电平就是总线上无信息传输时默认的状态,+2.5V。
CAN的电平标准定义的是显性电平和隐性电平,如上图,总线处于未激活状态时各节点可以修改总线状态。这里隐性电平定义为逻辑的“1”,显性电平为逻辑的“0”,这样节点修改为显性电平时必然就修改了总线状态,1*0=0,0具有优先级.
一种CAN收发器:TJA1050系列是常用的CAN总线收发器之一,我们来看看规格书学习一下CAN的硬件基础。
可以看出输出默认为VCC/2=2.5V,然后通过MOS管上下拉来输出差分电平。
就像RS485等差分信号一样,差分信号的传输具有更好的抗干扰特性。
CAN采用这种电平方式原因之一是基于CSMA/CD“载波侦听多路访问/冲突检测”(Carrier Sense Multiple Access with Collision Detect)的总线通讯原理,简单的原理解释可以引荐知乎https://www.zhihu.com/question/53821741上的一个通俗解答,也很形象的解释了CAN通讯的方式:
下图是CAN通讯的数据帧格式:
参考下图波形更清晰:
三、CAN的几大特点
1、总线利用率高
这个应该是CAN总线通讯的最大优点之一,因为CAN是一种多主从的结构,通过广播方式进行一对多通讯,各节点地位平等,抢占总线来通讯,因此很好的提高了总线的通讯效率。
2、传输速度快
下图是几种CAN标准的规定。
可见最高速度能达到1M。
3、可靠的错误处理和检错机制
因为CAN总线在数据链路层进行了更详细可靠的设计,譬如错误帧、超载帧、CRC校验等异常处理。因此在传输可靠性上有很大优势。各节点不断检测总线状态,具有错误退出机制,因此节点不会影响总线其他节点通讯状态。
4、硬件优势
CAN的硬件设计成本也很低,组网性能更优,综合性价比很高,比较RS485等而言,优点明显。
5、通讯距离影响通讯速度,而且1M的带宽在目前多媒体局域网应用要求上相差也大。
小结:总而言之,CAN通讯相比较常用的232 485来讲,还是具有更好的优点,多学习,多应用,总结和思考。