新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于USB的高速硬件精插補(bǔ)器設(shè)計

基于USB的高速硬件精插補(bǔ)器設(shè)計

作者: 時間:2007-10-24 來源:網(wǎng)絡(luò) 收藏

摘要:介紹了一種基于通訊的高速精插補(bǔ)器的設(shè)計,設(shè)計中采用FPGA實現(xiàn)精插補(bǔ),并通過接口實現(xiàn)與上位PC機(jī)的高速數(shù)據(jù)通訊。該精插補(bǔ)器具有設(shè)計簡單、易于實現(xiàn)、插補(bǔ)速度高等特點,可適用于高速數(shù)控系統(tǒng)的開發(fā)。
關(guān)鍵詞:通訊;FPGA;精插補(bǔ)器

前言

數(shù)控系統(tǒng)發(fā)展到90年代后,基于個人計算機(jī)(PC)的數(shù)控系統(tǒng)(簡稱PCNC)成為CNC發(fā)展的主要方向[1]。目前PC和NC的連接主要采用兩種形式,一是通過PC機(jī)的串口、并口,這種方式接口簡單、連接方便,開發(fā)費用低,但由于傳輸速度低,已不能滿足現(xiàn)代數(shù)控系統(tǒng)的實時性要求。二是采用ISA和PCI插卡的形式,NC功能插卡化,并將其插入PC機(jī)的標(biāo)準(zhǔn)ISA/PCI插槽,可方便實現(xiàn)與用戶接口、主機(jī)系統(tǒng)通訊的開放化,這是PCNC系統(tǒng)的一種主流形式,但PCI總線接口復(fù)雜,驅(qū)動程序、接口開發(fā)難度大,開發(fā)成本較高,開發(fā)周期也較長,而ISA總線由于速度較慢已隨著計算機(jī)的發(fā)展逐漸被淘汰。

隨著計算機(jī)總線結(jié)構(gòu)的變革,必將影響數(shù)控系統(tǒng)的體系結(jié)構(gòu),串行總線的應(yīng)用將極大地改變現(xiàn)有的傳統(tǒng)數(shù)控系統(tǒng)的結(jié)構(gòu)形式。串行總線連接引腳數(shù)量少,連接簡單,成本較低,系統(tǒng)可靠性高,USB作為一種新的通用串行總線標(biāo)準(zhǔn),應(yīng)用越來越廣泛[2]。USB總線具有較強(qiáng)的糾錯能力、速度快、不占用系統(tǒng)資源、驅(qū)動程序開發(fā)簡單的特點,較好地滿足了現(xiàn)代數(shù)控系統(tǒng)的要求,因此,本文把USB這種新型接口和通訊方式應(yīng)用到數(shù)控系統(tǒng),設(shè)計了一種基于USB通訊的高速精插補(bǔ)器。

1硬件精插補(bǔ)器的工作原理

硬件精插補(bǔ)器通過USB接口從上位PC機(jī)獲取粗插補(bǔ)數(shù)據(jù),由FPGA實現(xiàn)高速精插補(bǔ)輸出。精插補(bǔ)器主要由USB接口芯片、微控制器、數(shù)據(jù)緩存、FPGA等部分組成,如圖1所示。各部分功能如下:

微控制器通過USB從上位PC機(jī)獲取粗插補(bǔ)數(shù)據(jù)和機(jī)床控制信息,通過數(shù)據(jù)緩存?zhèn)魉徒oFPGA;

USB接口芯片負(fù)責(zé)處理所有與USB總線事務(wù)有關(guān)的任務(wù),如總線喚醒、數(shù)據(jù)接受/發(fā)送、打包、CRC校驗等;

FPGA通過微控制器獲取粗插補(bǔ)數(shù)據(jù)及機(jī)床控制信息,實現(xiàn)精插補(bǔ)輸出;

數(shù)據(jù)緩存用于緩存粗插補(bǔ)數(shù)據(jù),以協(xié)調(diào)微控制器和精插補(bǔ)控制器的速度差異。

