0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CANOpen系列教程11_ 深度分析CanFestival_3架構(gòu)

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-06 15:43 ? 次閱讀

1寫在前面

教程上一篇文章《關(guān)于Canfestival及對(duì)象字典生成工具環(huán)境搭建》中我們簡(jiǎn)單認(rèn)識(shí)了一下Canfestival這套免費(fèi)開源CANOpen協(xié)議的框架。

那么,本文將會(huì)以下載的PDF手冊(cè)(源碼里面也有)為導(dǎo)向,來(lái)深入解析Canfestival這套框架。

本文大概分兩部分來(lái)講述:

1.manual手冊(cè)概要內(nèi)容;

2.解析Canfestival源碼;

2

manual手冊(cè)概要內(nèi)容

請(qǐng)先下載我們教程上一篇文章《關(guān)于Canfestival及對(duì)象字典生成工具環(huán)境搭建》提到的PDF手冊(cè)(解壓源碼,在目錄objdictgen doc下面也有manual_en.pdf手冊(cè)文檔)。

打開PDF手冊(cè),我們可以清楚的看到手冊(cè)共有12章。對(duì)于使用STM32開發(fā)的初學(xué)者來(lái)說(shuō),相對(duì)重要一點(diǎn)的章節(jié)有:2, 3, 4, 9這些章節(jié)。

為了照顧初學(xué)者,這里先把每一章節(jié)內(nèi)容概述一下,后面在重點(diǎn)講述部分的內(nèi)容。

2.1 內(nèi)容概要

第1章Introduction介紹

主要介紹了CanFestival是一個(gè)開源(LGPL和GPL) CANopen框架,CanFestival項(xiàng)目的起源及支持。同時(shí),也介紹了什么是CANOpen協(xié)議,以及協(xié)議相關(guān)的規(guī)范。

第2章CanFestival特征

1.工具:提供對(duì)象字典GUI圖形化編輯器、代碼生成,以及腳本等配套工具;

2.多平臺(tái):庫(kù)源代碼是ANSI標(biāo)準(zhǔn)C,支持多平臺(tái)編譯和開發(fā);

3.CANopen標(biāo)準(zhǔn):支持DS-301、302、305等標(biāo)準(zhǔn)的CANOpen協(xié)議。

第3章How to start如何開始

這一章節(jié)其實(shí)主要就是對(duì)一些環(huán)境的要求和配置,及如何獲取CanFestival等。

其實(shí),對(duì)我我們使用MCU開發(fā)的人來(lái)說(shuō),重要的就是對(duì)象字典編輯和生成工具的環(huán)境(具體請(qǐng)參看教程上一篇文章《對(duì)象字典生成工具環(huán)境搭建》)。其它基于Windows、Linux開發(fā)的環(huán)境,大家可以參考文檔配置一下,這里不講述。

第4章理解Canfestival

主要講述:理解源代碼文件目錄劃分情況、在應(yīng)用程序中實(shí)現(xiàn)CanFestival以及源文件結(jié)構(gòu)關(guān)系、CAN底層驅(qū)動(dòng)接口的調(diào)用和實(shí)現(xiàn)、對(duì)事件調(diào)度的實(shí)現(xiàn)方法。

本章節(jié)內(nèi)容直接牽涉源代碼相關(guān)內(nèi)容,所以說(shuō)比較重要,下面章節(jié)將進(jìn)一步詳解。

第5、6章

這兩章節(jié)主要是針對(duì)Linux、Windows平臺(tái)的配置和開發(fā)相關(guān)內(nèi)容,感興趣朋友可以認(rèn)真研究一下,這里不講述。

第7章

主要講述源碼提供的HCS12例程相關(guān)的編譯、下載、硬件連接以及演示。這里參考意義也不大,如果你有對(duì)應(yīng)的板卡,可以參考進(jìn)行演示一下。

第8章例程和測(cè)試程序

這一章節(jié)講述了配套提供的一些例程的相關(guān)說(shuō)明。比如TestMasterSlave主從站測(cè)試?yán)?a target="_blank">中心跳發(fā)生器時(shí)間為1000毫秒等。

這些說(shuō)明在源代碼中也有,通過(guò)查看提供的源代碼一目了然。所以,參看價(jià)值也不是很大。

