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