引言
現有的數控系統中多采用工控機加運動控制卡的計算機數控系統方案進行運動控制器的設計。隨著工控機整體功能日趨復雜,對運動控制系統的體積、成本、功耗等方面的要求越來越苛刻?,F有計算機數控系統在運動控制方面逐漸呈現出資源浪費嚴重、實時性差的劣勢。此外,數控系統的開放性、模塊化和可重構設計是目前數控技術領域研究的熱點,目的是為了適應技術發展和便于用戶開發自己的功能。本文基于ARM和FPGA的硬件平臺,采用策略和機制相分離的設計思想,設計了一種具有高開放性特征的嵌入式數控系統。該數控系統不僅具備了以往大型數控系統的主要功能,還具備了更好的操作性和切割性能,而且在開放性方面優勢更為突出,使數控系統應用軟件具有可移植性和互換性。
1 基于ARM和FPGA的嵌入式數控系統整體方案
基于ARM和FPGA的嵌入式數控系統結構如圖1所示。按照模塊劃分的思想,本文將控制器分為人機交互、插補算法和通信三部分。系統中ARM采用三星公司推出的16/32位RISC微處理器S3C2440A,它采用了ARM920T內核,核心頻率高達400MHz。FPGA采用Xilinx公司Spartan 3E系列的XC3S250E。
2 S3C2440A控制系統
ARM作為數控系統的控制核心主要負責對從數據存儲器中讀取或直接從上位PC或網絡獲得的零件加工代碼和控制信息進行譯碼、運算、邏輯處理,完成加工數據的粗插補以及人機界面和數據通信。ARM系統是整個數控系統的控制核心,在嵌入式操作系統的管理下,采用分時處理的方式實現整個系統的信息處理和粗插補運算,通過鍵盤、觸摸屏等輸入裝置輸入各種控制指令,對數控系統的實時運行狀態通過LCD、指示燈等顯示,實現人機友好交互?;赟3C2440A控制器有各種通信接口,包括RS232、RS485、以太網口、USB等接口模塊。通過這些接口實現文件傳輸和網絡控制。
嵌入式數控的軟件系統總體結構如圖2所示。系統的軟件結構主要分為兩部分:操作系統軟件和數控應用軟件。由于數控系統是個實時多任務系統,實時性要求很高,為保證各個任務的協調執行,本系統采用了μC/OS-II實時操作系統作為軟件平臺。
要實現該操作系統在S3C2440A微處理器平臺上的正常運行,需要修改與處理器類型有關部分的代碼,操作系統移植需要完成的工作是改寫三個文件,即改寫文件0S_CPU.H、0S_CPU_A.ASM和OS_CPU_C.C。其中0S_CPU.H包括了用#define語句定義的,與處理器相關的變數、宏和類型。0S_CPU_A.ASM中定義了幾個匯編語言函數,包括中斷服務程序的中斷向量地址等。如果某些C編譯器允許在C語言中直接插入匯編語言語句,就不一定需要,用戶可以把所需的匯編語言代碼直接放到OS_CPU_C.C文件中。
3 ARM和FPGA的接口設計
為使系統能夠按照預期設計良好工作,首先要從硬件上實現ARM和FPGA之間的可靠通信。本文采用的方案是在FPGA上實現SRAM時序,將FPGA作為一塊特殊的內存設備掛接到ARM的內存地址空間。這樣在ARM端只需要編寫SRAM的驅動程序就可以實現對FPGA端的數據寫入和讀取。
3.1 SRAM時序
SRAM時序分為讀時序和寫時序兩種。當CPU對SRAM進行讀操作時,首先會在地址線上寫入正確的地址信號,接著是對SRAM芯片的片選信號,然后是對芯片的讀信號,之后經過一定的振蕩期后CPU在數據線上讀到穩定的有效數據。
當CPU對SRAM進行寫操作時,首先會在地址線上寫入正確的地址線號,接著是對SRAM芯片的片選信號,然后是對芯片的寫信號,在寫信號上升沿之前CPU會在數據線上準備好有效數據,以供SRAM芯片在寫信號上升沿將數據寫入相應的地址單元。
3.2 FPGA端SRAM實現
ARM和FPGA的通信需要的接口信號有地址線A0-A15、數據線D0-D15、片選信號nCS,讀信號nRD和寫信號new,每次需要實現16位數據的讀寫。用Verilog硬件語言描述SRAM時序如下:
可知只有在片選信號、讀信號都拉低而寫信號仍為高的情況下,才在data線上輸出地址線上對應單元的數值,其他情況下FPGA都將data線置為高阻態,放棄對data線的控制。
4 基于FPGA的DDA精插補器設計
隨著FPGA器件及其開發技術的日臻成熟,采用FPGA實現運動控制的方案顯示出巨大的潛力。由于FPGA的設計是并行的、多線程,而且具有在線可編程能力,兼備了速度快和成本低的優點,同時克服了專用處理器靈活性方面的不足。基于FPGA的DDA精插補器相對傳統的軟件插補具有強大的優勢。
4.1 數字積分插補算法
目前比較成熟的數控插補算法有逐點比較法、最小偏差法和數字積分法等,數字積分法又稱數字微分分析器(Digital Differential Analyzer,DDA)。采用該方法進行插補,具有運算速度快、邏輯功能強、脈沖分配均勻等特點,可實現一次、二次甚至高次曲線插補,易于實現多軸聯動。
數字積分插補算法是將函數的積分運算轉換成變量的求和運算。如果所選擇的脈沖當量足夠小,則用求和運算代替積分所引起的誤差可以不超過允許的數值。采用兩個寄存器(函數寄存器和累加寄存器)和一個全加器構成數字積分器,將單位周期選得足夠小,每單位周期都向累加器累加函數寄存器中的數值,如果累加器溢出,就向外發送脈沖,實時地改變函數寄存器的值,就可以完成步進電機的調速。DDA插補控制器設計的硬件描述語言程序的流程圖如圖3所示。
4.2 數字積分插補的FPGA實現
采用有限狀態機的設計方法,每個軸的數字積分插補均由一個三狀態機的積分累加器完成。本系統的FPGA開發環境為Xilinx公司的Xil inx ISE,并結合ModelSim仿真軟件對整個系統進行了全面的功能驗證。如圖4所示為DDA插補模塊的頂層RTL級原理圖,由圖5可知DDA插補模塊的輸入信號為各軸的起始坐標以及時鐘信號和啟動信號,輸出信號為各軸的脈沖信號和方向信號。
運用ModelSim仿真軟件對DDA插補模塊進行仿真驗證。測試數據的起點坐標為(0,0,0)終點坐標為(8,15,11),仿真結果如圖5所示,顯示系統很好的完成了三軸的脈沖分配。
4.3 加減速控制模塊
加減速控制是數控系統的關鍵技術之一,也是實現數控系統高實時性的瓶頸。數控系統中,為了保證機床在啟動或停止時不產生沖擊、失步、超程或振蕩,必須對進給電機的脈沖頻率或電壓進行加減速控制。即當機床加速啟動時,保證加在電機上的脈沖頻率逐漸增加;而當機床減速停止時,保證加在電機上的脈沖頻率逐漸減小。目前,電機加減速的常用控制方法是梯形加減速控制和S形加減速控制。本次設計采用兩種控制方案以適應不同工作場合的要求。
4.3.1 梯形加減速
梯形加減速是指在加減速過程中加速度為常數,速度曲線為梯形的加減速過程。梯形加減速控制算法簡單、易于實現,但在加減速過程中加速度曲線不連續會導致驅動機構的振動和沖擊。正常情況下梯形加減速運動過程如圖6所示分為加速段、勻速段和減速段三個階段。
圖7所示為ModelSim對梯形加減速模塊的仿真結果,可以看到插補器輸出的脈沖速度曲線呈現梯形,輸出脈沖的頻率的大小隨速度的變化而變化,實現了電機的梯形調速。
4.3.2 S形加減速
S形加減速是指在加減速時,加速度導數為常數,速度曲線為S形曲線的加減速過程。通過控制加速度導數來避免加速度突變,減小加工過程中由于加速度突變引起的機械系統振動。S形曲線速度控制可以得到平滑的速度曲線,但算法復雜,運算時間長。
S形加減速中加速度相對加速度導數的變化規律相當于直線加減速中速度相對加速度的變化規律。如圖8所示為S形曲線加減速的曲線圖,圖中從上到下依次為速度曲線、加速度曲線以及減速度曲線。從圖中可以看出,正常情況下S形加減速分為:加加速段、勻加速段、減加速段、勻速段、加減速段、勻減速段和減減速段七個階段。加速度連續,調速光滑,不會導致驅動機構的振動和沖擊。
圖9所示為ModelSim對S形加減速模塊的仿真結果,可以看到插補器輸出的脈沖速度曲線呈現梯形,輸出脈沖的頻率的大小隨速度的變化而變化,實現了電機的S形調速。
5 結束語
本文給出了一種基于ARM和FPGA的開放性的嵌入式數控系統,突破了傳統的計算機數控系統架構,采用ARM處理器S3C2440A和FPGA器件XC3S25 0E和μC/OS-II嵌入式實時操作系統組成的數控系統軟硬件平臺,充分利用了ARM微處理器的高速運算能力與FPGA的快速配置能力,大大減少了系統的外圍接口器件,并具有良好的穩定性、模塊化、可擴展性、可移植性等特點,有利于實現數控系統的開放化和網絡化,有效地降低了系統成本,適合我國數控系統發展的需要,具有廣闊的應用前景。
-
FPGA
+關注
關注
1626文章
21669瀏覽量
601872 -
ARM
+關注
關注
134文章
9052瀏覽量
366827 -
嵌入式
+關注
關注
5068文章
19020瀏覽量
303317
發布評論請先 登錄
相關推薦
評論