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

可知只有在片選信號、讀信號都拉低而寫信號仍為高的情況下,才在data線上輸出地址線上對應(yīng)單元的數(shù)值,其他情況下FPGA都將data線置為高阻態(tài),放棄對data線的控制。
4 基于FPGA的DDA精插補(bǔ)器設(shè)計(jì)
隨著FPGA器件及其開發(fā)技術(shù)的日臻成熟,采用FPGA實(shí)現(xiàn)運(yùn)動(dòng)控制的方案顯示出巨大的潛力。由于FPGA的設(shè)計(jì)是并行的、多線程,而且具有在線可編程能力,兼?zhèn)淞怂俣瓤旌统杀镜偷膬?yōu)點(diǎn),同時(shí)克服了專用處理器靈活性方面的不足?;贔PGA的DDA精插補(bǔ)器相對傳統(tǒng)的軟件插補(bǔ)具有強(qiáng)大的優(yōu)勢。
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)算代替積分所引起的誤差可以不超過允許的數(shù)值。采用兩個(gè)寄存器(函數(shù)寄存器和累加寄存器)和一個(gè)全加器構(gòu)成數(shù)字積分器,將單位周期選得足夠小,每單位周期都向累加器累加函數(shù)寄存器中的數(shù)值,如果累加器溢出,就向外發(fā)送脈沖,實(shí)時(shí)地改變函數(shù)寄存器的值,就可以完成步進(jìn)電機(jī)的調(diào)速。DDA插補(bǔ)控制器設(shè)計(jì)的硬件描述語言程序的流程圖如圖3所示。本文引用地址:http://www.bjwjmy.cn/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開發(fā)環(huán)境為Xilinx公司的Xil inx ISE,并結(jié)合ModelSim仿真軟件對整個(gè)系統(tǒng)進(jìn)行了全面的功能驗(yàn)證。如圖4所示為DDA插補(bǔ)模塊的頂層RTL級原理圖,由圖5可知DDA插補(bǔ)模塊的輸入信號為各軸的起始坐標(biāo)以及時(shí)鐘信號和啟動(dòng)信號,輸出信號為各軸的脈沖信號和方向信號。
運(yùn)用ModelSim仿真軟件對DDA插補(bǔ)模塊進(jìn)行仿真驗(yàn)證。測試數(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語言相關(guān)文章:c語言教程
評論