林立明 于 東 胡 毅 秦承剛 王志成 陸小虎
1.中國科學院研究生院,北京,100049
2.中國科學院沈陽計算技術研究所高檔數(shù)控國家工程研究中心,沈陽,110168
3.沈陽高精數(shù)控技術有限公司,沈陽,110168
目前,基于PC的數(shù)控系統(tǒng)是國產數(shù)控系統(tǒng)系列的主要產品之一。PC數(shù)控系統(tǒng)性能穩(wěn)定、可靠性高,但由于PC具有面向桌面應用、硬件結構復雜、功耗較大等特點,從而導致基于PC的數(shù)控系統(tǒng)成本居高不下。采用ARM(advanced RISC machines)處理器為核心部件的硬件平臺和開源實時Linux操作系統(tǒng)開發(fā)的嵌入式數(shù)控系統(tǒng),不但硬件結構簡單,而且軟件資源豐富,可靠性與可重構性較強,極具市場競爭力[1-2]。以32位ARM芯片和高速大容量FPGA(field-programmable gate array)為核心的嵌入式平臺構建數(shù)控系統(tǒng),能夠以低的成本實現(xiàn)接近PC平臺的性能,已成為中低端數(shù)控系統(tǒng)發(fā)展的主要方向之一。
國內外針對FPGA在嵌入式數(shù)控系統(tǒng)中的應用研究主要包括:①用FPGA替代固定邏輯器件的組合,以減小硬件體積,降低硬件復雜度[3];②用FPGA對功能較弱的微控制器進行端口擴展,如脈沖寬度調制接口、編碼器接口、鍵盤接口等[4-5];③對數(shù)控系統(tǒng)的軸數(shù)進行擴展,如將單軸擴展為三軸[5-6]等。這樣的數(shù)控系統(tǒng)雖因引入FPGA而使功能有所增強,卻沒有充分挖掘FPGA的應用潛力,仍然具有分布式控制系統(tǒng)(distributed control system,DCS)一對一傳輸、模擬信號控制等特點,技術固有的封閉性使其功能和性能的發(fā)揮受到限制,難以和現(xiàn)場總線控制系統(tǒng)(fieldbus control system,F(xiàn)CS)相提并論。
傳統(tǒng)的數(shù)控系統(tǒng)中,運動控制器與伺服驅動器間的接口通常采用模擬的方式,該方式存在以下問題:①運動控制器需采用數(shù)模轉換器,分辨率低;②一個模擬接口只能連接一個驅動器,系統(tǒng)缺乏柔性;③模擬接口只能傳送一種信息且只能單向傳送,信息量有限;④模擬接口的連接距離有限,且連接線很多,難于分布式控制[7]。現(xiàn)場總線采用全數(shù)字通信,支持數(shù)據(jù)雙向傳輸,線纜大大簡化,從根本上突破了傳統(tǒng)點對點式的模擬信號或數(shù)/模信號控制的局限性,同時具有傳輸速率高、傳輸距離遠、抗干擾能力強等優(yōu)點,能夠滿足高速高精數(shù)控系統(tǒng)的需求[8]。
針對上述問題,本文采用基于ARM和FPGA的設計方案,在嵌入式數(shù)控系統(tǒng)中引入SSB-III現(xiàn)場總線,并給出了總線式運動控制器性能的評測方法。

圖1 基于現(xiàn)場總線的數(shù)控系統(tǒng)結構
基于現(xiàn)場總線的數(shù)控系統(tǒng)結構如圖1所示。數(shù)控系統(tǒng)中的主要部件包括:由人機接口單元(human machine unit,HMU)及機床控制單元(machine control unit,MCU)構成的數(shù)字控制器、伺服驅動器、主軸設備、IO設備。現(xiàn)場總線的主設備以板卡的形式插入數(shù)控裝置,從設備一般直接集成到伺服驅動器的硬件中。數(shù)控裝置的命令通過現(xiàn)場總線發(fā)給指定的伺服或IO;伺服或IO的反饋也通過現(xiàn)場總線傳給數(shù)控裝置。總線系統(tǒng)中允許有一個主設備(主站)及多個從設備,如從站1、從站2等。主設備與各從設備間采用一主多從、問答方式進行通信,通信時序由主設備進行控制[9-10]。
目前,現(xiàn)場總線的體系結構基本都以“開放系統(tǒng)互連模型”為參考模型。為適應控制系統(tǒng)中信息長度短、實時性要求高的特點,現(xiàn)場總線沒有采用網絡層、傳輸層、會話層和表示層,而是將這4層的必要功能設置在應用層和數(shù)據(jù)鏈路層中,以降低層間操作、數(shù)據(jù)轉換所帶來的時間開銷。因此,典型的基于以太網的現(xiàn)場總線協(xié)議一般包括物理層、數(shù)據(jù)鏈路層和應用層,如表1所示[11]。

