【摘 要】:CAN总线在自动化领域的应用越来越广泛,其特点是结构简单、成本低,但速度高、实时性和可靠性好。但是CAN协议是一个非常简单的协议,它只定义了物理层和数据链路层,本身并不完整,只要涉及具体的应用问题就需要一个更高层次的协议一应用层协议来实现。CANopen是基于CAN总线的应用层协议,由欧洲CiA组织发表和维护。
1 引言
CAN总线在自动化领域的应用越来越广泛,其特点是结构简单、成本低,但速度高、实时性和可靠性好。但是CAN协议是一个非常简单的协议,它只定义了物理层和数据链路层,本身并不完整,只要涉及具体的应用问题就需要一个更高层次的协议一应用层协议来实现。CANopen是基于CAN总线的应用层协议,由欧洲CiA组织发表和维护。 CANopen的一个最重要的应用领域就是自动化机器的嵌入式控制系统,在许多大型设备,如印刷机、工业缝纫机、喷射模塑机、包装机、木材加工机以及机器人等内部嵌入式网络已经实现了CANopen;
同样,在医疗设备和电梯系统中,CANopen也得到广泛的应用。
Vector公司是德国一家专门从事CAN总线的研究、开发和应用的高科技公司,该公司的CANoe是专门对CAN控制网络进行仿真的工具,只要安装Option.CANopen附件之后,就可以仿真 CANopen网络。
2 CANopen协议的基本概念
由CiA组织发表的有关CANopen的协议超过40个,其中最重要的协议有3个:DS301、DS302以及DS401。DS301定义了应用层和通讯规范, DS302定义了CANopen管理节点以及可编程设备的框架结构,DS401定义了通用I/O模块的设备规范。
2.1 DS301协议
DS301是CANopen协议中最基本的协议,其全名是DS30 1 CANopen application layer and corn• munication profile。DS301定义了应用层和通讯规范,包括对象字典、服务数据对象、过程数据对象、网络管理对象等内容。
2.1.1对象字典(object Dictionary)
对象字典是CANopen节点的核心内容,对象字典包含了每一个CANopen节点的配置参数和功能的描述,它能够被其它CANopen节点进行读/写操作。对象字典是通过一个16位的索引和8位的子索引来访问的,通过访问节点的对象字典可以知道节点能做什么和怎么做。可以说对象字典是通讯程序与上层应用程序的接口。
对于对象字典的读写访问有两种方式:一种是 SDO,另一种是PDO。SDO通常用于配置系统参数,PDO用于过程数据的通讯。
2.1.2服务数据对象(SDO)
SDO通过请求和响应报文来实现对节点对象字典的访问。SDO可以对对象字典的所有内容进行读/写访问。SDO的触发方式是命令响应型的。 SDO的传输方式分为两种:分段传输方式和分块传输方式,通过这两种传输方式,SDO实现了报文的分段,能够允许任意长度的数据在两个节点之间相互通讯,这样就为节点的固件升级和程序下载提供了可能。SDO对过程数据的访问效率并不高, CANopen协议还定义了一种更有效的过程数据的通讯模式——PDO。
2.1.3过程数据对象(PDO)
PDO用于传输过程数据,其优先级别仅次于网络管理报文,可以保证过程数据传输的实时性。 PDO有两种参数:通讯参数和映射参数。通讯参数定义了PDO的触发方式和传输模式,映射参数定义了PDO报文中的数据域的含义。这些参数都可以通过SDO动态修改。
2.1.4网络管理对象(NMT)
CANopen的网络管理是基于主一从式的结构,一个CANopen网络中只有一个主节点,其它节点都是从节点。它实现三种功能:节点状态控制、错误控制和节点启动。节点状态控制是指 CANopen网络中的主节点通过发出命令,改变从节点的状态。错误控制分为两种:Node Guarding和Heartbeat。两者都是检测节点能否正常通讯。
节点启动是指每一个从节点由初始化状态进人预操作状态的时候自动发送一个启动报文,通知主节点。
2.2 DS302协议
DS302协议,其全名叫CANopen framework for CANopen managers and programmable CANopen devices。DS302的主要内容包括4个部分:第一, CANopen网络启动的步骤;第二,各种主节点和管理节点的定义;第三,可编程设备的输入/输出定义;第四,冗余通讯的方式。其中第二部分的内容最重要,它定义了CANopen的3种管理节点:1、 NMT Master,这类节点对整个CANopen网络进行管理,通过各种网络管理服务,实现对其它节点的初始化、启动、监视控制、重启和停止的功能;2、 SDO Manager,这类节点是为了使单个节点的对象字典能够实现被多个节点访问修改的功能;3、Con figuration Manager,这类节点是用来管理网络上其它节点的配置参数的保存和恢复。
2.3 DS401协议
DS401协议,其全名叫CANopen device profile for generic I/O modules。DS401定义了通用I/O模块的设备规范,它主要定义了对象字典中6000H到6FFFH之间的内容。通用的I/(3模块一般有4类 I/O:数字输入、数值输出、模拟输入和模拟输出。DS401中定义了一组PDO用于传输8位的数字量输入/输出,三组PDO用于传输16位的模拟量输入/输出。对于数字输入量,DS401定义了输入极性、中断允许和中断条件等参数;对于数字输出量,DS401定义了出错模式和出错时的缺省输出值等参数。对于模拟输入量,DS401定义了中断触发模式、缩放比例和偏移量;而对于模拟输出量, DS401定义了出错模式、出错时的缺省输出值、缩放比例和偏移量。
3 如何用CANoe仿真CANopen网络
Vetor Informatik公司是德国的一家专门从事现场总线特别是CAN总线的研究、开发和应用的高科技公司。它在Controller Area Networks(CAN)总线应用领域内提供了一系列、强有力的软硬件开发工具。其中CANoe是系统级的总线开发工具。
3.1 仿真一个CANopen网络所需要的软件
CANoe是CAN总线的仿真工具,要仿真 CANopen网络,还必须安装Option.CANopen。除此以外,ProCANopen也是必不可少的工具,Pro. CANopen是用来设计和配置整个CANopen网络。对于每个CAN节点来说,都必须有自己的对象字典,而在CANopen协议中,定义了一种EDS 文件格式,它对象字典的标准的保存形式,而Vecmr公司的CANeds软件是用来创建、编辑和保存EDS文件。CANoe安装的时候,还会安装 CANdb++ Editor和Panel Editor这两种工具,CANdb++ Editor是用来编辑CAN网络有关节点信息、报文信息和信号信息的数据库,而Panel Editor是用来编辑仿真用的控制面板。通过使用以上所说的软件,就可以很方便的仿真一个CANopen网络。
3.2 CANoe仿真CANopen网络的步骤
1、首先分析整个控制系统的控制需求和通讯需求,根据这些要求设计每个节点的对象字典、 SDO、PDO、NMT管理方式;
2、使用CANeds软件创建每个节点的EDS文件;
3、通过ProCANopen软件创建一个CANopen网络,导人每个节点的EDS文件,然后对整个 CANopen网络进行参数的配置,参数配置保存为 DCF文件。通过参数的配置,确定CAN报文的发送节点和接收节点;
4、在ProCANopen配置好参数之后,通过该软件生成CANopen网络的数据库、基本的控制面板,以及CANoe的配置文件;
5、运行CANoe软件,导人由ProCANopen生成的配置文件,就可以仿真一个功能最简单的、只有基本输入/输出的CANopen控制网络,通过控制面板上的控件来模拟节点的数字量和模拟量的输入和输出;
6、对于一个实际的嵌入式控制系统来说,除了基本的输入/输出,对于网络中的主节点来说,还有特定的控制算法。在这种情况下,就必须通过 CANoe的CAPL语言来实现这些算法。CAPL是一种类C语言,在CANoe中,利用它可以对比如一个报文的接收和发送、环境变量的改变或者做错误的出现等事件进行处理。对于每一个节点,可以通过CAPL语言来进行功能建模,模拟真实的节点;
7、如果由ProCANopen生成的数据库还不够全面的话,可以通过CANdb++Editor来编辑 CANopen网络的数据库。同样,可以通过Panel Editor来编辑控制面板,使控制面板更加符合实际控制的要求。
3.3 CANoe仿真的作用
1、通过CANoe仿真控制网络,可以检验网络设计的合理性。特别是对于大型的CANopen控制网络设计,如果全部节点都用硬件实现之后才进行整体调试的话,一旦网络设计出现问题,重新修改设计所耗的时间将会很长。如果网络设计完之后通过CANoe仿真,就可以检验各个节点功能的完善性以及网络的合理性,缩短工程开发周期。
2、CANoe可以实现半物理/半仿真的试验。使用CANoe,不只是纯粹的软件仿真,它通过电脑的CAN接口卡,可以实现CAN报文的通讯。当通过 CANoe仿真整个完整的系统功能之后,就可以开发自己的真实的控制器节点,利用总线接口和 CANoe剩下的节点相联系,来测试这些控制器节点的功能:如通讯、纠错等。
3、在工程开发的最终阶段,可以把所有节点都用真实的来代替实现,CANoe只是观察分析的工具。在工程的开发过程中,整个系统,包括各个功能节点都能详细地检查到,利用功能模块取代真实的网络节点能减少错误的发生。
4 结束语
CANopen是基于CAN总线的标准的应用层协议,具有广阔的应用前景。CANopen以其灵活性、开放性、高效性和可靠性,为嵌入式网络设计者提供很好的设计方案。CANoe是CANopen网络的仿真工具,通过CANoe可以简化CANopen网络的开发流程,提高CANopen网络的开发效率。
参考文献
[1] Olaf Pfeiffer, Andrew Ayre, and Christian Keydel, Embedded Networking with CAN and CANopen [M]. RTC Books, November 2003.
[2] CANopen Application Layer and Communication Profile[J].CiA Draft Standard 301 V4.02.13th February 2002.
[3] 吴爱国,刘莉.CAN总线控制系统的应用层协议CANopen剖析[J].微计算机信息,2003,19(3):27~28.
[4] 何光宇,胡正,秦霆镐,王健.针对工业控制的Canopen系统[J].微计算机信息,2003,19(12):5~6.[5] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航天航空大学出版社,2003.6.