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

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

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

CANOpen系列教程01_ 初識CAN與CANOpen及相關(guān)內(nèi)容

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

1寫在前面

我之前學(xué)習(xí)CANOpen的時候,網(wǎng)上有用的資料極少,走了不少彎路。到目前為止,網(wǎng)上關(guān)于CANOpen的資料依然很少。所以,特地寫下該系列教程,幫助初學(xué)者跨過這道坎。

從我個人學(xué)習(xí)CANOpen的經(jīng)歷來看,學(xué)會使用CANOpen難度其實不大。難點在于需要掌握的基礎(chǔ)知識很多,而且許多都有關(guān)聯(lián)性,容易把人繞暈。

那么,我希望通過結(jié)合之前我的學(xué)習(xí)經(jīng)歷,以及工作經(jīng)驗,站在小白的角度寫下該系列教程。當(dāng)然,該教程由我個人編輯并整理,難免有些廢話,或者錯誤,還請諒解。

2

初識CAN與CANOpen

2.1 什么是CAN?

CAN:是Controller Area Network的縮寫,即控制器局域網(wǎng)絡(luò),屬于工業(yè)現(xiàn)場總線,是ISO國際標(biāo)準(zhǔn)化的串行通信協(xié)議。

從OSI(Open System Interconnection開放系統(tǒng)互聯(lián))7層網(wǎng)絡(luò)模型的角度來看,CAN現(xiàn)場總線僅僅定義了第 1 層(物理層)和第 2 層(數(shù)據(jù)鏈路層)。

而在實際設(shè)計中,這兩層完全由硬件實現(xiàn),設(shè)計人員無需再為此開發(fā)相關(guān)軟件或固件(Firmware),只要了解如何調(diào)用相關(guān)的接口寄存器,即可完成對CAN的控制。

上面介紹的內(nèi)容可能太官方,初學(xué)者可能看了之后還是不明白。簡單的說:CAN總線就是一層硬件協(xié)議。比如:差分信號電平的定義、數(shù)據(jù)幀的定義等等。

PS:初學(xué)者可以結(jié)合UART來理解,比如UART串口發(fā)送一個字符’A’,它就是一種串行通信的方式。

2.2 什么是CANOpen?

CANopen是一種架構(gòu)在CAN控制局域網(wǎng)上的高層軟件通信協(xié)議,包括通信子協(xié)議及設(shè)備子協(xié)議,常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線協(xié)議。

CANopen協(xié)議是在20世紀(jì)90年代末,由總部位于德國紐倫堡的 CiA 組織——CAN-in-Automation,在 CAL(CAN Application Layer)的基礎(chǔ)上發(fā)展而來。

所以,關(guān)于CANOpen協(xié)議內(nèi)容請參看:http://www.can-cia.org

由于CAN總線只定義了OSI中的物理層和數(shù)據(jù)鏈路層,因此對于不同的應(yīng)用出現(xiàn)了不同的【應(yīng)用層協(xié)議】,為了使不同廠商產(chǎn)品能夠相互兼容,世界范圍內(nèi)需要通用的CAN應(yīng)用層通信協(xié)議。

在過去的二三十年中涌現(xiàn)出許多的協(xié)議,不過到現(xiàn)在為止能夠廣泛被承認(rèn)的協(xié)議卻不多,現(xiàn)在應(yīng)用較廣的CAN應(yīng)用層協(xié)議主要有以下三種:

CANopen協(xié)議:主要應(yīng)用在汽車、工業(yè)控制、自動化儀表等領(lǐng)域,目前由 CIA 負(fù)責(zé)管理和維護(hù);

J1939協(xié)議:CAN總線在商用車領(lǐng)域占有絕大部分市場份額的應(yīng)用層協(xié)議,由美國機(jī)動車工程師學(xué)會發(fā)起,現(xiàn)已在全球范圍內(nèi)得到廣泛的應(yīng)用;

DeviceNet協(xié)議:在美國等地占有相當(dāng)大的市場份額,主要用于工業(yè)通信及控制和儀器儀表等領(lǐng)域。

而本文說的CANOpen也是目前應(yīng)用較廣的一種協(xié)議。簡單的說,CANOpen就是CAN總線應(yīng)用層協(xié)議。

PS:學(xué)習(xí)CANOpen應(yīng)用層協(xié)議之前請務(wù)必先了解CAN總線協(xié)議。

3

CAN總線特點

CAN總線采用差分信號傳輸,通常情況下只需要兩根信號線(CAN-H和CAN-L)就可以進(jìn)行正常的通信。在干擾比較強(qiáng)的場合,還需要用到屏蔽地即CAN-G(主要功能是屏蔽干擾信號), CAN協(xié)議推薦用戶使用屏蔽雙絞線作為CAN總線的傳輸線。

CAN總線通信的優(yōu)勢和特點:

A.CAN總線上任意節(jié)點,均可在任意時刻主動的向其它節(jié)點發(fā)起通信,但在同一時刻優(yōu)先級高的節(jié)點能獲得總線的使用權(quán)。

B.標(biāo)準(zhǔn)CAN總線傳輸波特率可達(dá)到1Mbps。在5Kbps的通信波特率下最遠(yuǎn)傳輸距離可以達(dá)到 10Km,即使在1Mbps的波特率下也能傳輸40m的距離。

C.CAN總線定義使用了硬件報文濾波,可實現(xiàn)點對點及點對多點的通信方式,不需要軟件來控制。

D.CAN 總線所掛接的節(jié)點數(shù)量主要取決于CAN總線收發(fā)器或驅(qū)動器,目前的驅(qū)動器一般都可以使同一網(wǎng)絡(luò)容量達(dá)到110個節(jié)點。

E.CAN總線通信介質(zhì)可采用雙絞線、同軸電纜或光纖,選擇極為靈活??纱蟠蠊?jié)約組網(wǎng)成本。

當(dāng)然,CAN總線的優(yōu)勢還有許多,當(dāng)你掌握之后就會明白為什么CAN總線應(yīng)用得如此廣泛了。

4

教程規(guī)劃

CAN總線及CANOpen協(xié)議相關(guān)的內(nèi)容相對比較多,如果每一個細(xì)節(jié)知識點都寫出來,可能花掉我業(yè)余時間寫一年也寫不完。

我寫該教程目的在于引導(dǎo)初學(xué)者入門,我會結(jié)合實例代碼讓大家邊學(xué)邊理解,至于實際項目編程應(yīng)用不一定講述的很多(這個看后面情況)。

首先從CAN底層講起,再到CANOpen協(xié)議相關(guān)基礎(chǔ)知識,最后實際應(yīng)用。當(dāng)然,中間每一個環(huán)節(jié)內(nèi)容相對可能較多,也有可能會遺漏部分內(nèi)容。

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

    關(guān)注

    112

    文章

    16411

    瀏覽量

    178701
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2760

    瀏覽量

    463993
  • CANopen
    +關(guān)注

    關(guān)注

    8

    文章

    267

    瀏覽量

    43624
