一.主要特性:
低成本的现场总线;
极高的总线利用率;
很远的数据传输距离(长达10Km);
高速的数据传输速率(高达1Mbps);
可根据报文的ID决定接收或屏蔽该报文;
可靠的错误处理和检错机制
发送的信息遭到破坏后,可自动重发;
节点在错误严重的情况下具有自动退出总线的功能;
报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
二.CAN-BUS器件列表
1
P87C591
集成CAN控制器的8位MCU,512B RAM、16K OTP,内有A/D、PWM功能
2
SJA1000
独立CAN控制器,符合CAN2.0规范,兼容并可替代PCA82C200
3
PCA82C250
通用CAN收发器
4
PCA82C251
通用CAN收发器
5
TJA1050
高速CAN收发器,可替代PCA82C250/251
6
TJA1040
高速CAN收发器,可替代PCA82C250/251
7
TJA1041
高速CAN收发器,兼容TJA1040并具有网络监听功能
8
TJA1054
容错的CAN收发器, 可完全替代PCA82C252/TJA1053
9
TJA1020
标准LIN收发器,CAN-bus的低成本配套网络
三.BOSCH CAN 2.0规范概述
CAN 2.0 规范分为CAN 2.0A与CAN 2.0B。CAN 2.0A支持标准的11位标识符;CAN 2.0B同时支持标准的11位标识符和扩展的29位标识符。CAN 2.0 规范的目的是为了在任何两个基于CAN-bus的仪器之间建立兼容性;规范定义了传输层,并定义了CAN协议在周围各层当中所发挥的作用。CAN 2.0 规范涉及兼容性的不同方面,比如电气特性和数据转换的解释。为了达到设计透明度以及实现柔韧性,CAN被细分为以下不同的层次:
CAN对象层(the object layer)
CAN传输层(the transfer layer)
物理层(the phyical layer)
对象层和传输层包括所有由ISO/OSI模型定义的数据链路层的服务和功能。定义对象处理较为灵活。对象层的作用范围包括:
查找被发送的报文。
确定由实际要使用的传输层接收哪一个报文。
为应用层相关硬件提供接口。
传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在传输层里确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。
物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很自由的。
CAN 2.0 规范没有规定媒体的连接单元以及其驻留媒体,也没有规定应用层。因此,用户可以直接建立基于CAN 2.0 规范的数据通信;不过,这种数据通信的传输内容一般不能灵活修改,适合于固定通讯方式。
由于CAN 2.0 规范没有规定信息标识符的分配,因此可以根据不同应用使用不同的方法。所以,在设计一个基于CAN的通讯系统时,确定CAN标识符的分配非常重要,标识符的分配和定位也是应用协议、高层协议的其中一个主要研究项目。
四.CAN 2.0B协议帧格式
1.CAN2.0B标准帧
CAN标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分。
2.CAN2.0B扩展帧
CAN扩展帧信息为13个字节,包括两部分,信息和数据部分。前5个字节为信息部分。
字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF = 1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧;DLC表示在数据帧时实际数据长度。
字节2~5为报文识别码,其高29位有效。
字节6~13为数据帧的实际数据,远程帧时无效。