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