浅析数据通信中CAN总线技术
摘要:随着科学技术的不断发展,设备之间通信的精度、可靠性等都有了较高的要求,现场总线的产生为设备间提供了更好的通信。本文在介绍现场总线的基础上,较为详细的分析了其中的CAN总线技术。
关键词:现场总线;CAN总线技术
中图分类号:S972.7+6文献标识码:A
随着科学技术的不断发展,经过了两个世纪过程控制领域发生了巨大的变革。随着数字计算机的介人与发展,20世纪70年代产生了“集中控制”的中央控制计算机系统。由于微处理器的发展十分迅速,这就让其可以应用于多个方面,因此数字通信网络就能够使用在工业过程现场,从而出现了以微处理器为核心,通过集成电路对信息进行采集、传输、处理、显示和优化控制等功能的智能设备。这在一定程度上帮助设备之间实现通信、控制,而且提高了设备的可靠性、精度、可操作性和可维护性等性能。
1 现场总线技术
将智能现场设备和自动化系统连接的多站、双向和全数字化的通信系统就是现场总线,其主要完成的是工业现场的智能化仪器仪表、执行机构、控制器等现场设备间的数字通信,以及受高级控制系统和现场控制设备之间的信息传递,或者是安装在控制室内的自动控制系统和生产区域的现场设备之间的一种串行数字式多点双向通信的数据总线,或者是以单个分散的数字智能化的测量和控制设备作为网络节点,并用总线相连接,从而达到相互交换信息共同完成自动控制功能的网络系统与控制系统的目的。
目前常用的现场总线主要包括:ControlNet和Ethernet/IP现场总线、TS61158现场总线、Profibus现场总线、FF HSE现场总线、P-NET现场总线、world FIP现场总线、SwiftNet现场总线、FF H1现场总线、Interbus现场总线、PROFInet现场总线,以及蓝牙和zlgBee无线现场总线等。
2 CAN总线技术
CAN是ISO国际标准化串行通信协议中的一种控制器局域网。CAN-bus是目前国内外应用较为广泛的一种现场总线。在当前的很多行业中,尤其是汽车产业中,人们对安全、舒适、方便、成本、公害等多方面的要求越来越高,因此多种多样的电子控制系统也就逐渐的被开发出。但是各个系统之间通信所用的数据类型以及对系统的可靠性等要求各不相同,线束的数量随着多条总线构成情形繁多而增加,为了满足需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。因此最早被用作汽车环境中微控制器通信的CAN-bus则负责在车辆各电子控制装置ECU之间实现信息交换,从而形成汽车电子控制网络。
2.1CAN-bus作为一种多主方式的串行通信总线,其位速率较高、抗电磁干扰性较强、低成本的现场总线、极高的总线利用率、很远的数据传输距离(长达10km)、高速的数据传输速率(高达1Mbit/s)、可根据报文的ID决定接收或屏蔽该报文、可靠的错误处理和检错机制,当检测出产生的任何错误时,发送的信息就会遭到破坏,此时便可自动重发等。当信号传输的距离达到10km时,CAN-bus依然能够提供的数据传输速率高达5kbit/s,因此在工业自动化、医疗设备、汽车、船舶、制造业、航空工业等方面被广泛应用。并且由于CAN等通信协议的开发,使得多种LAN通过网关进行数据交换能够得到实现。
2.2 CAN协议特点
2.2.1 多主控制。当总线空闲时所有的单元都能够开始发送消息,这就是多主控制。此时则是由最先访问总线的单元而决定发送权的(CSMA/CA方式)。
2.2.2 消息的发送。当总线空闲时与总线相连的所有单元都能够开始发送新消息。当存在多个单元同时开始发送消息时,其优先级则根据标识符决定,此时访问总线消息的优先级则是通过ID表示的。当多个单元同时开始发送消息时,则是通过将各消息ID的每个位进行逐个比较而得。
2.2.3 通信速率。设定适合的通信速率主要是根据整个网络的规模而定。在同一网络中传输时,所有单元都必须设定成统一的通信速率,当有单元的通信速率与其他不同时,此单元则会输出错误信号,此时则会妨碍整个网络的通信。当然在不同网络间,可采用不同的通信速率。
2.2.4 系统的柔软性。在总线上增加单元时,由于与总线相连的单元并没有类似于“地址”的信息,因此与总线相连的其他单元的软件、硬件和应用层等都不需要改变。
2.2.5 错误检测、通知、恢复功能。在所有的单元中都能够实现检测错误功能。当检测出错误时,错误单元则马上通知其他与总线相连的所有单元,而当正在发送消息的单元检测出错误后,则会强制结束当前的发送,而强制结束发送的单元则会不断地重新发送该消息,直到成功发送为止,这就是错误恢复功能。
2.2.6 远程数据请求。可通过发送“遥控帧”,请求其他单元发送数据。
2.3 CAN总线错误分析
作为稳定可靠的一种现场总线,CAN总线对于错误的处理有专用的硬件逻辑机制。CAN总线错误状态主要有3种状态,任何时候CAN总线始终处于以下三种状态中的一种:
(1)主动错误状态。主动错误状态是指能够正常参加总线通信的状态,当检查出处于主动错误状态的单元出现错误时,输出主动错误标志。
(2)被动错误状态。被动错误状态是较为容易引起错误的状态。处于被动错误状态是指,该单元能够参加总线通信,接收时为了不妨碍其他单元通信而没有积极地发送错误通知。当主动错误状态的单元如果没发现错误时,即使处于被动错误状态的单元检测出错误,没能发送错误报告而导致整个总线被认为是没有错误的。并且在发送结束后,处于被动错误状态的单元不能立刻再次开始发送,而在开始下次发送前,必须在间隔帧期间内插人“延迟传送”,既8个位的隐性位。
(3)总线关闭态。总线关闭态表示不能参加总线上通信的状态,此时信息的接收和发送均被禁止。
2.4 CAN总线协议中帧结构
在CAN协议中,所有的消息都以固定的格式发送的,包括错误帧、数据帧、过载帧、遥控帧和帧间隔这五种帧。数据帧和遥控帧有标准格式和扩展格式两种格式,而标准格式有11个位的标识符(ID),扩展格式有29个位的ID。
数据帧由7个段构成,数据帧的构成如图所示。
从图中可知,这7个段依次是帧起始、仲裁段、控制段、数据段、CRC段、ACK段和帧结束。
帧起始,表示数据帧开始的段,一个位的显性位;仲裁段,表示该帧优先级的段;控制段,表示数据的字节数和保留位的段,由6个位构成,表示数据段的字节数;数据段,数据的内容,可以发送从0-8个字节的数据,从MSB(最高位)开始输出;CRC段,检查帧的传输错误的段,由15个位的CRC顺序和1个位的CRC界定符构成;ACK段,表示确认正常接收的段,由ACK槽和ACK界定符2个位构成;帧结束,表示数据帧结束的段,由7个位的隐性位构成。
2.5 CAN总线的基本组织规则
对于现场总线中的CAN总线而言,通常需要基于的基本规则主要包括四个方面:
(1)总线访问
使用CAN总线时,通常在总线空闲状态期间CAN控制器才能开始发送信息,并且所有CAN控制器同步于帧起始的前沿。
(2)仲裁
总线主节点是指在CAN总线的发送期间,发送远程帧或数据帧的每一节点。遇多个节点同时开始发送时,只有将具有最高优先权的节点变成总线主节点而发送。此种机理是基于用标识符和紧随其后的RTR位完成竞争的仲裁。
(3)编码/译码
主要是用于对于帧起始、控制域、数据域等的填充技术进行编码。
(4)出错标注
在发现发送位、填充、应答等错误时,检测出错误的CAN控制器就会发送出1个出错标志,并在下一位开始发送。
结束语
现场总线中的CAN总线技术因具备其特有的协议特点等,使得CAN总线具有了错误分析等便于实际应用的优势,这就使得应用CAN总线的系统能较好的实现功能,为实现数字通信更好的服务。
上一篇:网络中的数据通信教学设计
下一篇:数据通信中加密技术的实现