黃昕龍,倪霞林
(福州大學 機械工程及自動化學院,福建 福州 350108)
基于FPGA的開放式數(shù)控系統(tǒng)硬件配置設計
黃昕龍,倪霞林
(福州大學 機械工程及自動化學院,福建 福州 350108)
根據(jù)開放式數(shù)控系統(tǒng)的配置要求,在PC+可編程I/O卡的體系結構的基礎上,總結分析硬件可配置的可實現(xiàn)背景,采用模塊化的思想提出并建立了基于FPGA平臺的硬件可配置模型。利用硬件編程語言完成重要模塊的設計,分析了仿真結果驗證設計的可行性與有效性。在自行研制的開放式數(shù)控系統(tǒng)上完成了四軸配置的驗證,達到了開放式數(shù)控系統(tǒng)硬件可配置的要求。
開放式數(shù)控系統(tǒng);FPGA;硬件可配置
開放式數(shù)控系統(tǒng)最重要的特點之一是它能夠適應不同的生產(chǎn)條件與生產(chǎn)情況,從而完成自身的重構與配置。系統(tǒng)配置可分為軟件配置與硬件配置。軟件配置主要是研究基于運動控制卡的配置,如美國Delta Tau公司的PMAC多軸運動控制卡,集成刀補,插補算法,位置控制等實時控制,開發(fā)者只是通過完成軟件層的獨立配置程序的編寫來實現(xiàn)系統(tǒng)的重構;硬件配置則是充分利用可編程邏輯器件的硬件可重構性,構造數(shù)控系統(tǒng)的控制內(nèi)核,利用硬件編程語言實現(xiàn)數(shù)控系統(tǒng)的配置。目前,國外在配置結構上面的最新研究主要采用軟硬件協(xié)同設計,基于多主體(Multi-Agent)結構的硬件平臺,通過多片F(xiàn)PGA完成多功能的實現(xiàn),最后在軟件層的調(diào)用下完成相應的配置[1]。該體系結構具備良好的協(xié)調(diào)性與靈活性,但所占資源較大。國內(nèi)提出的軟硬件協(xié)同重構主要通過軟件層調(diào)用程序與硬件層配置文件的重復下載完成系統(tǒng)的配置[2-3],靈活度不高。
針對以上問題,提出基于PC+可編程I/O卡的體系結構的系統(tǒng)可配置設計。其核心思想是依據(jù)任務的實時性劃分軟硬件功能,將硬件功能集成在單片F(xiàn)PGA上,并研制軟硬件的協(xié)同配置。本文主要介紹基于一定軟件配置功能的硬件配置方案及具體實現(xiàn)。
1.1 硬件可配置實現(xiàn)模型的提出
基于PC+可編程I/O卡的體系結構,由PC進行粗插補運算,并將獲得的周期數(shù)據(jù)交予可編程I/O卡,完成最終的精插補。針對粗精插補模塊傳輸問題,文獻[4]提出了基于離線粗插補的數(shù)據(jù)采樣插補法,并采用雙緩存機制與動態(tài)插補等技術保證插補的連續(xù)性與可靠性,圖1為該異步插補法的結構圖。在此基礎上,如何實現(xiàn)開放式數(shù)控系統(tǒng)的重構,并配合PC軟件層實現(xiàn)硬件的可配置性將作為本文研究的出發(fā)點。
圖1 異步插補結構圖
1.2 硬件可配置實現(xiàn)模型的建立
1.2.1 配置信息下載
硬件可配置通常分為靜態(tài)配置和動態(tài)配置。前者是指數(shù)控系統(tǒng)在開機初始或者系統(tǒng)升級時,F(xiàn)PGA通過對配置信息的獲取與下載,實現(xiàn)系統(tǒng)的快速配置;后者是指在系統(tǒng)運行過程中,依據(jù)不同的任務需要動態(tài)調(diào)用功能模塊,通過對配置信息的下載,迅速地實現(xiàn)系統(tǒng)的局部配置。
FPGA芯片本身不具備斷電存儲功能,因此每次開機初始前都需要對配置信息進行重新下載,本文基于靜態(tài)配置的構想,提出PC在線下載的方法進行配置信息的下載,即將配置信息存放在PC機上,每次開機初始化時進行默認配置信息的重新下載(軟件層所需要保證的),只有當系統(tǒng)更換升級時才更改配置信息。該途徑優(yōu)勢在于可以方便存儲與更改配置信息,將系統(tǒng)配置中的重復配置操作交予PC,簡化了硬件平臺的設計,并提高了硬件卡的工作效率。但只能限制在系統(tǒng)運行前配置,對于還處在工作狀態(tài)的系統(tǒng),該配置方法容易造成系統(tǒng)的不穩(wěn)定。
1.2.2 配置機制
上面提到采用在線PC的方式將配置信息載入可編程I/O卡內(nèi)的配置寄存器,對配置寄存器設立相應的偏移地址,將配置數(shù)據(jù)直接寫入配置寄存器,并在此基礎上提出配置中斷。若配置寄存器為空,則由寄存器向接口控制模塊發(fā)送一個配置空信號,表明編程卡未完成軟件的配置,并由該信號產(chǎn)生一個中斷,從而激活上層配置信息的傳輸;若已完成配置,則產(chǎn)生一個已準備好信號。
若配置寄存器已完成配置信號的轉(zhuǎn)換,則發(fā)送給各個軸單獨設立的數(shù)據(jù)邏輯選擇模塊,控制周期插補數(shù)據(jù)滿足配置輸出。其中,數(shù)據(jù)邏輯選擇模塊的功能是:軸使能信號控制選通寄存器,實現(xiàn)使能軸插補數(shù)據(jù)阻通;聯(lián)動軸信號控制輸入寄存器,實現(xiàn)數(shù)據(jù)獨立或者聯(lián)動傳輸,若為聯(lián)動軸,則插補數(shù)據(jù)將存入鎖存器中,等待聯(lián)動脈沖解鎖,否則,直接送入精插補模塊。圖2為硬件配置結構圖。
圖2 硬件配置結構圖
本文采用單片F(xiàn)PGA作為可編程I/O的主控芯片,所選芯片型號為CylcloneⅢ系列的EP3C16Q240CN8,該芯片同時具備集成度高、開發(fā)成本低、設計周期短以及具備可重構能力等優(yōu)點,保證了其在電路設計中的強大優(yōu)勢,因此可以滿足本文數(shù)控系統(tǒng)的硬件可配置需要。
2.1 配置寄存器
配置寄存器主要實現(xiàn)配置信號的接受與轉(zhuǎn)換,即硬件卡在系統(tǒng)開機時對控制模式配合命令進行接收處理。這里的控制模式配置命令包含了軟件層對硬件平臺的配置要求,具體有軸使能數(shù)據(jù)、聯(lián)動軸組合方式數(shù)據(jù)、軸運動形式數(shù)據(jù)和聯(lián)動軸數(shù)數(shù)據(jù)。從硬件角度出發(fā),配置信息將轉(zhuǎn)換成以下幾種使能信號發(fā)送給各個軸設立相應的數(shù)據(jù)邏輯選擇器:
1) 軸使能信號。當該信號有效時,使能軸的插補數(shù)據(jù)能夠完成精插補運算;否則,插補數(shù)據(jù)無效。
2) 聯(lián)動軸信號。當該信號無效時,使能軸獨立進行精插補運算;否則,使能軸實現(xiàn)聯(lián)動。
3) 軸運動形式信號。當該信號有效時,使能軸為旋轉(zhuǎn)軸;否則,使能軸為直線軸。
為了保證配置信息的可靠性,采用發(fā)送配置空標示信號的方式,產(chǎn)生一個配置中斷。已知PCI總線單周期傳輸完成一個I/O讀過程需要7個時鐘周期,CPU響應時間約為14us。因此,設計一個空信號發(fā)生器,判斷配置信息是否寫入,若無寫入則每隔8個時鐘周期向設備接口控制器發(fā)出空信號,否則保持低電平。接口控制器內(nèi)部邏輯產(chǎn)生配置中斷并發(fā)送給PC,PC軟件驅(qū)動層隨即響應中斷調(diào)用最上層軟件層發(fā)送配置數(shù)據(jù)。圖3、圖4分別為開發(fā)的配置寄存器IP封裝圖和Modelsim-Altera時序仿真圖。從時序圖可以看出:rstn信號轉(zhuǎn)為無效后的第8個周期,配置模塊檢測到配置寄存器為空,則置空信號empty0和empty1為高電平。其中empty0和empty1分別對應軸使能寄存器與聯(lián)動使能寄存器。若配置信號轉(zhuǎn)換成功,則至高配置準備好信號crdy并發(fā)送給數(shù)據(jù)讀取邏輯單元。
圖3 配置寄存器IP封裝圖
圖4 配置寄存器時序仿真圖
2.2 數(shù)據(jù)邏輯選擇器
數(shù)據(jù)邏輯選擇器主要是根據(jù)配置信息以及軸號對插補數(shù)據(jù)進行相應的邏輯選擇。其內(nèi)部由三個部分組成,包括數(shù)據(jù)分配模塊、數(shù)據(jù)輸出模塊及狀態(tài)機模塊。分配模塊主要完成軸號及軸使能信號對插補數(shù)據(jù)的篩選;輸出模塊則是根據(jù)對應的輸出使能信號選擇聯(lián)動或者非聯(lián)動輸出;有限狀態(tài)機(FSM)是邏輯選擇器設計的核心,狀態(tài)機接收來自模塊外部(配置模塊)的控制信號,分析處理后,對是否軸使能以及是否聯(lián)動做出正確的響應,以保證模塊對周期插補數(shù)據(jù)邏輯選擇的正確完成。圖5為邏輯選擇器所采用的狀態(tài)機轉(zhuǎn)換圖,將數(shù)據(jù)邏輯選擇劃分為五種狀態(tài),具體定義為:type m_state is (idle,lchst,hldst,ulst1,ulst0)。各個狀態(tài)在使能信號的控制下輸出的情況如下:
1) 在idle狀態(tài)下,數(shù)據(jù)輸出皆為高阻態(tài);
2) 在lchst狀態(tài)下,內(nèi)部信號latch轉(zhuǎn)為有效(高電平),進行數(shù)據(jù)鎖存,并保持到idle狀態(tài)來臨前;
3) 在hldst狀態(tài)下,數(shù)據(jù)保持,直到聯(lián)動時基脈沖來臨;
4) 在ulst0狀態(tài)下,內(nèi)部信號data_out0轉(zhuǎn)為有效(高電平),實現(xiàn)聯(lián)動軸數(shù)據(jù)解鎖輸出,保持到idle狀態(tài)來臨前;
5) 在ulst1狀態(tài)下,內(nèi)部信號data_ou1轉(zhuǎn)為有效(高電平),在保證聯(lián)動使能信號低電平時,實現(xiàn)非聯(lián)動軸數(shù)據(jù)直接輸出,保持到idle狀態(tài)來臨前。
圖5 邏輯選擇狀態(tài)機轉(zhuǎn)換圖
其中,data_en信號為數(shù)據(jù)使能信號,b信號為聯(lián)動使能信號,clkin信號為聯(lián)動時基脈沖。
圖6、圖7分別為開發(fā)的數(shù)據(jù)邏輯選擇器IP封裝圖和Modelsim-Altera時序仿真圖。從時序圖可以看出:假設緩沖單元向邏輯選擇單元連續(xù)寫入三個不同軸號的數(shù)據(jù),并設定該單元對應1號軸;當data_en信號有效時,開始鎖存數(shù)據(jù),直到clkin信號有效后的第一個時鐘上升沿完成相應數(shù)據(jù)的輸出;輸出數(shù)據(jù)時存在一些毛刺,但持續(xù)時間都不超過半個時鐘周期,并在上升沿來臨時維持穩(wěn)定。
圖6 數(shù)據(jù)邏輯選擇器IP封裝圖
圖7 數(shù)據(jù)邏輯選擇器時序仿真圖
文中的方案主要是通過配置模塊冗余實現(xiàn)不定軸數(shù)的配置,通過核心模塊的對配置信息的讀取完成軸使能與軸聯(lián)動功能在硬件上的重構?;谠撆渲媒Y構的可編程卡已經(jīng)應用于自主研制的開放式軟數(shù)控系統(tǒng)上,通過加載Linux操作系統(tǒng)上的設備驅(qū)動程序完成了對數(shù)控銑床的調(diào)試,初步驗證了硬件配置電路的可行性與有效性。本文的設計方案具備如下優(yōu)點:1) 不需要一般用戶操作硬件配置信息的下載,只需要在PC機用戶界面完成整個系統(tǒng)的配置初始化;2) 自主開發(fā)硬件層的配置結構,不依賴任何專用的運動控制卡,相對于高級用戶更具靈活性。但在硬件資源分配的靈活性上仍存在缺陷,根據(jù)板卡內(nèi)部資源暫定配置的最大軸數(shù)為八軸。
[1] Luis Morales-Velazquez,Rene de Jesus Romero-Tronocoso,etal. Open-architecture system based on a reconfigurable hardware-software multi-agent platform for CNC machines.Journal of Systems. Architecture, 2010.56:407-418.
[2] Wang Tao,Wang Liwen.Research on software-hardware co-design of reconfigurable CNC system. Advanced Materials Research,2011.204-210: 458-463.
[3] 王文,秦興.基于可編程邏輯器件的可重構數(shù)控系統(tǒng)研究[J].計算機集成制造系統(tǒng),2002,8(7):565-569.
[4] 任志英,陳劍雄.基于離線粗插補的數(shù)據(jù)采樣插補法[J].機床與液壓,2009,37(3):47-49.
Design of Hardware-reconfigurability Based on FPGA for Open CNC System
HUANG Xin-long, NI Xia-lin
(School of Machine Engineering and Automation, Fuzhou University, Fuzhou 350108, China)
According to the reconfigurable requirement of open CNC system. this paper sums up and analyzes the feasibility of the hardware-reconfigurability based on the architecture of PC+ programmable I/O board. Meanwhile, the modular design based on FPGA is used to estabish its module. According to hardware description language, the main modules are designed.The open CNC system is verified through the simulation software and its application.This system meets the requirement of the hardware reconfigurability.
open CNC system; FPGA; hardware-reconfigurability
黃昕龍(1988-),男,福建福州人,助教,碩士,研究方向為精密儀器控制技術。
TH12;TP273
B
1671-5276(2014)02-0189-03
2013-02-28