CAN总线协议 及CAN在工业控制中的应用

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
第三章 数据链路层 任务驱动 问题探究 习题讲解 实验要求.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
淄博信息工程学校 ZIBOIT&ENGINEERING VOCATONAL SHCOOL 03 交换机干道技术 计算机网络技术专业.
控制器局域网-CAN总线.
第10章 FPGA硬件设计 <EDA技术与应用> 课程讲义
汽车电子学 ——CAN-BUS多路数据传输.
控制器局域网-CAN总线.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
施耐德电气(中国)投资有限公司 运动控制部技术经理 李幼涵 高级工程师
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
现场总线控制系统.
The CAN bus 李强.
存储系统.
管理信息结构SMI.
矢量距离路由.
网络常用常用命令 课件制作人:谢希仁.
实用组网技术 第一章 网络基础知识.
乐驾-车载无线终端-CARRO 产品类型:车载无线路由器 建议零售价格:¥599 江苏鸿信
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
逆向工程-汇编语言
数据挖掘工具性能比较.
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
2.1.2 空间中直线与直线 之间的位置关系.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
SOA – Experiment 2: Query Classification Web Service
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
K60入门课程 02 首都师范大学物理系 王甜.
Three stability circuits analysis with TINA-TI
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
引 言 虽然CAN-BUS系统的通信方式对于汽车网络维修没有直接的关系,但是对于一个机电维修工,了解总线传输技术,有助于正确认识汽车网络的构成和工作方式,正确利用OBDⅡ接口,正确选用故障诊断设备和故障诊断方式。 CAN-BUS工作的核心内容就是怎样通过二根(或若干根)通信线,传输远远超过二个的信息量(数据),本章讲述CAN-BUS局域网的控制单元之间是如何进行数据(信息)传输.
VisComposer 2019/4/17.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
诺 金 EE07系列 小型OEM数字输出温湿度变送器 产品特点: 典型应用: ► 气象应用 ► 加湿器、除湿器 技术参数: 选型指南:
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
数据报分片.
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
无线网络特性展现 张琦.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
HSC高速输出例程 HORNER APG.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
THERMOPORT 20 手持式温度表 THERMOPORT系列手持温度表基于所用技术及对实际应用的考 虑,确立了新的标准。
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
3.8 局域网应用实例 某省劳动和社会保障网络中心组网实例 会议中心的无线组网实例.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

CAN总线协议 及CAN在工业控制中的应用 集散控制与现场总线技术 指导老师:秦刚 授课学生:梁涛、刘斌、马超、杨宏

CAN总线 两个部分: 第一部分:CAN总线的基本概念 第二部分:CAN总线的应用

引言 现场总线简述

引言 为了适应越来越多的异种计算机系统间互联的“开放式”系统的需要,人们建立了开放系统互联(OSI,Open System Interconnection)的基本参考模式,并于1983年制定了该参考模式的国际标准(ISO7498)。从此奠定了系统互联标准开放的基础,对数据通信系统产品的发展起到了重要的促进作用。ISO7498定义了OSI的7层体系结构。其中,每个层次都在信息交换的任务中担当相对独立的角色、具有特定的功能。

由于微处理器的嵌入式应用,导致工业测控领域中各种仪器仪表、自动化装置和设备的智能化逐步下移。此变革适应了建立分布式测控系统的需要和实现工业过程控制系统“危险彻底分散”的要求,逐步发展为现场总线控制系统(FCS,Fieldbus Control System).FCS采用全分散式的体系结构,现场智能仪器仪表和智能化装置具有高度的自治性。即使局部出现问题,系统中的其他问题仍然可以按既定的控制规律继续运行,从而大大提高了整个系统的可靠性。FCS的信号传输实现了全数字化,执行测控任务的节点将采集到的数据和所执行的操作等信息转化为数字信号向网上发送,执行管理

任务的节点以数字形式向网上发送命令。由于通信电缆(双绞线)是所有节点之间的惟一连接,避免了模拟信号传输过程中的干扰,降低了对环境、接地等的要求,并保证数据的一致性。由于FCS在体系结构、价格、安全性和开放性等方面的优势,从21世纪起将取代DCS成为过程控制系统的主流。 现场总线是一种全数字的双向多站点通讯系统,按ISO7498标准(OSI)提供网络互联,具有可靠性高、稳定性好、抗干扰能力强、通讯速率高、造价低和维护成本低等特点。传统的4~20mA控制回路通常只能传输代表过程变量的一个信号,而现场总线能够在传送多个过程变量的同时一并传送仪表的标识符和简单的诊断信息等。由于现场总线是双向的,因此,能够从

中心控制室对现场智能仪器仪表进行控制,使远程调 整、诊断和维护成为可能,甚至能够在故障发生前预 测。符合开放式标准的兼容性可以使用户选择不同厂 家的产品来构成FCS系统,用户的权益得到了很好的 维护。 在过去的十几年内,现场总线技术得到了迅速 的发展,现场总线仪表已成为智能仪器的重要分支和 发展方向之一。但现场总线至今未能形成统一的国际 标准,造成了多种现场总线共存的局面。一方面由于 现场总线是应用于现场过程控制的通讯网络,涉及许 多底层设备的不同行业标准和用户习惯的继承,以及 不同类型网络互联协议的制定;另一方面,各厂家都 希望自己的技术标

准占有更大份额,以便使国际标准给自己带来更大利益。目前,世界上较为流行的现场总线有:LONGWORKS,CAN,PROFIBUS,HART,FF等。鉴于CAN(Control Area Network)总线技术成熟、在智能仪器和其他现场智能设备中应用广泛, 在计算机测控系统发展的初期,由于计算机技术尚不发达,计算机价格昂贵,所以人们企图用一台计算机取代控制室内的所有仪表,因此出现了集中式数字测控系统。但这种测控系统可靠性差,一旦计算机出现故障,就会造成整个系统瘫痪。随着计算机可靠性的提高和价格的大幅度下降,出现了集中、分散相结合的集散控制系统(DCS)。在DCS 中,由测量传感器,变送器向

计算机传送的信号为模拟信号,下位机和上位机之间传递的信号为数字信号,所以它是一种模拟、数字混合系统。

现场控制总线的特点: 1) 全数字化通信:现场总线系统是一个“纯数字”系统,而数字信号具有很强的抗干扰能力,所以,现场的噪声及其他干扰信号很难扭曲现场总线控制系统里的数字信号,数字信号的完整性使得过程控制的准确性和可靠性更高。 2 ) 一对N结构:一对传输线,N 台仪表,双向传输多个信号。这种一对N结构使得接线简单,工程周期短,安装费用低,维护容易。如果增加现场设备或现场仪表,只需并行挂接到电缆上,无须架设新的电缆。 3 ) 可靠性高:数字信号传输抗干扰强,精度高,无须采用抗干扰和提高精度的措施,从而降低了成本。

4 ) 可控状态:操作员在控制室既可以了解现场设备或现场仪表的工作情况,也能对其进行参数调整,还可预测或寻找故障。整个系统始终处于操作员的远程监视和控制之中,从而提高了系统的可靠性、可控性和可维护性。 5 ) 互换性:用户可以选择不同制造商所提供的性价比最优的现场设备,并将不同品牌的仪表互联。即使某台仪表发生故障,换上其他品牌的同类仪表也能照常工作,实现了“即接即用”。 6 ) 互操作性:用户把不同制造商各种品牌的仪表集成在一起,进行统一组态,构成其所需的控制回路,而不必绞尽脑汁,为集成不同品牌的产品在硬件或软件上花费力气或增加额外投资。

7 ) 综合功能:现场仪表既有检测、变换和补偿功能,又有控制和运算功能,满足了用户需求,而且降低了成本。 8 ) 分散控制:控制站功能分散在现场仪表中,通过现场仪表即可构成控制回路,实现了彻底的分散控制,提高了系统的可靠性、自治性和灵活性。 9 ) 统一组态:由于现场设备或现场仪表都引入了功能块的概念,所有制造商都使用相同的功能块,并统一了组态方法,使组态变得非常简单,用户不需要因为现场设备或现场仪表种类不同而带来的组态方法的不同,再去学习和培训。

10 ) 开放式系统:现场总线为开放互联网络,所有技术和标准全是公开的,所有制造商必须遵循。这样,用户可以自由集成不同制造商的通信网络,既可与同层网络互联,也可与不同层网络互联,还可极其方便地共享网络数据库。

前言 目的:通过前言的介绍,使大家对CAN总线的概念,能够有基本认识。

什么是CAN? CAN:是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。

CAN总线优势 CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS485基于R线构建的分布式控制系统而言, 基于CAN总线的分布式控制系统在以下方面具有明显的优越性: 1.网络各节点之间的数据通信实时性强   首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;

CAN总线优势 2.缩短了开发周期   CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。

CAN总线优势 3.已形成国际标准的现场总线   另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。 4.最有前途的现场总线之一   CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。其典型的应用协议有: SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。

