李騰飛,凌有鑄,劉敬猛
(1.安徽工程大學(xué)安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽蕪湖 241000;2.北京航空航天大學(xué)自動(dòng)化學(xué)院,北京 100191)
基于ARM+FPGA架構(gòu)的嵌入式數(shù)控雕刻系統(tǒng)的設(shè)計(jì)
李騰飛1,凌有鑄1,劉敬猛2
(1.安徽工程大學(xué)安徽省電氣傳動(dòng)與控制重點(diǎn)實(shí)驗(yàn)室,安徽蕪湖 241000;2.北京航空航天大學(xué)自動(dòng)化學(xué)院,北京 100191)
針對(duì)數(shù)控雕刻機(jī),設(shè)計(jì)了ARM+FPGA架構(gòu)的硬件平臺(tái)和基于μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)的軟件平臺(tái)。ARM微處理器具有高速的運(yùn)算能力,且FPGA擁有非常強(qiáng)大的邏輯處理能力,使系統(tǒng)的外圍接口器件大幅減少并降低了設(shè)計(jì)復(fù)雜度。采用μC/OS-Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng)作為軟件開(kāi)發(fā)平臺(tái),使系統(tǒng)很好地進(jìn)行多任務(wù)處理,保證了雕刻機(jī)運(yùn)動(dòng)控制的實(shí)時(shí)性、穩(wěn)定性,滿(mǎn)足了高速高精加工的要求,同時(shí)具有良好的人機(jī)界面。
數(shù)控系統(tǒng);ARM;FPGA;實(shí)時(shí)操作系統(tǒng)
此設(shè)計(jì)采用了32位的ARM微處理器S3C2410芯片和Cyclone系列的FPGA器件作為數(shù)控系統(tǒng)硬件平臺(tái)的核心器件,ARM+FPGA架構(gòu)控制系統(tǒng)則用于實(shí)現(xiàn)運(yùn)動(dòng)控制的功能。之所以采用 ARM+FPGA作為數(shù)控的核心架構(gòu),是因?yàn)锳RM擁有大容量的存儲(chǔ)器,足以存儲(chǔ)所要編寫(xiě)的數(shù)控應(yīng)用程序。其芯片配置有存儲(chǔ)器接口、通信接口、LCD顯示接口等;PC平臺(tái)開(kāi)發(fā)環(huán)境比較好,具有相當(dāng)豐富的資源以及用戶(hù)界面友好的優(yōu)點(diǎn)。ARM微處理器有優(yōu)點(diǎn)同時(shí)也有缺點(diǎn),缺點(diǎn)是不能直接管理數(shù)控系統(tǒng)復(fù)雜I/O控制,需利用FPGA去實(shí)現(xiàn)I/O處理、產(chǎn)生脈沖信號(hào)以及復(fù)雜邏輯運(yùn)算[1]。軟件平臺(tái)則采用了開(kāi)放性源代碼的μC/OC-II實(shí)時(shí)操作系統(tǒng),負(fù)責(zé)數(shù)控雕刻系統(tǒng)的任務(wù)調(diào)度和管理,使整個(gè)數(shù)控系統(tǒng)的實(shí)時(shí)性得到了很大的提高,從而實(shí)現(xiàn)了高速、高精的要求。
該系統(tǒng)采用ARM+FPGA結(jié)構(gòu)。系統(tǒng)軟件在ARM處理器上執(zhí)行,F(xiàn)PGA負(fù)責(zé)脈沖信號(hào)的產(chǎn)生、操作鍵盤(pán)的掃描、復(fù)雜時(shí)序邏輯運(yùn)算和外設(shè)I/O口控制。具體的說(shuō)就是ARM完成人機(jī)界面的設(shè)計(jì)、譯碼、刀補(bǔ)、粗插補(bǔ)、輔助控制等任務(wù),F(xiàn)PGA接收ARM的控制指令完成細(xì)插補(bǔ)功能和伺服更新,控制伺服電機(jī)的運(yùn)動(dòng);掃描鍵盤(pán),控制機(jī)床的I/O。ARM2410與FPGA之間是通過(guò)總線連接,多中斷源中斷方式傳遞信號(hào)的[2]。圖1為系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)圖,圖2為系統(tǒng)硬件設(shè)計(jì)實(shí)物圖。
電源模塊設(shè)計(jì)了系統(tǒng)板上所需的5.0、3.3、1.8和1.5 V等。開(kāi)關(guān)電源提供3種電壓輸出,分別是24、12和5 V。24 V通過(guò)電源模塊產(chǎn)生用于模擬電路器件所需的5 V模擬電壓;12 V用于通過(guò)逆變器為L(zhǎng)CD背光產(chǎn)生一個(gè)上千伏電壓;開(kāi)關(guān)電源輸出的5 V電壓通過(guò)電源模塊產(chǎn)生FPGA和ARM內(nèi)核所需的1.5和1.8 V,以及通用IO所需的3.3 V。需要注意的是給數(shù)字器件提供的5 V(稱(chēng)數(shù)字電壓)和給模擬器件提供的5 V(稱(chēng)模擬電壓)不是同一個(gè)電壓,它們不共地。之所以這樣設(shè)計(jì)是為了減少干擾信號(hào),保證系統(tǒng)能正常工作。
圖1 系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)圖
圖2 系統(tǒng)硬件設(shè)計(jì)實(shí)物圖
該系統(tǒng)采用了成本低、性能優(yōu)越的ARM9系列芯片S3C2410,ARM的主要任務(wù)是移植操作系統(tǒng)、內(nèi)存管理、程序管理、I/O輸入輸出、界面操作設(shè)計(jì)、LCD顯示管理、鍵盤(pán)管理、粗插補(bǔ)處理等。
該系統(tǒng)的外擴(kuò)存儲(chǔ)器設(shè)計(jì)時(shí)選用64MB的非易失性NandFlash和64MB的SDRAM。NandFlash選擇芯片K9F1208作為系統(tǒng)的輔助存儲(chǔ)器,用來(lái)存儲(chǔ)系統(tǒng)引導(dǎo)代碼、系統(tǒng)數(shù)據(jù)及相關(guān)文檔;SDRAM采用兩片HY57V561620,每片32 MB,總的SDRAM為64 MB,用于存儲(chǔ)運(yùn)行時(shí)的主程序。HY57V561620數(shù)據(jù)寬度16 B,內(nèi)部分為 4個(gè) Bank,每 Bank為 4 MB。HY57V561620第20和21腳 BA [1∶0] 接 S3C2410的LA25∶24。這里的 Bank和 S3C2410地址空間的Bank不是一個(gè)概念,S3C2410的 Bank是128 MB,SDRAM連接到S3C2410的 Bank6上,地址為0x30000000。
S3C2410通過(guò)viviBootloader(引導(dǎo)裝載器)將引導(dǎo)程序下載到NandFlash中,從NandFlash引導(dǎo),通過(guò)NCON腳接高電平來(lái)配置其控制器的尋址空間,對(duì)系統(tǒng)作初始化處理,完畢后便加載到SDRAM中。ARM從SDRAM中讀取已經(jīng)加載到其中的數(shù)據(jù) (比如G代碼),然后進(jìn)行譯碼、刀補(bǔ)運(yùn)算,進(jìn)行粗插補(bǔ)。
運(yùn)動(dòng)控制模塊是采用FPGA設(shè)計(jì)一個(gè)產(chǎn)生控制脈沖的插補(bǔ)器模塊,使用VerilogHDL在QuateusII開(kāi)發(fā)環(huán)境中編程實(shí)現(xiàn)用戶(hù)要求的插補(bǔ)功能。FPGA從ARM中接受控制指令并讀取數(shù)據(jù),完成精插補(bǔ)功能,輸出對(duì)電機(jī)的控制脈沖。需通過(guò)軟件編程實(shí)現(xiàn)精插補(bǔ)功能及其他輔助功能,保證插補(bǔ)算法的實(shí)時(shí)性同時(shí)又保留了接口的靈活性,利于產(chǎn)品性能的升級(jí)換代;伺服接口同時(shí)也利用了FPGA精于復(fù)雜邏輯時(shí)序控制的優(yōu)點(diǎn),可以方便靈活地為各種伺服器提供接口。
界面模塊部分只有兩部分組成,即LCD顯示器和數(shù)控鍵盤(pán),如圖3所示??此坪?jiǎn)單,但在數(shù)控系統(tǒng)中扮演了極其重要的角色,它是人機(jī)友好交互的一個(gè)平臺(tái),用戶(hù)能夠通過(guò)此界面對(duì)系統(tǒng)進(jìn)行現(xiàn)場(chǎng)編碼、參數(shù)設(shè)置、信息反饋和實(shí)時(shí)狀態(tài)監(jiān)控等。
圖3 數(shù)控界面圖
通信接口模塊包括 ARM-JTAG接口、FPGAJTAG接口、RS422串行接口、RS232串行接口和USB接口。上位機(jī)通過(guò)JTAG接口使用J-Link和USBBlaster下載器分別與ARM和FPGA進(jìn)行通信,實(shí)現(xiàn)系統(tǒng)運(yùn)行程序的下載和仿真調(diào)試。RS232串行接口電路中,使用MAX3232進(jìn)行電平轉(zhuǎn)換,兼容3~5.5 V的電平,可以直接與3.3 V的 S3C2410連接。通過(guò)RS232與PC通信,實(shí)現(xiàn) NC文件的上傳與下載。該系統(tǒng)共設(shè)計(jì)了3個(gè)RS422全雙工通信接口,2個(gè)供使用,1個(gè)供擴(kuò)展。一個(gè)接口是與操作鍵盤(pán)通信,另一個(gè)是與外接口板通信。外擴(kuò)USB接口實(shí)現(xiàn)對(duì)U盤(pán)NC文件的讀寫(xiě)。
該系統(tǒng)的軟件設(shè)計(jì)包括兩個(gè)部分:μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)和數(shù)控系統(tǒng)應(yīng)用程序。
為了實(shí)現(xiàn)多任務(wù),μC/OS-Ⅱ?yàn)槊總€(gè)任務(wù)設(shè)定一個(gè)優(yōu)先級(jí),采用優(yōu)先級(jí)的調(diào)度策略。每個(gè)任務(wù)有自己的棧空間,并認(rèn)為自己獨(dú)占CPU,這也就是所謂的搶占式調(diào)度算法。任務(wù)的調(diào)度完全由μC/OS來(lái)完成,包括插入任務(wù)隊(duì)列、選擇最高優(yōu)先權(quán)的任務(wù)、執(zhí)行任務(wù)和撤消任務(wù)等。μC/OS-Ⅱ 可以分配 CPU的運(yùn)行時(shí)間,而CPU的運(yùn)行時(shí)間優(yōu)先分配給中斷事件,其次是分配給當(dāng)前任務(wù)隊(duì)列中優(yōu)先級(jí)最高的任務(wù)。若要實(shí)現(xiàn)各個(gè)不同任務(wù)之間的通信,需要通過(guò)這幾種通信機(jī)制去完成,如信號(hào)量、消息以及郵箱等。每一個(gè)任務(wù)都存在5種運(yùn)行狀態(tài):休眠、就緒、運(yùn)行、掛起、被中斷[3]。
在搞清楚μC/OS-Ⅱ嵌入式操作系統(tǒng)占先式內(nèi)核的任務(wù)調(diào)度原理之后,就要著眼于系統(tǒng)的應(yīng)用層面上,開(kāi)發(fā)并嵌入系統(tǒng)所需的應(yīng)用軟件,通過(guò)操作系統(tǒng)保證任務(wù)的執(zhí)行效率和實(shí)時(shí)性,同時(shí)極大地提高軟件開(kāi)發(fā)效率。將數(shù)控系統(tǒng)的應(yīng)用軟件設(shè)計(jì)分為3個(gè)部分:用戶(hù)界面模塊、數(shù)據(jù)處理模塊和運(yùn)動(dòng)控制模塊,如圖4所示。
圖4 軟件設(shè)計(jì)框圖
(1)用戶(hù)界面設(shè)計(jì)
GUI系統(tǒng)結(jié)構(gòu)用以下方法設(shè)計(jì):首先,該GUI系統(tǒng)是基于線程的,μC/OS-II系統(tǒng)的每一個(gè)任務(wù)都是一個(gè)進(jìn)程,因此GUI的運(yùn)行可以作為一個(gè)任務(wù),運(yùn)行于μC/OS-II系統(tǒng)上;其次,是基于消息傳遞機(jī)制的GUI系統(tǒng),因此,數(shù)控加工過(guò)程中系統(tǒng)實(shí)時(shí)數(shù)據(jù)的顯示,可以通過(guò)系統(tǒng)的各個(gè)任務(wù)傳遞消息給GUI系統(tǒng)進(jìn)行刷新,因?yàn)棣藽/OS-II系統(tǒng)是實(shí)時(shí)的,就保證了數(shù)據(jù)顯示的實(shí)時(shí)性;第三,構(gòu)建數(shù)控系統(tǒng)圖形界面中使用的控件。
(2)數(shù)據(jù)處理模塊
此模塊主要完成譯碼和刀具補(bǔ)償功能??偟膩?lái)說(shuō),譯碼就是將所要加工工件的信息按照某種規(guī)律譯成數(shù)控系統(tǒng)能夠識(shí)別的數(shù)據(jù)形式。數(shù)據(jù)處理的信息主要有工件輪廓信息(如起點(diǎn)、直線或圓弧等)、加工速度和其他輔助信息 (M、S、T)等。由于編制零件加工程序時(shí),一般只考慮零件的輪廓外形,而實(shí)際切削控制時(shí),刀具總有一定的半徑,所以刀具中心的運(yùn)動(dòng)軌跡并不等于所需加工零件的實(shí)際輪廓,數(shù)控機(jī)床進(jìn)行輪廓加工時(shí)必須作相應(yīng)的刀具半徑補(bǔ)償。
(3)插補(bǔ)模塊
運(yùn)動(dòng)控制的核心是插補(bǔ),往往插補(bǔ)精度的高與低就取決于是否具有優(yōu)良的插補(bǔ)算法。為了提高系統(tǒng)的加工精度,采用了最小偏差法實(shí)現(xiàn)數(shù)控系統(tǒng)的插補(bǔ)功能[4]。此法在進(jìn)給之前先判定一下向x坐標(biāo)方向或y坐標(biāo)方向進(jìn)給一步的偏差和向?qū)蔷€ (向x軸與y軸同時(shí)進(jìn)給一步)進(jìn)給一步的偏差,選擇偏差小的那個(gè)方向進(jìn)給。
以第一象限直線插補(bǔ)為例進(jìn)行簡(jiǎn)要說(shuō)明。如圖5所示,若有一直線位于第I象限,終點(diǎn)在Z(xz,yz)。當(dāng)xz≥yz時(shí),進(jìn)給方向?yàn)閤軸方向或者對(duì)角線方向;當(dāng)xz<yz時(shí),進(jìn)給方向?yàn)閥軸方向或者對(duì)角線方向。
圖5 最小偏差法直線插補(bǔ)示意圖[5]
在ARM+FPGA的硬件平臺(tái)上嵌入μC/OS-Ⅱ操作系統(tǒng)的設(shè)計(jì)在雕刻機(jī)上得到了測(cè)試,主要目的是測(cè)試系統(tǒng)的加工精度以及尺寸的一致性。圖6為數(shù)控測(cè)試平臺(tái)及圓形加工圖。
圖6 數(shù)控測(cè)試平臺(tái)及圓形加工圖
要求加工的圓形直徑分別是50、100、150 mm,加工完成后由表1可看出:測(cè)量各種圓形尺寸直徑最大誤差小于0.032 5 mm,可以很好地滿(mǎn)足數(shù)控系統(tǒng)的要求。
表1 加工尺寸誤差分析 mm
設(shè)計(jì)了ARM+FPGA的硬件系統(tǒng)的總體構(gòu)架,確定了芯片的選型以及它們的功能劃分。采用 FPGA技術(shù)設(shè)計(jì)了一種硬件插補(bǔ)器,用硬件描述語(yǔ)言實(shí)現(xiàn)了插補(bǔ)功能,并利用μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)作為開(kāi)發(fā)工具,使數(shù)控雕刻系統(tǒng)滿(mǎn)足了高速度、高精度的加工要求,很好地解決了傳統(tǒng)CNC系統(tǒng)中存在的問(wèn)題。
[1]王田苗,陳友東,孫愷,等.基于 uC/OS-Ⅱ嵌入式數(shù)控系統(tǒng)研制[J].北京航空航天大學(xué)學(xué)報(bào),2006,32(4):471-480.
[2]田家林,陳利學(xué),寇向輝.基于ARM與FPGA的嵌入式數(shù)控系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2007,35(2):93-94.
[3]王田苗,魏洪興.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)[M].3版.北京:清華大學(xué)出版社,2008.
[4]閆華,汪木蘭,王保升.基于FPGA的最小偏差法插補(bǔ)器設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造,2008(12):14-16.
[5]李恩林.數(shù)控系統(tǒng)插補(bǔ)原理通論[M].北京:國(guó)防工業(yè)出版社,2008.
Design of Embedded CNC Carving System Based on ARM+FPGA Architecture
LITengfei1,LING Youzhu1,LIU Jingmeng2
(1.Anhui Electric Power Transmission and Control Key Laboratory,Anhui Engineering University,Wuhu Anhui241000,China;2.Automation School,Beihang University,Beijing 100191,China)
A hardware platform with“ARM+FPGA”architecture and a software platform based onμC/OS-Ⅱreal-time operating system were designed for NC carvingmachine.For the hardware platform,due to the high computing performance of the ARM microprocessor and high logical processing performance of the FPGA,both the number of the peripheral components and the design complexity were reduced.For the software platform,usingμC/OS-Ⅱembedded real-time operating system,not onlymultiple tasks could be done concurrently,the real-time character and stability of carving machine motion control was guaranteed,and the high speed and precision processing requirements weremet,but also the system had a good man-machine interface.
CNC system;ARM;FPGA;Real-time operating system
TP273
B
1001-3881(2014)10-016-3
10.3969/j.issn.1001-3881.2014.10.004
2013-04-19
安徽省自然科學(xué)基金 (11040606M115);蕪湖市科技計(jì)劃基金資助項(xiàng)目 (蕪科計(jì)字[2011]47號(hào)文,[2012]95號(hào)文)
李騰飛 (1987—),男,在讀碩士,現(xiàn)從事嵌入式數(shù)控系統(tǒng)研究與學(xué)習(xí)。通信作者:凌有鑄,E-mail:dianzi3053ltf@126.com。