您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 12第十二章CAN-bus应用层协议全解
共52页1第十二章CAN-bus应用层协议12.1CAN-bus应用层协议简介12.2常用的CAN-bus应用层协议介绍12.3如何购建CAN-bus应用层协议12.4基于CAN-bus的iCAN协议共52页212.1CAN-bus应用层协议简介一、基于CAN-bus的通信模型1、CAN-bus现场总线的应用特点①用CAN-bus构造的网络功能并不复杂;②网络节点多为传感器、控制器、执行器等;③网络传输的数据量不大;④要求较高的实时性和可靠性。CAN-bus协议参考模型仅仅包含网络通信参考模型的物理层和数据链路层方面的协议,其本身只能保证节点之间数据的及时和可靠地传输。但是各个节点之间的关系和功能则没有定义,只能由应用确定。为了同类应用开发的控制产品具有开放性和可互换性,必须根据应用特点,构造CAN-bus通信的参考模型。2、基于CAN-bus通信的参考模型共52页3根据CAN-bus总线的应用特点,CAN-bus通信参考模型一般把OSI模型中的其它层有关功能协议全部放在一层定义,这一层一般把它统称为应用层,有些协议的通信模型又把它进一步分为应用层和用户层,如图12-1所示。总线协议由专用芯片完成协议定义好后一般由软件完成共52页43、应用层协议及其主要功能网络控制与管理;大于8个字节的数据块传输;数据发送的确认;不同的物理节点的编址;帧报文内容及其含义的定义;网络节点的监控,节点故障的诊断和标识;二、常用CAN-bus应用层协议介绍1、常用的CAN-bus高层协议应用层协议就是定义了如何实现应用层功能,满足信息传递要求的具体规范。基于CAN-bus的应用层协议其主要功能为:DeviceNet协议制定组织:ODVA;CAL协议制定组织:CiA;CANOpen协议制定组织:CiA;CANKingdom协议制定组织:Kvaser;SDS协议制定组织:Honeywell;J1939协议制定组织:SAE共52页52、CAN-bus标准应用层协议的特点一个开放的、标准化的CAN-bus高层协议;制定属于特定行业的CAN-bus应用方案;支持不同厂商设备的互用性、可交换性;完善地定义标准设备模型;开放扩充自定义设备的接口;对总线仲裁、数据交换、错误处理有明确的限定。参考资料或网站:共52页612.3如何购建CAN-bus应用层协议一、CAN报文的分配1.报文ID的分配CAN报文标识ID决定了报文相关的优先权和报文的等待时间,报文标识符分配的方法被认为是基于CAN-bus系统的主要结构元素。在一个网络中,通常只选取一种报文类型,一般情况下,扩展帧ID可以容纳较多的数据和信息。2.CAN报文数据的分配CAN报文为短帧报文,最多可以传送8个数据字节。在协议中的报文数据部分主要用于传送与功能码相关的参数,以及特定的功能数据。由于在实际应用中需要传送大于8个字节的数据,因此对于报文数据部分的分配需要考虑分段传送的方法。另外,在报文数据部分时要充分利用报文数据区的8字节长度,合理分配特殊的功能码和有效数据,尽量在每帧报文中携带尽可能多的有效数据。共52页73.报文格式的定义应用层协议的报文格式的定义,实质是对CAN报文的分配规则进行详细地描述,即CAN报文的ID和Data定义。二、CAN上层网络数据通信的实现1.数据通信模型(数据交换规则)可用命令/响应模型以及生产者和消费者或事件触发模型,如图12-2、12-3所示。共52页82、数据通信协议(数据交换的基础,规定报文识别和接收的规则)①面向节点的协议在这种协议中,两个或更多节点之间的数据交换是基于对节点寻址实现的。媒介中传输的报文包含目的节点地址,有时也包含源节点地址。另外,有些节点地址具有成组和广播功能。这种协议是连接定位和确认数据通信的基础。显然,这种协议要求所有节点都要有地址。②面向报文的协议面向报文协议的数据传输是建立在帧或报文标识符的基础之上的。报文通过节点标识符进行传输,而报文本身带有一个唯一的特定标识符(报文标识符)。报文的目的地并不根据标识符进行定义,而是单独由节点来决定是否接收传输的报文。这样一个报文就可能不会被任何节点接收,或者被一个或多个节点所接收。CAN-bus本身具有这个功能,它的上层协议也可以使用这种方法实现数据传输。共52页9三、CAN网络管理网络管理的主要任务是检测和显示网络的中各节点通信状态,通过协调服务方式控制网络上节点的工作状态。一旦网络通信出现异常,应该能采用适当的方式恢复通信。一般网络管理可以包括以下两部分:1.节点控制初始化参加分布控制的节点,迫使这些节点处于同步工作状态。2.错误控制在应用层协议中通过规定节点在网络中启动时必须执行的状态图,详细规定各节点的状态切换的规则,通过特定的报文对节点状态进行控制。同时在协议中,采用具体措施对每个节点的通信均进行监控,保证在通信异常时,通过适当的方式能够恢复通信。共52页10四、CAN网络设备建模在网络中除了定义通信以外,还要求对网络中相似设备的功能类型进行定义,以满足对设备的可交换性的需求。除了设备的功能性描述外,设备模型还必须提供关于设备的版本号、状态、诊断信息、通信和配置参数的描述。1、设备建模内容2、设备建模原则①设备类型特点的统一描述,即设备基本框架描述的方法,包括设备功能及标识的描述等;②设备必备功能,即特定设备必须具有的功能;③设备可选功能,即设备除必备功能以外,可选的功能;④扩展性的考虑,即对设备功能可扩展性的考虑。共52页1112.4基于CAN-bus的iCAN协议一、iCAN协议的通信参考模型iCAN应用协议详细地定义了CAN报文中ID以及数据的分配和应用,并定义了设备的IO资源和访问规则,iCAN协议参考模型如图12-4所示。共52页12二、iCAN的报文格式iCAN协议报文格式定义了iCAN报文的标识符以及数据部分使用原则和功能含义,见表12-1和12-2。共52页131、iCAN报文标识符的分配(1)节点编号在通信报文的标识符中指定了发送节点(源节点SrcMACID)和接收节点(目标节点DestMACID)的编号。源节点和目标节点各有8个ID位,但是它们的最高两位必须为0,取值范围为00~3F。另外,源地址0xFF是保留地址,不用;目标地址0xFF是广播地址。(2)ACK(C/R)ACK是应用帧类型标志位,占用CAN的ID的1位,为0的应用帧是命令帧,必须响应,假如是广播帧,则无意思;为1的应用帧是响应帧。共52页14(3)FUNCIDFUNCID(功能码)占用CAN的ID的4位,用于指示报文所需要实现的功能,接收报文的节点根据报文中的功能码进行相应的处理,功能码的含义见表12-3。共52页15(4)SourceIDSourceID(资源节点地址编号)占用CAN的ID的8位,用于表示节点内部的单元。接收报文的节点根据报文中资源地址标号对设备内部对应的单元进行操作,节点内的资源单元一般只有256个。2.iCAN帧数据部分定义在iCAN协议中报文的数据部分主要用于传送与功能码相关的参数。帧的数据区,最多可以有8个字节数据;不同位置的字节具有不同的功能,可以分为2个部分,见表12-4。共52页16(1)CAN帧数据第一个字节Byte0(SegFlag)分段代码(SegFlag)占用CAN数据帧的第一个字节Byte0,用于传输大于7个字节长度的数据,其具体含义见表12-5。SegPolo表示分段标志,占用SegFlag的最高2位;SegNum表示分段编号,占用SegFlag的最低6位,见表12-6。共52页17当传送的数据长度不越过7个字节时,帧数据部分中SegFlag=0x00。当报文分帧传送时,接收节点(目标节点)只在接收完报文全体的最后1帧后才做出响应。采用分段传输时,分段传送的最大报文长度为64×7=448个字节。共52页18(2)Dyte1~7报文数据中的字节Bytel~7通常作为功能码的参数,在某些特定的帧中,数据字节Byte1可以具有以下功能:LengthFlag在“读端口”命令中出现,表示需要读出的字节数;ErrID(错误响应码)在错误响应报文中使用,用于说明错误响应的类型(见表12-7);二、iCAN的报文传输协议1、iCAN协议通信模式(1)主从通信模式点对点方式是主站与一个从站设备进行通信;广播方式是主站发送请求给所有的从站;在iCAN网络中,主从通信模式用于主站设备对从站设备的配置、管理等数据的传送,也可以用于向从站设备请求或者分配IO数据。共52页19(2)事件触发通信模式在iCAN协议中也采用事件触发通信模式。在该模式下,从共52页20站设备可以定时循环向主站发送I/O数据,或者在特定状态下向主站上传I/0数据。但是,iCAN网络中的设备不能够同时支持这两种传送模式。2、iCAN协议报文处理流程当从站应答主站时,功能码域表明是一个正常的回应还是异常回应(有错误产生)。正常回应时,从站返回原样的功能码;异常回应的时候,功能码为异常功能码(0X0F),同时在响应报文中返回异常代码。共52页21共52页223.iCAN报文传输协议(1)iCAN帧格式“命令帧”格式:“正常响应帧”格式:共52页23“出错响应帧”格式:错误类型代码见表12-7。(2)iCAN分段帧格式如果采用分段传输,则第1分段的SegFlag=0x40,最后一个分段的SegFlag=0xC0的值。当报文分帧传送时,接收节点(目标节点)只在接收完报文全体的最后1帧后才做出响应。4、iCAN报文传输的一般规则在iCAN通信协议中报文传输遵从“命令/响应”的模式,如图12-12。共52页24(1)MACID检测帧MACID检测帧是指命令帧中功能码(FuncID)为0x07的报文。该报文由任何的从站设备在上电初始化完毕后向网络上发送,任何从站设备都可以检测并决定是否响应,见图12-13。(2)广播帧广播帧是指命令帧中目的地址(DestMACID)0XFF的报文。对于广播帧,从站设备不需应答,见图12-14。共52页25(3)事件触发帧事件触发帧是由从站设备主动上传的报文,由连接该从站设备的主站设备处理,如图12-15所示。5.iCAN分段报文传输协议在传送大干7个字节长度的数据时,需要采用分段传送报文的方法。当命令报文分帧传送时,接收节点(目标节点)在接收完所有的分帧报文后才向主站设备回送响应报文,见图12-16和12-17。对于分段传送的节点,当分段报文全部发送完毕后才进入下一个连接定时监控周期;对于分段接收的节点,当处于分段报文传送的过程中时,每接收一个分段报文,即进入下一个连接定时监控周期。分段报文的传送规则见表12-8,分段报文的接受规则见表12-9。共52页26共52页27共52页28对于分段报文的接收需要根据分段标志和分段计数将接收到的有效分段报文解析为完整的通信数据并进行处理。分段标志和分段计数值必须吻合,如对于起始分段的分段计数值必须为0x00。分段接收过程可能会被其他报文打断。如果在接收分段报文中接收到其他节点的报文,则分段报文的接收过程并不受到影响,直到将完整的分段报文接收完毕;如果在接收分段报文的过程中接收到启动该分段传送节点传来的非分段报文,则分段接收过程终让,转为处理新的报文。6.iCAN通信帧格式解析(1)连续写端口”命令①命令帧格式共52页29在“连续写端口”命令帧中,报文数据长度至少为2个字节,第一个字节表示分段码标识,第二个字节开始为所要写入的数据;当所要写入的数据超过7个字节时,则要采用分段传输。使用连续写端口命令时,最多允许修改32个单元的数据。②响应帧格式正常响应帧格式:从站判断接收到的命令帧是合法的,且正确处理完毕,则返回正常响应。错误响应帧格式:从站接收到“连续写端口”命令后,判断该命令帧非法,则返回错误响应帧,该响应帧中的ErrID用于说明错误类型。共52页30示例1示例2共52页31(2)“连续读端口”命令①命令帧格式“连续读端口”命令帧中报文数据
本文标题:12第十二章CAN-bus应用层协议全解
链接地址:https://www.777doc.com/doc-6058120 .html