CANopen是基于CAN的通信協議,用于自動化工程中復雜設備結構的網絡。CANopen是CAN的進一步發展,由BOSCH引入用于減少汽車制造的電纜。由于CANopen由德國中小型公司發起,得到了博世的支持,CANopen最初從德國擴展到歐洲。到目前為止,CANopen也已經傳播到北美和亞洲。
自1995年以來,CANopen由用戶和制造商組織CAN in Automation(CIA)維護,并自2002年以來被標準化為歐洲標準EN50325-4。為此,德國KUNBUS公司提供各種形式和不同接口類型的產品。
在產品系列中,可以交換不同的現場總線協議。 統一的管腳引出使得能夠使用IC模塊作為可選卡。
CANopen基礎
CANopen基于CAN(控制器區域網絡)和代表主要用于自動化技術的通訊協議。CANopen結合了幾項基本服務,也稱為服務原語。這些服務如下:
- 指示(應用程序通知消息/結果呈現)
- 響應(應用程序答案顯示)
- 確認(當CANopen服務運行時,確認信息發送到應用程序)
CANopen使用以下通信對象:
- (SDO)對象字典條目參數化的服務數據對象
- (PDO)實時數據傳輸的進程數據對象
- (NMT)狀態機控制和節點監控的網絡管理對象
- (SYNC)同步對象
- (EMCY)時間戳和錯誤消息
CANopen對象字典
所有用戶和通信對象都注冊在CANopen對象字典中。CANopen對象字典也稱為連接應用程序和通信單元的鏈接。各個單獨的條目由16位索引表征,并且每個索引都表示一個對象。索引可以包含最大值。256個子索引,可以識別總共65536×254個元素。不可能自由使用子索引0和255。如上所述,CANopen對象字典形成到外部的接口,并且它借助于索引被清楚地定義為設備簡檔以及通信對象。此外,CANopen的每個通信對象在網絡中具有唯一的通信對象標識符= COB-ID。32位COB-ID的前兩位具有特定于對象的含義。這樣,在11位CAN網絡中位29至11的值為0,而位10至0的值等于CAN標識符。服務數據對象提供相應的服務,使得在CANopen內可以訪問對象庫。這樣,每個CANopen設備必須至少有一個SDO服務器可用。此服務器接管接受和處理SDO請求的任務。這里,消息使用節點號+ 1536或相應地使用每個默認設置的CAN標識符作為COB-ID。然后將節點號+ 1408用于答案。具有低優先級的ID因此用于傳送對象庫中的條目。SDO傳輸需要4字節協議,因此可以對索引,子索引和傳輸方向進行編碼。由于CANopen數據字段只有8個字節可用,只有4個字節可用于數據內容以供自由使用。因此,大于4字節并且要通過SDO傳送來傳送的數據量必須回落到另外兩個協議上。
CANopen中優先級更高的標識符
為了確保過程數據能夠在CANopen網絡中快速傳輸,具有COB-ID的標識符的默認設置在從385到1407的范圍內。由于較高的優先級和僅包括有效載荷數據的事實,這里總共有8個字節。PDO映射條目確定有效載荷數據的內容,這些對象是對象庫中的對象。與PDO相關,還可以傳輸具有幾個值的對象,其中只有部分數據可以被接收器使用。PDO的傳輸在循環或同步的級別上進行,其中PDO的接收導致映射條目被寫入對象庫中的其他對象。
CANopen-獨立于制造商
CANopen網絡的統一設備配置文件還使獨立于制造商的應用成為可能。為此,定義了設備簡檔,例如目的401 =輸入/輸出模塊。對象庫通過設備配置文件確保各個設備的功能和結構的精確定義。CANopen安裝:在總線拓撲中CANopen網絡在開始和結束時的布線使用120歐姆的電阻。這樣,避免短截線必須被考慮。當通過CAN-H和CAN-L信號進行數據傳輸時,GND作為數據參考電位,一根雙絞線電纜(阻抗:120歐姆,電阻70 mOhm/m)被引出。24V電源供應可被選擇使用。通常,9針D-sub插頭用于將各個站點連接到CANopen網絡。可調傳輸速度在10kbps和1Mbps之間,其中最大127個站點可以連接到CANopen網絡。 |