CAN技术规范的目的是为了在任何两个CAN仪器之间建立兼容性,可是,兼容性有不同的方面,比如电气特性和数据转换的解释。控制器局域网(CAN)为串行通信协议,能有效支持很高**级别的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN,在汽车电子行业里,使用CAN连接发动机控制单元,传感器,防刹车系统等等。其传输速度可以达到1M/S,
CAN技术规范的目的是为了在任何两个CAN仪器之间建立兼容性,可是,兼容性有不同的方面,比如电气特性和数据转换的解释。
为了达到设计透明度以及实现柔韧性,CAN被细分为以下不同的层次:
1、CAN对象层(TheObject Layer)
2、CAN传输层(THE TransferLayer)
3、物理层(The Physical Layer)
对象层和传输层包括所有由ISO/OSI模型定义的数据链路层的服务和功能。对象层的作用范围包括:
1、查找被发送的报文
2、确定由实际要使用的传输层接受哪一个报文
3、为应用层提供相关硬件的接口。
在这里,定义对象处理较为灵活,传输层的作用主要是传送规则,也就是控制桢结构、执行仲裁、错误监测、出错标定、故障界定。总线上什么时候开始发送新报文以及什么时候接受,均在传输层界定。位定时地一些普通功能也可以看作是传输层的一部分。现在的分层方法是把这两层看着同一层。物理层的作用是在不同的节点之间根据电气特性进行位信息的实际传输。当然,在同一网络内,物理层对于所有的节点必须是相同的
CAN的基本概念
1、报文
总线上的信息以不同格式的报文发送,但长度有限制。当总线开放时,任何连接的单元均可开始发送一个新报文。
2、信息路由
在CAN系统中,一个CAN节点不使用有关系统结构的任何信息(如站地址)。这时包含如下重要概念:
系统灵活性----节点可在不要求所有节点及其应用层改变任何软件和硬件的情况下,被接于CAN网络。
报文通信----一个报文的内容由其标识符ID命名。ID并不指出报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文滤波决定该数据是否使它们激活。
成组----由于采用了报文滤波,所有节点均可接受报文,并同时被相同的报文激活。
数据相容性----在CAN网络中,可以确保报文同时被所有节点或者没有节点接受,因此,系统的数据相容性是借助于成组和出
错处理达到的。
3、位数率
CAN的数据在不同的系统中是不同的,而在一个给定的系统中,此速率是惟一的,并且是固定的。
4、优先权
在总线访问期间,标识符定义了一个报文静态的优先权。
5、远程数据请求
通过发送���个远程桢,需要数据的节点可以请求另一个节点发送一个相应的数据桢,该数据桢与对应的远程桢以相同的标识符ID命名。
6、多主站
当总线开放时,任何单元均可以发送数据,发送具有*高优先权的单元,以赢得总线访问权。
7、仲裁
当总线开放时,任何单元均可以发送数据,若同时有两个或更多的单元开始发送,总线访问冲突运用逐位仲裁规则,借助标识符ID解决。CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有*低二进制数的标识符有*高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。如图2所示,当几个站同时发送报文时,站1的报文标识符为011111;站2的报文标识符为0100110;站3的报文标识符为0100111。所有标识符都有相同的两位01,直到第3位进行比较时,站1的报文被丢掉,因为它的第3位为高,而其它两个站的报文第3位为低。站2和站3报文的4、5、6位相同,直到第7位时,站3的报文才被丢失。注意,总线中的信号持续跟踪*后获得总线读取权的站的报文。在此例中,站2的报文被跟踪。这种非破坏性位仲裁方法的优点在于,在网络*终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有*高优先权报文的接收站,并且不会在总线再次空闲前发送报文。
报文传送和桢结构
在发送器进行数据传输时,发出报文的单元称为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器。如果一个单元不是发送器,并且总线不处于空闲状态,则该单元为接受器。桢由桢起始、仲裁场、控制场、数据场和CRC序列构成。
在CAN中,主要有以下几种数据桢。数据桢,远程桢,出错桢,超载桢。
数据帧用于各个节点之间传送数据和命令。由7个不同的场组成:帧起始、仲裁场、控制场、数据场、CRC校验场、应答场和帧结束。
远程帧是在网络上的接收节点需要寻址数据源时才向总线发出的。远程帧与数据帧在格式上相似,不同之处仅是RTR被置高、数据长度码无效及无数据场。出错指示帧是当网络上的接收节点检测到总线上报文出错时向总线发出的一组错误指示信息,通知发送方当前报文未被正确接收,重新发送当前报文超载帧用于通知网络上的节点目前接收节点正忙或总线正忙,请各节点暂缓发送。
CAN的高层协议
CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。一些可使用的CAN高层协议有:
CiA CAL协议
CiA CANOpen协议
ODVA DeviceNet 协议
Honeywell SDS 协议
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位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。
目前,CAN总线应用研究还在不断深入,随着CAN总线的国际标准化,具有优先权和仲裁功能,通信速率高,可靠性和实时性好,连接方便和性能价格比高等优点的CAN网络将会得到迅速的发展和应用。