精插補(bǔ)器通過微控制器的固件程序和上位PC機(jī)應(yīng)用程序及驅(qū)動程序的協(xié)調(diào)處理,完成高速的數(shù)據(jù)通訊。



2 硬件設(shè)計

2.1 USB通訊接口設(shè)計

USB 外圍接口芯片采用Philips公司的支持USB1.1協(xié)議的芯片PDIUSBD12(以下簡稱D12), 該芯片性價比高,集成了320字節(jié)的FIFO內(nèi)存、SIE(Serial Interface Engine)、收發(fā)器以及電壓調(diào)整器, 主端點有雙緩存配置,增加吞吐量,容易實現(xiàn)實時數(shù)據(jù)傳輸[3]。由于其為純粹的USB外設(shè)接口芯片僅處理USB總線相關(guān)事務(wù),必須有一個外部微處理器來進(jìn)行協(xié)議處理和數(shù)據(jù)交換,設(shè)計中采用PHILIPS公司內(nèi)核基于8位80C51單片機(jī)增強(qiáng)型派生產(chǎn)品P89C58X2FN ,它完全保留了80C51指令系統(tǒng)和硬件結(jié)構(gòu)的大框架,而且它在多個方面進(jìn)行了加強(qiáng)、擴(kuò)展和創(chuàng)新。如片上的FLASH EPROM擴(kuò)展到32KB,滿足當(dāng)今用嵌入式高級語言對片上大存儲容量的需要;6個中斷源和4個中斷優(yōu)先級滿足數(shù)控系統(tǒng)的多級中斷要求;速度高達(dá)33M有利于提高對D12的讀寫速度。D12與P89C58X2FN連接電路如圖2所示。

圖2 D12與P89C58X2FN的連接電路圖

D12采用數(shù)據(jù)/地址總線復(fù)用方式和P89C58X2FN相連接,D12相當(dāng)于一位(兩個地址)的外部RAM,對D12的操作就像對外部RAM操作一樣,低位地址線P0.0通過373地址鎖存后與D12的A0相連,高位P2.5產(chǎn)生片選信號,這樣D12的地址為2000H和2001H, D12的通信采用這樣的方式:一個偶數(shù)地址表示送往D12的是讀/寫數(shù)據(jù),一個奇數(shù)地址表示往D12 寫入一個命令,這是由D12的內(nèi)部邏輯來實現(xiàn)的,即D12的數(shù)據(jù)地址為2000H,命令地址為2001H。D12的中斷引腳接P89C58X2FN的外部中斷1,要注意的是中斷只能采用電平觸發(fā)方式,低電平有效。

2.2 FPGA設(shè)計

隨著集成度高、速度快的可編程門陣列FPGA(FILED ROGRAMABLE GATE ARRAY)的出現(xiàn)和EDA工具的完善,使得硬件電路的設(shè)計過程大大簡化,并可通過波形仿真工具驗證電路的功能正確性,有效地縮短了電路的開發(fā)周期,提高了設(shè)計的靈活性,可彌補(bǔ)傳統(tǒng)硬件插補(bǔ)器的缺點。因此,本文采用FPGA來實現(xiàn)精精插。具體設(shè)計中采用了ALTERA公司的FPGA芯片EPF10K10LC84-4,可實現(xiàn)三軸直線、兩軸圓弧聯(lián)動精插補(bǔ),產(chǎn)生進(jìn)給序列脈沖,用于三軸步進(jìn)或伺服電機(jī)的驅(qū)動控制。

2.2.1 精插補(bǔ)原理

精插補(bǔ)器的功能是接收通過粗插補(bǔ)計算得到的一個插補(bǔ)周期內(nèi)各軸的進(jìn)給量(微段直線),并將其轉(zhuǎn)化成頻率均勻的進(jìn)給脈沖,輸出給各軸的位置伺服控制器。脈沖轉(zhuǎn)換常用的方法是采用計數(shù)器和分頻器,其主要優(yōu)點是頻率均勻,但存在脈沖截斷誤差。本文采用了基于DDA(數(shù)字微分分析器)插補(bǔ)原理的脈沖轉(zhuǎn)換算法,它不僅實現(xiàn)簡單,消除了脈沖截斷誤差,而且易于實現(xiàn)多坐標(biāo)進(jìn)給的同步[4]。

