CAN的数据链路层是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制(Medium Aeeess control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。
CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层与物理层。应用层协议可由CAN用户定义成适合特别工业领域的任何方案。一些组织已近研究并开放了应用层标准,以使系统的综合应用变得十分容易。如:CAN协议,CANOpen协议,DeviceNet协议,SDS协议,CANKingdom协议。下表2.1展示了OSI开放式互连模型的各层。
表2.1 OSI开放式互连模型
应用层
对象层
报文滤波
报文和状态的处理
传输层
故障界定
错误检测和标定
报文校验
应答
仲裁
报文分帧
传输速率和定时
物理层
信号电平和位表示
传输媒体
2.3 CAN总线特点
CAN总线具有十分优越的特点,主要包括:
(1)低成本;
(2)极高的总线利用率;
(3)较远的数据传输距离(长达10 km);
(4)高速的数据传输速率(高达1 Mb/s);
(5)可根据报文的ID决定接收或屏蔽该报文;
(6)可靠的错误处理和检错机制;
(7)发送的信息遭到破坏后,可自动重发;
(8)节点在错误严重的情况下具有自动退出总线的功能。
(9)报文不包含源地址或目标地址,仅用标识符来指示功能信息、优先级信息。
2.4 CAN总线技术
2.4.1 位仲裁
要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量,如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的延时。
CAN总线以报文为单位进行数据传送, 当节点开始传送它们各自的报文时,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。标识符的每一个位都被写到总线里,而且能够被每一个节点读回。如果一个节点写进了隐性位而读回显性位,它会知道另一个较低标识符号码的(高优先权)节点正在访问总线,它会停止传送报文并继续接收更重要的报文,总线读取中的冲突可通过位仲裁解决,这种技术叫做非破坏性位仲裁法。
非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。它保证了如果发送一个高优先权报文,它将会赢得仲裁并能够在一个保证的时间限度里到达它的目的节点。这些都由系统设计者来控制。必须注意:如果两个节点用同样的标识符发出数据,两个都会得到总线的仲裁并开始传输数据。在某一点,数据会不同并产生错误。两个节点都会后退并且重新开始整个传输过程,在最坏的情况下它会锁死网络! 基于嵌入式系统的CAN总线接口电路设计(3):http://www.751com.cn/tongxin/lunwen_7551.html