999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2010-04-12 00:00:00張康康,王中訓,王恒,劉建英
現代電子技術 2010年22期

摘 要: 提出一種基于直接數字頻率合成(DDS)技術和Qt編程的任意波形發生器(AWG)的整體設計方案。完成了DDS在FPGA中的硬件修改設計以及在Linux環境下Qt程序的軟件設計和內核驅動程序的開發,并給出實驗結果。實驗結果表明:通過觸摸筆繪制任意波形,即可產生與所繪波形在時間和電壓上均相同的實際電信號,達到“所見即所得”的效果,以滿足各種測試和試驗的要求。關鍵詞:任意波形發生器;DDS; FPGA; Qt

中圖分類號:TN911-34文獻標識碼:A

文章編號:1004-373X(2010)22-0028-03

\"What You See is What You Get\" Waveform Generator Based on DDS and Qt

ZHANG Kang-kang, WANG Zhong-xun, WANG Heng, LIU Jian-ying

(Institute of Science and Technology for Optoelectronics Information, Yantai University, Yantai 264005, China)

Abstract: A total design scheme of the arbitrary waveform generator (AWG) which is based on direct digital frequency synthesizer (DDS) technology and Qt programming is proposed. The DDS hardware modification on FPGA, the software design of Qt program and the development of the kernel driver in Linux environment were finished. The experimental results are presented. The experimental results indicate that the signal which is same as the practical electrical signal in time and voltage can be obtained through drawing an arbitrary waveform by the touching pen, the result of \"What you see is what you get\" is achieved, and the requirements of various tests are fulfilled. Keywords: arbitrary waveform generator;DDS; FPGA; Qt

0 引 言

隨著電路設計的多樣化,電路測試也對信號源提出了更高的要求。傳統的信號源只能產生幾種固定的波形,靈活度較差[1]。任意信號發生器(AWG)很好地滿足了這個要求,它不僅可以輸出標準信號,而且可以方便地產生任意波形,在測控、通信,醫療等領域有著廣泛的應用。任意信號發生器通常采用直接數字頻率合成(direct digital frequency synthesizer,DDS)技術實現。DDS技術是J.Tiemev在1971年首次提出的一種以全數字技術,它從相位概念出發直接合成所需波形的一種新的合成原理[2]。

Qt是一個跨平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發者建立圖形用戶界面所需的所用功能。Qt是完全面向對象的,模塊化程度非常高,很容易擴展,并且允許真正地組件編程[3]。Qt具有優良的跨平臺特性,支持多種系統和平臺,包括Windows系統,所有的UNIX系統以及嵌入式系統等。Qt遵循GPL(general public license)協議,開放主要的源代碼,用戶可以在GPL的規定下自由添加新特性。

1 DDS模塊[4]的設計

1.1 DDS在FPGA中的實現

DDS由相位累加器,波形存儲器,D/A轉換器,低通濾波器[5]等部分組成。該系統的DDS模塊根據需要做了適當的修改。其結構框圖如圖1所示。

圖1 DDS模塊

(1) 增加了通信接口電路和DDS控制模塊用于接收用戶數據和控制DDS的運行狀態。

(2) 基準時鐘采用5 MHz,經過可控分頻器分頻后作為DDS的時鐘信號,周期分辨率最高可達200 ns(即分頻為1)。

(3) 相位累加器的頻率控制字固定為1,相位控制字固定為0。

(4) 波形存儲器采用RAM[6],可以寫入用戶自定義的波形數據以產生任意波形,其地址寬度設置為11 b,這樣存儲深度可達2K點。

(5) 電平偏移電路用于消除D/A輸出信號中疊加的無效直流分量,對于有效的直流分量會保留。

1.2 通信接口及控制寄存器的設計

DDS控制寄存器控制整個DDS模塊的運行參數和狀態,并通過通信接口接收來自ARM的數據。根據需要共設置了8個寄存器,地址從0~7。其功能和分配如表1所示。

表1 控制寄存器的功能及分配

ADDR01234567

DATA分頻參數波形點個數及觸發模式控制位啟動/停止RAM控制及間接尋址

表1其中:

(1) 0~3 B存儲分頻參數,占用32位,因此分頻范圍為1~232。

(2) 4~5 B存儲相位累加器的參數,用于控制波形點數和觸發模式,其各位的含義如表2所示。

(3) 6 B只使用了最低位,為1啟動DDS,為0則停止DDS。

