-开发CANopen设备的实时CANopen软件
摘要
Ø
实现基于DS301 version4.01规范的扩展功能集
Ø
支持快速/简便开发CANopen设备(主及从)
Ø
快速、简单开发CANopen设备(主及从)
Ø
模块化软件设计,可高度裁减
Ø
在最小资源占用下可提供很高的执行效率
Ø
简洁的结构化编程接口,易于与用户应用集成
Ø
易于在不同的微控制器和CAN控制器间转化
功能介绍及软件结构
CANopen实时软件可用于开发CANopen从站的全部必要功能,并可开发简单的CANopen主站。CANopen实时软件根据 DS301-Version4.01规范开发。
在CANopenRT软件包中,所谓的 CANopen任务将用来提供相应的功能及服务。该任务将只在需要提供服务时才启动,这样,软件执行将不会浪费不必要的时间。
CANopen任务将与应用程序任务定位在同一段内存区域中。
程序接口及对象字典
CANopen实时接口(CRT)是应用程序的任务与CANopen协议栈之间的编程接口。应用程序传递给CANopen协议栈的命令以及CANopen协议栈返回给应用程序的命令执行结果、事件以及紧急状态报文都将通过CRT传递。CRT的核心是基于邮箱实现的。应用程序可以包含多个任务,每个任务可以独立适用CRT接口。
数据将通过对象字典在应用程序和CANopen软件间传递。包含有应用程序数据的变量将可以通过参考地址映射到每个对象字典索引中。另外,用户定义的功能也可以分配到每个应用对象中。这种方式可以为应用程序提供快速的事件控制功能。将通过信号量保证应用程序及CANopen软件不会同时访问对象字典。
进程数据对象和服务数据对象
根据不同的配置,PDO支持非同步传输模式(带有事件时钟选项),同步传输模式(循环或非循环)以及响应模式(RTR-Only)。PDO映射可以根据不同的响应时间要求或资源要求,采用静态或动态方式实现。在缺省方式下 PDO采用字节传送,也可以采用位进行传送。传送PDO可以支持虚拟映射及时间约束。对象可以同时被同时写进多个PDO。SDO传输模式可支持加速,非加速(分段)和按块传输。PDO和SDO的数目只受资源的限制。
网络管理
CANopen软件支持DS301规范中定义的通过引导程序支持所有网络服务的功能。在网络管理方面扩展了一些功能,用于两种节点监视机制:由主机完成的节点保护以及采用生产者保护的heartbeat机制。
ID分配
ID分配是按照预定义输入输出连接集完成的,但也可以通过修改相应的对象字典入口来完成。
可选辅助功能
在CANopen标准软件之上,还可选取以下辅助软件:
*SDO Requesting Device(SRD) according to DS302
*LSS-Functions as Master/Slave according to DSP305
实现效果
CANopenRT软件包以C源代码的形式提供,并经过最新的CiA CANopen兼容性测试软件的测试。
大量的文档和示例程序可以帮助您迅速学会使用CANopenRT软件。所有例程都可以立即在参考平台上运行(CPU制造商提供的评估板或IXXAT接口板)。针对不同的操作系统会提供不同的CANopenRT软件。
可取得的版本
根据不同的功能,CANopenRT软件分为两个不同版本(Master/Slave, Slave).Master/Slave包含产生CANopen从站或简单主站设备所需的全部代码。各个不同的软件包功能描述如下表。
Function | Slave | Master |
Max. number server SDOs | 128 | 128 |
Max. number client SDOs | - | 128 |
Max. number PDOs (Tx/Rx) | 512 | 512 |
Dynamic PDO Mapping | yes | yes |
SYNC object | C | P/C |
EMERGENCY object | P | P/C |
TIME STAMP object | C | P/C |
NMT-Functions | S | M/S |
Node Guarding/Heartbeat | Yes | Yes |
ID configuration according to pre-defined
connection set | Yes | Yes |
ID configuration via SDOs | Yes | Yes |
C=Consumer(接收方);P=Producer(传输方);S=Slave(从站);M=Master(主站)
支持的操作系统
目前,CANopenRT软件可以提供支持下列操作系统的版本:
EUROS和VxWorks