1、CAN总线协议 及CAN在工业控制中的应用,集散控制与现场总线技术 指导老师:秦刚 授课学生:梁涛、刘斌、马超、杨宏,CAN总线,两个部分: 第一部分:CAN总线的基本概念 第二部分:CAN总线的应用,引言,现场总线简述,引言,为了适应越来越多的异种计算机系统间互联的“开放式”系统的需要,人们建立了开放系统互联(OSI,Open System Interconnection)的基本参考模式,并于1983年制定了该参考模式的国际标准(ISO7498)。从此奠定了系统互联标准开放的基础,对数据通信系统产品的发展起到了重要的促进作用。ISO7498定义了OSI的7层体系结构。其中,每个层次都在信息交
2、换的任务中担当相对独立的角色、具有特定的功能。,由于微处理器的嵌入式应用,导致工业测控领域中各种仪器仪表、自动化装置和设备的智能化逐步下移。此变革适应了建立分布式测控系统的需要和实现工业过程控制系统“危险彻底分散”的要求,逐步发展为现场总线控制系统(FCS,Fieldbus Control System).FCS采用全分散式的体系结构,现场智能仪器仪表和智能化装置具有高度的自治性。即使局部出现问题,系统中的其他问题仍然可以按既定的控制规律继续运行,从而大大提高了整个系统的可靠性。FCS的信号传输实现了全数字化,执行测控任务的节点将采集到的数据和所执行的操作等信息转化为数字信号向网上发送,执行管
3、理,任务的节点以数字形式向网上发送命令。由于通信电缆(双绞线)是所有节点之间的惟一连接,避免了模拟信号传输过程中的干扰,降低了对环境、接地等的要求,并保证数据的一致性。由于FCS在体系结构、价格、安全性和开放性等方面的优势,从21世纪起将取代DCS成为过程控制系统的主流。现场总线是一种全数字的双向多站点通讯系统,按ISO7498标准(OSI)提供网络互联,具有可靠性高、稳定性好、抗干扰能力强、通讯速率高、造价低和维护成本低等特点。传统的420mA控制回路通常只能传输代表过程变量的一个信号,而现场总线能够在传送多个过程变量的同时一并传送仪表的标识符和简单的诊断信息等。由于现场总线是双向的,因此,
4、能够从,中心控制室对现场智能仪器仪表进行控制,使远程调整、诊断和维护成为可能,甚至能够在故障发生前预测。符合开放式标准的兼容性可以使用户选择不同厂家的产品来构成FCS系统,用户的权益得到了很好的维护。在过去的十几年内,现场总线技术得到了迅速的发展,现场总线仪表已成为智能仪器的重要分支和发展方向之一。但现场总线至今未能形成统一的国际标准,造成了多种现场总线共存的局面。一方面由于现场总线是应用于现场过程控制的通讯网络,涉及许多底层设备的不同行业标准和用户习惯的继承,以及不同类型网络互联协议的制定;另一方面,各厂家都希望自己的技术标,准占有更大份额,以便使国际标准给自己带来更大利益。目前,世界上较为
5、流行的现场总线有:LONGWORKS,CAN,PROFIBUS,HART,FF等。鉴于CAN(Control Area Network)总线技术成熟、在智能仪器和其他现场智能设备中应用广泛, 在计算机测控系统发展的初期,由于计算机技术尚不发达,计算机价格昂贵,所以人们企图用一台计算机取代控制室内的所有仪表,因此出现了集中式数字测控系统。但这种测控系统可靠性差,一旦计算机出现故障,就会造成整个系统瘫痪。随着计算机可靠性的提高和价格的大幅度下降,出现了集中、分散相结合的集散控制系统(DCS)。在DCS 中,由测量传感器,变送器向,计算机传送的信号为模拟信号,下位机和上位机之间传递的信号为数字信号,
6、所以它是一种模拟、数字混合系统。,现场控制总线的特点:,1) 全数字化通信:现场总线系统是一个“纯数字”系统,而数字信号具有很强的抗干扰能力,所以,现场的噪声及其他干扰信号很难扭曲现场总线控制系统里的数字信号,数字信号的完整性使得过程控制的准确性和可靠性更高。2 ) 一对N结构:一对传输线,N 台仪表,双向传输多个信号。这种一对N结构使得接线简单,工程周期短,安装费用低,维护容易。如果增加现场设备或现场仪表,只需并行挂接到电缆上,无须架设新的电缆。3 ) 可靠性高:数字信号传输抗干扰强,精度高,无须采用抗干扰和提高精度的措施,从而降低了成本。,4 ) 可控状态:操作员在控制室既可以了解现场设备
7、或现场仪表的工作情况,也能对其进行参数调整,还可预测或寻找故障。整个系统始终处于操作员的远程监视和控制之中,从而提高了系统的可靠性、可控性和可维护性。5 ) 互换性:用户可以选择不同制造商所提供的性价比最优的现场设备,并将不同品牌的仪表互联。即使某台仪表发生故障,换上其他品牌的同类仪表也能照常工作,实现了“即接即用”。6 ) 互操作性:用户把不同制造商各种品牌的仪表集成在一起,进行统一组态,构成其所需的控制回路,而不必绞尽脑汁,为集成不同品牌的产品在硬件或软件上花费力气或增加额外投资。,7 ) 综合功能:现场仪表既有检测、变换和补偿功能,又有控制和运算功能,满足了用户需求,而且降低了成本。8
8、) 分散控制:控制站功能分散在现场仪表中,通过现场仪表即可构成控制回路,实现了彻底的分散控制,提高了系统的可靠性、自治性和灵活性。9 ) 统一组态:由于现场设备或现场仪表都引入了功能块的概念,所有制造商都使用相同的功能块,并统一了组态方法,使组态变得非常简单,用户不需要因为现场设备或现场仪表种类不同而带来的组态方法的不同,再去学习和培训。,10 ) 开放式系统:现场总线为开放互联网络,所有技术和标准全是公开的,所有制造商必须遵循。这样,用户可以自由集成不同制造商的通信网络,既可与同层网络互联,也可与不同层网络互联,还可极其方便地共享网络数据库。,前言,目的:通过前言的介绍,使大家对CAN总线的
9、概念,能够有基本认识。,什么是CAN?,CAN:是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已
10、是汽车网络的标准协议。,CAN总线优势,CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS485基于R线构建的分布式控制系统而言, 基于CAN总线的分布式控制系统在以下方面具有明显的优越性: 1.网络各节点之间的数据通信实时性强首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的
11、可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;,CAN总线优势,2.缩短了开发周期CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题
12、,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。,CAN总线优势,3.已形成国际标准的现场总线另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。 4.最有前途的现场总线之一CAN 即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独
13、特的设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。其典型的应用协议有: SAE J1939/ISO117
14、83、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。,第一部分CAN总线协议,CAN总线中的基本概念 CAN总线的基本工作原理 CAN总线的特点 CAN总线协议内容 CAN协议的主要构成 CAN协议状态分类及变换 CAN应用技术 CAN总线有关器件介绍 典型的应用协议,1. CAN总线中的基本概念,1.报文 2.信息路由 3.位速率 4.优先权 5.远程数据请求 6.多主站 7.仲裁 8.安全性,9.出错标注和恢复时间 10.故障界定 11.连接 12.应答,基本概念,1.报文:总线上的信息以不同格式的报文发送,但长度有限当总线开放时,任何连接的单元均可开
15、始发送一个新报文 2.信息路由:在CAN系统中,一个CAN节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性节点可以在不要求所有节点及其应用层改变任何软件或硬件的情况下,被接于CAN网络报文通信一个报文的内容由其标示符ID命名,ID并不指出报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文滤波决定该数据是否使它们激活成组由于采用了报文滤波,所有节点均可接受报文,并同时被相同的报文激活数据相容性在CAN网络中,可以确保报文同时被所有的节点或者没有节点接受,因此,系统的数据相容性是借助于成组和出错处理达到的,基本概念,7.仲裁:当总线开放时,任何单元均可以开始发送报
16、文,若同时有两个或者更多的单元开始发送,总线访问冲突运用逐位仲裁规则,借助标示符ID解决,这种仲裁规则可以使信息和时间均无损失,若具有相同标示符的一个数据帧和一个远程帧同时发送,数据帧优先于远程帧,仲裁期间,每个发送器都对发送位电平与总线上检测到的电平进行比较,若相同则该单元可以继续发送,当发送一个隐性电平,而在总线上检测为显性电平时,该单元退出仲裁,并不再传送后继位了,基本概念,8.安全性:CAN总线协议为了获得尽可能高的数据传输安全性,在每个CAN节点中均设有错误检测,标定和自检的强有力措施检测措施包括:发送自检,循环冗余校验,位填充,和报文格式检查 9.出错标注和恢复时间:已损坏的报文由
17、检验出错的节点进行标注这样的报文将失效,并自动进行重发送如果不存在新的错误,从检出错误到下一个报文开始发送的恢复实践最多为29个位时间 10.故障界定:CAN节点又能力识别永久性的故障和暂时扰动,可自动关闭故障节点,基本概念,11.连接:CAN串行通信链路是一条众多单元均可被连接的总线,理论上单元数目是无限的,实际上,单元总数受限于延迟时间和总线的电器负载 12.应答:所有接收器均对接收报文的相容性进行检查,回答一个相容的报文,并标注一个不相容的报文,2.CAN总线的基本工作原理,CAN总线的拓扑结构如图所示,是一个典型的串行总线的结构形式。CAN总线中一个节点发送信息,多个节点接收信息;但C
18、AN总线的信息存取方式既不同于令牌方式的Arcnet,也不同于主从方式的Bitbus,采用的是一种广播式的存取工作方式。与其他网络不同,在CAN总线的通信协议中,没有节点地址的概念,也没有任何与节点地址相关的信息存在,它支持的是基于报文的工作方式。也就是说,CAN总线面向的是数据而不是节点,因此加入或撤销节点设备都不会影响网络的工作,十分适用于控制系统要求快速、可靠、简明的特点。以下将对CAN总线的基本通信工作原理做一介绍。,CAN总线网络结构,载波监听多重访问/冲突检测(CSMA/CDCarrier Sense Multiple Access with Collisio Detection)
19、“载波监听”的意思是指在总线上的每个节点在发送信息报文前都必须监听到总线上有一段时间的空闲状态。一旦空闲状态被监听到,那么每个节点都有均等的机会来发送报文,这被称作“多重访问”。“冲突检测”是指在两个节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应措施来解决这一冲突情况。此时优先级高的报文先发送低优先级的报文暂停发送。,CAN总线协议是通过一种非破坏性的仲裁方式来解决总线冲突的。这也就是说当总线出现发送冲突时,通过仲裁后,原发送信息不会受到任何影响。所有的仲裁判别都不会破坏优先级高的报文信息内容,也不会对其发送产生任何的时延。这种仲裁规则可以使信息和时间均无损失。 基于报文的通信
20、(Message-Based Communication)CAN总线是一个基于报文而不是基于站点地址的协议。也就是说报文不是按照地址从一个节点传送到另一个节点。CAN总线上报文所包含的内容只有优先,级标志区和欲传送的数据内容。所有节点都会接收到在总线上传送的报文,并在正确接收后发出应答确认。至于该报文是否要做进一步的处理或被丢弃将完全取决于接收节点本身,由节点来进行报文过滤。同一个报文可以发送给特定的站点或许多站点,就看你怎样去设计网络和系统。CAN技术规范2.0B对于报文过滤特别进行了描述。所谓报文过滤是以整个标识符为基准,允许将任何标识符设置为对报文过滤是不关心的。屏蔽位可用于选择一组标识
21、符,以便映射到接收缓冲器,中。如果使用屏蔽寄存器,寄存器的每一位必须是可编程的,亦即它们对报文过滤是开放或禁止,屏蔽寄存器的长度可以是整个标识码,也可以仅是其中的一部分。CAN总线协议另外一个有用的特性是一个节点可以主动要求其它节点发送信息。这种特性叫做远程发送请求(RTR)。和上面不同之处在于,节点并不等待信息的到来,而是主动去索取。设计人员就可以利用这一远程发送请求特性来减少网络的数据通信量,同时维持整个系统的完整性。,基于报文的这种协议另外一个好处是新的节点可以随时方便地加入到现有的系统中,而不需对所有节点进行重新编程以便它们能识别这一新节点。一旦新节点加入到网络中它就开始接收信息,判别
22、信息标识,然后决定是否作处理或直接丢弃。CAN总线定义了四种不同的报文(或叫帧)用于总线通信。第一种也是最常用的是数据帧,用于一个节点传送信息到其它任一或所有节点;第二种叫远程帧,基本上是一个数据帧但其中的RTR位被置1,表明这是一个远程发送请求,用于一个节点主动要求其它节点发送信息;另外两种用于差错处理,分别叫做错误帧和过载帧。如果节点在接收过,程中检测到任一在CAN总线协议中定义了的错误信息,它就会发送一个错误帧,当一个节点正忙于处理接收的信息,需要额外的等待时间接收下一报文时,可以发送过载帧,通知其它节点暂缓发送新报文。 快速、可靠的网络通信(Fast,Robust Communicat
23、ion)在发布了2.0B版的CAN总线技术规范后,其最大的通信速率已经比1.0版提高了倍,达1M位/秒,在这种速率下,即便是对时间要求非常高的参数也可以,通过CAN总线传输而不必担心其时延。另外,CAN总线协议有一套完整的差错定义,能够自动地检测出错误信息,由此保证了被传信息的正确性和完整性。CAN总线上的节点具有检测多种通信差错信息的能力并采取相关的应对措施:发送错误可通过“CRC出错”检测到;普通接收错误可通过“应答出错”检测到;CAN报文格式错误可通过“格式出错”检测到;CAN总线信号错误可通过“位出错”检测到;同步和定时错误可通过“阻塞出错”检测到。每个CAN总线上的节点都有一个出错计
24、数器用以记录各种错误发生的次数。,通过这些计数器就可以确认这些节点是否应工作到降级模式。总线上的节点可以从正常工作模式(正常收发数据和出错信息)降级到消极工作模式(只有在总线空闲时才能取得控制权),或者到关断模式(和总线隔离)。CAN总线技术CAN总线上各节点还有能力监测是短期的干扰还是永久性的故障,并采取相应的措施这种特性被叫做“故障界定隔离”。采取了这种故障界定隔离措施后,故障节点将会被及时关断,不会永久占用总线。这一点对关键信息能在总线上畅通无阻地传送是非常重要的。,3.CAN总线的特点,CAN(Controller Area Network)总线,也称控制器局部网,属于现场总线的范畴,
25、它是一种有效支持分布控制或实时控制的串行通信网络。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下:(1)多主站依据优先权进行总线访问, CAN总线为多主站方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一特点可方便地构成多机备份系统。,(2)在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134us内得到传输。(3)无破坏性的基于优先权的仲裁。CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送
26、信息时,优先级较低的节点会主动地退出发送,而优先级最高的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能) 。CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求。采用短帧结构,传输时间短、受干扰概率低,具有极好的检错效果。,(4)借助接收滤波的多地址帧传送。CAN总线节点只需通过报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的调度。(5)CAN总线的直接通信距离最远可达10km(速率5Mb/s以下);以位速率表示的数据传输速度在不同系统中是不同的,然而在一个给定系统中此
27、速率是惟一,并且是固定的。通信速率最高可达1 Mb/s (此时通信距离最长为40m)。CAN总线数据传输速率为1Mbit/s,线路距离lkm,基本站点数64,传输媒体是屏蔽双绞线或光纤。,(6)CAN总线上的节点数主要取决于总线驱动电路,目前可达110个。报文标识符可达2 032种(CAN 2. 0 A) ,而扩展标准(CAN 2. 0B)的报文标识符几乎不受限制。也就是说,在标准帧的报文标识符有11位,而在扩展帧的报文标识符(29位)个数几乎不受限制。(7)远程数据请求;配置灵活性;全系统数据相容性;错误检测和出错信令。发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发送。CAN 的每帧信息
28、都有CRC校验及其他检错措施,数据出错率极低。,CAN总线的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。(8)CAN总线的通讯介质可以为双绞线、同轴电缆或光纤,选择灵活。(9)暂时错误和永久性故障节点的判别以及故障节点的自动脱离。CAN 节点在错误严重的情况下具有自动关闭输出的功能,使总线上其他节点的操作不受影响。(10)CAN总线具有较高的性能价格比。它结构简单,器件容易购置,每个节点的价格较低,而且开发技术容易掌握,能充分利用现有的单片机开发工具。,CAN协议也是建立在国际标准组织的开放系统互联模型基础上的。不过,由于CAN总线的数据结构简单,又是范围较小的局域网,其模型结构
29、只取OSI底层的物理层、数据链路层和应用层3层,不需要其他中间层,应用层数据直接取自数据链路层或直接向数据链路层写数据。结构层次少,利于系统中实时控制信号的传送。(11)CAN总线的位数值表示:CAN总线上采用“显性”(Dominant)和“隐性”,(Recessive)两个互补的逻辑值表示“0”和“1”。当总线上出现同时发送显性和隐性位时,其结果是总线数值为显性(即“0”与“1”的结果为“0”)。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。VCAN-H和VCAN-L为CAN总线收发器和总线间的两接口引脚
30、,信号是以两线间的“差分”电压形式出现。在隐性状态,VCAN-H和VCAN-L被固定在平均值附近,Vdiff近似于0。在总线空闲或隐性期间,发送隐性位。显性位以大于最小阀值的差分电压表示。,位流编码:1)帧的部分,诸如帧起始、仲裁场、控制场、数据场以及CRC 序列,均通过位填充的方法编码。无论何时,发送器只要检测到位流里有5 个连续识别值的位,便自动在位流里插入一补码位。2)数据帧或远程帧(CRC 界定符、应答场和帧末尾)的剩余位场形式相同,不填充。错误帧和过载帧的形式也相同,但并不通过位填充的方法进行编码。 备注:报文里的位流根据“不返回到零”进行编码。这就是说,在整个位时间里,位电平要么为
31、“显性”,要么为“隐性”。,4.CAN总线协议内容,CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码解码、位定时和同步的实施标准。BOSCH CAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和,显性位的状态特征。在没有发送显性位时,总线处于隐
32、性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。在CAN中,物理层从结构上可分为三层:分别是物理层信令(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN,收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如
33、MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送接收器标准。理论上,CAN总线上的节点数几乎不受限制,可达到2000个,实际上受电气特性的限制,最多只能接100多个节点。CAN的数据链路层是其核心内容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理恢复等功能,媒体访问控制子层(,Medium Access control,MAC)完成数据打包解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功能。这些功能都是围绕信息帧传送过程展开的。,5.C
34、AN协议的主要构成,CAN协议是一个被定义为ISO11898的国际标准,除了CAN协议本身外,CAN协议的一致性测试也被定义为ISO16845标准,它描述了CAN芯片的互换性。,C A N总线协议的分析 C A N总线的分层结构ISOOSI模型将各种协议分为七层,自下而上依次为:物理层、链路层、网络层、传送层、会话层、表达层和应用层。C A N协议也是建立在国际标准组织的开放系统互连模型基础上的,不过,考虑到作为工业控制底层网络,其信息传输量较少,实时性要求比较高,因此,C A N的模型结构只取了O S I底层的物理层、数据链路层和顶层的应用层。其中物理层和数据链路层一般都固化在专用的C A
35、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),各层之间相互
36、独立且透明.每一层只与另一设备上相同的那一层通讯,而实际的通讯则发生在每一个设备上的相邻的2层,而各个设备之间则只通过物理层的通信介质连接在一起。数据发送节点数据流为LLCMACPLS,然后将数据发送到总线上;而对于挂在总线上的所有节点(包括发送节点)的,接收的数据流为PLSMACLLC。这种分层结构的规范保证了CAN总线的多主方式工作模式,即不分主从,非破坏性的仲裁工作模式。而LLC层的报文滤波功能可实现点到点、一点对多点、全局广播、多点对一点,多点对多点等数据传递方式。,协议层间关系,各分层主要功能如下:LLC子层提供的功能有:(1)帧接收过滤:数据帧内容由标识符命名。标识符并不能指明帧的
37、目的地,每个接收器通过帧接收过滤确定此帧与已是否有关;(2)超载通告:如果接收器内部条件要求延迟下一个LLC子层开始发送超载帧,最多可产生两个超载帧,以延迟下一个数据帧或远程帧;(3)恢复管理:发送期间,对于丢失仲裁或被错误干扰的帧,LLC子层具有自动重发送功能,帧发送服务不被用户认可。,LLC帧是等同LLC实体(LPDU)之间进行交换的数据单元,以下分别描述LLC数据帧和远程帧的结构。LLC数据帧LLc数据帧由三个位场,即标识符场、数据长度码(DLC一Data Length Code)场,LLC数据场组成,如图所示。,LLC数据帧,LLC远程帧LLC远程帧由两个位场(标识符场DLC场)组成,
38、如图所示LLC远程帧,LLC远程帧标识符格式与LLC数据帧标识符格式相同,只是不存在数据场。DLC的数值是独立的,此数据为对应数据帧的数据长度码。MAC子层按IEEE 802.3规定,具有发送部分功能和接收部分功能。,媒体访问控制功能,发送部分功能包括:(1)发送数据封装,接收LLC帧和接口控制信息,构造MAC帧;(2)发送媒体访问管理,检查总线状态,串行化MAC帧,插入填充位,开始发送,执行仲裁,丢失仲裁时转入接收方式,应答校验,错误超载检测,出错标定、故障界定,发送超载帧或数据帧等。,接收部分功能包括:(1)接收媒体访问管理,由物理层接收串行位流,重新构筑帧结构,解除填充位,错误检测,发送
39、应答,构造发送错误帧或超载帧;(2)接收数据卸装,由接收帧去除MAC特定信息,输出LLC帧和接口控制信息至LLC子层。该层是CAN的核心;按照IEEE802.3LAN标准规范,物理层又划分为:(1)物理介质附件 PMA(physieal Medium Attachment)实现总线发送/接收的功能电路并可提供总线故障监测方法。,(2)介质依靠接口MDI(Medium Dependent Interface)实现物理介质与介质访问单元之间机械和电气接口。(3)物理信令PLS(Physical Signaling)实现与位表示、定时和同步相关的功能。数据链路层可分为逻辑链路控制(LLC)和媒体访问
40、控制(MAC)两部分。,C A N总线的工作特点,与其他网络不同,在C A N总线的通信协议中,没有节点地址的概念,也没有任何与节点地址相关的信息存在,它支持的是基于报文2的工作方式。当C A N总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的1 1位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当一个站要向其它站发送数据时,该站的C P U将要发送的数据和自己的标,识符传送给本站的CAN芯片,并处于准备状态;当
41、它收到总线分配时,转为发送报文状态。C A N芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。,5.1数据交换原理,CAN是一种基于广播的通讯机制,广播通讯依靠报文(Message)的传送机制来实现,因此CAN并未定义站及站地址,而仅仅定义了报文,这些报文依靠报文确认区(Identifier)来进行识别,一个消息报文确认区在一个网络中必须是唯一的,它不但描述了某一报文的意义,而且还定义了报文的优先级,当很多站都在访问总线时,优先级是很重要的,因此,CAN是通过报文的确认区来决定
42、报文的优先级的。 CAN使用地址访问的方法,使网络系统的配置变得非常灵活,用户很容易可以增加一个新的站到一个已经存在CAN网络里,而不用对已经存在的站进行任何硬件或软件上的修改,但必须此新增的站为完,全的接收者,这样它将不会对网络上各节点的通讯产生影响。,5.2实时数据传送,在实时处理系统中,通过网络交换紧急报文存在很大的不同:一个迅速改变的值,如发动机负载必须频繁的进行传送且要求延迟比其它的值如发动机温度要小。发送的报文都要和其它的不太紧急的报文进行优先级的比较,在系统设计中,报文的优先级体现在写入报文确认区的二进制值,这些值不能被动态的改变。确认区中的值越小,其报文的优先级越高(也就是0比
43、1的优先级高)。,5.3消息的帧格式(Frame format),1.CAN协议支持两种帧格式,它们只是在确认区存在差异,一种被称为CAN标准帧,在CAN2.0协议的Part A进行定义,标准帧支持11bit的确认区长度,标准帧格式如下图所示;另一种称为CAN扩展帧,在CAN2.0协议的Part B进行定义,支持29bit的确认区。,CAN 标准帧格式,在CAN20B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有ll位标识符的帧称之为标准帧,而含有29位标识符的帧称为扩展帧。如CAN1.2版本协议所描述,两个版本的标准数据帧格式和远程帧格式分别是等效的,而扩展格式是CAN2
44、0B协议新增加的特性。为使控制器设计相对简单,并不要求执行完全的扩展格式,对于新型控制器而言,必须不加任何限制的支持标准格式。但无论是哪种帧格式,在报文传输中有以下四种帧类型: a 数据帧: 数据帧携带数据从发送器至接收器。,标准格式的数据帧结构,扩展格式的数据帧结构,b 远程帧: 总线单元发出远程帧,请求发送具有同一识别符的数据帧。c 错误帧: 任何单元检测到一总线错误时就发送错误帧。d 超载帧: 用来在先行的和后续的数据帧(或远程帧)之间提供附加的延时。数据帧或远程帧与前一个帧之间都会有一个隔离域,即帧间间隔。数据帧和远程帧可以使用标准帧及扩展帧两种格式。 2.帧格式介绍,a. 数据帧数据
45、帧携带由发送节点到接收节点(或发送器到接收器),由7个不同的位场组成:即帧起始位、仲裁场、控制场、数据场、CRC场、应答场、帧结束。如图2所示。,远程帧 节点A如果索取B节点的数据时,则由A发送远程帧,其A节点在仲裁场的标识符应为B节点的标识符相同。远程帧由帧起始位、仲裁场、控制场、CRC场、应答场、帧结束6个场组成。帧起始(SOF)标志数据帧和远程帧的起始,由单个“显性”位构成。只有在总线处于空闲状态时才允许发送。所有都必须同步于首先开始发送的那个站的帧起始前沿;仲裁场由来自LLC子层的表识符(ID,identifier)和远程发送请求(RTR,remote ransmission requ
46、es)位组成。表识符长度为11,位(ID10-ID0),按照由高至低的次序发送,且前7位(ID19-ID4)不能全为隐性位。表示符用于提供关于传送报文和总线访问的优先权的信息。在数据帧中,RTR位为“0”。控制场由6位构成,前2位为备用位,后4位为数据长度码,决定数据场中的字节数目,可由0-8变化。数据场由数据帧中被发送的数据组成,数目由控制场决定(0-8字节),第一个字节的最高位首先被发送。CRC场包括CRC(循环冗余码校验序列(15位)和CRC界定位(一个隐性位),用于帧校验。,ACK场由应答间隙和应答界定符组成(共两位)。应答间隙期间,数据贞发送器发出一个“隐性”电平,而所有已正确接收到
47、有效报文的接收器此时传送一个“显性”位,报告给发送器(发送器发出的“隐性”电平被改写为“显性”电平),表明至少有一个接收器已正确接收。后续的应答界定符为一个“隐性”电平。帧接收由7位隐性位组成,此期间无位填充。它与数据帧的区别有:仲裁场的RTR位为隐性,标识此帧为远程帧;无数据场;控制场中的PLC可为08的任意数值,但无意义。,CAN协议采用短帧结构,即每帧数据最多包含8位数据,这将有利于系统的实时性。另一个特点是废除了传统的站地址编码,而代之以表识符对信息进行优先权分级。任何节点均可向全网络广播发送数据,其他节点则根据所接收到的标识来决定是否处理所接收到的信息。 若同时有两个或更多的节点开始
48、发送报文,总线运用对表识符的逐位仲裁规则巧妙的在各节点内解决冲突。仲裁期间,每个节点都监视总线电平,并于自己发送的位电平相比较。若该节点发送的一个隐性位被显性被显形位改写,说明有较高优先权报文在发送,则节电自动转变为接收器。当一个具有相,同标识符的远程帧和一个数据帧被仲裁时,远程帧RTR位的隐性电平被数据帧RTR位显性电平改写,所以数据帧比远程帧优先级高。由上述可见,标识符和RTR位对应二进制数位越低的报文优先级越高。这种仲裁规则可以使信息和时间均无损失。每个节点的接受部分设置了接受过滤机制,可从总线上川流不息的信息中选取与己有关的信息,而不必理睬与己无关的信息。 说明:对于仲裁场、控制场、数
49、据场、CRC场、帧间空间使用填充技术进行编码,即每5个同状态电平插入一位与它相补的电平,还原时再予以删除。,c. 出错帧出错帧格式:出错帧由2场组成,如图3所示。图3 出错帧结构,第一个场是错误标志,用做为不同站提供错误标志的叠加;第二个场是错误界定符。错误标志具有两种形式:活动错误标识(由6个显位组成)、认可错误标识(由6个隐位组成)。当一个节点发出错误帧时,其出错标识为连续6个显性位或连续6个隐性位。CAN总线规定使用填充技术的编码不允许连续出现6个同状态电平,某一节点标识传送后,其它节点由于总线上的连续电平的出现,破坏帧格式,补发送错误标识,因此错误标识叠加后占612位。各节点在发出错误标识之后,都在监视总线,当检测到一个隐性位后,再发送7个隐性位,故错误界定符为8个隐性位。,CAN总线的错误类型,CAN总线有5种错误类型、它们互不排斥:1)位错误:站单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则就会在此位时间里检测到一个位错误。但以下情况是例外的,即:在仲裁场的填充位流期间或ACK间隙发送一“隐性”位时。 此时,当监视到一“显性”位时,不会发出位错误。当发送器发送一个被动错误标志但检测到“显性”位时,也不视为位错误。2) 填充错误:如果在使用位填充法进行编码的信息中,出现了第6 个连续相同的位电平时,将检测到一个填充错误。,