FPGA(8)--频率计检测控制系统
文章目錄
- 一、設(shè)計(jì)要求
- 1.整體控制系統(tǒng)設(shè)計(jì)要求
- 2.頻率計(jì)檢測(cè)設(shè)計(jì)要求
- 二、設(shè)計(jì)思路
- 1.確定VHDL描述與原理圖相結(jié)合完成設(shè)計(jì)
- 2.確定狀態(tài)情況
- 3.數(shù)碼管顯示功能
- 三、設(shè)計(jì)內(nèi)容
- 1. 頻率檢測(cè)部分VHDL描述
- 2. 七段數(shù)碼管顯示部分VHDL描述
- 3. 系統(tǒng)主控制部分VHDL描述
- 4.將三個(gè)部分的VHDL描述分別都封裝成元件
- 5.連接三個(gè)部分封裝成的元件
- 四、結(jié)果分析與驗(yàn)證
- 1.狀態(tài)機(jī)驗(yàn)證
- 2.頻率檢測(cè)仿真波形圖驗(yàn)證
- 3.主控仿真波形圖驗(yàn)證
- 4. 引腳配置
- 五、思考與總結(jié)
一、設(shè)計(jì)要求
1.整體控制系統(tǒng)設(shè)計(jì)要求
①頻率計(jì)被輸送到檢測(cè)傳動(dòng)帶入口,光電傳感器(Sensor_1)檢測(cè)到頻率計(jì)后啟動(dòng)傳送帶。光電傳感器采集的是光的反射信號(hào),當(dāng)檢測(cè)到有被測(cè)物體時(shí)輸出1,否則輸出0;
②傳送帶將頻率計(jì)傳送到檢測(cè)口,并觸發(fā)位置開關(guān)(Sensor_2),此時(shí),傳動(dòng)帶停止,并啟動(dòng)頻率測(cè)量?jī)x的移動(dòng)電機(jī)。注:位置開關(guān)初始狀態(tài)為0,被觸發(fā)后變?yōu)?;
③移動(dòng)電機(jī)將頻率測(cè)量?jī)x接入到頻率計(jì)信號(hào)輸入端口,信號(hào)接通后給控制器反饋一個(gè)信號(hào)1,否則0;
④接通延遲3s后,頻率測(cè)量?jī)x給頻率計(jì)輸入一個(gè)1024Hz的標(biāo)準(zhǔn)頻率,當(dāng)頻率計(jì)檢測(cè)到的脈沖信號(hào)在1014~1034Hz時(shí),表示該頻率計(jì)是合格的,否則不合格。檢測(cè)合格輸出字符“A”,不合格輸出“F”。
⑤檢測(cè)完成后,移動(dòng)電機(jī)反轉(zhuǎn)回到初始位置,并觸發(fā)位置開關(guān)(Sensor_3)后停止;
⑥再次啟動(dòng)傳送帶,將檢測(cè)合格的頻率計(jì)移動(dòng)到包裝工位,并統(tǒng)計(jì)和顯示合格產(chǎn)品的數(shù)量;2s后傳送帶停,回到初始狀態(tài)。
2.頻率計(jì)檢測(cè)設(shè)計(jì)要求
頻率計(jì)是用來測(cè)量給定信號(hào)頻率的儀器。其基本原理是在給定的標(biāo)準(zhǔn)時(shí)間內(nèi)(通常是1s),通過計(jì)數(shù)器檢測(cè)輸入信號(hào)的脈沖個(gè)數(shù)。如圖2所示,Clkin是待測(cè)信號(hào),Clk是頻率計(jì)工作時(shí)鐘,Conl是頻率計(jì)產(chǎn)生的測(cè)控信號(hào),測(cè)控信號(hào)通常設(shè)置為2s的周期,占空比為50%。測(cè)量的原理:統(tǒng)計(jì)在Conl為高電平時(shí)Clkin有多少個(gè)周期的脈沖信號(hào)。
二、設(shè)計(jì)思路
1.確定VHDL描述與原理圖相結(jié)合完成設(shè)計(jì)
根據(jù)該檢測(cè)控制系統(tǒng)的設(shè)計(jì)要求可知,該系統(tǒng)可以由三個(gè)子部分組成,即頻率檢測(cè)部分、系統(tǒng)主控制部分和七段數(shù)碼管顯示部分。因此,可以分別將三個(gè)部分用VHDL描述,進(jìn)而將三個(gè)部分分別封裝成元件,以供最后原理圖調(diào)用連接完成設(shè)計(jì)。
2.確定狀態(tài)情況
根據(jù)整體控制系統(tǒng)設(shè)計(jì)要求可知,該系統(tǒng)的狀態(tài)可以分為五個(gè),即如下圖所示的狀態(tài)機(jī)圖。
S0:初始狀態(tài)(Sensor_1檢測(cè)到產(chǎn)品進(jìn)入而進(jìn)入下一狀態(tài))
S1:產(chǎn)品進(jìn)入傳送帶傳輸(Sensor_2檢測(cè)到產(chǎn)品到達(dá)而進(jìn)入下一狀態(tài))
S2:移動(dòng)電機(jī)向下移動(dòng),頻率測(cè)量?jī)x接入產(chǎn)品(延遲3s進(jìn)入下一狀態(tài))
S3:進(jìn)行檢測(cè),移動(dòng)電機(jī)向上移動(dòng)(Sensor_3檢測(cè)到電機(jī)到達(dá)而進(jìn)入下一狀態(tài))
S4:再次啟動(dòng)傳送帶,更新數(shù)據(jù)(2s后回到初始狀態(tài))
3.數(shù)碼管顯示功能
考慮到該系統(tǒng)需要用七段數(shù)碼管顯示產(chǎn)品是否合格以及合格產(chǎn)品的數(shù)量,因此需要相應(yīng)的數(shù)碼管顯示功能,而此前的實(shí)驗(yàn)中有實(shí)現(xiàn)此功能的模塊,可以將其封裝成這里可以調(diào)用的元件。
三、設(shè)計(jì)內(nèi)容
1. 頻率檢測(cè)部分VHDL描述
1.1導(dǎo)入相關(guān)的包
1.2定義相關(guān)輸入輸出
①rst為頻率檢測(cè)功能的使能信號(hào),其值由主控制部分傳遞過來
②conl為頻率計(jì)產(chǎn)生的測(cè)控信號(hào),一般設(shè)置為0.5Hz
③clkin為待測(cè)信號(hào)
④count為在conl為高電平時(shí)clkin的脈沖信號(hào)數(shù)量
⑤quality為檢測(cè)結(jié)果,其值輸出返回給主控制部分
1.3檢測(cè)脈沖數(shù)量進(jìn)程
①在conl為高電平時(shí)候,只要clkin到達(dá)一個(gè)上升沿時(shí)就計(jì)數(shù)一次
1.4檢測(cè)結(jié)果返回進(jìn)程
①只要在一個(gè)conl為高電平時(shí)clkin的脈沖信號(hào)數(shù)量為1014-1034就返回1。
2. 七段數(shù)碼管顯示部分VHDL描述
2.1導(dǎo)入相關(guān)的包(同上)
2.2將四位二進(jìn)制數(shù)轉(zhuǎn)換為七段數(shù)碼管顯示信號(hào)
①d由最高位到最低位分別對(duì)應(yīng)一個(gè)七段數(shù)碼管的a到g
②這里只設(shè)計(jì)了0-9的顯示,超過9的情況只需要稍作改進(jìn)即可
3. 系統(tǒng)主控制部分VHDL描述
3.1導(dǎo)入相關(guān)的包(同上)
3.2定義相關(guān)輸入輸出
①rst_c為清零復(fù)位信號(hào),clk為工作信號(hào)
②count_in為頻率檢測(cè)部分傳來的檢測(cè)結(jié)果
③Sensor_1、Sensor_2、Sensor_3_down、Sensor_3_rise為模擬傳感器信號(hào)
④count_out為統(tǒng)計(jì)的合格產(chǎn)品數(shù)量
⑤quality_out為表示產(chǎn)品是否合格
⑥testing為傳遞給頻率檢測(cè)部分的使能信號(hào)
⑦show_trf為傳送帶狀態(tài),show_down為電機(jī)是否下降,show_up為是否上升
3.3定義狀態(tài)機(jī)情況以及中間信號(hào)
①該控制系統(tǒng)存在5個(gè)狀態(tài)
②delay_3、delay_2分別為下面需要用的實(shí)現(xiàn)延遲功能的中間信號(hào)
③adder為統(tǒng)計(jì)合格產(chǎn)品數(shù)量的中間信號(hào)
3.4狀態(tài)機(jī)情況
①初始為S0狀態(tài),當(dāng)Sensor_1檢測(cè)到產(chǎn)品進(jìn)入傳送帶時(shí)候進(jìn)入下一狀態(tài)S0
②S1狀態(tài)傳送帶動(dòng)(show_trf輸出高電平),當(dāng)Sensor_2檢測(cè)到產(chǎn)品到達(dá)時(shí)進(jìn)入下一狀態(tài)S2
③S2狀態(tài)電機(jī)下移(),當(dāng)Sensor_3_down檢測(cè)到電機(jī)到達(dá)時(shí)延遲三秒后進(jìn)入下一狀態(tài)S3
④S3狀態(tài)主控制部分給頻率檢測(cè)部分使能信號(hào)(testing輸出高電平),并且電機(jī)上移(show_up輸出高電平),當(dāng)Sensor_3_rise檢測(cè)到電機(jī)到達(dá)時(shí)進(jìn)入下一狀態(tài)S4
⑤S4狀態(tài)傳送帶動(dòng)(show_trf輸出高電平)延遲兩秒后回到初始狀態(tài)
3.5統(tǒng)計(jì)合格產(chǎn)品與顯示檢測(cè)產(chǎn)品情況
①如果頻率檢測(cè)部分返回高電平則合格產(chǎn)品數(shù)量加一并且顯示“A”,否則顯示“F”
4.將三個(gè)部分的VHDL描述分別都封裝成元件
5.連接三個(gè)部分封裝成的元件
①quality與count_in連接
四、結(jié)果分析與驗(yàn)證
1.狀態(tài)機(jī)驗(yàn)證
由上面調(diào)出的狀態(tài)機(jī)圖與前面設(shè)計(jì)的狀態(tài)機(jī)相同,并且轉(zhuǎn)換情況符合。
2.頻率檢測(cè)仿真波形圖驗(yàn)證
3.主控仿真波形圖驗(yàn)證
3.1固定輸入設(shè)計(jì)
①clk是頻率為1Hz的方波信號(hào)
②clkin是頻率為1024Hz的方波信號(hào)
③conl是頻率為0.5Hz的方波信號(hào)
3.2檢測(cè)一次的情況
如圖對(duì)仿真波形圖做了相關(guān)說明,從中可以驗(yàn)證得該系統(tǒng)的相關(guān)設(shè)計(jì)要求已經(jīng)基本實(shí)現(xiàn)。
3.3在上一次的基礎(chǔ)上再檢測(cè)一次的情況
3.4清零復(fù)位
4. 引腳配置
基于實(shí)驗(yàn)板的硬件條件,合理規(guī)劃硬件顯示情況,對(duì)頻率檢測(cè)程序/主程序進(jìn)行硬件驗(yàn)證。如下圖為相關(guān)引腳配置。
①clk、clkin、conl分別加以1Hz、1024Hz、0.5Hz
②count和quality通過七段式數(shù)碼管輸出
③rst_c、Sensor_1、Sensor_2、Sensor_3_down、Sensor_3_rise分別接入推拉式開關(guān)
④trf、down、up分別接以發(fā)光二極管指示燈輸出
五、思考與總結(jié)
1.用原理圖設(shè)計(jì)較VHDL更為直觀明了,可以通過電路圖清楚其邏輯關(guān)系和實(shí)現(xiàn)的功能關(guān)系。而用VHDL語言設(shè)計(jì)則較為簡(jiǎn)便,只需清楚各個(gè)接口之間的關(guān)系和調(diào)用的原則。因此選用VHDL描述結(jié)合原理圖的方式來設(shè)計(jì)實(shí)現(xiàn)較為合理。
2. VHDL描述的模塊化,將實(shí)現(xiàn)不同功能的VHDL描述分開在不同的進(jìn)程里面,實(shí)現(xiàn)VHDL的“高內(nèi)聚低耦合”。
3. 狀態(tài)機(jī)由狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作、完成特定操作的控制中心。交通信號(hào)燈可以用狀態(tài)機(jī)的原理來實(shí)現(xiàn),因?yàn)樾盘?hào)燈的變化狀態(tài)是有限的,各個(gè)狀態(tài)可以列舉出來,狀態(tài)間切換由計(jì)數(shù)器決定。
------------------------------------------------------------------
特別說明:以上均為個(gè)人原創(chuàng),需要原代碼的朋友可以聯(lián)系我。
總結(jié)
以上是生活随笔為你收集整理的FPGA(8)--频率计检测控制系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京喜app如何返利
- 下一篇: 原神再次解冻所有碎片