CAN总线百科
线”上,这些数据不会指定唯一的接收者,凡是需要这些数据的接收端都可以从“总线”上读取需要的信息。Can总线的传输数据非常快,可以达到每秒传输32bytes有效数据,这样可以有效保证数据的实效性和准确性。传统的轿车在机舱和车身内需要埋设大量线束以传递传感器采集的信号,而Can-Bus总线技术的应用可以大量减少车体内线束的数量,线束的减少则降低了故障发生的可能性。
CAN-Bus介绍
控制器局部网(Controller Area Network)是BOSCH公司为现代汽车应用领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在中国迅速普及推广。
控制器区域网(Controller Area Network)CAN现场总线已经成为在仪表装置通讯的新标准。它提供高速数据传送,在短距离(40m)条件下具有高速(1Mbit/s)数据传输能力,而在最大距离10000m时具有低速(5kbits/s)传输能力,极适合在高速的工业自控应用上。CAN总线可在同一网络上连接多种不同功用的传感器(如位置,温度或压力等)。
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总线控制器局域网 相关文章:
- CAN总线应用简介(12-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)