(4) 地址7是一個虛地址,并不對應著實際的物理寄存器,而是與相位累加器組合指向RAM的某一個單元,通過對地址7的寫操作就間接的實現了對整個RAM的操作,這樣大大簡化了對DDS的控制操作。

表2 相位累加器各位含義

Bit1514~1110~0

含義觸發模式0:單次觸發

1:循環觸發保留波形點數

1.3 電平偏移及放大電路

電平偏移及放大電路用于消除輸出信號中疊加的無效直流分量(允許有效直流量輸出)和調整信號增益,其電路圖如圖2所示。

圖2 電平偏移及放大電路

根據圖2電路有:

uo1=-R2R1×ui+1+R2+R8R1R3R3+Rvuref

式中:Rv是R4兩部分的并聯電阻,當R2+R8R1=R3Rv=AU1時,有:uo1=AU1×(uref-ui)

uo2=-AU2×AU1×(uref-ui)=AU2AU1(ui-uref)

式中:AU2=R6+R9R5。

2 Qt程序設計

2.1 GUI設計

GUI(圖形用戶界面)是人機交互的窗口,GUI的設計直接關系到產品的可操作性,是軟件設計中非常重要部分。考慮到觸摸屏面板的空間有限,因此控件(Widgets)的設計盡量緊湊。該系統的GUI設計見圖3。

圖3 GUI設計

左側為工具欄,右側黃色區域為繪圖區。繪圖區提供了滾動條,用于繪制超出屏幕范圍的波形。可以繪制較長的序列信號。工具欄從上到下分為繪圖模式選擇區,波形輸出設定區,時間設定區及清屏和退出按鈕。

波形的繪制只允許從左向右進行,一個時刻只對應一個數據點;已繪制波形允許修改,修改過程中自動變成紅色,修改完畢自動變成默認顏色。

2.2 Qt編程原理和方法

Qt程序設計[7]采用面向對象和事件驅動的方法,整個GUI程序劃分為兩個類,其中主窗口為一個類,類名為MainWindow,繼承自Qt的QMainWindow類,它提供了工具條(toolbar)和一個主窗口(mainwindow);另一個類是DrawWidget,提供了一個繪圖區域,有4種事件,分別為觸摸筆按下(mousePressEvent),移動(mouseMoveEvent),松開(mouseReleaseEvent)和繪圖區重繪事件(paintEvent)。同時提供了處理波形的函數waveProcess和調用底層驅動的接口。

滾動條是通過QScrollView類提供的視圖功能來實現的。延遲輸出功能通過Qtimer類來實現,延遲范圍0~999 s。觸摸筆的3個事件的發生順序和處理過程見圖4。

圖4 觸摸筆的事件及發生順序

信號/槽機制是Qt的一個中心特征,用于對象間的通訊[8]。繪圖事件(paintEvent)采用雙緩沖機制。雙緩沖技術是[9]一種GUI編程技術,它指的是在一個不在屏幕上的位圖上渲染一個物件并把此位圖拷貝到屏幕上,常用于消除閃爍和提供一個快速用戶界面。該程序采用了Qpixmap類來實現雙緩沖。

2.3 驅動程序設計

Linux設備驅動程序[10]是系統內核的一部分,運行于內核態。其可以以兩種方式被編譯和加載:直接編譯進Linux內核和編譯成一個可加載和刪除的模塊,通過modprobe/insmod和rmmod來加載和卸載驅動模塊。該系統即采用字符設備驅動。

在系統內部,I/O設備的存/取通過一組固定的入口點來進行,具體到Linux系統,設備驅動程序所提供的這組入口點由一個文件操作結構file_operation來向系統進行說明。

該系統的驅動函數需要提供3個函數調用,read函數用于讀取DDS運行狀態,write函數用于向DDS寫入參數和波形數據,ioctl函數用于復位/啟動/停止DDS。另外還需要打開(open)和關閉設備函數(close)。File_operatio的定義如下:

static struct file_operations dev_fops = {

.owner = THIS_MODULE,

.ioctl = wave_ioctl,//對DDS復位/啟動/停止等控制操作

.write = wave_write,//寫入數據

.read = wave_read,//讀取狀態

};

驅動程序在wave_ioctl,wave_wirte,wave_read等幾個函數中具體實現。

所需的波形參數和數據通過Qt程序打包,調用write函數(對應驅動程序中的wave_wrtie函數)一次性寫入DDS模塊。

最終將驅動程序編譯為模塊文件(*.ko),通過命令modprobe和rmmod來加載和卸載驅動模塊。

3 系統操作及測試

(1) 設置波形參數,包括繪圖模式,時間軸刻度,輸出延時等。

