《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 一種基于DDS和Qt的“所見(jiàn)即所得”波形發(fā)生器
一種基于DDS和Qt的“所見(jiàn)即所得”波形發(fā)生器
張康康 王中訓(xùn) 王 恒 劉建英
摘要: 提出一種基于直接數(shù)字頻率合成(DDS)技術(shù)和Qt鳊程的任意波形發(fā)生器(AWG)的整體設(shè)計(jì)方案。完成了DDS在FPGA中的硬件修改設(shè)計(jì)以及在Linux環(huán)境下Qt程序的軟件設(shè)計(jì)和內(nèi)核驅(qū)動(dòng)程序的開(kāi)發(fā),并給出實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果表明:通過(guò)觸摸筆繪制任意波形,即可產(chǎn)生與所繪波形在時(shí)間和電壓上均相同的實(shí)際電信號(hào),達(dá)到“所見(jiàn)即所得”的效果,以滿足各種測(cè)試和試驗(yàn)的要求。
Abstract:
Key words :

0 引言
    隨著電路設(shè)計(jì)的多樣化,電路測(cè)試也對(duì)信號(hào)源提出了更高的要求。傳統(tǒng)的信號(hào)源只能產(chǎn)生幾種固定的波形,靈活度較差。任意信號(hào)發(fā)生器(AWG)很好地滿足了這個(gè)要求,它不僅可以輸出標(biāo)準(zhǔn)信號(hào),而且可以方便地產(chǎn)生任意波形,在測(cè)控、通信,醫(yī)療等領(lǐng)域有著廣泛的應(yīng)用。任意信號(hào)發(fā)生器通常采用直接數(shù)字頻率合成(direct digital frequency synthesizer,DDS)技術(shù)實(shí)現(xiàn)。DDS技術(shù)是J.Tiemev在1971年首次提出的一種以全數(shù)字技術(shù),它從相位概念出發(fā)直接合成所需波形的一種新的合成原理。Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開(kāi)發(fā)者建立圖形用戶界面所需的所用功能。Qt是完全面向?qū)ο蟮模K化程度非常高,很容易擴(kuò)展,并且允許真正地組件編程。  Qt具有優(yōu)良的跨平臺(tái)特性,支持多種系統(tǒng)和平臺(tái),包括Windows系統(tǒng),所有的UNIX系統(tǒng)以及嵌入式系統(tǒng)等。Qt遵循GPL(general public lice-nse)協(xié)議,開(kāi)放主要的源代碼,用戶可以在GPL的規(guī)定下自由添加新特性。

1 DDS模塊的設(shè)計(jì)
1.1 DDS在FPGA中的實(shí)現(xiàn)

    DDS由相位累加器,波形存儲(chǔ)器,D/A轉(zhuǎn)換器,低通濾波器等部分組成。該系統(tǒng)的DDS模塊根據(jù)需要做了適當(dāng)?shù)男薷摹F浣Y(jié)構(gòu)框圖如圖1所示。


    (1)增加了通信接口電路和DD8控制模塊用于接收用戶數(shù)據(jù)和控制DDS的運(yùn)行狀態(tài)。
    (2)基準(zhǔn)時(shí)鐘采用5 MHz,經(jīng)過(guò)可控分頻器分頻后作為DDS的時(shí)鐘信號(hào),周期分辨率最高可達(dá)200 ns(即分頻為1)。
    (3)相位累加器的頻率控制字固定為1,相位控制字固定為0。
    (4)波形存儲(chǔ)器采用RAM,可以寫(xiě)入用戶自定義的波形數(shù)據(jù)以產(chǎn)生任意波形,其地址寬度設(shè)置為11 b,這樣存儲(chǔ)深度可達(dá)2K點(diǎn)。
    (5)電平偏移電路用于消除D/A輸出信號(hào)中疊加的無(wú)效直流分量,對(duì)于有效的直流分量會(huì)保留。
1.2 通信接口及控制寄存器的設(shè)計(jì)
   
