基于CPLD和單片機(jī)的任意波形發(fā)生器設(shè)計(jì)
引言
本文引用地址:http://2s4d.com/article/189785.htm在電子工程設(shè)計(jì)與測(cè)試中,常常需要一些復(fù)雜的、具有特殊要求的信號(hào),要求其波形可任意產(chǎn)生,頻率方便可調(diào)。通常的信號(hào)產(chǎn)生器難以滿足要求,市場(chǎng)上出售的任意信號(hào)產(chǎn)生器價(jià)格昂貴。結(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ì)。具有電路結(jié)構(gòu)簡(jiǎn)單、實(shí)用性強(qiáng)、成本低廉等優(yōu)點(diǎn)。
系統(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)。
圖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 軟件流程圖
評(píng)論