技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于A(yíng)RM+FPGA的嵌入式數(shù)控系統(tǒng)

基于A(yíng)RM+FPGA的嵌入式數(shù)控系統(tǒng)

時(shí)間:2008-10-30 10:17:00來(lái)源:ronggang

導(dǎo)語(yǔ):?本文針對(duì)現(xiàn)有CNC系統(tǒng)中存在的一些問(wèn)題,提出了一種基于A(yíng)RM+ FPGA結(jié)構(gòu)的嵌入式數(shù)控系統(tǒng),并采用μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng),詳細(xì)介紹了這種系統(tǒng)的硬件結(jié)構(gòu)和軟件設(shè)計(jì)
摘 要:本文針對(duì)現(xiàn)有CNC系統(tǒng)中存在的一些問(wèn)題,提出了一種基于A(yíng)RM+ FPGA結(jié)構(gòu)的嵌入式數(shù)控系統(tǒng),并采用μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng),詳細(xì)介紹了這種系統(tǒng)的硬件結(jié)構(gòu)和軟件設(shè)計(jì)。 關(guān)鍵詞:ARM FPGA 嵌入式數(shù)控系統(tǒng) μC/OS-Ⅱ
Embeded CNC System based on ARM and FPGA
Abstract:A kind of embeded CNC system based on ARM with the real-time operation system μC/OS-Ⅱ is proposed to resolve the problems of the current computer numerical control (CNC). The hardware structure and software design of this system is introduced. Keywords: ARM; FPGA; embedded CNC system; μC/OS-Ⅱ 1 引言   自從1952年第一臺(tái)數(shù)控機(jī)床問(wèn)世以來(lái),隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)控系統(tǒng)經(jīng)歷了由硬件數(shù)控到計(jì)算機(jī)數(shù)控(CNC)的發(fā)展過(guò)程。起初的硬件數(shù)控系統(tǒng),零件程序的輸入、運(yùn)算、插補(bǔ)及控制功能均由硬件完成。CNC系統(tǒng)采用計(jì)算機(jī)作為數(shù)控系統(tǒng)的核心部件,減少了硬件電路,提高了系統(tǒng)的通用性和可靠性。但是這類(lèi)系統(tǒng)仍然存在一些問(wèn)題,如資源浪費(fèi),操作系統(tǒng)實(shí)時(shí)性差,硬件結(jié)構(gòu)復(fù)雜等。   本文介紹了一種基于PC的“ARM+FPGA”結(jié)構(gòu)的嵌入式數(shù)控系統(tǒng)。該系統(tǒng)是針對(duì)小型、便攜式機(jī)床開(kāi)發(fā)生產(chǎn)的新一代控制全數(shù)字步進(jìn)電機(jī)的數(shù)控系統(tǒng)。上位機(jī)PC用于復(fù)雜加工代碼的編程,“ARM+FPGA”結(jié)構(gòu)控制系統(tǒng)則用于實(shí)現(xiàn)運(yùn)動(dòng)控制的功能。采用ARM開(kāi)發(fā)數(shù)控系統(tǒng)可以降低硬件成本,增強(qiáng)穩(wěn)定性,提高系統(tǒng)的可擴(kuò)展性。 2 系統(tǒng)硬件設(shè)計(jì)   2.1 硬件結(jié)構(gòu)   本系統(tǒng)的設(shè)計(jì)中,以PC機(jī)作為上位機(jī),ARM+FPGA為控制核心。系統(tǒng)的硬件結(jié)構(gòu)如圖1。 [align=center] 圖1 系統(tǒng)硬件結(jié)構(gòu)[/align]   在上位PC機(jī)中,應(yīng)用CAD軟件產(chǎn)生加工G代碼,通過(guò)USB把程序代碼串行傳送到系統(tǒng)的SDRAM中,ARM從數(shù)據(jù)存儲(chǔ)器中讀取G代碼,進(jìn)行譯碼,刀補(bǔ)運(yùn)算,粗插補(bǔ)[1]。FPGA接收ARM的控制指令,讀取數(shù)據(jù),完成精插補(bǔ)功能,輸出對(duì)電機(jī)的控制脈沖。另外,為了實(shí)現(xiàn)上位PC機(jī)與控制器之間的高速數(shù)據(jù)交換,系統(tǒng)除了具有串口通訊功能外,還采用了USB接口通訊,用DMA方式和上位PC機(jī)進(jìn)行數(shù)據(jù)同步交換,這種方式可以使系統(tǒng)獲得更高的通訊速度。該系統(tǒng)有3路脈沖直接驅(qū)動(dòng)步進(jìn)電機(jī),最高頻率為4MHz。   2.2 芯片選擇  ?。?)ARM微處理器   本系統(tǒng)采用了SAMSUNG公司推出的16/32位RISC嵌入式微處理器S3C44B0X,其最大主頻為66MHz。S3C44B0X采用了ARM7TDMI核,0.25um工藝的CMOS標(biāo)準(zhǔn)宏單元和存儲(chǔ)編譯器,還提供了非常豐富的內(nèi)置部件,包括8K高速緩存器,外部存儲(chǔ)控制器,2通道通用DMA,2通道外設(shè)DMA,2通道帶有握手協(xié)議的UART,71個(gè)通用I/O口,8通道外部中斷源,8通道10位ADC以及具有PLL的片上時(shí)鐘發(fā)生器。通過(guò)提供豐富的片上資源,可以減少外圍電路,降低系統(tǒng)成本。另外,芯片還采用了低電壓技術(shù),運(yùn)算速度很快,功耗很低,非常適合數(shù)控系統(tǒng)的設(shè)計(jì)。  ?。?)FPGA   FPGA(Field Programmable Gate Array)是在PAL、GAL等邏輯器件的基礎(chǔ)上發(fā)展起來(lái)的,是一種特殊的ASIC芯片,具有豐富的邏輯資源以及I/O引腳,用戶(hù)可以重新配置其內(nèi)部的邏輯模塊和I/O模塊,以實(shí)現(xiàn)用戶(hù)的邏輯。此外,F(xiàn)PGA還具有規(guī)模大、體積小、可靠性高等優(yōu)點(diǎn),符合數(shù)控系統(tǒng)的設(shè)計(jì)要求。本系統(tǒng)采用Lattice公司的LFXP6C-3Q208C芯片來(lái)實(shí)現(xiàn)插補(bǔ)運(yùn)算。在系統(tǒng)中,F(xiàn)PGA接受ARM和外部RAM送來(lái)的控制指令和數(shù)據(jù)信息執(zhí)行插補(bǔ)運(yùn)算,產(chǎn)生控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)的脈沖序列,并通過(guò)接口將脈沖序列送到步進(jìn)電機(jī)驅(qū)動(dòng)器。另外FPGA與主軸編碼器相連接,能識(shí)別其輸出的信號(hào)并計(jì)數(shù),計(jì)數(shù)結(jié)果存放在寄存器中,供ARM讀取。FPGA還通過(guò)ULN2083AC芯片與I /O接口連接,執(zhí)行各種信號(hào)的轉(zhuǎn)換和隔離功能。圖2 是FPGA的外圍連接。 [align=center] 圖2 FPGA的外圍連接[/align]   2.3 脈沖輸出信號(hào)的連接方式   脈沖輸出信號(hào)的連接有差動(dòng)方式和單端方式兩種,單端方式適用于早期一些脈沖和方向的陽(yáng)極連在一起的步進(jìn)驅(qū)動(dòng)器,而不適用于某些脈沖和方向的陰極連在一起的步進(jìn)驅(qū)動(dòng)器。差動(dòng)方式適用于脈沖和方向獨(dú)立輸入的步進(jìn)驅(qū)動(dòng)器和大多數(shù)伺服驅(qū)動(dòng)器,能夠獲得較好的抗干擾性。本系統(tǒng)采用的是差動(dòng)方式連接,圖3為其連接方式 。 [align=center] 圖3 脈沖輸出信號(hào)的差動(dòng)連接[/align] 3 系統(tǒng)的軟件結(jié)構(gòu)   系統(tǒng)的軟件結(jié)構(gòu)主要分為兩部分:操作系統(tǒng)軟件和數(shù)控應(yīng)用軟件。由于數(shù)控系統(tǒng)是個(gè)實(shí)時(shí)多任務(wù)系統(tǒng),實(shí)時(shí)性要求很高,為保證各個(gè)任務(wù)的協(xié)調(diào)執(zhí)行,本系統(tǒng)采用了μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)作為軟件平臺(tái)。   3.1 μC/OS-Ⅱ簡(jiǎn)介[2]   μC/OS-Ⅱ是一種源代碼公開(kāi)的實(shí)時(shí)操作系統(tǒng),是搶先式的內(nèi)核,在運(yùn)行就緒條件下總是讓級(jí)別最高的任務(wù)優(yōu)先執(zhí)行,它還是一個(gè)多任務(wù)管理系統(tǒng),可管理64個(gè)任務(wù),其中8個(gè)保留給系統(tǒng),用戶(hù)任務(wù)最多可達(dá)56個(gè),并且每個(gè)任務(wù)由自己獨(dú)立的??臻g。μC/OS-Ⅱ的大部分源代碼是用C語(yǔ)言編寫(xiě)的,僅與微處理器相關(guān)部分使用匯編語(yǔ)言,因此具有很強(qiáng)的移植性。但是,由于μC/OS-Ⅱ在讀寫(xiě)處理器、寄存器時(shí)只能通過(guò)匯編語(yǔ)言來(lái)實(shí)現(xiàn),所以需要用匯編語(yǔ)言完成一些與處理器相關(guān)的代碼。   3.2 μC/OS-Ⅱ的移植   要實(shí)現(xiàn)該操作系統(tǒng)在S3C44B0X微處理器平臺(tái)上的正常運(yùn)行,需要修改與處理器類(lèi)型有關(guān)部分的代碼[3],下面簡(jiǎn)單的介紹了需要修改的相關(guān)文件:  ?。?)修改OS_CPU.H文件:包括定義數(shù)據(jù)類(lèi)型及與處理器相關(guān)的基本信息。  ?。?)修改OS_CPU_C.C文件:編寫(xiě)初始化任務(wù)的堆棧結(jié)構(gòu)函數(shù)OSTaskStkInit(),該函數(shù)由任務(wù)創(chuàng)建函數(shù)OSTaskCreate()或OSTaskCreateEXT()調(diào)用。例如創(chuàng)建一個(gè)插補(bǔ)任務(wù)為:   OSTaskCreate(InterpTask,(void*)0,(void*)&InterpTask_Stack\[STACKSIZE-1\],   InterpTask_Pri)。另外還必須聲明5個(gè)函數(shù):建立任務(wù)函數(shù)OSTaskCreateHook()、刪除任務(wù)函數(shù)OSTaskDelHook()、任務(wù)切換函數(shù)OSTaskSwHook()、產(chǎn)生時(shí)鐘節(jié)拍得函數(shù)OSTimeTickHook()和統(tǒng)計(jì)功能函數(shù)OSTimeTickHook()。  ?。?)修改OS_CPU_A.ASM文件:編寫(xiě)4個(gè)與處理器相關(guān)的匯編語(yǔ)言函數(shù)OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。   3.3 數(shù)控系統(tǒng)的應(yīng)用軟件設(shè)計(jì)   根據(jù)數(shù)控系統(tǒng)所要實(shí)現(xiàn)的功能,可以將系統(tǒng)的應(yīng)用軟件主要分為幾個(gè)模塊:人機(jī)界面模塊、數(shù)據(jù)處理模塊、插補(bǔ)模塊。其中人機(jī)界面模塊的任務(wù)由PC機(jī)完成,包括數(shù)控代碼的編輯,加工過(guò)程中相關(guān)參數(shù)的設(shè)置,刀補(bǔ)參數(shù)的設(shè)置等[4]。  ?。?)數(shù)據(jù)處理模塊   數(shù)據(jù)處理模塊主要完成譯碼和刀具補(bǔ)償功能。譯碼就是將數(shù)控代碼的各種工件輪廓信息(如起點(diǎn)、直線(xiàn)或圓弧等)、加工速度F和其它輔助信息(M、S、T)按一定規(guī)律翻譯成系統(tǒng)能識(shí)別的數(shù)據(jù)形式。由于編制零件加工程序時(shí),一般只考慮零件的輪廓外形,而實(shí)際切削控制時(shí),是以刀具中心為控制中心的,所以經(jīng)過(guò)譯碼得到的數(shù)據(jù)不能直接由插補(bǔ)程序使用,必須經(jīng)過(guò)軌跡計(jì)算,進(jìn)行刀具長(zhǎng)度補(bǔ)償和刀具半徑補(bǔ)償,才能轉(zhuǎn)換為插補(bǔ)所需要的參數(shù)。  ?。?)插補(bǔ)模塊   數(shù)控系統(tǒng)的核心任務(wù)是插補(bǔ),插補(bǔ)計(jì)算的精度影響到整個(gè)數(shù)控系統(tǒng)的精度。插補(bǔ)任務(wù)就是按照進(jìn)給速度的要求,由譯碼得到的數(shù)據(jù)信息計(jì)算出零件輪廓起點(diǎn)和終點(diǎn)之間若干中間點(diǎn)的坐標(biāo)值,并轉(zhuǎn)化為脈沖數(shù)據(jù)送入步進(jìn)驅(qū)動(dòng)器。本系統(tǒng)采用了脈沖增量插補(bǔ),脈沖輸出的頻率誤差小于0.1%。其脈沖輸出可用單脈沖(脈沖+方向)或雙脈沖(脈沖+脈沖)方式??梢詫?shí)現(xiàn)任意2-3軸直線(xiàn)、任意2軸圓弧插補(bǔ),連續(xù)插補(bǔ)功能。 [align=center] 圖4 逐點(diǎn)比較法第一象限直線(xiàn)插補(bǔ)軟件流程圖[/align]   下面以第一象限直線(xiàn)插補(bǔ)為例,圖4為逐點(diǎn)比較法第一象限直線(xiàn)插補(bǔ)軟件流程圖。其中,(xe,ye)為直線(xiàn)的終點(diǎn)坐標(biāo),F(xiàn)為每一步直線(xiàn)插補(bǔ)運(yùn)算后的偏差值。當(dāng)F≥0時(shí),加工點(diǎn)在加工直線(xiàn)上或在直線(xiàn)上方,則向x軸正向產(chǎn)生一個(gè)脈沖,由步進(jìn)電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)x軸步進(jìn)電機(jī)正向進(jìn)給一個(gè)步進(jìn)角,并計(jì)算出新的偏差F=F-ye;當(dāng)F<0時(shí),加工點(diǎn)位于直線(xiàn)下方,則向y軸正向產(chǎn)生一個(gè)脈沖,由步進(jìn)電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)y軸步進(jìn)電機(jī)正向進(jìn)給一個(gè)步進(jìn)角,并計(jì)算出新的偏差F=F+xe。n為終點(diǎn)判別,當(dāng)?shù)毒叩竭_(dá)終點(diǎn)時(shí),停止插補(bǔ)。本系統(tǒng)采用VHDL語(yǔ)言編寫(xiě)算法實(shí)現(xiàn)插補(bǔ),如下為部分代碼:   ARCHITECTURE connect OF chabu IS   BEGIN   VERIABLE F:INTEGER:=0;   n:INTEGER:=ABS(xe)+ABS(ye);   xi,yi:INTEGER //(xi,yi)為插補(bǔ)運(yùn)算過(guò)程中刀具的加工點(diǎn)坐標(biāo)   PROCESS(reset) //reset是復(fù)位信號(hào),插補(bǔ)開(kāi)始后對(duì)偏差值F和(xi,yi)清零, BEGIN 使刀具回到坐標(biāo)原點(diǎn)   F=0;   ……   END PROCESS;   PROCESS(clk) //clk是時(shí)鐘控制信號(hào),當(dāng)clk上升沿到來(lái)時(shí)進(jìn)行插補(bǔ)運(yùn)算的處理   BEGIN   WHILE(n>0)LOOP   IF(F>=0)THEN   cqx=1; //cqx,cqy為x軸和y軸的輸出脈沖信號(hào)   cqy=0;   F=F-ye;   n=n-1;   ELSE   ……   END IF;   END LOOP;   END PROCESS;   END connect;   3.4 系統(tǒng)中數(shù)據(jù)信息的交換   在數(shù)控加工時(shí),CNC系統(tǒng)各模塊之間需要傳遞大量的數(shù)據(jù)信息,主要通過(guò)各種緩沖存儲(chǔ)區(qū)實(shí)現(xiàn)該功能,如圖5為數(shù)據(jù)信息的交換過(guò)程。首先讀入數(shù)控加工程序到數(shù)控加工程序緩沖器,從中逐個(gè)讀入字符,經(jīng)譯碼處理送到譯碼結(jié)果緩沖器,再經(jīng)一系列插補(bǔ)準(zhǔn)備(包括刀補(bǔ)計(jì)算和速度處理),送到插補(bǔ)緩沖器中,插補(bǔ)程序執(zhí)行插補(bǔ)運(yùn)算時(shí),把插補(bǔ)緩沖存儲(chǔ)區(qū)的內(nèi)容讀入到插補(bǔ)工作存儲(chǔ)區(qū),然后用插補(bǔ)工作區(qū)的數(shù)據(jù)進(jìn)行插補(bǔ)計(jì)算,并將結(jié)果送到插補(bǔ)輸出寄存器。 [align=center] 圖5 數(shù)據(jù)信息的交換[/align] 4 結(jié)論   嵌入式數(shù)控系統(tǒng)采用ARM和FPGA硬件平臺(tái),減少了系統(tǒng)的外圍器件,具有體積小,性?xún)r(jià)比高,穩(wěn)定性好等優(yōu)點(diǎn)。并且利用μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)作為開(kāi)發(fā)工具,使數(shù)控系統(tǒng)具有優(yōu)異的實(shí)時(shí)性,滿(mǎn)足了高速度、高精度的加工要求,很好的解決了傳統(tǒng)CNC系統(tǒng)中存在的問(wèn)題。由此,嵌入式數(shù)控系統(tǒng)具有廣闊的發(fā)展前景。 參考文獻(xiàn):   [1]劉艷霞,李淑芬.基于A(yíng)RM的嵌入式數(shù)控系統(tǒng)[J].微計(jì)算機(jī)信息.2006,22(35):90-91,96   [2]Labrosse Jean J.邵貝貝譯,嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ[M].2版.北京:中國(guó)電力出版社.2003   [3]王曉鳴,王樹(shù)新,張宏偉.實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ在A(yíng)RM上的移植[J].機(jī)電一體化.2007,(1):56-58   [4]楊代華,陳志輝.基于實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的數(shù)控系統(tǒng)研制[J].制造技術(shù)與機(jī)床.2007,(12):21-23 作者簡(jiǎn)介:   第一作者:朱曉潔(1983-),女,江蘇無(wú)錫人,碩士研究生,主要研究方向:數(shù)控系統(tǒng)。   通信地址:南京新模范馬路5號(hào)南京工業(yè)大學(xué)丁家橋校區(qū)119#信箱   郵編:210009 電話(huà):13675122764   E-mail:stream_xu@126.com   第二作者:舒志兵(1965-),男,江蘇南京人,南京工業(yè)大學(xué)運(yùn)動(dòng)控制研究所所長(zhǎng),主要研究方向:交流伺服系統(tǒng)、DSP技術(shù)、現(xiàn)場(chǎng)總線(xiàn)、數(shù)控系統(tǒng)、運(yùn)動(dòng)控制、機(jī)電一體化系統(tǒng)等。   E-mail:shuzhibing@163.com

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:高速工業(yè)平縫機(jī)轉(zhuǎn)速測(cè)量方法研究

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。