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