1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      基于CPLD的時間控制器設計

      更新時間: 2007-11-01 09:06:19來源: 粵嵌教育瀏覽量:1284

      0 引言

        傳統時間控制器功能簡單,硬件線路多,設計復雜,可靠性差。隨著CPLD(復雜可編程邏輯器件)的飛速發展,它以其編程方便、集成度高,速度快、價格低等特點越來越受到廣大電子設計人員的青睞。

        本文介紹一種以CPLD[1]為核心、以VHDL[2]為開發工具的時間控制器,該控制器不僅具有時間功能,而且具有定時器功能,能在00:00~23:59之間任意設定開啟時間和關閉時間,其設置方便、靈活,廣泛應用于路燈、廣告燈箱、霓虹燈等處的定時控制。

      1 系統設計方案

      l.l 系統總體結構

        時間控制器主要由CLOCK(數字時鐘)、TIMESET(定時器開啟時間和關閉時間設置)、COMPARE(比較輸出)、FUNC-CTRL(功能控制模塊)和顯示輸出控制模塊等組成。

        系統方框圖如圖l所示。

        FUNC-CTRL模塊控制系統處于不同的功能狀態,并產生不同的控制信號分別控制TIME-SET模塊和CLOCK模塊,而這3個模塊的輸出連接到COMPARE模塊,當系統時間處在開啟時間和關閉時間段時,則定時器輸出端done輸出控制信號,DISP_CTRL(輸出選擇模塊)根據功能模塊的控制信號選擇不同功能狀態的時間輸出,通過SELTIME(動態掃描模塊)和DELED(七段譯碼模塊)驅動七段數碼管顯示相應的時間。

      1.2 系統功能要求

        a)具有數字時鐘功能,用4個數碼管分別顯示小時、分鐘,并且具有時間校對功能。

        b)能方便地設定定時器的開啟時間和關閉時間,通過比較器輸出時間控制信號。

        c)具有4種功能狀態:系統時間校對狀態、開啟時間設定狀態、關閉時間設定狀態、時鐘正常顯示狀態,通過功能轉換鍵(fun)可以使系統在這4種狀態之間循環變化,并且可以通過指示燈LED顯示當前系統功能狀態,數碼管顯示相應功能狀態的時間,如當前在開啟時間設定狀態下,開啟時間設置指示燈ledon會亮,數碼管同時顯示當前設置的時間。

        d)開啟時間設定、關閉時間設定和時間校對采用共同的時調節鍵set_hour和分調節鍵set_min;每按一下set_hour鍵,小時就會自動加1,采用24進制計數,當計數到23時又會恢復為00;每按一下set_min鍵,分鐘會自動加1;采用60進制計數,當計數到59時,又會恢復為00。

      2 子模塊功能設計及仿真

      2.1 CLOCK模塊

        CLOCK模塊內部整體框圖如圖2所示。

        其中:SECOND為60進制秒計數器,MINUTE為60進制分鐘計數器,HOUR為24進制小時計數器;clk為標準的1Hz時鐘信號作為秒計數輸入,秒計數器的進位輸出作為分鐘MINUTE的計數時鐘,而MINUTE進位輸出作為小時HOUR模塊的時鐘輸入;輸入端set_rain、set_hour和en_time分別為校分、校時和時間設置控制信號。模塊HOUR_MIN把小時和分鐘輸出合成時間輸出信號time[13..0](小時采用24進制,只需6位二進制表示,分鐘用8位二進制表示)。

      2.2 TIME_SET模塊

        開啟時問模塊主要設置定時器殲啟時間,可以設定具體幾時幾分,而關閉時間則設定定時器關閉時間,起始時間設定模塊與結束時間設定模塊功能相同,采用同一個TIME_SET模塊。該模塊由一個24進制小時計數器和一個60進制分鐘計數器組成,當控制端EN為高電平時,通過調節鍵set_hour和set_min分別設置小時和分鐘信號,從而設置開啟時問和關閉時間,并產生時間信號data[13..0]。仿真結果如圖3所示。

      2.3 COMPARE模塊

        COMPARE模塊實現系統當前時間與設定的開啟時間和關閉時間的比較,從而輸出定時控制輸出信號。由于系統時間的小時和分鐘分別采用24進制和60進制方式,分3種情況討論:

        a)當系統設定的開啟時間小于關閉時間時,只要當前系統時間大于等于開啟時間而小于關閉時間,則輸出端co的輸出信號為高電平,否則為低電平。

        b)當系統設定的開啟時間大于關閉時間時,則當系統時間大于等于關閉時間而小于開啟時間時,輸出端co為低電平,否則為高電平。

        c)如果開啟時間等于關閉時間,則輸出端co為低電平,仿真結果如圖4。

        該模塊部分VHDL源程序如下:

      2.4 FUNC_CTRL模塊

        利用功能轉換鍵(fun)使系統處在不同的功能狀態:系統時間校對狀態、開啟時間設定狀態、關閉時間設定狀態、正常顯示狀態。利用功能轉換鍵實現4個功能狀態之間循環變化,并產生相應的控制信號(en_time、en_on、en_off)去控制CLOCK模塊、TIME_SET、模塊和DISP_CTRL模塊等。在調整過程中,只有被選擇到的功能狀態指示燈被點亮,其他燈不亮,在正常模式狀態下,狀態燈都不亮。

        其部分源程序如下:

      2.5 顯示控制模塊

      1)DISP_CTRL模塊

        該模塊根據功能控制模塊輸出的控制信號en_on、en_off的值來選擇輸出信號,當en_on=l時,輸出值為定時器的開啟時問信號,當en_off=1時,輸出值為定時器的關閉時間信號,en_time=1時,輸出值為系統時間校對信號,其他情況則輸出系統時間。

      2)SELTIME模塊及DELED模塊

        時間顯示的4個數碼管采用動態掃描[3]輸出,一般只要每個掃描頻率超過人的眼睛視覺暫留頻率24 Hz以上就可以達到點亮單個顯示而不閃爍,掃描頻率采用1 kHz信號。動態掃描輸出信號通過BCD-七段顯示譯碼器[4](DELED)連接到數碼管顯示具體數字。

        動態掃描的部分程序如下(其中clk1為掃描時鐘輸入信號,sel為數碼管片選信號):

      2.6 1 Hz標準時鐘產生模塊

        系統時鐘輸入信號CLK1K為1 kHz信號,它可作為動態掃描時鐘信號,如果把1 kHz信號經過3個10分頻器FEN10便可得到標準的1 Hz時鐘信號,作為系統時間模塊的標準秒輸入信號。

      3 系統部分功能仿真

        各部分模塊完成后生成圖形符號,在MAX+PLUSⅡ中采用圖形法把各部分連接起來,如圖1所示,對系統部分模塊進行功能仿真,圖5為系統時間設置仿真圖。

        在fun功能轉換鍵上升沿來之后,系統時間調整指示燈ledtime變為高平,系統當前處在數字時鐘校正狀態,set_min是分鐘設置端,sel[1..O]是片選信號,led[6..0]為數碼管的輸入信號,從圖中可知符合功能要求。由于篇幅限制,略去其余模塊的仿真圖。

        本系統采用的CPLD芯片為Altera公司的EPF10KLC84-3芯片,用VHDL和MAX+PLUSⅡ10.0軟件工具開發。設計輸入完成后,進行整體的編譯和邏輯仿真,然后進行轉換、延時仿真生成配置文件,下載至CPLD器件,完成結構功能配置,實現其硬件功能。

      4 結束語

        該系統運用先進的EDA軟件和VHDL,采用模塊法白頂向下的設計原則,并借助于CPLD實現時間控制器的設計,充分體現了現代數字電路設計系統芯片化,芯片設計化設計的思想突破了傳統電子系統的設計模式,使系統開發速度快、成本低、系統性能大幅度提高。








      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 午夜亚洲人人精品一区 | 三级中文字幕在线有码 | 在线看片日本高清 | 亚洲AV元码天堂一区二区三区 | 一区二区在线免费看 | 亚洲日本无精品视频在线免费观看 |