第一部分CAN总线协议 CAN总线中的基本概念 CAN总线的基本工作原理 CAN总线的特点 CAN总线协议内容 CAN协议的主要构成 典型的应用协议

1. CAN总线中的基本概念 1.报文 9.出错标注和恢复时间 2.信息路由 10.故障界定 3.位速率 11.连接 4.优先权 12.应答 5.远程数据请求 6.多主站 7.仲裁 8.安全性 9.出错标注和恢复时间 10.故障界定 11.连接 12.应答

基本概念 1.报文:总线上的信息以不同格式的报文发送,但长度有限。当总线开放时,任何连接的单元均可开始发送一个新报文。 2.信息路由:在CAN系统中,一个CAN节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性——节点可以在不要求所有节点及其应用层改变任何软件或硬件的情况下,被接于CAN网络。报文通信——一个报文的内容由其标示符ID命名,ID并不指出报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文滤波决定该数据是否使它们激活。成组——由于采用了报文滤波,所有节点均可接受报文,并同时被相同的报文激活。数据相容性——在CAN网络中,可以确保报文同时被所有的节点或者没有节点接受,因此,系统的数据相容性是借助于成组和出错处理达到的。

基本概念 7.仲裁:当总线开放时,任何单元均可以开始发送报文,若同时有两个或者更多的单元开始发送,总线访问冲突运用逐位仲裁规则,借助标示符ID解决,这种仲裁规则可以使信息和时间均无损失,若具有相同标示符的一个数据帧和一个远程帧同时发送,数据帧优先于远程帧,仲裁期间,每个发送器都对发送位电平与总线上检测到的电平进行比较,若相同则该单元可以继续发送,当发送一个隐性电平,而在总线上检测为显性电平时,该单元退出仲裁,并不再传送后继位了。

基本概念 8.安全性:CAN总线协议为了获得尽可能高的数据传输安全性,在每个CAN节点中均设有错误检测,标定和自检的强有力措施。检测措施包括:发送自检,循环冗余校验,位填充,和报文格式检查。 9.出错标注和恢复时间:已损坏的报文由检验出错的节点进行标注。这样的报文将失效,并自动进行重发送。如果不存在新的错误,从检出错误到下一个报文开始发送的恢复实践最多为29个位时间。 10.故障界定:CAN节点又能力识别永久性的故障和暂时扰动,可自动关闭故障节点。  

基本概念 11.连接:CAN串行通信链路是一条众多单元均可被连接的总线,理论上单元数目是无限的,实际上,单元总数受限于延迟时间和总线的电器负载。 12.应答:所有接收器均对接收报文的相容性进行检查,回答一个相容的报文,并标注一个不相容的报文。

2.CAN总线的基本工作原理 CAN总线的拓扑结构如图所示,是一个典型的串行总线的结构形式。CAN总线中一个节点发送信息,多个节点接收信息;但CAN总线的信息存取方式既不同于令牌方式的Arcnet,也不同于主从方式的Bitbus,采用的是一种广播式的存取工作方式。与其他网络不同,在CAN总线的通信协议中,没有节点地址的概念,也没有任何与节点地址相关的信息存在,它支持的是基于报文的工作方式。也就是说,CAN总线面向的是数据而不是节点,因此加入或撤销节点设备都不会影响网络的工作,十分适用于控制系统要求快速、可靠、简明的特点。以下将对CAN总线的基本通信工作原理做一介绍。

CAN总线网络结构

载波监听多重访问/冲突检测(CSMA/CD—Carrier Sense Multiple Access with Collisio Detection) “载波监听”的意思是指在总线上的每个节点在发送信息报文前都必须监听到总线上有一段时间的空闲状态。一旦空闲状态被监听到,那么每个节点都有均等的机会来发送报文,这被称作“多重访问”。“冲突检测”是指在两个节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应措施来解决这一冲突情况。此时优先级高的报文先发送低优先级的报文暂停发送。

CAN总线协议是通过一种非破坏性的仲裁方式来解决总线冲突的。这也就是说当总线出现发送冲突时,通过仲裁后,原发送信息不会受到任何影响。所有的仲裁判别都不会破坏优先级高的报文信息内容,也不会对其发送产生任何的时延。这种仲裁规则可以使信息和时间均无损失。 基于报文的通信(Message-Based Communication) CAN总线是一个基于报文而不是基于站点地址的协议。也就是说报文不是按照地址从一个节点传送到另一个节点。CAN总线上报文所包含的内容只有优先

级标志区和欲传送的数据内容。所有节点都会接收到在总线上传送的报文,并在正确接收后发出应答确认。至于该报文是否要做进一步的处理或被丢弃将完全取决于接收节点本身,由节点来进行报文过滤。同一个报文可以发送给特定的站点或许多站点,就看你怎样去设计网络和系统。 CAN技术规范2.0B对于报文过滤特别进行了描述。所谓报文过滤是以整个标识符为基准,允许将任何标识符设置为对报文过滤是不关心的。屏蔽位可用于选择一组标识符,以便映射到接收缓冲器

中。如果使用屏蔽寄存器,寄存器的每一位必须是可编程的,亦即它们对报文过滤是开放或禁止,屏蔽寄存器的长度可以是整个标识码,也可以仅是其中的一部分。 CAN总线协议另外一个有用的特性是一个节点可以主动要求其它节点发送信息。这种特性叫做远程发送请求(RTR)。和上面不同之处在于,节点并不等待信息的到来,而是主动去索取。设计人员就可以利用这一远程发送请求特性来减少网络的数据通信量,同时维持整个系统的完整性。

基于报文的这种协议另外一个好处是新的节点可以随时方便地加入到现有的系统中,而不需对所有节点进行重新编程以便它们能识别这一新节点。一旦新节点加入到网络中它就开始接收信息,判别信息标识,然后决定是否作处理或直接丢弃。 CAN总线定义了四种不同的报文(或叫帧)用于总线通信。第一种也是最常用的是数据帧,用于一个节点传送信息到其它任一或所有节点;第二种叫远程帧,基本上是一个数据帧但其中的RTR位被置1,表明这是一个远程发送请求,用于一个节点主动要求其它节点发送信息;另外两种用于差错处理,分别叫做错误帧和过载帧。如果节点在接收过

程中检测到任一在CAN总线协议中定义了的错误信息,它就会发送一个错误帧,当一个节点正忙于处理接收的信息,需要额外的等待时间接收下一报文时,可以发送过载帧,通知其它节点暂缓发送新报文。 快速、可靠的网络通信(Fast,Robust Communication) 在发布了2.0B版的CAN总线技术规范后,其最大的通信速率已经比1.0版提高了倍,达1M位/秒,在这种速率下,即便是对时间要求非常高的参数也可以

通过CAN总线传输而不必担心其时延。另外,CAN总线协议有一套完整的差错定义,能够自动地检测出错误信息,由此保证了被传信息的正确性和完整性。 CAN总线上的节点具有检测多种通信差错信息的能力并采取相关的应对措施:发送错误可通过“CRC出错”检测到;普通接收错误可通过“应答出错”检测到;CAN报文格式错误可通过“格式出错”检测到;CAN总线信号错误可通过“位出错”检测到;同步和定时错误可通过“阻塞出错”检测到。每个CAN总线上的节点都有一个出错计数器用以记录各种错误发生的次数。

通过这些计数器就可以确认这些节点是否应工作到降级模式。总线上的节点可以从正常工作模式(正常收发数据和出错信息)降级到消极工作模式(只有在总线空闲时才能取得控制权),或者到关断模式(和总线隔离)。 CAN总线技术CAN总线上各节点还有能力监测是短期的干扰还是永久性的故障,并采取相应的措施这种特性被叫做“故障界定隔离”。采取了这种故障界定隔离措施后,故障节点将会被及时关断,不会永久占用总线。这一点对关键信息能在总线上畅通无阻地传送是非常重要的。

3.CAN总线的特点 CAN(Controller Area Network)总线,也称控制器局部网,属于现场总线的范畴,它是一种有效支持分布控制或实时控制的串行通信网络。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下: (1)多主站依据优先权进行总线访问, CAN总线为多主站方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一特点可方便地构成多机备份系统。

(2)在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134us内得到传输。 (3)无破坏性的基于优先权的仲裁。CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而优先级最高的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能) 。CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求。采用短帧结构,传输时间短、受干扰概率低,具有极好的检错效果。

(4)借助接收滤波的多地址帧传送。CAN总线节点只需通过报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的调度。 (5)CAN总线的直接通信距离最远可达10km(速率5Mb/s以下);以位速率表示的数据传输速度在不同系统中是不同的,然而在一个给定系统中此速率是惟一,并且是固定的。通信速率最高可达1 Mb/s (此时通信距离最长为40m)。CAN总线数据传输速率为1Mbit/s,线路距离lkm,基本站点数64,传输媒体是屏蔽双绞线或光纤。