DDS控制寄存器控制整個(gè)DDS模塊的運(yùn)行參數(shù)和狀態(tài),并通過(guò)通信接口接收來(lái)自ARM的數(shù)據(jù)。根據(jù)需要共設(shè)置了8個(gè)寄存器,地址從O~7。其功能和分配如表1所示。


   表1其中:
    (1)0~3 B存儲(chǔ)分頻參數(shù),占用32位,因此分頻范圍為1~232。
    (2)4~5 B存儲(chǔ)相位累加器的參數(shù),用于控制波形點(diǎn)數(shù)和觸發(fā)模式,其各位的含義如表2所示。


    (3)6 B只使用了最低位,為1啟動(dòng)DDS,為0則停止DDS。
    (4)地址7是一個(gè)虛地址,并不對(duì)應(yīng)著實(shí)際的物理寄存器,而是與相位累加器組合指向RAM的某一個(gè)單元,通過(guò)對(duì)地址7的寫(xiě)操作就間接的實(shí)現(xiàn)了對(duì)整個(gè)RAM的操作,這樣大大簡(jiǎn)化了對(duì)DDS的控制操作。
1.3 電平偏移及放大電路
   
電平偏移及放大電路用于消除輸出信號(hào)中疊加的無(wú)效直流分量(允許有效直流量輸出)和調(diào)整信號(hào)增益,其電路圖如圖2所示。


    根據(jù)圖2電路有:
   
    式中:Rv是R4兩部分的并聯(lián)電阻,當(dāng)
   

2 Qt程序設(shè)計(jì)
2.1 GUI設(shè)計(jì)

    GUI(圖形用戶界面)是人機(jī)交互的窗口,GUI的設(shè)計(jì)直接關(guān)系到產(chǎn)品的可操作性,是軟件設(shè)計(jì)中非常重要部分。考慮到觸摸屏面板的空間有限,因此控件(Widgets)的設(shè)計(jì)盡量緊湊。該系統(tǒng)的GUI設(shè)計(jì)見(jiàn)圖3。


    左側(cè)為工具欄,右側(cè)黃色區(qū)域?yàn)槔L圖區(qū)。繪圖區(qū)提供了滾動(dòng)條,用于繪制超出屏幕范圍的波形。可以繪制較長(zhǎng)的序列信號(hào)。工具欄從上到下分為繪圖模式選擇區(qū),波形輸出設(shè)定區(qū),時(shí)間設(shè)定區(qū)及清屏和退出按鈕。波形的繪制只允許從左向右進(jìn)行,一個(gè)時(shí)刻只對(duì)應(yīng)一個(gè)數(shù)據(jù)點(diǎn);已繪制波形允許修改,修改過(guò)程中自動(dòng)變成紅色,修改完畢自動(dòng)變成默認(rèn)顏色。
2.2 Qt編程原理和方法
   
Qt程序設(shè)計(jì)采用面向?qū)ο蠛褪录?qū)動(dòng)的方法,整個(gè)GUI程序劃分為兩個(gè)類(lèi),其中主窗口為一個(gè)類(lèi),類(lèi)名為MainWindow,繼承自Qt的QMa-inWindow類(lèi),它提供了工具條(toolbar)和一個(gè)主窗口(mainwindow);另一個(gè)類(lèi)是DrawWidget,提供了一個(gè)繪圖區(qū)域,有4種事件,分別為觸摸筆按下(mousePressEvent),移動(dòng)(mouseMoveEvent),松開(kāi)(mouseReleaseEvent)和繪圖區(qū)重繪事件(paintEvent)。同時(shí)提供了處理波形的函數(shù)waveProcess和調(diào)用底層驅(qū)動(dòng)的接口。滾動(dòng)條是通過(guò)QScrollView類(lèi)提供的視圖功能來(lái)實(shí)現(xiàn)的。延遲輸出功能通過(guò)Qtimer類(lèi)來(lái)實(shí)現(xiàn),延遲范圍0~999 s。觸摸筆的3個(gè)事件的發(fā)生順序和處理過(guò)程見(jiàn)圖4。


    信號(hào)/槽機(jī)制是Qt的一個(gè)中心特征,用于對(duì)象間的通訊。繪圖事件(paintEvent)采用雙緩沖機(jī)制。雙緩沖技術(shù)是一種GUI編程技術(shù),它指的是在一個(gè)不在屏幕上的位圖上渲染一個(gè)物件并把此位圖拷貝到屏幕上,常用于消除閃爍和提供一個(gè)快速用戶界面。該程序采用了Qpixmap類(lèi)來(lái)實(shí)現(xiàn)雙緩沖。