表1 基于以太網的現(xiàn)場總線模型
SSB-III現(xiàn)場總線通信模型如圖2所示。主站為CNC,從站為多個伺服驅動器、主軸驅動器或I/O板卡,主從站之間使用問答的方式進行通信,主站從從站的應答協(xié)議幀中獲取通信狀態(tài)信息(數(shù)據(jù)收發(fā)是否錯誤等)。站點的連接采用菊花鏈拓樸結構,每個從站有兩個通信接口,分別向前、向后連接到別的從站。每個從站除了作為通信主體外,還采用交換技術對其他站的信息進行實時轉發(fā)。

圖2 SSB-III現(xiàn)場總線通信模型
運動控制器由OMAP3530主控板和SSBIII總線控制板構成,如圖3a所示。圖3b所示為兩塊電路板的機械組裝及通信接口連接方式。
OMAP3530平臺由核心板和擴展板構成,核心板定義了一個OMAP的最小系統(tǒng),主要包括主處理器 OMAP3530、多制層封裝芯片(包括DDR、NAND)、電源管理芯片和 Mini USB-AB連接器。OMAP3530應用處理器具有異構雙核結構,包括:頻率600MHz的ARM Cortex-A8 Core,可用于運行數(shù)控系統(tǒng)用RTOS及其上的應用軟件;430MHz的TMS320C64x+ DSP Core,可用于數(shù)控系統(tǒng)中運算需求量大的插補計算等。

圖3 基于ARM和FPGA的運動控制器硬件結構及連接方式
通用存儲控制器(general-purpose memory controller,GPMC)是一個16位的外部存儲控制器,可為 NOR flash、NAND flash、pSRAM 等傳統(tǒng)存儲器件提供讀寫接口。如圖4所示,GPMC包括6個功能模塊:①L3互連端口接口;②地址譯碼器、GPMC配置寄存器、片選配置寄存器;③訪問引擎;④預取和寫置入引擎;⑤糾錯代碼引擎;⑥外部存儲器端口接口。
SSB-III總線控制板功能模塊劃分如圖5a所示,分為3個邏輯功能塊:通信外圍電路、通信專用芯片和GPMC通信接口。通信外圍電路主要由兩個100兆的以太網物理層芯片構成。由這兩個芯片引出兩個接口(RJ45),一個接口連到前繼站點,另一個連接到后繼站點,從而構成菊花鏈的拓撲網絡結構。GPMC接口用于和上位機OMAP3530平臺通信。

圖4 GPMC原理框圖
通信專用芯片采用FPGA實現(xiàn)SSB-III總線的鏈路層功能,其功能如圖5b所示。整個鏈路層可以劃分為3個邏輯部分:物理層接口(MII interface)、鏈路層邏輯功能和用戶層接口。物理層和用戶層接口主要實現(xiàn)物理層和用戶層信息的接入。鏈路層邏輯功能實現(xiàn)現(xiàn)場總線鏈路層的全部功能:實時數(shù)據(jù)交換、主/從站調度、數(shù)據(jù)幀的編解碼、數(shù)據(jù)存儲組織等[12]。

圖5 SSB-III總線控制板、數(shù)據(jù)鏈路層功能框圖
Xenomai采用雙內核機制對Linux內核進行強實時擴展。在雙內核技術下存在一個支持強實時的微內核,實時內核與Linux內核共同運行于硬件平臺。與其他實時性改造項目相比,Xenomai更關注可擴展、輕便和可維護性,代碼的移植工作量較小,尤其適合嵌入式系統(tǒng)的改造與移植。
Xenomai基于 Adeos(adaptive domain environment for operating system)實現(xiàn)雙內核機制,如圖6所示。Adeos的主要功能包括:中斷管道機制(I-Pipe)、域調度模塊功能和域管理模塊功能。Linux內核和Xenomai分別作為Adeos中的一個域存在。Linux內核負責非實時任務的調度,Xenomai采用精度更高的定時中斷來調度實時任務,實現(xiàn)更小的調度延時。Xenomai域的優(yōu)先級高于Linux域,每當中斷到來,Adeos會先將中斷交給Xenomai處理,如果Xenomai沒有需要處理的中斷,才會將中斷交給Linux內核處理,保證了Xenomai的中斷響應和任務調度的實時性[13]。

圖6 Linux+Xenomai架構
SSB-III總線控制板采用GPMC接口與OMAP3530平臺進行通信,設置GPMC接口工作方式為地址和數(shù)據(jù)非復用、同步讀寫。使用到的信號包括地址線gpmc_a[10∶1],數(shù)據(jù)線gpmc_d[15∶0],時鐘線gpmc_clk,并且對控制信號做了精簡,只用到nCE、nOE、nWE[14]。
SSB-III總線控制板,驅動程序包括三部分:模塊初始化、中斷服務函數(shù)、模塊退出處理。各部分的流程如圖7、圖8所示。

