




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江江 苏苏 科科 技技 大大 学学 本本 科科 毕毕 业业 设设 计 论文 计 论文 学 院 电子信息学院电子信息学院 专 业 电子信息科学与技术电子信息科学与技术 学生姓名 叶华叶华 班级学号 0740306223 指导教师 陈迅陈迅 二零一一年六月 江苏科技大学本科毕业论文 基于基于 DDS 技术的任意波形发生器技术的任意波形发生器 A DDS Based Arbitrary Waveform Generator 江江 苏苏 科科 技技 大大 学学 毕业设计 论文 任务书毕业设计 论文 任务书 学院名称 学院名称 电子信息学院电子信息学院 专专 业 业 电子信息科学与技术电子信息科学与技术 学生姓名 学生姓名 叶华叶华 学学 号 号 07403062230740306223 指导教师 指导教师 陈迅陈迅 职职 称 称 副教授副教授 毕业设计 论文 题目 毕业设计 论文 题目 基于 DDS 技术的任意波形发生器 毕业设计 论文 内容及要求 包括原始数据 技术要求 达到的指标和应做的实验等 采用 MCU 和 FPGA 技术 设计基于 DDS 技术的任意波形发生器 1 要求 a 利用 FPGA 完成 DDS 波形产生的核心电路 b 利用单片机进行人机接口设计 c 输出信号波形 正弦 方波 三角 锯齿 和 任意波形的产 生 d 输出信号频率 1Hz 2MHz 输出幅度 Vp p 100mV 5V e 可以利用 PC 机通过串口或者 USB 口将任意波的数据传 给信号发生器 f 信号发生器具有键盘和 LCD 显示面板 一 一 完成后应交的作业 包括各种说明书 图纸等 1 毕业设计论文一份 不少于 1 5 万字 2 外文译文一篇 不少于 5000 英文单词 3 程序清单 4 电路原理图 三 三 完成日期及进度 自 11 年 2 月 21 日起至 11 年 6 月 26 止进度安排 1 2 月 21 日至 3 月 14 日 了解课题内容 撰写开题报告 准备相关知识 2 3 月 15 日至 3 月 21 日 听专题讲座 3 3 月 22 日至 4 月 4 日 系统设计 4 4 月 5 日至 5 月 16 日 单元电路设计与调试 5 5 月 17 日至 5 月 23 日 系统调试与测试 6 5 月 24 日至 6 月 26 日 撰写毕业设计论文 答辩 四 主要参考资料 包括书刊名称 出版年月等 1 胡大可 MSP430 系列单片机 C 语言程序设计与开发 北京 航空航天大学出版社 2003 1 2 魏小龙 MSP430 系列单片机接口技术及系统设计实例 北京 航空航天大学出版社 2002 11 3 杨晓慧 杨旭 FPGA 系统设计与实例 人民邮电出版社 2010 01 4 王传新 FPGA 设计基础 高等教育出版社 2007 9 系 教研室 主任 签章 年 月 日 学院领导 签章 年 月 日 江苏科技大学本科毕业设计 论文 I 摘摘 要要 随着电子信息技术的发展 对各种数字模拟信号需求也更加复杂和多样化 任 意波形发生器 AWG 的应用变得不可或缺 本文提出了一种基于 FPGA 设计的采用 DDS 技术任意波形发生器的设计方法 设计的任意波形发生器除了可以等间隔步进 调节频率外 还可以改变波形的采样点数 该任意波形发生器支持上位机或其他设 备通过串行通信或其他方式进行控制和数据传输 在保留产生正弦 矩形 三角等 基本波形的前提下可以输出任意波形 任意波形的来源可以是发生器自身微控制器 用函数生成 也可来至于上位机或其他设备的数据 在本设计中 还提出了一种控 制器和发生器主机分离的设计思路 使得人机交流更加方便和人性化 跟传统的函 数发生器或任意波形发生器相比 本设计有控制简单方便 任意波形来源丰富 产 生的波形稳定度高 频率稳定 分辨率高等诸多优点 关键词 关键词 直接频率合成 DDS 任意波形发生器 AWG 相位累加器 数模转换 器 江苏科技大学本科毕业设计 论文 II Abstract With the development of electronic information technology the required of the digital and analog signals is more complex and diverse arbitrary waveform generator AWG of the applications become indispensable In this paper we present a method which FPGA Based and using DDS technology arbitrary waveform generator design In addition to the design of the arbitrary waveform generator can adjust the frequency spaced steps but also can change the waveform of the sampling points The arbitrary waveform generator to support the serial communication or other means to control and data transfer from the host computer or other device Retain the sine rectangle triangle and other basic premise of the waveform can be output any waveform The source can be arbitrary waveform generator generates its own micro controller with a function but also to regard the host computer or other device data In this paper we also raised a host controller and a separate generator design ideas making human computer communication more convenient and user friendly Unlike traditional function generator or arbitrary waveform generator compared to the control of simple design a rich source of arbitrary waveforms the resulting waveform with high stability frequency stability and high resolution advantages Key words direct digital synthesis DDS arbitrary waveform generator AWG phase accumulator DAC 江苏科技大学本科毕业设计 论文 III 目目 录录 第一章第一章 绪论绪论 1 1 1 1 研究背景 1 1 1 1 国内外现状 1 1 2 任意波形发生器原理 2 1 3 DDS 基本原理 2 1 4 本文的主要内容 3 第二章第二章 任意波形发生器设计方案任意波形发生器设计方案 4 4 2 1 任意波形发生器系统组成 4 2 2 改进后的 DDS 模块及工作原理 5 第三章第三章 波形发生器的主体设计波形发生器的主体设计 7 7 3 1 FPGA 电路设计 7 3 1 1 PLL 和 RAM 模块的定制 8 3 1 2 通讯模块 9 3 1 3 寄存器控制器模块 10 3 2 单片机控制电路设计 10 3 2 1 用户接口模块 11 3 2 2 UART 模块 12 3 2 3 2 4G 无线模块 13 3 2 DAC 输出模块及滤波电路的设计 14 第四章第四章 手持式控制终端设计手持式控制终端设计 1717 4 1 手持式控制终端的硬件选择 17 4 2 用户界面的设计 18 4 2 1Put Gui Control 函数 18 4 2 3Gui Selection Form 函数 18 4 2 4Gui DropdownMenu 函数 19 4 3基本波形控制界面 20 4 4 触摸屏的输入校准 20 4 5手绘波形输入界面 21 4 5 1 手绘波形输入 21 4 5 2 手绘波形输出 22 4 6其他任意波形的产生 22 4 6 1 调制波形输出 23 4 6 2 合成波形输出 23 第五章第五章 上位机软件设计上位机软件设计 2525 5 1 上位机波形图形化显示 25 5 2 上位机与发生器间的通讯 27 江苏科技大学本科毕业设计 论文 IV 5 3 上位机波形数据的导入 28 结论结论 3030 6 1各项指标参数 30 6 2资源利用情况 31 6 3存在的问题 31 致致 谢谢 3232 参参 考考 文文 献献 3333 附录附录 1 1 江苏科技大学本科毕业设计 论文 1 第一章第一章 绪论绪论 1 11 1 研究背景研究背景 任意波形发生器是一种能产生任意波形的信号源 它是近年来发展起来的一种 信号发生器 区别于早先的函数波形发生器 任意波形发生器使用到了微处理器及 数模转换器等数字器件 它不仅能完成函数波形发生器的功能产生正弦 三角 锯 齿等基本波形 还提供了方便的波形设置方法以便产生用户所需要的任意波形 随着科技研究的不断深入和领域扩展 要求用电信号模拟的信号更加复杂 多 样 例如 通信的每一步发展 都要求不同的测试信号 而生物学上的研究 也常 常需要使用神经信号和脑波信号等各种特别的电信号 材料科学 生命科学等诸多 领域 都要求用任意波形发生器产生复杂的信号 另外 现代科技要求信号更加准 确 逼真 而不仅仅满足于大体合适 因此 在不少测试方案和自动化系统的组成 中 在信号源部分已明确指定为任意波形发生器 在电类和非电类的应用中 对这 类仪器的需要都日益迫切 1 任意波形发生器目前主要有两种实现方法 一种是传统的任意波形发生器 但是 由于采用的是模拟和模数混合的方法 限制了其频率稳定度 并且系统比较复杂 另 一种是基于直接数字频率合成 DDS 技术的任意波形发生器 采用这种技术的 AWG 具有很高的频率分辨率和快速的输出频率转换能力 并且输出频率范围宽 2 1 1 11 1 1 国内外现状国内外现状 目前 市场上常见的任意波形发生器主要有普源 RIGOL 优利德 从功能上看 普源的任意波形发生器比较完善 但价格偏高 其他厂家的任意波形发生器虽然也 可以产生任意波形 但波形来源往往是较简单的波形合成 并不是真正意义上的 任意 波形 如今 虽然国内外的任意波形发生器研究上已经趋于完善 但实际 运用上还存在不尽人意的地方 例如 有的可视化界面仅能显示文字数据 不能直 接显示输出波形 有的任意波形数据的产生只能连接上位机获取 任意波形编辑功 能不够全面 仅能满足特定的场合 即使有较完善功能的任意波形发生器 但其高 昂的价格却让人望而止步 当然 在高校中对于各种任意波形发生器的研制也有不 少 例如东莞理工学院的可视化多功能 DDS 任意信号源 但其可视化也是建立在用 Delphi 来开发图形上位机软件的基础上的 3 江苏科技大学本科毕业设计 论文 2 1 21 2 任意波形发生器原理任意波形发生器原理 在实验或科研中 除了经常使用一些规则的波形如正弦波 方波 三角波 锯 齿波之外 很多时候也会需要用到一些不规则的信号 如附加谐波的原始波形 两 个信号的叠加波形 任意脉冲 噪声等 以前 为了获得这些不规则信号 往往需 要专门设计电路或使用特定的设备 这样一来就会增加了不必要的时间和成本 而 随着任意波形发生器 AWG 的出现和使用 这一问题得到了有效地解决 如今 AWG 的设计方法有好几种 其中使用最多的还是基于 DDS 技术 而主控芯片有的 采用单片机 MCU 有的采用现场可编程门阵列 FPGA 这两种方法各有优缺点 1 31 3 DDSDDS 基本原理基本原理 DDS 直接数字频率合成 技术是从相位概念出发直接合成所需波形的一种频率合 成技术 它需要以一个高精度的固定频率时钟作为参考时钟源 通过数字信号处理 技术产生一个频率和相位可调的输出信号 DDS 的主要组成部分是累加器 波形存 储器 ROM 和 D A 转换器 累加器和波形存储器的位数决定了 DDS 的最小步进和由相 位截断误差所引入的杂散 4 传统的频率合成技术由于波形精度低 频率稳定性差 等缺点 已经不能满足许多实际应用的需要 随着这种具有相位连续 频率分辨率 高 本设计为 1 512 频率转换速度快 本设计为 25ns 和良好的可重复性等优点的 DDS 技术的兴起 AWG 的设计也有了新的突破 图 1 1 DDS 原理框图 从本质上来说 DDS 其实就是对参考时钟作除法运算 5 但在 FPGA 中 如果直 接进行除法运算的话 是很耗用时间和逻辑单元的 因此 如图 1 1 所示 6 在 DDS 的设计中使用了一个累加器和一个相位寄存器构成的相位累加器对频率控制字 进行累加 然后用相位累加器的输出对波形储存器进行查表 则输出频率为 1 1 N CCWO fff2 频率控制 字 fCW 累加器 相位寄 存器 波形查 找表 DACLPF 波 形 输 出 N 基准时 钟 fc 江苏科技大学本科毕业设计 论文 3 其中为频率控制字 为参考时钟源 N 为累加器字长 当时 可得到 CW f C f1 CW f 频率分辨率 N CO ff2 1 41 4 本文的主要内容本文的主要内容 本文提出的这种方案中 采用的是以 FPGA 为主 MCU 为辅的新设计思路 在保 证了输出波形转换速率快 频率分辨率高的前提下 控制起来方便简单 在任意波 形的产生上更是灵活 并且配套设计出了相应的上位机和手持式控制终端 为跨领 域应用提供了扩展的可能性 下面的章节中 将分别为您介绍本设计所采用的 DDS 技术的基本原理 系统硬 件电路的设计 软件编程的实现方法和各部分模块参数指标及成果展示 江苏科技大学本科毕业设计 论文 4 第二章第二章 任意波形发生器设计方案任意波形发生器设计方案 2 12 1 任意波形发生器系统组成任意波形发生器系统组成 本方案中的任意波形发生器总共由三部分组成 波形发生器 手持式控制终端 上位机软件 如图 2 1 所示 手持式控制终端 上位机软件 波形发生器 图 2 1 任意波形发生器系统框图 其中 波形发生器是任意波形发生器的主体 它本身就是一台功能完善的函数 发生器 可以产生基本波形 而如果波形发生器需要输出任意波形的话 就需要从 手持式控制终端或上位机处获取任意波形数据 可以说 波形发生器加上手持式控 制终端才是一台完整的任意波形发生器 之所以要设计一个手持式控制终端 是因为产生任意波形的话一般都需要设置 许多参数 在传统的台式仪器面板上进行操作的话有诸多的不便 将用户控制面板 与仪器分开设计成手持式控制终端之后 操作变得方便和人性化 而本设计中 控 制终端采用的是触摸屏的控制输入方式 无论是基本波形参数的设置还是任意波形 的手绘输入 都变得简单方便 当然 即使手持式控制终端控制发生器可以完成所 有功能了 但设计时还是在波形发生器保留了简单的用户面板 以便用户在不使用 手持式控制终端的情况下也能便捷的通过波形发生器来获取常用的几种基本波形 除了手持式控制终端之外 本方案还将设计一个配套的上位机软件 只要将波 形发生器与上位机连接起来 通过上位机用户界面 用户同样可以控制波形发生器 输出所需波形 作为任意波形发生器的扩展部分 上位机的一个重要功能就是将文 本形式的数据转换成合适的波形数据后传输给任意波形发生器 江苏科技大学本科毕业设计 论文 5 2 22 2 改进后的改进后的 DDSDDS 模块及工作原理模块及工作原理 考虑到在本方案中 发生器产生的目标波形的采样点数和波形数据都不是固定 的值 因此 图 1 1 中的 DDS 结构就不太适合在本设计中使用了 对此作出了相应 的改变之后 得到了如图 2 2 所示的 DDS 原理框图 图 2 2 本设计中 DDS 原理框图 和图 1 1 的原理差不多 相位累加器在参考时钟源的作用下 不断的以 fCW S 的 步进进行累加 累加器的溢出速度就是 DDS 的输出频率 fO了 7 然后用 fO对波形查 找表进行查表和更新 DAC 输出数据 查表的范围为 S 这样一来 DAC 输出波形通过 一个低通滤波器之后就可以得到一个频率为 fCW的波形了 由于波形查找表的查表方 式是逐点的 完全可以通过更新波形查找表的内容去达到输出任意波形的目的 需 要注意的是 因为 fo来至于累加器的溢出 所以相位累加器的位数 N 需要满足 2N 2 fCW S 以便相位累加器溢出后剩余位数可以继续对下次值进行累加 而不会 产生丟码现象 相位累加器部分程序如下 P0 PROCESS CLK IN VARIABLE COUNT STD LOGIC VECTOR 27 DOWNTO 0 VARIABLE CLK STD LOGIC BEGIN IF CLK IN EVENT AND CLK IN 1 THEN IF COUNT 0100110001001011010000000000 THEN CLK NOT CLK COUNT COUNT 0100110001001011010000000000 END IF COUNT COUNT FRE IN END IF 频率控制 字 fCW 相位累加器 N 波形查 找表 DACLPF 采样点数 控制字 S 波 形 输 出 参考时 钟源 fC fO 江苏科技大学本科毕业设计 论文 6 CLK OUT20mA 输出 且输出阻抗高达 300k 内部 还含有一个带温度补偿的 1 2V 电压基准源 11 由于该 DAC 芯片的输出方式是差分电流型 为了得到一个电压型输出 还需要 在 DAC 模块输出端接一个高速运放进行电流到电压的处理 这里参考了康芯公司的 KX AD2 模块的电路 得出了如图 3 8 所示的 DAC 输出电路原理图 其中 调节可 调电阻器 R4 可以在一定范围内调节输出电压基准 但不宜过高 否则会使输出波形 失真 运放采用的依然是 TI 公司的 THS4001 电压反馈放大器 THS4001 带宽增益为 270MHz 2 5V 到 15V 宽的工作电压范围 适合用来作为本设计中 DAC 输出信号 的中间级调理 图 3 8 DAC 输出模块原理图 滤波电路采用的是一阶有源滤波 选用的运放是 OPA603 OPA603 依旧是 TI 公 司生产的高速运放 与 THS4001 不同的是 OPA603 是电流反馈放大器 相比较而言 电流反馈放大器在增益带宽和低失真上的性能优于电压反馈放大器 OPA603 的带宽 江苏科技大学本科毕业设计 论文 15 增益为 100MHz 压摆率为 1000V us 可以用它来完成一个本设计需要的 10MHz 低通 滤波器 根据一阶 RC 滤波的公式 3 1 RCf dB 21 3 只要取 R 160 C 100pF 就可以得到所需的截止频率了 当然 OPA603 在这里除了担负滤波的作用之外 还负责对 DAC 输出波形进行偏 置 因为 THS5651 只能输出 0 1 2V 的信号 经中间级调理之后输出范围也只能在 0 4V 范围内调整 是无法获得一个负电平信号的 因此 设计中将经中间级调理之 后 DAC 最大输出调整为 2V 在 OPA603 上给予输入一个 1V 的偏置 如果将 DAC 转换 数据为 511 时定义成 0 电平 当 DAC 转换数据在 0 1023 间变化时 就可以得到一个 在 1V 1V 间变化的信号了 但要想输出峰峰值达到 5V 的要求 在设计 OPA603 滤波 电路时还需将增益设定为 G 5 按照设定的参数 在实物测试中无法获得准确的增益 这里有一个方法可以方 便 准确的调整偏置比和增益 先将 DAC 输出保持在 1023 的数据转换值 既最大输 出值 调节图 3 8 DAC 输出模块中的 R4 使输出电平为 2 5V 再将 DAC 输出保持在 511 的数据转换值 既定义中的 0 电平 调节图 3 9 中低通滤波器的偏置电阻 R8 使输出电压为 0 这样一来 DAC 转换数据范围从 0 到 1023 时 在滤波器输出端 得到的就是一个 2 5V 到 2 5V 变化的信号了 图 3 9 低通滤波器原理图 为了达到数字可控增益输出和可调偏置比 仅靠以上两个电路时不行的 数字 江苏科技大学本科毕业设计 论文 16 可控增益可通过一个电阻权网络改变运放的反馈电压或 DAC 的电压基准来控制电路 增益 12 数控可调偏置比则可用一个 AD 的输出电压来调节减法器的反相端电压来 达成 江苏科技大学本科毕业设计 论文 17 第四章第四章 手持式控制终端设计手持式控制终端设计 4 14 1 手持式控制终端的硬件选择手持式控制终端的硬件选择 手持式控制终端的核心微控制器采用的是 ST 公司的 STM32F103VE 它是一款专 为要求高性能 低成本 低功耗的嵌入式应用专门设计的微处理器 STM32F103XX 增强型系列使用高性能的 ARM Cortex M3 32 位的 RISC 内核 工作频率为 72MHz 内置高速存储器 STM32F103VE 为 512K 字节的闪存和 64K 字节的 SRAM 丰富的增强 I O 端口和联接到两条 APB 总线的外设 所有型号的器件都包含 2 个 12 位的 ADC 3 个通用 16 位定时器和一个 PWM 定时器 还包含标准和先进的通信接口 多 达 2 个 I2C 和 SPI 3 个 USART 一个 USB 和一个 CAN 要完成控制终端设计 外设 上还需要接一个触摸彩屏 一片 SPI FLASH 一个 2 4G 无线模块 之所以选择 ARM7 作为控制核心 而不选用 MSP430 和 8051 等通用型单片机或更 高级的 ARM9 ARM11 是考虑到以下因素 通用型单片机系统主频较低 无法流畅的控制触摸屏显示 终端需要处理大量的数据 会占用大量的 RAM 而通用型单片机没有足够的资源 ARM9 核心板价格比较贵 使用 ARM9 来开发手持式控制终端成本太高 ARM7 的片内资源已足够使用 在不嵌入系统的情况下 编程相对 ARM9 ARM11 简 单 对于触摸显示屏的控制 本设计使用了专门的控制芯片 如使用 HX8312 控制彩 屏显示 用 ADS7846 控制触摸屏信息采集 其中 HX8312 是基于单片机驱动的 240 320 点阵图形显示 LCD 控制器 内部包括门极驱动和电源驱动 支持本设计中 使用的 2 2 寸 264144 色 TFT 通过 HX8312 控制 TFT 即使不嵌入操作系统 STM32F103VE 依然能轻松胜任图形界面的显示 而触屏使用的是四线触摸屏 它包 含两个阻性层 其中一层在屏幕的左右边缘各有一条垂直总线 另一层在屏幕的底 部和顶部各有一条水平总线 为了在 X 轴方向进行测量 将左侧总线偏置为 0V 右 侧总线偏置为 VREF 将顶部或底部总线连接到 ADC 当顶层和底层相接触时即可作 一次测量 为了在 Y 轴方向进行测量 将顶部总线偏置为 VREF 底部总线偏置为 0V 将 ADC 输入端接左侧总线或右侧总线 当顶层与底层相接触时即可对电压进行 江苏科技大学本科毕业设计 论文 18 测量 同样 通过使用 ADS7846 控制四线触摸屏 只要用 SPI 方式控制 ADS7846 仅发送几个简单的命令 就可以轻松获取 X 轴和 Y 轴测量值 然后分别减去偏置量 和乘以一定系数之后 就可以获得准确的触屏点击坐标了 具体的触摸屏校准方法 在下面章节将会予以介绍 4 24 2 用户界面的设计用户界面的设计 由于 STM32F103VE 的开发是在不嵌入系统的情况下进行的 用户界面的开发就 无法使用 QT 图形界面编辑工具了 为了能使用户界面的开发能顺利进行 并且降低 后期的编程难度 在编写用户界面前 需先编写了一套用以用户界面编辑的 API 函 数 这些 API 函数包含了编辑用户界面的所需的各种控件 并赋予其方便的使用方 法 虽然前期需要花费大量时间去编写这些函数 但后期编辑用户界面时就可以把 主要精力放在程序整体功能的设计上而不需要过于关注技术细节了 虽然不像可视 化编程环境那样 即见即所得 的编程方式来得方便 但使用这些函数来 积木块 般搭建出各种用途丰富 功能灵活的图形化界面还是很容易的 下面将介绍设计 中图形界面编辑常用到几个函数 4 2 14 2 1Put Gui Control Put Gui Control 函数函数 这个函数的作用是在窗口上显示相应的可视化控件 控件类型 显示位置及其 他的信息都包含在结构体 Obejet 中 例如 要在窗体的 20 40 位置显示一个按钮 那么在调用这个函数之前只需 将相应的值赋给 Obejet 类型的某个变量进行传递就可以了 在目标区域就会显示出 一个带名称 需对 pname 赋值才会显示名称 的按钮来 同时控件变量中还包含 了对应触摸区域的值 便于在执行 Touch 事件时判断此按钮是否被按下 可以说 这个函数是图形界面编辑的子基础 绝大多数用户界面都离不开此函 数 目前 Put Gui Control 已经可以显示包括普通按钮 文本框 组合框 复选 框 选项按钮 滚动条等在内的常用图形控件 4 2 24 2 2Gui Touch Get Gui Touch Get 函数函数 由于控制终端的控制操作方式为触摸屏输出 所以这个函数成为了获取外部信 息的重要手段之一 这个函数的使用同样离不开结构体 Obejet 也就是控件信息 和 Put Gui Control 函数一样 它的调用参数也是 Obejet 类型的变量 通过判断 touch en 的值来决定是否将该控件加入触摸事件集中 当触发条件达成之后返回一 江苏科技大学本科毕业设计 论文 19 个下标值来完成触摸有效的确认 4 2 34 2 3Gui Selection Form Gui Selection Form 函数函数 Gui Selection Form 函数是在 Put Gui Control 和 Gui Touch Get 函数的 基础上完成的 它的作用是在主界面窗口上弹出一个单选会话框 当有效点击某个 选项之后返回对应的值并退回到前一个界面 它的使用方法很简单 仅需定义一个 FormShow Type 窗口 类型的变量用来储存该窗口的基本显示信息及选项名称 然后 将这个变量作为该函数的形参进行调用 需要注意的是 这个弹窗最多只能同时显示 8 个选项按钮 当按钮数小于 5 个 时 函数会自动将按钮进行单排显示 多于 4 个时则双排显示 弹窗的显示起始位 置 标题 按钮名称 数量和大小都是需要用户设定的 但窗口的大小 按钮的分 布 触摸事件等都不需要用户干预 4 2 44 2 4Gui DropdownMenu Gui DropdownMenu 函数函数 Gui DropdownMenu 函数的基本功能和 Gui Selection Form 函数的差不多 不同的是 Gui DropdownMenu 函数显示的是下拉菜单 它可以通过直接递归调用在 当前下拉菜单中产生子下拉菜单 它的使用和 Gui Selection Form 函数一样灵活 为了体现出层次感 在显示子下拉菜单时 上一层的下拉菜单的颜色都会变暗 并 且触摸区域被屏蔽掉 和单选会话框必须返回一个有效值不同 下拉菜单可以返回 一个空值 使用过程中 可以通过点击界面空白处 直接跳出所有的下拉菜单 江苏科技大学本科毕业设计 论文 20 图 5 1 用户界面中下拉菜单的效果图 江苏科技大学本科毕业设计 论文 21 4 34 3基本波形控制界面基本波形控制界面 控制终端上的基本波形控制界面和上位机用户界面功能上差不多 都可以很方 便的选择基本波形的类型 采样点数 和设置波形的频率 幅值 偏置及占空比 不同的是 控制终端与发生器的通讯方式有多种 SPI UART 2 4G 可以选择 而 且波形更新设成了 自动 和 手动 两种方式 在 自动 模式下 只要对界面 里的任一项数据进行更改 控制终端就会立即将更改后的信息发送至发生器 在 手动 模式下 所有更改的信息 会在用户点击 数据更新 按钮之后才会一次 更改 这两种模式都可以通过长点 数据更新 按钮来进行切换 便于在不同的环 境下灵活的控制任意波形发生器的波形输出 图 5 2 基本波形控制界面设置偏置电压效果图 4 44 4 触摸屏的输入校准触摸屏的输入校准 要想从触摸屏手绘输入准确的波形数据 首先就需要对触摸屏的输入进行校准 和消抖 和普通机械按键一样 触摸屏的点击和释放都会产生几十毫秒的抖动 但 和按键的电平都不不一样的是 触摸屏的抖动通过 AD 转换之后成为了数字量的抖动 而判断数字量是否抖动比单纯的电平高低的判定复杂得多 尤其是手绘图形时 是 无法通过一个简单的函数判定 两个触摸返回值间的变化是移动矢量的有效变化还 是触摸移动过程中造成的抖动 通过对大量的采集到的触摸返回信息进行分析 得 以找出了其中一些数据变化的规律 进而初步解决了触摸屏的消抖问题 江苏科技大学本科毕业设计 论文 22 这是没消抖前以大概 5ms 等间隔采集到的在触摸屏上画斜线的 x 轴数据 13 30 75 46 45 47 23 56 46 45 46 47 46 47 47 47 47 45 46 47 47 46 46 78 78 7 8 64 79 78 78 79 81 78 79 79 79 79 80 79 103 79 79 78 81 79 79 79 79 81 80 123 12 2 124 120 124 123 122 125 123 124 124 124 124 125 178 154 123 103 129 从数据中可以看出 在整个采集过程中 抖动点都会随机出现 只不过在起始 处和结束点处居多 以此规律 得出了一个采集及处理方案 当触摸屏有点击事件 发生之后 延时 30ms 后以 5ms 左右的等间隔对触摸点进行采样 以 18 个数据为一 组进行求和 分别减去最大最小值后除以 16 数据右移 4 位 然后将处理后得到 的数据作为一个采集点返回 用此方法在触摸屏上画斜线最终得到的 x 轴数据为 48 48 49 50 51 50 52 52 54 53 55 130 132 135 134 135 136 虽然数 据依然有 3 个像素点的抖动 但已经处在可接受范围内了 4 54 5手绘波形输入界面手绘波形输入界面 手绘波形输入界面是手持控制终端最重要的一个界面 通过这个界面 用户可 以方便的实现任意波形的手绘输入 同时这个界面还集成了许多扩展功能 支持历 史波形 函数生成波形的导入及合成 同时提供了和 PC 机间数据传输和 SD 卡波形 数据导入 需移植 FAT32 文件系统 的扩展功能函数 4 5 14 5 1 手绘波形输入手绘波形输入 完成了触摸屏输入校准之后 要想在在触摸屏上 所画即所得 的方式获得波 形数据 还需要对采集到的触摸坐标数据作进一步处理 首先在界面中划出一个绘 图区域 以这一区域的中间水平线作为时间轴和零电平参考线 绘图时就可以得到 相对于水平线分布的点 将这些点连起来所经过的屏幕区域坐标采集下来减去中间 水平线的 Y 轴坐标之后 得到的数据就是所画波形的反相原始数据 再进过一定的 圆滑处理和反相放大之后 将数据传输给发生器 发生器就可以产生相应的波形信 号了 目前 手绘输入模式只支持顺序输入 即只能从左往右输入波形 这是为了防 止手绘过程中 X 轴数据回溯造成前面波形数据的改变 如图 5 3 在绘图过程中 当分多次完成曲线绘制时 很容易就会出现衔接点的离散现象 所以在完成波形绘 制之后 还需要通过 处理 菜单中的 消抖 功能将该处变得平滑 或者通过 江苏科技大学本科毕业设计 论文 23 修改 功能将该段数据重新编辑 图 5 3 手绘输入波形过程 4 5 24 5 2 手绘波形输出手绘波形输出 完成一个手绘波形的输入之后 得到的是一个幅度小于 110 像素点的波形 映 射到波形数据中就相当于一个不到最大输出范围 0 1023 1 8 的波形 因此对该波 形进行了一定比例的放大 如图 5 4 中左边的手绘输入界面 手持控制终端与发生 器进行联接后 把波形数据发送至发生器中 并示波器观察发生器的输出信号 图 5 4 中右边的波形就是用模拟示波器 YB4320 观察到的波形信号 图 5 4 手绘输出信号效果图 在波形采样点数为 32 时 输出信号的频率可调变化范围为 1Hz 2 5MHz 如图 5 4 所示的波形采样点数为 512 点 则此波形的最高输出频率是 f 80MHz 512 156 25kHz 4 64 6 其他任意波形的产生其他任意波形的产生 手持控制终端除了提供手绘波形输入之外 同时还可以拟提供调制波形 合成 波形 频谱变换等任意波形的输入输出 江苏科技大学本科毕业设计 论文 24 4 6 14 6 1 调制波形输出调制波形输出 在调制波形界面中 可以通过便捷地设置需要调制的数据和选择调制方式生成 所需要的波形 载波幅度 频率和数据位大小同样是可调的 载波频率最高可达 2 5MHz 图 5 5 分别为控制终端的调制波形界面和频移键控的输出信号效果图 而 图 5 6 是调制数据为 0 x75 时的振幅键控和相移键控输出信号效果图 图 5 5 频移键控输出信号效果图 图 5 6 振幅键控和相移键控输出信号效果图 需要注意的是 因为输出调制信号的频率或相位是变化的 如果使用模拟示波 器观察该波形 可能看到的是一个重叠的信号图像 这是因为输入触发信号无法同 步而造成的影响 针对此情况 只需要为发生器设计一个同步信号输出端 当观察 任意波形时 可将此同步信号输出接至示波器的外部触发信号输入端 就可以观察 到一个稳定显示的输出波形了 4 6 24 6 2 合成波形输出合成波形输出 合成波形也是任意波形应用中不可缺少的 尤其是在信息系统信号抗干扰研究 中 以前 如果想获得两个信号的混叠和相互作用的结果 往往需要两台信号发生 江苏科技大学本科毕业设计 论文 25 器输出信号到一台双踪示波器中 而且这台示波器还得支持对输入信号进行相应的 叠加处理功能 这样一来 此类实验不但要求高 操作起来也有诸多不便 如今 通过手持控制终端 这一系列功能得以简单实现了 如图 5 7 所示 对一占空比为 90 的三角波叠加上一个 20 的 32 次谐波 得到 了一个合成波形 如果想观察某滤波器的滤波效果 可以通过此方式产生相应的波 形从发生器输出 经过滤波器滤波后 用示波器观察比较滤波后的波形和原始输出 波形或没叠加谐波前的波形 为了更加清楚和方便地观察 在用户界面上设计了多 重波形区域 支持多个波形同时编辑和显示 并且在 处理 菜单中还提供了 FFT 分析功能 便于用户直接观察频谱分量 图 5 7 合成波形输出效果图 江苏科技大学本科毕业设计 论文 26 第五章第五章 上位机软件设计上位机软件设计 上位机软件设计平台使用的是 Visual Basic 6 0 以下简称 VB VB 是一个专 门的上位机用户界面编辑工具 即见即所得 的编程方式使得它简单易学 编程 简单 平台包含了编辑界面所需要的各种控件 哪怕是跟下位机进行通讯的串行通 讯控制 都可以方便的定制和使用 作为跟任意波形发生器配套的上位机软件 在界面上除了要设置任意波形发生 器输出波形的类型 频率 幅值 和占空比之外 还需要将存于上位机上的波形数 据下载到任意波形发生器中 因此 在正式编程时 需要在工程中添加额外的控件 步骤如下 选取菜单栏 工程 中的 部件 项 在 控件 栏里的 Microsoft Comm Control 6 0 和 Microsoft Common Dialog Control 6 0 前的复选框上打钩 确定退出设置栏之后就会在控件栏里添加了这两个控件了 Microsoft Comm Control 6 0 是负责串口通讯的控件 在使用这个控件之前需要对这个控件的属性 进行正确的设置 如波特率 校验位 数据位 停止位等都需要设置得和下位机的 UART 属性一样 否则无法正常通讯 Microsoft Common Dialog Control 6 0 是通用对话框控件 设计中使用了 它的打开对话框 为了方便波形数据的输入与查看 所以选择了 TXT 文本文件作为 波形数据文件的存储类型 考虑到波形数据的采样点数不同 为了可以匹配上位机 显示和传输至下位机 需为波形数据在 TXT 文件中的储存格式作如下定义 每个数 据都用 间隔分开 第一个数据为波形的采样点数 需要注意的是 由于在本设 计中 DAC 的分辨率为 10 位 也就是说 传输至 DAC 的数据大小的范围为 0 1023 为了防止波形数据大小溢出而造成 DAC 输出波形错误 这里需要对文本输入的数据 的大小作出一定的限制 而大部分时候 用户往往习惯将包含负数的波形数据直接 存于文本中 为了使这些波形也能正确传输至 DAC 在面板上需要多加一个用来控 制波形偏置的按钮 DC AC 5 15 1 上位机波形图形化显示上位机波形图形化显示 下面一段程序为在图形框内显示载入文本波形数据的函数 通过这个函数 用 户可以在将数据载入任意波形发生器之前直接观察波形 江苏科技大学本科毕业设计 论文 27 绘波形曲线 Private Sub PaintData Dim i As Integer Dim Y mul As Single Dim X mul As Integer Pic Curve graph Cls 清图形框 Y mul 4 Y 轴显示比例 X mul 512 datalong 10 X 轴显示比例 For i 0 To datalong 2 Pic Curve graph Line i X mul 4000 SignalData i Y mul i 1 X mul 4000 SignalData i 1 Y mul vbGreen Next i End Sub 其中 Pic Curve graph Line vbGreen 是 VB 中的画线函数 它的使用格 式为 Picture Line x0 y0 x1 y1 Color 在这里 只要分别将波形数据的下 标作为横坐标幅值作为纵坐标循环调用这个函数 就可以在图形框内显示出一条连 续的波形了 图 4 1 上位机软件界面 江苏科技大学本科毕业设计 论文 28 5 25 2 上位机与发生器间的通讯上位机与发生器间的通讯 上位机与发生器间的通讯方式采用的是串行通信 也就是人们常说的 UART 除 了设置好正确的属性之外 还需要清楚地知道发生器内的 UART 数据传输格式 才能 使上位机的数据正确地被发生器接收 发生器的 UART 数据接收格式如下图 Y H 功能 Length MSB Length LSB 0 x01DATA Length 数据头数据停止位 开始 图 4 2 UART 数据传输格式 设计中 发生器的 UART 数据接收采用的是不定长格式 前两个字节是固定头信 息 每条从 UART 接收过来的数据 只有前两个字节是 Y H 该条命令才会有效 第三个字节是功能号 它们代表的命令分别为 0 x01 设置波形频率 0 x02 设置波形的采样点数 0 x03 设置波形类型 0 x04 设置波形幅值 0 x05 发送波形数据 0 x06 设置波形偏置比 0 x07 设置波形占空比 第四和第五 个字节分别是发送数据的长度的高 8 位和低 8 位 假设现在需要发送 512 个采样点 的波形数据那么这两个字节就应该为 0 x02 0 x00 从第六个字节开始到第 6 Length 个字节都是需要传输的数据 而最后一个字节就是停止位了 由于基本波形是在发生器内产生的 所以选择波形类型时 基本波形只需要发 送一个波形编号过去就可以了 编号与波形类型的对应关系为 0 正弦波 1 方波 2 三角波 3 正锯齿波 4 反锯齿波 5 任意波 例如需要发生器输出三角波 则 可以发送该条命令 Y H 0 x03 0 x00 0 x01 0 x02 0 x01 下面给出了 VB 上设置波形幅值的部分程序 在文本框 Text SetVol 中输入 波形幅值 点击设置幅值的确定按钮之后就会调用该条函数 如程序 函数开始先 将 Text SetVol 的文本字符转换成整型存于整型变量 SignalVol 中 判断它是否 溢出 SignalVol 2500 Then SignalVol 2500 Text SetVol Text SignalVol End If Vol 1 SignalVol Mod 256 Vol 0 SignalVol 256 Mod 256 ComUart Output YH ComUart Output Chr 4 ComUart Output Chr 0 ComUart Output Chr 2 ComUart Output Vol ComUart Output Chr 0 End Sub 5 35 3 上位机波形数据的导入上位机波形数据的导入 要想将波形文件导入 需要用到 Microsoft Common Dialog Control 6 0 控 件的打开对话框功能 添加该控件的方法和波形数据的储存格式在前面已说明过了 这里就不再介绍了 点击 载入 按钮之后 会弹出一个打开对话框 通过这个对 话框找到需要添加的文件 双击或打开就可以将该文件中的波形数据加载进去 这 时用户就可以在 AWG 波形显示区域看到加载进去的波形了 如图 4 1 通过 USB 线将 PC 机和发生器联接 点击界面中的 连接 按钮建立联接 如果 联接成功 需要设置好正确的连接属性 状态栏会有相应的提示 这时只要再点击 AWG 区域中的确定按钮 就可以将波形数据传输至发生器了 如图 4 3 为通过示波 器观察到的上位机导入的波形信号 江苏科技大学本科毕业设计 论文 30 图 4 3 上位机任意波形输出效果图 江苏科技大学本科毕业设计 论文 31 结论结论 6 16 1 各项指标参数各项指标参数 1 最低输出频率 HzMHzSff N CO 001 0 5122802 27 maxmin 本设计取最低输出频率为 1Hz 2 最高输出频率 MHzMHzSff CO 5 23280 minmax 3 频率分辨率 Hzff N CO 6 02 在实际应用中为了方便调节和计算 频率分辨率往往取个整值 本设计设定的频率 步进值为 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 私募股权投资热点行业2025年深度解读:退出策略与市场前景报告
- 2025年教育行业质量评估与认证体系下的教育质量评价改革研究报告
- 巧用剪辑做画册课件
- 交通设备制造业数字化转型下的智能仓储与配送系统报告
- 巧手做寿司课件
- 左尺桡骨骨折课件
- 五年级数学(小数除法)计算题专项练习及答案汇编
- 巡逻兵进行曲课件
- 巡检工知识培训课件
- 灌肠法操作并发症
- 公司领导财务知识培训课件
- 2025年郑州银行招聘考试(行政能力测验)历年参考题库含答案详解(5套)
- 园艺生物技术应用与发展
- 子痫患者护理查房
- 2025上海市八年级升九年级数学暑假提升讲义:相似三角形压轴题(六大题型)原卷版
- 2025年工业互联网工程技术人员考核试题题库及答案
- 农行OCRM系统讲解
- 医疗护理员职业技能竞赛试题及答案
- 2025年高端美食主题餐厅餐饮服务整体外包合同
- 体育课培训课件
- 工贸安全员考试题库及答案大全
评论
0/150
提交评论