CANopen是一個(gè)基于CAN(控制局域網(wǎng))串行總線系統(tǒng)和CAL(CAN應(yīng)用層)的高層協(xié)議。CANopen通訊協(xié)議CiADS-301包括周期和事件驅(qū)動(dòng)型通訊,不僅能夠?qū)⒖偩€負(fù)載減少到最低限度,而且還能確保極短的反應(yīng)時(shí)間。它可以在較低的波特率下實(shí)現(xiàn)較高的通訊性能,從而減少了電磁兼容性問題,并降低了電纜成本。
CANopen所用的物理介質(zhì)是符合ISO11898標(biāo)準(zhǔn),采用分驅(qū)動(dòng)機(jī)制和公共反饋的雙線總線。總線的最大長度取決于通訊速度,具體規(guī)定如下:
從理論上來說,最多可以有127個(gè)節(jié)點(diǎn)。不過,在實(shí)際應(yīng)用中,最大節(jié)點(diǎn)數(shù)量取決于所用CAN收發(fā)器的性能。CAN總線線路必須用在CAN-L和CAN-H線之間每端連接的120歐姆(1%,1/4W)電阻來終接,如下所示。
總線電纜選用有兩對雙絞線的帶屏蔽層電纜:一對雙絞線分別接CAN-L和CAN-H,另外一對雙絞線直接接GND。
CANopen的核心概念是設(shè)備對象字典(OD:ObjectDicTIonary),在其它現(xiàn)場總線(Profibus,Interbus-S)系統(tǒng)中也使用這種設(shè)備描述形式。CANopen通訊通過對象字典(OD)能夠訪問設(shè)備的所有參數(shù)。
CAN標(biāo)識符分配表
注意:
1、PDO/SDO的發(fā)送/接受是由(slave)CAN節(jié)點(diǎn)觀察的。
2、一般的器件的CANopen支持4個(gè)發(fā)送PDO,4個(gè)接受PDO。
服務(wù)數(shù)據(jù)對象SDO
SDO用來訪問一個(gè)設(shè)備的對象字典。訪問者被稱作客戶(client),對象字典被訪問且提供所請求服務(wù)的CANopen設(shè)備被稱作服務(wù)器(server)??蛻舻腃AN報(bào)文和服務(wù)器的應(yīng)答CAN報(bào)文總是包含8字節(jié)數(shù)據(jù)(盡管不是所有的數(shù)據(jù)字節(jié)都一定有意義)。一個(gè)客戶的請求一定有來自服務(wù)器的應(yīng)答。
過程數(shù)據(jù)對象PDO
PDO用來傳輸實(shí)時(shí)數(shù)據(jù),數(shù)據(jù)從一個(gè)生產(chǎn)者傳到一個(gè)或多個(gè)消費(fèi)者。數(shù)據(jù)傳送限制在1到8個(gè)字節(jié)。PDO通訊沒有協(xié)議約束(意味著數(shù)據(jù)內(nèi)容已預(yù)先定義),因此消費(fèi)者可以在很短的時(shí)間內(nèi)處理完接受到的數(shù)據(jù)。PDO數(shù)據(jù)內(nèi)容只由它的CANID定義,假定生產(chǎn)者和消費(fèi)者知道這個(gè)PDO的數(shù)據(jù)內(nèi)容。
PDO消息的內(nèi)容是預(yù)定義的(或者在網(wǎng)絡(luò)啟動(dòng)時(shí)配置的),映射應(yīng)用對象到PDO中是在設(shè)備對象字典中描述的。如果設(shè)備(生產(chǎn)者和消費(fèi)者)支持動(dòng)態(tài)映射,那么使用SDO報(bào)文可以配置PDO映射參數(shù)。PDO映射必須遵守以下2個(gè)規(guī)則:
1、每個(gè)PDO最多可映射4個(gè)對象;
2、每個(gè)PDO的長度必須不超過64位。
PDO映射流程:
1、設(shè)置PDO對應(yīng)映射參數(shù)(如1600h或1A00h)子索引0的內(nèi)容為0;
2、修改PDO對應(yīng)映射參數(shù)(如1600h或1A00h)子索引1~4的內(nèi)容,映射數(shù)據(jù);
3、設(shè)置PDO對應(yīng)映射參數(shù)(如1600h或1A00h)子索引0的內(nèi)容為合法的數(shù)字(該P(yáng)DO映射的對象數(shù))。
4、PDO映射完成。
SYNC報(bào)文
同步對象用于控制數(shù)據(jù)在網(wǎng)絡(luò)設(shè)備間的同步傳輸,例如同步啟動(dòng)多個(gè)軸。同步報(bào)文的傳輸是基于生產(chǎn)者—消費(fèi)者模型的,所有支持同步PDO的節(jié)點(diǎn)都可以作為消費(fèi)者(同時(shí))接收到此報(bào)文,并使用該對象與其他節(jié)點(diǎn)進(jìn)行同步。
一般應(yīng)用方式為SYNC主節(jié)點(diǎn)定時(shí)發(fā)送SYNC對象,SYNC從節(jié)點(diǎn)收到后同步執(zhí)行任務(wù)。
CANopen建議用一個(gè)最高優(yōu)先級的COB-ID以保證同步信號正常傳送。SYNC報(bào)文可以不傳送數(shù)據(jù)以使報(bào)文盡可能短。
Emergency報(bào)文
設(shè)備發(fā)生報(bào)警時(shí),CANopen會(huì)啟動(dòng)一條Emergency報(bào)文,告知消費(fèi)者當(dāng)前設(shè)備類型以及錯(cuò)誤代碼。
責(zé)任編輯:PSY
-
節(jié)點(diǎn)
+關(guān)注
關(guān)注
0文章
217瀏覽量
24363 -
CANopen
+關(guān)注
關(guān)注
8文章
243瀏覽量
43522 -
長度
+關(guān)注
關(guān)注
0文章
3瀏覽量
7217
發(fā)布評論請先 登錄
相關(guān)推薦
評論