(6)CAN总线上的节点数主要取决于总线驱动电路,目前可达110个。报文标识符可达2 032种(CAN 2 (6)CAN总线上的节点数主要取决于总线驱动电路,目前可达110个。报文标识符可达2 032种(CAN 2. 0 A) ,而扩展标准(CAN 2. 0B)的报文标识符几乎不受限制。也就是说,在标准帧的报文标识符有11位,而在扩展帧的报文标识符(29位)个数几乎不受限制。 (7)远程数据请求;配置灵活性;全系统数据相容性;错误检测和出错信令。 发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送。CAN 的每帧信息都有CRC校验及其他检错措施,数据出错率极低。

CAN总线的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。

CAN协议也是建立在国际标准组织的开放系统互联模型基础上的。不过,由于CAN总线的数据结构简单,又是范围较小的局域网,其模型结构只取OSI底层的物理层、数据链路层和应用层3层,不需要其他中间层,应用层数据直接取自数据链路层或直接向数据链路层写数据。结构层次少,利于系统中实时控制信号的传送。 (11)CAN总线的位数值表示: CAN总线上采用“显性”(Dominant)和“隐性”

(Recessive)两个互补的逻辑值表示“0”和“1”。当总线上出现同时发送显性和隐性位时,其结果是总线数值为显性(即“0”与“1”的结果为“0”)。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。VCAN-H和VCAN-L为CAN总线收发器和总线间的两接口引脚,信号是以两线间的“差分”电压形式出现。在隐性状态,VCAN-H和VCAN-L被固定在平均值附近,Vdiff近似于0。在总线空闲或隐性期间,发送隐性位。显性位以大于最小阀值的差分电压表示。

位流编码: 1)帧的部分,诸如帧起始、仲裁场、控制场、数据场以及CRC 序列,均通过位填充的方法编码。无论何时,发送器只要检测到位流里有5 个连续识别值的位,便自动在位流里插入一补码位。 2)数据帧或远程帧(CRC 界定符、应答场和帧末尾)的剩余位场形式相同,不填充。错误帧和过载帧的形式也相同,但并不通过位填充的方法进行编码。 备注:报文里的位流根据“不返回到零”进行编码。这就是说,在整个位时间里,位电平要么为“显性”,要么为“隐性”。

4.CAN总线协议内容 CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。BOSCH CAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和

显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。在CAN中,物理层从结构上可分为三层:分别是物理层信令(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN

收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送/接收器标准。理论上,CAN总线上的节点数几乎不受限制,可达到2000个,实际上受电气特性的限制,最多只能接100多个节点。 CAN的数据链路层是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制子层(

Medium Access control,MAC)完成数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。这些功能都是围绕信息帧传送过程展开的。

5.CAN协议的主要构成 CAN协议是一个被定义为ISO11898的国际标准,除了CAN协议本身外,CAN协议的一致性测试也被定义为ISO16845标准,它描述了CAN芯片的互换性。

C A N总线协议的分析 C A N总线的分层结构ISO/OSI模型将各种协议分为七层,自下而上依次为:物理层、链路层、网络层、传送层、会话层、表达层和应用层。C A N协议也是建立在国际标准组织的开放系统互连模型基础上的,不过,考虑到作为工业控制底层网络,其信息传输量较少,实时性要求比较高,因此,C A N的模型结构只取了O S I底层的物理层、数据链路层和顶层的应用层。其中物理层和数据链路层一般都固化在专用的C A N总线接口芯片和微处理器中,C A N总线系统的研发者主要进行应用层的开发工作。

表1 OSI开放式互连模型层次划分

CAN的分层结构: CAN遵从OSI(Open System Interconnection Reference Model)模型,其分层结构由高到低如图1所示。

图1 CAN总线分层结构

CAN总线中各个层的定义与开放系统互连模型(OSI)相一致,为两层。但CAN实际被分为应用层、数据链路层和物理层3层[2-3],即LLC、MAC、PLS,如图1所示。对应于CAN总线系统每个节点都是三层结构。其中数据链路层又被分为逻辑链路控制子层(LLC)和媒体访问控制子层(MAC),各层之间相互独立且透明.每一层只与另一设备上相同的那一层通讯,而实际的通讯则发生在每一个设备上的相邻的2层,而各个设备之间则只通过物理层的通信介质连接在一起。数据发送节点数据流为LLC→MAC→PLS,然后将数据发送到总线上;而对于挂在总线上的所有节点(包括发送节点)的

接收的数据流为PLS→MAC→LLC。这种分层结构的规范保证了CAN总线的多主方式工作模式,即不分主从,非破坏性的仲裁工作模式。而LLC层的报文滤波功能可实现点到点、一点对多点、全局广播、多点对一点,多点对多点等数据传递方式。

协议层间关系

各分层主要功能如下: LLC子层提供的功能有: (1)帧接收过滤:数据帧内容由标识符命名。标识符并不能指明帧的目的地,每个接收器通过帧接收过滤确定此帧与已是否有关; (2)超载通告:如果接收器内部条件要求延迟下一个LLC子层开始发送超载帧,最多可产生两个超载帧,以延迟下一个数据帧或远程帧; (3)恢复管理:发送期间,对于丢失仲裁或被错误干扰的帧,LLC子层具有自动重发送功能,帧发送服务不被用户认可。

LLC帧是等同LLC实体(LPDU)之间进行交换的数据单元,以下分别描述LLC数据帧和远程帧的结构。 LLc数据帧由三个位场,即标识符场、数据长度码(DLC一Data Length Code)场,LLC数据场组成,如图所示。

LLC数据帧

LLC远程帧 LLC远程帧由两个位场(标识符场DLC场)组成,如图所示

LLC远程帧标识符格式与LLC数据帧标识符格式相同,只是不存在数据场。DLC的数值是独立的,此数据为对应数据帧的数据长度码。 MAC子层按IEEE 802.3规定,具有发送部分功能和接收部分功能。

媒体访问控制功能

发送部分功能包括: (1)发送数据封装,接收LLC帧和接口控制信息,构造MAC帧; (2)发送媒体访问管理,检查总线状态,串行化MAC帧,插入填充位,开始发送,执行仲裁,丢失仲裁时转入接收方式,应答校验,错误超载检测,出错标定、故障界定,发送超载帧或数据帧等。

接收部分功能包括: (1)接收媒体访问管理,由物理层接收串行位流,重新构筑帧结构,解除填充位,错误检测,发送应答,构造发送错误帧或超载帧; (2)接收数据卸装,由接收帧去除MAC特定信息,输出LLC帧和接口控制信息至LLC子层。 该层是CAN的核心; 按照IEEE802.3LAN标准规范,物理层又划分为: (1)物理介质附件 PMA(physieal Medium Attachment)实现总线发送/接收的功能电路并可提供总线故障监测方法。

(2)介质依靠接口MDI(Medium Dependent Interface) 实现物理介质与介质访问单元之间机械和电气接口。 (3)物理信令PLS((Physical Signaling) 实现与位表示、定时和同步相关的功能。 数据链路层可分为逻辑链路控制(LLC)和媒体访问控制(MAC)两部分。

C A N总线的工作特点 与其他网络不同,在C A N总线的通信协议中,没有节点地址的概念,也没有任何与节点地址相关的信息存在,它支持的是基于报文[2]的工作方式。当C A N总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的1 1位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当一个站要向其它站发送数据时,该站的C P U将要发送的数据和自己的标

识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。C A N芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

5.1数据交换原理 CAN是一种基于广播的通讯机制,广播通讯依靠报文(Message)的传送机制来实现,因此CAN并未定义站及站地址,而仅仅定义了报文,这些报文依靠报文确认区(Identifier)来进行识别,一个消息报文确认区在一个网络中必须是唯一的,它不但描述了某一报文的意义,而且还定义了报文的优先级,当很多站都在访问总线时,优先级是很重要的,因此,CAN是通过报文的确认区来决定报文的优先级的。 CAN使用地址访问的方法,使网络系统的配置变得非常灵活,用户很容易可以增加一个新的站到一个已经存在CAN网络里,而不用对已经存在的站进行任何硬件或软件上的修改,但必须此新增的站为完

全的接收者,这样它将不会对网络上各节点的通讯产生影响。

5.2实时数据传送 在实时处理系统中,通过网络交换紧急报文存在很大的不同:一个迅速改变的值,如发动机负载必须频繁的进行传送且要求延迟比其它的值如发动机温度要小。发送的报文都要和其它的不太紧急的报文进行优先级的比较,在系统设计中,报文的优先级体现在写入报文确认区的二进制值,这些值不能被动态的改变。确认区中的值越小,其报文的优先级越高(也就是0比1的优先级高)。

5.3消息的帧格式(Frame format) 1.CAN协议支持两种帧格式,它们只是在确认区存在差异,一种被称为CAN标准帧,在CAN2.0协议的Part A进行定义,标准帧支持11bit的确认区长度,标准帧格式如下图所示;另一种称为CAN扩展帧,在CAN2.0协议的Part B进行定义,支持29bit的确认区。

CAN 标准帧格式

在CAN2.0B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有ll位标识符的帧称之为标准帧,而含有29位标识符的帧称为扩展帧。如CAN1.2版本协议所描述,两个版本的标准数据帧格式和远程帧格式分别是等效的,而扩展格式是CAN2.0B协议新增加的特性。为使控制器设计相对简单,并不要求执行完全的扩展格式,对于新型控制器而言,必须不加任何限制的支持标准格式。但无论是哪种帧格式,在报文传输中有以下四种帧类型: a 数据帧: 数据帧携带数据从发送器至接收器。

标准格式的数据帧结构

扩展格式的数据帧结构

b 远程帧: 总线单元发出远程帧,请求发送具有同一识别符的数据帧。 c 错误帧: 任何单元检测到一总线错误时就发送错误帧。 d 超载帧: 用来在先行的和后续的数据帧(或远程帧)之间提供附加的延时。 数据帧或远程帧与前一个帧之间都会有一个隔离域,即帧间间隔。数据帧和远程帧可以使用标准帧及扩展帧两种格式。 2.帧格式介绍

a. 数据帧 数据帧携带由发送节点到接收节点(或发送器到接收器),由7个不同的位场组成:即帧起始位、仲裁场、控制场、数据场、CRC场、应答场、帧结束。如图2所示。

远程帧 节点A如果索取B节点的数据时,则由A发送远程帧,其A节点在仲裁场的标识符应为B节点的标识符相同。 远程帧由帧起始位、仲裁场、控制场、CRC场、应答场、帧结束6个场组成。帧起始(SOF)标志数据帧和远程帧的起始,由单个“显性”位构成。只有在总线处于空闲状态时才允许发送。所有都必须同步于首先开始发送的那个站的帧起始前沿;仲裁场由来自LLC子层的表识符(ID,identifier)和远程发送请求(RTR,remote ransmission reques)位组成。表识符长度为11

位(ID10-ID0),按照由高至低的次序发送,且前7位(ID19-ID4)不能全为隐性位。表示符用于提供关于传送报文和总线访问的优先权的信息。在数据帧中,RTR位为“0”。 控制场由6位构成,前2位为备用位,后4位为数据长度码,决定数据场中的字节数目,可由0-8变化。 数据场由数据帧中被发送的数据组成,数目由控制场决定(0-8字节),第一个字节的最高位首先被发送。 CRC场包括CRC(循环冗余码校验序列(15位)和CRC界定位(一个隐性位),用于帧校验。

ACK场由应答间隙和应答界定符组成(共两位)。应答间隙期间,数据贞发送器发出一个“隐性”电平,而所有已正确接收到有效报文的接收器此时传送一个“显性”位,报告给发送器(发送器发出的“隐性”电平被改写为“显性”电平),表明至少有一个接收器已正确接收。后续的应答界定符为一个“隐性”电平。 帧接收由7位隐性位组成,此期间无位填充。 它与数据帧的区别有:①仲裁场的RTR位为隐性,标识此帧为远程帧;②无数据场;③控制场中的PLC可为0~8的任意数值,但无意义。

CAN协议采用短帧结构,即每帧数据最多包含8位数据,这将有利于系统的实时性。另一个特点是废除了传统的站地址编码,而代之以表识符对信息进行优先权分级。任何节点均可向全网络广播发送数据,其他节点则根据所接收到的标识来决定是否处理所接收到的信息。 若同时有两个或更多的节点开始发送报文,总线运用对表识符的逐位仲裁规则巧妙的在各节点内解决冲突。仲裁期间,每个节点都监视总线电平,并于自己发送的位电平相比较。若该节点发送的一个隐性位被显性被显形位改写,说明有较高优先权报文在发送,则节电自动转变为接收器。当一个具有相

同标识符的远程帧和一个数据帧被仲裁时,远程帧RTR位的隐性电平被数据帧RTR位显性电平改写,所以数据帧比远程帧优先级高。由上述可见,标识符和RTR位对应二进制数位越低的报文优先级越高。这种仲裁规则可以使信息和时间均无损失。 每个节点的接受部分设置了接受过滤机制,可从总线上川流不息的信息中选取与己有关的信息,而不必理睬与己无关的信息。 说明:对于仲裁场、控制场、数据场、CRC场、帧间空间使用填充技术进行编码,即每5个同状态电平插入一位与它相补的电平,还原时再予以删除。

c. 出错帧 出错帧格式: 出错帧由2场组成,如图3所示。 图3 出错帧结构

第一个场是错误标志,用做为不同站提供错误标志的叠加;第二个场是错误界定符。 错误标志具有两种形式:活动错误标识(由6个显位组成)、认可错误标识(由6个隐位组成)。当一个节点发出错误帧时,其出错标识为连续6个显性位或连续6个隐性位。CAN总线规定使用填充技术的编码不允许连续出现6个同状态电平,某一节点标识传送后,其它节点由于总线上的连续电平的出现,破坏帧格式,补发送错误标识,因此错误标识叠加后占6~12位。各节点在发出错误标识之后,都在监视总线,当检测到一个隐性位后,再发送7个隐性位,故错误界定符为8个隐性位。

CAN总线的错误类型 CAN总线有5种错误类型、它们互不排斥: 1)位错误:站单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则就会在此位时间里检测到一个位错误。但以下情况是例外的,即:在仲裁场的填充位流期间或ACK间隙发送一“隐性”位时。 此时,当监视到一“显性”位时,不会发出位错误。当发送器发送一个被动错误标志但检测到“显性”位时,也不视为位错误。 2) 填充错误:如果在使用位填充法进行编码的信息中,出现了第6 个连续相同的位电平时,将检测到一个填充错误。

3) CRC 错误:CRC 序列包括发送器的CRC 计算结果。接收器计算CRC 的方法与发送器相同。如果计算结果与接收到CRC 序列的结果不相符,则检测到一个CRC 错误。当一个节点检测到一个CRC错误时,标识在应答界定符之后发送,而其它错误在检测出错误的下一位发送错误标识。 4)形式错误:当一个固定形式的位场含有1 个或多个非法位,则检测到一个形式错误。 5) 应答错误:只要在ACK 间隙期间所监视的位不为“显性”,则发送器会检测到一个应答错误。

