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