基于CPLD和單片機的任意波形發生器設計
波形數據生成
MATLAB作為一款優秀的數學工具軟件,具有強大的運算功能;可以方便的產生各種信號波形,在軟件中實現波形信號的產生、抽樣和模數轉換。設計的任意波形發生器,數據存儲器選用28C256芯片,信號波形通過MATLAB仿真產生;得到的波形數據存放在數據存儲器28C256中。具體設計中,我們要求產生周期為200ms,脈寬為5ms的單/調頻混合信號,其中單頻信號的脈寬為4ms,頻率為30KHz;調頻信號的脈寬為1ms,頻率為30KHz_35KHz。在MATLAB中設定抽樣率為500KHz,得到了2500個波形數據。這些混合波形數據在燒錄入數據存儲器的過程中,由于波形數據較多,直接用手工錄入數據存儲器中不僅費時且容易出錯。為克服這一弊端,通過MATLAB編程的方法將產生的波形數據按照HEX文件的INTEL格式存放,然后將這些波形數據整批次燒錄入數據存儲器中。采用上述方法,波形數據生成簡單,快捷;可根據需要在軟件程序中方便地修改信號參數;無需改動硬件電路即可實現信號參數的功能擴展。
CPLD邏輯設計
分頻電路采用兩片74HC163實現。通過分頻電路,將12MHz的晶振標準頻率分頻后,得到500KHz的抽樣頻率,作為地址發生器的時鐘。分頻電路的工作由單片機控制。
地址發生器電路由3片74HC163組成,時鐘頻率為500KHz,有分頻電路提供;和預存的波形數據抽樣頻率相一致,以實現數據的無失真讀出。 電路設計中,采用ALTRA公司的EPM7128AETC100-10芯片,在MAX+PLUSⅡ開發環境中完成分頻緶泛偷刂販⑸器電路的設計;于CPLD的電路設計,可以省去大部分的中小規模集成電路和分離元件;使得電路具有集成度高、工作速度快、編程方便、價格低廉的顯著優點。通過CPLD和數據預生成的信號實現方法,無需改變硬件電路,即可實現信號參數的任意調整;同時外圍電路十分簡單,為工程調試和應用帶來了方便。
D/A轉換電路
D/A轉換電路的實現如圖3所示。 電路中,AD7545將波形數據轉換為模擬信號;LF353進行信號濾波和整形。

圖3 D/A轉換電路
結語
采用上述方法設計的任意波形發生器,通過軟件和硬件結合,充分發揮MATLAB強大的仿真功能,盡可能的減少了硬件開銷。根據實際需要,可產生正弦波、三角波、鋸齒波、方波等多種波形,可以產生線性調頻信號(LFM),單頻脈沖信號(CW),余弦包絡信號以及他們之間的組合信號等多種波形參數;滿足了工程需要。該任意波形發生器已應用于在研項目“水中運動目標軌跡測量”中,效果良好。
評論