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