CAN总线应用层协议

上传人:平*** 文档编号:46193577 上传时间:2018-06-23 格式:PPT 页数:60 大小:1.23MB
返回 下载 相关 举报
CAN总线应用层协议_第1页
第1页 / 共60页
CAN总线应用层协议_第2页
第2页 / 共60页
CAN总线应用层协议_第3页
第3页 / 共60页
CAN总线应用层协议_第4页
第4页 / 共60页
CAN总线应用层协议_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《CAN总线应用层协议》由会员分享,可在线阅读,更多相关《CAN总线应用层协议(60页珍藏版)》请在金锄头文库上搜索。

1、CAN总线应用层协议 CAN总线基本协议的应用 CANopen DeviceNet SAE J1939CANopen协议概述CAN和CANopen标准在OSI网络模型中的原理图CAN总线基本协议的应用 CAN三层协议:物理层、数据链路层、 应用层 应用层:明确CAN消息帧的11位标识符 和8字节数据如何使用 CAN协议只对物理层和数据链路层作了描述 和规定,而对于应用层则没有说明。如果每 个都可以为自己的产品设计一个应用层协议 。不同厂商的设备之间不能互相操作CANopen概述 应用层协议内容 应用层提供一组服务和协议 通讯规范提供配置设备的方法和通讯数据,定 义了设备之间的数据如何通讯。 设

2、备规范为设备增加了设备相关的类行为CAL(CAN Application Layer) CAL(CAN Application Layer)协议是目 前基于CAN的高层通讯协议中的一种,提 供了4种应用层服务功能 CMS (CAN-based Message Specification) CMS提供基于变量、事件、域类型的对象,以 设计和规定一个设备(节点)的功能如何被访 问(例如,如何上载下载超过8字节的一组数 据(域),并且有终止传输的功能)。 CAL(CAN Application Layer) NMT (Network ManagemenT) 提供网络管理(如初始化、启动和停止节点,

3、侦测失效节点)服务。这种服务是采用主从通 讯模式(所以只有一个NMT主节点)来实现的 。CAL(CAN Application Layer) DBT (DistriBuTor) 提供动态分配CAN ID(正式名称为COB-ID, Communication Object Identifier)服务。这种 服务是采用主从通讯模式(所以只有一个DBT 主节点)来实现的。CAL(CAN Application Layer) LMT (Layer ManagemenT) LMT提供修改层参数的服务:一个节点(LMT Master)可以设置另外一个节点(LMT Slave )的某层参数(如改变一个节点的

4、NMT地址, 或改变CAN接口的位定时和波特率)。CAL(CAN Application Layer) CMS为它的消息定义了8个优先级,每个优先级拥有220 个COB-ID,范围从1到1760。剩余的标志(0,1761- 2031)保留给NMT,DBT和LMT。 COB-ID越低优先级越 高。CANopen协议介绍通信接 口和协议软件用于提供在总线上收发通信对象的服务,不同 CANopen设备间的通信是通过交换通信对象来完成的。 对象字典描述了设备使用的所有数据类型、通信对象和应用对象,对 象字典位于通信程序和应用程序之间,用于向应用程序提供接口, 应用程序对对象字典进行操 作,即可实现CA

5、Nopen通信。它包括功 能部分和通信部分,通信部分通过对对象字典进行操作实现CANopen通信,而功能部分则根据应用要求来实现。 CANopen协议介绍 CAL提供了所有的网络管理服务和报文传送协 议,但并没有定义CMS对象的内容或者正在通 讯的对象的类型。而这正是CANopen切入点。 CANopen是在CAL基础上开发的,使用了CAL 通讯和服务协议子集,提供了分布式控制系统 的一种实现方案。 CANopen的核心概念是设备对象字典(OD: Object Dictionary),对象字典不是CAL的一 部分,而是在CANopen中实现的。 对象字典(OD)对象字典(OD:Object D

6、ictionary)是一个有序的 对象组;每个对象采用一个 16位的索引值来寻址,为 了允许访问数据结构中的单 个元素,同时定义了一个8 位的子索引,CANopen网 络中每个节点都有一个对象 字典。 对象字典包含了描述这个设 备和它的网络行为的所有参数。 对象字典(OD)对象字典(OD) OD通过通信对象描述了设备的所有功能,介于应用程序 和通信接口直接 在CANopen 网络系统中每个节点都有唯一的一个对象字 典,而且每个节点的对象字典都具有相同的结构,但具体 的内容要根据不同的设备而定, 通信模型 包括CANopen网络上的消息帧,以及其 内容和功能。 管理消息 服务数据对象 过程服务对

7、象 特殊功能对象管理消息 层管理,网络管理和ID分配服务:如初始化,配置和网络 管理(包括:节点保护)。 Boot-up消息、Heartbeat消息、NMT消息 服务和协议符合CAL中的LMT,NMT和DBT服务部分。这 些服务都是基于主从通讯模式:在CAN网络中,只能有一 个LMT,NMT或DBT主节点以及一个或多个从节点。 Boot-up消息1: Start_Remote_node (0x01) 2:Stop_Remote_Node (0x02) 3: Enter_Pre-Operational_State (0x80) 4: Reset_Node (0x81) 5:Reset_Commu

8、nication (0x82) 6:设备初始化结束,自动进入 Pre_Operational状态,发送Boot-up消息 通知NMT主节点已经到就绪状态Boot-up消息 NMT-slave节点发布Boot-up报文通知NMT- Master节点它已经从initialising状态进入pre- operational状态。 Heartbeat消息 Heartbeat协议是为了解决错误控制,显示节点当 前状态而引入的。Heartbeat消息周期性地由节点 发出,表示该节点目前仍然在工作。NMT消息 由NMT主节点发 送,迫使从节点 状态转换。使用 2B数据单帧,第 一个数据字节是 命令,第二个字

