-开发CANopen设备的协议软件
摘要:
Ø 扩展功能兼容当前CANopen规范
Ø 快速、简单开发CANopen设备(主及从)
Ø 模块化软件设计,可高度裁减
Ø 在最小资源占用下可提供很高的执行效率
Ø 简洁的结构化编程接口,易于与用户应用集成
Ø 易于在不同的微控制器和CAN控制器间转化
功能概述
CANopen主/从站软件可用于开发CANopen从站的全部必要功能,并可开发简单的CANopen主站。CANopen主/从站软件根据 DS301-Version4.01规范开发。
规模设定性及硬件适应性
CANopen软件包实现了 CANopen
DS301-Version4.01里定义的所有服务和机制。为了保证高水平的可裁减性和适应能力,本软件可在中心位置进行配置。通过提供的配置文件,用户可以对系统进行最优化配置。在对软件要求最小的情况下,可以通过修改中心配置文件来适应不同的硬件。
对象字典和编程接口
对象字典是应用程序与通信间的接口。应用程序数据参变量可以直接分配给每个对象的变量入口。PDO和SDO可以直接访问这些应用程序变量。因此,不需要为了适应CANopen协议栈而修改现有的应用程序。用户自定义的回调函数可以连接到每个应用程序对象,当这些对象发生存取操作时会发出一个事件来通知应用程序。这种机制使得应用程序数据可以通过总线直接修改或由程序响应来修改,也支持存储或再生已配置的数据。
进程数据对象和服务数据对象
根据不同的配置,PDO支持非同步传输模式(带有事件时钟选项),同步传输模式(循环或非循环)以及响应模式(RTR-Only)。PDO映射可以根据不同的响应时间要求或资源要求,采用静态或动态方式实现。在缺省方式下 PDO采用字节传送,也可以采用位进行传送。传送PDO可以支持虚拟映射及时间约束。对象可以同时被同时写进多个PDO。SDO传输模式可支持加速,非加速(分段)和按块传输。PDO和SDO的数目只受资源的限制。
网络管理
CANopen软件支持DS301规范中定义的通过引导程序支持所有网络服务的功能。在网络管理方面扩展了一些功能,用于两种节点监视机制:由主机完成的节点保护以及采用生产者保护的heartbeat机制。
ID分配
ID分配是按照预定义输入输出连接集完成的,但也可以通过修改相应的对象字典入口来完成。
主要功能
CANopen主/从软件包允许创建带有自己的对象字典的主站设备。这种主站设备可以工作在主站方式或从站方式,可以用配置工具修改主站的对象字典。
可选辅助功能
在CANopen标准软件之上,还可选取以下辅助软件:
*SDO Requesting Device(SRD) according to DS302 (定购代码 1.02.0126.00004)
*LSS-Functions as Master/Slave according to DSP305 (定购代码(1.02.0126.00005)
实现效果
CANopen协议软件包以C源码的形式提供,经过CiA最新的 CANopen测试软件测试。
大量的文档和示例程序可以帮助您迅速学会使用CANopen软件。所有例程都可以立即在参考平台上运行(CPU制造商提供的评估板或IXXAT接口板)。为适应特殊目标硬件要求而对源程序做的修改可在数日内完成,在此过程中,例程是很有帮助的。
可取得的版本
根据不同的功能,CANopen主/从站协议软件分为三个不同版本(Slave Minimum S, Slave Minimum D, Master/ Slave).Master/Slave包含产生CANopen从站或简单主站设备所需的全部代码。各个不同的软件包功能描述如下表。
Function | Slave ‘S’ | Slave ‘D’ | Master/Slave |
Max. number server SDOs | 128 | 128 | 128 |
Max. number client SDOs | - | - | 128 |
Max. number PDOs (Tx/Rx) | 512 | 512 | 512 |
Dynamic PDO Mapping | no | yes | yes |
SYNC object | C | C | P/C |
EMERGENCY object | P | P | P/C |
TIME STAMP object | C | C | P/C |
NMT-Functions | S | S | M/S |
Node Guarding/Heartbeat | Yes | Yes | Yes |
ID configuration according to pre-defined connection set | Yes | Yes | Yes |
ID configuration via SDOs | Yes | Yes | Yes |
C=Consumer(接收方);P=Producer(传输方);S=Slave(从站);M=Master(主站)
支持处理器/CAN控制器及编译器
* 微控制器
·8051 系列(Keil C51
uVision 2)
·C16X 系列(Keil C166
uVision 2,Tasking-C166/ST10)
·通用标准C版本(ANSI-C)
带有外部CAN控制器
·Philips82C200及SJA1000
·Intel 82527
·Siemens/Infineon81C90/91
* 内部集成CAN控制器的微控制器
·Philips 8xC591 and 8xC592(Keil C51 uVision 2)
·Siemens/Infineon C505/515(Keil C51 uVision 2)
·Siemens/Infineon C16x(Keil C166 uVision2,Tasking C166/ST10)
·ST Microelectronics ST7(Cosmic C for ST7)
·Motorola 68HC08(Cosmic C for HC08)
·Motorola 68HC12(Metrowerks CodeWarrior for HC12)
·Motorola DSP56800(Metrowerks CodeWarrior for DSP56800)
·Mitsubishi M16C/6N(Tasking
M16C)
·Fujitsu F2MC-16LX(Fujitsu Softune Workbench)
·NEC V850(IAR Embedded Workbench for NEC V850)
·Atmel T89C51CC01(Keil C51
uVision2)