国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CANOpen系列教程14_協議源碼移植 (二)

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-06 15:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1寫在前面

該系列教程上一篇文章《協議源碼移植(一)》算是對CANOpen移植的準備工作,如果想要理解移植過程的知識,其實還有許多內容得了解。

本文挑一些重點來講述,從協議源碼添加到工程,源代碼理解,到最后輸出效果。

提示:該系列教程基于:CanFestival架構、STM32F1芯片、FreeRTOS操作系統Keil MDK-ARM開發環境。

2

添加源碼、路徑

本節內容針對初學者做出簡要描述,相關內容可參看文章《Keil系列教程02_新建基礎軟件工程》。

2.1 添加組、文件

簡單來說,就是在你已建好的工程中添加與CANOpen相關的組和文件,如下圖:

2.2 添加路徑

添加CANOpen源碼的inc頭文件等相關路徑,編譯的時候才能找到對應文件。

3

添加代碼及分析

移植的重要過程就是添加、刪除和修改源代碼這一步驟。從教程上一篇文章下載,并看過源代碼的朋友就會發現,其實我們需要添加的代碼并不多,主要就是需要實現幾個底層的驅動函數。

下面將重要的幾點羅列出來。

1.修改canfestival.h文件

上文說了一下:添加三行語句,防止遞歸包含。

這里就是CANOpen定義的底層驅動接口,接口函數具體代碼需要我們自己實現。

canSend這個函數被CANOpen源代碼調用的最多,我們最好不修改函數接口,同時需要我們實現(我在canopen_drv.c中實現的)。

其它initTimer、 canInit等函數接口,在源碼中沒有調用,我也沒有按照這套接口來實現(初始化我在bsp下實現的)。

2.底層驅動初始化代碼

上面說的initTimer、 canInit初始化,我這邊為了與我代碼一致,使用TIM_Initializes、CAN_Initializes替代。

分別位于bsp_timer.c 和 bsp_can.c下面,實現的具體內容這里不描述,具體可以下載源碼工程參看。

3.定時器調度相關接口

其中setTimer和getElapsedTime這兩個函數會被timer.c協議源文件調用。在timer.h里面有什么(如下圖),但函數體沒有實現,需要我們自己實現。

同時,TimeDispatch函數已經實現,定義在timer.c,但需要被定時調用(調度)。

4.CAN發送接口函數canSend

這個CAN發送函數相當重要,接口最好不要自定義,因為scr下面多個源文件都調用了該函數。

同時,發送函數會被定時調度。所以,如果你調度方式像我例程那樣,使用定時器中斷的方式實現。那么,你就要考慮在中斷函數里面發送的情況。

以上就是CANOpen移植,底層驅動相關的一些接口實現和說明。這部分內容,CanFestival框架提供源碼是定義在drivers下面,比如STM32F1的就是cm3下面的cm3.c:

我單獨提出來實現這些驅動函數是因為我跑了一個FreeRTOS系統。當然,你的驅動也可按照drivers下面那樣實現。

5.其它

A.發送和接收緩存

我這邊是通過隊列來實現發送和接收緩存,而cm3.c是通過MessBuf_Write和MessBuf_Read來實現緩存。

B.中斷接收

我使用CAN中斷接收數據,和定時器中斷調度。

提示:我中斷入口函數是宏定義實現的,需要包含宏定義頭文件。

#define CAN_RX_IRQHandler USB_LP_CAN1_RX0_IRQHandler

#define CANOPEN_TIM_IRQ_Handler TIM2_IRQHandler

C.配置節點

配置節點ID,節點的狀態,這里只是簡單的Demo,沒有添加應用代碼。

4

工程下載及運行效果

1.下載工程“CANOpen工程模板(含主、從站-心跳)”

https://pan.baidu.com/s/1LzD0Epc-Z8vlHsb-sD3WVw

提取碼:l2dc

2.運行效果

我提供的例程是一個只有心跳(間隔時間我們配置為1000ms)Demo工程。所以,啟動之后,你會發現總線上間隔1秒有一個心跳。