DDA插補(bǔ)的原理是通過對進(jìn)給量X的不斷累加、溢出,產(chǎn)生相應(yīng)的進(jìn)給脈沖。具體的說,在累加脈沖△T控制下,存儲在N位寄存器中的進(jìn)給量X不斷累加,累加的溢出脈沖即為驅(qū)動坐標(biāo)軸的進(jìn)給脈沖。當(dāng)累加次數(shù)達(dá)到2N時,溢出脈沖的數(shù)據(jù)量恰好等于進(jìn)給量X,一次脈沖轉(zhuǎn)換完成。此時,完成一次脈沖轉(zhuǎn)換的周期是T=2N/fin,產(chǎn)生的溢出脈沖頻率為fout=fin*X/2N,其中fin為累加控制脈沖頻率。

2.2.2 FPGA實現(xiàn)

精插補(bǔ)器內(nèi)部結(jié)構(gòu)原理圖如圖3所示。其工作過程如下:精插補(bǔ)的啟動、停止是由單片機(jī)來控制的,開始插補(bǔ)時,單片機(jī)把本次插補(bǔ)周期的粗插補(bǔ)數(shù)據(jù)發(fā)送給FPGA后,發(fā)出插補(bǔ)開始信號。插補(bǔ)開始信號一到,插補(bǔ)控制邏輯就把插補(bǔ)數(shù)據(jù)送入累加寄存器,并啟動累加器進(jìn)行累加,同時輸出插補(bǔ)方向信號,然后就向單片機(jī)申請中斷,發(fā)送下一個插補(bǔ)周期的數(shù)據(jù)到插補(bǔ)數(shù)據(jù)緩沖區(qū)中。插補(bǔ)周期未到時,累加器不斷累加進(jìn)行脈沖輸出,計數(shù)器控制每個插補(bǔ)周期脈沖轉(zhuǎn)化的累加次數(shù),一旦本次插補(bǔ)周期一到,計數(shù)器對累加器清零,以免給下一次插補(bǔ)帶來偏差,并重新開始下一個周期的插補(bǔ)。當(dāng)單片機(jī)發(fā)出停止插補(bǔ)信號后,控制邏輯立即封鎖插補(bǔ)脈沖源,停止插補(bǔ)脈沖輸出。為了提高溢出脈沖均勻性,減少溢出脈沖的頻率誤差,本文使累加次數(shù)增加Q倍,再對溢出脈沖進(jìn)行Q倍分頻。

圖3 精插補(bǔ)器內(nèi)部結(jié)構(gòu)原理圖

2.2.2精插補(bǔ)器最高輸出脈沖頻率分析

設(shè)插補(bǔ)周期為0.5ms,若硬件精插補(bǔ)器采用8位累加器,4位分頻器,則每次脈沖轉(zhuǎn)換的累加次數(shù)應(yīng)為212。累加脈沖的輸入頻率是fin=212/T=8.192MHZ,則最高輸出脈沖頻率可達(dá)fout=fin*X/212=510KHZ。當(dāng)伺服進(jìn)給的脈沖量為lum時,最大進(jìn)給速度可達(dá)30.6m/min,而且通過提高累加的頻率還可獲得更高的速度??梢姳疚奶岢龅挠布逖a(bǔ)器完全可滿足高速加工的進(jìn)給速度控制要求。

3 固件程序設(shè)計

固件程序(firmware)除了完成USB設(shè)備初始化、USB協(xié)議標(biāo)準(zhǔn)請求處理外,主要的任務(wù)是實現(xiàn)粗插補(bǔ)數(shù)據(jù)及機(jī)床控制命令和狀態(tài)反饋信息的傳輸。D12共有3個端點,端點0、端點1和端點2。在設(shè)計中,端點0通過控制傳輸實現(xiàn)設(shè)備的枚舉;端點1通過中斷傳輸方式實現(xiàn)數(shù)控系統(tǒng)的控制信號及數(shù)據(jù)請求信號的傳輸,端點2配置為普通傳輸端點,通過批量傳輸實現(xiàn)數(shù)控系統(tǒng)粗插補(bǔ)數(shù)據(jù)的傳輸工作。數(shù)據(jù)交換是采用中斷機(jī)制來實現(xiàn)。微控制器與USB的數(shù)據(jù)交換由外部中斷1來處理,微控制器與FPGA的數(shù)據(jù)交換由外部中斷0來處理?,F(xiàn)主要介紹固件程序?qū)崿F(xiàn)NC粗插補(bǔ)數(shù)據(jù)傳輸?shù)姆椒ā?/P>

