1、CAN总线1.3 CAN总线总线1.3.1 CAN的发展概况n现代社会对汽车的要求不断提高,这些要求包括:极高的主动安全性和被动安全性;乘坐的舒适性;驾驶与使用的便捷和人性化;尤其是低排放和低油耗的要求等。n在汽车设计中运用微处理器及其电控技术是满足这些要求的最好方法,而且已经得到了广泛的运用。目前这些系统有:ABS(防抱系统)、EBDEBD(制动力分配系统)(制动力分配系统)、EMS(发动机管理系统)、多功能数字化仪表、主动悬架、导航系统、电子防盗系统、自动空调和自动CD 机等。1.3 典型应用系统构成典型应用系统构成1.汽车总线控制系统汽车总线控制系统图图9-19 目前国产轿车上的网络连接
2、方式目前国产轿车上的网络连接方式汽车汽车CAN总线节点总线节点ECU(发动机控制器)的设计(发动机控制器)的设计图图9-20 由由51单片机开发的单片机开发的CAN节点的原理图节点的原理图2.陶瓷窑现场总线控制系统陶瓷窑现场总线控制系统(1)控制系统结构及总体设计控制系统结构及总体设计图图9-22 控制系统总体设计控制系统总体设计(2)控制系统硬件设计控制系统硬件设计 图图9-23 驱动模块硬件结构图驱动模块硬件结构图1.3.1 CAN的发展概况n这些系统由多个电控单元相互连接而成,可分为控制器、传感器、执行器等。同时各个系统之间也互相连接,进行着越来越多的数据交换。这样就需要使用大量的线束和
3、插接器来实现互连,进行它们之间的数据交换。随着汽车电子技术的不断发展,这种需求的增长是惊人的(如图)。1.3.1 CAN的发展概况n由于线束和插接器的数量不断增加,整车电子系统的复杂程度愈来愈高,其可靠性将难以保证,故障率会提高,维修会更加困难。n为了满足汽车内部信息交换量急剧增加的要求,有必要使用一种实现多路传输方式的车载网络系统。这种网络系统采用串行总线结构,通过总线信道共享,减少线束的数量。n车载网络除了要求采用总线拓扑结构方式外,必须具有极好的抗干扰能力;极强的差错检测和处理能力;满足信息传输实时性要求;同时具备故障的诊断和处理能力等。另外考虑到成本因素,要求其控制接口结构简单,易于配
4、置。1.3.1 CAN的发展概况n20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统,因为当时还没有一个网络协议能完全满足汽车工程的要求。参加研究的还有Mercedes-Benz公司、Intel公司,还有德国两所大学的教授。n1986年,Bosch在SAE(汽车工程人员协会)大会上提出了CANn1987年,INTEL就推出了第一片CAN控制芯片82526;随后Philips半导体推出了82C200。n1993年,CAN的国际标准ISO11898公布n从此CAN 协议被广泛的用于各类自动化控制领域。1.3.1 CAN的发展概况n1992年,CIA(CAN in Automati
5、on)用户组织成立,之后制定了第一个CAN应用层“CAL”。n1994年开始有了国际CAN学术年会(ICC)。n1994年美国汽车工程师协会以CAN为基础制定了SAEJ1939标准,用于卡车和巴士控制和通信网络。n到今天,几乎每一辆欧洲生产的轿车上都有CAN;高级客车上有两套CAN,通过网关互联;1999年一年就有近6千万个CAN控制器投入使用;2000年销售1亿多CAN的芯片;2001年用在汽车上的CAN节点数目超过1亿个。n但是轿车上基于CAN的控制网络至今仍是各大公司自成系统,没有一个统一标准。1.3.1 CAN的发展概况n基于CAN的应用层协议应用较通用的有两种:DeviceNet(适
6、合于工厂底层自动化)和 CANopen(适合于机械控制的嵌入式应用)。n任何组织或个人都可以从DeviceNet供货商协会(ODVA)获得DeviceNet规范。购买者将得到无限制的、真正免费的开发DeviceNet产品的授权。nDviceNet自2002年被确立为中国国家标准以来,已在冶金、电力、水处理、乳品饮料、烟草、水泥、石化、矿山等各个行业得到成功应用,其低成本和高可靠性已经得到广泛认同。1.3.2 CAN的性能特点n有专门的国际标准ISO11898。n任一节点可在任一时刻主动发送。n报文以标识符分为不同的优先级,可满足不同的实时性要求。优先级最高的报文保证134us内得到传输。n非破
7、坏性总线仲裁技术,大大节省了总线冲突的仲裁时间。n通过对报文滤波可实现点对点、一点对多点和全局广播等多种传送方式。n速率最高可达1Mbps,最远可达10kmn节点数可达110个,标识符几乎不受限制1.2 CAN的性能特点n短帧结构,传输时间短,受干扰概率低,适于工业环境n每帧信息都采用CRC校验及其他检错措施,数据出错率极低。n通信介质选择灵活(双绞线、同轴电缆或光纤)n错误严重情况下自动关闭输出,保证不影响总线上其他节点通信。n性价比高,器件容易购置,节点价格低。n开发技术容易掌握,能充分利用现有的单片机开发工具。1.3.3 位数值表示和通信距离n“显性”位0和“隐性”位1n若总线上有两个以
8、上驱动器同时分别发送“0”和“1”,其结果是总线数值为显性“0”。VCAN-H VCAN-L 隐性位隐性位 隐性位隐性位 显性位显性位 CAN总线上两个节点间的最大距离速率kbps1000500250125100距离 m40130270530620速率kbps5020105距离 m13003300670010000CAN和485的比较 特性RS-485 CAN-bus成本 低 高 网络特性单主网络多主网络容错机制无多重错误处理和检错机制 总线利用率低高节点错误的影响大无通讯距离1.5km127则将其置为119到127之间某数n发送错误计数器127或接收错误计数器127,节点置“错误被动”状态n
9、发送错误计数器255,节点置“总线关闭”状态n两个计数器均小于等于127,错误被动节点置为错误主动节点n在检测到总线上连续11个隐位发生128次后,总线关闭节点变为错误主动节点且两个计数器清02.5 位定时与同步n一个标称的位时间分为:同步段、传播段、相位缓冲段1、相位缓冲段2。n同步段用于同步各节点,正常情况下跳变沿落在此段内n传播段用于补偿网络内的传输延时n采样点时刻读取的电平代表这个位的电平同步段4时间份额1时间份额1位时间=10时间份额传播段1时间份额4时间份额相位缓冲段1相位缓冲段2采样点2.5 位定时与同步n时间份额由振荡器周期分频而得n各时间段长度为:同步段1份额,传播段18份额
10、,相位缓冲段1,18份额,相位缓冲段2,Max(相位缓冲段1,信息处理时间),其中信息处理时间=2TsclTseg2=TsjwTseg1=Tseg2nCANBTRCANBTR设置实例设置实例:假设VPB时钟为24MHz,需设置CAN标称位速率为100k 可设置CANBTR为:0 x001C000E 也即:BRP=14;SJW=0;TSEG1=12;TSEG2=1;从而CAN位速率可以由下式计算得到:CANbps=Fvpb/(TSEG1+TSEG2+3)(BRP+1)其中:CANbps为CAN位速率;Fvpb为VPB频率 如上式所示:当Fvpb=24MHz时,CANbps=100kbits/s
11、另外:MaxCANbps=Fvpb/(TSEG1+TSEG2+3-(SJW+1)(BRP+1)=106kbits/s MinCANbps=Fvpb/(TSEG1+TSEG2+3+(SJW+1)(BRP+1)=94kbits/sCAN总线应用系统设计nCAN总线应用系统的一般组成 CAN总线网络由许多CAN节点组成。若干个CAN节点通过CAN总线收发器连接在一个网络中。通过相互的通信和协作,完成控制任务。nCAN总线网络设计步骤n如何安排和利用现场总线。n安排CAN网络的主要工作是确定所谓的通信帧,通信帧规定了发送的CAN报文,以及发送或接收的网络节点。n首先确定所有特定的应用信号。分析的基础上
12、用敏感的优先级标识符对已确定的信号进行分组,由此来定义系统的 CAN报文,即确定通信帧。n然后规范单个网络节点的行为,可以通过循环发送或通过更复杂的协议来规定节点报文的收发;通过估计总线负载和由此对高优先级报文造成的等待时间来确定波特率。基于CAN的测控系统一般分为3个阶段n1、需求分析和网络系统的设计n2、总线仿真测试n3、系统集成CAN报文格式分析工具CANscopenCANscope是记录和评估CAN总线上的信号电平的一种测量工具,提供的信息包括CAN物理电平和逻辑电平。n逻辑电平方面,加在CAN网络的电压被描述为信号响应,逻辑电平以单个比特位的形式提供信息,可以分析CAN总线的物理特性
13、,识别发生的错误。工具软件CANoenCANoe是为CAN总线系统的开发、测试和分析提供的通用环境,可以在总线上观察、分析和仿真数据传输。n其高性能的函数和自由的可编程能力能够满足所有CAN总线节点系统仿真和实现的需要,所有和总线相连的节点网络节点都可被仿真。可以生成一些窗口对网络节点进行操作,这些节点的操作元素可以用环境变量来触发。nCANoe里的仿真能包括真实的和仿真的网络节点,通过PC接口卡可以实现与真实总线的耦合。nCAPL语言可用于对一个仿真节点的动态行为进行建模。nCANoe由4个独立的程序组成,可以运用CAPL浏览器创建行为模型,用面板编辑器创建面板,用CANoe的主要程序构造仿
14、真模型,含有所有现存的CAN报文、环境变量、网络节点的中央数据库,会使操作变得方便。5.3.3 CAN收发器82C250主要特性n内部具有限流电路,可防止发送输出级对电源、地或负载短路。虽然短路出现时功耗增加但不至于损坏器件。若结温超过160,则两个输出端电流限将减小,从而限制了芯片温升。器件的所有其他部分将继续工作。双线差分驱动有助于抑制汽车等恶劣电器环境下的瞬变干扰。5.3.3 CAN收发器82C250nPCA82C250收发器的典型应用如图。SJA1000的RX和TX分别通过光电隔离电路连接到82C250,82C250的差动收发端CANH和CANL连接到总线电缆。输入RS用于模式控制。V
15、ref输出电压是0.5Vcc,(Vcc=5V)。CAN总线系统智能节点硬件设计TJA1040正常模式和待机模式n1、正常模式n通过总线CANH和CANL发送和接收数据,差动接收器将总线上的模拟数据转换为数字数据,通过多路转换器输出到RXD。总线线路上输出信号的斜率是固定的并进行了优化,保证有很低的电磁辐射。待机模式n发送器和接收器都关断,只用低功耗的差动接收器监控总线。总线长度及节点数n互连总线节点的回路延时和总线线路延时n由于各节点振荡器频率的相对误差而导致的位时钟周期的偏差。n由于总线电缆串联等效电阻和总线节点的输入电阻而导致的信号幅度的下降。位速率与总线长度的关系CANopen协议CAN
16、open由来n 1993年,Bosch公司领导的CAN-BUS协会开始研究CAN-BUS通讯、系统、管理方面的细则,以后逐步完善,由此发展成为CANopen协议,它是CAL(CAN Application Layer)协议基础上开发的,使用了CAL通信和服务协议子集,它在保证网络节点互用性的同时允许节点的功能随意扩展,定义了基于CAN的分布式工业自动化系统的应用标准以及CAN应用层通信标准。CANopen协议是一个开放性的协议,对于开发者来说它是完全免费的。CANopen在发布后不久就获得了广泛的承认,后来,有CiA(CAN in Automation)协会管理、维护、和发展。到2001年,C
17、ANopen协议已经成为全欧洲的嵌入式网络标准。结构模式设备模型通信对象模型进程数据对象(PDO)nPDO被映射到单一的CAN帧中,使用所有的8个字节的数据域来传输应用对象。每个PDO有一个独立的标识符并且可能只被一个节点发送,但它可以被多于一个节点接收,这种模式被称之为生产者/消费者通信模式。PDO可以通过多种模式传送,内部事件,外部时钟,远程帧请求以及从特定节点接收到同步报文都可以启动PDO发送。服务数据对象(SDO)n该对象可以传输大于8个字节的配置信息。也就是说,SDO传送协议允许传送任意长度的对象。接收者将确认收到的每个段信息,发送和接收者间将建立点对点的通信,称之为客户机/服务器模
18、式。未来,CANopen将允许快速传输SDO,不必对传送的每个段都进行确认,只要在整个对象传送完毕后进行确认即可。网络管理对象(NMT)n包括节点警戒对象以及NMT对象。节点警戒对象是由NMT主节点远程请求发送的带有1字节数据的CAN帧,一个字节的数据中包含1个触发位以及7个用于表示节点状态的数据位。NMT主节点将周期性地发送节点警戒对象。发送周期(警戒时间)的长度在对象字典中规定并且可以通过SDO进行配置。另外,系统还定义了生命警戒时间,NMT主节点要在生命警戒时间过后向NMT从节点发送远程请求。这种机制保证了即使NMT主节点不在了,系统中的其他节点也可以通过用户定义的方式进行回应。特殊功能
19、对象 nCANopen还为同步,紧急状态表示以及时间标记传送定义了三个特定的对象。同步对象由同步制造者向网络进行周期性广播,该对象将提供基本的网络时钟。当设备发生严重的内部错误时,相关的一个紧急状态客户机将发送一个紧急状态对象。时间标记对象将为应用设备提供公共的时间帧参考。要理解CANopen规范,核心是要理解CANopen的设备模型和各类型的通信对象。掌握了这两者后,通过利用各类标准的设备描述就可以开发出符合国际标准的CANopen设备了。对象字典n对象字典描述了设备使用的所有的数据类型,通信对象和应用对象。是一个CANopen设备的核心部分。对象字典位于通信程序和应用程序之间,向应用程序提
20、供接口,应用程序对对象字典进行操作就可以实现CANopen通信。理解对象字典的概念是理解CANopen模型的关键。应用程序由用户编写,包括功能部分和通信部分。通信部分通过对对象字典进行操作实现CANopen通信,而功能部分由用户根据应用要求实现。CANopen标识符分配 nID地址分配表与预定义的主从连接集(set)相对应,因为所有的对等ID是不同的,所以实际上只有一个主设备(知道所有连接的节点ID)能和连接的每个从节点(最多127个)以对等方式通讯。两个连接在一起的从节点不能够通讯,因为它们彼此不知道对方的节点ID。n比较上表的ID映射和CAL的映射,显示了具有特定功能的CANopen对象如
21、何映射到CAL中一般的CMS对象。nCANopen网络中CAN 标识符(或COB-ID)分配3种不同方法:使用预定义的主从连接集。ID是缺省的,不需要配置。如果节点支持,PDO数据内容也可以配置。上电后修改PDO的ID(在预操作状态),使用(预定义的)SDO在节点的对象字典中适当位置进行修改。使用CAL DBT服务:节点或从节点最初由它们的配置ID指称。节点ID可以由设备上的拨码开关配置,或使用CAL LMT服务进行配置。当网络初始化完毕,并且启动后,主节点首先通过”Connect_Remote_Node”报文(是一个CAL NMT服务)和每个连接的从设备建立一个对话。一旦这个对话建立,CAN
22、通讯ID(SDO和PDO)用CAL DBT服务分配好,这需要节点支持扩展的BOOTUP.n为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。CANopen设备必须向它所支持的通讯对象的提供相应的标识符。n缺省ID分配表是基于11位CANID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。n基于CAN总线的CANopen网络通讯具有以下特点:使用对象字典(OD:Object Dictionary)对设备功能进行标准化的描述。使用ASCII文档:电子数据文档(EDS)和设备配置文
23、件(DCF)对设备及其配置进行标准化的描述。CANopen网络的数据交换和系统管理基于CAL中CMS服务。系统boot-up和节点保护(Node Guarding)的标准基于CAL中NMT服务。定义了整个系统的同步操作。定义了节点特定的应急报文。n为与CANopen通讯协议和相应的设备子协议保持一致,以使制造商的产品能够用于任何CANopen网络,以下3种层次的兼容性要求需要满足(对日益增长的设备兼容性的要求):一致性:设备连接到CANopen网络后不能影响其他设备的通讯:应用层的一致性。互用性:设备能够同网络上的其它节点交换数据:通讯协议的一致性。n 互换性:设备能够代替另外一个同类设备:设
24、备子协议的一致性。n一个CANopen设备至少应该具有(最小能力设备):n 一个节点ID,n 一个对象字典(内容由设备功能决定),n 一个SDO,能够访问对象字典中必需的对象(只读),n 支持下列NMT从设备服务:nReset_Node,Enter_Preoperational_State,Start_Remote_Node,nStop_Remote_Node,Reset_Communication,n 缺省的标识符分配。5.4 DeviceNet简介简介 5.4.1 DeviceNet技术概述 如图,在Rockwell提出的三层网络结构中,DeviceNet处于最底层,即设备层。5.4.1
25、DeviceNet技术概述工业控制网络底层节点相对简单,传输数据量小,但节点数量大,要求节点费用低。针对以上通信要求,DeviceNet可以提供:n低端网络设备的低成本解决方案;n低端设备的智能化;n主从以及对等通信的能力。DeviceNet有两个主要用途:n传送与低端设备关联的面向控制的信息;1.传送与被控系统间接关联的其他信息(例如配置参数)。5.4.1 DeviceNet技术概述n物理/介质特性n主干线分支线结构;n最多支持64个节点;n无需中断网络即可解除节点;n同时支持网络供电(传感器)及自供电(执行器)设备;n使用密封式或开放式连接器;n接线错误保护;n数据波特率可选125、250
26、、500kbps;n标准电源插头,电源最大容量可达16A;1.内置式过载保护。5.4.1 DeviceNet技术概述n通信特性:n物理信号及MAC使用CAN;n基于连接概念的协议,要与设备交换信息须先与它连接;n典型的请求/响应方式,适用于两个设备间多用途的点对点报文传递;nI/O数据的高效传输;n为长度大于8字节的报文提供分段服务;1.重复节点地址(MAC ID)的检测。表5.4.1 DeviceNet的主要技术特点网络大小最多64个节点,每个节点可支持无限多的I/O网络长度端端网络距离随网络传输速度而变化波特率距离125kb/s500m250kb/s250m500kb/s100m网络模型生
27、产者/消费者模型数据包08字节总线拓扑结构线性(干线/支线),总线供电总线寻址点对点(或一对多);多主站和主从;轮询或状态改变(基于事件)系统特性支持设备的热插拔,无需网络断电5.4.1 DeviceNet技术概述DeviceNetDeviceNet的通信模式的通信模式在现场总线领域常用的通信模式有两种:(a)源/目的模式:(b)生产者/消费者模式:n源/目(点对点)通信模式的缺点:n多个节点间同步动作困难;n浪费带宽,源节点必须多次发送给不同节点。n生产者/消费者模式的特点:n一个生产者,多个消费者;n数据更新在多个节点同时发生;1.提供多级优先,适用于实时I/O数据交换。源节点地址目的节点
28、地址数据 校验标识符数据校验5.4.1 DeviceNet技术概述nDeviceNet的通信模型:5.4.2 DeviceNet的物理层媒体访问单元媒体访问单元包括收发器、连接器、误接线保护电路、稳压器和光隔离器。收发器可采用市面上的集成CAN收发器。注意需保证所选符合DeviceNet规范。5.4.2 DeviceNet的物理层媒体访问单元n误接线保护(MWP)电路如图,要求节点能承受连接器5根线的各种组合的接线错误。在U+电压高达18V时不会造成永久损害。VD1防止U-端子误接了U+电压;VT1作为电源线上接入的开关防止U-断开造成损害。5.4.2 DeviceNet的物理层传输介质n拓扑
29、结构:典型是干线分支方式,如图。干线末端必须有终端电阻。线缆包括粗缆(干线)、细缆(支线)。支线最长6m,允许连接多个节点。只允许在支线上有分支结构。总线线缆中包括24VDC电源线、信号线及屏蔽线。总线支持有源和无源设备,对有源设备提供专门设计的光隔离收发器。5.4.2 DeviceNet的物理层传输介质n终端电阻:121,1%金属膜电阻,1/4 W,终端电阻不可包含在节点中。(如包含很容易错误导致阻抗太高或太低)n连接器:5针,即1对信号线、1对电源线和1根屏蔽线。包括密封式和非密封式连接器。DeviceNet连接器5.4.2 DeviceNet的物理层传输介质n设备分接头:设备直接通过端子
30、或通过支线连接到网络。n电源分接头:电源分接头不同于设备分接头,它包含(1)连在电源U+上的肖特基二极管,(2)两根熔丝或断路器,防止总线过电流而损坏电缆和连接器。n干线的额定电流为8A。也允许外部供电的设备(如电动机起动器、阀门驱动器等)连到总线,但是要有光电隔离。nDeviceNet应该一点接地。如果多点接地会造成接地回路;如果不接地将容易受到静电以及外部噪声的影响。5.4.3 DeviceNet的数据链路层nDeviceNet的数据链路层遵循CAN协议规范,并通过CAN控制芯片实现。nMAC帧:在CAN定义的4种帧格式(数据帧、远程帧、超载帧、错误帧)里面,DeviceNet不使用远程帧
31、。n总线仲裁机制:CSMA/NBA(带非破坏性逐位仲裁的载波侦听多址访问),即CAN的仲裁机制n错误诊断和故障界定机制:同CAN。5.4.4 DeviceNet的应用层5.4.4.1 连接的概念nOSI 7层协议中连接的概念:层之间通过接口提供两种服务:面向连接的服务和无连接的服务n面向连接:服务双方必须先建立可用连接,然后利用该连接完成数据传送,最后还要释放建立连接时所需资源。这种服务典型的例子是有线电话系统。n无连接:要传递的数据自身携带目的地址信息,因而可以有不同的路由选择。这种服务的典型例子是邮寄系统。另外,为了增强服务的性能,可以引入确认(acknowledgement)信息,这以牺
32、牲一定的传输时间和网络负载为代价。5.4.4.1 连接的概念n计算机网中“连接”可以分为不同的层次:n实际物理媒介连接:典型的点对点连接n虚电路:通过路由表、队列缓存和相关软件实现。这种连接一般用于通信子网的连接,而在控制网络中基本不用。n面向连接的服务:使用软件实现虚拟的连接,与其他任何子层都没有关系。这种连接一般用于应用层的连接,通过一定的技术措施来达到“连接”的效果,给服务调用者造成存在“连接”的“错觉”,其内部实现也许既无物理连接也无虚电路连接。(1)DeviceNet是基于“连接”的网络,两个节点在开始通信前必须事先建立连接,这种连接是逻辑上的关系,并不是物理上实际存在的。5.4.4
33、.1 连接的概念nDeviceNet 的连接提供了“应用”之间的路径。当建立连接时,与连接相关的传送会被分配一个连接ID(CID)。如果连接包含双向交换那么应当分配两个连接ID值。nDeviceNet建立在标准CAN2.0A协议之上,并使用11位标准报文标识符,可分成4个单独的报文组如下表:5.4.4.2 DeviceNet的对象模型连接连接对象对象显式报文 I/O报文对象模型为管理和实现DeviceNet 产品的属性(可见特性的描述)、服务(支持的功能)和行为(如何响应特定事件)提供了一个模板。节点内对象大体可分为通信对象和应用对象两类。节点5.4.4.2 DeviceNet的对象模型模型为
34、每个属性提供了由4 个数字组成的寻址方案,它们分别是节点地址(MAC ID)、对象类标识符、实例编号和属性编号。这四级地址与显式报文连接相结合,将数据从DeviceNet 网络上的一点传送到另一点。下表列出四个地址组件的范围:地 址最 低最 高节点063类165535实例065535属性12555.4.4.3 DeviceNet设备里的对象类n标识对象类标识符=01;一般只包含一个实例(1#实例),该实例的属性有:供货商ID、设备类型、产品代码、版本、状态、序列号、产品名称等。n报文路由对象类标识符=02;一般只包含一个实例(1#实例),该对象向其他对象传送显式报文。该对象一般不具有外部可视性
35、。nDeviceNet对象类标识符=03;提供了节点物理连接的配置及状态。一个物理网络接口对应一个DeviceNet对象。n组合对象组合多个应用对象的属性,便于访问。例如多个应用对象I/O数据的组合。5.4.4.3 DeviceNet设备里的对象类n连接对象DeviceNet 产品一般至少包括两个连接对象。每个连接对象代表DeviceNet 网络上两节点间虚拟连接中的一个端点。两种连接类型分别称为显式报文连接和I/O 报文连接。显式报文包括属性地址、属性值和服务代码来描述所请求的行为。I/O 报文只包含数据。I/O 报文中,所有有关如何处理数据的报文都包含在与该I/O 报文相关的连接对象中。n
36、参数对象在带有可设置参数的设备中要用到参数对象。每个实例代表一个参数,每个参数的属性包括它的值、范围、文本和限制等。n应用对象通常设备中至少有一个应用对象。DN规范的对象库中有大量的标准应用对象。5.4.4.4 DeviceNet的报文nDeviceNet 应用层定义了如何分配标识符,如何用CAN 数据区指定服务、传送数据。nDeviceNet 使用更为有效的生产者消费者模式,取代了传统的源目的传输方法。该模式要求对信息打包,使它具有数据标识区。标识符还提供仲裁的手段,以便更高效传送I/O 数据,并供多个消费者使用。n拥有数据的设备生产数据报文,所有需要数据的设备在总线上监听报文,识别出相应的
37、标识符后就消费此数据。采用生产者消费者模式,报文将不再专属于特定的源或目的,例如机组控制器发出的一个报文,用很窄的带宽就可以供多个电动机起动器使用。5.4.4.4 DeviceNet的报文nDeviceNet 定义了两种不同类型的报文,称作I/O 报文和显式报文。nI/O I/O 报文报文适用于传输应用和过程数据。I/O数据总是从一个“生产”应用传输到多个“消费”应用。nI/O报文格式的最重要的特性是完全利用了CAN数据场来传输过程数据。连接的端点通过CAN报文标识符来识别过程数据的重要性。每个I/O报文使用1个优先级高的CAN标识符。nI/O 报文通过一点或多点连接进行报文交换。报文的含义由
38、连接ID(CID,CAN 标识符)指示,建立连接就是预先规定该报文的发送和接受设备,包括源和目的对象的属性,以及数据生产者和消费者的地址。5.4.4.4 DeviceNet的报文n显式报文显式报文则适用于两个设备间多用途的点对点传送,采用典型的请求-响应通信方式,常用于节点的配置、问题诊断等。显式报文通常使用优先级低的连接标识符。n显式报文传送通过显式连接对象来实现,在设备中建立显式连接对象。显式报文请求指明了对象、实例和属性,以及所要调用的特定分类服务。n显式报文格式最重要的特性是CAN标识符场的任何一部分都不用于显式报文传输协议。所有协议都包含在CAN数据场当中。CAN标识符场用作连接ID
39、。设备之间的每个显式连接通道需要2个CAN标识符,一个用于请求报文,另一个用于响应报文。标识符在连接建立时确定。5.4.4.4 DeviceNet的报文nI/O报文的格式如下:n显式报文的格式如下:CAN帧头应用I/O数据CAN帧尾CAN帧头协议区&特殊服务数据CAN帧尾08字节08字节5.4.4.4 DeviceNet的报文nDeviceNet 为长度大于8 字节的报文提供了分段服务。大的I/O 报文可以分割成为任意多的标准I/O 报文。显式报文也同样可以进行分段。分段服务为DeviceNet 提供了更多的可扩展性和兼容性,保证了将来更加复杂、更智能化的设备可以加入到DeviceNet 网络
40、上。在不改变基本协议和连接模型的基础上DeviceNet 面向对象的设计和编址方式使其有相当大功能扩展余地。n另一方面设备通信也可以非常简单。一个含两个报文连接的简单从机设备的应用(1 个I/O 报文,1 个显式报文),用4K ROM 和175 字节RAM的CPU(如Motorola 68HC05X4)就可以实现。5.4.4.4 DeviceNet的报文n报文分段服务如下图所示:要发送的报文重组后的报文Frag#1Frag#2Frag#3Frag#1Frag#2Frag#3n对I/O报文,若连接对象“长度”属性大于8字节,使用分段协议。对显式报文,在报文头中有一位指出是否分段。5.4.4.4
41、DeviceNet的报文字节偏移 位7 6 5 4 3 2 1 0012 报文体7字节偏移 位7 6 5 4 3 2 1 00 分段协议12 分段报文体7不分段不分段I/O报文数据场格式报文数据场格式分段分段I/O报文数据场格式报文数据场格式分段类型 分段计数器表明是首段、中间段还是尾段每段加1,循环计数5.4.4.4 DeviceNet的报文字节偏移 位7 6 5 4 3 2 1 00 报文头12 报文体7字节偏移 位7 6 5 4 3 2 1 00 报文头1 分段协议2 分段报文体7不分段显式报文数据场格式不分段显式报文数据场格式分段显式报文数据场格式分段显式报文数据场格式FragXIDM
42、AC ID1=要分段有效性识别码,0、1交替,从站必须照原样回送R/R服务代码服务特定变量0=请求报文1=响应报文5.4.4.5 CAN标识符的使用nCID包含报文组ID、该组中的报文ID、设备MAC ID。报文ID根据报文的含义来分配。n报文组1分配了1024个CAN标识符(000H 3FFH)。该组中每个设备最多可拥有16个不同的报文。同组报文的优先级主要由报文ID决定。2个设备同时发送报文则报文ID号较小的设备优先。报文组1通常用于 I/O报文交换应用数据。5.4.4.5 CAN标识符的使用n报文组2分配了512个标识符(400H5FFH)。该组的大多数报文ID可选择定义为“预定义主/从
43、连接集”。其中1个报文ID定义为网络管理。优先级主要由设备地址(MAC ID)决定,其次由报文ID决定。如果要考虑各位的具体位置,那么带8位报文滤波的CAN控制器可以根据MAC ID滤出自身的报文组2报文。5.4.4.5 CAN标识符的使用n报文组3分配了448个标识符(600H7BFH),具有与报文组1相似的结构。与报文组1不同的是,它主要交换低优先级的过程数据。此外,该组的主要用途是建立动态的显式连接。每个设备可有7个不同的报文,其中2个报文保留作未连接报文管理器端口(UCMMPort)。5.4.4.5 CAN标识符的使用n报文组4分配了分配了48个CAN标识符(7C0H7EFH),不包含
44、任何设备地址,只有报文ID。该组的报文只用于网络管理。通常分配4个报文ID用于“离线连接集”,该集报文ID为2C2F,用于通信故障的恢复。n其它16个CAN标识符(7F0H7FFH)在DeviceNet中被禁止。5.4.4.6 DeviceNet连接的建立n只有当对象之间已建立一个连接时,才能通过网络进行报文传送。DeviceNet规定了两种类型连接:nI/O 连接在一个生产应用及一个或多个消费应用之间提供了专用的,具有特殊用途的通讯路径。特定的应用和过程数据通过这些路径传输;n显式报文连接在两个设备之间提供了一个通用的、多用途的通讯路径。显式报文连接提供典型的面向请求/响应的网络通讯方式。5
45、.4.4.6 DeviceNet连接的建立nDeviceNet节点在开机后能够立即寻址的唯一端口是“非连接信息管理器端口”(UCMM端口)和预定义主/从连接组的“Group2非连接显式请求端口”。当通过UCMM端口或者Group2非连接显式请求端口建立一个显式报文连接后,这个连接可用于从一个节点向其它节点传送信息,或建立I/O信息连接。一旦建立了I/O信息连接,就可以在网络设备之间传送I/O数据。n通过UCMM端口可以动态的建立显式信息连接。一个支持预定义主/从连接组,并且具有UCMM功能的设备称为Group 2服务器。一个Group 2服务器可被一个或多个客户机通过一个或多个连接进行寻址。5
46、.4.4.7 预定义的主从连接组nDeviceNet 应用层协议功能很强,设备间的连接允许动态配置。但考虑到有些设备根本不需要也没有资源去使用这一强大功能,DeviceNet 指定了一套称为预定义主/从连接组的CID,用来简化主/从结构中I/O 数据的传送。n许多设备要实现的功能在设计时就已经预先决定了(如感受压力、起动电动机等等),因此这些设备将要生产或消费的数据的类型和数量在通电前就已经知道了。这些设备通常提供输入数据或请求输出数据和配置数据。预定义主/从连接组可以满足设备的这些要求。5.4.4.7 预定义的主从连接组n预定义主/从连接组用于简单而快速地建立一个连接。当使用预定义的主/从连
47、接组时,客户机(主站)和服务器(从站)之间只允许存在一个显式连接。由于在预定义主/从连接组定义内已省略了创建和配置应用与应用之间连接的许多步骤,可以使用较少的网络和设备资源来实现DeviceNet通讯。5.4.4.7 预定义的主从连接组n不具有UCMM功能,只支持预定义主/从连接组的从设备,被称为DeviceNet中的仅限Group 2服务器。只有分配它的主站才可以寻址仅限Group 2的服务器。仅限Group 2的设备能够接收的所有报文都在报文组2中被定义。支持预定义主/从连接组对设备制造商来说代表了一个简单实现的方案。n绝大多数现有的DeviceNet设备都是基于预定义的主/从连接组,因为
48、这在终端设备上实现起来比较简单。5.4.4.7 I/O数据触发方式nDeviceNet支持的I/O数据触发方式有:位选通、轮询、状态改变、循环。1.位选通:主站发出位选通命令报文,其中数据域的64个位对应网络上64个可能的节点,位=1的时候表示要求该节点发送I/O数据(最大8Byte)。5.4.4.7 I/O数据触发方式n轮询:位选通方式只能传送少量I/O数据,而轮询命令和响应报文则可在主从站之间传送任意数量的数据(分段或不分段)。轮询命令是主站发往从站的命令和输出数据,响应是从站的回答(输入数据)。n循环:适用于一些模拟设备,可以根据设备信号产生的快慢灵活设定循环数据交换的时间间隔。这样就可
49、以降低不必要的通信流和包处理,可以为改变更快的、对实时性要求更严格的I/O 数据保留带宽。例如,在慢速PID 回路中的温度传感器可以将周期设置为500ms,而主机可能是每30ms 扫描一次所有的设备。5.4.4.7 I/O数据触发方式n状态改变:此方式用于离散的设备,使用事件触发的方式,当设备状态发生改变时,才发生通信,而不是由主设备不断地查询。为了确保消费数据的设备知道数据生产者仍处于活动状态,DeviceNet 提供一个间隔可调节的背景心跳。当状态改变或心跳计时器超时时就发送数据。该服务保证连接的有效性,通知数据消费者它的数据源设有任何故障。这样控制器就不必再定期发送仅仅是确定设备是否活动
50、的请求。在多点传送时这种方式比较有效。5.4.4.8 重复MAC ID检测nDeviceNet的每一个物理连接必须被赋予一个唯一的MAC ID,不可重复。由于MAC ID可能是人工设置的(比如拨码开关),所以MAC ID重复的错误是不能完全避免的。nDeviceNet的重复MAC ID检测机制可以检测重复MAC ID错误的发生。n“重复MAC ID请求”报文包括本设备拟用的MAC ID、制造商ID以及32bit的产品系列号。n一个DeviceNet模块在启动后转换到Online状态之前,必须以1s间隔连续两次发出重复MAC ID请求报文,1s以内没有收到响应,才可以转入Online状态。5.4