0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANOpen系列教程11_ 深度分析CanFestival_3架构

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-06 15:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1写在前面

教程上一篇文章《关于Canfestival及对象字典生成工具环境搭建》中我们简单认识了一下Canfestival这套免费开源CANOpen协议的框架。

那么,本文将会以下载的PDF手册(源码里面也有)为导向,来深入解析Canfestival这套框架。

本文大概分两部分来讲述:

1.manual手册概要内容;

2.解析Canfestival源码;

2

manual手册概要内容

请先下载我们教程上一篇文章《关于Canfestival及对象字典生成工具环境搭建》提到的PDF手册(解压源码,在目录objdictgen doc下面也有manual_en.pdf手册文档)。

打开PDF手册,我们可以清楚的看到手册共有12章。对于使用STM32开发的初学者来说,相对重要一点的章节有:2, 3, 4, 9这些章节。

为了照顾初学者,这里先把每一章节内容概述一下,后面在重点讲述部分的内容。

2.1 内容概要

第1章Introduction介绍

主要介绍了CanFestival是一个开源(LGPL和GPL) CANopen框架,CanFestival项目的起源及支持。同时,也介绍了什么是CANOpen协议,以及协议相关的规范。

第2章CanFestival特征

1.工具:提供对象字典GUI图形化编辑器、代码生成,以及脚本等配套工具;

2.多平台:库源代码是ANSI标准C,支持多平台编译和开发;

3.CANopen标准:支持DS-301、302、305等标准的CANOpen协议。

第3章How to start如何开始

这一章节其实主要就是对一些环境的要求和配置,及如何获取CanFestival等。

其实,对我我们使用MCU开发的人来说,重要的就是对象字典编辑和生成工具的环境(具体请参看教程上一篇文章《对象字典生成工具环境搭建》)。其它基于Windows、Linux开发的环境,大家可以参考文档配置一下,这里不讲述。

第4章理解Canfestival

主要讲述:理解源代码文件目录划分情况、在应用程序中实现CanFestival以及源文件结构关系、CAN底层驱动接口的调用和实现、对事件调度的实现方法。

本章节内容直接牵涉源代码相关内容,所以说比较重要,下面章节将进一步详解。

第5、6章

这两章节主要是针对Linux、Windows平台的配置和开发相关内容,感兴趣朋友可以认真研究一下,这里不讲述。

第7章

主要讲述源码提供的HCS12例程相关的编译、下载、硬件连接以及演示。这里参考意义也不大,如果你有对应的板卡,可以参考进行演示一下。

第8章例程和测试程序

这一章节讲述了配套提供的一些例程的相关说明。比如TestMasterSlave主从站测试例程中心跳发生器时间为1000毫秒等。

这些说明在源代码中也有,通过查看提供的源代码一目了然。所以,参看价值也不是很大。

第9章开发一个新节点

这一章比较重要,我们开发一个新的节点,就需要编辑其对象字典,那么就需要通过编辑器编辑对象字典并生成代码。

简单的说,这章节的重要内容就是让你学会如何使用这个对象字典编辑器工具。

第10章FAQ常见问题

这一章节,初学者能看懂的还建议看下有些问题可能对你有帮助,比如:CanFestival3是否符合DS301 V4.02版本?

第11章文档资源

主要就是一些参考网址。

第12章关于这个项目

不是重点,可以了解一下这些信息。

3

解析Canfestival源码

3.1 源文件目录

解压下载的源码压缩包,会看到如下图文件及文件夹:

我们主要需要的三个.c .h源文件目录:

drivers:底层驱动;

include:.h头文件;

src:.c源代码;

一个对象字典生成工具:

objdictgen:object dictionary generate.

examples:例程,初学者可以参考;

3.2 源代码结构关系及应用程序如何实现

这里有一张源文件的结构关系图,大致就是将源文件按照其作用进行了划分,初学者需要多看多理解。

从图中我们可以看出,将源代码划分成三块。中间的Library库文件我们不会去动它。主要修改左右两边的代码。

左边CAN底层驱动接口(前面我提供过STM32例程)。Target目标接口,如定时器

右边底部对象字典,我们需要通过工具事先配置好,不需要人为编写。最后就是我们通过调用API函数,实现应用程序。

提示:最右边的英文希望大家理解一下,对初学者有帮助,如打开CAN接口(也可以叫初始化)、初始化定时器......等。

3.3 CAN底层接口实现和要求

我们底层发送要求非阻塞的方式实现,一般我建议跑一个操作系统,加一个队列的方式实现。

需要一个发送线程、一个接收线程,同时需要定时器实现事件的调度。