2.3 驅(qū)動(dòng)程序設(shè)計(jì)
   
Linux設(shè)備驅(qū)動(dòng)程序是系統(tǒng)內(nèi)核的一部分,運(yùn)行于內(nèi)核態(tài)。其可以以?xún)煞N方式被編譯和加載:直接編譯進(jìn)Linux內(nèi)核和編譯成一個(gè)可加載和刪除的模塊,通過(guò)modprobe/insmod和rmmod來(lái)加載和卸載驅(qū)動(dòng)模塊。該系統(tǒng)即采用字符設(shè)備驅(qū)動(dòng)。在系統(tǒng)內(nèi)部,I/O設(shè)備的存/取通過(guò)一組固定的入口點(diǎn)來(lái)進(jìn)行,具體到Linux系統(tǒng),設(shè)備驅(qū)動(dòng)程序所提供的這組入口點(diǎn)由一個(gè)文件操作結(jié)構(gòu)file_operation來(lái)向系統(tǒng)進(jìn)行說(shuō)明。該系統(tǒng)的驅(qū)動(dòng)函數(shù)需要提供3個(gè)函數(shù)調(diào)用,read函數(shù)用于讀取DDS運(yùn)行狀態(tài),write函數(shù)用于向DDS寫(xiě)入?yún)?shù)和波形數(shù)據(jù),ioctl函數(shù)用于復(fù)位/啟動(dòng)/停止DDS。另外還需要打開(kāi)(open)和關(guān)閉設(shè)備函數(shù)(close)。File_operatio的定義如下:
   
    驅(qū)動(dòng)程序在wave_ioctl,wave_wirte,wave-read等幾個(gè)函數(shù)中具體實(shí)現(xiàn)。所需的波形參數(shù)和數(shù)據(jù)通過(guò)Qt程序打包,調(diào)用write函數(shù)(對(duì)應(yīng)驅(qū)動(dòng)程序中的wave_wrtie函數(shù))一次性寫(xiě)入DDS模塊。最終將驅(qū)動(dòng)程序編譯為模塊文件(*.ko),通過(guò)命令modprobe和rmmod來(lái)加載和卸載驅(qū)動(dòng)模塊。

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



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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产在线拍偷自揄拍精品| 在线国产精品播放| 你懂的国产精品| 久久精品123| 欧美一区二区三区久久精品| 一本色道久久综合一区| 亚洲激情在线观看| 亚洲大胆视频| 久久国产一二区| 欧美一区国产在线| 午夜精品免费视频| 校园春色综合网| 性一交一乱一区二区洋洋av| 亚洲欧美日韩精品一区二区| 亚洲欧美中文另类| 亚洲欧美在线看| 欧美一区二区三区四区夜夜大片| 欧美一区国产一区| 亚洲电影观看| 亚洲国产老妈| 亚洲精品日韩激情在线电影| 日韩视频一区| 一区二区日韩伦理片| 亚洲一区二区三| 午夜精品亚洲一区二区三区嫩草| 欧美一区二区大片| 久久精品在线| 免费视频一区二区三区在线观看| 欧美国产欧美综合| 欧美日韩免费精品| 国产乱肥老妇国产一区二 | 一区二区三区国产精品| 亚洲一区免费视频| 欧美一区二区播放| 鲁大师成人一区二区三区 | 欧美日韩美女在线观看| 国产精品视频午夜| 国产性猛交xxxx免费看久久| 悠悠资源网亚洲青| 亚洲免费观看在线观看| 亚洲在线成人精品| 久久精品国产亚洲高清剧情介绍| 91久久精品国产91性色| 在线一区二区三区做爰视频网站| 午夜精品偷拍| 免费在线观看成人av| 欧美日本一区二区三区| 国产精品视频精品视频| 黄色成人av| 99re成人精品视频| 午夜日韩av| 日韩视频一区| 欧美专区在线| 欧美精品乱人伦久久久久久 | 亚洲激情欧美| 亚洲一区在线视频| 久久久蜜桃一区二区人| 欧美日本精品| 国产亚洲午夜高清国产拍精品| 亚洲电影在线看| 亚洲一区二区三区在线观看视频 | 亚洲全部视频| 午夜亚洲视频| 免费影视亚洲| 国产欧美va欧美不卡在线| 亚洲丰满在线| 亚洲一区二区三区午夜| 亚洲精品美女在线观看播放| 午夜视频一区二区| 欧美交受高潮1| 国产婷婷精品| 日韩亚洲一区二区| 亚洲国产激情| 性感少妇一区| 欧美日韩国产精品一区| 国产综合网站| 亚洲香蕉成视频在线观看| 亚洲黄色性网站| 亚洲欧美一区二区激情| 欧美福利电影网| 国产亚洲精品久久久| 妖精视频成人观看www| 亚洲电影免费观看高清| 香蕉久久夜色精品国产| 欧美区二区三区| 伊人成人在线视频| 亚洲欧美国产毛片在线| 亚洲视频碰碰| 欧美激情视频一区二区三区在线播放| 国产亚洲一区精品| 一区二区三区视频免费在线观看| 亚洲黄色有码视频| 久久久久久日产精品| 国产精品草草| 99国产精品久久久久久久久久 | 亚洲精选一区| 久久久亚洲高清| 国产精品一区二区三区观看| 99国产精品| 99这里有精品| 欧美激情按摩在线| 国内一区二区在线视频观看| 亚洲一卡二卡三卡四卡五卡| 亚洲最新合集| 欧美破处大片在线视频| 亚洲国产精品999| 亚洲国产精品一区二区www| 久久精品国产99精品国产亚洲性色| 国产精品久久久久久久久久久久久久| 亚洲激精日韩激精欧美精品| 亚洲国产欧美在线人成| 久久久精品国产一区二区三区 | 日韩视频专区| 日韩一二在线观看| 欧美高清视频一区二区| 精品99视频| 亚洲电影在线| 男人的天堂亚洲在线| 亚洲高清中文字幕| 亚洲区一区二区三区| 欧美va亚洲va香蕉在线| 伊人春色精品| 亚洲精品九九| 欧美精品一区在线发布| 亚洲精品在线一区二区| 亚洲最新合集| 欧美三级小说| 亚洲一区二区视频在线观看| 午夜精品成人在线| 国产精品中文字幕欧美| 午夜精品久久久久| 久久精品九九| 黑人巨大精品欧美一区二区| 亚洲第一毛片| 欧美大片在线看| 亚洲看片网站| 亚洲一本视频| 国产美女诱惑一区二区| 欧美一区二区视频网站| 久久久欧美一区二区| 在线日韩电影| 99精品99| 国产精品久久一区主播| 欧美一级在线视频| 免费观看不卡av| 亚洲精品综合久久中文字幕| 亚洲一区二区欧美| 国产女同一区二区| 亚洲国产aⅴ天堂久久| 欧美国产综合| 亚洲天堂成人| 久久久久久久久久久久久女国产乱| 伊人久久亚洲影院| 99热在这里有精品免费| 国产精品久久久久久久久久ktv| 香蕉乱码成人久久天堂爱免费| 久久婷婷久久| 亚洲精品在线免费| 亚洲欧美综合v| 激情偷拍久久| 一区二区三区高清视频在线观看| 国产精品香蕉在线观看| 亚洲第一黄色网| 欧美日韩系列| 欧美中文在线字幕| 欧美久久成人| 性视频1819p久久| 欧美精品乱人伦久久久久久 | 99riav国产精品| 国产欧美精品一区| 亚洲毛片在线观看.| 国产精品无码永久免费888| 亚洲国产精品成人久久综合一区| 欧美日韩国产不卡| 小辣椒精品导航| 欧美精品一区二区蜜臀亚洲| 亚洲免费一区二区| 欧美高清在线观看| 亚洲自拍偷拍色片视频| 欧美波霸影院| 亚洲欧美精品suv| 欧美精品成人| 欧美在线精品一区| 欧美午夜精品久久久| 亚洲第一狼人社区| 国产精品一区久久久久| 亚洲精品一区二区在线| 国产无一区二区| 在线视频亚洲一区| 激情亚洲一区二区三区四区| 亚洲自拍偷拍一区| 亚洲韩国日本中文字幕| 久久国产黑丝| 9久re热视频在线精品| 蜜桃伊人久久| 欧美一区二区三区日韩视频| 欧美精彩视频一区二区三区| 久久精品国产久精国产思思| 国产精品久久午夜| 中文精品视频|