基于A(yíng)RMS和FPGA的嵌入式數控系統設計
3.2 FPGA端SRAM實(shí)現
ARM和FPGA的通信需要的接口信號有地址線(xiàn)A0-A15、數據線(xiàn)D0-D15、片選信號nCS,讀信號nRD和寫(xiě)信號new,每次需要實(shí)現16位數據的讀寫(xiě)。用Verilog硬件語(yǔ)言描述SRAM時(shí)序如下:

可知只有在片選信號、讀信號都拉低而寫(xiě)信號仍為高的情況下,才在data線(xiàn)上輸出地址線(xiàn)上對應單元的數值,其他情況下FPGA都將data線(xiàn)置為高阻態(tài),放棄對data線(xiàn)的控制。
4 基于FPGA的DDA精插補器設計
隨著(zhù)FPGA器件及其開(kāi)發(fā)技術(shù)的日臻成熟,采用FPGA實(shí)現運動(dòng)控制的方案顯示出巨大的潛力。由于FPGA的設計是并行的、多線(xiàn)程,而且具有在線(xiàn)可編程能力,兼備了速度快和成本低的優(yōu)點(diǎn),同時(shí)克服了專(zhuān)用處理器靈活性方面的不足?;贔PGA的DDA精插補器相對傳統的軟件插補具有強大的優(yōu)勢。
4.1 數字積分插補算法
目前比較成熟的數控插補算法有逐點(diǎn)比較法、最小偏差法和數字積分法等,數字積分法又稱(chēng)數字微分分析器(Digital Differential Analyzer,DDA)。采用該方法進(jìn)行插補,具有運算速度快、邏輯功能強、脈沖分配均勻等特點(diǎn),可實(shí)現一次、二次甚至高次曲線(xiàn)插補,易于實(shí)現多軸聯(lián)動(dòng)。
數字積分插補算法是將函數的積分運算轉換成變量的求和運算。如果所選擇的脈沖當量足夠小,則用求和運算代替積分所引起的誤差可以不超過(guò)允許的數值。采用兩個(gè)寄存器(函數寄存器和累加寄存器)和一個(gè)全加器構成數字積分器,將單位周期選得足夠小,每單位周期都向累加器累加函數寄存器中的數值,如果累加器溢出,就向外發(fā)送脈沖,實(shí)時(shí)地改變函數寄存器的值,就可以完成步進(jìn)電機的調速。DDA插補控制器設計的硬件描述語(yǔ)言程序的流程圖如圖3所示。本文引用地址:http://dyxdggzs.com/article/148022.htm
4.2 數字積分插補的FPGA實(shí)現
采用有限狀態(tài)機的設計方法,每個(gè)軸的數字積分插補均由一個(gè)三狀態(tài)機的積分累加器完成。本系統的FPGA開(kāi)發(fā)環(huán)境為Xilinx公司的Xil inx ISE,并結合ModelSim仿真軟件對整個(gè)系統進(jìn)行了全面的功能驗證。如圖4所示為DDA插補模塊的頂層RTL級原理圖,由圖5可知DDA插補模塊的輸入信號為各軸的起始坐標以及時(shí)鐘信號和啟動(dòng)信號,輸出信號為各軸的脈沖信號和方向信號。
運用ModelSim仿真軟件對DDA插補模塊進(jìn)行仿真驗證。測試數據的起點(diǎn)坐標為(0,0,0)終點(diǎn)坐標為(8,15,11),仿真結果如圖5所示,顯示系統很好的完成了三軸的脈沖分配。
fpga相關(guān)文章:fpga是什么
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論