CANopen協(xié)議在現(xiàn)場總線網(wǎng)絡(luò)中的應(yīng)用
掃描二維碼
隨時隨地手機看文章
1 引 言
基于現(xiàn)場總線的網(wǎng)絡(luò)技術(shù)研究是自動控制領(lǐng)域發(fā)展的一個熱點。在各種各樣的工業(yè)現(xiàn)場總線中, CAN 總線以其成本低、速度快、實時性和可靠性較高等特點被快速應(yīng)用于汽車電子、醫(yī)療、軍事等領(lǐng)域。但是, CAN 總線只定義了物理層和數(shù)據(jù)鏈路層,本身并不完整,針對這一問題, CiA(CAN in Automation) 協(xié)會經(jīng)過不斷的發(fā)展于 1995 年發(fā)布了完整的 CANopen 協(xié)議,它不僅定義了應(yīng)用層和通訊子協(xié)議,也為可編程系統(tǒng)、不同器件、接口、應(yīng)用子協(xié)議定義了幀狀態(tài),為基于現(xiàn)場總線的全數(shù)字分布式控制系統(tǒng)的廣泛應(yīng)用和系統(tǒng)的一體化管理提供了解決之道。
本文以改善現(xiàn)場總線網(wǎng)絡(luò)通訊系統(tǒng)的運行效率,提高實時性和信息處理能力為前提,針對并條機自調(diào)勻整控制系統(tǒng)中各功能模塊的作用,淺析 CAN 總線高層通訊協(xié)議 CANopen ,實現(xiàn)各功能模塊間的數(shù)據(jù)通信。通過實驗測試,證明系統(tǒng)工作穩(wěn)定、可靠,保證了全數(shù)字分布式網(wǎng)絡(luò)系統(tǒng)工作的快速性、準確性和實時性。
2 CANopen 協(xié)議概述
2.1 設(shè)備模型
CANopen 協(xié)議是由 CiA 協(xié)會針對 CAN 協(xié)議的不完整性而定義出來的一個更高層次的協(xié)議——應(yīng)用層協(xié)議。一個 CANopen 設(shè)備模塊可以被分為 3 部分,如圖 1 所示。通信接口和協(xié)議軟件提供在總線上收發(fā)通信對象的服務(wù)。不同 CANopen 設(shè)備間的通信都是通過交換通信對象完成的。這一部分直接面向 CAN 控制器進行操作。對象字典描述了設(shè)備使用的所有的數(shù)據(jù)類型,通信對象和應(yīng)用對象。對象字典位于通信程序和應(yīng)用程序之間,向應(yīng)用程序提供接口,應(yīng)用程序?qū)ο笞值溥M行操作就可以實現(xiàn) CANopen 通信。應(yīng)用程序包括功能部分和通信部分,通信部分通過對對象字典進行操作實現(xiàn) CANopen 通信,而功能部分則根據(jù)應(yīng)用要求實現(xiàn)。
2.2 對象字典
對象字典 (Object Dictionary , OD) 是一個有序的對象組,每個對象采用一個 16 位的索引值來尋址,為了允許訪問數(shù)據(jù)結(jié)構(gòu)中的單個元素,同時定義了一個 8 位的子索引,對象字典的結(jié)構(gòu)參照表 1 ,對象字典的描述參照表 2 。
3.2 硬件部分
DSP 控制器部分為整個系統(tǒng)的核心,負責(zé)對整個通信網(wǎng)絡(luò)進行信息采集、數(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)絡(luò)相連接。
3.3 軟件部分
根據(jù) CANopen 協(xié)議軟件框架,分別設(shè)置了 NMT 報文、 SYNC 報文、 SDO 報文、 PDO 報文和 Heartbeat 報文,并針對 DSP 控制器從節(jié)點的性質(zhì)及其與各節(jié)點之間的關(guān)系,設(shè)置了各報文的 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)絡(luò)控制。
4 測試結(jié)果
為了保證系統(tǒng)中每個模塊都能夠正常工作,需要設(shè)計一個能夠與 PC 機進行實時通訊的通用板,滿足對系統(tǒng)各部分在實驗室環(huán)境下進行測試,確保系統(tǒng)正常運行。采用 LabVIEW 軟件設(shè)計 PC 機監(jiān)控面板,內(nèi)置信號采集、測量分析與數(shù)據(jù)顯示功能,摒棄了傳統(tǒng)開發(fā)工具的復(fù)雜性,在提供強大功能的同時還保證了系統(tǒng)靈活性。
在監(jiān)控面板上可以設(shè)置節(jié)點號 (Node ID) ,主/從節(jié)點,設(shè)置要發(fā)送報文的類型 ( 如 TPDOn , SDO) , NMT , Heartbeat , LSS) 及內(nèi)容 ( 數(shù)據(jù)長度,內(nèi)容 ) ,選擇通訊端口,還可以觀察到接收的 CAN 報文類型、數(shù)據(jù)長度、節(jié)點號和報文內(nèi)容。圖 5 顯示的數(shù)據(jù)是在初始化狀態(tài)時進行的設(shè)置,可以在數(shù)據(jù)接收窗口看到進行 LSS 節(jié)點號設(shè)置和存儲設(shè)置參數(shù)的返回報文,以及節(jié)點根據(jù) CANopen 協(xié)議的規(guī)定發(fā)送 Boot-up 報文,和進入預(yù)操作狀態(tài)后的 Heartbeat 報文。
5 結(jié)語
本文將 CANopen 協(xié)議應(yīng)用于自調(diào)勻整系統(tǒng),實現(xiàn)了現(xiàn)場總線分布式網(wǎng)絡(luò)控制系統(tǒng)的數(shù)字化、模塊化,增強了設(shè)備的可擴展性,提高了數(shù)據(jù)傳輸?shù)目煽啃浴_@種基于現(xiàn)場總線應(yīng)用層標(biāo)準協(xié)議的開發(fā)和使用,對提高系統(tǒng)的工作效率,特別是對復(fù)雜系統(tǒng)的研制具有一定的指導(dǎo)意義。