编辑: 鱼饵虫 2019-09-29
2002.

12 .6

1 CAN 总线综述 邵F

0120030007 (同济大学 机械电子研究所,上海 200092) 摘要: 本文介绍了 CAN 总线的发展历史, 并对其优点及主要技术指标进行了详述,最后就其 具体应用给出了实例. 关键词: CAN 总线;

通信;

协议;

Extensive Introduction of CAN Bus Shao Cmin (Department of mechanical electrical Engineering, Tongji University, Shanghai 200092,China) Abstract: In the article , the developing history of CAN bus is introduced. And the article is mainly focused on the advantage and main technique index of CAN bus. At the end of article, a practical application of CAN bus is described. Keywords: CAN bus;

communication;

protocol 1. CAN 总线的产生与发展 控制器局部网 (CAN-CONTROLLER AREA NETWORK) 是BOSCH 公司为现代汽车应 用领先推出的一种多主机局部网, 由于其卓越性能现已广泛应用于工业自动化、 多种控制设 备、交通工具、医疗仪器以及建筑、环境控制等众多部门.控制器局部网将在我国迅速普及 推广. 随着计算机硬件、 软件技术及集成电路技术的迅速发展, 工业控制系统已成为计算机技 术应用领域中最具活力的一个分支, 并取得了巨大进步. 由于对系统可靠性和灵活性的高要 求,工业控制系统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功 能分散、危险分散和地域分散. 分散式工业控制系统就是为适应这种需要而发展起来的.这类系统是以微型机为核心, 将5C 技术--COMPUTER(计算机技术) 、 CONTROL(自动控制技术) 、 COMMUNICATION (通信技术) 、CRT(显示技术)和CHANGE(转换技术)紧密结合的产物.它在适应范围、 可扩展性、 可维护性以及抗故障能力等方面, 较之分散型仪表控制系统和集中型计算机控制 系统都具有明显的优越性. 典型的分散式控制系统由现场设备、接口与计算设备以及通信设备组成.现场总线 (FIELDBUS)能同时满足过程控制和制造业自动化的需要,因而现场总线已成为工业数据 总线领域中最为活跃的一个领域.现场总线的研究与应用已成为工业数据总线领域的热点. 尽管目前对现场总线的研究尚未能提出一个完善的标准, 但现场总线的高性能价格比将吸引 众多工业控制系统采用.同时,正由于现场总线的标准尚未统一,也使得现场总线的应用得 以不拘一格地发挥,并将为现场总线的完善提供更加丰富的依据.控制器局部网 CAN (CONTROLLER AERANETWORK)正是在这种背景下应运而生的. 由于 CAN 为愈来愈多不同领域采用和推广, 导致要求各种应用领域通信报文的标准化. 为此,

1991 年9月PHILIPS SEMICONDUCTORS 制订并发布了 CAN 技术规范 (VERSION 2.0) .该技术规范包括 A 和B两部分.2.0A 给出了曾在 CAN 技术规范版本 1.2 中定义的 CAN 报文格式,而2.0B 给出了标准的和扩展的两种报文格式.此后,1993 年11 月ISO 正 式颁布了道路交通运载工具--数字信息交换--高速通信控制器局部网(CAN)国际标准 2002.12 .6

2 (ISO11898) ,为控制器局部网标准化、规范化推广铺平了道路. 2. CAN 总线特点 CAN 总线是德国 BOSCH 公司从

80 年代初为解决现代汽车中众多的控制与测试仪器之 间的数据交换而开发的一种串行数据通信协议, 它是一种多主总线, 通信介质可以是双绞线、 同轴电缆或光导纤维.通信速率可达 1MBPS.CAN 总线通信接口中集成了 CAN 协议的物 理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗 余检验、优先级判别等项工作. CAN 协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编 码.采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由

11 位或

29 位二进制数组成,因此可以定义

211 或229 个不同的数据块,这种按数据块编码 的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用. 数据段长度最多为

8 个字节, 可满足通常工业领域中控制命令、 工作状态及测试数据的一般 要求.同时,8 个字节不会占用总线时间过长,从而保证了通信的实时性.CAN 协议采用 CRC 检验并可提供相应的错误处理功能,保证了数据通信的可靠性.CAN 卓越的特性、极 高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的 重视,并已公认为最有前途的现场总线之一. 另外,CAN 总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线 以及广播通信的特点.CAN 总线上任意节点可在任意时刻主动地向网络上其它节点发送信 息而不分主次,因此可在各节点之间实现自由通信.CAN 总线协议已被国际标准化组织认 证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的 数通讯.CAN 总线插卡可以任意插在 PC AT XT 兼容机上,方便地构成分布式监控系统. 3. CAN 总线技术介绍 3.1 位仲裁 要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的 速度.在几个站同时需要发送数据时,要求快速地进行总线分配.实时处理通过网络交换的 紧急数据有较大的不同.一个快速变化的物理量,如汽车引擎负载,将比类似汽车引擎温度这 样相对变化较慢的物理量更频繁地传送数据并要求更短的延时. CAN 总线以报文为单位进行数据传送,报文的优先级结合在

11 位标识符中,具有最低二 进制数的标识符有最高的优先级.这种优先级一旦在系统设计时被确立后就不能再被更改. 总线读取中的冲突可通过位仲裁解决.如图

