CANopen-学习总结-主要知识点(原创)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

现场总线CANopen学习总结笔记通过对《现场总线CANopen设计与应用》的学习,总结了一些学习CANopen的知识要点,希望能够对CANopen初学者有所帮助。首先让我介绍一下这本书,原名为德语《CANopen----dasstandardisierte,eingebtteteNetzwerk》,中文是《现场总线CANopen设计与应用》。作者,HolgerZeltwanger,是CAN总线技术专家,兼任ISO国际标准化组织CAN标准工作组主席,组织领导发布了ISO11898系列标准,是CAN工业的奠基人,1992年创立了CiA组织(CANinAutomation)并担任主席至现在。本书的内容简介介绍作为工业现场总线协议重要成员之一的CANopen协议和基本原理、规则及相关背景,重点介绍CANopen协议的工作机制,力求向读者展现CANopen协议的概貌,使读者能够理解为什么CANopen需要制定如此的工作流程。全书分为4个部分:第一部分由第1~3章组成,主要介绍通信的基本通信以及CANopen协议物理层和链路层的基本特性(CAN总线)。第二部分由第4~5章组成,主要介绍CANopen的基本核心工作机制和CANopen主站设备的特点。第三部分由第6~8章组成,主要介绍CANopen应用中的设备子协议规范。第四部分,主要介绍CANopen协议的应用及调试的方法和工具。很荣幸,我手上看的这本书是Holger亲笔签名的书,读起来的感觉就是不一样。哈哈。闲话少说,直入主题。因为我也算是学习CANopen的小白,主要采用总结归纳知识点的方式来读。以下就是总结了CANopen的主要知识点和一些自己的理解。书看一遍,刚入味,各种不懂;再看一遍,重新理解之前不明白的,整合知识点,将其联系起来。首先我觉得还是先看一下CAN总线,了解什么叫CAN,即CAN总线的基本定义、基本原理、CAN协议等等,从而了解得知CAN协议主要是针对物理层与数据链路层的协议规范。其中比较重要的知识点有:CAN总线上的电平;CAN控制器;CAN报文的格式、其中数据帧重点熟悉;CAN总线错误检测等。然后,再进入《现场总线CANopen设计与应用》的学习。第一章,了解通信层模型、兼容性等级、以及对象的描述和定义。兼容性等级包括:不兼容、相容、共存、匹配、合作、兼容、可互换。兼容级别逐渐升高,可互换为最高级。为了达到各种不同的兼容性等级,所有的过程数据、配置参数的诊断信息都必须用同一个对象模型来描述,CANopen规范用通过3套属性来描述一个对象:1.对象描述---包括对象名称及其唯一的标识符(索引)2.入口描述---可以为数组和记录(子索引)3.值定义描述---详细规定了对象的含义其中对象的描述与定义中的入口描述里新的理解点是:如果入口描述为变量,其子索引总是00h,数组和记录的子索引00h的数据类型通常为UNSIGNED8,并且是最高子索引。第二章物理层主要有位定时和位填充、高速收发器、网络拓扑结构、连接器。CANopen的物理层相当于CAN控制器中采用的子层PLS(物理信号)、MAU(介质访问单元)和MDI(介质专用接口),这些子层均位于驱动模块中并通过连接器和电缆实现。位定时其实就是针对各种不同的数据传输速率设定的采样点。分为4个部分:同步段、传播段、相位段1和相位段2。而位定时的采样点恰好介于相位段1和2之间。位填充可以表示为5个相同极性的位后面插入一个不同极性的填充位,而根据第3章里报文格式中得知,位填充只适合对帧起始SOF到CRC场之间的范围内的数据进行处理。填充位可以由接收CAN控制器自动去除填充,因此CAN报文物理层上的长度取决于待传输的位格式。收发器芯片具有一个Rx引脚和一个Tx引脚,这些引脚可直接将二进制信号输入到CAN控制器中或微控制器中的CAN模块,CAN_HCAN_L端口直接与两条总线导线连接。另外用户可以利用一个外部电阻,通过一个可选端口来改变脉冲沿斜率。网络拓扑结构ISO11898-2标准规定了一种带2个终端电阻的线性总线结构,在总线两端接上终端电阻可以避免导线上的信号反射。注意终端电阻的使用,总线导线的长度和类别选择。连接器采用9针D-Sub连接器的引脚分布。第三章主要有报文格式和错误的检测、限制和处理。3.1报文格式CAN规范定义,隐性电平的逻辑为1,显性电平逻辑为0.有一个助记的是:显灵(显零),记住一个,另一个当然知道是隐1了。CAN总线上传输的帧有4个类型:数据帧、远程帧、错误帧、超载帧。标准格式的数据帧组成:帧起始(SOF):指示一个数据帧和远程帧的开始,包含一个确定的显性位。标识符场(CAN-ID):标识符场由11位组成,用于表示确定的待传输消息,数值作侍传输消息的优先级。远程传输请求位(RTR):用于区分数据帧还是远程帧。当为显性时传输数据帧,隐性为远程帧。控制段:由6位组成,其中有4位DLC(数据长度代码)。DLC表示此帧在数据段中的传输字节数。数据段:0~8字节,包含此帧传输的实际有效信息。CRC段:循环冗余校验。用来识别是否接收错误的数据。应答段:应答间隙位的电平值可以用来提示本网络中没有接收器正确收到了当前发送的消息。帧结束:由7位隐性电平的位组成。帧间空间(ITM)已经不属于前一条帧的组成单元。错误帧:主动错误标志由6个连续显性电平的位组成,这违反了CAN填充规则,所以网络中所有的设备都可以识别出这种错误标志。由主动错误标志转为被动错误标志。错误界定符由8个隐性电平位组成,用于结束错误帧。过载帧:通常由尚未处理完上一帧消息的CAN控制器发出,可以用于延迟网络中其他设备发送下一条消息。过载标志由6个连续显性电平位组成,且必须在帧空间ITM的前两个位之内开始。过载界定符由8个隐性电平组成,用于结束过载帧。过载帧不会影响错误计数器的读数,这接收错误计数器REC在发送过载标志检测到的位错误REC不加1的原因吧。CAN位信息的传输使用不归零编码(NRZ)的方式。NRZ:信号电平的一次反转代表1,电平不变化表示0,并且在表示完一个码元后,电压不需回到0.好处是在一个位时间间隔里,只需要进行一次扫描就可以检测到电平。缺点是当出现一些极性相同的连续位时,没有可用的信号边沿来同步接收器。CAN总线仲裁与填充原理需要注意。3.2错误的检测、限制和处理有5种检测机制检测错误:位错误填充规则错误CRC错误应答错误格式错误所有CAN协议控制器都内置两个错误计数器,一个接收错误计数器REC,一个是发送错误计数器TEC。错误计数器的值大于127小于255时,设备进入被动错误状态;当错误计数器的值小于127时,设备处于主动错误状态;当错误计数器大于255时,设备进入总线脱离(BusOff)状态。错误计数器的增减规定有8个。如果某一过载帧中检测出错误,刚只有处于错误主动状态的设备才能允许发送一个错误标志。第四章,应用层,为重点章。主要包含知识点基本原理、通信对象、对象字典、网络管理系统、CAN标识符分配、节点ID分配。4.1基本原理为了便于统一观察CANopen设备,我们引入一种基本的设备模型,其包含:通信单元、应用过程、对象字典。通信单元由CAN收发器、CAN控制器和CANopen协议栈组成,协议栈中包括通信对象(PDO和SDO)和状态机。对象字典是应用单元与通信单元之间的接口,实际上是设备的所有参数列表。CANopen协议中定义了3种不同类型的通信关系:分别为主机-从机模型、客户端-服务端模型以及生产者-消费者模型。主机-从机模型仅用于网络管理(NMT),每组主机-从机模型都需要一个CAN标识符。客户端-服务器描述的是两个设备之间的通信关系。需要两个CAN标识符,只用于SDO通信。生产者-消费者模型描述一个生产者和一个或多个消费者的一对多通信关系,只需要一个CAN标识符。4.2通信对象CANopen应用层详细描述了各种不同类型的通信对象(COB),分4种类型:过程数据对象(PDO)服务数据对象(SDO)预定义对象网络管理对象过程数据对象(PDO):1.通信参数通信参数用来描述PDO特性。通信参数按照定义好的地址保存在设备对象,用户可以通过服务数据对象对通信参数进行访问。通信参数记录有5个可用的子条目:COB标识符、传输类型、禁止时间、事件计数器和同步初始值。前两项为必选。2.PDO的CAN标识符COB标识符(COB-ID)位于通信参数的子索引01h上,COB标识符是一个32位值,0~10位是CAN标准帧标识符。只有在预操作状态下才能对PDO的COB标识符进行访问。3.PDO链路如果使用生产者-消费者模型在不可编程的NMT从机之间直接进行数据交换,用户还必须为这些从机配置适当的CAN标识符,使生产者的CAN标识符和消费者的CAN标识符一致,这种方法叫做PDO链路。4.PDO的通信类型PDO的通信类型有事件驱动、远程请求或轮询、同步传输。事件驱动是当输入值发生改变的时候,数据立即被发送出去。PDO通信参数索引02h为PDO传输类型,其定义了触发TPDO传输或处理收到的RPDO的方法。传输类型有0,1~240,241~251,252,253,254、255。书中的表4.2PDO传输类型“×”表示选中的类型,而并非是不支持的意思。5.禁止时间和事件计时器禁止时间(子索引03h)的功能相当于PDO发送过滤器,在PDO输入数据第一次变化时,无等待地直接发送该PDO数据,之后PDO输入数据再发生变化时就不会立即触发PDO发送。禁止时间可以避免PDO占用全部总线带宽,从而妨碍发送最低优先级的PDO。子索引(05h)为异步PDO传输设置一个事件计时器。子索引06h(同步初始值)定义了同步计数器的初始值,在传输同步信息时,同步计数器不断递增以进行同步。6.PDO通信的优化在优化中具有决定性意义的是保留足够的总线带宽可供其他功能使用。需要注意PDO通信的优缺点,总线负载,“浪涌”的概念,其中总线负载是指多个循环范围内的CAN总线占有率的平均值。另外,还有一个相当重要的PDO通信参数---PDO映射参数。PDO映射参数包含指向PDO需要发送的过程数据的指针(利用索引和子索引表示)。那么说明索引与子索引的组合就是一个指针,应该可以这样理解。PDO映射参数的子索引00h表示的是映射对象的数量。所有映射过程参数的最大长度都不能超过8字节,分为静态PDO映射、可变PDO映射、动态PDO映射。其中静态PDO无法修改,可变PDO可以修改,不过要遵守修改方法。而动态PDO映射是指设备处于操作状态时,对其进行PDO配置。7.复用PDOMPDO融合了PDO和SDO的主要特性,其指定了地址(索引和子索引)的过程数据将通过一个独有的CAN消息以高速广播的方式传播。(11.28)其中有两个寻址方式,一个是源模式寻址,一个是目标模式寻址。主要应用领域一是通过传输过程数据地址实现传输任意数量的数据,无需设置PDO。二是群发消息。优点:MPDO映射记录子索引值为255,而普通PDO在0~64之间。缺点:需要更多的带宽。总结:PDO是用来传输实时数据。4.2.2服务数据对象SDOCANopen设备为用户提供了一种访问内部设备数据的标准途径,设备由一种固定的结构(对象字典)管理。对象字典的条目可以通过服务数据对象(SDO)来访问,由此需要成对的SDO服务器和客户端。SDO之间的数据交换通常都是由SDO客户端发起的,这好比是对象字典是在一间房子里面的管家,SDO服务器是门禁系统,SDO客户端是邮递员,当有邮递员来的时候,会发起门铃以告诉门禁要来送信(数据)。SDO之间交换至少需要两个CAN报文才能实现,而且两个CAN报文的CAN标识符不能一样。一个CAN标识符为节点地址(有服务器的设备)+1536(600h)的CAN报文用于确定的协议信息。一个CAN标识符为节点地址(有服务器的设备)+1408(580h)的CAN报文来应答。SDO传输有三个类型:加速SDO传输、分段SDO传输、块传输。加速SDO传输适用于:传输数据不超过4字节,所以整个传输过程只需要2条CAN报文。传输效率为0.062

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功