CAN总线故障界定及处理 错误标定: 检测到错误条件的站通过发送错误标志指示错误。对于“错误主动”的节点,错误信息为“主动错误标志”,对于“错误被动”的节点,错误信息为“被动错误标志”。站检测到的错误无论是位错误、填充错误、形式错误,还是应答错误,这个站均会在下一位时发出错误标志信息。 只要检测到的CRC 错误时,错误标志的发送开始于ACK 界定符之后的位(其他的错误条件除外)。每个CAN总线节点都设有发送出错记数器和接收出错计数器。发送器送出一个错误标识时,发送错误计数器加8,接收器检测出一个错误,接收

错误记数器加1或加8,报文成功发送后,发送错误计数器减1,接报文成功接收后,接收错误计数器减1,有了如上规定之后,即可定义故障界定:一个节点如果其错误计数值在1~127(含1、127)则为错误激活节点;在128~255(含128、255)则为错误认可节点。错误激活节点检测出错误时,发送活动错误标识。错误认可节点检测出错误时,发送认可错误标识;当错误读数值大于或等于256时,总线关闭。错误计数值大于96时,说明总线被严重干扰。

对于总线关闭的节点,在监测总线上11个连续隐性位发生128次,则此节点总线启动,成为错误计数器为零值的错误激活节点。 故障界定: 发送错误计数及接收错误计数。这些计数按以下规则改变(注意:在给定的报文发送期间,可能要用到的规则不只一个): 1) 当接收器检测到一个错误,接收错误计数就加1。在发送主动错误标志或过载标志期间所检测到的错误为位错误时,接收错误计数器值不加1。

2) 当错误标志发送以后,接收器检测到的第一个位为“显性”时,接收错误计数值加8。 3) 当发送器发送一错误标志时,发送错误计数器值加8。 例外情况1:发送器为“错误被动”,并检测到一应答错误(注:此应答错误由检测不到一“显性”应答 以及当发送被动错误标志时检测不到一“显性”位而引起)。 例外情况2:发送器因为填充错误而发送错误标志(注:此填充错误发生于仲裁期间。引起填充错误的原因是由于:填充位位于RTR 位之前,并已作为“隐性”发送,但是却被监视为“显性”)。

备注:在以上两种例外情况下,发送错误计数器的值不改变。 4)发送主动错误标志或过载标志时,如果发送器检测到位错误,则发送错误计数器值加8。 5)当发送主动错误标志或过载标志时,如果接受器检测到位错误,则接收错误计数器值加8。 6)在发送主动错误标志、被动错误标志或过载标志以后,任何节点最多容许7 个连续的 “显性”位。以下的情况,每一发送器将它们的发送错误计数值加8,及每一接收器的接收错误计数值加8:

当检测到第14 个连续的“显性”位后; 在检测到第8 个跟随着被动错误标志的连续的“显性”位以后; 在每一附加的8 个连续“显性”位顺序之后。 7)报文成功传送(得到应答及直到帧末尾结束没有错误),发送错误计数器值减1,除非已为0。 8)如果接收错误计数值介于1 和127 之间,在成功地接收到报文后(直到ACK 间隙接收没有错误,及成功地发送了应答位),接收错误计数器值减1。如果接收错误计数器值是0,则不变,如果大于127,则它会设一值介于119 到127 之间。

9)当发送错误计数器值等于或超过128 时,或当接收错误计数器值等于或超过128 时,节点为“错误被动”。让节点成为“错误被动”的错误条件致使节点发出主动错误标志。 10)当发送错误计数器值大于或等于256 时,节点为“总线关闭”。 11)当发送错误计数器值和接收错误计数器值都小于或等于127 时,“错误被动”的节点重新变为“错误主动”。 12)在总线监视到128 次出现11 个连续“隐性”位之后,“总线关闭”的节点可以变成“错误主动”(不再是“总线关闭”),它的错误计数值也被设置为0。

备注:一个大约大于96 的错误计数值显示总线被严重干扰。最好能够采取措施测试这个条件。另外如果起动期间内只有1 个节点在线且这个节点发送一些报文,则将不会有应答。从而使得该节点检测到错误并重复报文。由于这种原因,节点会变为“错误被动”,而不是“总线关闭”。 d. 超载帧 超载帧用于在接收节点未准备好的情况下请求对数据帧或远程帧延时,由2个位场组成:超载标志和超载界定符,见图4。超载标志及超载界定符与出错帧标识相同,其引发和处理过程也是一样的。

图4 超载帧结构

3. 帧格式中重点部分介绍 a. 帧起始标志位(SOF) 由一个显性位构成,表明某个节点开始发送信息,所有其它节点必须与此同步(硬同步),但只有在总线空闲时才允许起始位的发送。 b. 仲裁场 (1)仲裁场的组成 仲裁场如图5所示。帧起始标志数据帧和远程帧的起始,由一个单独的“显性”位组成。由控制芯片完成。 仲裁场包括标识符和远程发送请求位(RTR)。

对于CAN2. 0,标准格式帧与扩展格式帧的仲裁场格式有所不同。对于CAN2 对于CAN2.0,标准格式帧与扩展格式帧的仲裁场格式有所不同。对于CAN2.0A标准,仲裁场由11位识别符和RTR位组成,识别符位由ID-28…ID-18构成。RTR位在数据帧中必须是显性位,而在远程帧必须为隐性位。 扩展格式里仲裁场包括29位识别符;替代远程请求位(SRR位);标志位(IDE位);远程发送请求位(RTR位)。其识别符由ID-28到ID-0构成。为了区别标准格式和扩展格式,前版本CAN规范1.0-1.2的保留位r1在扩展帧时表示为IDE位。

图5 仲裁场的组成

标准数据帧和扩展数据帧的区别

仲裁场的作用之一是说明数据帧或远程帧发送目的地;之二是指出数据帧或远程帧。仲裁场的数据由软件编程配置SJA1000完成。 c. 识别符 标准格式的识别符: 标准帧格式的识别符的长度为11位,相当于扩展格式的基本ID,这些位按ID28到ID1的顺序发送。最低位是ID-18。值得注意的是7个最高位(ID28到ID22)必须不能全是隐性。

扩展格式的识别符: 和标准格式形成对比,扩展格式由29位组成。其格式包含两个部分:11位基本ID和1位扩展ID.基本ID包括11位,它按ID28到ID18的顺序发送,相当于标准识别符的格式。基本ID定义了扩展帧的基本优先权。扩展ID包括18位,它按ID17到ID0顺序发送。 标准帧里识别符后是RTR位。RTR的全称为远程发送请求位(Remote Transmission Request BIT)。RTR位在数据帧里必须为显性而在远程帧里必须为隐性。 扩展格式里基本ID首先发送,其次是IDE位和SRR位,扩展ID的发送位于SRR位之后。

SRR只在扩展帧中存在,它的全称是替代远程请求位(Substitute Remote Request BIT)SRR是一隐性位,它在扩展格式的标准帧RTR位位置,因此代替了标准帧格式中的RTR位。因此标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的。 (2)仲裁与优先级 CAN总线的通讯模式为:载波监测、多主掌控冲突(CSMA/CA)。这就使得总线上任一个节点向总线发送信息的机会是均等的。只要总线空闲,谁都可以发送。但如果在同一时刻有两上或两个以上节点同时发送信息,这就发生冲突,这就需要仲裁,

而且获得仲裁的信息不受破坏。CAN是按位进行仲裁。当节点向总线发送信息同时,也在读取总线的电平。如果发送的电平与读取的电平相同,则继续发送下一位,若不同则停止发送,退出竞争。余下的节点继续重复上述过程,直到总线上只剩下一个节点发送的电平。而在冲突中被仲裁下的节点,待下一个总线空闲期再次尝试发送。这种总裁技术明显可以看出,在仲裁帧中,标识符的二进制数值小者有较高优先级。换句话在诸多竞争节点中,如果报文标识符的值最小,则此报文的优先级最高。

控制场由6个位组成,说明数据帧中有效数据的长度,如图6所示。控制场的数据由软件编程配置SJA1000完成。 c. 控制场 控制场由6个位组成,说明数据帧中有效数据的长度,如图6所示。控制场的数据由软件编程配置SJA1000完成。 图6 控制场组成

IDE:在CAN2.0B标准格式IDE应为显性(隐性用r表示)。r0:保留位。 DLC3~DLC0:数据长度,最大数值为rddd(即隐显显显)。通常“显性”表示传输0,“隐性”表示传输1,则最大数据为1000H,即8。 d. 数据场 数据场由数据帧中的发送数据组成。它可以为0~8个字节,取决于控制场中数据长度DL3~DL0。首先发送的最高有效位。数据场的数据由软件编程配置SJA1000完成。 CRC场

CRC场结构如图7所示: 图7 CRC场结构

CRC场由CRC序列和CRC界定符组成,CRC序列为16位CRC检验码,CRC界定符用于标注RC序列的结束,为一位隐形位。CRC检验范围从帧起始位开始直到数据场结束。其生成多项式为 f. 应答场 应答场长度为两个位,包括应答间隙和应答界定符。由SJA1000控制芯片自动完成,其结构如图8所示。

图8 应答场组成

在应答场中发送节点送出2个隐性位,所有接收到匹配CRC序列的节点,在应答间隙发送一个显示位,以报告发送器接收无误。应答界定符为一个隐性位。 g. 帧结束 由7个隐性位构成,表示一帧内容结束。每一个数据帧和远程帧均由一标志序列界定,这个标志序列由7个“隐性”位组成。这部分由SJA1000控制芯片自动完成。 h.帧间空间

不管何种帧,均以称之为帧间空间的位场分开,但超载帧、出错帧之前无帧间空间,如图9所示:

间歇场为3个隐位,在此期间不允许启动数据帧和远程帧。总线空闲周期可以任意长。 总之,仲裁场、控制场、数据场由软件编程配置SJA1000完成;帧起始、CRC场、应答场、帧结束由CAN总线控制芯片SJA1000自动完成。

5.4检测和信号错误 不同于其它总线系统,当错误产生时CAN协议不能立即使用应答报文来取代错误信号,对于错误侦测CAN协议有完整的三种报文级机制: * 循环冗余检测(CRC) * 帧检测(Frame check) * ACK错误 CAN协议也提供两种位元级的错误侦测机制: * 监视(Monitoring) * 位填充(Bit stuffing)

如果至少一个站使用上述机制发现一个或多个错误,则发送“错误标志(error flag)”来取消当前的传送,阻止其它站继续接收报文,以确保通过网络的数据连贯性,一个错误的报文传送被取消后,发送者自动重新尝试发送(自动重发),并重新进行总线访问权的竞争。 依据国际标准化组织/开放系统互连(International Standardi-zation Organization/Open System Interconnection,ISO/OSI)参考模型,对CAN协议的媒体访问控制子层的一些概念和特征做如下说明:

(1)报文(Message) 总线上的报文以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。 报文校验:校验报文是否正确有效,其发送器与接收器的校验方式有所差异。 1)发送器:如果直到帧的末尾位均没有错误,则此报文对于发送器有效。如果报文破损,则报文会根据优先权自动重发。为了避免和其他信息竞争总线,重新传输必须在总线空闲时启动。 2)接收器:如果直至最后一位(除了帧末尾位)均没有错误,则报文对于接收器有效。

(2)信息路由(Information Routing) 在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。 (3)标识符(Identifier) 要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。

(4)数据一致性应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。 位定时要求: 标称位速率:是指一理想的发送器在没有重新同步的情况下每秒发送的位数量。 标称位时间:标称位时间 = 1 /标称位速率,可以把标称位时间划分成几个不重叠时间的片段,它们是

同步段 (SYNC_SEG) 传播时间段 (PROP_SEG) 相位缓冲段1(PHASE_SEG1) 相位缓冲段2(PHASE_SEG2) 位时间如下图所示:

标称位时间组成图

同步段:用于同步总线上不同的节点。这一段内要有一个跳变沿。 传播段:用于补偿网络内的物理延时时间。它是总线上输入比较器延时和输出驱动器延时总和的两倍。 相位缓冲段1、2: 用于补偿边沿阶段的错误。这两个段可以通过重新同步加长或缩短。 采样点:采样点是读总线电平并解释各位值的一个时间点。采集点位于相位缓冲段1之后。 信息处理时间:是一个以采样点作为起始的时间段。采集点用于计算后续位的位电平。

时间份额:是派生于振荡器周期的固定时间单元。存在一个可编程的预比例因子m,其取值范围为1-32 ,它是以最小时间份额为起点,其表达式为:时间份额= m * 最小时间份额。 时间段的长度:同步段为1 个时间份额; 传播段的长度可设置为1-8 个时间份额;相位缓冲段1的长度可设置为1-8 个时间份额;相位缓冲段2的长度为阶段缓冲段1和信息处理时间之间的最大值; 其中信息处理时间少于或等于2 个时间份额。一个位时间总的时间份额值可以设置在8-25 之间。

硬同步:硬同步后,内部的位时间从同步段重新开始。因此,硬同步强迫由于硬同步引起的沿处于重新开始的位时间同步段之内。 重新同步:当引起重新同步沿的相位误差的幅值小于或等于重新同步跳转宽度的设定值时,重新同步和硬件同步的作用相同。当相位错误的量级大于重新同步跳转宽度时: 如果相位误差为正,则相位缓冲段1 被增长。增长的范围为与重新同步跳转宽度相等的值。 如果相位误差为负,则相位缓冲段2 被缩短。缩短

的范围为与重新同步跳转宽度相等的值。 硬同步和重新同步均遵循以下同步规则: 1)在一个位时间里只允许一个同步。 2)仅当采集点之前探测到的值与紧跟沿之后的总线值不相符时,才把沿用作同步。 3)总线空闲期间,有一“隐性”转变到“显性”的沿,无论何时,硬同步都会被执行。 4)如果仅是将“隐性”转化为“显性”的沿用作重新同步使用,则其他符合规则1 和规则2 的所有从“隐性”转化为“显性”的沿可以用作为重新同步。有一例外即

当发送一显性位的节点不执行重新同步而导致一“隐性”转化为“显性” 沿,此沿具有正的相位误差,不能作为重新同步使用。 重新同步跳转宽度:重新同步的结果,使相位缓冲段1 增长,或使相位缓冲段2 缩短。相位缓冲段加长或缩短的数量有一个上限,此上限由重新同步跳转宽度给定。重新同步跳转宽度应设置为1 与相位缓冲段1所取最小值之间某值。时钟信息可以从一位值转换到另一位值的跳变中得到。后续位有固定的最大数值,其数值相同。这个属性提供了总线单

元在帧期间重新和位流同步的可能性。(这里有一个属性即:只有后续位的一固定最大值才具有相同的数值。这个属性使总线单元在帧期间重新同步于位流成为可能) 一个沿的相位误差:它是由相关于同步段的沿的位置给出,以时间份额量度。相位误差定义如下: • e = 0 如果沿处于同步段里。 • e > 0 如果沿位于采集点之前。 • e < 0 如果沿处于前一个位的采集点之后。

(6)优先权:由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。 (7)远程数据请求(Remote Data Request) 通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。 (8)仲裁(Arbitration) 只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧

在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。  (9)总线状态: 总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。

(10)故障界定(Confinement) CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。 对于故障界定,单元的状态可能处于以下三种情况之一: 1)“错误主动”的单元可以正常地参与总线通讯并在错误被检测到时发出主动错误标志。 2)“错误被动”的单元不允许发送主动错误标志。“错误被动”的单元参与总线通讯而且在错误被检测到时只发出被动错误标志。而且,发送以后,“错误被动”单元将在预设下一个发送之前处于等待状态。 3)“总线关闭”的单元不允许在总线上有任何的影

响(比如,关闭输出驱动器)。 在每一总线单元里实现两种计数以便故障界定: (11)应答接收节点对正确接收的报文给出应答,对不一致报文进行标记。 (12)CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。 (13)CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。

(14)报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的效验机制,这些都保证了CAN通信的可靠性。

首位的报文,而不是首先发送帧的起始位或成为一接收器。 3 ) 如果节点在错误界定符或过载界定符的第八个位采集到一显性位,则在下一位开始发送一过载帧(而不是错误帧)。错误计数器值不会增加。 4) 仅为隐性转换到显性的沿才会用于重新同步。为符合现有的规范,以下的规定仍然有效。 5) 在硬同步时,所有CAN 控制器同步于帧起始位。

7)这个修改允许振荡器最大为1.58%的容差,并在总线速度达到125 KB/秒时使用一陶瓷谐振器。 6) 直到遇上三个隐性的间歇位,CAN 才发送帧起始位。 7)这个修改允许振荡器最大为1.58%的容差,并在总线速度达到125 KB/秒时使用一陶瓷谐振器。 为了满足CAN 协议的整个总线速度范围,仍然需要一晶振。只要符合以下的要求,就可以保持现有协议及增强型协议的兼容性: 8)同一个网络里的控制器为现有CAN 协议及增强型CAN 协议时,所有的控制器必须使用晶振。

9)具有最高振荡准确度要求的芯片,决定了其他节点的振荡准确度。只有在所有的节点使用增强型的CAN 协议时才能使用陶瓷谐振器。

6.协议状态分类及变换 根据有限状态机的特点,要设计出一个能够实现CAN总线协议的有限状态机,需要找出CAN总线协议规定的所有状态,以及各状态之间变化的规则。

6.1 CAN总线节点的状态 根据CAN总线协议,可以将CAN总线中一个CAN节点所处的状态分为以下几类: 1)节点错误状态 节点错误状态直接决定了节点的动作特点。节点错误状态包括总线关闭、错误主动、错误被动3种状态。 总线关闭的节点不允许对总线产生任何的影响,既不往总线上发送报文,也不从总线上读取报文,相当于脱离总线。错误主动的节点可以正常参与总线通信,并在错误被检测到时发出错误标志。

错误被动的节点不允许发送主动错误标志。 错误被动的节点参与总线通信,在错误被检测到的时候只发出被动错误标志。而且,发送以后,错误被动单元将在初始化下一个发送之前处于等待状态。 2)节点工作状态 节点工作状态表征了一个CAN节点所处的工作的状态。节点工作状态包括总线空闲、发送和接收3种状态。 处于总线空闲状态下的节点既不发送报文,也不接受报文。 处于发送状态下的节点正在向总线发送报文。

处于接受状态下的节点正在从总线接受报文。 3)发送状态 处于发送状态的节点又会处于不同的状态,包括发送数据帧状态、发送远程帧状态、发送错误帧状态、发送过载帧状态,这些状态又包括各自的子状态。 4)接受状态 处于接受状态的节点也会处于不同的状态,包括接受数据帧状态、接受远程帧状态,这些状态也包括各自的子状态。

6. 2 CAN总线节点的状态转换规则 6. 2. 1 节点错误状态转换规则 节点错误状态转换图如图1所示

每个节点的初始错误状态都是错误主动,当节点的发送错误计数器大于或等于128或接受错误计数器大于或等于128时,错误状态由错误主动变为错误被动 每个节点的初始错误状态都是错误主动,当节点的发送错误计数器大于或等于128或接受错误计数器大于或等于128时,错误状态由错误主动变为错误被动.当发送错误计数器和接受错误计数器都小于或等于127时,节点错误状态由错误被动变为错误主动.当发送错误计数器大于或等于256时,错误状态由错误被动变为总线关闭。当总线上出现128次111个隐形位,错误状态由总线关闭变为错误主动。

6. 2. 2 节点工作状态转换规则 节点工作状态转换图如图2所示 图2 工作状态转换图

6. 2. 3 节点发送状态转换规则 发送状态转换图如图3所示 图3 发送状态转换图

6. 2. 4 节点接受状态转换规则 接受状态转换图如图4所示 图4 接受状态转换图

7. CAN应用技术 (一)C A N总线的硬件设计C A N总线采用的总线式拓扑结构成本低,结构简单,系统可靠性高。通过C A N总线连接各个网络节点,形成多主机控制器局域网。信息的传输采用C A N通信协议,通过CAN控制器[3]来完成。各网络节点一般为带有微控制器的智能节点完成现场的数据采集和基于C A N协议的数据传输。图1描述了C A N总线接口结构,给出了一般情况下C A N接口的硬件实现方案。C A N控制器芯片有两种:一种是独立的(如PHILIPS公司的SJA1000),一种是和微控制器集成在一起的。前者使用上比较灵活,常用的微控制器基本上

