我是一只攻城狮

硬件开发者之路之——通讯协议之CAN简介

上一篇 / 下一篇  2018-03-10 11:51:05 / 个人分类:技术生涯

在硬件开发设计中有一类技术点可谓重中之重之一,就是关于通讯接口和协议的设计,个人觉得这一点既简单又复杂,简单在于每一种领域基本都会对应于特定的规范,而且硬件和软件都有严格的标准,自由发挥的地方少,复杂在于接口和协议的种类众多,在特定领域的不同场合综合各方面考虑对于通讯接口的类型选择又需要重点考虑,之前总结过数字电平标准blog/1196765/viewspace-3400516.html,今天就开始来简单梳理一下关于工控系统中的几种通讯协议。
一、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来讲,还是具有更好的优点,多学习,多应用,总结和思考。

TAG: 设计 协议 硬件 硬件开发者 CAN总线

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar
博聚网