(2) 繪制波形,并作相應的修改,最終完成波形繪制。在松開觸摸筆之后Qt程序根據所選擇的波形繪制模式對波形進行處理和優化并重新顯示出來。

(3) 點擊單次觸發模式或重復(循環)觸發模式,此時Qt程序提取時間軸刻度參數,轉換為DDS中可控分頻器的分頻參數,并將這些參數和處理后的波形數據打包傳輸給DDS模塊,輸出延時完畢則啟動DDS,即產生與所繪波形相同的實際電信號,達到“所見即所得”的效果,如圖5所示(時間刻度為100 μs)。

圖5 實驗截圖

4 結 語

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

參考文獻

[1]江偉,王元中.基于FPGA的DDS的設計與實現[J].山西電子技術,2007(2):24-25,40.

[2]高玉良,李延輝.現代頻率合成與控制技術[M].北京:航空工業出版社,2002.

[3]Xteam(中國)軟件技術有限公司.Qt程序設計[M].北京:清華大學出版社,2002.

[4]周國富.利用FPGA實現DDS專用集成電路[J].電子技術應用,1998(3):31-32.

[5]潘松,黃繼業.SoPC技術使用教程[M].北京:清華大學出版社,2005.

[6]王曉升,沙勝賢.基于DDS的任意波形發生器實現[J].長春工程學院學報:自然科學版,2005(2):56-58.

[7]倪繼利.Qt及Linux操作系統窗口設計[M].北京:電子工業出版社,2006.

[8]唐新華.QT的信號與槽機制介紹[EB/OL].[2008-03-06].http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/.

[9]劉光照.雙緩沖技術[EB/OL].[2009-07-11].http://www.qtchina.net/?q=node/176.

[10]CORBET Jonathan, ALESSANDRO R. Linux device dri-vers 3rd ed [M]. [S.l.]: O′Reilly,2005:6-7.

主站蜘蛛池模板: 一级片免费网站| 欧美午夜网| 精品无码人妻一区二区| 国产swag在线观看| 亚洲一级毛片免费看| 国产麻豆精品手机在线观看| 国产乱子伦视频三区| 国产成人无码Av在线播放无广告| 国产欧美视频在线| 91视频国产高清| 综合色区亚洲熟妇在线| 中文字幕 欧美日韩| 国产精品黄色片| 国产一区二区三区在线无码| 午夜福利网址| 欧美成人aⅴ| 色悠久久久久久久综合网伊人| 国产午夜福利亚洲第一| www成人国产在线观看网站| 91美女在线| 国产乱子伦精品视频| 在线看AV天堂| 毛片久久网站小视频| 久久综合九色综合97婷婷| 欧美 国产 人人视频| 久久精品国产91久久综合麻豆自制| 一本大道无码日韩精品影视| 亚洲v日韩v欧美在线观看| 在线欧美一区| 中文字幕在线播放不卡| 国产在线观看99| 日本高清免费一本在线观看 | 欧美一级大片在线观看| 中文字幕调教一区二区视频| 99久久亚洲综合精品TS| 国产亚洲欧美日韩在线一区| 国产 在线视频无码| 日本高清免费不卡视频| 在线毛片网站| 不卡色老大久久综合网| 国产视频久久久久| 精品综合久久久久久97| 欧美成人免费午夜全| 国产美女丝袜高潮| 美女被操黄色视频网站| 欧美a在线视频| 综合色天天| 四虎综合网| 色综合久久综合网| 刘亦菲一区二区在线观看| 毛片久久久| 国产极品美女在线观看| 亚洲欧美日韩成人高清在线一区| 4虎影视国产在线观看精品| 激情乱人伦| 四虎国产精品永久在线网址| 成人国产精品2021| AⅤ色综合久久天堂AV色综合| 国产视频你懂得| 亚洲日本韩在线观看| 99在线视频网站| 成人免费网站在线观看| 国产a v无码专区亚洲av| 色天天综合久久久久综合片| 国产91无码福利在线| 亚洲首页国产精品丝袜| 国产精品香蕉| 色老头综合网| 97精品伊人久久大香线蕉| 麻豆国产在线观看一区二区 | 国产精品一线天| 日韩免费毛片| 黄色网址免费在线| 亚洲日本www| 亚洲浓毛av| 在线观看热码亚洲av每日更新| 一级毛片免费的| 美女毛片在线| 青青草原国产免费av观看| 日本伊人色综合网| 白浆免费视频国产精品视频 | 亚洲视频免费在线|