新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > CAN总线百科

CAN总线百科

作者: 时间:2016-12-16 来源:网络 收藏

本文引用地址:https://www.eepw.com.cn/article/201612/331065.htm

CAN-Bus总线特点

CAN总线与其他总线相比有如下特点:

l 它是一种多主总线,即每个节点机均可成为主机,且节点机之间也可进行通信;

l 通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1Mbps;

l CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等项工作;

l CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接受到相同的数据,这一点在分步式控制中非常重要;

l 数据段长度最多为8个字节,可满足通常工业领域中控制命令,工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性;

l CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。

l CAN总线所具有的卓越性能、极高的可靠性和独特设计,特别适合工业设备测控单元连。

因此CAN-Bus总线成为倍受工业界的重视,并已公认为最有前途的现场总线之一。

CAN协议是一个被定义为ISO11898的国际标准,除了CAN协议本身外,CAN协议的一致性测试也被定义为ISO16845标准,它描述了CAN芯片的互换性。

1、数据交换原理

CAN是一种基于广播的通讯机制,广播通讯依靠报文(Message)的传送机制来实现,因此CAN并未定义站及站地址,而仅仅定义了报文,这些报文依靠报文确认区(Identifier)来进行识别,一个消息报文确认区在一个网络中必须是唯一的,它不但描述了某一报文的意义,而且还定义了报文的优先级,当很多站都在访问总线时,优先级是很重要的,因此,CAN是通过报文的确认区来决定报文的优先级的。

CAN使用地址访问的方法,使网络系统的配置变得非常灵活,用户很容易可以增加一个新的站到一个已经存在CAN网络里,而不用对已经存在的站进行任何硬件或软件上的修改,但必须此新增的站为完全的接收者,这样它将不会对网络上各节点的通讯产生影响。

2、实时数据传送

在实时处理系统中,通过网络交换紧急报文存在很大的不同:一个迅速改变的值,如发动机负载必须频繁的进行传送且要求延迟比其它的值如发动机温度要小。发送的报文都要和其它的不太紧急的报文进行优先级的比较,在系统设计中,报文的优先级体现在写入报文确认区的二进制值,这些值不能被动态的改变。确认区中的值越小,其报文的优先级越高(也就是0比1的优先级高)。

3、消息的帧格式(Frame format)

CAN协议支持两种帧格式,它们只是在确认区存在差异,一种被称为CAN标准帧,在CAN2.0协议的Part A进行定义,标准帧支持11bit的确认区长度,;另一种称为CAN扩展帧,在CAN2.0协议的Part B进行定义,支持29bit的确认区。

4、检测和信号错误

不同于其它总线系统,当错误产生时CAN协议不能立即使用应答报文来取代错误信号,对于错误侦测CAN协议有完整的三种报文级机制:

l 循环冗余检测(CRC)

l 帧检测(Frame check)

l ACK错误

CAN协议也提供两种位元级的错误侦测机制:

l 监视(Monitoring)

l 位填充(Bit stuffing)

如果至少一个站使用上述机制发现一个或多个错误,则发送“错误标志(error flag)”来取消当前的传送,阻止其它站继续接收报文,以确保通过网络的数据连贯性,一个错误的报文传送被取消后,发送者自动重新尝试发送(自动重发),并重新进行总线访问权的竞争。

CAN-Bus特点

作为ISO11898CAN标准的CAN-Bus(ControLLer Area Net-work Bus),是制造厂中连接现场设备(传感器、执行器、控制器等)、面向广播的串行总线系统,最初由美国通用汽车公司(GM)开发用于汽车工业,后日渐增多地出现在制造自动化行业中。

1、CAN-Bus系统组成及性能

CAN-Bus系统通过相应的CAN接口连接工业设备(如限位开关、光电传感器、管道阀门、电机启动器、过程传感器、变频器、显示板、PLC和PCI作站等)构成低成本网络。直接连接不仅提供了设备级故障诊断方法,而且提高了通信效率和设备的互换性。CAN-Bus数据传输速率为1Mbit/s,线路距离lkm,基本站点数64,传输媒体是屏蔽双绞线或光纤。