下圖是我通過CAN分析儀抓取的CAN總線數據(如果你沒有分析儀,可以用我《系列教程6》提供的例程,通過串口打印)

先啟動一會兒主站,然后關閉,再啟動從站的數據,重要信息我都標記出來了。

A.上線報文:ID:0x700 Data:0

B.網絡管理:ID:0x000 Data:00代表管理所有節點 Data:80代表復位節點

C.心跳報文:ID:0x700 Data:05代表Operational操作狀態

提示:主站具有網絡管理,而從站沒有。同時,數據值(如81、05)的含義可參看CiA 301手冊網絡管理的章節(后期進行講述)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN
    CAN
    +關注

    關注

    59

    文章

    3067

    瀏覽量

    472747
  • CANopen
    +關注

    關注

    8

    文章

    492

    瀏覽量

    49027
  • STM32F
    +關注

    關注

    1

    文章

    42

    瀏覽量

    18781
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ProfiNet轉CANopen協議轉換網關實現西門子1200 PLC與多個CANopen水下儀表通訊的配置案例

    CANopen 協議,且數量超過 9 臺。傳統方案是在 PLC 機架內加裝 CM CANopen 模塊,但受限于海底長距離總線拓撲與防爆分區,一旦超過 8 個節點即出現報文碰撞、丟包率 >3 %,無法滿足
    的頭像 發表于 11-14 10:32 ?707次閱讀
    ProfiNet轉<b class='flag-5'>CANopen</b><b class='flag-5'>協議</b>轉換網關實現西門子1200 PLC與多個<b class='flag-5'>CANopen</b>水下儀表通訊的配置案例

    協議橋接新范式:穩聯技術打通EtherCAT與CANopen,賦能施耐德變頻器

    協議橋接新范式:穩聯技術打通EtherCAT與CANopen,賦能施耐德變頻器 本方案實現歐姆龍控制器(EtherCAT主站)通過EtherCAT-CANopen協議轉換網關控制施耐德
    的頭像 發表于 11-07 15:20 ?1427次閱讀
    <b class='flag-5'>協議</b>橋接新范式:穩聯技術打通EtherCAT與<b class='flag-5'>CANopen</b>,賦能施耐德變頻器

    CANopen轉Profient網關協議介紹

    CANopen介紹: CANopen是一種基于控制器局域網(CAN)的高層工業通信協議,由國際用戶和制造商協會CiA于1995年發布,基礎規范為CiA 301標準。該協議覆蓋OSI模型
    的頭像 發表于 09-25 17:31 ?781次閱讀
    <b class='flag-5'>CANopen</b>轉Profient網關<b class='flag-5'>協議</b>介紹

    通信協議高材生,PROFINET to CANopen網關連接西門子PLC與匯川變頻器

    PLC通過CANopen監控變頻器的運行是工業中較為常見的應用,控制中心系統通過監控變頻器不同的狀態來控制變頻器啟停,設定變頻器的運行速度進而控制電機。監控系統采用西門子1500系列PLC,支持
    的頭像 發表于 08-12 10:49 ?995次閱讀
    通信<b class='flag-5'>協議</b>高材生,PROFINET to <b class='flag-5'>CANopen</b>網關連接西門子PLC與匯川變頻器

    承擔CANOPEN轉PROFINET協議轉換功能的網關與臺達伺服器的連接

    西門子S7 - 1200系列PLC可編程邏輯控制器(PLC),需與具備CANOPEN通訊功能的伺服驅動器設備進行連接。西門子的PLC采用PROFINET實時以太網通訊協議,若要連接CANOPE
    的頭像 發表于 07-24 18:01 ?523次閱讀
    承擔<b class='flag-5'>CANOPEN</b>轉PROFINET<b class='flag-5'>協議</b>轉換功能的網關與臺達伺服器的連接

    CANopen轉EtherCAT協議轉換案例解析

    在工業自動化領域,運動控制器與傳感器之間的協議兼容性是系統集成中的關鍵挑戰。某智能裝備制造企業采用EtherCAT協議的運動控制器作為主站,需驅動基于CANopen協議的分布式傳感器網
    的頭像 發表于 06-17 19:22 ?534次閱讀
    <b class='flag-5'>CANopen</b>轉EtherCAT<b class='flag-5'>協議</b>轉換案例解析

    協議大和解:ETHERCAT轉CANopen網關配置

    最近有同學后臺咨詢疆鴻智能EtherCAT轉CANopen協議轉換網關如何配置,小編今天給大家詳細分享下配置的步驟。 一,設備主要功能 JH-ECT009 型網關是EtherCAT網絡
    的頭像 發表于 05-21 14:55 ?723次閱讀
    <b class='flag-5'>協議</b>大和解:ETHERCAT轉<b class='flag-5'>CANopen</b>網關配置

    面向高溫工業場景的EtherCAT/CANopen協議轉換系統設計與應用

    在金屬冶煉行業,高效穩定的通信系統是保障生產流程順暢、提升生產效率的關鍵。從礦石預處理、高溫熔煉,到精煉成型,各個環節的設備緊密協作,而JH-ECT009疆鴻智能EtherCAT轉CANopen協議
    的頭像 發表于 05-21 14:41 ?393次閱讀
    面向高溫工業場景的EtherCAT/<b class='flag-5'>CANopen</b><b class='flag-5'>協議</b>轉換系統設計與應用

    EtherCAT轉CANopen協議網關應用詳解

    成為運動控制領域的“明星”,而CANopen則憑借靈活性和成本優勢在中小型設備中廣泛應用。當兩者相遇時,如何打破協議阻礙,實現無縫互聯? EtherCAT轉CANopen網關通過智能協議
    的頭像 發表于 05-19 14:19 ?621次閱讀
    EtherCAT轉<b class='flag-5'>CANopen</b><b class='flag-5'>協議</b>網關應用詳解

    當沖壓焊接遇上Canopen到Profinet協議轉換網關

    在工業自動化領域,設備間的“對話”效率直接決定了生產線的生命力。沖壓焊接作為金屬加工的核心環節,常常面臨設備品牌多樣、通信協議不統一的困境——德國伺服電機用Canopen協議傳遞控制指令,國產機械手
    的頭像 發表于 05-11 10:51 ?484次閱讀
    當沖壓焊接遇上<b class='flag-5'>Canopen</b>到Profinet<b class='flag-5'>協議</b>轉換網關

    Profinet轉CanOpen網關,打破協議壁壘的關鍵技術

    在石油化工行業的生產現場,各類自動化設備如同精密運轉的神經系統,而通信協議則是傳遞信號的"語言"。當不同廠商的設備采用Canopen與Profinet這兩種主流工業協議時,就像
    的頭像 發表于 05-10 14:14 ?547次閱讀
    Profinet轉<b class='flag-5'>CanOpen</b>網關,打破<b class='flag-5'>協議</b>壁壘的關鍵技術

    使用ES32實現CANopen從機

    CANopen是一種基于CAN的通信協議,已在工業領域得到了廣泛應用。CAN提供可靠的底層數據傳輸,CANopen提供標準化的應用層協議。在CANo
    的頭像 發表于 03-26 19:05 ?2129次閱讀
    使用ES32實現<b class='flag-5'>CANopen</b>從機

    EtherCAT轉CANopen配置CANopen側的PDO映射

    在工業自動化領域,EtherCAT和CANopen是兩種廣泛應用的通信協議。它們各自具有獨特的優勢,但在某些應用場景下,需要將這兩種協議進行轉換以實現設備間的高效數據交換。本文將詳細介紹如何在
    的頭像 發表于 03-26 17:56 ?1069次閱讀
    EtherCAT轉<b class='flag-5'>CANopen</b>配置<b class='flag-5'>CANopen</b>側的PDO映射

    CANOPEN協議詳細介紹

    ???????? CANOPEN協議是基于CAN總線協議建立的應用層協議CANOPEN協議
    發表于 03-26 15:27 ?0次下載