欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

CANOpen系列教程13_協(xié)議源碼移植 (一)

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

1寫在前面

基于Canfestival框架的CANOpen協(xié)議棧移植教程網(wǎng)上流傳著許多,而且有一份不知道被復(fù)制、粘貼了多少遍的“CANOpen移植教程”相信許多朋友都知道。

同時(shí),百度、谷歌還能搜出許多所謂“移植代碼”。其實(shí),這許多內(nèi)容,對(duì)初學(xué)者并沒有多大幫助。相反,我覺得還有誤導(dǎo)的作用。

基于Canfestival框架的CANOpen協(xié)議棧移植需要做的工作并不多,但許多初學(xué)者無從下手,究其原因還是有許多內(nèi)容沒有理解到位。

本教程站在初學(xué)者角度,盡量將重要內(nèi)容講述到位,后面提供移植好的Demo供大家參考學(xué)習(xí)。

2

移植準(zhǔn)備

移植前,先讓大家認(rèn)識(shí)一下移植的一些準(zhǔn)備條件。

2.1 硬件

兩塊帶有MCU、CAN控制器收發(fā)器的板卡。

該移植教程以STM32F1(自帶CAN控制器),帶有CAN收發(fā)器的開發(fā)板為例來講述。

條件允許的情況下,可以購買一個(gè)CAN總線分析儀。沒有分析儀的朋友,可以用我《CANOpen系列教程06》提供的一個(gè)例程來抓取CAN總線數(shù)據(jù)。

因例程在中斷里用串口打印傳輸數(shù)據(jù)。所以,用例程抓取的CAN總線傳輸速率不能太快(建議低于20幀/秒)。

2.2 MCU資源

1.CAN:CAN總線通信(必備);

2.TIM:CANOpen協(xié)議調(diào)度(必備);

3.UART:調(diào)試信息(選配);

4.GPIO:板卡狀態(tài)指示燈(選配);

2.3 STM32標(biāo)準(zhǔn)外設(shè)庫+FreeRTOS工程

本教程基于STM32標(biāo)準(zhǔn)外設(shè)庫和FreeRTOS系統(tǒng)搭建的工程為例(很早之前我分享過),這里不講述。

運(yùn)行RTOS主要是牽涉到CAN總線數(shù)據(jù)的發(fā)送和接收需要兩個(gè)線程來處理,以及增加一個(gè)CANOpen應(yīng)用程序線程。

基于其他MCU以及RTOS原理類似,也可參考本文。

2.4 下載Canfestival源碼并搭建好環(huán)境

這里的內(nèi)容,如果你不明白,請(qǐng)務(wù)必先閱讀該教程前幾篇相關(guān)文章。

3

生成對(duì)象字典

本移植教程重點(diǎn)是將CANOpen協(xié)議源碼移植到MCU中,使其成功運(yùn)行。因此,對(duì)象字典只配置最基礎(chǔ)的“心跳”。

下面教大家在對(duì)象字典編輯器中生成帶“心跳”的對(duì)象字典。

1.打開編輯器,文件 -> 新建

2.新建“主站”節(jié)點(diǎn)

3.配置心跳信息

4.保存對(duì)象字典:文件 -> 保存 -> 保存在一個(gè)指定位置

5.建立對(duì)象字典

到這里就生成了三個(gè)文件:TestMaster.od、 TestMaster.c 和 TestMaster.h需保存好,在后面需要使用這個(gè)對(duì)象字典源碼。

提示:

A.上面牽涉到三個(gè)地方保存名字:節(jié)點(diǎn)名字、對(duì)象字典工程名字、對(duì)象字典源文件名字,建議都一樣。

B.主站和從站的生成原理一樣,上面是生成主站TestMaster對(duì)象字典,從站TestSlave對(duì)象字典請(qǐng)按照同樣方式生成即可。

4

提取CANOpen源碼

本節(jié)內(nèi)容主要針對(duì)初學(xué)者使其更加理解移植的代碼工程,將CanFestival中源代碼提取做一定說明,并且盡量將源碼文件對(duì)應(yīng)到自己工程下。

當(dāng)然,本文按照常規(guī)方式提取,你也可以按照自己方式提取。同時(shí),整個(gè)工程下其它,如STM32標(biāo)準(zhǔn)外設(shè)庫、FreeRTOS這些文件在這里不作說明。

1.提取頭、源文件(如下圖)

CANOpeninc目錄下19個(gè).h頭文件,來自Canfestival->include下目錄19個(gè)頭文件;

CANOpenincstm32目錄下3個(gè).h頭文件來自Canfestival->includecm4;

其中canfestival.h文件是函數(shù)接口定義(聲明),函數(shù)內(nèi)容需要自己實(shí)現(xiàn)(位于:Appcanopen目錄下canopen_drv.c);

CANOpensrc目錄下12個(gè).c源文件,來自Canfestival->src目錄下的12個(gè)源文件;

