相对于其他常用的国外开源的CANopen协议栈,CanFestival具有许多明显的优势:

1.CanFestival为开发者提供了许多工具,以提高开发的便利性。例如用于生成节点对象字典源代码的对象字典编辑器,以及便于开发者自由配置编译选项的配置脚本。

2.CanFestival能够运行于多种类型的平台。CanFestival源代码由ANSI-C编写,驱动和例程的编译情况仅取决于具体的编译工具。在目前最新的版本中,官方提供了对于多种硬件平台的驱动。此外,CanFestival可以在任意类Unix系统下编译和运行,如LinuxFreeBSD

3.CanFestival协议功能完整,完全符合CANopen标准。CanFestival完全支持20022月发布的CIA DS-301 V4.02标准,并支持CiA DS302中的简明DFC协议。

          CanFestival 3.0 RC3 源代码的目录结构如下表所示:


       在CanFestival中,所有源代码可以分为四大部分,分别是目标接口、CAN接口、CanFestival库文件以及主/从节点的应用。其中,CanFestival库文件是整个协议的核心,包括调度管理,节点管理(对象字典访问objacces.c、状态机state.c),CANopen协议(服务数据对象sdo.c、过程数据对象pdo.c、同步对象sync.c、自动波特率对象lss.c、网络管理对象nmtMaster.cnmtSlave.c)。这些文件在移植时是不需要修改的。主/从节点的应用包括节点状态反馈和设备对象字典的定义。目标接口包括节点硬件的驱动以及对于操作系统的接口,这也是进行移植时主要修改的对象。

       由于周期性发射同步信号、心跳报文或SDO超时信号需要设定一系列定时信号来提醒系统进行这些工作,所以CANopen节点必须能实现定时功能。CanFestivaltimer.c中执行了一个微型调度程序,他可以使用一个定时器来模拟许多定时器。该调度程序会建立并管理一个警报表,并且在规定的时间发出信号。

       本次测试中使用的CanFestival用户手册是PDF文档《CanFestival manual_en》。这篇文档详细介绍了CanFestival 工程中各类接口函数、库函数和一些示例应用程序,其中包括利用Canopen协议开发的示例程序。文档还介绍CanFestival的主要特点和理解这个开源工程代码的过程中需要使用的一些工具和分析方法。这是在进行Canopen通信协议开发过程中需要仔细研读的说明文档。

    CanFestival工程中文件分类及各部分的功能如下图所示:


                                             CanFestival 代码功能结构


更多资源请参考:

http://www.dndev.com/cgi-bin/forum/view.cgi?forum=2&topic=1262 




Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