第9章開發(fā)一個(gè)新節(jié)點(diǎn)

這一章比較重要,我們開發(fā)一個(gè)新的節(jié)點(diǎn),就需要編輯其對(duì)象字典,那么就需要通過(guò)編輯器編輯對(duì)象字典并生成代碼。

簡(jiǎn)單的說(shuō),這章節(jié)的重要內(nèi)容就是讓你學(xué)會(huì)如何使用這個(gè)對(duì)象字典編輯器工具。

第10章FAQ常見問(wèn)題

這一章節(jié),初學(xué)者能看懂的還建議看下有些問(wèn)題可能對(duì)你有幫助,比如:CanFestival3是否符合DS301 V4.02版本?

第11章文檔資源

主要就是一些參考網(wǎng)址。

第12章關(guān)于這個(gè)項(xiàng)目

不是重點(diǎn),可以了解一下這些信息。

3

解析Canfestival源碼

3.1 源文件目錄

解壓下載的源碼壓縮包,會(huì)看到如下圖文件及文件夾:

我們主要需要的三個(gè).c .h源文件目錄:

drivers:底層驅(qū)動(dòng);

include:.h頭文件;

src:.c源代碼;

一個(gè)對(duì)象字典生成工具:

objdictgen:object dictionary generate.

examples:例程,初學(xué)者可以參考;

3.2 源代碼結(jié)構(gòu)關(guān)系及應(yīng)用程序如何實(shí)現(xiàn)

這里有一張?jiān)次募慕Y(jié)構(gòu)關(guān)系圖,大致就是將源文件按照其作用進(jìn)行了劃分,初學(xué)者需要多看多理解。

從圖中我們可以看出,將源代碼劃分成三塊。中間的Library庫(kù)文件我們不會(huì)去動(dòng)它。主要修改左右兩邊的代碼。

左邊CAN底層驅(qū)動(dòng)接口(前面我提供過(guò)STM32例程)。Target目標(biāo)接口,如定時(shí)器

右邊底部對(duì)象字典,我們需要通過(guò)工具事先配置好,不需要人為編寫。最后就是我們通過(guò)調(diào)用API函數(shù),實(shí)現(xiàn)應(yīng)用程序。

提示:最右邊的英文希望大家理解一下,對(duì)初學(xué)者有幫助,如打開CAN接口(也可以叫初始化)、初始化定時(shí)器......等。

3.3 CAN底層接口實(shí)現(xiàn)和要求

我們底層發(fā)送要求非阻塞的方式實(shí)現(xiàn),一般我建議跑一個(gè)操作系統(tǒng),加一個(gè)隊(duì)列的方式實(shí)現(xiàn)。

需要一個(gè)發(fā)送線程、一個(gè)接收線程,同時(shí)需要定時(shí)器實(shí)現(xiàn)事件的調(diào)度。