9、 节是目标节点的 IDNMT消息 只有NMT-Master节点能够传送NMT Module Control报文 。NMT Module Control消息不需要应答。NMT消息格式如下: NMT消息 通过节点保护服务,NMT主节点可以检查每个节点的当前 状态,当这些节点没有数据传送时这种服务尤其有意义。 服务数据对象(SDO) SDO提供客户访问服务器的对象字典(OD)的功能 访问者被称作客户 (client),对象字典被访问且提供所请求服务的 CANopen设备别称作服务器(server)。 通过SDO服务,可以访问对象字典的条目,这些条目可能包含有任意长度的数据和数据类型。 客户的CAN报

10、文和服务器的应答CAN报文总是包含8字节数据(尽管不是所有的数据字节都一定有意义)。一个客户的请求一定 有来自服务器的应答。服务数据对象(SDO)SDO有2种传送机制: 加速传送(Expedited transfer):最多传输4字节数据 分段传送(Segmented transfer) : 传输数据长度大于4字节 服务数据对象(SDO)为了进行标准的分段DH速传送,SDO定义了6个确认服务(SDO下载, SDO上传,启动SDO上传,启动SDO下载,下载SDO段和上传SDO段)和一 个非确认服务(中止SDO传送)。如:启动SDO下载协议与对象字典的关 系服务数据对象(SDO)一个节点向其它节点

11、发送SDO时,所使用报文CANID为600h+Node ID 例如 将值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使客户机能够访问设备(服务

12、器)对象字典中的项( 对象)。 SDO通过CAL中多元域的CMS对象来实现,允许传送任 何长度的数据 协议是确认服务类型:为每个消息生成一个应答(一个 SDO需要两个ID)。SDO请求和应答报文总是包含8个字 节过程数据对象PDO 用来传输实时数据, 数据从一个生产者传到一个或多个 消费者。数据传送限制在1到8个字节 PDO通讯没有协议规定。PDO数据内容只由它的CAN ID 定义,假定生产者和消费者知道这个PDO的数据内容。 每个PDO在对象字典中用2个对象描述:PDO通信参数和 PDO映射参数,所謂PDO的映射,就是將PDO的數據指向對象字典的某個位置 PDO消息的内容是预定义的过程数据对

13、象PDO PDO訪問:由於PDO都是用來傳送較短且實時性較高的控制 數據和狀態數據,因此,PDO數據在傳送時,是不會像SDO 一樣,在數據包裡指定要對哪個Index進行操作,PDO在進 行數據交換之前,要先設定好是對哪個Index操作的,這 個動作就是PDO Mapping,映射好了PDO的數據對象,則 PDO的數據就會被從站自動指向對象字典裡的某個Index Sub-index上,這樣就加快了數據交換的效率。过程数据对象PDO过程数据对象PDO同步(通过接收SYNC对象实现同步) 非周期:由远程帧预触发传送,或者由设备子协议中规定的对象 特定事件预触发传送。 周期:传送在每1到240个SYN

14、C消息后触发。 异步 由远程帧触发传送。由设备子协议中规定的对象特定事件触发传送。 预定义消息或者特殊功能对象 同步:用来同步网络中节点,基于主从概 念 时间戳:为设备提供一个时间标准 紧急事件:紧急事件由设备的内部错误触 发,每个错误事件只发送一次,不重复发 生。预定义的连接设置 为了减小简单网络的组态工作量,CANopen定义了强制 性的缺省标识符(CAN-ID)分配表。这些标志符在预操 作状态下可用,通过动态分配还可修改 缺省ID分配表是基于11位CANID,包含一个4位的功能 码部分和一个7位的节点ID(Node-ID)部分。预定义报文或者特殊功能对象CANopen标识符分配 使用预定

15、义的主从连接集。ID是缺省的,不需要 配置。如果节点支持,PDO数据内容也可以配置。 上电后修改PDO的ID(在预操作状态),使用(预 定义的)SDO在节点的对象字典中适当位置进行修 改。 使用CAL DBT服务:节点或从节点最初由它们的配 置ID指称。节点ID可以由设备上的拨码开关配置注意事项 (1)在开发过程中不必要将CANopen协议中的各项内容都一一编 写,只要根据应用的具体要求按照CANopen协议编写即可。对象 字典都要通过软件实现,这是实现CANopen的关键。(2)组建对象字典时并没有必要把协议规定的所有项都包括进去,另外还要留出足够的空间,使得用户可以根据以后的具体需要向 对

16、象字典中添加功能项。(3)一般应用中,如果CANopen网络不复杂,使用预定义的标识符分配就能满足要求。对于特别大的系统,如果要制定标识符分 配,这需要大量的软件编程。(4)对于CANopen网络中必须实现的管理功能,一般由一个节点 来实现,但也可以由几个节点分别承担。尤其对于SYNC报文传输和标识符的分配,分开来实现会更好。 DeviceNet 设备层现场总线DeviceNet DeviceNet是20世纪90年代中期发展起来的一种基于 CAN技术的开放型、符合全球工业标准的低成本、高 性能的通信网络。它通过一根电缆将PLC、传感器、光 电开关、操作员终端、电动机、轴承座、变频器和软 启动器等现场智能设备连接起来,是分布式控制系统 减少现场I/O接口和布线树立、将控制

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号