2 所示,当几个站同时发送报文时,站1的报文标 识符为 011111;

站2的报文标识符为 0100110;

站3的报文标识符为 0100111. 所有标识符都有 相同的两位 01,直到第

3 位进行比较时,站1的报文被丢掉,因为它的第

3 位为高,而其它两个 站的报文第

3 位为低.站2和站

3 报文的

4、

5、6 位相同,直到第

7 位时,站3的报文才被丢 失.注意,总线中的信号持续跟踪最后获得总线读取权的站的报文.在此例中,站2的报文被 跟踪.这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报 文的起始部分已经在网络上传送了. 所有未获得总线读取权的站都成为具有最高优先权报文 的接收站,并且不会在总线再次空闲前发送报文. CAN 具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用,这些请求是根 据报文在整个系统中的重要性按顺序处理的.这种方法在网络负载较重时有很多优点,因为 总线读取的优先级已被按顺序放在每个报文中了,这可以保证在实时系统中较低的个体隐伏 时间. 对于主站的可靠性,由于 CAN 协议执行非集中化总线控制,所有主要通信,包括总线读取 2002.12 .6

3 (许可)控制,在系统中分几次完成.这是实现有较高可靠性的通信系统的唯一方法 3.2 CAN 与其它通信方案的比较 在实践中,有两种重要的总线分配方法:按时间表分配和按需要分配.在第一种方法中 , 不管每个节点是否申请总线,都对每个节点按最大期间分配.由此,总线可被分配给每个站并 且是唯一的站,而不论其是立即进行总线存取或在一特定时间进行总线存取.这将保证在总 线存取时有明确的总线分配.在第二种方法中,总线按传送数据的基本要求分配给一个站 , 总线系统按站希望的传送分配(如:Ethernet CSMA/CD).因此,当多个站同时请求总线存取时, 总线将终止所有站的请求,这时将不会有任何一个站获得总线分配.为了分配总线,多于一个 总线存取是必要的. CAN 实现总线分配的方法,可保证当不同的站申请总线存取时,明确地进行总线分配. 这 种位仲裁的方法可以解决当两个站同时发送数据时产生的碰撞问题. 不同于 Ethernet 网络的 消息仲裁,CAN 的非破坏性解决总线存取冲突的方法,确保在不传送有用消息时总线不被占 用.甚至当总线在重负载情况下,以消息内容为优先的总线存取也被证明是一种有效的系统. 虽然总线的传输能力不足,所有未解决的传输请求都按重要性顺序来处理.在CSMA/CD 这 样的网络中,如Ethernet,系统往往由于过载而崩溃,而这种情况在 CAN 中不会发生. 3.3 CAN 的报文格式 在总线中传送的报文,每帧由

7 部分组成,见图 3. CAN 协议支持两种报文格式,其唯一的 不同是标识符(ID)长度不同,标准格式为

11 位,扩展格式为

29 位. 在标准格式中,报文的起始位称为帧起始(SOF),然后是由

11 位标识符和远程发送请求位 (RTR)组成的仲裁场.RTR 位标明是数据帧还是请求帧,在请求帧中没有数据字节. 控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式.它还包括一个保留位 (ro), 为将来扩展使用. 它的最后四个字节用来指明数据场中数据的长度(DLC). 数据场范围为 0~

8 个字节,其后有一个检测数据错误的循环冗余检查(CRC). 应答场(ACK)包括应答位和应答分隔符.发送站发送的这两位均为隐性电平(逻辑 1),这 时正确接收报文的接收站发送主控电平(逻辑 0)覆盖它.用这种方法,发送站可以保证网络中 至少有一个站能正确接收到报文. 报文的尾部由帧结束标出.在相邻的两条报文间有一很短的间隔位,如果这时没有站进 行总线存取,总线将处于空闲状态. 3.4 数据错误检测 不同于其它总线,CAN 协议不能使用应答信息. 事实上,它可以将发生的任何错误用信号 发出.CAN 协议可使用五种检查错误的方法,其中前三种为基于报文内容检查. 3.4.1 循环冗余检查(CRC) 在一帧报文中加入冗余检查位可保证报文正确. 接收站通过 CRC 可判断报文是否有错. 3.4.2 帧检查 这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误. 3.4.3.应答错误 如前所述,被接收到的帧由接收站通过明确的应答来确认.如果发送站未收到应答,那么 表明接收站发现帧中有错误,也就是说,ACK 场已损坏或网络中的报文无站接收.CAN 协议 也可通过位检查的方法探测错误. 3.4.4 总线检测 有时,CAN 中的一个节点可监测自己发出的信号. 因此,发送报文的站可以观测总线电平并探 测发送位和接收位的差异. 3.4.5 位填充 2002.12 .6

4 一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率.然而,如果在一帧报 文中有太多相同电平的位,就有可能失去同步. 为保证同步,同步沿用位填充产生. 在五个生. 在五个连续相等位后,发送站自动插入一个与之互补的补码位;

接收时,这个填充位被自动丢 掉.例如,五个连续的低电平位后,CAN 自动插入一个高电平位.CAN 通过这种编码规则检 查错误,如果在一帧报文中有

6 个相同位,CAN 就知道发生了错误. ........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题