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