iCAN协议规范讲座V1.20主讲人:黄敏思广州致远电子股份有限公司工业通讯市场经理公司发展历程1992年起源孕育与积累阶段以单片机方案设计为主1999年成立周立功公司新的机遇—代理PhilipsMCU开始进军半导体的分销与代理业务2001年成立致远电子投资成立致远电子研发自主知识产权产品踏上高新技术发展之路全力打造嵌入式生态环境2012年高端仪器行业品牌致力于行业高端仪器与电力自动化产品研发与服务研发工程师生产&品质管理销售&市场工程师职能部门CE认证ISO9001ISO14001OHSAS18001计量院校准工信部五所测试工程师公司规模与资质认证微软嵌入式金牌合作伙伴Intel全球ECN合作伙伴销售服务网络测试实验室电磁兼容实验室射频模拟技术实验室工业通信网络实验室环境适应性实验室致远电子产品线周立功的微博与微信关注微信号“zlg_can”,直面大师的指导关注新浪微博“ZLG-周立功”,激烈互动,触摸最新行业脉搏个人简历2006年:加盟致远电子,从事CAN-bus产品研发工作2008年:转向CAN-bus现场技术支持与服务工作2009年:调往致远北京分公司,负责华北地区的CAN-bus产品推广应用以及现场技术支持2010年:升任致远北京分公司产品经理2011年:任致远电子工业通讯产品线市场经理2013年:兼任致远CAN分析仪市场经理与CAN总线首席专家CAN协议规范简介•CAN-bus(ControllerAreaNetwork)即控制器局域网,是国际上应用最广泛的现场总线之一。•CAN-bus的主要特性如下:–低成本;–多主结构,极高的总线利用率;–很远的数据传输距离(长达10Km),高速的数据传输速率(高达1Mbit/s);–短的报文长度:每个报文允许传输最高8个字节的数据;–引入报文滤波,可根据报文的标识符决定接收或屏蔽该报文;–报文不包含源地址或目标地址,仅用标识符来指示功能信息、优先级信息;–可靠的错误处理和检测机制,;发送的信息遭到破坏后,可自动重发–节点在错误严重的情况下,具有自动退出总线的功能CAN协议规范简介•CAN(ControllerAreaNetwork)现场总线仅仅定义了第1层:物理层以及第2层:数据链路层(参考ISO11898标准)。CAN协议规范简介•由于CAN总线底层协议没有规定应用层,本身并不完整,而在基于CAN-bus的分布式控制系统中,有些附加功能需要一个高层协议来实现。•有必要建立一个高层协议,即基于CAN总线的应用层协议,能够在CAN网络中实现统一的通讯模式,执行网络管理功能,以及提供设备功能描述方式。•目前在已经有一些可以使用的高层协议,例如:–DeviceNet协议,制定组织:ODVA–CANOpen协议,制定组织:CiA–CAL协议,制定组织:CiA–SDS协议,制定组织:Honeywell–CANKingdom协议,制定组织:Kvaser•目前真正占领市场的两个应用层协议是:DeviceNet协议和CANOpen协议。CAN协议规范简介•DeviceNet和CANopen协议规范比较复杂,理解和开发的难度比较大,对于一些并不复杂的基于CAN总线的控制网络不太适合。•有必要开发设计一种简单可靠的CAN高层协议,以适合于CAN的简单应用场合。•iCAN协议(IndustrialCANprotocol)为基于现场总线CAN-bus的应用层协议。iCAN协议为工业控制应用领域提供了一种简单可靠,易于开发的总线系统。CAN应用协议数据通讯模型•生产消费模型CAN报文的传输采用所谓的“生产者-消费者”模型,设备在没有被请求的情况下,将数据(例如以多点传送或广播报文的形式)提供给其它设备。这样一种通信服务就是所谓的“生产者-消费者”模型。生产者通过服务指示向其它设备提供服务,而这些设备可以接受(消费)或忽略服务。通常生产者通常并不认识消费者。CAN应用协议数据通讯模型•命令/响应模型在基于命令/响应模式的CAN网络中,由主控设备发送命令帧,受控设备接收到命令帧以后向主控设备发送响应帧,从而实现数据交换,这种模式属于一种对服务进行确认的数据传输方式,可靠性好,但效率和总线利用率低,一般用于配置与关键信息的发送。iCAN协议结构iCAN系统特点代替DCS、PLC系统中的昂贵电线使用数字信号替换模拟信号传输方式,提供了系统的抗干扰能力快速,数据传输波特率可达1Mbps有广泛的产品:主站、I/O、协议接口芯片等支持轮询和事件触发传输方式,保证数据传输可靠性和实时性网络容量达253个节点支持热插拔,安装拆除设备无需断开网络支持单主和多主结构对所有设备只需一个工具典型的iCAN系统CAN-bus5k~1Mbps一个典型的iCAN系统包括:•一个PC或工控机作为中央控制器•各种外围设备,如:•数字或模拟I/O•交流、直流驱动器•电磁阀•……iCAN协议基础•iCAN协议的设计要素:–CAN报文的分配:规定CAN报文中标识符以及数据部分使用的规则,标识符以及数据部分具体意义;–数据通讯的实现:规定了网络中报文数据传输的规则;–网络管理:对于网络中设备的控制以及运行状态的监控;–设备建模和设备子协议DeviceProfile的原则:网络中标准设备的描述规则。iCAN协议基础•iCAN协议规范由四部分组成:–iCAN报文格式定义•规定了iCAN协议中使用的CAN帧类型、以及帧ID、报文数据的使用等–报文传输协议•规定了基于iCAN协议的设备之间的通讯方式–网络管理•规定了设备通讯监控以及错误管理–设备的定义•设备标识•设备应用单元•设备通讯以及应用参数•定义标准设备类型,区分网络上设备具有的不同功能或者产品类型iCAN报文的格式iCAN协议报文格式源节点:发送该报文的节点地址目标节点:接收该报文的节点地址应答位:指示接收节点在收到该报文后是否产生应答(命令帧ACK为0,需要应答)功能码:指示该报文完成的功能,如读、写设备资源等资源节点:指定需要访问的设备内部IO资源的地址分段码:分段传输标识符参数、数据:功能码的参数或数据功能码资源节点iCAN协议设备定义RAM结构设备模型(字节寻址)资源子节点分段码iCAN网络相关术语•主站(主控节点、主控设备、主站):基于iCAN协议网络中的管理设备,负责管理整个网络中的通讯,可以为PC或者嵌入式设备。•从站(受控节点、受控设备、从站):基于iCAN协议网络中的I/O设备单元,主站建立与从站的数据通讯,从从站获取输入数据,并向它分配输出数据。•节点:iCAN网络中主站和从站。•资源节点:指设备中特定的应用单元,如I/O端口。•资源子节点:指设备中特定配置单元中的子单元,如配置资源。•MACID:MediaAcessControlID,媒体访问控制标识。iCAN网络中节点的唯一标识。•数据高位在前(左)的模式,比如16位数值0x55AA,在CAN帧中排列为Byte1:0x55,Byte2:0xAA,这个与CANopen和JA1939不同iCAN协议设备寻址iCAN协议使用面向节点地址寻址的通讯方式iCAN网络中的任何设备都具有唯一的节点地址(MACID),通过在iCAN报文中指定源节点地址(发送报文的节点地址)和目的节点地址(接收报文的节点地址)来确定iCAN报文的发送方和接收方。iCAN协议报文传输协议基于连接的通讯方式主站和从站在交换数据前,需要先建立连接连接例子连接例子关于连接的定时循环事件•CyclicMaster的单位为10ms,当CyclicMaster0时,(CyclicMaster*4)时间为从站判断主站发送通讯报文的是否超时的时间间隔,在通讯过程中,如果从站在(CyclicMaster*4)时间内未收到主站的命令报文,将自动删除连接,退出通讯。•当CyclicMaster为0时,从站不检测通讯超时,直到收到正确的“删除连接”命令帧时,才删除与主站的连接。iCAN协议通讯模式主从通讯模式主从通讯模式即命令/响应通讯方式。通讯由网络中的主站发起,接收到命令帧的从站返回响应帧。iCAN采用异步的主从方式,即无需等待上次命令的应答,即可继续进行后面的命令。主从通讯例子——连续写资源节点主从通讯例子——连续写资源子节点主从通讯例子——连续写端口错误响应iCAN协议通讯模式事件触发通讯模式事件触发通讯模式用于从站主动向主站发送数据,支持定时循环发送和状态改变发送两种传送模式。事件触发例子事件触发通讯模式要先配置好从站的事件触发模式,和相应参数,然后在连接的情况下才能进行通信,开启事件触发后,也可以支持主从通讯。使用iCANtest配置的事件触发iCAN协议报文传输协议iCAN协议报文处理流程等待报文验证MACID验证功能码验证数据或者资源执行功能正常响应接收到报文有效有效有效执行无效非法异常响应错误代码0x01或者0x03非法错误代码0x02或者0x04非法错误代码0x02或者0x03或者0x04是否连接有效没有错误代码0x05iCAN协议网络管理iCAN网络管理包括以下两部分:节点控制:这些服务用于控制想要参与分布式应用的节点的初始化。iCAN网络访问状态机制规定了节点在网络中启动时的必须执行的状态图,详细规定了节点各状态之间切换的规则。通讯控制:这些服务能对节点通信状态进行连续的监控。在iCAN协议中,对于每个通讯均进行了监控,保证在通讯异常时,通过适当的方式能够恢复通讯。iCAN协议网络管理节点控制节点控制定义了iCAN设备在加入网络时必须执行的初始化过程iCAN协议网络管理通讯控制使用连接定时器保证通讯的正常可靠,iCAN设备在建立连接时启动连接定时器,在以后的过程中,收到合法的iCAN报文后复位连接定时器,在通讯过程中,连接定时器溢出表示通讯异常。主站从站从站从站•iCAN系统由一个主站和多个从站组成,所有节点数不超过253个系统组成•使用双绞线作为传输介质,总线型拓扑结构•节点通过支线连接到干线•干线两端安装120欧终端电阻主站从站从站从站网络拓扑结构•网络中每个节点有一个唯一的地址MACID=0MACID=1MACID=2MACID=3主站从站从站从站设备寻址•通过在iCAN报文指定源地址和目的地址确定报文的发送节点和接收节点MACID=0MACID=1MACID=2MACID=3iCAN报文源地址:0目的地址:1主站从站从站从站设备寻址从站•从站组成部分:CAN-bus接口、资源节点、功能单元从站模型•CAN-bus接口:实现设备与CAN-bus网络的数据交换从站从站模型•功能单元:实现具体的设备功能从站从站模型•资源节点:与主站交换数据的缓冲区从站从站模型•通过在iCAN报文中指定资源节点地址访问从站特定功能单元MACID=0MACID=1MACID=2MACID=3iCAN报文源地址:0目的地址:3资源节点地址主站从站从站从站从站内部资源寻址•主站和从站之间通过命令/响应的方式交换数据MACID=0MACID=1MACID=2MACID=3命令应答主站从站从站从站通信方式•支持从站主动向主站发送数据,提高了实时性MACID=0MACID=1MACID=2MACID=3触发传送报文主站从站从站从站通信方式小结iCAN系统由1个主站和多个从站组,最多253个节点;iCAN系统节点之间是通过双绞线连接的总线型拓扑结构;节点通过支线连接到干线,干线的两端必须安装120欧终端电阻;iCAN网络中每个节点有一个唯一的地址;每个从站使用资源节点作为与主站交换数据的缓冲区;主站通过从站节点的地址寻找指定的从站设备;主站通过资源节点地址访问从站的相关功能单元;主站和从站之间通过命、应答的方式交换数据,也支持从站主动向主站发送数据。iCAN系统控制函数iCAN网络函数iCAN网络从站控制函数微博与微信关注微信号“zlg_can”,一对一解决您的CAN问题关注新浪微博“CAN总线医生黄敏思”,分享问题,共同讨论排查解决问题谢谢!