都能满足C A N控制器接口的需要。后者在片内将C A N总线控制器作为内部的一个寄存器模块与微处理器集成在一起,设计的灵活性降低,但同时外部电路的复杂性也降低了,整个系统工作相对稳定。 SJA1000是一种独立的CAN控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是Philips公司PCA82C200控制器的替代产品,除了PCA82C200的BasicCAN操作模式以外,还增加了一种新的操作模式——PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议。

SJA1000的基本特征如下: 1) 引脚电气参数与PCA82C200兼容; 2) 具有PCA82C200模式(即默认的BasicCAN模式),支持CAN2.0A和CAN2.0B; 3) 有扩展的接收缓冲器64字节,先进先出(FIFO); 4) 支持11位和29位标识码,通信速率可达1Mbps; 5) 其PeliCAN模式的扩展功能包括:可读写的错误计数器,可编程的错误报警限额寄存器,最近一次 错误代码寄存器,对每一个总线错误的中断,有具

体位表示的仲裁丢失。 C A N收发器为C A N总线通信控制器与物理总线之间的接口,它可以提供向总线的差动发送能力和C A N控制器的差动接收能力。对于C A N控制器及带有C A N总线接口的器件,C A N收发器并不是必须使用的器件,因为多数C A N控制器均具有配置灵活的收发器件,并允许总线故障,只是驱动能力只允许2 0至3 0个节点连接在一条总线上。若网络的规模比较大,节点数比较多,需外加总线驱动元件,以增大输出电流。如82C250可支持多达110个节点,并能以100Mbps的速率工作在恶劣的电气环境之下。一般在驱动芯片和C A N控制器之间加

入光电耦合器,增加抗干扰能力。物理层的设计要注意电缆的终端阻抗匹配,这直接影响了C A N总线能否正常工作和网络性能。另外,C A N通讯数据传输的是数字量,所以对数据的采集通常需使用A/D转换模块。

图1 CAN总线接口硬件结构图

(二)C A N应用软件的设计 根据C A N控制器和微处理器的特性,C A N驱动程序通常分为3个层次:硬件抽象层,功能函数层和应用程序接口层。通常我们只关心应用程序接口层,它包括初始化C A N控制器,发送数据函数,接收数据函数。在设计应用层软件时,最重要的是实现C A N的正常通讯,也就是如何利用C A N控制器与C A N网络上其它节点进行数据通讯。而正常的通讯无非是向总线上发送数据和从总线上接收数据。但是在正常通讯之前必须要对C A N控制器进行初始化,以便让C A N控制器的工作方式 、总线

波特率、验收过滤器等各个功能与实际的工作相 符。 1、初始化C A N模块 CAN控制器初始化函数主要用来实现C A N工作时的参数设置。这些初始化的内容包括硬件使能C A N,软件复位C A N,设置C A N报警界限,设置总线波特率,设置中断工作方式,设置C A N验收过滤器的工作方式,设置C A N控制器的工作模式等。 2、C A N数据发送模块

对C A N模块初始化成功后,就可以调用驱动程序的发送数据函数来实现数据的发送。将要发送的数据按C A N格式组成报文,写入C A N模块的发送缓冲区中,然后启动发送命令,将报文送到总线上去。返回值为0,表示数据成功写入缓冲区并成功启动发送,但是否发送成功,并不知道。要想明确的知道是否发送成功请在调用该函数后查询T C S状态位,或配合发送成功中断来判断。返回值不为0则表示写发送缓冲区失败。图2为发送模块流程图。

图2 发送模块流程图