2、CAN-Bus数据链路控制特点

CAN-Bus数据链路层协议采用平等式(Peer to peer)通信方式,即使主机出现故障,系统其余部分仍可运行(当然性能受一定影响)。当一个站点状态改变时,它可广播发送信息到所有站点。

CAN-Bus的信息传输通过报文进行,报文帧有4种类型:数据帧、远程帧、出错帧和超载帧,其中数据帧格式如图8所示。CAN-Bus帧的数据场较短,小于8B,数据长度在控制场中给出。短帧发送一方面降低了报文出错率,同时也有利于减少其他站点的发送延迟时间。帧发送的确认由发送站与接收站共同完成,发送站发出的ACK场包含两个“空闲”位(recessive bit),接收站在收到正确的CRC场后,立即发送一个“占有”位(dominant bit),给发送站一个确认的回答。CAN-Bus还提供很强的错误处理能力,可区分位错误、填充错误、CRC错误、形式错误和应答错误等。

CAN-Bus应用一种面向位型的损伤仲裁方法来解决媒体多路访问带来的冲突问题。其仲裁过程是:当总线空闲时,线路表现为“闲置”电平(recessive level),此时任何站均可发送报文。发送站发出的帧起始字段产生一个“占有”电平(dominant level),标志发送开始。所有站以首先开始发送站的帧起始前沿来同步。若有多个站同时发送,那么在发送的仲裁场进行逐位比较。仲裁场包含标识符ID(标准为llbit),对应其优先级。每个站在发送仲裁场时,将发送位与线路电平比较,若相同则发送;若不同则得知优先级低而退出仲裁,不再发送。系统响应时间与站点数无关,只取决于安排的优先权。可以看出,这种媒体访问控制方式不像Ethetnet的CSMA/CDCA协议那样会造成数据与信道带宽受损。

3、CANopen协议

CAN-Bus除配置设备网(DeviceNet)协议外,还提供基于CAL(CANA pllicationlayer) 的CANopen协议(CiA DS-301),即支持设备参数的直接访问,又可实现有苛刻时间要求的过程数据通信。

CAN-Bus的DeviceNet协议具有开放性,用户无须购买加入系统所需的硬件、软件和允许权,多厂家设备能够在单一网络上相互操作。CANhs也允许与Ethernet或其他局域网相连,接人控制算法组态及管理信息PC系统,从而形成管控一体化的工业网络。

CAN-Bus应用

CAN-Bus的通讯协议建立在国际标准组织的开放系统互联参考模型基础上,主要工作在数据链路层和物理层,用户可在其基础上开发适应系统实际需要的应用层通信协议。CAN的信号传输采用短帧结构,每一帧的有效字节数为8个,因而传输时间短,受干扰的概率低。当节点严重错误时,具有自动关闭的功能,以切断该节点与总线的联系,使总线上的其他节点及通信不受影响,故具有较强的抗干扰能力。

典型应用

● 现有RS232设备连接CAN-Bus网络

● 扩展标准RS232网络通讯长度

● PLC设备连接CAN-Bus网络通讯

● CAN-Bus与串行总线之间的网关网桥

● 工业现场网络数据监控

● CAN教学应用远程通讯

● CAN工业自动化控制系统

● 低速CAN网络数据采集数据分析

● 智能楼宇控制数据广播系统等CAN-Bus应用系统。

现场总线技术以其独有的技术优势和特点,在现代分布式测量与控制技术领域中应用已愈来愈广泛。各种现场总线的主控制器一般都内嵌有相当完善的、开放式的互联通信协议,它具有通信速度快、误码率低、开发设计简单及网络使用维护方便等诸多特点,是实现网络化现场测量与控制技术的一个发展方向。但目前的许多现场已投入使用的测量与控制系统中,各仪器设备或装置之间通信所使用的仍是传统的RS-485或RS-422总线。在不断投入新型现场总线系统的同时,要在短期内改造或淘汰那些旧系统是不现实的。况且,在许多应用场合,新老系统中主机的控制算法及功能是相似或兼容的,所以在一定时期新老总线系统同时并存是客观的现实需要。对此,若能将新老仪器设备或装置通过一种透明转换装置而有机地揉合在一起,去掉老系统中重复的部分,是一种很好的选择。

