《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 波形發(fā)生器設(shè)計(jì),單片機(jī)、CPLD控制的任意波形發(fā)生器設(shè)計(jì)實(shí)例

波形發(fā)生器設(shè)計(jì),單片機(jī)、CPLD控制的任意波形發(fā)生器設(shè)計(jì)實(shí)例

2020-02-13
來源:中國電子網(wǎng)
關(guān)鍵詞: 任意波形發(fā)生器 CPLD

  波形發(fā)生器有多種類型,任意波形發(fā)生器便是其中一種。對(duì)于任意波形發(fā)生器,小編曾帶來相關(guān)介紹,如高速任意波形發(fā)生器的設(shè)計(jì)等。本文中,講為大家講解采用單片機(jī)和CPLD控制的任意波形發(fā)生器的設(shè)計(jì)。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

  在電子工程設(shè)計(jì)與測(cè)試中,常常需要一些復(fù)雜的、具有特殊要求的信號(hào),要求其波形可任意產(chǎn)生,頻率方便可調(diào)。

  結(jié)合實(shí)際需要,我們?cè)O(shè)計(jì)了一種任意波形發(fā)生器。電路設(shè)計(jì)中充分利用MATLAB的仿真功能,將希望得到的波形信號(hào)在MATLAB中完成信號(hào)的產(chǎn)生、抽樣和模數(shù)轉(zhuǎn)換,并將得到的數(shù)字波形數(shù)據(jù)存放在數(shù)據(jù)存儲(chǔ)器中,通過單片機(jī)和CPLD控制,將波形數(shù)據(jù)讀出,送入后向通道進(jìn)行A/D轉(zhuǎn)換和放大處理后得到所需的模擬信號(hào)波形。利用上述方法設(shè)計(jì)的任意波形發(fā)生器,信號(hào)產(chǎn)生靈活方便、功能擴(kuò)展靈活、信號(hào)參數(shù)可調(diào),實(shí)現(xiàn)了硬件電路的軟件化設(shè)計(jì)。

  系統(tǒng)框圖

  任意波形發(fā)生器的設(shè)計(jì)思想,是利用MATLAB的強(qiáng)大仿真功能,方便、快捷的生成給定頻率、周期、脈寬的任意波形數(shù)據(jù);并將數(shù)據(jù)預(yù)存在數(shù)據(jù)存儲(chǔ)器中。在單片機(jī)控制下,利用CPLD電路產(chǎn)生地址讀出數(shù)據(jù),送入D/A轉(zhuǎn)換電路,得到所需的任意波形信號(hào)。系統(tǒng)結(jié)構(gòu)框圖如圖1;圖中分頻電路和地址發(fā)生器由CPLD實(shí)現(xiàn)。

  

7af951c7b1911c50db58c498e8c407a7.jpg

  圖1 系統(tǒng)框圖

  電路設(shè)計(jì)及實(shí)現(xiàn)單片機(jī)控制電路

  單片機(jī)采用AT89C52芯片,通過軟件編程產(chǎn)生所要求的控制信號(hào)。主要的控制參數(shù)包括:信號(hào)周期、脈寬;分頻電路的開始信號(hào)、地址發(fā)生器的復(fù)位信號(hào);E2PROM的選通信號(hào);D/A轉(zhuǎn)換電路的選通信號(hào)。在具體電路中,端口P1.0控制分頻電路的啟動(dòng)、P1.1控制地址發(fā)生器的清零,P2.0控制28C256和AD7545的選通信號(hào)。單片機(jī)工作在定時(shí)器0方式,軟件設(shè)計(jì)利用C語言實(shí)現(xiàn)。流程圖如圖2所示。

 

