摘 要: CANopen協(xié)議是由CAN-in-Automation(CiA)定義的標準,,并且在以CAN為基礎的工業(yè)系統(tǒng)領域中占著主導地位。本文以五軸機械手的設計實現(xiàn)為背景,,結合CANopen協(xié)議在汽車電子和工業(yè)控制領域中的廣泛應用,,實現(xiàn)了對多電機系統(tǒng)的實時控制。文中提供的以CAN總線控制多個伺服電機的設計方法,,使得硬件電路的設計得到很大簡化,,同時也使得通信效率和可靠性得到大幅提升。本方案在實際運行中已經(jīng)得到充分的驗證,,對工業(yè)控制領域有著實際的應用指導意義,。
關鍵詞: CAN;CANopen,;多電機系統(tǒng)控制,;現(xiàn)場總線
0 引言
CAN(Controller Area Network,控制器局域網(wǎng))總線是由德國Bosch公司設計的,,是一種技術先進,、可靠性高、成本低的網(wǎng)絡通信控制方式,。它在離散控制領域得到了廣泛應用,,是唯一成為國際標準的現(xiàn)場總線[1]。由于CAN只定義了OSI網(wǎng)絡模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層),,沒有應用層,,所以需要高層協(xié)議來具體定義CAN報文的使用。CANopen協(xié)議是基于CAL協(xié)議的擴展,,是目前基于CAN的高層通信協(xié)議的一種,。CANopen是由CAN-in-Automation(CiA)定義的標準,,并且在以CAN為基礎的工業(yè)系統(tǒng)領域中占著主導地位[2]。CANopen專門為不同的接口設備應用子協(xié)議定義了行規(guī)(DSP4),,其中CiA402是針對驅(qū)動裝置和運動控制裝置的設備規(guī)范,。本文就是根據(jù)CANopen協(xié)議在伺服驅(qū)動設備上的應用進行展開討論的。
1 CANopen通信協(xié)議簡析
CANopen的參考模型如圖1所示,。由此圖可以看出CANopen是以CAN為基礎的,,CAN數(shù)據(jù)鏈路層提供具有標示符的報文的廣播服務,所以報文不是發(fā)送到某一個遠程節(jié)點的特定的應用程序,。實際上,,每個應用程序只需要根據(jù)報文的標示符決定是否接受通信對象所攜帶的數(shù)據(jù),這種特性決定了CAN網(wǎng)絡是一種基于報文的協(xié)議,,而CANopen協(xié)議中的服務對象就是CAN網(wǎng)絡中傳輸?shù)腃AN報文,。
CANopen的設備模型如圖2所示。從圖中可以看出,,一個CAN設備主要分為三部分:通信接口,、對象字典、應用程序,。通信接口主要定義了四種不同種類的通信對象:服務數(shù)據(jù)對象,、過程數(shù)據(jù)對象、網(wǎng)絡管理對象和特殊功能對象,,用來實現(xiàn)通信,、網(wǎng)絡管理和緊急情況處理等功能[3]。這四類通信對象(COB)都是由一個或多個報文實現(xiàn)的,。過程數(shù)據(jù)對象(PDO消息)用來傳輸實時的數(shù)據(jù),;服務數(shù)據(jù)對象(SDO服務器消息和SDO客戶端消息)用來配置網(wǎng)絡參數(shù)和訪問節(jié)點的對象字典,建立兩個CANopen設備之間的客戶/服務器的關系,;網(wǎng)絡管理對象(NMT)負責網(wǎng)絡的啟動和監(jiān)控設備,;特殊功能對象是指同步(SYNC)、時間標記對象,、緊急事件,、節(jié)點保護。
CANopen對象字典(Object Dictionary,,OD)是CANopen協(xié)議最為核心的概念,。對象字典就是通過網(wǎng)絡讀取一組提前定義好的對象,相當于一個參數(shù)列表,,每一個對象是用一個16位的索引和8位的子索引來定位,。為了允許訪問數(shù)據(jù)結構中的單個元素,同時也定義了一個8位的子索引,。對象字典是所有數(shù)據(jù)結構的集合,,這些數(shù)據(jù)結構涉及設備的應用程序,、通信以及狀態(tài)機,也是通信接口與應用程序之間的接口,。
CANopen由一系列稱為子協(xié)議的文檔組成,這些子協(xié)議主要分為3類,,分別是通信子協(xié)議,、制造商自定義子協(xié)議和設備子協(xié)議。子協(xié)議描述對象字典中的每個對象的功能,、名字,、索引、子索引,、數(shù)據(jù)類型,、讀寫屬性,以及這個對象是否必須等待,,從而保證不同制造商的同類設備能夠相互兼容,。根據(jù)這些協(xié)議生產(chǎn)CANopen設備能夠?qū)崿F(xiàn)不同廠商產(chǎn)品之間的互操作,大大降低了系統(tǒng)通信的開發(fā)難度[4-6],。
2 機械手的實現(xiàn)
機械手主要有三部分組成:手部,、運動機構、控制系統(tǒng),。手部是指用來抓取物體的部件,;運動機構使手部完成各種規(guī)定動作;控制系統(tǒng)通過對各個電機的控制來完成所需要的規(guī)定動作,,同時通過接收反饋的信息形成閉環(huán)控制,。控制系統(tǒng)是機械手實現(xiàn)的關鍵部分,,本文主要設計實現(xiàn)的是控制系統(tǒng),。
隨著現(xiàn)場總線在工業(yè)控制領域中越來越廣泛的應用,以及控制系統(tǒng)向著網(wǎng)絡化,、開放性的方向發(fā)展,,所以本文也采用總線的方式進行設計??刂葡到y(tǒng)與外部設備的通信分別采用以太網(wǎng)總線和CAN總線,。本文設計的系統(tǒng)結構如圖3所示。
由圖3可以看出,,該系統(tǒng)主要由4部分組成:手持器,、控制電路、電機驅(qū)動器及電機,。其運行過程大致是手持器通過以太網(wǎng)接口把相應的動作指令發(fā)給控制電路,,該過程采用LWIP協(xié)議,;然后控制電路在接收到指令之后,開始解析指令,,再通過CAN接口給伺服電機驅(qū)動器發(fā)送指令,,該過程采用CANopen協(xié)議;伺服驅(qū)動器在得到指令后開始驅(qū)動電機,,在電機到達指定位置后停止,。整個系統(tǒng)運行過程中,如何實現(xiàn)對5個電機的實時控制是整個系統(tǒng)的關鍵,。為保證數(shù)據(jù)在傳輸過程中的可靠性和實時性,,系統(tǒng)在設計時采用了CAN接口和以太網(wǎng)接口[7]。
3 機械手CANopen通信的設計與實現(xiàn)
3.1 CANopen通信的硬件設計
由圖3可以看出,,CANopen通信是在控制電路和電機驅(qū)動器之間實現(xiàn)的,。CANopen只是一個應用層的規(guī)范協(xié)議,與具體總線的物理實現(xiàn)無關,。由圖1 CANopen的參考模型可以看出,,CANopen是以CAN為基礎的,所以CANopen的硬件實現(xiàn)實際是CAN總線的設計實現(xiàn),。電機驅(qū)動器自身支持CANopen協(xié)議,,所以硬件實現(xiàn)的關鍵是控制電路能符合CANopen協(xié)議。CAN的硬件實現(xiàn)包括兩個部分:與OSI模型中數(shù)據(jù)鏈路層和物理層分別對應的CAN控制器和CAN收發(fā)器的實現(xiàn),。本文采用基于Cortex-M4內(nèi)核的STM32系列芯片作為控制電路的MCU,,該芯片內(nèi)有CAN控制器,并且完全支持CAN協(xié)議2.0,。CAN收發(fā)器選用CTM1050T,,其內(nèi)部集成了CAN隔離及收發(fā)器件,將CAN控制器的邏輯電平轉換為CAN總線的差分電平,,同時具有隔離功能機ESD保護作用,。CAN通信硬件結構如圖4所示[8]。
3.2 CANopen通信程序設計
CAN通信硬件設計完成后能夠?qū)崿F(xiàn)設備之間的報文通信,,但是仍需對傳輸?shù)臄?shù)據(jù)內(nèi)容進行定義,,主要包括數(shù)據(jù)內(nèi)容的傳輸格式以及數(shù)據(jù)讀取規(guī)則。本部分主要介紹控制電路與伺服電機驅(qū)動器之間CAN通信程序的設計,,程序采用CANopen協(xié)議中的服務數(shù)據(jù)對象SDO(Service Data Object)數(shù)據(jù)傳輸機制,。采用該機制是因為SDO為每個消息都生成一個應答,這樣可以保證數(shù)據(jù)傳輸?shù)臏蚀_性,。同時通過每5 ms查詢一次的方式來確保數(shù)據(jù)傳輸?shù)膶崟r性,。CANopen通信程序設計流程圖如圖5所示。首先對控制電路的CAN接口進行配置,選擇波特率,,完成CAN接口的初始化,。電機驅(qū)動器節(jié)點的配置是通過驅(qū)動器的面板進行設定,把各節(jié)點配置為可操作模式,,然后再根據(jù)傳送過來的數(shù)據(jù)對伺服驅(qū)動器進行相應的配置,。在整個通信過程中,由于伺服電機驅(qū)動器內(nèi)部集成標準的CANopen協(xié)議,,所以控制電路所發(fā)的數(shù)據(jù)要按照CANopen協(xié)議中的規(guī)定發(fā)送才能被伺服電機驅(qū)動器識別,。同時這也簡化了控制電路關于CANopen協(xié)議方面的程序設計,使得研發(fā)周期大大縮短,。
4 結束語
CANopen是一個應用層的規(guī)范協(xié)議,,與具體總線的物理實現(xiàn)無關,。CANopen已經(jīng)發(fā)展成具有高度靈活性的標準化嵌入式網(wǎng)絡,,基于它提出和實現(xiàn)的對象字典、設備規(guī)范等概念對現(xiàn)場總線技術的發(fā)展起到了重要作用,。本文主要設計實現(xiàn)了基于CANopen協(xié)議的五軸機械手控制系統(tǒng),,為CANopen協(xié)議在多電機控制系統(tǒng)的設計提供了一種方案,對工業(yè)控制領域具有實際的應用意義,。
參考文獻
[1] 鄔寬明.CAN總線原理和應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,,1996.
[2] 李澄,趙輝,,聶保錢.基于CANopen協(xié)議實現(xiàn)多電機系統(tǒng)實時控制[J].微電機,,2009,42(9):53-56.
[3] 呂京建,,張宏韜.CAN總線的淺析-CANopen協(xié)議[J].電子產(chǎn)品世界,,2002(17):25-27.
[4] CAN in Automation. Application Layer and Communication Profile[S]. CiA Draft Standard 301 Version 4.02, 2002.
[5] 王峰.基于嵌入式系統(tǒng)的CANopen協(xié)議分析研究[D].天津:天津理工大學,,2010.
[6] 夏勇,,葉曉東,趙江海.基于CANopen協(xié)議的數(shù)字伺服控制[J].電氣自動化,,2014,,36(1):57-59.
[7] 趙建光,楊建武,,孫樹文.基于CANopen協(xié)議的I/O從站的開發(fā)與應用[J].微計算機信息,,2007,23(8):9-11.
[8] 史久根,,張培仁,,陳真勇.CAN現(xiàn)場總線系統(tǒng)設計技術[M].北京:國防工業(yè)出版社,2004.