资源预览内容
第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
第9页 / 共60页
第10页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
CAN总线应用层协议总线应用层协议CAN总线基本协议的应用CANopenDeviceNetSAE J1939CANopenCANopen协议概述协议概述CAN和CANopen标准在OSI网络模型中的原理图CANCAN总线基本协议的应用总线基本协议的应用CAN三层协议:物理层、数据链路层、应用层 应用层:明确CAN消息帧的11位标识符和8字节数据如何使用CAN协议只对物理层和数据链路层作了描述和规定,而对于应用层则没有说明。如果每个都可以为自己的产品设计一个应用层协议。不同厂商的设备之间不能互相操作CANopenCANopen概述概述应用层协议内容应用层提供一组服务和协议通讯规范提供配置设备的方法和通讯数据,定义了设备之间的数据如何通讯。设备规范为设备增加了设备相关的类行为CAL(CAN Application Layer)CAL(CAN Application Layer)CAL(CAN Application Layer)协议是目前基于CAN的高层通讯协议中的一种,提供了4种应用层服务功能CMS (CAN-based Message Specification)CMS提供基于变量、事件、域类型的对象,以设计和规定一个设备(节点)的功能如何被访问(例如,如何上载下载超过8字节的一组数据(域),并且有终止传输的功能)。 CAL(CAN Application Layer)CAL(CAN Application Layer)NMT (Network ManagemenT)提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。这种服务是采用主从通讯模式(所以只有一个NMT主节点)来实现的。CAL(CAN Application Layer)CAL(CAN Application Layer)DBT (DistriBuTor)提供动态分配CAN ID(正式名称为COB-ID,Communication Object Identifier)服务。这种服务是采用主从通讯模式(所以只有一个DBT主节点)来实现的。CAL(CAN Application Layer)CAL(CAN Application Layer)LMT (Layer ManagemenT)LMT提供修改层参数的服务:一个节点(LMT Master)可以设置另外一个节点(LMT Slave)的某层参数(如改变一个节点的NMT地址,或改变CAN接口的位定时和波特率)。CAL(CAN Application Layer)CAL(CAN Application Layer)CMS为它的消息定义了8个优先级,每个优先级拥有220个COB-ID,范围从1到1760。剩余的标志(0,1761-2031)保留给NMT,DBT和LMT。 COB-ID越低优先级越高。CANopenCANopen协议介绍协议介绍通信接 口和协议软件用于提供在总线上收发通信对象的服务,不同CANopen设备间的通信是通过交换通信对象来完成的。 对象字典描述了设备使用的所有数据类型、通信对象和应用对象,对象字典位于通信程序和应用程序之间,用于向应用程序提供接口,应用程序对对象字典进行操 作,即可实现CANopen通信。它包括功能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen通信,而功能部分则根据应用要求来实现。 CANopenCANopen协议介绍协议介绍CAL提供了所有的网络管理服务和报文传送协议,但并没有定义CMS对象的内容或者正在通讯的对象的类型。而这正是CANopen切入点。 CANopen是在CAL基础上开发的,使用了CAL通讯和服务协议子集,提供了分布式控制系统的一种实现方案。CANopen的核心概念是设备对象字典(OD:Object Dictionary),对象字典不是CAL的一部分,而是在CANopen中实现的。 对象字典对象字典(OD)对象字典(OD:Object Dictionary)是一个有序的对象组;每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个8位的子索引,CANopen网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。 对象字典对象字典(OD)对象字典对象字典(OD)OD通过通信对象描述了设备的所有功能,介于应用程序和通信接口直接在CANopen 网络系统中每个节点都有唯一的一个对象字典,而且每个节点的对象字典都具有相同的结构,但具体的内容要根据不同的设备而定, 通信模型通信模型包括CANopen网络上的消息帧,以及其内容和功能。管理消息服务数据对象过程服务对象特殊功能对象管理消息管理消息层管理,网络管理和ID分配服务:如初始化,配置和网络管理(包括:节点保护)。 Boot-up消息、Heartbeat消息、NMT消息服务和协议符合CAL中的LMT,NMT和DBT服务部分。这些服务都是基于主从通讯模式:在CAN网络中,只能有一个LMT,NMT或DBT主节点以及一个或多个从节点。 Boot-upBoot-up消息消息1: Start_Remote_node (0x01) 2:Stop_Remote_Node (0x02) 3: Enter_Pre-Operational_State (0x80) 4: Reset_Node (0x81) 5:Reset_Communication (0x82) 6:设备初始化结束,自动进入Pre_Operational状态,发送Boot-up消息 通知NMT主节点已经到就绪状态Boot-upBoot-up消息消息NMT-slave节点发布Boot-up报文通知NMT-Master节点它已经从initialising状态进入pre-operational状态。 HeartbeatHeartbeat消息消息Heartbeat协议是为了解决错误控制,显示节点当前状态而引入的。Heartbeat消息周期性地由节点发出,表示该节点目前仍然在工作。NMTNMT消息消息由NMT主节点发送,迫使从节点状态转换。使用2B数据单帧,第一个数据字节是命令,第二个字节是目标节点的IDNMTNMT消息消息只有NMT-Master节点能够传送NMT Module Control报文。NMT Module Control消息不需要应答。NMT消息格式如下: NMTNMT消息消息通过节点保护服务,NMT主节点可以检查每个节点的当前状态,当这些节点没有数据传送时这种服务尤其有意义。 服务数据对象(服务数据对象(SDO)SDO提供客户访问服务器的对象字典(OD)的功能访问者被称作客户 (client),对象字典被访问且提供所请求服务的CANopen设备别称作服务器(server)。通过SDO服务,可以访问对象字典的条目,这些条目可能包含有任意长度的数据和数据类型。客户的CAN报文和服务器的应答CAN报文总是包含8字节数据(尽管不是所有的数据字节都一定有意义)。一个客户的请求一定有来自服务器的应答。服务数据对象(服务数据对象(SDO)SDO有2种传送机制: 加速传送(Expedited transfer):最多传输4字节数据 分段传送(Segmented transfer) : 传输数据长度大于4字节 服务数据对象(服务数据对象(SDO)为了进行标准的分段DH速传送,SDO定义了6个确认服务(SDO下载,SDO上传,启动SDO上传,启动SDO下载,下载SDO段和上传SDO段)和一个非确认服务(中止SDO传送)。如:启动SDO下载协议与对象字典的关系服务数据对象(服务数据对象(SDO)一个节点向其它节点发送SDO时,所使用报文CANID为600h+NodeID例如 将值0x31FF写入节点0x01的索引为0x6012,子索引为2的对象字典中,对应的字节赋值,如图2所示。根据SDO协议,连接对象报文的标识符(COBID)为600h+01h=601h。Byte0为2B,表示客户向服务器发出下载请求。采用加速传送方式,并且显示字节长度。Bytel和2表示索引和子索引分别为6012h和2h。Byte3为02h,表示传送的数据为2个字节。Byte4和5表示传送数据值为0x31FF。服务数据对象(服务数据对象(SDO)通过使用索引和子索引(在CAN报文的前几个字节),SDO使客户机能够访问设备(服务器)对象字典中的项(对象)。 SDO通过CAL中多元域的CMS对象来实现,允许传送任何长度的数据协议是确认服务类型:为每个消息生成一个应答(一个SDO需要两个ID)。SDO请求和应答报文总是包含8个字节过程数据对象过程数据对象PDOPDO用来传输实时数据, 数据从一个生产者传到一个或多个消费者。数据传送限制在1到8个字节PDO通讯没有协议规定。PDO数据内容只由它的CAN ID定义,假定生产者和消费者知道这个PDO的数据内容。每个PDO在对象字典中用2个对象描述:PDO通信参数和PDO映射参数,所謂PDO的映射,就是將PDO的數據指向對象字典的某個位置 PDO消息的内容是预定义的过程数据对象过程数据对象PDOPDOPDO訪問:由於PDO都是用來傳送較短且實時性較高的控制數據和狀態數據,因此,PDO數據在傳送時,是不會像SDO一樣,在數據包裡指定要對哪個Index進行操作,PDO在進行數據交換之前,要先設定好是對哪個Index操作的,這個動作就是PDO Mapping,映射好了PDO的數據對象,則PDO的數據就會被從站自動指向對象字典裡的某個Index Sub-index上,這樣就加快了數據交換的效率。过程数据对象过程数据对象PDOPDO过程数据对象过程数据对象PDOPDO同步(通过接收SYNC对象实现同步) 非周期:由远程帧预触发传送,或者由设备子协议中规定的对象特定事件预触发传送。 周期:传送在每1到240个SYNC消息后触发。 异步 由远程帧触发传送。由设备子协议中规定的对象特定事件触发传送。 预定义消息或者特殊功能对象预定义消息或者特殊功能对象同步:用来同步网络中节点,基于主从概念时间戳:为设备提供一个时间标准紧急事件:紧急事件由设备的内部错误触发,每个错误事件只发送一次,不重复发生。预定义的连接设置预定义的连接设置 为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改缺省ID分配表是基于11位CANID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。预定义报文或者特殊功能对象预定义报文或者特殊功能对象CANopenCANopen标识符分配标识符分配 使用预定义的主从连接集。ID是缺省的,不需要配置。如果节点支持,PDO数据内容也可以配置。 上电后修改PDO的ID(在预操作状态),使用(预定义的)SDO在节点的对象字典中适当位置进行修改。使用CAL DBT服务:节点或从节点最初由它们的配置ID指称。节点ID可以由设备上的拨码开关配置注意事项注意事项 (1)在开发过程中不必要将CANopen协议中的各项内容都一一编写,只要根据应用的具体要求按照CANopen协议编写即可。对象字典都要通过软件实现,这是实现CANopen的关键。(2)组建对象字典时并没有必要把协议规定的所有项都包括进去,另外还要留出足够的空间,使得用户可以根据以后的具体需要向对象字典中添加功能项。(3)一般应用中,如果CANopen网络不复杂,使用预定义的标识符分配就能满足要求。对于特别大的系统,如果要制定标识符分配,这需要大量的软件编程。(4)对于CANopen网络中必须实现的管理功能,一般由一个节点来实现,但也可以由几个节点分别承担。尤其对于SYNC报文传输和标识符的分配,分开来实现会更好。 DeviceNetDeviceNet设备层现场总线DeviceNetDeviceNet是20世纪90年代中期发展起来的一种基于CAN技术的开放型、符合全球工业标准的低成本、高性能的通信网络。它通过一根电缆将PLC、传感器、光电开关、操作员终端、电动机、轴承座、变频器和软启动器等现场智能设备连接起来,是分布式控制系统减少现场I/O接口和布线树立、将控制功能下载到现场设备的理想解决方案DeviceNetDeviceNet不仅可以作为设备级的网络,还可以作为控制级的网络,通过DeviceNet提供的服务还可以实现以太网上的实时控制。较之其它的一些现场总线, DeviceNet不仅可以接入更多、更复杂的设备,还可以为上层提供更多的信息和服务DeviceNet最初由Rockwell公司设计,目前由ODVA(Open DeviceNet Vendors Association)致力于支持DeviceNet产品和规范的进一步开发。此外,Rockwell, GE,ABB,Hitachi,Omron等公司也致力于DeviceNet的推广DeviceNetDeviceNet的主要特点: 采用基于CAN的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者/消费者传输模型 DeviceNet的直接通信距离最远为500m,通信速率最高可达500kb/s DeviceNet上可容纳64个节点地址,每个节点支持的I/O数量无限制 采用短帧结构,传输时间短,受干扰的概率低,检错效果好 通信介质为独立双绞总线,信号与电源承载于同一电缆 支持设备的热插拔,无需网络断电 DeviceNet的接入设备可选择光隔离设计,由外部供电设备与由总线供电的设备共享总线电缆DeviceNetDeviceNet协议规范 沿用了CAN协议标准所规定的总线网络的物理层和数据链路层,定义了不同的报文格式、总线访问仲裁规则及故障检测和故障隔离的方法DeviceNet物理层和介质物理层和介质物理层规范定义了DeviceNet的总线拓扑结构以及网络元件,具体包括接地、粗缆和细缆混合结构、网络端接和电源分配采用的典型拓扑结构是干线分支结构线缆包括(干线)和细缆(分支线),总线线缆采用五线制电缆,包括了2条信号线,2条24V电源线和一条屏蔽线,支持总线供电设备连接可选用开放/封装端头两种提供125/250/500Kbps三种可选的通讯波特率,最大拓扑距离为500米,每个网络段最大可达64个节点DeviceNet数据链路层遵循CAN协议规范,并由CAN控制器芯片实现CAN是基于广播方式的协议,支持多主形式传输。传输的帧被分配一个标识符,每个节点根据标识符确定是否接收这些帧提供数据帧、出错帧、远程帧和过载帧等多种帧格式,数据帧每帧信息都有CRC校验和其它校验措施,数据传输误码率极低,有严重故障的节点可自动从网络上切除采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题。网络上每个节点拥有一个唯一的标识符,这个标识符的值决定了仲裁中优先级的大小,优先级值小的节点在竞争仲裁中为获胜的一方DeviceNet数据通信方式循环(Cyclic)方式:适用于一些模拟设备,可以根据设备的信号发生的速度,灵活设定循环进行数据通信的时间间隔状态改变(Change of State)方式:适用于离散的设备,采用事件触发方式,当设备状态发生改变时才发生通信选通(Strobed)方式:利用8B的报文广播,64个二进制位的值对应网络上64个可能的节点,通过位的标识,指定要求响应的从设备查询(Polled)方式:I/O报文直接依次发送到各个从设备DeviceNetDeviceNet的网络通信的网络通信DeviceNet 是一个基于连接的通信网络系统。一个DeviceNet 的连接提供了多个应用之间的路径。当建立连接时,与连接相关的传送会被分配一个连接ID(CID)。如果连接包含双向交换那么应当分配两个连接ID值。DeviceNetDeviceNet报文报文I/OI/O报文报文:适用于实时性要求较高和面向控制的数据,它提供了在报文发送过程和多个报文接收过程之间的专用通信路径,通常使用优先级高的连接标识符,通过一点或多点连接进行信息交换,连接标识符提供了I/O报文的相关信息,在I/O报文利用连接标识符发送之前,报文的发送和接收设备都必须先进行设定,设定的内容包括源和目的对象的属性,以及数据生产者和消费者的地址,IO數據通常不需要響應,用於控制數據的傳輸 显式报文显式报文:顯示連接是Request/Response型的通訊,即主站發一筆命令,從站必須回復一筆響應,才算完成一次通訊,适用于两个设备间多用途的点对点报文传递,常用于节点的配置、问题诊断等,CANCAN标识符使用标识符使用 DeviceNet建立在标准CAN2.0A协议之上,并使用11位标准报文标识符,可分成4个单独的报文组DeviceNetDeviceNet对象模型对象模型 DeviceNet应用层协议是以面向对象的方式进行描述的,对协议本身所要完成的功能进行抽象和定义,把协议功能划分为多个模块,每个模块抽象出它所具有的产品数据功能属性、所能完成的功能和动作以及与其他模块对象的接口(Interface),并把模块对象化。DeviceNet通过抽象的对象模型来描述网络中所有可见的数据和功能,一个DeviceNet设备可以定义成为一个对象的集合一个对象代表设备内一个部件的抽象描述。对象由它的数据或属性、功能或服务以及它所定义的行为决定。 DeviceNetDeviceNet对象模型对象模型DeviceNetDeviceNet与与CANopenCANopen区别区别传输距离传输距离 CANopen网络可实现远距离传输(10 km),工作速率可调(1 Mb/s 通讯速率 5 kb/s),因此,在实际应用中,要考虑到传输距离的限制而选择总线协议。如果用devicenet进行远距离传输,要使用网络中继器,现在市场上已经有很多这两种总线系统的中继器产品. DeviceNetDeviceNet与与CANopenCANopen区别区别标识符分配标识符分配 CANopen支持CAN2.0 A11位和CAN2.0 B29位标识符,而且报文的优先级只能通过它的大小来区分,通常节点地址比较小的COB-ID报文的优先级最高。如果要传送需要快速响应的事件,则要通过预定义和特殊功能对象,如同步(SYNC),时间标记对象(time stamp),紧急事件(emergency),PDO 用来传输实时数据,优先级大于SDO,因为SDO的数据量大,通常用于设备初始化组态。而DeviceNET只用了CAN2.0 A的11位标识符去分组定义报文的优先级,这种信息组设计方法使总线优先级可任意分布,而不仅和节点地址有关。还取决与它是I/O还是显示报文,报文的组号等。 DeviceNetDeviceNet与与CANopenCANopen区别区别初始化组态不同初始化组态不同 SAE J1939美国汽车工程学会SAE于2000提出的J1939,成为货车和客车中控制器局域网的通用标准J1939协议实质是将CAN扩展帧格式中未明确定义的11位ID,18位扩展ID进行了明确定义,紧随ID的是8个字节的数据。SAE J1939CAN扩展帧格式SOF11位标识符SRRIDE18位扩展标识符J1939帧格式帧起始位优先权3位R位(保)数据页DPPF格式6位SRR位扩展标识PFPS格式(8位)源地址(8位)CAN124567121314151617242532帧位置282625242318171615870CAN2.0的标准和扩展格式及J1939协议所定义的格式 一个J1939协议报文单元PRIORITYRDPPDUFORMATPDUSPECIFICSOURCEADDRESSDATAFIELD311888064J1939协议报文单元的具体格式 LINLIN总线总线LIN 介绍一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能因此LIN总线是一种辅助的总线网络在不需要CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用LIN 总线可大大节省成本LIN 通讯是基于SCI(UART)数据格式采用单主控制器/多从设备的模式仅使用一根12V 信号总线和一个无固定时间基准的节点同步时钟线LINLIN的主要特性的主要特性低成本基于通用UART 接口几乎所有微控制器都具备LIN 必需的硬件极少的信号线即可实现国际标准ISO9141 规定传输速率最高可达20Kbit/s单主控器/多从设备模式无需仲裁机制从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本保证信号传输的延迟时间不需要改变LIN 从节点的硬件和软件就可以在网络上增加节点通常一个LIN 网络上节点数目小于12 个共有64 个标志符LINLIN的通讯规则的通讯规则一个LIN 网络由一个主节点一个或多个从节点组成,所有节点都有一个从通讯任务,该通讯任务分为发送任务和接收任务主节点还有一个主发送任务一个LIN网络上的通讯总是由主发送任务所发起的,主控制器发送一个起始报文,该起始报文由同步断点、同步字节、消息标志符所组成。相应的,在接受并且滤除消息标志符后,一个从任务被激活并且开始本消息的应答传输。该应答由2/4/8 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧LINLIN总线与总线与MCUMCU的接口设计的接口设计 汽车智能灯控制系统汽车智能灯控制系统大作业大作业1. CAN总线概况2.CAN总线应用实例介绍3.CAN总线模块设计(基于ARM DSP等)4.USB转CAN接口设计5.232转CAN接口设计6.CAN网关设计7 CAN总线与其它总线的比较,如:profiBus、Foundation Fieldbus、Lonworks等等8. CAN应用层协议的实际应用,如CANopen、DeviceNet、SAE J19399. CAN相关的英文文献翻译要求要求1. 2000字以上2. 时间:1月10号之前信箱:xuemingding126.com手机:13818035653
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号