3、C A N数据接收模块 C A N总线通常采用中断方式来接收数据。返回值为0说明buf数据有效(环形缓冲区中接收到的1帧数据放返回值不为0说明b u f数据无效。图3为接收模块流程图。

图3为接收模块流程图

8. CAN总线有关器件介绍 CAN总线突出的优点使其在各个领域得到了广泛的应用,许多器件厂商竞相推出各种CAN总线器件产品,并已逐步形成系列。丰富的CAN总线器件进一步促进了CAN总线的推广。下表列出主要的CAN总线器件产品,本节介绍具有不同功能的几种CAN总线芯片。

1 Intel82527CAN通信控制器 CAN控制芯片可以完成物理层和数据链路层的全部功能。采用CAN控制器,设计者仅需考虑应用层问题,通过相对简单的设计和编程就可开发出实用的CAN总线系统。CAN控制器由实现CAN总线协议部分和与微控制器接口部分构成。不同型号的CAN控制器,其实现CAN协议部分电路的结构和功能大都相同,而与微控制器接口部分的结构及方式存在一些差异。下面以Intel公司82527为例,对CAN控制器做简要介

绍。 82527是一种独立的高集成度的CAN控制器,它可通过并行总线或串行口(SPI)与各种微处理器接口,可按CAN规程完成串行通信。它只用微控制器或CPU极小的开销即可完成诸如报文发送,报文滤波,发送扫描和中断扫描等工作。82527可提供1个8字节数据长度的报文目标。除最后一个报文目标外,每个报文目标可被配置为发送或接收,最后一个报文目标仅为一个具有特定屏蔽设计的接收缓存器,以允许选择不同的报文标识符组进行接收。82527还具有实现报文滤波的全局屏蔽功能,

这一性能允许用户全局性地屏蔽报文的任何标识符位。可编程的全局屏蔽性能使用与标准和扩展的两种报文。82527是支持CAN规程2 这一性能允许用户全局性地屏蔽报文的任何标识符位。可编程的全局屏蔽性能使用与标准和扩展的两种报文。82527是支持CAN规程2.0B标准和扩展报文格式的第一个器件。由于CAN规程2.0的向后兼容性,82527也完全支持CAN2.0A的标准报文格式。82527使用44引脚PLCC封装,适用于-44~+125摄氏度的温度范围。其结构及功能框图如图1所示。

图1 82527功能框图

支持CAN2.0B规范,包括标准和扩展数据帧和远程帧; 可程控全局屏蔽,包括标准和扩展标识符; 82527通过片内双端口RAM与微控制器进行数据交换。微控制器将要传送的数据信息,包括数据字节、标识符、数据方向、数据帧或远程帧等包装成可多达15个通信目标送入双端口RAM,82527可自动完成这些通信目标的传送。其主要特性可概括如下: 支持CAN2.0B规范,包括标准和扩展数据帧和远程帧; 可程控全局屏蔽,包括标准和扩展标识符; 具有15个信息缓冲区,每个信息长度为8字节,包括14个TX/RX缓冲区,1个带可程控屏蔽的RX缓冲区;

2.带有CAN总线接口的微控制器及I/O器件 (1)8位微控制器P8XC592 可变CPU接口,包括多路8位总线(Intel或Motorola方式),多路16 位总线,8位非多路总线(同步/异步),串行接口(如SPI); 可程控速率并有可程控时钟输出; 可变中断结构; 可设置输出驱动器和输入比较器结构; 两个8位双向I/O口。 2.带有CAN总线接口的微控制器及I/O器件 (1)8位微控制器P8XC592

P8XC592是高性能8位微控制器。它是Philips现有微控制器P8XC552和CAN通信控制器82C200的功能组合,它与8XC552微控制器的不同之处是:CAN总线取代了原I^2C总线,且片内程序存储器扩展至16KB;增加了256字节内部RAM,并在CAN发送/接收缓存器与内部RAM之间建立了DAM;为便于访问CAN发送/接收缓存器,在内部专用寄存器块中增加了4个特殊功能寄存器(CANADR,CANDAT,CANCON和CANSTA)。CPU通过4个特殊功能寄存器访问CAN控制器,也可以访问DAM逻辑。需注意的是,CANCON和CANSTA在读和写访问时对应不同的物理单元。

符合具有严格的位定时的CAN技术规范2.0A和2.0B; 全集成内部时钟振荡器(不需要晶振),位速率为20~125kbps; (2)CAN总线I/O器件82C150 CAN总线上的节点即是基于微控制器的智能节点,也可以是仅具有CAN接口的I/O器件。82C150既是一种具有CAN总线接口的模拟和数字I/O器件,可以有效地提高微控制器I/O能力、降低线路复杂性。82C150的主要功能包括: CAN接口功能 符合具有严格的位定时的CAN技术规范2.0A和2.0B; 全集成内部时钟振荡器(不需要晶振),位速率为20~125kbps;

有4个可编程标识符位,在一个CAN总线系统上最多可以连接16个82C150; 支持总线故障自动恢复; 具有通过CAN总线唤醒功能的睡眠方式; 具有位速率自动监测和校正功能; 有4个可编程标识符位,在一个CAN总线系统上最多可以连接16个82C150; 支持总线故障自动恢复; 具有通过CAN总线唤醒功能的睡眠方式; 具有CAN总线差分输入比较器和输出驱动器。 I/O功能 16条可配置的数字及模拟I/O口线; 每条I/O口线均可通过CAN总线单独配置,包括I/O

方向、口工作模式和输入跳变的检测功能; 在用做数字输入时,可设置为由输入端变化而引起CAN报文自动发送; 两个分辨率为10 位A/D转化器; 两个通用比较器。 工作特性 电源电压为5V±4%,典型电耗20mA; 工作温度范围为-40~+125摄氏度; 采用28脚小型表面封装。 3.CAN总线收发接口电路82C250

82C250是CAN控制器与物理总线之间的接口,该器件可以提供对总线的差动发送和接收功能。主要特性如下: 与ISO/DIS11898标准全兼容; 高速性(最高可达1Mbps); 具有抗瞬间干扰(如汽车环境下)、保护总线能力; 降低射频干扰的斜率控制; 热保护; 总线与电源及地之间的短路保护;

低电流待机方式(可有效降低功耗); 掉电自动关闭输出; 可支持多达110个节点相连接。 82C250的功能框图如下图所示:

图2 82C250的功能框图

多数CAN总线控制器均具有配置灵活的收发接口,并允许总线故障,驱动能力一般可以满足20~30个节点连接的要求。82C250支持多达110个节点,并能以1Mbps的速率工作于恶劣电气环境下。利用82C250还可方便地在CAN控制器与收发器之间建立光电隔离,以实现总线上各节点的电气隔离。

10. 典型的应用协议 CAN总线的典型应用协议有: SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。 SAE J1939/ISO11783 协议如下: J1939 / ISO11783 工具: J1939 是应用于商业用车领域控制器之间基于CAN的实时数据交换的通讯协议。目前, SAE J1939标准已成为世界上各大车辆部件制造商均支持的重要通信标准,尤其在大客车、载货汽车、特种车辆和工程机械中得到广泛的应用。它共有10个子标准。

J1939的通信协议是以CAN总线通信协议为基础制定的,借用CAN的信息帧传递J1939的信息,即利用CAN总线的29位标识符形成J1939的编码系统,这样就约定了货车和客车的通用编码,并按这一规则形成了J1939的通信协议。表1为标准CAN和J1939信息帧的仲裁域和控制域的意义区别(扩展模式)。由此可见标准CAN和J1939通信协议的区别在于29位标识符。J1939的数据域与CAN的数据域都是相同的。J1939是将CAN的29位标识符(ID)进行了物理定义,同时制定了相应数据定义。

CAN的标准格式变为J1939是通过协议数据单元(PDU, protocol data unit)来实施和封装的。每个PDU信息帧由7部分组成,结构为P、R、DP、PF、PS、SA和DATA。PDU实际意义就是CAN的29位辨识码加上数据。

表1 CAN和J1939信息帧的仲裁域和控制域的区别

通讯管理: CANalyzer/CANoe Option J1939 允许用户在跟踪窗口对表示层(symbolic level)进行通讯管理。所有相关的信息如参数组号parameter group number,优先级,源地址都能显示。用户可以在跟踪窗口中选择不同的显示方法。上述可选项既包括了J1939应用层的解释也包括了只有标识符,数据长度代码和数据位的简单CAN协议层的解释。对于J1939 各种不同的报文组件例如包传输(packet transfer),CANalyzer/CANoe Option J1939也能显示。而且它能同时支持11位和29位标识符的显示

数据库: J1939的参数组和信号都在一个数据库里进行了描述。一般这个数据库已经存在,用户可以使用数据库编辑器进行扩展。 分析: 数据窗口可以显示各个信号。用户可以使用多种显示方法:如条形图、16进制、10 进制、2进制。此外一些特殊的值(如错误)会利用指示显示来进行说明。信号图形可以在在线图形窗口里显示和评价。 可编程性:

用户可以通过在测试结构中插入可编程的功能模块来实际的扩展功能。这是通过CAPL实现的。CAPL是一种类似于C语言、事件控制编程的语言,因此,控制器就可直接在CANalyzer/CANoe里实现仿真。 CANoe Option J1939: CANoe Option J1939 能通过J1939通讯协议实现控制器网络的仿真和分析。系统的环境的建模以通过环境变量和图形交互控制面板来实现。 CANOpen协议 CANopen 工具 CANalyzer Option CANopen是进行CANopen协议

的应用或设备开发的高效率工具。它可以被用来进行CANopen二次开发。 通讯监测器: CANalyzer Option CANopen可以用来在应用层上进行清晰的可视化的通讯监视工作。CAN传输的数据可以在跟踪窗口中显示出来,并且原始的数据被划分为不同的类别。所有设备的参数都使用纯文本显示,其中包括所有的CANopen设备,例如NMT、LSS、SDO、PDO、EMCY等等。举例而言,当SDO错误发生或者遇到紧急事件信息时,除了用十六进制数据表示的错误代码以外,还显示相应的说明解释。 CANalyzer Option CANopen监控协议的

正确执行,协议的错误信息可以随时被检测和显示。 分析: 除了跟踪窗口,数据显示和统计窗口也可以用来分析CANopen传输的数据。利用简单易用的CANalyzer 编程语言 - CAPL能够非常方便的评估和测试CANopen设备的细节信息。 CANsetter集成: CANsetter是CANalyzer Option CANopen集成的组件,可以用来生成信息和用户组件。对象组件是可以被读取或者配置的,设备也可以用于CANopen的操作,例如开始、停止、复位或者进入预制操作等

集成的扫描器通过设备的名称显示连接在网络中所有设备。 DeviceNet 工具: CANalyzer Option DeviceNet用于DeviceNet应用或设备开发的高效率工具。这一工具可以被用来进行二次开发。 通讯监测: CANalyzer Option DeviceNet允许使用符号进行面向对象的数据监视。各种数据,(例如数据发送者和接收者的地址、设备的响应和请求信息以及协议的片断),都能够在跟踪窗口中显示出来。不利用

同样地,利用CANalyzer可以对DeviceNet的数据进行分析和统计。 用户管理配置接口: DeviceNet了解单个CAN报文信息的意义是不可能的;因为一方面,所有数据的表示都是动态显示的;而另一方面,数据的内容往往依照连接设备的不同而含有不同的意义。正因为如此,网络必须预先已知。为此,CANalyzer维护着一个动态的数据库,利用这个数据库,可以用来观测、分析或者维护每个连接。 分析: 同样地,利用CANalyzer可以对DeviceNet的数据进行分析和统计。 用户管理配置接口:

用户管理配置接口是CANalyzer的一个插件,用来进行内部的网络管理。通过这个接口软件可以直接管理和显示DeviceNet项目,并且能够直接与网络上的设备通讯。以下是这个接口的部分功能: ㈠ 在网络上搜索节点 ㈡ 查询或者设置属性 ㈢ 运行节点上的DeviceNet设备 ㈣ 监测Heartbeat ㈤ 循环查询属性 NMEA 2000 工具:

NMEA 2000是一种基于J1939标准的通讯协议,这种标准是国家海军电子联合会(NEMA)制定,用于舰船电子设备连接通讯。 通讯监测: CANalyzer/CANoe 选项NMEA 2000允许使用符号信息来监测传输的数据。所有的相关信息,例如参数组数据、数据页)、优先级和源地址等等,都可以在跟踪数据窗口中显示。用户可以选择不同的数据显示方式,同纯粹的用CAN标识表示的CAN数据层一样,也可以任意地选择NMEA 2000的信息详解。同样,也支持MMEA2000快速数据报文,而且一些

NMEA2000的特殊信息,例如序数或者帧数都能在数据跟踪窗口中显示。 数据库: NMEA 2000的参数组以及信号都是利用数据库的形式描述。这个数据库包含了NMEA 2000的各种信息。使用CANdb++的编辑器,用户可以扩展数据库以满足特殊要求。参数组以及信号能供通过相应的符号进行选择。 分析: 任意的单一信号能够在数据窗口中显示,用户可以使用多种显示数据的方式来显示它,例如利用符号,或者十六进制的数据,甚至二进制的数据。信

号可以利用在线的图形窗口依照时间的序列显示或者评估。同样,NMEA的快速数据报文也可以在数据或者图形窗口中显示出来。 可编程: 在测试过程中用户能添加可编程的模块,利用类似C语言基于事件驱动的编程语言CAPL可以扩展NMEA 2000。 CANoe选项NMEA 2000: CANoe选项NMEA 2000可以使用NMEA 2000协议来仿真和分析网络上的电控单元。系统的环境可以使用环境变量、图形以及内建的控制面板来建模。

更多的功能: CANalyzer/CANoe 选项NMEA 2000同样提供了标准的CANalyzer/CANoe功能,例如logging filtering 等等。 Vector Informatik 公司是德国的一家专门从事现场总线、特别是CAN总线的研究、开发和应用的高科技公司。它在Controller Area Networks (CAN)总线应用领域内提供了一系列强有力的软硬件工具,能够支持CAN总线网络节点以及整个系统的建模、仿真等开发过程。Vector Informatik 公司在工业领域中、特别是工业用CAN总线的开发领域已经独领风

骚数十年了;并在美国、欧洲都设有分公司,在全世界很多地区都有其代理商,能迅速地为客户提供强大、完整的CAN总线网络开发分析仿真的系列工具和针对用户需求的完善的解决方案。