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