当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种基于DDS和Qt的“所见即所得”波形发生器

0 引言
    随着电路设计的多样化,电路测试也对信号源提出了更高的要求。传统的信号源只能产生几种固定的波形,灵活度较差。任意信号发生器(AWG)很好地满足了这个要求,它不仅可以输出标准信号,而且可以方便地产生任意波形,在测控、通信,医疗等领域有着广泛的应用。任意信号发生器通常采用直接数字频率合成(direct digital frequency synthesizer,DDS)技术实现。DDS技术是J.Tiemev在1971年首次提出的一种以全数字技术,它从相位概念出发直接合成所需波形的一种新的合成原理。Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立图形用户界面所需的所用功能。Qt是完全面向对象的,模块化程度非常高,很容易扩展,并且允许真正地组件编程。  Qt具有优良的跨平台特性,支持多种系统和平台,包括Windows系统,所有的UNIX系统以及嵌入式系统等。Qt遵循GPL(general public lice-nse)协议,开放主要的源代码,用户可以在GPL的规定下自由添加新特性。

1 DDS模块的设计
1.1 DDS在FPGA中的实现

    DDS由相位累加器,波形存储器,D/A转换器,低通滤波器等部分组成。该系统的DDS模块根据需要做了适当的修改。其结构框图如图1所示。


    (1)增加了通信接口电路和DD8控制模块用于接收用户数据和控制DDS的运行状态。
    (2)基准时钟采用5 MHz,经过可控分频器分频后作为DDS的时钟信号,周期分辨率最高可达200 ns(即分频为1)。
    (3)相位累加器的频率控制字固定为1,相位控制字固定为0。
    (4)波形存储器采用RAM,可以写入用户自定义的波形数据以产生任意波形,其地址宽度设置为11 b,这样存储深度可达2K点。
    (5)电平偏移电路用于消除D/A输出信号中叠加的无效直流分量,对于有效的直流分量会保留。
1.2 通信接口及控制寄存器的设计
   
DDS控制寄存器控制整个DDS模块的运行参数和状态,并通过通信接口接收来自ARM的数据。根据需要共设置了8个寄存器,地址从O~7。其功能和分配如表1所示。


   表1其中:
    (1)0~3 B存储分频参数,占用32位,因此分频范围为1~232。
    (2)4~5 B存储相位累加器的参数,用于控制波形点数和触发模式,其各位的含义如表2所示。

[!--empirenews.page--]
    (3)6 B只使用了最低位,为1启动DDS,为0则停止DDS。
    (4)地址7是一个虚地址,并不对应着实际的物理寄存器,而是与相位累加器组合指向RAM的某一个单元,通过对地址7的写操作就间接的实现了对整个RAM的操作,这样大大简化了对DDS的控制操作。
1.3 电平偏移及放大电路
   
电平偏移及放大电路用于消除输出信号中叠加的无效直流分量(允许有效直流量输出)和调整信号增益,其电路图如图2所示。


    根据图2电路有:
   
    式中:Rv是R4两部分的并联电阻,当
   

2 Qt程序设计
2.1 GUI设计

    GUI(图形用户界面)是人机交互的窗口,GUI的设计直接关系到产品的可操作性,是软件设计中非常重要部分。考虑到触摸屏面板的空间有限,因此控件(Widgets)的设计尽量紧凑。该系统的GUI设计见图3。


    左侧为工具栏,右侧黄色区域为绘图区。绘图区提供了滚动条,用于绘制超出屏幕范围的波形。可以绘制较长的序列信号。工具栏从上到下分为绘图模式选择区,波形输出设定区,时间设定区及清屏和退出按钮。波形的绘制只允许从左向右进行,一个时刻只对应一个数据点;已绘制波形允许修改,修改过程中自动变成红色,修改完毕自动变成默认颜色。
2.2 Qt编程原理和方法
   
Qt程序设计采用面向对象和事件驱动的方法,整个GUI程序划分为两个类,其中主窗口为一个类,类名为MainWindow,继承自Qt的QMa-inWindow类,它提供了工具条(toolbar)和一个主窗口(mainwindow);另一个类是DrawWidget,提供了一个绘图区域,有4种事件,分别为触摸笔按下(mousePressEvent),移动(mouseMoveEvent),松开(mouseReleaseEvent)和绘图区重绘事件(paintEvent)。同时提供了处理波形的函数waveProcess和调用底层驱动的接口。滚动条是通过QScrollView类提供的视图功能来实现的。延迟输出功能通过Qtimer类来实现,延迟范围0~999 s。触摸笔的3个事件的发生顺序和处理过程见图4。

[!--empirenews.page--]


    信号/槽机制是Qt的一个中心特征,用于对象间的通讯。绘图事件(paintEvent)采用双缓冲机制。双缓冲技术是一种GUI编程技术,它指的是在一个不在屏幕上的位图上渲染一个物件并把此位图拷贝到屏幕上,常用于消除闪烁和提供一个快速用户界面。该程序采用了Qpixmap类来实现双缓冲。
2.3 驱动程序设计
   
Linux设备驱动程序是系统内核的一部分,运行于内核态。其可以以两种方式被编译和加载:直接编译进Linux内核和编译成一个可加载和删除的模块,通过modprobe/insmod和rmmod来加载和卸载驱动模块。该系统即采用字符设备驱动。在系统内部,I/O设备的存/取通过一组固定的入口点来进行,具体到Linux系统,设备驱动程序所提供的这组入口点由一个文件操作结构file_operation来向系统进行说明。该系统的驱动函数需要提供3个函数调用,read函数用于读取DDS运行状态,write函数用于向DDS写入参数和波形数据,ioctl函数用于复位/启动/停止DDS。另外还需要打开(open)和关闭设备函数(close)。File_operatio的定义如下:
   
    驱动程序在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)。



4 结语
   
任意波形发生器是现代电子技术的一个新发展,本文给出了一种基于DDS和Qt的任意波形发生器的整体设计方案,分析了DDS在FPGA中的实现和Linux下Qt程序的设计。该设计最大的特点是“所见即所得”,即绘制何种波形就可立即产生何种波形,非常直观,从而以满足各种电路测试,通信等领域快速产生任意波形信号的要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