290 likes | 422 Views
制定一个主 / 从通讯协议. Version 1.10 版 2006 年 5 月. 目录. 协议设计要素分析 协议组成 主 / 从通讯协议 CAN 网络编程与调试 应用实例. 协议设计要素分析. 构建一个网络,需要解决的关键技术问题有: 总线传输信息的速率、容量、优先等级、节点容量等技术问题; 高电磁干扰环境下的可靠数据传输; 确定最大传输时的延时大小; 网络的容错技术; 网络的监控和故障诊断功能. 协议设计要素分析. 在 CAN 总线协议的设计过程中,需要考虑以下主要的因素: CAN 报文的分配 数据通讯的实现 网络管理 设备建模.
E N D
制定一个主/从通讯协议 Version 1.10版 2006年5月
目录 • 协议设计要素分析 • 协议组成 • 主/从通讯协议 • CAN网络编程与调试 • 应用实例
协议设计要素分析 • 构建一个网络,需要解决的关键技术问题有: • 总线传输信息的速率、容量、优先等级、节点容量等技术问题; • 高电磁干扰环境下的可靠数据传输; • 确定最大传输时的延时大小; • 网络的容错技术; • 网络的监控和故障诊断功能
协议设计要素分析 • 在CAN总线协议的设计过程中,需要考虑以下主要的因素: • CAN报文的分配 • 数据通讯的实现 • 网络管理 • 设备建模
CAN报文的分配 • CAN报文的分配 • 报文ID的分配 • 报文标识符分配的方法被认为是基于CAN-bus 的系统的主要结构元素 • 报文相关的优先权和报文的等待时间 • 报文滤波适用性、合理的通讯结构适用性和标识符使用的效率 • 标准帧:11位ID • 扩展帧:29位ID
CAN报文的分配 • CAN报文的分配 • CAN报文数据的分配 • CAN报文为短帧报文,最多可以传送8个数据字节 • 实际应用中往往需要传送大于8个字节的数据,因此对于报文数据部分的分配需要考虑对于分段传送的需要 • 报文数据部分的合理使用:服务数据和应用数据
CAN报文的分配 • 报文格式的定义 • 报文ID的定义 • CAN2.0A 帧:11位ID • CAN2.0B 帧:29位ID • 报文数据的定义 • 每帧报文最多最多8bytes数据
CAN报文格式 • CAN2.0B 帧格式
数据通讯模式 • 数据通讯的方式规定了网络中各设备之间数据交换的规则 • 主从/多主 • 命令/响应模式 • 在一般的通讯过程中常采用命令/响应的方式 • 在基于命令/响应模式的通讯网络中,由主控设备发送命令帧,受控设备接收到命令帧以后向主控设备发送响应帧,从而实现数据交换
数据通讯模式 • 命令/响应模式
数据通讯模式 • 数据通讯模式的确定 • CAN总线的特性: • 多主结构,根据优先权对总线进行访问 • 无破坏性的基于优先权的逐位仲裁 • 通讯效率和总线利用率
数据通讯模式 • 灵活的通讯模式
网络管理 • 对于整个网络,一些突发的事件必须处理,例如节点的故障 • 网络中的错误或者异常必须能够检测和显示,并且通过某种方式进行处理 • 节点网络状态(启动、通讯异常时动作) • 提供简单的节点监控和有效的错误处理措施,可以在一定程度上提高系统的通讯可靠性,并利于系统的维护
设备建模 • 在网络中除了定义通讯以外,还要求对于网络中相似设备的功能类型进行定义,满足对于设备的互用性和可交换性的需求 • 如何制定标准设备的规范 • 设备子协议Device Profile 的原则 • 设备必备功能 • 设备可选功能 • 扩展性的考虑
协议组成 • 协议的组成部分 • 报文传输协议 • 报文格式定义 • 设备的定义
主/从通讯协议 • 主/从通讯协议,在一般简单网络中是一个可靠易于实现的协议模式 • 通讯报文数据结构通常定义
主/从通讯协议:示例 • CAN报文格式(标准帧)定义: • CAN ID分配: • CAN 报文数据定义
Example • 演示一个实际的CAN-bus应用单元: • 采用CAN2.0B帧,29位ID码,响应命令时无返回帧。 • 响应的目的地址码(ID): 0x00 00 00 33 • 命令码(CMD): 00 启动设备,有显示(声或光),返回帧无; 01 停止设备,关显示(声或光),返回帧无; 02 读取参数,返回帧有,此命令帧保留未用。
Notes • 需要仔细考虑ID部分的合理分配; • 兼容多种通讯方式(点对点、广播); • 超过8字节数据的传输使用分帧方式; • 应用层协议会影响验收滤波器设置; • 总线的通讯效率与应用层有关。
CAN网络编程与调试 • CAN网络编程 • 主控节点 • PLC • 工控PC • 受控节点 • 节点的硬件设计 • 节点的软件设计
CAN网络编程与调试 • CAN网络调试 • 单个节点的调试 • 软硬件的调试 • CAN通讯的调试 • 硬件设备的应用(示波器、逻辑分析仪)
CAN网络编程与调试 • 网络通讯的调试 • 网络环境的测试 • 严苛环境下的测试(高总线负载、强干扰环境、故障的设定) • CANalyst分析仪的应用或者其他工具的应用
CAN网络编程与调试 • 网络故障 • 硬件故障 • 设计原因 • 其他因素 • 软件故障 • 设计原因 • 其他因素 • 网络拓扑 • 总线拓扑 • 线缆的选择
通讯协议的选择 • 通讯协议的选择 • 根据需要选择合适的通讯协议 • 标准的协议:DeviceNet CANopen • 自定义协议 • 标准协议的优点 • 开发工具及资料丰富,市场认知度高 • 开发周期较长,开发难度较高 • 自定义协议 • 与实际系统应用密切相关,易于实现 • 局限性:厂家自定义,不宜推广
Modbus协议 • Modbus协议介绍 • Modbus就是工业控制的网络协议中的一种 • Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式
Modbus协议 • 当在一Modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。 • 在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 Modbus协议支持主/从通讯方式,同时也支持使用对等技术通讯
Modbus协议 • Modbus协议帧结构 • 问题:如何将Modbus协议应用到CAN总线中?
自定义协议实例 • 协议帧格式