新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 一種基于DDS和Qt的“所見即所得”波形發(fā)生器

一種基于DDS和Qt的“所見即所得”波形發(fā)生器

作者: 時間:2011-02-11 來源:網(wǎng)絡 收藏


信號/槽機制是Qt的一個中心特征,用于對象間的通訊。繪圖事件(paintEvent)采用雙緩沖機制。雙緩沖技術是一種GUI編程技術,它指的是在一個不在屏幕上的位圖上渲染一個物件并把此位圖拷貝到屏幕上,常用于消除閃爍和提供一個快速用戶界面。該程序采用了Qpixmap類來實現(xiàn)雙緩沖。
2.3 驅動程序設計
Linux設備驅動程序是系統(tǒng)內核的一部分,運行于內核態(tài)。其可以以兩種方式被編譯和加載:直接編譯進Linux內核和編譯成一個可加載和刪除的模塊,通過modprobe/insmod和rmmod來加載和卸載驅動模塊。該系統(tǒng)即采用字符設備驅動。在系統(tǒng)內部,I/O設備的存/取通過一組固定的入口點來進行,具體到Linux系統(tǒng),設備驅動程序所提供的這組入口點由一個文件操作結構file_operation來向系統(tǒng)進行說明。該系統(tǒng)的驅動函數(shù)需要提供3個函數(shù)調用,read函數(shù)用于讀取運行狀態(tài),write函數(shù)用于向寫入?yún)?shù)和波形數(shù)據(jù),ioctl函數(shù)用于復位/啟動/停止。另外還需要打開(open)和關閉設備函數(shù)(close)。File_operatio的定義如下:

驅動程序在wave_ioctl,wave_wirte,wave-read等幾個函數(shù)中具體實現(xiàn)。所需的波形參數(shù)和數(shù)據(jù)通過Qt程序打包,調用write函數(shù)(對應驅動程序中的wave_wrtie函數(shù))一次性寫入DDS模塊。最終將驅動程序編譯為模塊文件(*.ko),通過命令modprobe和rmmod來加載和卸載驅動模塊。

3 系統(tǒng)操作及測試
(1)設置波形參數(shù),包括繪圖模式,時間軸刻度,輸出延時等。
(2)繪制波形,并作相應的修改,最終完成波形繪制。在松開觸摸筆之后Qt程序根據(jù)所選擇的波形繪制模式對波形進行處理和優(yōu)化并重新顯示出來。
(3)點擊單次觸發(fā)模式或重復(循環(huán))觸發(fā)模式,此時Qt程序提取時間軸刻度參數(shù),轉換為DDS中可控分頻器的分頻參數(shù),并將這些參數(shù)和處理后的波形數(shù)據(jù)打包傳輸給DDS模塊,輸出延時完畢則啟動DDS,即產(chǎn)生與所繪波形相同的實際電信號,達到“所見即所得”的效果,如圖5所示(時間刻度為100μs)。



4 結語
任意是現(xiàn)代電子技術的一個新發(fā)展,本文給出了一種基于DDS和Qt的任意的整體設計方案,分析了DDS在FPGA中的實現(xiàn)和Linux下Qt程序的設計。該設計最大的特點是“所見即所得”,即繪制何種波形就可立即產(chǎn)生何種波形,非常直觀,從而以滿足各種電路測試,通信等領域快速產(chǎn)生任意波形信號的要求。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