這一節(jié)的內(nèi)容,對(duì)于初學(xué)者理解起來(lái)相對(duì)較難,可以先了解,有一個(gè)概念,后面我會(huì)結(jié)合代碼讓大家更容易理解其中含義。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2754

    瀏覽量

    463697
  • CANopen
    +關(guān)注

    關(guān)注

    8

    文章

    253

    瀏覽量

    43588
  • manual
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    11519
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    806

    瀏覽量

    31171
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CANopen協(xié)議架構(gòu)和應(yīng)用原理

    穩(wěn)健的通信協(xié)議和接口在工業(yè)電機(jī)控制應(yīng)用中發(fā)揮著重要作用。在工業(yè)驅(qū)動(dòng)應(yīng)用中,當(dāng)需要多個(gè)處理器元件來(lái)持續(xù)通信以完成復(fù)雜任務(wù)時(shí),CANopen因其易于集成、高度可配置,以及支持高效、可靠的實(shí)時(shí)數(shù)據(jù)交換等特性,受到了眾多工程師青睞。本文從低功耗電機(jī)控制應(yīng)用的角度深入探討CANopen
    的頭像 發(fā)表于 11-04 13:49 ?325次閱讀

    risc-v與esp32架構(gòu)對(duì)比分析

    RISC-V與ESP32在架構(gòu)上存在顯著的差異,這些差異主要體現(xiàn)在處理器類型、設(shè)計(jì)原則、功能特性以及應(yīng)用場(chǎng)景等方面。以下是對(duì)兩者架構(gòu)的詳細(xì)對(duì)比分析: 一、處理器類型與設(shè)計(jì)原則 RISC-V : 類型
    發(fā)表于 09-26 08:40

    iTOP-3562開發(fā)板/核心板采用RK3562,集成四核A53+Mali G52架構(gòu)

    A53+Mali G52架構(gòu),主頻2GHZ,內(nèi)置1TOPSNPU算力,RK809動(dòng)態(tài)調(diào)頻。支持OpenGLES1.1/2.0/3.2、0penCL2.0、Vulkan 1.1內(nèi)嵌高性能2D加速硬件
    發(fā)表于 09-05 11:30

    X86架構(gòu)處理器有哪些優(yōu)點(diǎn)和缺點(diǎn)

    X86架構(gòu)處理器作為計(jì)算機(jī)領(lǐng)域的重要組成部分,具有多個(gè)顯著的優(yōu)點(diǎn)和一定的缺點(diǎn)。以下是對(duì)X86架構(gòu)處理器優(yōu)缺點(diǎn)的詳細(xì)分析。
    的頭像 發(fā)表于 08-22 11:25 ?2067次閱讀

    X86架構(gòu)和ARM架構(gòu)有什么區(qū)別

    X86架構(gòu)和ARM架構(gòu)是兩種主流的CPU架構(gòu),它們?cè)诙鄠€(gè)方面存在顯著的差異。以下是對(duì)這兩種架構(gòu)的詳細(xì)比較,涵蓋了追求目標(biāo)、應(yīng)用領(lǐng)域、技術(shù)特點(diǎn)、性能功耗比、軟件生態(tài)以及未來(lái)趨勢(shì)等方面。
    的頭像 發(fā)表于 08-22 11:21 ?9276次閱讀

    探索RISC-V二進(jìn)制翻譯,openKylin成功在SG2042平臺(tái)運(yùn)行X86架構(gòu)軟件!

    眾所周知,在新的指令集架構(gòu)發(fā)展初期,往往采用兼容其他架構(gòu)軟件的方法來(lái)拓展自身生態(tài)體系,如蘋果公司的Rosetta2和微軟的Arm64EC,都是將X86架構(gòu)軟件運(yùn)行在ARM架構(gòu)的系統(tǒng)之上
    的頭像 發(fā)表于 07-24 08:34 ?560次閱讀
    探索RISC-V二進(jìn)制翻譯,openKylin成功在SG2042平臺(tái)運(yùn)行X86<b class='flag-5'>架構(gòu)</b>軟件!

    ElfBoard技術(shù)貼|如何將libwebsockets庫(kù)編譯為x86架構(gòu)

    在之前的文章中,我們已經(jīng)詳細(xì)介紹了如何交叉編譯libwebsockets并將其部署到ELF1開發(fā)板上。然而在調(diào)試階段,發(fā)現(xiàn)將libwebsockets在Ubuntu環(huán)境下編譯為x86架構(gòu)可能更為方便
    的頭像 發(fā)表于 07-10 09:38 ?1217次閱讀
    ElfBoard技術(shù)貼|如何將libwebsockets庫(kù)編譯為x86<b class='flag-5'>架構(gòu)</b>

    迅為RK3562核心板四核A53+MaliG52架構(gòu),應(yīng)用于商業(yè)平板電腦,視頻會(huì)議,智能家居,教育電子,醫(yī)療設(shè)備,邊緣計(jì)算,工業(yè)應(yīng)用

    迅為RK3562核心板四核A53+MaliG52架構(gòu),應(yīng)用于商業(yè)平板電腦,視頻會(huì)議,智能家居,教育電子,醫(yī)療設(shè)備,邊緣計(jì)算,工業(yè)應(yīng)用
    發(fā)表于 07-09 10:57

    I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 如何在Ubuntu中編譯OpenCV庫(kù)(X86架構(gòu)

    使用X86架構(gòu)的OpenCV庫(kù),利用主機(jī)的強(qiáng)大計(jì)算性能和豐富的調(diào)試工具,可以加速開發(fā)進(jìn)程并簡(jiǎn)化調(diào)試環(huán)節(jié)。下面就跟小伙伴詳細(xì)講述如何在Ubuntu環(huán)境下將 OpenCV 編譯為 X86 架構(gòu)。 開發(fā)環(huán)境
    發(fā)表于 06-07 09:32

    移動(dòng)端芯片性能提升,Armv9架構(gòu)新升級(jí)引發(fā)關(guān)注

    “數(shù)碼博主”5月17日的最新爆料指出,聯(lián)發(fā)科積極推進(jìn)Armv9新一代IP BLACKHAWK“黑鷹”的架構(gòu)設(shè)計(jì),預(yù)計(jì)天璣9400芯片將采用這一架構(gòu),有望以“全大核”設(shè)計(jì)再度領(lǐng)跑移動(dòng)SoC CPU性能榜單。
    的頭像 發(fā)表于 05-17 16:51 ?1020次閱讀

    鴻湖萬(wàn)聯(lián)成功舉辦基于x86架構(gòu)的OpenHarmony應(yīng)用生態(tài)挑戰(zhàn)賽

    近日,由開放原子開源基金會(huì)、央視網(wǎng)、江蘇省工業(yè)和信息化廳、無(wú)錫市人民政府、江蘇軟件產(chǎn)業(yè)人才發(fā)展基金會(huì)、蘇州工業(yè)園區(qū)、無(wú)錫高新區(qū)等共同承辦,鴻湖萬(wàn)聯(lián)參與共建的“基于x86架構(gòu)的OpenHarmony應(yīng)用生態(tài)挑戰(zhàn)賽”決賽路演在無(wú)錫圓滿落幕。
    的頭像 發(fā)表于 04-23 09:26 ?353次閱讀
    鴻湖萬(wàn)聯(lián)成功舉辦基于x86<b class='flag-5'>架構(gòu)</b>的OpenHarmony應(yīng)用生態(tài)挑戰(zhàn)賽

    AMD Radeon RX 7000M系列顯卡特性分析

    AMD RDNA 3架構(gòu) – 新的計(jì)算單元在渲染、AI和光線追蹤之間共享資源,以更有效地利用每個(gè)晶體管,實(shí)現(xiàn)快速又高效的性能。
    發(fā)表于 04-15 11:31 ?548次閱讀
    AMD Radeon RX 7000M<b class='flag-5'>系列</b>顯卡特性<b class='flag-5'>分析</b>

    arm架構(gòu)和x86架構(gòu)區(qū)別 linux是x86還是arm

    ARM架構(gòu)和x86架構(gòu)是兩種不同的計(jì)算機(jī)處理器架構(gòu),它們?cè)隗w系結(jié)構(gòu)、指令集、應(yīng)用領(lǐng)域等方面有著明顯的區(qū)別。Linux操作系統(tǒng)則具有廣泛的適配性,可以運(yùn)行在各種架構(gòu)上,包括x86和ARM
    的頭像 發(fā)表于 01-30 13:46 ?1.8w次閱讀

    Profinet協(xié)議轉(zhuǎn)換為CanOpen協(xié)議來(lái)連接CanOpen伺服驅(qū)動(dòng)器的應(yīng)用

    局域網(wǎng)(CAN)網(wǎng)絡(luò)的通信協(xié)議,被廣泛應(yīng)用于汽車和其他嵌入式系統(tǒng)中。對(duì)于將Profinet協(xié)議轉(zhuǎn)換為CanOpen協(xié)議以鏈接臺(tái)達(dá)B3系列伺服驅(qū)動(dòng)器的應(yīng)用,以下是一些運(yùn)用的基本步驟:系列
    發(fā)表于 01-10 10:29

    OPPO發(fā)布自研芯片軟硬融合技術(shù)?!俺毕?b class='flag-5'>架構(gòu)”,同時(shí)宣布退出芯片領(lǐng)域

    據(jù)了解,這一架構(gòu)是OPPO與其合作伙伴聯(lián)發(fā)科技深度協(xié)同開發(fā)的結(jié)果。其充分挖掘芯片底層潛能,實(shí)現(xiàn)異構(gòu)計(jì)算單元的高效動(dòng)態(tài)調(diào)度。
    的頭像 發(fā)表于 01-09 09:26 ?771次閱讀