完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > CANopen
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通信協(xié)協(xié)議,包括通信子協(xié)議及設(shè)備子協(xié)議,常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線。
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通信協(xié)協(xié)議,包括通信子協(xié)議及設(shè)備子協(xié)議,常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線。
總述
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通訊協(xié)定,包括通訊子協(xié)定及設(shè)備子協(xié)定常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線。
CANopen 實(shí)現(xiàn)了OSI模型中的網(wǎng)絡(luò)層以上(包括網(wǎng)絡(luò)層)的協(xié)定。CANopen 標(biāo)準(zhǔn)包括尋址方案、數(shù)個小的通訊子協(xié)定及由設(shè)備子協(xié)定所定義的應(yīng)用層。 CANopen 支援網(wǎng)絡(luò)管理、設(shè)備監(jiān)控及節(jié)點(diǎn)間的通訊,其中包括一個簡易的傳輸層,可處理資料的分段傳送及其組合。一般而言數(shù)據(jù)鏈結(jié)層及物理層會用CAN來實(shí)作。除了 CANopen 外,也有其他的通訊協(xié)定(如EtherCAT)實(shí)作 CANopen 的設(shè)備子協(xié)定。
CANopen由非營利組織CiA(CAN in Automaion)進(jìn)行標(biāo)準(zhǔn)的起草及審核工作,基本的 CANopen 設(shè)備及通訊子協(xié)定定義在 CAN in Automation (CiA) draft standard 301中。針對個別設(shè)備的子協(xié)定以 CiA 301 為基礎(chǔ)再進(jìn)行擴(kuò)充。如針對 I/O 模組的 CiA401 及針對運(yùn)動控制的 CiA402。
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通信協(xié)協(xié)議,包括通信子協(xié)議及設(shè)備子協(xié)議,常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線。
總述
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通訊協(xié)定,包括通訊子協(xié)定及設(shè)備子協(xié)定常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線。
CANopen 實(shí)現(xiàn)了OSI模型中的網(wǎng)絡(luò)層以上(包括網(wǎng)絡(luò)層)的協(xié)定。CANopen 標(biāo)準(zhǔn)包括尋址方案、數(shù)個小的通訊子協(xié)定及由設(shè)備子協(xié)定所定義的應(yīng)用層。 CANopen 支援網(wǎng)絡(luò)管理、設(shè)備監(jiān)控及節(jié)點(diǎn)間的通訊,其中包括一個簡易的傳輸層,可處理資料的分段傳送及其組合。一般而言數(shù)據(jù)鏈結(jié)層及物理層會用CAN來實(shí)作。除了 CANopen 外,也有其他的通訊協(xié)定(如EtherCAT)實(shí)作 CANopen 的設(shè)備子協(xié)定。
CANopen由非營利組織CiA(CAN in Automaion)進(jìn)行標(biāo)準(zhǔn)的起草及審核工作,基本的 CANopen 設(shè)備及通訊子協(xié)定定義在 CAN in Automation (CiA) draft standard 301中。針對個別設(shè)備的子協(xié)定以 CiA 301 為基礎(chǔ)再進(jìn)行擴(kuò)充。如針對 I/O 模組的 CiA401 及針對運(yùn)動控制的 CiA402。
CANopen優(yōu)勢概述
1.物理層非常穩(wěn)定;2. 數(shù)據(jù)鏈路層可靠,因?yàn)橄啾绕渌锌偩€,只有CAN可以做到達(dá)到漢明間距(Hamming Distanz)為6,能夠檢測報文里多達(dá)5個隨機(jī)引入的位錯誤及15位突發(fā)性錯誤。3. 靈活,兼容性高;4. 可互操作性高;5. 價格低 (對于設(shè)備生產(chǎn)商來說);6. CAN產(chǎn)品尺寸小,節(jié)省空間;7.支持冗余備用
CANopen 基礎(chǔ)
1. TPDO和RPDO都是針對從站來說的,協(xié)議上沒有有講任何一個關(guān)于主站的概念,協(xié)議就只是定義從站,沒有定義主站任何東西。
TPDO:從站-》主站
RPDO:主站-》從站
2. PDO的COB-ID是用來唯一標(biāo)識一個PDO報文的,不同的PDO設(shè)置不同的COB-ID。
3. 主站和從站的通信過程基本是這樣的:
a.主站檢測從站是否在線;
b.在線的話開始通過SDO配置從站;
c.配置成功,則發(fā)送一個NMT start remote node指令讓從站進(jìn)入Operation狀態(tài),開始PDO的通信。
4. CANopen所定義的所有Object都是要在從站上實(shí)現(xiàn)的,只是數(shù)值是由主站在開始PDO傳輸前通過SDO寫入的。
5. 標(biāo)識符正如其名,是CAN幀的一個標(biāo)識,CANopen使用了這個標(biāo)識符,并且把它定義為COB-ID,規(guī)定了高四位為功能碼,低7位為節(jié)點(diǎn)ID,但是,CANopen并沒有規(guī)定每個節(jié)點(diǎn)發(fā)出的所有幀都必須帶上自己的ID,也沒有規(guī)定接收的幀都必須跟自己的ID匹配,所以從根上說,COB-ID還是標(biāo)識符的作用,它只是被規(guī)劃了一下含義,舉兩個例子:PDO,COB-ID的組成即可以是發(fā)送方ID也可以是接收方ID,看你方便和具體使用規(guī)律;SDO,規(guī)定了使用server的ID來溝通。CANopen的預(yù)定義連接集是比較糾結(jié),描述的不夠清晰。
6. Heartbeat并不分主站和從站,僅是一種斷線檢測機(jī)制,主站可以發(fā)給從站,從站也可以發(fā)給主站,看用戶的需求,一般的主站配置軟件都可以設(shè)置主站或從站是否要監(jiān)控對方的在線狀態(tài)。
支持heartbeat的從站,都有1016和1017兩個參數(shù),1017的數(shù)值表示從站送出heartbeat報文的間隔時間,1016表示從站監(jiān)控主站或其它從站的超時時間(如果從站支持,可以同時監(jiān)控主站或其它從站的在線狀態(tài),根據(jù)應(yīng)用需求而定),所以1016是一個數(shù)組型的參數(shù)。
當(dāng)主站在consumer的時間內(nèi)沒有收到從站的Heartbeat(producer時間間隔發(fā)送),那么認(rèn)為從站掉線。
7. 實(shí)現(xiàn)CANOPEN的步驟:
?、?CANopen 協(xié)議體系的實(shí)現(xiàn);
?、?CANopen 相應(yīng)開發(fā)和配置工具的實(shí)現(xiàn)。
第2 階段主要完成CANopen 標(biāo)準(zhǔn)開發(fā)工具的開發(fā),開發(fā)過程可以分為 2 個步驟:第1 個步驟是EDS 和DCF 配置工具的開發(fā);第2 個步驟是開發(fā)實(shí)現(xiàn)對象字典的工具。
實(shí)現(xiàn)對象字典的過程是:將EDS和DCF用“文件轉(zhuǎn)化工具”轉(zhuǎn)化為“內(nèi)部實(shí)現(xiàn)描述(XML)”,再用“目標(biāo)配置代碼工具”從而實(shí)現(xiàn)對象字典。
EDS就是提供從站的一些默認(rèn)的參數(shù)值給主站的組態(tài)軟件,供用戶配置從站的時候使用,EDS不是必須的,但大多數(shù)的主站配置軟件都需要,有些主站軟件也不需要EDS文件,比如Bechkoff的主站就不需要從站提供EDS文件。
8. 一般每個節(jié)點(diǎn)既可以作為server又可以作為client,server向client開放自己的OD供訪問,兩者的parameter都存放在設(shè)備唯一的OD中。
9. 不同的傳輸類型支持幾種不同的數(shù)據(jù)傳輸方式:
?、?同步觸發(fā),由同步幀觸發(fā),以同步整個網(wǎng)絡(luò)數(shù)據(jù),不同的數(shù)據(jù)頻率通過設(shè)置不同的同步數(shù)實(shí)現(xiàn)。
?、?事件觸發(fā)。
?、?內(nèi)部定時觸發(fā)(也可以歸到事件觸發(fā)) 。
10. 同步PDO的實(shí)際意義與應(yīng)用場合
應(yīng)用程序刷進(jìn)對象字典時間和頻率都是由編程人員自行確定的,你可以根據(jù)PDO的類型自行確定,比如每隔5個sync的時間刷新一次對象內(nèi)容,這樣數(shù)據(jù)的新鮮程度是5個sync,如果要求更進(jìn)一步的新鮮程度,你可以在刷新對象內(nèi)容后直接觸發(fā)一幀PDO。
同步PDO在實(shí)際應(yīng)用中的優(yōu)勢:很多,提供一致的系統(tǒng)節(jié)拍,使得總線的數(shù)據(jù)盡量保證新鮮程度的同時,能夠減少通訊量,合理的規(guī)劃總線占用率。比如總線分布式的控制回路,怎樣保證控制周期的準(zhǔn)確性和數(shù)據(jù)的有效性呢?
同步傳輸?shù)淖钪匾獞?yīng)用是多軸同步控制,沒有這種同步機(jī)制,多軸傳動功能是沒有辦法實(shí)現(xiàn)的。
PDO只是個載體,或者說它好比一輛貨車,車廂里裝什么貨,是可以配置的,這些由PDO映射來完成,PDO映射用來指定把對象字典的那些對象裝進(jìn)PDO,或者從接收的PDO中將數(shù)據(jù)放到那些對象中。
SYNC周期是恒定的,它基本上就是系統(tǒng)通信部分的節(jié)拍了,節(jié)拍亂了,一切都是浮云了。
11.CAN及CANOPEN通訊協(xié)議大全
12. 移植canfestival到ARM上的步驟:
1)在學(xué)習(xí)移植CANopen之前要先熟悉CAN,能夠使用CAN進(jìn)行節(jié)點(diǎn)間的通信設(shè)計(jì)。
2)熟悉CAnopen協(xié)議,通讀一遍301協(xié)議,并且結(jié)合國內(nèi)的一些介紹性資料了解一下CAnopen的結(jié)構(gòu)、定位和工作方式。
3)結(jié)合一些較簡單的協(xié)議棧代碼,比如置頂?shù)膬商仔〈a,能夠讀懂一個,明白運(yùn)行過程,最好能移植到你的硬件上試一下,畢竟它的代碼量較之CANFestival要小的多。
4)準(zhǔn)備移植CANFestival,先在你熟悉和有條件實(shí)驗(yàn)的平臺下,比如x86的windows下試著編譯運(yùn)行CANFestival(我記得有window的vc工程可以編譯的)。熟悉和理解CANFestival,最后再把CANFestival移植到你的目標(biāo)平臺,可能會需要編寫硬件接口驅(qū)動的。
13. 心跳報文是單向的,一般的主站都可以提供配置的方法,你可以讓主站監(jiān)控從站是否斷線,也可以讓從站監(jiān)控主站是否斷線,或者兩個一起互相監(jiān)控。
14. 一般的主站都需要一個配套的配置軟件,我們習(xí)慣叫網(wǎng)絡(luò)組態(tài)軟件(Configuration tool software),讓用戶可以根據(jù)自己的需求來對網(wǎng)絡(luò)進(jìn)行配置。
15. 同步和異步,是針對不同的應(yīng)用需求定義的方式,如果你的控制在各個從站間不需要配合,其實(shí)異步是比較科學(xué)的方式,一般同步都是運(yùn)動控制中使用。
16. EDS文件只是一個具有可讀性的設(shè)備對象字典的描述,設(shè)備實(shí)際的對象字典,是對它的軟件實(shí)現(xiàn),即設(shè)備實(shí)現(xiàn)了這個EDS所描述的對象字典,如果從站資料里面EDS文件支持讀寫,而實(shí)際訪問卻不可寫,要么是從站沒按照這個對象字典實(shí)現(xiàn),要么是有其它的條件開啟寫入功能,比如物理開關(guān)或者參數(shù)開關(guān)。最好還是詳細(xì)閱讀一下從站的資料,也可以咨詢該設(shè)備的供應(yīng)商。
17. dummy在CANOPEN里原本的意思是空的,沒有意義的對象,用來占用PDO的數(shù)據(jù),以達(dá)到調(diào)整PDO數(shù)據(jù)結(jié)構(gòu)的目的。你基本上可以理解它的作用是會占用PDO的數(shù)據(jù)區(qū),但不起作用。
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通訊協(xié)議,其中對象字典是協(xié)議中最為核心的概念,...
廣成科技GCAN-30X系列模塊是一系列定制型的CANopen轉(zhuǎn)換模塊,該模塊是在CAN總線網(wǎng)關(guān)轉(zhuǎn)換器設(shè)備的基礎(chǔ)上在CAN總線端增加了CANopen通信...
耐用通訊 Canopen 轉(zhuǎn) modbus 網(wǎng)關(guān)在改造項(xiàng)目中的應(yīng)用
關(guān)鍵字:Canopen轉(zhuǎn)Modbus RTU、canopen機(jī)器人、視覺采集、 一、 摘要 客戶要求是在工廠項(xiàng)目改造中,將六軸機(jī)器人控制器與工業(yè)照相機(jī)進(jìn)...
2023-12-25 標(biāo)簽:modbus網(wǎng)關(guān)CANopen 7702 0
在CAN/CANopen產(chǎn)品開發(fā)過程中,數(shù)據(jù)分析是非常關(guān)鍵的一環(huán)。數(shù)據(jù)幀分析軟件就如您工作中的萬能工具。不但能夠抓取CAN數(shù)據(jù)包,還應(yīng)能夠協(xié)助您分析數(shù)據(jù)...
淺談CM CANopenS7-1200 PLC的CANopen連接
MS Industrial Networks 的 CM CANopen 模塊與 Siemens 的 S7-1200 PLC 的 TIA Portal 配...
啟動管理器實(shí)現(xiàn)了CiA 302中定義的CANopen網(wǎng)絡(luò)的啟動功能。CANopen Manager可以配置為根據(jù)設(shè)備類型(0x1000)和身份數(shù)據(jù)(0x...
CANopen是實(shí)現(xiàn)CAN設(shè)備組網(wǎng)的典型協(xié)議棧和規(guī)范,對應(yīng)于軟件系統(tǒng)中,有一些開源的軟件組件,實(shí)現(xiàn)了CANopen協(xié)議棧,例如CANopenNode和C...
CAN上層協(xié)議CANOpen協(xié)議的嵌入式簡化說明
CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通訊協(xié)定,包括通訊子協(xié)定及設(shè)備子協(xié)定常在嵌入式...
CANOPEN-DS301應(yīng)用層和通信協(xié)議的詳細(xì)資料免費(fèi)下載立即下載
類別:網(wǎng)絡(luò)協(xié)議論文 2018-09-03 標(biāo)簽:通信協(xié)議CANopen應(yīng)用層
類別:通信網(wǎng)絡(luò) 2019-07-09 標(biāo)簽:寄存器物理層CANopen
基于STM32的CANopen協(xié)議的主從通信設(shè)計(jì)立即下載
類別:通信網(wǎng)絡(luò) 2017-11-09 標(biāo)簽:STM32CANopen主從通信
類別:通信網(wǎng)絡(luò) 2020-10-13 標(biāo)簽:收發(fā)器控制器CANopen
類別:通信網(wǎng)絡(luò) 2020-03-24 標(biāo)簽:寄存器總線CANopen
詳解CANOPEN總線:最大長度和節(jié)點(diǎn)最多個數(shù)
CANopen是一個基于CAN(控制局域網(wǎng))串行總線系統(tǒng)和CAL(CAN應(yīng)用層)的高層協(xié)議。CANopen通訊協(xié)議CiADS-301包括周期和事件驅(qū)動型...
2021-02-10 標(biāo)簽:節(jié)點(diǎn)CANopen長度 2.9萬 0
CANOpen系列教程03 _CAN收發(fā)器功能、原理及作用
CANOpen系列教程03_CAN收發(fā)器功能、原理及作用
CANOpen系列教程10_ 關(guān)于Canfestival及對象字典生成工具環(huán)境搭建
CANOpen系列教程10_關(guān)于Canfestival及對象字典生成工具環(huán)境搭建
CANOpen系列教程15_NMT網(wǎng)絡(luò)網(wǎng)絡(luò)與相關(guān)源碼說明
CANOpen系列教程15_NMT網(wǎng)絡(luò)網(wǎng)絡(luò)和相關(guān)源碼說明
CANOpen系列教程01_ 初識CAN與CANOpen及相關(guān)內(nèi)容
CANOpen系列教程01_初識CAN與CANOpen及相關(guān)內(nèi)容
CANOpen系列教程08_ CANOpen通信接口引導(dǎo)學(xué)習(xí)
CANOpen系列教程08_CANOpen通信接口引導(dǎo)學(xué)習(xí)
CANOpen系列教程04 _CAN總線波特率、位時序、幀類型及格式說明
CANOpen系列教程04_CAN總線波特率、位時序、幀類型及格式說明
CANOpen系列教程11_ 深度分析CanFestival_3架構(gòu)
CANOpen系列教程11_深度分析CanFestival_3架構(gòu)
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺 | 無人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |