<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)系統(tǒng)和CPLD的數(shù)字頻率計(jì)的設(shè)計(jì)

          基于單片機(jī)系統(tǒng)和CPLD的數(shù)字頻率計(jì)的設(shè)計(jì)

          作者: 時間:2011-12-23 來源:網(wǎng)絡(luò) 收藏

            引言

            在傳統(tǒng)的控制系統(tǒng)中,通常將單片機(jī)作為控制核心并輔以相應(yīng)的元器件構(gòu)成一個整體。但這種方法硬件連線復(fù)雜、可靠性差,且在實(shí)際應(yīng)用中往往需要外加擴(kuò)展芯片,這無疑會增大控制系統(tǒng)的體積,還會增加引入干擾的可能性。對一些體積小的控制系統(tǒng),要求以盡可能小的器件體積實(shí)現(xiàn)盡可能復(fù)雜的控制功能,直接應(yīng)用單片機(jī)及其擴(kuò)展芯片就難以達(dá)到所期望的效果。

            復(fù)雜可編程邏輯器件(CPLD)具有集成度高、運(yùn)算速度快、開發(fā)周期短等特點(diǎn),它的出現(xiàn),改變了數(shù)字電路的設(shè)計(jì)方法、增強(qiáng)了設(shè)計(jì)的靈活性?;诖耍疚奶岢隽艘环N采用Altera公司的CPLD(ATF1508AS) 和Atmel公司的單片機(jī)(AT89S52)相結(jié)合的的設(shè)計(jì)方法。該電路簡潔,軟件潛力得到充分挖掘,低頻段測量精度高,有效防止了干擾的侵入。獨(dú)到之處體現(xiàn)在用軟件取代了硬件。

            CPLD開發(fā)環(huán)境簡介

            1 VHDL語言

            VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成電路硬件描述語言)是由美國國防部開發(fā)的一種快速設(shè)計(jì)電路的工具,目前已經(jīng)成為IEEE的一種工業(yè)標(biāo)準(zhǔn)硬件描述語言。相比傳統(tǒng)的電路系統(tǒng)設(shè)計(jì)方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下和基于庫的設(shè)計(jì)的特點(diǎn),因此設(shè)計(jì)者可以不必了解硬件結(jié)構(gòu)。從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行系統(tǒng)方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級用VHDL對電路的行為進(jìn)行描述,并進(jìn)行仿真和糾錯,然后在系統(tǒng)一級進(jìn)行驗(yàn)證,最后再用邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的網(wǎng)表,下載到具體的CPLD器件中去,從而實(shí)現(xiàn)可編程的專用集成電路(ASIC)的設(shè)計(jì)。

            2 Max+PlusⅡ開發(fā)工具

            Max+PlusⅡ開發(fā)工具是美國Altera公司自行設(shè)計(jì)的一種CAE軟件工具。它具有全面的邏輯設(shè)計(jì)能力,設(shè)計(jì)者可以自由組合文本、圖形和波形輸入法,建立起層次化的單器件或多器件設(shè)計(jì)。利用該工具配備的編輯、編譯、仿真、綜合、芯片編程等功能,將設(shè)計(jì)的電路圖或電路描述程序變成基本的邏輯單元寫入到可編程芯片中(如CPLD、FPGA),做成ASIC芯片。

            它支持FLEX、MAX及Classic等系列CPLD器件,設(shè)計(jì)者無須精通器件內(nèi)部的復(fù)雜結(jié)構(gòu) ,只需用自己熟悉的設(shè)計(jì)輸入工具,如高級行為語言、原理圖或波形圖進(jìn)行設(shè)計(jì)輸入,它便將這些設(shè)計(jì)轉(zhuǎn)換成目標(biāo)結(jié)構(gòu)所要求的格式,從而簡化了設(shè)計(jì)過程。而且 Max+PlusⅡ提供了豐富的邏輯功能庫供設(shè)計(jì)者使用。設(shè)計(jì)者利用以上這些庫及自己添加的宏功能模塊,可大大減輕設(shè)計(jì)的工作量。使用Max+PlusⅡ 設(shè)計(jì)CPLD器件的流程如圖1所示。

            

            圖1 Max+PlusⅡ設(shè)計(jì)CPLD器件的流程圖

            等精度測頻原理

            本系統(tǒng)采用等精度測頻的原理來測量頻率,其原理如圖2所示。

            

            圖2 等精度測頻原理圖

            圖2中的門控信號是可預(yù)置的寬度為Tpr的一個脈沖。CNT1和CNT2是兩個可控計(jì)數(shù)器。標(biāo)準(zhǔn)頻率信號從CNT1的時鐘輸入端FS輸入,其頻率為Fs;被測信號經(jīng)整形后從CNT2的時鐘輸入端FIN輸入,設(shè)其實(shí)際頻率為Fxe,測量頻率為Fx。

            當(dāng)門控信號為高電平時,被測信號的上沿通過D觸發(fā)器的Q端同時啟動計(jì)數(shù)器CNT1和CNT2。對被測信號Fx和標(biāo)準(zhǔn)頻率信號Fs同時計(jì)數(shù)。當(dāng)門控信號為 低電平時,隨后而至的被測信號的上沿將使這兩個計(jì)數(shù)器同時關(guān)閉。設(shè)在一次門控時間Tpr中對被測信號計(jì)數(shù)值為Nx,對標(biāo)準(zhǔn)頻率信號的計(jì)數(shù)值為Ns,則:

            Fx/Nx=Fs/Ns(標(biāo)準(zhǔn)頻率和被測頻率的門寬時間Tpr完全相同)就可以得到被測信號的頻率值為:

            Fx=(Fs/Ns)×Nx

            系統(tǒng)硬件電路設(shè)計(jì)

            1 系統(tǒng)總體設(shè)計(jì)

            本系統(tǒng)的硬件電路包括鍵盤控制模塊、顯示模塊、輸入信號整形模塊以及單片機(jī)主控和CPLD模塊。鍵盤控制模塊設(shè)置5個功能鍵和3個時間選擇鍵,鍵值的讀入采用一片74LS165來完成,顯示模塊用8只74LS164完成LED的串行顯示。

            系統(tǒng)由一片CPLD完成各種測試功能,對標(biāo)準(zhǔn)頻率和被測信號進(jìn)行計(jì)數(shù)。單片機(jī)對整個測試系統(tǒng)進(jìn)行控制,包括對鍵盤信號的讀入與處理;對CPLD測量過程 的控制、測量結(jié)果數(shù)據(jù)的處理;最后將測量結(jié)果送LED顯示輸出。被測信號整形電路主要對被測信號進(jìn)行限幅、放大、再經(jīng)施密特觸發(fā)器整形后送入CPLD。用 50MHz的有源晶振作為CPLD的測試標(biāo)準(zhǔn)頻率。單片機(jī)由外接12MHz標(biāo)準(zhǔn)晶振提供時鐘電路。系統(tǒng)組成原理如圖3所示。

            

            圖3 系統(tǒng)原理框圖

            2 CPLD邏輯模塊設(shè)計(jì)

            根據(jù)等精度測頻原理,利用VHDL實(shí)現(xiàn)的測頻頂層電路模塊邏輯結(jié)構(gòu)如圖4所示。

            

            圖4 系統(tǒng)頂層模塊圖

            該模塊由4個子模塊構(gòu)成。其中CONTROL1為測頻或測周期控制模塊;CONTROL2為測脈寬和占空比控制模塊;CHOICE為自校與測量選擇模塊;COUNT為基準(zhǔn)頻率和被測頻率計(jì)數(shù)器模塊。

            被測信號脈沖經(jīng)CHOICE選擇后,從控制模塊CONTROL1的FX1端輸入,基準(zhǔn)頻率信號從FS端輸入,CLR是初始化信號。在進(jìn)行頻率或周期測量時,完成如下步驟:

            (1)在CLR端加正脈沖信號完成測試電路狀態(tài)的初始化。

            (2)由預(yù)置門控信號將STROBE置高電平,預(yù)置門開始定時,此時由被測信號的上沿打開計(jì)數(shù)器COUNT,同時對基準(zhǔn)頻率信號和被測信號進(jìn)行計(jì)數(shù)。

            (3)頂置門定時結(jié)束信號把STROBE置為低電平(由單片機(jī)來完成),在被測信號的下一個脈沖的上沿到來時,COUNT停止計(jì)數(shù)。

            (4)計(jì)數(shù)結(jié)束后,ED1端輸出低電平來指示測量計(jì)數(shù)結(jié)束,單片機(jī)得到此信號后,即可利用SS0,SS1進(jìn)行選擇,四次分別讀回COUNT中基準(zhǔn)頻率信號和被測信號計(jì)數(shù)值,并根據(jù)上述測量公式進(jìn)行運(yùn)算,計(jì)算出被測信號的頻率或周期值。

            系統(tǒng)軟件設(shè)計(jì)

            本系統(tǒng)的單片機(jī)主控及其外圍電路模塊用Keil C語言編寫,軟件模塊對應(yīng)于硬件電路的每一個部分,還包括部分?jǐn)?shù)據(jù)計(jì)算和轉(zhuǎn)換模塊。CPLD模塊用VHDL語言編寫,并在Max+PlusⅡ平臺上,完成 CPLD的軟件設(shè)計(jì)、編譯、調(diào)試、仿真和下載。系統(tǒng)初始化后,主程序不斷掃描鍵盤子程序,當(dāng)其鍵按下時,程序跳轉(zhuǎn)到相應(yīng)的子程序執(zhí)行其功能,然后返回繼續(xù) 執(zhí)行鍵盤掃描主程序。其主程序流程圖如圖5所示。

            

            圖5 系統(tǒng)主程序流程

            試驗(yàn)測試的結(jié)果如表1所示。

            結(jié)論

            本文將智能控制靈活、邏輯運(yùn)算能力強(qiáng)的單片機(jī)和集成度高、運(yùn)算速度快的CPLD相結(jié)合,突破了傳統(tǒng)電子系統(tǒng)設(shè)計(jì)的瓶頸,使設(shè)計(jì)的系統(tǒng)具有結(jié)構(gòu)緊湊、體積小,可靠性高,測頻范圍寬、精度高等優(yōu)點(diǎn)。它可作為獨(dú)立的儀表使用,也可用做其他儀器儀表的組成部分。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();