1 引 言 基于現場總線的網絡技術研究是自動控制領域發展的一個熱點。在各種各樣的工業現場總線中, CAN 總線以其成本低、速度快、實時性和可靠性較高等特點被快速應用于汽車電子、醫療、軍事等領域。但是, CAN 總線只定義了物理層和數據鏈路層,本身并不完整,針對這一問題, CiA(CAN in Automation) 協會經過不斷的發展于 1995 年發布了完整的 CANopen 協議,它不僅定義了應用層和通訊子協議,也為可編程系統、不同器件、接口、應用子協議定義了幀狀態,為基于現場總線的全數字分布式控制系統的廣泛應用和系統的一體化管理提供了解決之道。 本文以改善現場總線網絡通訊系統的運行效率,提高實時性和信息處理能力為前提,針對并條機自調勻整控制系統中各功能模塊的作用,淺析 CAN 總線高層通訊協議 CANopen ,實現各功能模塊間的數據通信。通過實驗測試,證明系統工作穩定、可靠,保證了全數字分布式網絡系統工作的快速性、準確性和實時性。 2 CANopen 協議概述 2.1 設備模型 CANopen 協議是由 CiA 協會針對 CAN 協議的不完整性而定義出來的一個更高層次的協議——應用層協議。一個 CANopen 設備模塊可以被分為 3 部分,如圖 1 所示。通信接口和協議軟件提供在總線上收發通信對象的服務。不同 CANopen 設備間的通信都是通過交換通信對象完成的。這一部分直接面向 CAN 控制器進行操作。對象字典描述了設備使用的所有的數據類型,通信對象和應用對象。對象字典位于通信程序和應用程序之間,向應用程序提供接口,應用程序對對象字典進行操作就可以實現 CANopen 通信。應用程序包括功能部分和通信部分,通信部分通過對對象字典進行操作實現 CANopen 通信,而功能部分則根據應用要求實現。 2.2 對象字典 對象字典 (Object Dictionary , OD) 是一個有序的對象組,每個對象采用一個 16 位的索引值來尋址,為了允許訪問數據結構中的單個元素,同時定義了一個 8 位的子索引,對象字典的結構參照表 1 ,對象字典的描述參照表 2 。 在 CANopen 網絡系統中每個節點都有一個惟一的對象字典,每個節點的對象字典都具有相同的結構,但具體的內容要根據不同的設備而定,包含了描述這個設備和它的網絡行為的所有參數。 2.3 通訊對象 通過 CAN 網絡傳輸的 CANopen 通訊對象可以通過服務和協議來描述。分類如下: (1) 實時數據通過過程數據對象 (PDO) 協議傳輸。 用 8 個字節的數據字段把過程數據對象 PDO 映象到一個單一的 CAN 幀從而傳輸應用對象。每個 PDO 有一個惟一的標識符且僅可以通過一個節點發送,但其接收者不止一個。每個 PDO 在對象字典中用 2 個對象描述: PDO 通訊參數,規定了 PDO 的通訊行為,包含哪個 COB ID 將被 PDO 使用,傳輸類型,禁止時間和定時器周期; PDO 映射參數,規定了哪個對象被映射到一個 PDO 里,生產者和消費者必須知道這個映射,以解釋 PDO 內容。 (2) 服務數據對象 (SDO) 協議用來對對象字典進行讀寫操作。 通過服務數據對象 SDO 可以訪問一個設備的對象字典。為了使通訊得到確認,一個 SDO 需要兩個帶有不同標識符的 CAN 數據幀,通過 SDO ,在兩個設備問可以建立點對點的通信,被訪問對象字典的設備是 SDO 通訊的服務器,一個設備可以支持多個 SDO 對象,但是,至少有一個 SDO 在一個設備中被支持。 (3) 特殊功能對象協議提供了特定應用,網絡同步,時間戳和緊急報文傳輸。 (4) 網絡管理 (NMT) 協議提供了網絡初始化,錯誤控制和設備狀態控制服務。 在 CANopen 網絡中,需要一個節點履行 NMT 的 Master( 主節點 ) 功能。其他節點作為 NMT的 Slave( 從節點 ) 。 NMT 提供了以下功能:模塊控制服務 ( 初始化參加網絡通訊的從點 ) ;錯誤控制服務 ( 管理節點和網絡通訊的狀態 ) ;配置控制服務 ( 上傳和下載網絡的配置據 ) 。 (5) 層設置服務 (LSS) 協議用來配置 CAN 總線通訊參數和設備參數。 使用 CANopen 協議定義的 LSS 報文實現對 CAN 總線網絡的配置,包括節點 ID ,通訊波特率,儀器的產品號、序列號等。 LSS 報文在 CANopen 協議通訊中是可選的,可以在節點初始化時直接指定節點 ID ,通訊速率等參數,它的使用可以提高系統靈活性。 3 通信網絡的 CANopen 協議實現 3.1 自調勻整系統通信網絡結構 本并條機自調勻整系統由鍵盤顯示控制器、 DSP 控制器、 A 孔伺服電機控制器、 B 孔伺服電機控制器、 PLC 邏輯控制器和 PC 機監控組成,各節點在 CAN 總線的基礎上采用 CANopen 協議實現通訊,完成系統預定義的功能。圖 2 所示為 A 孔開環式并條機自調勻整原理圖。 3.2 硬件部分 DSP 控制器部分為整個系統的核心,負責對整個通信網絡進行信息采集、數據運算、工作控制。下面主要說明 DSP 控制器的 CANopen 協議實現。 采用集成 CAN 模塊的 TMS 320F 2810 DSP 實現,它有多達 32 個郵箱,占用 512 B RAM ,都可以配置為發送或接收郵箱,且都有一個可編程的接收屏蔽寄存器。這樣就使數據傳輸更加方便靈活、信息量大大增加。圖 3 為 DSP 控制器 CAN 總線部分驅動電路圖,分別選用 TMS320F 2810 的 64 引腳 CANTXA 和 65 引腳 CANRXA 作為 CAN 總線的發送和接收引腳。采用 ADuM1100 高速數字隔離器替代傳統的光電耦合器。采用 MCP2551 作為高速 CAN 收發器,具有差分發射和接收能力,可將許多節點與同一網絡相連接。 3.3 軟件部分 根據 CANopen 協議軟件框架,分別設置了 NMT 報文、 SYNC 報文、 SDO 報文、 PDO 報文和 Heartbeat 報文,并針對 DSP 控制器從節點的性質及其與各節點之間的關系,設置了各報文的 COB - ID ,見表 3 。 在系統中鍵盤顯示控制器為主節點,通過液晶顯示監控各從節點信息,主節點通過檢測 4 個從節點發送的周期性心跳報文 (Heartbeat) 來判斷各個從節點的工作狀態。圖 4 為 DSP 控制器從節點的 CANopen 協議通訊流程:在系統上電后,首先向主節點發送 Boot-up 報文,通知主節點進入 Pre-operational 狀態,等待主節點的 SDO 報文訪問對象字典,在完成對象字典的配置后,等待接收主節點的 NMT 報文進入 Operational 狀態,開始 PDO 報文的發送及接收,完成信息數據的交換,實現分布式網絡控制。 4 測試結果 為了保證系統中每個模塊都能夠正常工作,需要設計一個能夠與 PC 機進行實時通訊的通用板,滿足對系統各部分在實驗室環境下進行測試,確保系統正常運行。采用 LabVIEW 軟件設計 PC 機監控面板,內置信號采集、測量分析與數據顯示功能,摒棄了傳統開發工具的復雜性,在提供強大功能的同時還保證了系統靈活性。 在監控面板上可以設置節點號 (Node ID) ,主/從節點,設置要發送報文的類型 ( 如 TPDOn , SDO) , NMT , Heartbeat , LSS) 及內容 ( 數據長度,內容 ) ,選擇通訊端口,還可以觀察到接收的 CAN 報文類型、數據長度、節點號和報文內容。圖 5 顯示的數據是在初始化狀態時進行的設置,可以在數據接收窗口看到進行 LSS 節點號設置和存儲設置參數的返回報文,以及節點根據 CANopen 協議的規定發送 Boot-up 報文,和進入預操作狀態后的 Heartbeat 報文。 5 結語 本文將 CANopen 協議應用于自調勻整系統,實現了現場總線分布式網絡控制系統的數字化、模塊化,增強了設備的可擴展性,提高了數據傳輸的可靠性。這種基于現場總線應用層標準協議的開發和使用,對提高系統的工作效率,特別是對復雜系統的研制具有一定的指導意義。 |