基于USB的高速硬件精插補器設計
摘要:介紹了一種基于USB通訊的高速硬件精插補器的設計,設計中采用FPGA實現精插補,并通過USB接口實現與上位PC機的高速數據通訊。該精插補器具有設計簡單、易于實現、插補速度高等特點,可適用于高速數控系統(tǒng)的開發(fā)。
關鍵詞:USB通訊;FPGA;精插補器
前言
數控系統(tǒng)發(fā)展到90年代后,基于個人計算機(PC)的數控系統(tǒng)(簡稱PCNC)成為CNC發(fā)展的主要方向[1]。目前PC和NC的連接主要采用兩種形式,一是通過PC機的串口、并口,這種方式接口簡單、連接方便,開發(fā)費用低,但由于傳輸速度低,已不能滿足現代數控系統(tǒng)的實時性要求。二是采用ISA和PCI插卡的形式,NC功能插卡化,并將其插入PC機的標準ISA/PCI插槽,可方便實現與用戶接口、主機系統(tǒng)通訊的開放化,這是PCNC系統(tǒng)的一種主流形式,但PCI總線接口復雜,驅動程序、硬件接口開發(fā)難度大,開發(fā)成本較高,開發(fā)周期也較長,而ISA總線由于速度較慢已隨著計算機的發(fā)展逐漸被淘汰。
隨著計算機總線結構的變革,必將影響數控系統(tǒng)的體系結構,串行總線的應用將極大地改變現有的傳統(tǒng)數控系統(tǒng)的結構形式。串行總線連接引腳數量少,連接簡單,成本較低,系統(tǒng)可靠性高,USB作為一種新的通用串行總線標準,應用越來越廣泛[2]。USB總線具有較強的糾錯能力、速度快、不占用系統(tǒng)資源、驅動程序開發(fā)簡單的特點,較好地滿足了現代數控系統(tǒng)的要求,因此,本文把USB這種新型接口和通訊方式應用到數控系統(tǒng),設計了一種基于USB通訊的硬件高速精插補器。
1硬件精插補器的工作原理
硬件精插補器通過USB接口從上位PC機獲取粗插補數據,由FPGA實現高速精插補輸出。精插補器主要由USB接口芯片、微控制器、數據緩存、FPGA等部分組成,如圖1所示。各部分功能如下:
微控制器通過USB從上位PC機獲取粗插補數據和機床控制信息,通過數據緩存?zhèn)魉徒oFPGA;
USB接口芯片負責處理所有與USB總線事務有關的任務,如總線喚醒、數據接受/發(fā)送、打包、CRC校驗等;
FPGA通過微控制器獲取粗插補數據及機床控制信息,實現精插補輸出;
數據緩存用于緩存粗插補數據,以協調微控制器和精插補控制器的速度差異。
精插補器通過微控制器的固件程序和上位PC機應用程序及驅動程序的協調處理,完成高速的數據通訊。
2 硬件設計
2.1 USB通訊接口設計
USB 外圍接口芯片采用Philips公司的支持USB1.1協議的芯片PDIUSBD12(以下簡稱D12), 該芯片性價比高,集成了320字節(jié)的FIFO內存、SIE(Serial Interface Engine)、收發(fā)器以及電壓調整器, 主端點有雙緩存配置,增加吞吐量,容易實現實時數據傳輸[3]。由于其為純粹的USB外設接口芯片僅處理USB總線相關事務,必須有一個外部微處理器來進行協議處理和數據交換,設計中采用PHILIPS公司內核基于8位80C51單片機增強型派生產品P89C58X2FN ,它完全保留了80C51指令系統(tǒng)和硬件結構的大框架,而且它在多個方面進行了加強、擴展和創(chuàng)新。如片上的FLASH EPROM擴展到32KB,滿足當今用嵌入式高級語言對片上大存儲容量的需要;6個中斷源和4個中斷優(yōu)先級滿足數控系統(tǒng)的多級中斷要求;速度高達33M有利于提高對D12的讀寫速度。D12與P89C58X2FN連接電路如圖2所示。
圖2 D12與P89C58X2FN的連接電路圖
D12采用數據/地址總線復用方式和P89C58X2FN相連接,D12相當于一位(兩個地址)的外部RAM,對D12的操作就像對外部RAM操作一樣,低位地址線P0.0通過373地址鎖存后與D12的A0相連,高位P2.5產生片選信號,這樣D12的地址為2000H和2001H, D12的通信采用這樣的方式:一個偶數地址表示送往D12的是讀/寫數據,一個奇數地址表示往D12 寫入一個命令,這是由D12的內部邏輯來實現的,即D12的數據地址為2000H,命令地址為2001H。D12的中斷引腳接P89C58X2FN的外部中斷1,要注意的是中斷只能采用電平觸發(fā)方式,低電平有效。
2.2 FPGA設計
隨著集成度高、速度快的可編程門陣列FPGA(FILED ROGRAMABLE GATE ARRAY)的出現和EDA工具的完善,使得硬件電路的設計過程大大簡化,并可通過波形仿真工具驗證電路的功能正確性,有效地縮短了電路的開發(fā)周期,提高了設計的靈活性,可彌補傳統(tǒng)硬件插補器的缺點。因此,本文采用FPGA來實現精精插。具體設計中采用了ALTERA公司的FPGA芯片EPF10K10LC84-4,可實現三軸直線、兩軸圓弧聯動精插補,產生進給序列脈沖,用于三軸步進或伺服電機的驅動控制。
2.2.1 精插補原理
精插補器的功能是接收通過粗插補計算得到的一個插補周期內各軸的進給量(微段直線),并將其轉化成頻率均勻的進給脈沖,輸出給各軸的位置伺服控制器。脈沖轉換常用的方法是采用計數器和分頻器,其主要優(yōu)點是頻率均勻,但存在脈沖截斷誤差。本文采用了基于DDA(數字微分分析器)插補原理的脈沖轉換算法,它不僅實現簡單,消除了脈沖截斷誤差,而且易于實現多坐標進給的同步[4]。
DDA插補的原理是通過對進給量X的不斷累加、溢出,產生相應的進給脈沖。具體的說,在累加脈沖△T控制下,存儲在N位寄存器中的進給量X不斷累加,累加的溢出脈沖即為驅動坐標軸的進給脈沖。當累加次數達到2N時,溢出脈沖的數據量恰好等于進給量X,一次脈沖轉換完成。此時,完成一次脈沖轉換的周期是T=2N/fin,產生的溢出脈沖頻率為fout=fin*X/2N,其中fin為累加控制脈沖頻率。
2.2.2 FPGA實現
精插補器內部結構原理圖如圖3所示。其工作過程如下:精插補的啟動、停止是由單片機來控制的,開始插補時,單片機把本次插補周期的粗插補數據發(fā)送給FPGA后,發(fā)出插補開始信號。插補開始信號一到,插補控制邏輯就把插補數據送入累加寄存器,并啟動累加器進行累加,同時輸出插補方向信號,然后就向單片機申請中斷,發(fā)送下一個插補周期的數據到插補數據緩沖區(qū)中。插補周期未到時,累加器不斷累加進行脈沖輸出,計數器控制每個插補周期脈沖轉化的累加次數,一旦本次插補周期一到,計數器對累加器清零,以免給下一次插補帶來偏差,并重新開始下一個周期的插補。當單片機發(fā)出停止插補信號后,控制邏輯立即封鎖插補脈沖源,停止插補脈沖輸出。為了提高溢出脈沖均勻性,減少溢出脈沖的頻率誤差,本文使累加次數增加Q倍,再對溢出脈沖進行Q倍分頻。
圖3 精插補器內部結構原理圖
2.2.2精插補器最高輸出脈沖頻率分析
設插補周期為0.5ms,若硬件精插補器采用8位累加器,4位分頻器,則每次脈沖轉換的累加次數應為212。累加脈沖的輸入頻率是fin=212/T=8.192MHZ,則最高輸出脈沖頻率可達fout=fin*X/212=510KHZ。當伺服進給的脈沖量為lum時,最大進給速度可達30.6m/min,而且通過提高累加的頻率還可獲得更高的速度。可見本文提出的硬件精插補器完全可滿足高速加工的進給速度控制要求。
3 固件程序設計
固件程序(firmware)除了完成USB設備初始化、USB協議標準請求處理外,主要的任務是實現粗插補數據及機床控制命令和狀態(tài)反饋信息的傳輸。D12共有3個端點,端點0、端點1和端點2。在設計中,端點0通過控制傳輸實現設備的枚舉;端點1通過中斷傳輸方式實現數控系統(tǒng)的控制信號及數據請求信號的傳輸,端點2配置為普通傳輸端點,通過批量傳輸實現數控系統(tǒng)粗插補數據的傳輸工作。數據交換是采用中斷機制來實現。微控制器與USB的數據交換由外部中斷1來處理,微控制器與FPGA的數據交換由外部中斷0來處理?,F主要介紹固件程序實現NC粗插補數據傳輸的方法。
由于NC粗插補數據量較大,不適合于采用中斷傳輸,盡管同步傳輸速度快,速度恒定,但由于其數據傳輸的準確性差也滿足不了要求,因此NC粗插補數據采用批量傳輸。由于批量傳輸方式優(yōu)先級最低,系統(tǒng)響應具有不確定性,傳輸速度也具有一定的不確定性。解決的方法是采用數據緩沖,在系統(tǒng)中配置了一個8k的外部RAM,設置兩個4000字節(jié)的粗插補數據緩沖區(qū)。一個插補周期的數據占4個字節(jié),可緩沖1000段數據,系統(tǒng)插補周期為0.5ms,即一次傳輸加工時間為500ms,若按40k/s的批量傳輸速度計算(實際傳輸的速度遠大于此速度),傳輸4000字節(jié)只需100ms左右,加上NC數據請求等待延時,還有足夠的時間余量。另外,系統(tǒng)中沒有同步傳輸,中斷傳輸的數據量少,也保證了USB總線為批量傳輸提供足夠的帶寬。因此,本文采用雙緩沖區(qū)的方式完全可滿足高速加工的插補數據通訊要求。
具體實現時,粗插補數據通過端點2的批量傳輸來完成的。在一個緩沖區(qū)的數據精插補完后,通過端點1向PC主機發(fā)出數據請求,PC主機即向該緩沖區(qū)傳輸數據,固件程序通過端點2 OUT中斷接收該數據,并存入數據緩沖區(qū)。
4 結束語
高速加工是當代數控加工的發(fā)展趨勢,高速硬件精插補器是實現高速加工進給控制的關鍵技術之一。本文采用可編程邏輯器件FPGA實現高速精插補器,充分發(fā)揮了FPGA速度快、設計靈活、集成度高、性能可靠、開發(fā)成本低等一系列優(yōu)點。采用USB接口實現通訊,完全滿足精插補器的高速數據傳輸要求。
參考文獻
[1] 孫斌、楊汝清,基于PC的數控系統(tǒng)的研究現狀和發(fā)展趨勢,機床與液壓,2001年4期:3~5
[2] 鄭立新,串行總線計算機數控系統(tǒng),制造技術與機床,200年4期:9~10。
[3] 周立功等編著. PDIUSBD12 USB 固件編程與驅動開發(fā) .北京:北京航空航天大學出版社. 2003年
[4] 羅睿梅著. 高速數控系統(tǒng)的運動控制技術. 南京航空航天大學學位論文,2003年
伺服電機相關文章:伺服電機工作原理
分頻器相關文章:分頻器原理
評論