CAN总线错误处理

在CAN总线中存在5种错误类型,它们互相并不排斥,下面简单介绍一下它们的区别、产生的原因及处理方法。

位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平和送出的电平不同时9则在该位时刻检测到一个位错误。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。送出认可错误标注的发送器,在检测到显性位时也不认为是错误位。

填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,将检 测出一个填充错误。

CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以和发送器相同的方法计算CRC。如果计算的结果和接收到的CRC序列不同,则检测出一个CRC错误。

形式错误: 当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错误。

应答错误:在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。

检测到出错条件的节点通过发送错误标志进行标定。当任何节点检测出位错误、填充错误、形式错误或应答错误时,由该节点在下一位开始发送出错误标志。

当检测到CRC错误时。出错标志在应答界定符后面那一位开始发送.除非其他出错条件的错误标志已经开始发送。

在CAN总线中,任何一个单元可能处于下列3种故障状态之一:错误激活状态(ErrorActive)、错误认可状态(Error Passitive)和总线关闭状态(Bus off)。

错误激活单元可以照常参和总线通信,并且当检测到错误时,送出一个活动错误标志。错误 认可节点可参和总线通信,但是不允许送出活动错误标志。当其检测到错误时,只能送出认可错 误标志,并且发送后仍为错误认可状态,直到下一次发送初始化。总线关闭状态不允许单元对总 线有任何影响。

为了界定故障,在每个总线单元中都设有2个计数:发送出错计数和接收出错计数。这些 计数按照下列规则进行。

(1)接收器检查出错误时,接收器错误计数器加1,除非所有检测错误是发送活动错误标志或超载标志期间的位错误。

(2)接收器在送出错误标志后的第一位检查出显性位时,错误计数器加8。

(3)发送器送出一个错误标志时,发送器错误计数器加8。有两种情况例外:其一是如果发 送器为错误认可,由于未检测到显性位应答或检测到应答错误,并且在送出其认可错误标志时,未检测到显性位;另外一种情况是如果仲裁器件产生填充错误,发送器送出一个隐性位错误标志,而检测到的是显性位。除以上两种情况外,发送器错误计数器计数不改变。

(4)发送器送出一个活动错误标志或超载标志时,检测到位错误,则发送器错误计数器加8。

(5)在送出活动镨误标志、认可错误标志或超载错误标志后,任何节点都最多允许连续7个显性位。在检测到第11个连续显性位后,或紧随认可错误标志检测到第8个连续的显性位,以及附加的8个连续的显性位的每个序列后,每个发送器的发送错误计数都加8,并且每个接收器的接收错误计数也加8。

(6)报文成功发送后,发送错误计数减1,除非计数值已经为0。

(7)报文成功发送后,如果接收错误计数处于1~197之间,则其值减1;如果接收错误计数为0,则仍保持为0;如果大于127,则将其值记为119~127之间的某个数值。

(8)当发送错误计数等于或大于128,或接收错误汁数等于或大于128时,节点进人错误认,可状态,节点送出一个活动错误标志。

(9)当发送错误计数器大于或等于256时,节点进人总线关闭状态。

(1O)当发送错误计数和接收错误计数均小于或等于127时,错误认可节点再次变为错误激活节点。

(11)在检测到总线上11个连续的隐性位发送128次后,总线关闭节点将变为2个错误计数器均为0的错误激活节点。

(12)当错误计数器数值大于96时,说明总线被严重干扰。

如果系统启动期间仅有1个节点挂在总线上,此节点发出报文后,将得不到应答,检查出错误并重复该报文,此时该节点可以变为错误认可节点,但不会因此关闭总线。



上一页 1 2 3 下一页

评论


技术专区

关闭