《现场总线canopen学习笔记一》由会员分享,可在线阅读,更多相关《现场总线canopen学习笔记一(8页珍藏版)》请在金锄头文库上搜索。
1、 广州虹科电子科技有限公司现场总线 CANopen 学习笔记一通过对现场总线 CANopen 设计与应用的学习,总结了一些学习CANopen 的知识要点,希望能够对 CANopen 初学者有所帮助。首先让我介绍一下这本书,原名为德语CANopen-das standardisierte , eingebttete Netzwerk,中文是现场总线 CANopen 设计与应用 。作者,Holger Zeltwanger ,是 CAN 总线技术专家,兼任 ISO 国际标准化组织CAN 标准工作组主席,组织领导发布了 ISO11898 系列标准,是 CAN 工业的奠基人,1992 年创立了 CiA
2、组织(CAN in Automation)并担任主席至现在。本书的内容简介:介绍作为工业现场总线协议重要成员之一的 CANopen 协议和基本原理、规则及相关背景,重点介绍 CANopen 协议的工作机制,力求向读者展现 CANopen 协议的概貌,使读者能够理解为什么 CANopen 需要制定如此的工作流程。全书分为 4 个部分:第一部分由第 13 章组成,主要介绍通信的基本通信以及 CANopen 协议物理层和链路层的基本特性(CAN 总线) 。第二部分由第 45 章组成,主要介绍 CANopen 的基本核心工作机制和CANopen 主站设备的特点。第三部分由第 68 章组成,主要介绍 C
3、ANopen 应用中的设备子协议规范。第四部分主要介绍 CANopen 协议的应用及调试的方法和工具。很荣幸,我手上看的这本书是 Holger 亲笔签名的书,读起来的感觉就是不一 广州虹科电子科技有限公司样。哈哈。闲话少说,直入主题。因为我也算是学习 CANopen 的小白,主要采用总结归纳知识点的方式来读。以下就是总结了 CANopen 的主要知识点和一些自己的理解。书看一遍,刚入味,各种不懂;再看一遍,重新理解之前不明白的,整合知识点,将其联系起来。首先我觉得还是先看一下 CAN 总线,了解什么叫 CAN ,即 CAN 总线的基本定义、基本原理、CAN 协议等等,从而了解得知 CAN 协议
4、主要是针对物理层与数据链路层的协议规范。其中比较重要的知识点有:1.CAN 总线上的电平;2.CAN 控制器;3.CAN 报文的格式、其中 数据帧重点熟悉; 4.CAN 总线错误检测等。然后,再进入现场总线 CANopen 设计与应用 的学习。第一章,了解通信层模型、兼容性等级、以及对象的描述和定义。兼容性等级包括:不兼容、相容、共存、匹配、合作、兼容、可互换。兼容级别逐渐升高,可互换为最高级。为了达到各种不同的兼容性等级,所有的过程数据、配置参数的诊断信息都必须用同一个对象模型来描述,CANopen 规范用通过 3 套属性来描述一个对象:1.对象描述-包括对象名称及其唯一的标识符(索引)2.
5、入口描述-可以为数组和记录(子索引)3.值定义描述-详细规定了对象的含义其中对象的描述与定义中的入口描述里新的理解点是:如果入口描述为变量,其子索引总是 00h,数组和记录的子索引 00h 的数据类型通常为 UNSIGNED8, 并且是最高子索引。 广州虹科电子科技有限公司第二章,物理层主要有位定时和位填充、高速收发器、网络拓扑结构、连接器。CANopen 的物理层相当于 CAN 控制器中采用的子层 PLS(物理信号) 、MAU(介质访问单元)和 MDI(介质专用接口) ,这些子层均位于驱动模块中并通过连接器和电缆实现。主要知识点(1)位定时其实就是针对各种不同的数据传输速率设定的采样点。分为
6、 4 个部分:同步段、传播段、相位段 1 和相位段 2。而位定时的采样点恰好介于相位段 1 和 2 之间。(2)位填充可以表示为 5 个相同极性的位后面插入一个不同极性的填充位,而根据第 3 章里报文格式中得知,位填充只适合对帧起始 SOF 到 CRC 场之间的范围内的数据进行处理。填充位可以由接收 CAN 控制器自动去除填充,因此 CAN 报文物理层上的长度取决于待传输的位格式。(3)收发器芯片具有一个 Rx 引脚和一个 Tx 引脚,这些引脚可直接将二进制信号输入到 CAN 控制器中或微控制器中的 CAN 模块,CAN_H CAN_L 端口直接与两条总线导线连接。另外用户可以利用一个外部电阻
7、,通过一个可选端口来改变脉冲沿斜率。(4)网络拓扑结构 ISO11898-2 标准规定了一种带 2 个终端电阻的线性总线结构,在总线两端接上终端电阻可以避免导线上的信号反射。注意终端电阻的使用,总线导线的长度和类别选择。连接器采用 9 针 D-Sub 连接器的引脚分布。 广州虹科电子科技有限公司第三章,主要有报文格式 和 错误的检测、限制和处理。3.1 报文格式CAN 规范定义,隐性电平的逻辑为 1,显性电平逻辑为 0. 有一个助记的是:显灵(显零) ,记住一个,另一个当然知道是隐 1 了。CAN 总线上传输的帧有 4 个类型:数据帧、远程帧、错误帧、超载帧。标准格式的数据帧组成: -帧起始(
8、SOF):指示一个数据帧和远程帧的开始,包含一个确定的显性位。-标识符场(CAN-ID ):标识符场由 11 位组成,用于表示确定的待传输消息,数值作侍传输消息的优先级。-远程传输请求位(RTR):用于区分数据帧还是远程帧。当为显性时传输数据帧,隐性为远程帧。-控制段:由 6 位组成,其中有 4 位 DLC (数据长度代码) 。DLC 表示此帧在数据段中的传输字节数。-数据段:08 字节,包含此帧传输的实际有效信息。-CRC 段:循环冗余校验。用来识别是否接收错误的数据。-应答段:应答间隙位的电平值可以用来提示本网络中没有接收器正确收到了 广州虹科电子科技有限公司当前发送的消息。-帧结束: 由
9、 7 位隐性电平的位组成。帧间空间(ITM)已经不属于前一条帧的组成单元。远程帧建议不使用,就不再详细介绍。错误帧: 主动错误标志由 6 个连续显性电平的位组成,这违反了 CAN 填充规则,所以网络中所有的设备都可以识别出这种错误标志。由主动错误标志转为被动错误标志。错误界定符由 8 个隐性电平位组成,用于结束错误帧。过载帧:假如在错误界定符里出现位错误,就会发送一个过载帧。通常由尚未处理完上一帧消息的 CAN 控制器发出,可以用于延迟网络中其他设备发送下一条消息。过载标志由 6 个连续显性电平位组成,且必须在帧空间ITM 的前两个位之内开始。 过载界定符由 8 个隐性电平组成,用于结束过载帧
10、。 过载帧不会影响错误计数器的读数,这接收错误计数器 REC 在发送过载标志检测到的位错误 REC 不加 1 的原因吧。CAN 位信息的传输使用不归零编码(NRZ )的方式。 广州虹科电子科技有限公司NRZ:信号电平的一次反转代表 1,电平不变化表示 0,并且在表示完一个码元后,电压不需回到 0. 好处是 在一个位时间间隔里,只需要进行一次扫描就可以检测到电平。缺点是当出现一些极性相同的连续位时,没有可用的信号边沿来同步接收器。CAN 总线仲裁与填充原理需要注意。位填充机制:如上图可知,当在 SOF 到 CRC 段中,出现连续 5 个相同极性的位,就要后面插入一个相反的填充位,该填充位也可以再
11、还原时,被去掉。填充规则适合的范围3.2 错误的检测、限制和处理有 4 种检测机制检测错误:位错误:每个发送节点在发送的同时也对总线电平进行监听,如果所发送的值与监听到的值不同就会中断报文传输,产生位错误信息。 广州虹科电子科技有限公司CRC 错误:如果收到的 CRC 检验值与 CAN 芯片算出的校验值不一致时,认为是 CRC 错误,并将刚收到的报文作废。应答错误:如果发送器以隐性电平发送的应答间隙位没有被任何一个接收器的显性电平覆盖,发送设备就会中断传输,将已经发送的传输报文作废。并在下一个位中发送一个错误标志。格式错误:如果在 CRC 界定符、应答界定符或 EOF 字段的前 6 位中发现一个显性电平位,则丢弃该电平,并在下一个位中发送一个错误标志。 广州虹科电子科技有限公司所有 CAN 协议控制器都内置两个错误计数器,一个接收错误计数器 REC,一个是发送错误计数器 TEC。错误计数器的值大于 127 小于 255 时,设备进入被动错误状态;当错误计数器的值小于 127 时,设备处于主动错误状态;当错误计数器大于 255 时,设备进入总线脱离(BusOff)状态。错误计数器的增减规定有 8 个。如果某一过载帧中检测出错误,刚只有处于错误主动状态的设备才能允许发送一个错误标志。