基于FPGA的電機測速系統設計
2.3 鎖存模塊的設計
鎖存模塊具有存儲1 s it數完時(shí),所計數的數據和提供自動(dòng)復位信號的功能。而且,在按下復位信號時(shí),清除計數數據。當閘門(mén)信號en為下降沿時(shí),就將計數模塊所得到的數值存入鎖存模塊。當閘門(mén)信號en為‘0’時(shí),程序就輸出一個(gè)低電平的復位信號,反之則輸出高電平的信號。
2.4 動(dòng)態(tài)顯示模塊的設計
動(dòng)態(tài)顯示譯碼是所有數碼管共用數據通道,由位選端選通,每位依次導通。由于人眼具有視覺(jué)延遲性,所以觀(guān)察到的數碼管為每一位顯示不同的數據,同時(shí)顯示。
設計利用外部時(shí)鐘50 MHz分頻來(lái)實(shí)現延遲,延遲系數為62 499。則clock上升沿個(gè)數為62 499個(gè)時(shí),位選信號加1,下一位導通顯示數據。數碼管的顯示需要將0到9的BCD碼轉換為七段數碼管顯示。與分頻模塊類(lèi)似,由于時(shí)間較長(cháng),設計將延遲系數62 499改為8,則clock每8個(gè)上升沿則數碼管顯示下一位。
動(dòng)態(tài)顯示模塊仿真如圖7所示。本文引用地址:http://dyxdggzs.com/article/189520.htm
N——電脈沖個(gè)數
n——電機轉速(單位為:轉每分鐘)
Z——光電編碼器倍增數(此設計中為360)
t——測量時(shí)間(單位為:秒)
通過(guò)式(1)可以推出電機轉速值n的計算公式如式(2)所示。
f——測量頻率
由式(3),程序在運算模塊中將會(huì )編寫(xiě)的模塊有數據相加模塊、乘60模塊、除360模塊和數據分解模塊。運算模塊流程圖如圖8所示。
數據相加模塊是為了將頻率計所得到的四位數值乘以相應的倍數,再將其相加后得到一個(gè)整體的二進(jìn)制數,以便于進(jìn)行下面的運算。又因為電脈沖的個(gè)數單位為個(gè)每秒,而電機轉速的單位為轉每分鐘,所以存在60 s的轉換值。利用程序將之前得到的數據乘以60。使用的傳感器是歐姆龍編碼器E6B2-CWZ6C360P/R,所以倍增數是360,所以在運算模塊中我們要除去360。在運算得出轉速值后,還需要一個(gè)將這個(gè)二進(jìn)制數值分解的模塊,因為數碼管顯示模塊是將個(gè)十百千位單獨顯示的,所以要先將每一位分解出來(lái),再送入數碼管顯示。
3 結束語(yǔ)
本次設計是基于FPGA的電機測速系統設計,利用的是Altera公司開(kāi)發(fā)的Quartus II軟件作為設計平臺,可以在FPGA開(kāi)發(fā)板上實(shí)現測量由傳感器轉換得到的脈沖信號,并且通過(guò)計算得到電機轉速值。
在本次設計中,還可以進(jìn)行一些擴展,可以添加報警電路,設定一個(gè)報警值,當測量的轉速值大于這個(gè)報警值時(shí),就可以讓蜂鳴器報警或數碼管點(diǎn)亮。
評論