已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CAN应用层协议 CAN基本协议的应用CANopen CANopen概述 CAN和CANopen标准在OSI网络模型中的原理图 CAN基本协议的应用 CAN三层协议 物理层 数据链路层 应用层应用层 明确CAN消息帧的11位标识符和8字节数据如何使用CAN协议只对物理层和数据链路层作了描述和规定 而对于应用层则没有说明 如果每个都可以为自己的产品设计一个应用层协议 不同厂商的设备之间不能互相操作 CANopen概述 应用层协议内容应用层提供一组服务和协议通讯规范提供配置设备的方法和通讯数据 定义了设备之间的数据如何通讯 设备规范为设备增加了设备相关的类行为 CAL CANApplicationLayer CAL CANApplicationLayer 协议是目前基于CAN的高层通讯协议中的一种 提供了4种应用层服务功能CMS CAN basedMessageSpecification CMS提供基于变量 事件 域类型的对象 以设计和规定一个设备 节点 的功能如何被访问 例如 如何上载下载超过8字节的一组数据 域 并且有终止传输的功能 CAL CANApplicationLayer NMT NetworkManagemenT 提供网络管理 如初始化 启动和停止节点 侦测失效节点 服务 这种服务是采用主从通讯模式 所以只有一个NMT主节点 来实现的 CAL CANApplicationLayer DBT DistriBuTor 提供动态分配CANID 正式名称为COB ID CommunicationObjectIdentifier 服务 这种服务是采用主从通讯模式 所以只有一个DBT主节点 来实现的 CAL CANApplicationLayer LMT LayerManagemenT LMT提供修改层参数的服务 一个节点 LMTMaster 可以设置另外一个节点 LMTSlave 的某层参数 如改变一个节点的NMT地址 或改变CAN接口的位定时和波特率 CAL CANApplicationLayer CMS为它的消息定义了8个优先级 每个优先级拥有220个COB ID 范围从1到1760 剩余的标志 0 1761 2031 保留给NMT DBT和LMT COB ID越低优先级越高 CANopen协议介绍 通信接口和协议软件用于提供在总线上收发通信对象的服务 不同CANopen设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型 通信对象和应用对象 对象字典位于通信程序和应用程序之间 用于向应用程序提供接口 应用程序对对象字典进行操作 即可实现CANopen通信 它包括功能部分和通信部分 通信部分通过对对象字典进行操作实现CANopen通信 而功能部分则根据应用要求来实现 CANopen协议介绍 CAL提供了所有的网络管理服务和报文传送协议 但并没有定义CMS对象的内容或者正在通讯的对象的类型 而这正是CANopen切入点 CANopen是在CAL基础上开发的 使用了CAL通讯和服务协议子集 提供了分布式控制系统的一种实现方案 CANopen的核心概念是设备对象字典 OD ObjectDictionary 对象字典不是CAL的一部分 而是在CANopen中实现的 对象字典 OD 对象字典 OD ObjectDictionary 是一个有序的对象组 每个对象采用一个16位的索引值来寻址 为了允许访问数据结构中的单个元素 同时定义了一个8位的子索引 CANopen网络中每个节点都有一个对象字典 对象字典包含了描述这个设备和它的网络行为的所有参数 对象字典 OD 对象字典 OD OD通过通信对象描述了设备的所有功能 介于应用程序和通信接口直接在CANopen网络系统中每个节点都有唯一的一个对象字典 而且每个节点的对象字典都具有相同的结构 但具体的内容要根据不同的设备而定 通信模型 包括CANopen网络上的消息帧 以及其内容和功能 管理消息服务数据对象过程服务对象特殊功能对象 管理消息 层管理 网络管理和ID分配服务 如初始化 配置和网络管理 包括 节点保护 Boot up消息 Heartbeat消息 NMT消息服务和协议符合CAL中的LMT NMT和DBT服务部分 这些服务都是基于主从通讯模式 在CAN网络中 只能有一个LMT NMT或DBT主节点以及一个或多个从节点 Boot up消息 1 Start Remote node 0 x01 2 Stop Remote Node 0 x02 3 Enter Pre Operational State 0 x80 4 Reset Node 0 x81 5 Reset Communication 0 x82 6 设备初始化结束 自动进入Pre Operational状态 发送Boot up消息通知NMT主节点已经到就绪状态 Boot up消息 NMT slave节点发布Boot up报文通知NMT Master节点它已经从initialising状态进入pre operational状态 Heartbeat消息 Heartbeat协议是为了解决错误控制 显示节点当前状态而引入的 Heartbeat消息周期性地由节点发出 表示该节点目前仍然在工作 NMT消息 由NMT主节点发送 迫使从节点状态转换 使用2B数据单帧 第一个数据字节是命令 第二个字节是目标节点的ID NMT消息 只有NMT Master节点能够传送NMTModuleControl报文 NMTModuleControl消息不需要应答 NMT消息格式如下 NMT消息 通过节点保护服务 NMT主节点可以检查每个节点的当前状态 当这些节点没有数据传送时这种服务尤其有意义 服务数据对象 SDO SDO提供客户访问服务器的对象字典 OD 的功能访问者被称作客户 client 对象字典被访问且提供所请求服务的CANopen设备别称作服务器 server 通过SDO服务 可以访问对象字典的条目 这些条目可能包含有任意长度的数据和数据类型 客户的CAN报文和服务器的应答CAN报文总是包含8字节数据 尽管不是所有的数据字节都一定有意义 一个客户的请求一定有来自服务器的应答 服务数据对象 SDO SDO有2种传送机制 加速传送 Expeditedtransfer 最多传输4字节数据 分段传送 Segmentedtransfer 传输数据长度大于4字节 服务数据对象 SDO 为了进行标准的分段 DH速传送 SDO定义了6个确认服务 SDO下载 SDO上传 启动SDO上传 启动SDO下载 下载SDO段和上传SDO段 和一个非确认服务 中止SDO传送 如 启动SDO下载协议与对象字典的关系 服务数据对象 SDO 一个节点向其它节点发送SDO时 所使用报文CAN ID为600h Node ID例如 将值0 x31FF写入节点0 x01的索引为0 x6012 子索引为2的对象字典中 对应的字节赋值 如图2所示 根据SDO协议 连接对象报文的标识符 COB ID 为600h 01h 601h Byte0为2B 表示客户向服务器发出下载请求 采用加速传送方式 并且显示字节长度 Bytel和2表示索引和子索引分别为6012h和2h Byte3为02h 表示传送的数据为2个字节 Byte4和5表示传送数据值为0 x31FF 服务数据对象 SDO 通过使用索引和子索引 在CAN报文的前几个字节 SDO使客户机能够访问设备 服务器 对象字典中的项 对象 SDO通过CAL中多元域的CMS对象来实现 允许传送任何长度的数据协议是确认服务类型 为每个消息生成一个应答 一个SDO需要两个ID SDO请求和应答报文总是包含8个字节 过程数据对象PDO 用来传输实时数据 数据从一个生产者传到一个或多个消费者 数据传送限制在1到8个字节PDO通讯没有协议规定 PDO数据内容只由它的CANID定义 假定生产者和消费者知道这个PDO的数据内容 每个PDO在对象字典中用2个对象描述 PDO通信参数和PDO映射参数 所謂PDO的映射 就是將PDO的數據指向對象字典的某個位置PDO消息的内容是预定义的 过程数据对象PDO PDO訪問 由於PDO都是用來傳送較短且實時性較高的控制數據和狀態數據 因此 PDO數據在傳送時 是不會像SDO一樣 在數據包裡指定要對哪個Index進行操作 PDO在進行數據交換之前 要先設定好是對哪個Index操作的 這個動作就是PDOMapping 映射好了PDO的數據對象 則PDO的數據就會被從站自動指向對象字典裡的某個IndexSub index上 這樣就加快了數據交換的效率 过程数据对象PDO 过程数据对象PDO 同步 通过接收SYNC对象实现同步 非周期 由远程帧预触发传送 或者由设备子协议中规定的对象特定事件预触发传送 周期 传送在每1到240个SYNC消息后触发 异步由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送 预定义消息或者特殊功能对象 同步 用来同步网络中节点 基于主从概念时间戳 为设备提供一个时间标准紧急事件 紧急事件由设备的内部错误触发 每个错误事件只发送一次 不重复发生 预定义的连接设置 为了减小简单网络的组态工作量 CANopen定义了强制性的缺省标识符 CAN ID 分配表 这些标志符在预操作状态下可用 通过动态分配还可修改缺省ID分配表是基于11位CAN ID 包含一个4位的功能码部分和一个7位的节点ID Node ID 部分 预定义报文或者特殊功能对象 CANopen标识符分配 使用预定义的主从连接集 ID是缺省的 不需要配置 如果节点支持 PDO数据内容也可以配置 上电后修改PDO的ID 在预操作状态 使用 预定义的 SDO在节点的对象字典中适当位置进行修改 使用CALDBT服务 节点或从节点最初由它们的配置ID指称 节点ID可以由设备上的拨码开关配置 同时启动时 各个节点ID必须不一样 注意事项 1 在开发过程中不必要将CANopen协议中的各项内容都一一编写 只要根据应用的具体要求按照CANopen协议编写即可 对象字典都要通过软件实现 这是实现CANopen的关键 2 组建对象字典时并没有必要把协议规定的所有项都包括进去 另外还要留出足够的空间 使得用户可以根据以后的具体需要向对象字典中添加功能项 3 一般应用中 如果CANopen网络不复杂 使用预定义的标识符分配就能满足要求 对于特别大的系统 如果要制定标识符分配 这需要大量的软件编程 4 对于CANopen网络中必须实现的管理功能 一般由一个节点来实现 但也可以由几个节点分别承担 尤其对于SYNC报文传输和标识符的分配 分开来实现会更好 CanOpen实现的意义 意义 使用CanOpen协议 能使Can总线的应用标准化 能很方便的与其他厂商使用CanOpen的设备互联互通 CanOpen协议是高层协议 能很容易的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技小探索:解锁未来星球小学主题班会课件
- 诚信为本诚信社会-小学主题班会课件
- IT运维服务行业技术支持团队主管KPI考核表
- 机械加工车间主管生产效率与安全控制绩效考核表
- 新能源技术研发部团队成员技术创新KPI考核表
- 确认2026年供应链合作细节的确认函(5篇)
- 建筑设计师设计成果与施工协调性绩效评定表
- 修身养性立德树人-小学主题班会课件
- 铁路交通项目运营经理绩效评定表
- 远程协作工具实施指导书
- 历年计算机二级MS-Office真题及答案
- 信访业务知识培训课件
- GB/T 18281.3-2024医疗保健产品灭菌生物指示物第3部分:湿热灭菌用生物指示物
- 微循环课件教学课件
- 不完全肠梗阻护理
- 人教PEP版(一起)(2024)一年级上册英语全册教案(单元整体教学设计)
- 舞蹈基础知识考试题库150题(含答案)
- 《电力行业企业培训师能力标准与评价规范》
- 铁工电〔2023〕54号国铁集团关于印发《普速铁路工务安全规则》的通知
- 安全生产应急预案管理办法
- 小升初奥数思维训练100题(附解析)
评论
0/150
提交评论