12第十二章 CAN-bus应用层协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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