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
+關注
關注
57文章
2744瀏覽量
463623 -
CANopen
+關注
關注
8文章
253瀏覽量
43582 -
manual
+關注
關注
0文章
17瀏覽量
11516 -
編輯器
+關注
關注
1文章
805瀏覽量
31163
發布評論請先 登錄
相關推薦
評論