CAN总线详细教程,精心编制,不可错过
- 格式:ppt
- 大小:6.19 MB
- 文档页数:120


广州致远电子有限公司
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 1 工业通讯-CAN bus通信产品 第6章 CAN总线应用层协议——CANopen 1.1 CANopen主站设备的实现 上文介绍了CANopen协议转换模块——XGate-COP10和基于该模块设计的I/O设备,本章节中将介绍CANopen网络中具有主站功能的设备如何开发。 尽管在CiA组织的CANopen规范中没有明确的定义主站设备和从站设备,但大家还是习惯把具有网络管理(NMT)能力的CANopen设备称之为CANopen主站设备。除此之外CANopen主站还应具有服务数据(SDO)客户端功能,这样CANopen主站能够控制以及访问网络中的所有CANopen从站。PCI-5010-P就是具有这些功能的CANopen主站板卡(PCI接口),下文将介绍如何基于该产品快速实现功能强大的CANopen主站设备。 1.1.1 CANopen网络的拓扑结构 一个CANopen网络中的主站设备管理着其它的从站设备,而且一个网络只允许有一个CANopen主站设备和最多127个从站设备存在。 图6.1所示为PCI-5010-P在CANopen网络中的典型应用形式。 1.1.2 PCI-5010-P CANopen主站卡简介 PCI-5010-P系列工业级CAN通信卡支持CANopen主站协议,支持CiA建议的标准波特率以及自定义波特率,并提供多个操作系统的设备驱动、工具软件等,能真正的满足客户的各种应用需求,为工业通信CANopen网络提供了可靠性、高效率的解决方案,在计算机中的硬件与软件结构如图6.2所示。 图6.2 PCI-5010-P在计算机中的硬件与软件结构 PCI-5010-P具有如下特性: 用PCI总线,兼容PCI 2.2规范; 图6.1 PCI-5010-P在CANopen网络中的结构 广州致远电子有限公司
广州致远电子有限公司 文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 1 工业通讯-CAN bus通信产品 第6章 CAN总线应用层协议——CANopen 1.1 CANopen主站设备及其应用 由于可靠性、实时性、低成本、抗干扰性、兼容能力等多个方面的优势,CAN-bus与其高层协议CANopen已成为了车辆数据通信系统的事实标准,并普遍应用于所有的可移动设施,例如船舶舰艇、客车火车、升降电梯、重载车辆、工程机械、运动系统、分布式控制网络等。几乎所有的通用 I/O 模块、驱动器、智能传感器、PLC、MMI设备的生产厂商都提供有支持CAN-bus 与CANopen标准的产品。只要符合 CANopen协议标准及其设备协议子集标准的系统,就可以在功能和接口上保证各厂商设备的互用性和可交换性。 1.1.1 CANopen网络特点 作为标准化应用,CANopen建立在设备对象描述的基础上,设备对象描述规定了基本的通信机制及相关参数。CANopen可通过总线对设备进行在线配置,与生产厂商无关联,支持网络设备的即插即用("Plug and Play")。 CANopen支持2类基本数据传输机制:PDO实现高实时性的过程数据交换,SDO实现低实时性的对象字典条目的访问。SDO也用于传输配置参数,或长数据域的传输。CANopen既规定了各种设备之间的通信标准,也定义了与其他通信网络的互连规范。 1.1.2 CANopen网络中的设备分类 在说明CANopen网络设备分类之前,我们有必要先了解其网络通信模型。CAN-bus支持 “生产者-消费者”通信模型,支持一个生产者和一个或多个消费者之间的通信关系。生产者提供服务,消费者接收则可以(消费)或忽略服务。需要注意,CANopen标准作为CAN-bus 的应用层协议之一,除了支持上述服务类型外,还支持“客户端-服务器”通信模型。客户端设备通常称为“CANopen主站”,而服务器端设备则称为“CANopen从站”。 针对各个不同的行业应用,CANopen标准制定了各种设备子协议,通常命名编号为DS-4xx,目前已有十多个设备子协议被各行业认可。例如:通用 I/O 模块(DS-401) 、马达驱动器(DS-402) 、闭环测控仪器(DS-404) 、可编程设备(DS-405) 、旋转与线性编码器 (DS-406) 、角度测量仪 (DS-410)、医疗器械 (DS-412)、升降控制器 (DS-417)、挤压设备(DS-420) 、市政车辆 (DS-422)等,同时还有数个行业的设备子协议规范正在制定之中。符合同一类设备子协议的产品都具有类似的设备资源描述与属性。 1.1.3 CANopen主站设备 CANopen标准定义了应用层、通信子协议以及各种应用规范。应用层提供服务,并定义通信对象。通信对象用于交换过程数据和服务数据,这些对象由它们的结构、传输类型和CAN标识符来定义。 DS-301规范除了对应用层、通信子协议进行了全面描述,还为特定的应用提供了扩展架构,定义了更多规则和特殊通信对象。例如,DS-301定义了网络管理对象(节点保护、寿命保护),并定义了使用这些对象的详细规则。DS-301是包含了通信接口、应用过程以及对象字典的CANopen设备的基本模型。通信接口用于将设备连接到网络,对象字典作为网络和应用过程之间的接口。 广州致远电子有限公司 文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 2 工业通讯-CAN bus通信产品 作为一个CANopen 主站设备,设备模型如图6.1所示。为了满足管理整个CANopen网络的从站设备,通常需要具备以下功能: 支持PDO、SDO发送与接收; 支持NMT网络管理; 支持PDO 通信类型并能够支持监控每一个PDO 目标; LSS 层设置功能:从站波特率设置、从站节点编号设置; 支持从站管理功能:类型与名称读取、对象字典读写; 紧急报文发送功能; 扩展CANopen标准指示灯功能。 目前有二种形式的主站,一种是可编程控制器(PLC)中的一个单元,它的内部集成了CANopen的主站功能,这个单元能连接到CANopen总线,同时因为它是PLC中的一个单元,它能与PLC的CPU交换数据,因此通过编写PLC程序对它所连接的CANopen从站进行管理和控制。 另一种是通过PC扩展一个CANopen主站通信卡,从而令PC具有管理CANopen通信网络的能力。推荐使用PCI 总线或USB 总线来扩展CANopen通信卡,比如广州致远电子股份有限公司的PCI-5010-P或USBCAN-E-P主站卡,如图6.2所示。使用它们不仅可以令PC成为一个CANopen网络的管理节点,还可以开发或测试CANopen网络、拓展连接其他网络。 PCI-5010-P 通信卡内嵌1路隔离CAN接口,常用于工控场合,通过PCI 总线连接工控PC机;USBCAN-E-P通信卡也带1路全隔离CAN接口,常用于便携测试领域,通过USB总线连接测试PC机。这两款设备的内嵌CAN接口都设计有增强隔离、ESD、EFT、EMI等多种保护措施,保障设备在干扰恶劣环境中的可靠通信。同时,配套各种CANopen支持软件,有CANopen函数库、编程示例、监控与测试软件、OPC服务器、协议分析等。 另外,作为通用的CANopen通信接口卡,这两款设备还具有硬件自动存储报文、通用CAN报文收发、总线参数诊断等增强功能,方便进行复杂网络的二次开发。 1.1.4 测试CANopen网络与设备 PC运行一个CANopen测试软件,通过致远电子的PCI-5010-P或USBCAN-E-P通信卡, 图6.1 CANopen设备模型 图6.2 推荐的CANopen主站通信卡 广州致远电子有限公司 文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 3 工业通讯-CAN bus通信产品 可对CANopen从站设备进行测试、调试。软件包括载入 EDS 文件、管理从站、CANopen服务、接收/发送报文测试等功能。 通过CANopen测试软件导入一个 CANopen从站设备的 EDS 文件后,可直接以SDO方式读写设备属性,或与该从站设备执行PDO通信测试,配置或管理从站的I/O数据。 图6.3为CANopen测试软件的运行简图。 图6.3 CANopen 测试软件 1.1.5 CANopen网络报文 工程师设计一个支持CANopen协议的设备时,往往会碰到这样的问题:为什么设备收不到其他网络节点发来的信息?为什么设备发出去的命令没有收到响应?为什么设备工作一段时间后会通信发生异常?……,这时候就需要用到专业的CANopen网络分析工具来分析CANopen报文与CAN-bus底层数据,这里推荐一款CANopen协议分析仪。 CANalyst分析仪可用于记录CANopen网络报文、错误状态、网络负载等,也可以模拟CANopen终端工作,是CANopen网络设计的好助手,可以有效节省开发周期,方便实现网络维护、查错、管理等复杂操作。图6.4为CANalyst 分析仪的软件操作界面。 广州致远电子有限公司 文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 4 工业通讯-CAN bus通信产品 图6.4 CANalyst 分析仪的软件界面 1.1.6 CANopen网络的性能 CANopen网络的性能主要取决于两个关键因素:数据丢失率、实时性。 引起数据丢失的原因有很多,比如网络通信距离超过CAN通信速率所能达到的最大值;多个从站不断地主动发送PDO 数据,导致总线瞬时负载过高等。 除了通信速率之外,从站数量、数据传输方式也是影响实时性的重要因素。从站数量过多,肯定会引起主站和单个从站的通信周期变长;如果从站主动上传PDO数据量过大,则会出现一些从站数据堵塞或不断的重发现象,也同样会导致通信周期变长。
广州致远电子有限公司
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 1 工业通讯-CAN bus通信产品 第3章 CAN控制器驱动 1.1 SJA1000初始化 1.1.1 初始化流程 SJA10000在上电复位后处于复位模式,要使SJA1000能正常收发CAN帧数据,必须对SJA1000进行初始化,SJA1000初始化流程详见图3.1。 1. 进入复位模式 SJA1000的配置寄存器只有在复位模式下才能访问,所以必须首先置位模式寄存器的0位,以进入复位模式。 2. 设置模式寄存器 模式寄存器用于设置SJA1000工作模式,定义详见表3.1。 表3.1 SJA1000模式寄存器定义 MOD Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 寄存器0 - - - SM AFM STM LOM RM RM:复位模式位,置位该位将使SJA1000进入复位模式,清零该位则退出复位模式返回工作模式。 LOM:只听模式位,设置该位后,SJA1000处于只听模式。只听模式只从CAN总线接收数据,不能向总线上发送数据也不会产生错误帧。 只听模式常用于自动波特率检测功能,例如在软件里预先定义一个包含所有可能的位频率以及它们的位时序参数的表格,使能SJA1000接收和错误中断,依次尝试表格中的位时序参数,如果在CAN总线上产生了错误,软件转向下一个位时序参数,在一条信息的成功地接收后,表明软件已经检测到正确的位时序参数。 STM:只检测模式位,设置该位后,SJA1000在发送CAN帧时不检查应答位,可以实现单个CAN节点的发送功能。 AFM:验收滤波器模式,设置该位时使用单滤波功能;清零该位时使用双滤波功能。 SM:睡眠模式位,设置该位时,SJA1000进入睡眠模式,降低功耗。 3. 设置时钟分频寄存器 时钟分频寄存器用于选择BasicCAN模式还是PeliCAN模式、CLKOUT管脚控制、CAN输入比较器控制,寄存器的位定义详见表3.2。 表3.2 SJA1000时钟分频寄存器定义 MOD Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 寄存器31 CAN模式 CBP - RXINTEN 关闭时钟 CD.2 CD.1 CD.0 4. 设置CAN波特率 波特率是异步串行通信中的重要参数,指每秒钟能发送的数据位元数量,只有相同波特率 图3.1 SJA1000初始化流程图 广州致远电子有限公司
广州致远电子有限公司
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd. 文章源自广州致远电子有限公司,转载或引用请注明出处 1 工业通讯-CAN bus通信产品 第6章 CAN总线应用层协议——CANopen 1.1 CANopen协议 CANopen协议是在20世纪90年代末,由CiA组织(CAN-in-Automation)在CAL(CAN Application Layer)的基础上发展而来,一经推出便在欧洲得到了广泛的认可与应用。经过对CANopen协议规范文本的多次修改,使得CANopen协议的稳定性、实时性、抗干扰性都得到了进一步的提高。并且CiA在各个行业不断推出设备子协议,使CANopen协议在各个行业得到更快的发展与推广。目前CANopen协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运等行业得到广泛的应用。 1.1.1 CANopen协议简介 图6.1 CANopen 设备结构 图6.1所示为CANopen设备结构,CANopen协议通常分为用户应用层、对象字典以及通信三个部分。其中最为核心的是对象字典,这部分将在本章节中介绍。CANopen通信是CANopen关键部分,其定义了CANopen协议通信规则以及与CAN控制器驱动之间对应关系,熟悉这部分对全面掌握CANopen协议至关重要。用户应用层是用户根据实际的需求编写的应用对象,这部分本书将不作介绍。 1.1.2 CANopen对象字典 CANopen对象字典(OD: Object Dictionary)是CANopen协议最为核心的概念。所谓的对象字典就是一个有序的对象组,每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x1000到0x9FFF之间。为了允许访问数据结构中的单个元素,同时也定义了一个8 位的索引值,这个索引值通常被称为子索引。 每个CANopen设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据文档(EDS:Electronic Data Sheet)来记录这些参数,而不需要把这些参数记录在纸上。对于CANopen网络中的主节点来说,不需要对CANopen从节点的每个对象字典项都访问。 CANopen对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等,这样可保证不同厂商的同类型设备兼容。 广州致远电子有限公司