99年保密協(xié)議的造謠者【CANOpen協(xié)議的分析與研究】
發(fā)布時(shí)間:2020-02-16 來源: 日記大全 點(diǎn)擊:
摘要:CANopen是CAN上的高層通信協(xié)議,本文通過對CANopen協(xié)議的四種的通訊模式的分析,比較過程數(shù)據(jù)對象PDO模式和服務(wù)數(shù)據(jù)對象模式在實(shí)現(xiàn)消息機(jī)制上的異同,并利用CANopen通信模型構(gòu)造了電梯控制系統(tǒng)的基本框架模型,總結(jié)了CANopen協(xié)議的優(yōu)缺點(diǎn)和適用場合。
關(guān)鍵詞:CAN;CANopen;PDO;SDO
中圖分類號:TP271 文獻(xiàn)標(biāo)識碼:A
1 概述
CANopen是一種架構(gòu)在控制局域網(wǎng)路(ControlArea Network,CAN)上的高層通訊協(xié)議,包括通訊子協(xié)定及設(shè)備子協(xié)議,常在嵌入式系統(tǒng)中使用,也是工業(yè)控制常用到的一種現(xiàn)場總線。CANopen是開放的、標(biāo)準(zhǔn)化的高層協(xié)議:這個協(xié)議支持各種CAN廠商設(shè)備的互用性、互換性,能夠?qū)崿F(xiàn)在CAN網(wǎng)絡(luò)中提供標(biāo)準(zhǔn)的、統(tǒng)一的系統(tǒng)通訊模式,提供設(shè)備功能描述方式,執(zhí)行網(wǎng)絡(luò)管理功能。
應(yīng)用層(Application layer):為網(wǎng)絡(luò)中每一個有效設(shè)備都能夠提供一組有用的服務(wù)與協(xié)議。
通訊描述(Communication profile):提供配置設(shè)備、通訊數(shù)據(jù)的含義,定義數(shù)據(jù)通訊方式。
設(shè)備描述(Device proflile):為設(shè)備(類)增加符合規(guī)范的行為。
CANopen主要應(yīng)用在汽車、工業(yè)控制、自動化儀表等領(lǐng)域,目前由CIA負(fù)責(zé)管理和維護(hù)。
2 CANopen通訊模式
CANopen網(wǎng)絡(luò)中的通訊是通過消息機(jī)制來實(shí)現(xiàn)的,CANopen通訊模型定義了4種報(bào)文(通訊對象):
2.1 過程數(shù)據(jù)對象PDO(Process Data Object)
2.1.1 用來傳輸實(shí)時(shí)數(shù)據(jù),數(shù)據(jù)從一個生產(chǎn)者傳到一個或多個消費(fèi)者。數(shù)據(jù)傳送限制在1到8個字節(jié)(例如,一個PDO可以傳輸最多64個數(shù)字I/O值,或者4個16位的AD值)。
2.1.2 PDO通訊沒有協(xié)議規(guī)定。PDO數(shù)據(jù)內(nèi)容只由它的CAN ID定義,假定生產(chǎn)者和消費(fèi)者知道這個PDO的數(shù)據(jù)內(nèi)容。
2.1.3 每個PDO在對象字典中用2個對象描述。
2.1.4 PDO通訊參數(shù):包含哪個COB-ID將被PDO使用,傳輸類型,禁止時(shí)間和定時(shí)器周期。
2.1.5 PDO映射參數(shù):包含一個對象字典中對象的列表,這些對象映射到PDO里,包括它們的數(shù)據(jù)長度(in bits),生產(chǎn)者和消費(fèi)者必須知道這個映射,以解釋PDO內(nèi)容。
2.1.6 DO消息的內(nèi)容是預(yù)定義的(或者在網(wǎng)絡(luò)啟動時(shí)配置的):映射應(yīng)用對象到PDO中是在設(shè)備對象字典中描述的。如果設(shè)備(生產(chǎn)者和消費(fèi)者)支持可變PDO映射,那么使用SDO報(bào)文可以配置PDO映射參數(shù)。
2.1.7 可以有多種傳送方式:
a同步(通過接收SYNC對象實(shí)現(xiàn)同步)
b非周期:由遠(yuǎn)程幀預(yù)觸發(fā)傳送,或者由設(shè)備子協(xié)議中規(guī)定的對象特定事件預(yù)觸發(fā)傳送。
2.1.8 周期:傳送在每1到240個SYNC消息后觸發(fā)。
2.1.9 異步
a由遠(yuǎn)程幀觸發(fā)傳送。
b由設(shè)備子協(xié)議中規(guī)定的對象特定事件觸發(fā)傳送。
表2-1給出來了由傳輸類型定義的不同PDO傳輸模式,傳輸類型為PDO通訊參數(shù)對象的一部分,由8位無符號整數(shù)定義。
2 管理報(bào)文
層管理,網(wǎng)絡(luò)管理和ID分配服務(wù):如初始化,配置和網(wǎng)絡(luò)管理(包括:節(jié)點(diǎn)保護(hù))。
服務(wù)和協(xié)議符合CAL中的LMT,NMT和DBT服務(wù)部分。這些服務(wù)都是基于主從通訊模式:在CAN網(wǎng)絡(luò)中,只能有一個LMT,NMT或DBT主節(jié)點(diǎn)以及一個或多個從節(jié)點(diǎn)。
3 服務(wù)數(shù)據(jù)對象SDO(Service Data Object)
通過使用索引和子索引(在CAN報(bào)文的前幾個字節(jié)),SDO使客戶機(jī)能夠訪問設(shè)備(服務(wù)器)對象字典中的項(xiàng)(對象)。
SDO通過CAL中多元域的CMS對象來實(shí)現(xiàn),允許傳送任何長度的數(shù)據(jù)(當(dāng)數(shù)據(jù)超過4個字節(jié)時(shí)分拆成幾個報(bào)文)。
協(xié)議是確認(rèn)服務(wù)類型:為每個消息生成一個應(yīng)答(一個SDO需要兩個ID)。SDO請求和應(yīng)答報(bào)文總是包含8個字節(jié)(沒有意義的數(shù)據(jù)長度在第一個字節(jié)中表示,第一個字節(jié)攜帶協(xié)議信息)。SDO通訊有較多的協(xié)議規(guī)定。
4 預(yù)定義報(bào)文或者特殊功能對象同步(SYNC)
4.1 在網(wǎng)絡(luò)范圍內(nèi)同步(尤其在驅(qū)動應(yīng)用中)
在整個網(wǎng)絡(luò)范圍內(nèi)當(dāng)前輸入值準(zhǔn)同時(shí)保存,隨后傳送(如果需要),根據(jù)前一個SYNC后接收到的報(bào)文更新輸出值。
4.1.1 主從模式:SYNC主節(jié)點(diǎn)定時(shí)發(fā)送SYNC對象,SYNC從節(jié)點(diǎn)收到后同步執(zhí)行任務(wù)。
4.1.2 在SYNC報(bào)文傳送后,在給定的時(shí)間窗口內(nèi)傳送一個同步PDO。
4.1.3 用CAL中基本變量類型的CMS對象實(shí)現(xiàn)。
4.1.4 CANopen建議用一個最高優(yōu)先級的COB-ID以保證同步信號正常傳送。SYNC報(bào)文可以不傳送數(shù)據(jù)以使報(bào)文盡可能短。
4.2 時(shí)間標(biāo)記對象(Time Stamp)
4.2.1 為應(yīng)用設(shè)備提供公共的時(shí)間幀參考。
4.2.2 用CAL中存儲事件類型的CMS對象實(shí)現(xiàn)。
4.3 緊急事件(Emergency)
4.3.1 設(shè)備內(nèi)部錯誤觸發(fā)。
4.3.2 用CAL中存儲事件類型的CMS對象實(shí)現(xiàn)。
4.4 節(jié)點(diǎn)/壽命保護(hù)(Node/Life guarding)。
4.4.1 主從通訊模式
4.4.2 NMT主節(jié)點(diǎn)監(jiān)控節(jié)點(diǎn)狀態(tài):稱作節(jié)點(diǎn)保護(hù)(Node guarding)。
4.4.3 節(jié)點(diǎn)也可以(可選擇)監(jiān)控NMT主節(jié)點(diǎn)的狀態(tài):稱作壽命保護(hù)(Life guarding)。當(dāng)NMT從節(jié)點(diǎn)接收到NMT主節(jié)點(diǎn)發(fā)送的第一個Node Guard報(bào)文后啟動壽命保護(hù)。
4.4.4 檢測設(shè)備的網(wǎng)絡(luò)接口錯誤(不是設(shè)備自身的錯誤):通過應(yīng)急指示報(bào)告。
4.4.5 根據(jù)NMT節(jié)點(diǎn)保護(hù)協(xié)議實(shí)現(xiàn):NMT主節(jié)點(diǎn)發(fā)送遠(yuǎn)程請求到一個特定節(jié)點(diǎn),節(jié)點(diǎn)給出應(yīng)答,應(yīng)答報(bào)文中包含了這個節(jié)點(diǎn)的狀態(tài)。
4.5 Boot-UP
4.5.1 主從通訊模式
4.5.2 NMT從節(jié)點(diǎn)通過發(fā)送這個報(bào)文,向NMT主節(jié)點(diǎn)說明該節(jié)點(diǎn)已經(jīng)由初始化狀態(tài)進(jìn)入預(yù)操作狀態(tài)。
一個CANopen設(shè)備必須支持一定數(shù)量的網(wǎng)絡(luò)管理服務(wù)(管理報(bào)文,administrative messages),需要至少一個SDO。每個生產(chǎn)或消費(fèi)過程數(shù)據(jù)的設(shè)備需要至少一個PDO。所有其它的通訊對象是可選的。一個CANopen設(shè)備中CAN通訊接口、對象字典和應(yīng)用程序之間的聯(lián)系如圖2所示
3 CANopen高層協(xié)議應(yīng)用
CANopen協(xié)議中設(shè)備子協(xié)議中包括電梯控制系統(tǒng)應(yīng)用協(xié)議。在CANopen協(xié)議電梯控制系統(tǒng)應(yīng)用協(xié)議中詳細(xì)的規(guī)定了電梯控制系統(tǒng)CAN網(wǎng)絡(luò)的物理參數(shù),節(jié)點(diǎn)ID分配,電梯虛擬設(shè)備定義,對象目錄以及系統(tǒng)錯誤處理。
通過CANopen協(xié)議在電梯控制系統(tǒng)上的應(yīng)用,可以為任何電梯應(yīng)用提供標(biāo)準(zhǔn)的、即插即用的電梯控制系統(tǒng)。符合CANopen電梯控制系統(tǒng)應(yīng)用協(xié)議規(guī)范的電梯控制系統(tǒng)可以實(shí)現(xiàn)最大254層樓數(shù),最多8臺電梯并聯(lián)的電梯應(yīng)用。
4 總結(jié)
基于CAN總線的CANopen網(wǎng)絡(luò)通訊具有以下特點(diǎn):
(1)使用對象字典(OD:Object Dictionary)對設(shè)備功能進(jìn)行標(biāo)準(zhǔn)化的描述。
(2)使用ASCII文檔:電子數(shù)據(jù)文檔(EDS)和設(shè)備配置文件(DCF)對設(shè)備及其配置進(jìn)行標(biāo)準(zhǔn)化的描述。
(3)CANopen網(wǎng)絡(luò)的數(shù)據(jù)交換和系統(tǒng)管理基于CAL中CMS服務(wù)。
(4)系統(tǒng)boot―up和節(jié)點(diǎn)保護(hù)(NodeGuarding)的標(biāo)準(zhǔn)基于CAL中NMT服務(wù)。
(5)定義了整個系統(tǒng)的同步操作。
(6)定義了節(jié)點(diǎn)特定的應(yīng)急報(bào)文。
為與CANopen通訊協(xié)議和相應(yīng)的設(shè)備子協(xié)議保持一致,以使制造商的產(chǎn)品能夠用于任何CANopen網(wǎng)絡(luò),以下3種層次的兼容性要求需要滿足(對日益增長的設(shè)備兼容性的要求):
一致性:
設(shè)備連接到CANopen網(wǎng)絡(luò)后不能影響其他設(shè)備的通訊:應(yīng)用層的一致性。
互用性:
設(shè)備能夠同網(wǎng)絡(luò)上的其它節(jié)點(diǎn)交換數(shù)據(jù):通訊協(xié)議的一致性。
互換性:
設(shè)備能夠代替另外一個同類設(shè)備:設(shè)備子協(xié)議的一致性。
1993年由Bosch領(lǐng)導(dǎo)的歐洲CAN-bus協(xié)會開始研究基于CAN-bus通訊系統(tǒng)管理方面的原型,由此發(fā)展成為CANopen協(xié)議。這是一個基于CAL的子協(xié)議用于產(chǎn)品部件的內(nèi)部網(wǎng)絡(luò)控制。其后CANopen協(xié)議被移交給CiA協(xié)會,由CiA協(xié)會管理維護(hù)與發(fā)展。至2000年CANopen協(xié)議已成為全歐洲最重要的嵌入式網(wǎng)絡(luò)標(biāo)準(zhǔn)。
在CiA的努力推廣下CAN技術(shù)在汽車電子控制系統(tǒng)、電梯控制系統(tǒng)、安全監(jiān)控系統(tǒng)、醫(yī)療儀器、紡織機(jī)械、船舶運(yùn)輸?shù)确矫婢玫搅藦V泛的應(yīng)用。因此,研究CANopen協(xié)議具有廣泛的實(shí)際意義和應(yīng)用需求。
(本文責(zé)任編輯 黃漢)
相關(guān)熱詞搜索:協(xié)議 分析 研究 CANOpen協(xié)議的分析與研究 canopen協(xié)議編程實(shí)例 canopen協(xié)議詳解
熱點(diǎn)文章閱讀