CANOPEN匯流排的相關問題點

CANopen 是一個基於 CAN(控制區域網)序列匯流排系統和 CAL(CAN 應用層)的高層協議。CANopen 通訊協議 CiA DS-301 包括週期和事件驅動型通訊,不僅能夠將匯流排負載減少到最低限度,而且還能確保極短的反應時間。它可以在較低的波特率下實現較高的通訊效能,從而減少了電磁相容性問題,並降低了電纜成本。

CANopen 所用的物理介質是符合 ISO 11898 標準,採用分驅動機制和公共反饋的雙線匯流排。匯流排的最大長度取決於通訊速度,具體規定如下:

CANOPEN匯流排的相關問題點

從理論上來說,最多可以有 127 個節點。不過,在實際應用中,最大節點數量取決於所用 CAN 收發器的效能。CAN 匯流排線路必須用在 CAN-L 和 CAN-H 線之間每端連線的 120 歐姆(1%,1/4W)電阻來終接,如下所示。

CANOPEN匯流排的相關問題點

匯流排電纜選用有兩對雙絞線的帶遮蔽層電纜:一對雙絞線分別接 CAN-L 和 CAN-H,另外一對雙絞線直接接GND。

CANopen 的核心概念是裝置物件字典(OD:Object Dictionary),在其它現場匯流排(Profibus,Interbus-S)系統中也使用這種裝置描述形式。CANopen 通訊透過物件字典(OD)能夠訪問裝置的所有引數。

CANOPEN匯流排的相關問題點

CAN 識別符號分配表

CANOPEN匯流排的相關問題點

注意:

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 資料內容只由它的CAN ID 定義,假定生產者和消費者知道這個 PDO 的資料內容。

PDO 訊息的內容是預定義的(或者在網路啟動時配置的),對映應用物件到 PDO 中是在裝置物件字典中描述的。如果裝置(生產者和消費者)支援動態對映,那麼使用 SDO 報文可以配置 PDO 對映引數。PDO對映必須遵守以下 2 個規則:

1、 每個 PDO 最多可對映 4 個物件;

2、 每個 PDO 的長度必須不超過 64 位。

PDO 對映流程:

1、 設定 PDO 對應對映引數(如 1600

h

或 1A00

h

)子索引 0 的內容為 0;

2、 修改 PDO 對應對映引數(如 1600

h

或 1A00

h

)子索引 1~4 的內容,對映資料;

3、 設定 PDO 對應對映引數(如 1600

h

或 1A00

h

)子索引 0 的內容為合法的數字(該 PDO 對映的物件數)。

4、 PDO 對映完成。

SYNC 報文

同步物件用於控制資料在網路裝置間的同步傳輸,例如同步啟動多個軸。同步報文的傳輸是基於生產者—消費者模型的,所有支援同步 PDO 的節點都可以作為消費者(同時)接收到此報文,並使用該物件與其他節點進行同步。

一般應用方式為 SYNC 主節點定時傳送 SYNC 物件,SYNC 從節點收到後同步執行任務。

CANopen建議用一個最高優先順序的COB-ID以保證同步訊號正常傳送。SYNC報文可以不傳送資料以使報文儘可能短。

Emergency 報文

裝置發生報警時,CANopen 會啟動一條 Emergency 報文,告知消費者當前裝置型別以及錯誤程式碼。

(轉載請註明來源函控自動化工程師頭條號)