canfestival介绍及对象字典编辑器的环境搭建
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
canfestival是一套功能完整,完全符合CANopen标准的开源协议栈,canfestival为开发者还提供了许多工具,提高开发的便利性。
Canfestival源码由ANSI-C编写,提供了对于多种硬件平台的驱动,本文主要介绍canfeitival相关基础,以及搭建字典编辑器。供读者参考。
一、开源库下载
二、canfestival介绍
下载后的文件压缩包名称是canfestival-de1fc3261f21.zip,解压之后的文件如下所示。
说明如下:
- debian和doc:描述的是针对于linux相关的文档说明文件夹。
- drivers:描述的是各种MCU相关的底层硬件操作驱动,主要包括定时器、CAN。
- example:描述的是各种MCU的使用例程。
- include:描述的是与src对应的头文件。
- src:描述的是CANopen协议的核心代码,包含了各种报文的实现的C文件、状态转换处理,定时器使用等。
- objdictgen:描述的是对象字典生成的编辑工具。
在canfestival中,所有源代码可以分为四大部分,分别是目标接口、CAN接口、canfestival库文件以及主从节点的应用。其中,canfestival库文件是整个协议的核心,包括调度管理,节点管理(对象字典访问objacces.c、状态机state.c),CANopen协议(服务数据对象sdo.c、过程数据对象pdo.c、同步对象sync.c、自动波特率对象lss.c、网络管理对象nmtMaster.c和nmtSlave.c)。这些文件在移植时是不需要修改的。主/从节点的应用包括节点状态反馈和设备对象字典的定义,目标接口包括节点硬件的驱动以及对于操作系统的接口,这也是进行移植时主要修改的对象。
由于周期性发射同步信号、心跳报文或SDO超时信号需要设定一系列定时信号来提醒系统进行这些工作,所以CANopen节点必须能实现定时功能。CanFestival在timer.c中执行了一个微型调度程序,他可以使用一个定时器,该调度程序会建立并管理一个警报表,并且在规定的时间发出信号。
Canfestival工程中文件分类及各部分的功能如下所示:
- 底层硬件相关实现接口。对应的是drivers目录下的各种文件,实现硬件定时器定时功能,各种MCU硬件的CAN接口的收发数据。
- 核心层。对应src目录下的各种文件,这一层实现的是各种报文的生成、报文处理、报文管理,同时还在硬件定时器基础上实现软定时器timer.c功能。
- 应用层。用户的主从站就在这一层,这一层调用核心层提供的各种接口进行对象字典操作等,并且在爆出纹理完成后,还可以执行用户添加的回调函数,本层canfestival实现了data.h头文件,里面包含用户各种数据结构,CO_DATA结构体的使用就需要objdictgen目录下的喜爱功能字典工具生成对象字典。
三、对象字典编辑器安装配置
1.对象字典生成工具环境搭建
1)安装软件:先后安装python-2.7.3、wxPhthon2.8和beremiz工具,如下图所示。
在安装之后,需要配置环境变量,在如下图的系统环境变量中找到并选中path变量,添加C:\Python27,即python的安装路径。
2)如何运行
找到目录objdictgen目录下的Gnosis_Utils-current.tar.gz进行解压,将解压后里面的gnosis文件夹拷贝到objdictgen目录下。
双击objdictedit.py,如果环境没有问题,就应该会出现如下界面。
2.字典编辑器操作说明
参考链接:
更多推荐
所有评论(0)