新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 一种基于DDS和Qt的“所见即所得”波形发生器

一种基于DDS和Qt的“所见即所得”波形发生器

作者:时间:2011-02-11来源:网络收藏


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


上一页 1 2 3 下一页

关键词: DDS 波形发生器

评论


相关推荐

技术专区

关闭