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