CAN的数据链路层是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制(Medium Aeeess control,MAC)子层完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。
CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。应用层协议可以由CAN用户定义成适合特别工业领域的任何方案。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。如:CAL协议,CANOpen协议,DeviceNet协议,SDS协议,CAN Kingdom协议。下图中展示了OSI开放式互连模型的各层。
OSI开放互联模型各层
1.6 CAN总线的特点
CAN总线属于总线式串行通信网络,相对于一般通信总线而言有突出的性能、可靠性、实时性、灵活性。可以概括为:
(1)通信方式灵活;
(2)CAN网络上的节点信息分不同优先级,可满足不同实时需求;
(3)采用非破坏性总线仲裁技术,大大节省总线冲突仲裁时间;
(4)通过报文滤波就可实现多种方式(点对点、点对多点、全局广播等)的传送接收数据,无需专门的调度;
(5)直接通信距离最远可达10km(传输速率5Kb/s以下);
(6)通信速率可达1Mb/s(此时通信距离最长为40m);
(7)节点数主要取决于驱动电路,目前可达110个,报文标识符可达2032中(CAN 2.0A),扩展标准(CAN 2.0B)几乎不受限制;
(8)通信格式采用短帧格式,传输时间短,受干扰概率低,有极好的检错效果。
(9)每帧信息都有CRC校验及其他检错措施,保证数据通信的可靠性;
(10)通信介质选择灵活;
(11)CAN节点在错误严重情况下有自动关闭输出功能,以使总线上其他节点的操作不受影响。
1.7 CAN总线技术
1.7.1 位仲裁
CAN总线使用的是一种“载波检测,多主掌控/冲突避免”(CSMA/CA)的通信模式。当发生数据冲突时,CAN总线能实时的检测这些冲突情况并做出相应的仲裁,获得仲裁的信息帧能不受任何损坏的继续传送。
CAN总线解决总线竞争的方法是按位对标识符进行仲裁。各发送节点在向总线发送电平的同时,也对总线上的电平进行读取,并与自身发送电平进行比较,如果电平相同则继续发送下一位,不同则停止发送,退出总线竞争。剩余的节点则继续上述过程,直到总线上只剩下一个节点发送的电平,总线竞争结束,优先级最高的节点获得了总线的使用权。
CAN总线以报文为单位进行数据传送,当节点开始传送它们各自的报文时,报文的优先级结合在11位标识符中(扩展帧是29位),具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取冲突可通过位仲裁解决。这种非破坏性仲裁的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。CAN的高效率性体现在总线仅仅被那些请求总线悬而未决的节点利用,这些请求是根据报文在整个系统中的重要性顺序处理的,这可以保证在实时系统中较低的个体隐伏时间。CAN执行非集中化总线控制,所有主要通信都在系统中分几次完成。这是实现有较高可靠性的通信系统的唯一方法。文献综述 ARM的CAN总线接口电路设计+程序(4):http://www.youerw.com/tongxin/lunwen_72137.html