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