型号: PXF0197
CAN总线基础扫盲讲座
CAN总线作为一种工业界的流行总线广泛应于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等各个行业中,它是是一种多主机局域网,所以这样一种总线的潜力是很巨大的,接下来将写几篇入门的小文章,来介绍一下CAN的学习和开发方法,主要是配合我们的开发板,其实入门还是很容易的,通过这几篇文章如果你能建立起一个初步的概念,能够自己搭起自己的一个节点(包括硬件和软件),那就说明你学会了CAN的基本开发技术,实际的工业现场CAN的开发不是那么简单,包括很多要考虑的因素如隔离、可靠性等,但是我们作为初学者建立起基本的概念还是很重要的,基础一旦打好,等到了实际工作中,就会如鱼得水,所以希望正要或是想开发CAN的朋友们能够喜欢这一系列小文章,如果某一篇甚至是某一句话能够给你带来启迪,那将是我最最高兴的,希望大家踊跃评论或是参与讨论,给我一下写下去的信心,呵呵,可以加入我们的群。下面正题正式开始喽!第一篇,当然要介绍一下什么是“能”总线(CAN总线)呵呵
图1. 汽车中的CAN“身影”
一、什么是CAN ?
CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。 一个由CAN 总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力.
二、CAN 是怎样发展起来的?
CAN最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。1993年,CAN 已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。 CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN 仍可提供高达50Kbit/s的数据传输速率。 由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用
三、CAN简介
德国Bosch 公司为解决现代车辆中众多的控制和数据交换问题,开发出一种CAN(Controller Area Network)现场总线通信结构。CAN总线硬件连接简单,有良好的可靠性、实时性和性能价格比。CAN总线能够满足现代自动化通信的需要,已成为工业数据总线通信领域中最为活跃的一支。其主要特点是: ① CAN总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活; ② CAN总线采用独特的非破坏性总线仲裁技术,优先级高的节点优先传送数据,能满足实时性要求; ③ CAN总线具有点对点、一点对多点及全局广播传送数据的功能; ④ CAN总线上每帧有效字节数最多为8个,并有CRC及其他校验措施,数据出错率极低,万一某一节点出现严重错误,可自动脱离总线,总线上的其他操作不受影响; ⑤ CAN总线只有两根导线,系统扩充时,可直接将新节点挂在总线上即可,因此走线少,系统扩充容易,改型灵活; ⑥ CAN总线传输速度快,在传输距离小于40 m时,最大传输速率可达1 Mb/s; ⑦ CAN总线上的节点数主要取决于总线驱动电路,在CAN2.0B标准中,其报文标识符几乎不受限制。总之,CAN总线具有实时性强、可靠性高、通信速率快、结构简单、互操作性好、总线协议具有完善的错误处理机制、灵活性高和价格低廉等特点。
四、CAN 总线是怎样工作的?
CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。下表中展示了OSI开放式互连模型的各层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。已在工业控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC和智能传感器设计的。在汽车工业,许多制造商都应用他们自己的标准。
7 |
应用层 |
最高层。用户、软件、网络终端等之间用来进行信息交换。如:DeviceNet |
6 |
表示层 |
将两个应用不同数据格式的系统信息转化为能共同理解的格式 |
5 |
会话层 |
依靠低层的通信功能来进行数据的有效传递。 |
4 |
传输层 |
两通讯节点之间数据传输控制。操作如:数据重发,数据错误修复 |
3 |
网络层 |
规定了网络连接的建立、维持和拆除的协议。如:路由和寻址 |
2 |
数据链路层 |
规定了在介质上传输的数据位的排列和组织。如:数据校验和帧结构 |
1 |
物理层 |
规定通讯介质的物理特性。如:电气特性和信号交换的解释 |
表1 OSI开放系统互连模型
CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V。
五、CAN 有哪些特性?
CAN具有十分优越的特点,使人们乐于选择。想了想,不想向教科书那样罗嗦很多,就简单概括,也许有些你还不能立刻懂,不过你只要有个印象就行,一些知识直到你用到的时候你才会真正领会!这些特性包括: 1、低成本; 2、极高的总线利用率; 3、很远的数据传输距离(长达10Km); 4、高速的数据传输速率(高达1Mbit/s); 5、可根据报文的ID决定接收或屏蔽该报文; 6、可靠的错误处理和检错机制; 7、发送的信息遭到破坏后,可自动重发; 8、节点在错误严重的情况下具有自动退出总线的功能; 9、报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
六、Philips制造的CAN芯片有哪些?
类别 |
型号 |
备注 |
CAN微控制器 |
P87C591 |
替代P87C592 |
CAN独立控制器 |
SJA1000 |
替代82C200 |
CAN收发器 |
PCA82C250 |
高速CAN收发器 |
|
PCA82C251 |
高速CAN收发器 |
|
PCA82C252 |
容错CAN收发器 |
|
TJA1040 |
高速CAN收发器 |
|
TJA1041 |
高速CAN收发器 |
|
TJA1050 |
高速CAN收发器 |
|
TJA1053 |
容错CAN收发器 |
|
TJA1054 |
容错CAN收发器 |
LIN收发器 |
TJA1020 |
LIN收发器 |
表2 CAN芯片一览表
七、CAN总线如何进行位仲裁?
CSMA/CD是“载波侦听多路访问/冲突检测”(Carrier Sense Multiple Access with Collision Detect)的缩写。 利用CSMA访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。利用这种方法,可以允许多个节点挂接到同一网络上。当检测到一个冲突位时,所有节点重新回到‘监听’总线状态,直到该冲突时间过后,才开始发送。在总线超载的情况下,这种技术可能会造成发送信号经过许多延迟。为了避免发送时延,可利用CSMA/CD方式访问总线。当总线上有两个节点同时进行发送时,必须通过“无损的逐位仲裁”方法来使有最高优先权的的报文优先发送。在CAN总线上发送的每一条报文都具有唯一的一个11位或29位数字的ID。CAN总线状态取决于二进制数‘0’而不是‘1’,所以ID号越小,则该报文拥有越高的优先权。因此一个为全‘0’标志符的报文具有总线上的最高级优先权。可用另外的方法来解释:在消息冲突的位置,第一个节点发送0而另外的节点发送1,那么发送0的节点将取得总线的控制权,并且能够成功的发送出它的信息。
八、CAN的高层协议
CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。 一些可使用的CAN高层协议有: 1、制定组织主要高层协议 2、CiA CAL协议 3、CiA CANOpen协议 4、ODVA DeviceNet 协议 5、Honeywell SDS 协议 6、Kvaser CANKingdom协议
九、什么是标准格式CAN和扩展格式CAN?
标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。 目前,Philips公司主要推广的CAN独立控制器均支持CAN2.0B协议,即支持29位标识符的扩展格式报文结构。
免责声明/版权申明 Passiontech
所有文章为网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果由您自己承担!
本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。
若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息三天内给予处理!