圖7 模塊初始化流程

圖8 中斷服務流程和模塊清除處理流程
數(shù)控系統(tǒng)的高速高精運動控制對總線的要求主要體現(xiàn)在以下幾方面[15]:①實時循環(huán)周期一般在1~10ms之間;②總線傳輸?shù)拇_定性(控制器的控制指令及伺服系統(tǒng)的反饋均有確定的收發(fā)時間);③執(zhí)行命令與反饋的同步性(高精度多軸控制系統(tǒng)要求各軸嚴格同步運行,即各個控制軸要同時執(zhí)行收到的控制指令,將同一時刻的反饋數(shù)據(jù)傳輸給控制器);④支持I/O設備信號的傳遞;⑤支持非周期的數(shù)據(jù)。
針對上述要求,論文在基于ARM和FPGA的總線式運動控制器上,對影響總線傳輸實時性的中斷響應延遲和影響總線傳輸確定性的中斷抖動兩個性能參數(shù),開展了相關實驗測試工作。
整套實驗裝置由OMAP3530主控板、SSB-III總線控制板、SSB-III總線伺服驅動單元、伺服電機、供電和通信電纜、鍵盤、液晶顯示器等輸入輸出設備構成。
SSB-III現(xiàn)場總線傳輸機制中,當鏈路層的數(shù)據(jù)包到達應用層時將觸發(fā)一個中斷事件,應用層響應中斷后進入中斷服務函數(shù)進行相應的數(shù)據(jù)處理,然后將新的數(shù)據(jù)包發(fā)送給鏈路層。這部分時間開銷包括設備中斷響應延遲和應用層開銷,是SSB-III現(xiàn)場總線的一個重要性能參數(shù)。如圖9所示,Tm為主設備中斷響應及應用層開銷,Ts為從設備中斷響應及應用層開銷[11]。

圖9 設備中斷響應及應用層開銷
中斷響應延遲為從硬件產生中斷,到進入中斷服務程序開始執(zhí)行第一條語句的時間,這部分時間包含在圖9中的Tm(Ts)中。
本文采用OMAP3530處理器自身的定時器來測量中斷延遲。測試程序包括模塊初始化函數(shù)、中斷函數(shù)、模塊清除函數(shù)。模塊初始化函數(shù)負責申請定時器(timer_ptr)并予以初始化、向系統(tǒng)申請定時器中斷并綁定Linux/Xenomai中斷服務函數(shù);中斷函數(shù)用于系統(tǒng)響應中斷時獲取定時器的數(shù)值;模塊清除函數(shù)負責定時器、中斷號等資源的釋放,并將測試模塊從內核中清除。
記gt_rate為定時器的頻率,則定時器的初始值start_tick 為

從start_tick開始經過ns后定時器將產生一個溢出中斷,此時定時器會自動重載start_tick,然后繼續(xù)計時。系統(tǒng)響應該中斷后進入相應中斷服務函數(shù),此時調用針對OMAP平臺的內核系統(tǒng)函數(shù),獲得定時器當前的數(shù)值end_tick:

將start_tick、end_tick、gt_rate 代 入 即 可 獲 得 中斷響應延遲intr_delay:

測得中斷響應延遲如圖10a所示,典型的中斷響應延遲為36.769μs,最大抖動(最大延遲與最小延遲時間之差)為52.462μs。
現(xiàn)在考慮修改測試程序,將定時器中斷注冊為Xenomai內核下的實時中斷。測得數(shù)據(jù)如圖10b所示,典型中斷響應延遲為2.4615μs,最大抖動為3μs,可以看到采用了實時中斷之后,系統(tǒng)性能有了大幅度的提升。

圖10 基于Linux和基于Xenomai的中斷響應延遲
抖動是實時系統(tǒng)中的一個重要性能指標,指的是同樣的過程每次的完成時間或響應時間之間的 偏 差。SSB-III現(xiàn) 場 總 線 支 持 31.25μs、62.5μs、125μs、250μs、500μs、1ms、2ms多種通信周期,本文選取2ms作為通信周期,實驗測得的Xenomai實時中斷周期數(shù)據(jù)如圖11所示,最大偏差(實際周期與理論周期2ms的最大偏離值)為34.615μs,即周期抖動最大幅度為1.73%,可見總線周期具有很好的確定性。