其中需要?jiǎng)h除dcf.c文件下第59、98行前面的“inline”關(guān)鍵字;

2.頭文件說明

要修改一下其中的canfestival.h文件:

3.建立canopen文件夾并提取文件

在工程下建立canopen文件夾,提取相應(yīng)的文件,同時(shí)建立自己的文件:canopen_app和canopen_drv.

還需要修改一下congfig.h文件,如下圖:

4.建立CAN和TIM底層驅(qū)動(dòng)文件

在上面canfestival.h文件提供了CAN和TIM的驅(qū)動(dòng)接口,但我們這里不用它那一套接口,自己定義在bsp_can和bsp_timer源代碼下。

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

    關(guān)注

    57

    文章

    2772

    瀏覽量

    464445
  • 協(xié)議
    +關(guān)注

    關(guān)注

    2

    文章

    606

    瀏覽量

    39349
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    653

    瀏覽量

    29476
  • CANopen
    +關(guān)注

    關(guān)注

    8

    文章

    270

    瀏覽量

    43780
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    2025必備知識(shí),CANopen轉(zhuǎn)EtherCAT協(xié)議允許配備啥協(xié)議的電氣設(shè)備

    CANopen轉(zhuǎn)EtherCAT穩(wěn)聯(lián)技術(shù)(WL-COP-ECAT)協(xié)議允許配備 CANopen 的設(shè)備在基于 EtherCAT 的工業(yè)以太網(wǎng)網(wǎng)絡(luò)上使用。
    的頭像 發(fā)表于 12-29 09:50 ?176次閱讀
    2025必備知識(shí),<b class='flag-5'>CANopen</b>轉(zhuǎn)EtherCAT<b class='flag-5'>協(xié)議</b>允許配備啥<b class='flag-5'>協(xié)議</b>的電氣設(shè)備

    AGV行業(yè)設(shè)備協(xié)議新生態(tài):canopen轉(zhuǎn)Profinet網(wǎng)關(guān)揭秘!

    在AGV行業(yè)快速發(fā)展的今天,如何實(shí)現(xiàn)設(shè)備的高效連接和通信成為了許多企業(yè)關(guān)注的焦點(diǎn)。開疆智能Canopen轉(zhuǎn)Profinet網(wǎng)關(guān)KJ-PNG-205的應(yīng)用恰好解決了這問題,它通過將傳統(tǒng)的Canopen
    的頭像 發(fā)表于 12-09 17:13 ?343次閱讀
    AGV行業(yè)設(shè)備<b class='flag-5'>協(xié)議</b>新生態(tài):<b class='flag-5'>canopen</b>轉(zhuǎn)Profinet網(wǎ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è)處理器元件來持續(xù)通信以完成復(fù)雜任務(wù)時(shí),CANopen因其易于集成、高度可配置,以及支持高效、可靠的實(shí)時(shí)數(shù)據(jù)交換等特性,受到了眾多工程師青睞。本文從低功耗電機(jī)控制應(yīng)用的角度深入探討
    的頭像 發(fā)表于 11-04 13:49 ?485次閱讀

    DeviceNet轉(zhuǎn)CANopen協(xié)議網(wǎng)關(guān)(DeviceNet轉(zhuǎn)CANopen

    ,設(shè)備主要功能 捷米特JM-DNT-COP網(wǎng)關(guān)實(shí)現(xiàn)DeviceNet總線和CANopen網(wǎng)絡(luò)連接起來。本網(wǎng)關(guān)連接到DeviceNet總線中作為從站使用,連接到CANopen總線中作為主站
    的頭像 發(fā)表于 09-10 10:16 ?375次閱讀
    DeviceNet轉(zhuǎn)<b class='flag-5'>CANopen</b><b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(DeviceNet轉(zhuǎn)<b class='flag-5'>CANopen</b>)

    EtherNet/IP轉(zhuǎn)CANopen主站協(xié)議轉(zhuǎn)換網(wǎng)關(guān)

    ,通過網(wǎng)關(guān)向CANopen協(xié)議的輸送裝置發(fā)送指令,將組裝好的部件輸送至下工位。 二,典型應(yīng)用拓?fù)鋱D 三,
    的頭像 發(fā)表于 09-02 11:21 ?272次閱讀
    EtherNet/IP轉(zhuǎn)<b class='flag-5'>CANopen</b>主站<b class='flag-5'>協(xié)議</b>轉(zhuǎn)換網(wǎng)關(guān)

    CANopen主站轉(zhuǎn)EtherCAT協(xié)議網(wǎng)關(guān)(EtherCAT轉(zhuǎn)CANopen

    CANopen轉(zhuǎn)EtherCAT 如何實(shí)現(xiàn)高效且穩(wěn)定的連接與通信,這個(gè)問題常常令許多人士深感困惑。在此,作者為大家深入解讀這難題。 遠(yuǎn)創(chuàng)智控YC-ECT-COP 型設(shè)備可以很好地解決這協(xié)議
    的頭像 發(fā)表于 08-29 16:52 ?477次閱讀
    <b class='flag-5'>CANopen</b>主站轉(zhuǎn)EtherCAT<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(EtherCAT轉(zhuǎn)<b class='flag-5'>CANopen</b>)

    EtherNet/IP轉(zhuǎn)CANopen主站協(xié)議網(wǎng)關(guān)(JM-EIP-COP)

    ,通過網(wǎng)關(guān)向CANopen協(xié)議的輸送裝置發(fā)送指令,將組裝好的部件輸送至下工位。 二,典型應(yīng)用拓?fù)鋱D 三,
    的頭像 發(fā)表于 08-26 14:53 ?343次閱讀
    EtherNet/IP轉(zhuǎn)<b class='flag-5'>CANopen</b>主站<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(JM-EIP-COP)

    EtherCAT從站轉(zhuǎn)CANopen主站協(xié)議網(wǎng)關(guān)(JM-ECT-COP)

    ,設(shè)備主要功能 捷米特JM-ECT-COP網(wǎng)關(guān)實(shí)現(xiàn)EtherCAT網(wǎng)絡(luò)與CANopen網(wǎng)絡(luò)之間的數(shù)據(jù)通訊,可連接CANopen網(wǎng)絡(luò)到EtherCAT網(wǎng)絡(luò)。即將CANopen設(shè)備連接
    的頭像 發(fā)表于 08-15 17:36 ?518次閱讀
    EtherCAT從站轉(zhuǎn)<b class='flag-5'>CANopen</b>主站<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)(JM-ECT-COP)

    EtherNet轉(zhuǎn)CANopen協(xié)議轉(zhuǎn)化網(wǎng)關(guān)功能與配置詳解

    如何才能將EtherNet和CANopen網(wǎng)絡(luò)通訊連接起來呢?這幾天有幾個(gè)朋友問到了這個(gè)問題,作者在這里統(tǒng)為大家詳細(xì)說明下。其實(shí)有個(gè)設(shè)備可以很輕松地解決這個(gè)問題,名為YC-EIP
    的頭像 發(fā)表于 07-25 12:03 ?350次閱讀
    EtherNet轉(zhuǎn)<b class='flag-5'>CANopen</b><b class='flag-5'>協(xié)議</b>轉(zhuǎn)化網(wǎng)關(guān)功能與配置詳解

    Profinet轉(zhuǎn)CANopen協(xié)議轉(zhuǎn)化網(wǎng)關(guān)

    怎么樣把Profinet與CANopen連接起來呢? 最近有很多客戶朋友咨詢這個(gè)問題,在這里為大家詳細(xì)說明下。其實(shí)有個(gè)設(shè)備可以很輕松地解決這個(gè)問題,名為YC-PN-COP,下面是詳細(xì)信息。
    的頭像 發(fā)表于 07-22 14:34 ?409次閱讀
    Profinet轉(zhuǎn)<b class='flag-5'>CANopen</b><b class='flag-5'>協(xié)議</b>轉(zhuǎn)化網(wǎng)關(guān)

    LwIP協(xié)議源碼詳解—TCP/IP協(xié)議的實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《LwIP協(xié)議源碼詳解—TCP/IP協(xié)議的實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 07-03 11:22 ?3次下載

    STM32H743怎么在FreeRTOS中移植canopen?

    STM32H743怎么在FreeRTOS中移植canopen?
    發(fā)表于 07-03 06:32

    CANopen協(xié)議移植編譯,直編譯不過的原因?

    a \",\" 錯(cuò)誤指向CANOPEN_NODE_DATA_INITIALIZER(ObjDict) 自己比對(duì)發(fā)現(xiàn)并沒有什么問題,但直編譯不過,希望可以指出來什么問題!什么感謝
    發(fā)表于 04-26 06:03

    【米爾-瑞薩RZ/G2UL開發(fā)板】5.CAN通訊進(jìn)階CANopen

    描述方式,執(zhí)行網(wǎng)絡(luò)管理功能。 1.1 對(duì)象字典 CANopen 對(duì)象字典(OD: Object Dictionary)是 CANopen 協(xié)議最為核心的概念。所謂的 對(duì)象字典就是個(gè)有
    發(fā)表于 03-31 16:19

    CANopen轉(zhuǎn)Profinet網(wǎng)關(guān)連接西門子PLC與變流器通訊

    CANopen轉(zhuǎn)Profinet網(wǎng)關(guān)(XD-COPNm20)在智能領(lǐng)域,變流器的應(yīng)用非常廣泛,變流器般會(huì)采用CANopen協(xié)議。現(xiàn)場(chǎng)采用臺(tái)達(dá)的變流器(支持
    的頭像 發(fā)表于 03-16 11:05 ?741次閱讀
    <b class='flag-5'>CANopen</b>轉(zhuǎn)Profinet網(wǎng)關(guān)連接西門子PLC與變流器通訊