2.jpg

  圖2 軟件流程圖

  波形數(shù)據(jù)生成

  MATLAB作為一款優(yōu)秀的數(shù)學(xué)工具軟件,具有強(qiáng)大的運(yùn)算功能;可以方便的產(chǎn)生各種信號(hào)波形,在軟件中實(shí)現(xiàn)波形信號(hào)的產(chǎn)生、抽樣和模數(shù)轉(zhuǎn)換。設(shè)計(jì)的任意波形發(fā)生器,數(shù)據(jù)存儲(chǔ)器選用28C256芯片,信號(hào)波形通過MATLAB仿真產(chǎn)生;得到的波形數(shù)據(jù)存放在數(shù)據(jù)存儲(chǔ)器28C256中。具體設(shè)計(jì)中,我們要求產(chǎn)生周期為200ms,脈寬為5ms的單/調(diào)頻混合信號(hào),其中單頻信號(hào)的脈寬為4ms,頻率為30KHz;調(diào)頻信號(hào)的脈寬為1ms,頻率為30KHz_35KHz。在MATLAB中設(shè)定抽樣率為500KHz,得到了2500個(gè)波形數(shù)據(jù)。這些混合波形數(shù)據(jù)在燒錄入數(shù)據(jù)存儲(chǔ)器的過程中,由于波形數(shù)據(jù)較多,直接用手工錄入數(shù)據(jù)存儲(chǔ)器中不僅費(fèi)時(shí)且容易出錯(cuò)。為克服這一弊端,通過MATLAB編程的方法將產(chǎn)生的波形數(shù)據(jù)按照HEX文件的INTEL格式存放,然后將這些波形數(shù)據(jù)整批次燒錄入數(shù)據(jù)存儲(chǔ)器中。采用上述方法,波形數(shù)據(jù)生成簡單,快捷;可根據(jù)需要在軟件程序中方便地修改信號(hào)參數(shù);無需改動(dòng)硬件電路即可實(shí)現(xiàn)信號(hào)參數(shù)的功能擴(kuò)展。

  CPLD邏輯設(shè)計(jì)

  分頻電路采用兩片74HC163實(shí)現(xiàn)。通過分頻電路,將12MHz的晶振標(biāo)準(zhǔn)頻率分頻后,得到500KHz的抽樣頻率,作為地址發(fā)生器的時(shí)鐘。分頻電路的工作由單片機(jī)控制。

  地址發(fā)生器電路由3片74HC163組成,時(shí)鐘頻率為500KHz,有分頻電路提供;和預(yù)存的波形數(shù)據(jù)抽樣頻率相一致,以實(shí)現(xiàn)數(shù)據(jù)的無失真讀出。

  電路設(shè)計(jì)中,采用ALTRA公司的EPM7128AETC100-10芯片,在MAX+PLUSⅡ開發(fā)環(huán)境中完成分頻;PLD的電路設(shè)計(jì),可以省去大部分的中小規(guī)模集成電路和分離元件;使得電路具有集成度高、工作速度快、編程方便、價(jià)格低廉的顯著優(yōu)點(diǎn)。通過CPLD和數(shù)據(jù)預(yù)生成的信號(hào)實(shí)現(xiàn)方法,無需改變硬件電路,即可實(shí)現(xiàn)信號(hào)參數(shù)的任意調(diào)整;同時(shí)外圍電路十分簡單,為工程調(diào)試和應(yīng)用帶來了方便。

  D/A轉(zhuǎn)換電路

  D/A轉(zhuǎn)換電路的實(shí)現(xiàn)如圖3所示。電路中,AD7545將波形數(shù)據(jù)轉(zhuǎn)換為模擬信號(hào);LF353進(jìn)行信號(hào)濾波和整形。

  

3.jpg

  圖3 D/A轉(zhuǎn)換電路

  結(jié)語

  采用上述方法設(shè)計(jì)的任意波形發(fā)生器,通過軟件和硬件結(jié)合,充分發(fā)揮MATLAB強(qiáng)大的仿真功能,盡可能的減少了硬件開銷。根據(jù)實(shí)際需要,可產(chǎn)生正弦波、三角波、鋸齒波、方波等多種波形,可以產(chǎn)生線性調(diào)頻信號(hào)(LFM),單頻脈沖信號(hào)(CW),余弦包絡(luò)信號(hào)以及他們之間的組合信號(hào)等多種波形參數(shù);滿足了工程需要。該任意波形發(fā)生器已應(yīng)用于在研項(xiàng)目“水中運(yùn)動(dòng)目標(biāo)軌跡測(cè)量”中,效果良好。

  以上便是此次小編帶來的“波形發(fā)生器”相關(guān)內(nèi)容,通過本文,希望大家對(duì)單片機(jī)、CPLD控制的任意波形發(fā)生器設(shè)計(jì)方法具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。