圖11 中斷周期抖動
(1)使用OMAP3530的GPMC作為主控平臺和總線控制板的通信接口,采用FPGA實現(xiàn)現(xiàn)場總線功能,使系統(tǒng)具有良好的可擴展性。
(2)測試了系統(tǒng)中斷響應延遲,并通過對比實驗證明了Linux+Xenomai實時改造方案的有效性。
(3)對中斷響應延遲及中斷周期抖動的測量與分析證明,本文所設計的基于ARM和FPGA的運動控制器能滿足數(shù)控系統(tǒng)和現(xiàn)場總線性能需求。
[1]吳文君,顧琳,徐笠云,等.基于 ARM 及嵌入式Linux的線切割數(shù)控系統(tǒng)開發(fā)[J].制造業(yè)自動化,2009,31(2):75-78.Wu Wenjun,Gu Lin,Xu Liyun,et al.Development of a WEDM-CNC System Based on ARM and Embedded Linux[J].Manufacturing Automation,2009,31(2):75-78.
[2]范克東,肖世德,龔邦明.基于ARM微處理器的嵌入式數(shù)控系統(tǒng)[J].制造技術與機床,2006(1):15-17.Fan Kedong,Xiao Shide,Gong Bangming.The Embedded CNC Based on the ARM Processor[J].Manufacturing Technology & Machine Tool,2006(1):15-17.
[3]費繼友,周茉.基于ARM+FPGA的嵌入式數(shù)控裝置設計[J].制造技術與機床,2010(12):61-64.Fei Jiyou,Zhou Mo.Design of Embedded CNC Device Based on ARM +FPGA[J].Manufacturing Technology & Machine Tool,2010(12):61-64.
[4]Xu Yue,Wang Taiyong,Zhao Yanju,et al.Design of Reconfigurable CNC System Based on Embedded Technology[C]//Proceedings of the 7th World Congress on Intelligent Control and Automation.Chongqing,2008:6061-6064.
[5]Satyam,Kamble R D,Dhanashri,et al.Three-dimensional Motion Control Using Embedded Controller and FPGA Technology[C]//Proceedings of the 5th International Conference on Electrical and Computer Engineering.Dhaka,2008:851-856.
[6]Liu Jingmeng,Chen Wheihai,Wang Tianmiao,et al.Hardware Circuit Design of NC System Based on ARM and FPGA[C]//The IEEE International Conference on Industrial Informatics.Daejeon,2008:147-152.
[7]Yu Dong,Hu Yi,Xu Xun,et al.An Open CNC System Based on Component Technology[J].IEEE Transactions on Automation Science and Engineering,2009,6(2):302-310.
[8]胡毅,于東,李培楠,等.基于現(xiàn)場總線的開放式數(shù)控系統(tǒng)的設計與實現(xiàn)[J].小型微型計算機系統(tǒng),2008,29(9):1745-1749.Hu Yi,Yu Dong,Li Peinan,et al.Design and Implementation of Open CNC System Based on Fieldbus[J].Journal of Chinese Computer Systems,2008,29(9):1745-1749.
[9]王志成,于東,張曉輝,等.數(shù)控系統(tǒng)現(xiàn)場總線時鐘同步機制的設計[J].中國機械工程,2010,21(18):2207-2211.Wang Zhicheng,Yu Dong,Zhang Xiaohui,et al.Design of Field-bus Time Synchronization for Numerical Control System[J].China Mechanical Engineering,2010,21(18):2207-2211.
[10]王志成,于東,胡毅,等.新的基于運動控制總線的雙軸協(xié)調控制方法[J].小型微型計算機系統(tǒng),2010,31(11):2296-2299.Wang Zhicheng,Yu Dong,Hu Yi,et al.Novel Approach to Bi-axial Coordination Control Based on Motion Control Bus[J].Journal of Chinese Computer Systems,2010,31(11):2296-2299.
[11]王志成,于東,李培新,等.數(shù)控系統(tǒng)現(xiàn)場總線通信效率的改進[J].計算機工程,2011,37(10):23-15.Wang Zhicheng,Yu Dong,Li Peixin,et al.Improvement of Field-bus Communication Efficiency in Numerical Control System[J].Computer Engineering,2011,37(10):23-15.
[12]胡毅,于東,郭銳鋒,等.數(shù)控總線的消息安全通信方法[J].機械工程學報,2011,47(5):134-142.Hu Yi,Yu Dong,Guo Ruifeng,et al.Message Safety Communication Method for Computer Numerical Control Fieldbus[J].Journal of Mechanical Engineering,2011,47(5):134-142.
[13]曹玉華,游有鵬.基于Xenomai的嵌入式數(shù)控系統(tǒng)實時性研究[J].制造技術與機床,2011(6):51-55.Cao Yuhua,You Youpeng.Research on Real-time of Embedded CNC System Based on Xenomai[J].Manufacturing Technology & Machine Tool,2011(6):51-55.
[14]OMAP35xApplications Processor Technical Reference Manual[M].USA:Texas Instruments Incorporated,2008.
[15]樊留群.實時以太網及運動控制總線技術[M].上海:同濟大學出版社,2009.