当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种基于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程序的设计。该设计最大的特点是“所见即所得”,即绘制何种波形就可立即产生何种波形,非常直观,从而以满足各种电路测试,通信等领域快速产生任意波形信号的要求。

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

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