由于NC粗插補(bǔ)數(shù)據(jù)量較大,不適合于采用中斷傳輸,盡管同步傳輸速度快,速度恒定,但由于其數(shù)據(jù)傳輸?shù)臏?zhǔn)確性差也滿足不了要求,因此NC粗插補(bǔ)數(shù)據(jù)采用批量傳輸。由于批量傳輸方式優(yōu)先級最低,系統(tǒng)響應(yīng)具有不確定性,傳輸速度也具有一定的不確定性。解決的方法是采用數(shù)據(jù)緩沖,在系統(tǒng)中配置了一個8k的外部RAM,設(shè)置兩個4000字節(jié)的粗插補(bǔ)數(shù)據(jù)緩沖區(qū)。一個插補(bǔ)周期的數(shù)據(jù)占4個字節(jié),可緩沖1000段數(shù)據(jù),系統(tǒng)插補(bǔ)周期為0.5ms,即一次傳輸加工時間為500ms,若按40k/s的批量傳輸速度計算(實際傳輸?shù)乃俣冗h(yuǎn)大于此速度),傳輸4000字節(jié)只需100ms左右,加上NC數(shù)據(jù)請求等待延時,還有足夠的時間余量。另外,系統(tǒng)中沒有同步傳輸,中斷傳輸?shù)臄?shù)據(jù)量少,也保證了USB總線為批量傳輸提供足夠的帶寬。因此,本文采用雙緩沖區(qū)的方式完全可滿足高速加工的插補(bǔ)數(shù)據(jù)通訊要求。

具體實現(xiàn)時,粗插補(bǔ)數(shù)據(jù)通過端點2的批量傳輸來完成的。在一個緩沖區(qū)的數(shù)據(jù)精插補(bǔ)完后,通過端點1向PC主機(jī)發(fā)出數(shù)據(jù)請求,PC主機(jī)即向該緩沖區(qū)傳輸數(shù)據(jù),固件程序通過端點2 OUT中斷接收該數(shù)據(jù),并存入數(shù)據(jù)緩沖區(qū)。

4 結(jié)束語

高速加工是當(dāng)代數(shù)控加工的發(fā)展趨勢,高速硬件精插補(bǔ)器是實現(xiàn)高速加工進(jìn)給控制的關(guān)鍵技術(shù)之一。本文采用可編程邏輯器件FPGA實現(xiàn)高速精插補(bǔ)器,充分發(fā)揮了FPGA速度快、設(shè)計靈活、集成度高、性能可靠、開發(fā)成本低等一系列優(yōu)點。采用USB接口實現(xiàn)通訊,完全滿足精插補(bǔ)器的高速數(shù)據(jù)傳輸要求。

參考文獻(xiàn)

[1] 孫斌、楊汝清,基于PC的數(shù)控系統(tǒng)的研究現(xiàn)狀和發(fā)展趨勢,機(jī)床與液壓,2001年4期:3~5
[2] 鄭立新,串行總線計算機(jī)數(shù)控系統(tǒng),制造技術(shù)與機(jī)床,200年4期:9~10。
[3] 周立功等編著. PDIUSBD12 USB 固件編程與驅(qū)動開發(fā) .北京:北京航空航天大學(xué)出版社. 2003年
[4] 羅睿梅著. 高速數(shù)控系統(tǒng)的運動控制技術(shù). 南京航空航天大學(xué)學(xué)位論文,2003年

伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理


分頻器相關(guān)文章:分頻器原理


關(guān)鍵詞: USB 硬件

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