收藏 人收藏

    評論

    相關(guān)推薦

    晶體生長相關(guān)內(nèi)容——晶型控制與襯底缺陷

    晶體生長在分析晶體生長時,我們需要考慮多個關(guān)鍵因素,這些因素共同影響著晶體生長的質(zhì)量和進(jìn)程。本文介紹了晶體生長相關(guān)內(nèi)容,包括:雜對晶格硬度變化影響、碳化硅晶型控制、襯底缺陷控制和電氣特性控制
    的頭像 發(fā)表于 12-30 11:40 ?125次閱讀

    三格電子-MODBUS TCP轉(zhuǎn)CANOpen網(wǎng)關(guān)

    Modbus TCP轉(zhuǎn)CANopen網(wǎng)關(guān) 型號:SG-TCP-COE-210 產(chǎn)品用途 本網(wǎng)關(guān)可以實現(xiàn)將CANOpen接口設(shè)備連接到MODBUS TCP網(wǎng)絡(luò)中;并且用戶不需要了解具體的CANOpen
    的頭像 發(fā)表于 11-26 11:21 ?148次閱讀
    三格電子-MODBUS TCP轉(zhuǎn)<b class='flag-5'>CANOpen</b>網(wǎng)關(guān)

    三格電子- EtherCAT轉(zhuǎn)CANopen/ CAN網(wǎng)關(guān)

    ECAT轉(zhuǎn)CANopen/ CAN網(wǎng)關(guān)型號:SG-ECAT-COE/CAN 本產(chǎn)品是ECAT(EtherCAT)和CANOPEN(CAN O
    的頭像 發(fā)表于 11-15 15:03 ?237次閱讀
    三格電子- EtherCAT轉(zhuǎn)<b class='flag-5'>CANopen</b>/ <b class='flag-5'>CAN</b>網(wǎng)關(guān)

    Profinet轉(zhuǎn)CanOpen網(wǎng)關(guān)連接與CanOpen協(xié)議磁軌道實現(xiàn)高效連接

    項目旨在展示如何通過開疆智能Profinet轉(zhuǎn)Canopen網(wǎng)關(guān)實現(xiàn)西門子1200PLC與磁軌道之間的連接。以下是項目實施的步驟概要:安裝必要的GSD文件到西門子組態(tài)軟件中,確保系統(tǒng)能夠識別并使用Profinet轉(zhuǎn)Canopen網(wǎng)關(guān)設(shè)備。
    的頭像 發(fā)表于 11-14 10:01 ?188次閱讀
    Profinet轉(zhuǎn)<b class='flag-5'>CanOpen</b>網(wǎng)關(guān)連接與<b class='flag-5'>CanOpen</b>協(xié)議磁軌道實現(xiàn)高效連接

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

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

    MODBUS TCP 轉(zhuǎn) CANOpen

    產(chǎn)品概述 SG-TCP-COE-210 網(wǎng)關(guān)可以實現(xiàn)將 CANOpen 接口設(shè)備連接到 MODBUS TCP 網(wǎng)絡(luò)中。用戶不需要了解具體的 CANOpen 和 Modbus TCP 協(xié)議即可實現(xiàn)
    的頭像 發(fā)表于 09-24 13:59 ?298次閱讀
    MODBUS TCP 轉(zhuǎn) <b class='flag-5'>CANOpen</b>

    CANopen系列CANopen從站為什么總不上傳PDO報文?

    CANopen網(wǎng)絡(luò)中無法獲取從站的TPDO數(shù)據(jù)?本文將為您解析可能的原因及解決方案。通過檢查TPDO的通信參數(shù)和傳輸類型,確保主站與從站的數(shù)據(jù)同步,快速定位問題所在。如果你的CANopen網(wǎng)絡(luò)中
    的頭像 發(fā)表于 09-19 08:05 ?374次閱讀
    【<b class='flag-5'>CANopen</b><b class='flag-5'>系列</b>】<b class='flag-5'>CANopen</b>從站為什么總不上傳PDO報文?

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

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

    STM32H743怎么在FreeRTOS中移植canopen?

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

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

    1 CANopen協(xié)議 從 OSI 的 7 層網(wǎng)絡(luò)模型的角度來看同,CAN(Controller Area Network)現(xiàn)場總線僅僅 定義了第 1 層(物理層,見 ISO11898-2 標(biāo)準(zhǔn)
    發(fā)表于 03-31 16:19

    醫(yī)療設(shè)備CAN/CANopen總線數(shù)據(jù)傳輸解決方案

    盟通提出的醫(yī)療設(shè)備CAN/CANopen總線數(shù)據(jù)傳輸解決方案是基于IXXAT的高性能CAN設(shè)備,助力您實現(xiàn)穩(wěn)定、便捷的數(shù)據(jù)采集和分析,為您的項目創(chuàng)新提供有利支持。
    的頭像 發(fā)表于 03-18 14:26 ?1566次閱讀
    醫(yī)療設(shè)備<b class='flag-5'>CAN</b>/<b class='flag-5'>CANopen</b>總線數(shù)據(jù)傳輸解決方案

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

    ,S7-1500系列PLC做主站,通過CANopen轉(zhuǎn)Profinet網(wǎng)關(guān)(XD-COPNm20)連接變流器與PLC。CANopen轉(zhuǎn)Profinet網(wǎng)關(guān)(XD-COPNm20)支持網(wǎng)口,具有
    的頭像 發(fā)表于 03-16 11:05 ?698次閱讀
    <b class='flag-5'>CANopen</b>轉(zhuǎn)Profinet網(wǎng)關(guān)連接西門子PLC與變流器通訊

    CANopen以太網(wǎng)網(wǎng)關(guān)怎么用?

    CANopen以太網(wǎng)網(wǎng)關(guān)怎么用? CANopen以太網(wǎng)網(wǎng)關(guān)是一種連接CANopen總線和以太網(wǎng)的設(shè)備,它提供了在CANopen網(wǎng)絡(luò)和以太網(wǎng)之間傳輸數(shù)據(jù)的功能。本文將詳細(xì)介紹
    的頭像 發(fā)表于 02-02 16:59 ?3404次閱讀

    EtherCAT轉(zhuǎn)CANopen網(wǎng)關(guān)在工業(yè)領(lǐng)域的應(yīng)用方法

    CANopen網(wǎng)關(guān)進(jìn)行配置。配置內(nèi)容包括EtherCAT轉(zhuǎn)CANopen網(wǎng)關(guān)的IP地址、端口號、轉(zhuǎn)換規(guī)則等。 4.連接設(shè)備:將需要通訊的設(shè)備連接到EtherCAT轉(zhuǎn)CANopen網(wǎng)關(guān)上
    發(fā)表于 01-31 14:54

    在自動化碼頭中CANopen與Ethercat協(xié)議的應(yīng)用

    這兩種協(xié)議。CANopen是一種基于CAN總線的通訊協(xié)議,被廣泛應(yīng)用于工業(yè)自動化領(lǐng)域,尤其是在運(yùn)動控制和傳感器通信方面。而EtherCAT是一種實時以太網(wǎng)通訊協(xié)議,具有高速、高可靠性和高擴(kuò)展性的特點,被廣泛應(yīng)用于現(xiàn)代工業(yè)自動化系統(tǒng)的主從站通訊。
    的頭像 發(fā)表于 01-19 14:57 ?402次閱讀