这一节的内容,对于初学者理解起来相对较难,可以先了解,有一个概念,后面我会结合代码让大家更容易理解其中含义。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    58

    文章

    3010

    浏览量

    471453
  • CANopen
    +关注

    关注

    8

    文章

    456

    浏览量

    47584
  • manual
    +关注

    关注

    0

    文章

    17

    浏览量

    11707
  • 编辑器
    +关注

    关注

    1

    文章

    826

    浏览量

    32648
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11系列课程,共5000+分钟)

    深度学习技能的工程师起薪18K,3-5年经验可达35-50K • 行业分布:电子制造(38%)、汽车零部件(22%)、半导体(19%)、医疗器械(11%)为主要就业领域 本次团购通过整合11
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战可(11系列课程,共5000+分钟)

    仅32% • 薪资水平:掌握LabVIEW+深度学习技能的工程师起薪18K,3-5年经验可达35-50K • 行业分布:电子制造(38%)、汽车零部件(22%)、半导体(19%)、医疗器械(11
    发表于 12-03 13:50

    基于蜂鸟E203架构的指令集K扩展

    向量操作指令,例如向量加法、向量乘法等。 在蜂鸟E203架构中,可以添加K扩展指令集,以处理大规模的数据集,可以添加以下指令: 1.VADD:向量加法指令,将两个向量相加并存储结果到一个向量寄存器中
    发表于 10-21 09:38

    迅为Hi3403V610开发板海思Cortex-A55架构核心板卡

    迅为电子重磅推出基于海思Hi3403处理器的高性能核心板,采用先进的四核Cortex-A55架构,主频高达1.4GHz,以强劲算力、超凡能效比与卓越的图像处理能力,为千行百业的智能化升级注入核心动力。无论是智能视觉、工业互联,还是AIoT边缘计算,它都能轻松驾驭,助您畅快开发!
    的头像 发表于 09-30 14:18 372次阅读
    迅为Hi3403V610开发板海思Cortex-A55<b class='flag-5'>架构</b>核心板卡

    移植CANfestival,发现can无法接收数据,为什么?

    最近在研究Canopen协议,在f407的板子上移植了canfestival协议栈 移植成功后遇到一些问题,总线上我在没有发数据的情况下还是可以进入can接收中断,我不清为什么会进入中断,后来我自己
    发表于 09-11 07:46

    CanFestival软件包下载失败的原因?

    如上图,因为Gitee服务器不稳定,下载不成功. 如果大佬们有最新版本的canfestival软件包,麻烦给我下载一下.
    发表于 09-11 06:39

    EtherCAT转CANopen,喷码机高效通讯秘籍

    CANopen
    北京开疆智能技术有限公司
    发布于 :2025年08月19日 17:08:06

    3步搞定!Canopen转EtherCAT网关,驱动伺服新突破

    CANopen
    北京开疆智能技术有限公司
    发布于 :2025年07月19日 11:44:35

    GPU架构深度解析

    GPU架构深度解析从图形处理到通用计算的进化之路图形处理单元(GPU),作为现代计算机中不可或缺的一部分,已经从最初的图形渲染专用处理器,发展成为强大的并行计算引擎,广泛应用于人工智能、科学计算
    的头像 发表于 05-30 10:36 1320次阅读
    GPU<b class='flag-5'>架构</b><b class='flag-5'>深度</b>解析

    存储示波器的存储深度对信号分析有什么影响?

    ) 采样率:≥6.4GS/s(数据速率×2)。 存储深度:≥10Mpts(记录时间≥1.56μs,支持突发信号)。 优化:启用分段存储(如1000段×10kpts)或外部触发。 3. 电源纹波分析(如
    发表于 05-27 14:39

    盟通方案|专业的CANopen总线分析软件

    在CAN/CANopen产品开发过程中,数据分析是非常关键的一环。数据帧分析软件就如您工作中的万能工具。不但能够抓取CAN数据包,还能够协助您分析数据功能,甚至用规则的数据时序排列,以
    的头像 发表于 05-23 16:06 541次阅读
    盟通方案|专业的<b class='flag-5'>CANopen</b>总线<b class='flag-5'>分析</b>软件

    东风岚图发布L3级智能架构天元智

    近日,东风岚图在北京正式发布L3级智能架构天元智,并首发两大核心智能化技术集群——青云L3级智能安全行驶平台和鲲鹏L3级智能安全驾驶系统,
    的头像 发表于 04-18 15:36 615次阅读

    使用ES32实现CANopen从机

    字典。CANopen设备模型如下图。对象字典描述了CANopen设备的所有行为和参数。CanFestival是一套开源免费的CANopen协议栈。它功能强大,且提供
    的头像 发表于 03-26 19:05 1498次阅读
    使用ES32实现<b class='flag-5'>CANopen</b>从机

    Arm发布基于Armv9架构的Cortex-A320处理器

    边缘 AI 需要更卓越的计算性能、更强大的安全性,以及更出色的软件灵活性。随着软件愈发复杂化,Armv9 架构应运而生,以提供先进的机器学习 (ML) 和 AI 功能,并具备增强的安全特性。该架构现已在 Cortex-A3xx
    的头像 发表于 02-27 17:10 1152次阅读

    DeepSeek V3/R1架构解读:探讨其是否具有国运级创新

    DeepSeek的最新模型DeepSeek-V3和DeepSeek-R1都属于MoE(混合专家)架构,并在开源世界产生了较大的影响力。特别是2025 年 1 月开源的DeepSeek-R1,模型性能
    的头像 发表于 02-10 10:15 6819次阅读
    DeepSeek V<b class='flag-5'>3</b>/R1<b class='flag-5'>架构</b>解读:探讨其是否具有国运级创新