基于SOPC的DDS信號(hào)發(fā)生器設(shè)計(jì)
1. 2 D/ A 轉(zhuǎn)換器
從DDS 核輸出的是一個(gè)數(shù)字信號(hào),需要將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),才能便于觀察。DAC 有電壓和電流輸出兩種,其輸出的信號(hào)并不能真正連續(xù)可變,而是以其絕對(duì)分辨率為最小單位,所以它的輸出實(shí)際上是一個(gè)階梯模擬信號(hào),所以需要將D/ A 輸出的信號(hào)通過低通濾波器平滑后得到純凈的模擬信號(hào)。在該設(shè)計(jì)中用到型號(hào)為AD9742 的D/ A 轉(zhuǎn)換器,AD9742 是具有12 位、低功耗、轉(zhuǎn)換速度可達(dá)到100 Mb/ s 的D/ A 轉(zhuǎn)換器。
1. 3 基于SOPC 的硬件架構(gòu)
系統(tǒng)開發(fā)包括硬件部分和軟件部分,而硬件部分是由SOPC 開發(fā)工具搭建而成。SOPC Builder 生成NIOS 嵌入式處理器,NIOS 嵌入式處理器開發(fā)工具允許用戶配置多個(gè)CPU ,在標(biāo)準(zhǔn)庫中添加外圍電路,也可以由用戶自定義外設(shè),綜合處理自定義系統(tǒng),這樣使設(shè)計(jì)變得更加靈活。
打開SOPC Builder 后分別添加CPU,PIO 輸入( 10 個(gè)按鍵用作頻率字的輸入、1 個(gè)按鍵用作確認(rèn)、4 個(gè)按鍵用作波形的選擇) ,存儲(chǔ)器( FLASH,SRAM 和SDRAM) ,PIO 輸出( 10 位作為ROM 的地址、2 位作為ROM 塊的選擇、7 位為LED 段碼、1 位為LED 的選通端) 和定時(shí)器。所有組件添加完后的硬件架構(gòu)圖如圖3 所示。
圖3 SOPC 硬件架構(gòu)圖
SOPC Builder 生成之后,在Quartus 軟件中可以添加生成之后的CPU 模塊,而DDS 模塊是用VHDL 語言編寫而成,DDS 模塊圖如圖4 所示。其中的ROM 大小為12 1 024,共設(shè)置4 塊ROM 分別存儲(chǔ)正弦波、方波、三角波、鋸齒波。波形數(shù)據(jù)是由Mat lab軟件計(jì)算出來的,并將數(shù)據(jù)以. mif 文件格式存儲(chǔ)。累加器的輸出為波形存儲(chǔ)器的地址,進(jìn)行波形的相位 幅值轉(zhuǎn)換后,作為輸出的波形的幅值。10 位的尋址ROM 相當(dāng)于將一個(gè)周期的信號(hào)進(jìn)行離散化,形成具有1 024 個(gè)樣值的序列。累加器產(chǎn)生的地址通過波形的地址分配讀取不同存儲(chǔ)器中的數(shù)據(jù),然后將讀出來的數(shù)據(jù)經(jīng)過D/ A 轉(zhuǎn)換器,轉(zhuǎn)換成模擬信號(hào)輸出。
圖4 DDS 模塊圖
2 軟件設(shè)計(jì)
NIOS 完整的開發(fā)環(huán)境是NIOS 處理器與用戶的接口界面。使用NIOS IDE 可以完成所有的軟件開發(fā)任務(wù),包括程序的編輯,編譯和調(diào)試。硬件提取層( HAL) 支持通用I/ O 器件,可以通過編寫標(biāo)準(zhǔn)C 程序訪問硬件,HA L 減少了對(duì)硬件寄存器的訪問,直接與外圍器件進(jìn)行通信或控制。不同的外圍硬件需要不同程度的HAL 的支持,需要運(yùn)行HAL 的軟件驅(qū)動(dòng)器。DDS 系統(tǒng)控制在NIOS IDE 環(huán)境下用標(biāo)準(zhǔn)C 語言實(shí)現(xiàn),通過編寫代碼、編譯、鏈接、調(diào)試、下載幾個(gè)步驟完成整個(gè)設(shè)計(jì)。
打開IDE 開發(fā)環(huán)境后,第一步需要做的就是新建一個(gè)工程,將SOPC Builder 生成的. ptf 添加之后,系統(tǒng)根據(jù)該硬件的地址分配情況自動(dòng)生成相應(yīng)的頭文件,該頭文件定義了各個(gè)組件的基地址。當(dāng)SOPC 系統(tǒng)發(fā)生變化,IDE 將在用戶編譯和運(yùn)行應(yīng)用程序時(shí)重新對(duì)HAL 進(jìn)行編譯。整個(gè)軟件編寫的流程圖如圖5 所示。
圖5 軟件流程圖
3 系統(tǒng)調(diào)試過程與結(jié)果
評(píng)論