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