基于Nios II的步進(jìn)電機接口設計
2)脈沖發(fā)生器
脈沖發(fā)生器的功能是產(chǎn)生需要的脈沖序列,經(jīng)過(guò)分析后知道,此部分主要由以下幾個(gè)模塊構成:
①16 bit計數器,脈沖發(fā)生器最終輸出的脈沖其實(shí)是由1/2CLK、1/4CLK、1/8CLK…1/32 768CLK這16種脈沖組合實(shí)現,CLK是由step _control分頻得到基準時(shí)鐘。為了實(shí)現這16種頻率的脈沖,需要16bit的計數器。16bit計數器的產(chǎn)生16種狀態(tài),保持16種基頻的狀態(tài)唯一。
②基頻產(chǎn)生模塊,由公式(3)、(4)可知,這16種脈沖其實(shí)是以16bit計數器的16種不會(huì )重疊的狀態(tài)為條件而產(chǎn)生的。
③脈沖疊加,脈沖疊加模塊,用來(lái)把這16種脈沖疊加起來(lái),得到需要合成的輸出。最終合成的輸出控制可由16個(gè)兩輸入與門(mén)來(lái)實(shí)現,一端接輸出脈沖,另一端接對應的脈沖個(gè)數寄存器。
3)脈沖分相器
由于是四相步進(jìn)電機,并以單拍的方式運行,所以在最后從脈沖分相器輸出的頻率為四相。CP[3:0]就是最終輸出的四相信號。
3 電機控制模塊的仿真與驗證
1)功能仿真
電機控制模塊在Quartus II上的綜合結果如圖3所示,電機控制模塊是由slave、step_control、step_wave及step_cp 4部分組成。

2)SOPC平臺驗證
首先導入的HDL文件是用于描述模塊的硬件邏輯功能。對于電機控制模塊,導入的文件分別是motor.v、step_control.v、step_wav e.v和step_cp.V,其中motor.V是頂層文件,配置SOPC平臺,如圖4所示。

當通過(guò)SW開(kāi)關(guān)設定不同的值時(shí),相應控制電機的4路脈沖信號就可以通過(guò)led顯示出來(lái)。同時(shí),利用Quartus II中的signaltap II的對電機控制模塊仿真如圖5所示。仿真結果是與實(shí)際設計相符的。

4 結論
根據控制功能的要求,文中設計了步進(jìn)電機控制模塊,該模塊采用一種脈沖疊加算法,實(shí)現了對步進(jìn)電機正、反轉控制;實(shí)現了對步進(jìn)電機轉動(dòng)的定位和任意頻率變速。完成了對該模塊向SOPC Builder的標準模塊庫中的封裝。
結合Avalon總線(xiàn)、Nios II內核及其外設的特點(diǎn),使用Quartus II和SOPC Builder存Cvclone II上創(chuàng )建了一個(gè)遠程控制的硬件平臺。
評論