1、16|电子制作 2023 年 1 月电子电路设计与方案0 引言随着现代电子技术的飞速发展,直接数字频率合成DDS 技术逐渐被广泛使用,从其技术理论上看,具有灵活性高、变频速度快、变频简单等优点。从实际效果来看,变频时分辨率高,相位噪声低,电路集成度高、频率稳定等优点。该技术已经逐渐被应用到现代雷达、导航、遥感、现代仪器仪表等关键领域。使用 DDS 技术产生任意频率波形的方案主要有三种。第一种是直接使用高性能专用 DDS 集成电路芯片,比如AD9833,此种方案的优点是产生的波形频率准确,变频时分辨率高,直接使用通讯协议控制输入。缺点是,可以产生的波形类型受限,只有特定的几种,且内部配置灵活性很
2、低。第二种是使用单片机实现 DDS 技术,此种方案在低频时配置较为简单,易于实现,在中高频时配置容易受到其他模块影响,严重影响波形频率精度。第三种是基于现场可编程门阵列 FPGA 来实现,此种方案灵活性较高,配置简单,易于实现,且变频范围广,分辨率高,唯一缺点就是,浪费FPGA 内部未使用资源,造价高昂1。1 DDS 基本原理和核心设计 1.1 DDS 基本原理 DDS 技术原理框图如图 1 所示,主要有以下关键几部分组成,N 位相位累加器、频率控制字、相位控制字、ROM 查找表和时钟源等。频率控制字相位累加器查找表正弦波三角波方波.PLLDAC驱动&低通滤波clock截取高n位clock相位
3、控制字频率控制字相位累加器查找表正弦波三角波方波.PLLDAC驱动&低通滤波clock截取高n位clock相位控制字 图 1 DDS 结构原理图相位累加器在高频时钟下以频率控制字的字长K做累加。累加后的相位累加器值通过高位截取后变为相位控制字,相位控制字即为查找表的地址。在查找表中即可找到对应波形的多位数字输出值。这就是 DDS 基本工作原理。若要输出波形,将输出的多位二进制数字输出通过 D/A 转换输出对应的模拟电压信号,再通过一个低通滤波器输出平滑的曲线2。1.2 DDS 核心设计若要实现更高的频率分辨率和精度,共有两种方式,第一,将查找表中的波形数据取的分辨率更高,取样点的数据更多,这就
4、意味着增加等倍的存储空间;第二,增加相位累加器的位数。事实上,典型的 DDS 系统会使用非常“长”位数的相位累加器,比如 28 位、32 位甚至 36 位,来实现高精度和高分辨率的信号输出频率。在 FPGA 内部所使用的硬件资源来看,只是多使用几个寄存器,但是对其内部资源来讲,影响微乎其微。但是从其实际意义上看,可以大大提高其频率的精度和分辨率3。表1 不同情况下频率可调节范围和分辨率相位累加器位数f1(Hz)f2(Hz)24位7.15 12M29.8 50M28位0.45 12M1.86 50M32位0.028 12M0.116 50M表 1 中,f1为外部时钟输入经过倍频后的输出频率为12
5、0MHz,f2为外部时钟输入经过 PLL 倍频后的输出频率为500MHz,波形可调的最低频率即为频率的分辨率。如表 1 所示,相位累加器位数更高,其对应的频率分辨率越高,系统主频经过倍频后的频率越高,输出波形的上限频率越高。需要注意的是,查找表地址为 8 位,比如当 f1=120MHz时候,在不同累加器位数下,其可调的波形分辨率不同,但是 120M/28=468.75kHz 是一个临界值,当输出频率小于等于 468.75kHz 时候,输出的波形特征则可以完全还原查找表中的波形数据点;当输出的波形频率大于 468.75kHz 时候,频率越高,输出的波形无法还原查找表中的波形数据点,还原度越来越低
6、,波形特征越来越不明显。同样的对于f2=500MHz 时候,500M/28 1.95MHz 也是可以保持原查找表中波形数据点的最大频率4。基于 FPGA 的 DDS 信号发生器设计董殿国,侯文(中北大学 信息与通信工程学院,山西太原,030051)摘要:函数信号发生器作为信号源,广泛的应用于课堂教学,研究试验和工业生产等各个领域。通过MCU与FPGA的硬件结合方式,由MCU负责输入输出的人机交互控制,FPGA负责实现核心DDS技术。然后对输出的波形做相关性能测试实验,正弦波的THD计算和三角波的线性度计算。测试结果表明,该信号发生器参数可调范围宽,精度高,稳定可靠,具有一定的实用价值。同时说明
7、了MCU与FPGA联合使用的这种硬件框架是稳定可靠的,是可以应用到大部分的微控制系统中的,也为进一步应用提供了重要的参考依据。关键词:DDS;FPGA;MCU;信号发生器DOI:10.16589/11-3571/tn.2023.01.010wwwele169com|17电子电路设计与方案2 系统硬件设计 2.1 硬件整体方案 函数信号发生器的硬件系统主要包括 MCU 控制电路,FPGA 构成的 DDS 发生器、DAC 转换和低通滤波电路,及一些用于输入输出的器件等。按键输入和 LCD 输出显示主要由 MCU 负责控制,MCU 然后将输入的信号运算处理后发送给 FPGA,FPGA 根据输入的各种
8、参数在 ROM 表中寻址,同时输出对应控制的波形、频率和幅度的数字信号,最后经过 DA 转换为对应的模拟电压信号,在经过一个低通滤波器使得模拟电压信号变得平滑。2.2 硬件模块电路系统的硬件电路主要分为两个部分,一是系统主控电路,二是 DDS 信号发生器电路。系统主控电路包括以 STM32F103C8T6 为主控的最小系统板、四路用户按键输入、OLED 显示屏输出(SPI)、UART 通信连接上位机、硬件 SPI 连接 FPGA 负责信号数据传输,如图 2 所示。DDS 信号发生器电路,其中的 FPGA 模块的核心芯片为 Lattice LCMXO2-4000HC-4MG132,其模块上内置
9、8 路输出 LED 指示灯、4 路按键输入、4 路拨码输入和两位数码管输出灯资源。DAC 芯片采用 3PEAK 的高速 10 位 DAC 芯片 3PD5651E,采样速率 125MSPS,CMOS 数模转换器。本系统中采用 12MHz 的外部晶振经过 PLL 倍频为 120MHz小于 DAC 芯片的最大采样速率,符合使用要求。3 系统软件设计 3.1 MCU 程序流程设计MCU主控制器主要负责系统中各个子任务的任务调度,系统的程序流程如图 3 所示,系统上电后先对各个模块进行初始化,包括串口初始化、OLED 显示屏对应 SPI1 外设初始化、FPGA 的 SPI2 外设初始化、按键和 LED
10、输入输出初始化等。程序中共有两个自定义的中断源,串口接收中断和按键的外部中断,按键的外部中断用于改变波形的相关参数对应的各个全局变量;而串口接收中断用于接收来自上位机中的信息,一类是波形参数对应的全局变量同步和参数显示,另一类是接收自定义波形数据表,并且通过 SPI 硬件通信接口实时存入 FPGA 的 ROM 模块中。此处有一个关键问题,上位机中波形参数的改变与显示,硬件上波形参数的改变和显示器的显示、程序内部波形参数对应的全局变量,以及波形的实际输出参数,在程序的运行过程中,需要时刻保证这四个模块中波形参数数据的同步。即先判定数据的输入输出属性,在每一个输入模块中添加波形参数更新标志位,实时
11、更新程序中的全局变量,然后再根据参数对应的全局变量,随即更新参数更新来源模块之外的参数显示模块即可以实现四个模块的实时同步。在 MCU 主程序的主函数中,主任务即为循环判断波形参数的全局变量是否改变,若改变则对串口传输上位机显示、SPI2 对应的 OLED 显示屏显示、SPI1 对应的 FPGA 三个模块做刷新处理;若未改变,则在间隔时间大于 10s 时+5V+3V3100nFC4100nFC210uFC310uFC1AMS1117-3.3U1GND/ADJ1Vout2Vin3Vout4USB1GND5D+3D-2VCC1ID4+5VMCU_RXDMCU_TXD+3V3100nFC5CH340
12、EU2UD+1UD-2GND3RTS4CTS5TNOW6VCC7TXD8RXD9V310KEY1120.1uC64.7kR31kR7+3V3KEY1KEY2+3V31kR84.7kR40.1uC7KEY212KEY3+3V31kR94.7kR50.1uC8KEY312J112345678SPI2_SCKSPI2_MOSIOLED_RESOLED_DCOLED_CS+3V3+3V32kR1LED12kR2LED2LEDKEY1KEY2KEY3KEY4SPI1_CSSPI1_SCKSPI1_MISOSPI1_MOSIGNDGND+5VOLED_DCOLED_RESOLED_CSSPI2_MOSIS
13、PI2_SCKMCU_RXDMCU_TXDGNDLEDKEY4120.1uC94.7kR61kR10+3V3KEY4M1VBAT1PC132PC143PC154PA05PA16PA27PA38PA49PA510PA611PA712PB013PB114PB1015PB1116NRST17+3V318GND19GND20PB1221PB1322PB1423PB1524PA825TX/PA926RX/PA1027PA1128PA1229PA1530PB331PB432PB533PB634PB735PB836PB937+5V38GND39+3V340STM32F103C8T6图 2 系统主控电路18|
14、电子制作 2023 年 1 月电子电路设计与方案候做刷新处理来降低容错率。开始波形参数改变 或 间隔时间10s是模块初始化SPI1发送参数给FPGAUART发送参数给上位机OLED屏幕刷新否串口接收中断按键外部中断中断服务函数波形参数更新标志位更新开始波形参数改变 或 间隔时间10s是模块初始化SPI1发送参数给FPGAUART发送参数给上位机OLED屏幕刷新否串口接收中断按键外部中断中断服务函数波形参数更新标志位更新 图 3 MCU 程序设计流程 3.2 FPGA 模块设计在整个系统中,FPGA 模块主要负责 DDS 核心数字变频技术的实现。主要包括,PLL 模块、SPI 通讯接收模块、数据
15、转换模块、DDS 累加器模块、ROM 查找表模块、幅度变换模块等。总共例化了四个波形数据的 ROM,其 mif 文件通过 MATLAB 软件编写,然后调用 IP 读取。但是由于FPGA 内部 ROM 资源限制,只能采用相位截断方法取高 n为作为查询地址使用。FPGA 的 DDS 系统模块设计,主要由 SPI 通讯接收模块负责接收 MCU 传输的波形参数,包括波形类型、波形频率和波形幅度等。然后由数据转换模块负责将对应的波形类型,频率、相位、幅度转换为相应的频率控制字和相位控制字,最后将控制字直接输入 DDS 累加器模块中,相位累加器在 120MHz 的时钟信号下产生采样地址,通过波形类型选择选
16、择对应的 ROM 查找表模块。在 ROM 模块中存储有正弦波、三角波、方波等常见波形的 10 位数字信号量,根据波形类型查找对应的 10 位数字信号值并输出到幅度变换模块。幅度变换模块同时根据输入的幅度设定值来输出对应的 10 为数字信号量。FPGA 不同于 MCU 的串行运行机制,FPGA 内部是通过组合逻辑和时序逻辑所构成的并行运行机制的电路模块。所以在很多需要串行运行的模块中,就需要添加各种标志位或者状态机来实现。其中,SPI 通信接收模块、数据转换模块、幅度变换模块都有关键的完成标志位,方便开启下一级模块使用。3.3 上位机软件设计上 位 机 软 件 使 用 NI 公 司 的 Labv
17、iew 软 件 开 发,Labview 以其使用简单、图形化的编程方式、功能模块封装度高、对各类硬件采集卡和常见的标准接口适配性高等优点而收到广大工程师和相关从业者使用。通讯方式使用串行通信 UART 串口连接,波特率 115200,停止位 1 位,无奇偶校验位。为了提高调节各类参数和数据同步的响应时间,通讯协议使用自定义方式,第一位功能码,代表此时调节的参数类型,第二位到第九位为对应的参数值,使用 ASCII 字符传输,第十位为 CRC 校验位,校验数据传输。最后一位为结束字符,用于判断串口传输是否完成。上位机软件主要分为两个模块构成,一是串口的发送和接收模块,主要在系统的串口控件处发送和接
18、收相关数据;二是数据处理模块,主要将对应的信号参数数据实时转换到对应的控件显示上,或者将对应的控件显示数据编码准备发送。由于在实际测试实验中所需的实验波形多种多样,且FPGA 中数据存储资源有限,所以就需要在上位机软件中集成可以实时传输自定义波形数据的功能,这就是上位机软件中另一个主要功能,由于 Labview 软件可以直接与 MATLAB脚本做混合程序设计,所以可以先通过在 MATLAB 中生成所需要波形的 mif 数据文件,直接在 Labview 上位机中导入生成所需的波形数据,完成自定义波形数据导入功能。4 结果分析 4.1 基本功能实现信号发生器的幅度和频率等相关参数可以实现板载的手动
19、调节,同样也可以连接计算机在上位机的视图中调节使用。需要注意的是,上位机调节和板载调节并不是简单孤立的,双方在不同参数的调节过程中是同步的。4.2 性能分析以信号发生器输出正弦波为例,输出不同频率的正弦波来分析其谐波失真(THD)。在此次测量实验中,使用泰克MDO32 频谱分析仪(模拟通道带宽 1GHz、采样率 2.5GS/s)来测量信号发生器输出正弦波时,基波之外的高次谐波分量,来计算其谐波失真5:22211NnnTHDVV=(1)在实验测量中,无法计算所有的高次谐波分量,只计算了 8 次谐波分量,所以在(1)式中 N=8。实验测试结果如图4 所示,横坐标为频率测试范围,从 1Hz 到 10
20、MHz。正弦波的 THD 值在局部上有所波动,但是在整体上趋于平稳。即该信号发生器的总谐波失真-10dB。线性度是描述三角波的一个重要参数。在参数性能测试实验中,本文使用 NI 公司的 PXI-6115 多功能 IO 采集卡(最大采样率 10MS/s)采集三角波在不同频率下的波形数据样点,并计算三角波在不同频率下的线性度。在三角波的线性度性能测试实验中,标定了三角波的对(下转第 78 页)78|电子制作 2023 年 1 月自动化技术作。总状态指示灯绿灯亮。如图 10 所示,关门操作时,1 号门检测到障碍物,则1 号门实行开门操作。当障碍清除后则继续执行关门操作。图 10 单扇门停止运行时组态
21、画面当1号门停止按钮按下,则1号门切断与主回路的联系,且不影响其他门的正常运行。该情况主要用于单扇门事故或故障。当发生紧急情况时,按下紧急停止按钮。则屏蔽门系统停止运行,此时只能手动操作各屏蔽门。4 结语本论文所设计的地铁屏蔽门控制系统不仅能实现自动开关门的基础操作,还能检测障碍物防止乘客被夹伤,同时还有紧急停止按钮应对紧急的突发情况,以及设置了单扇屏蔽门的停止按钮帮助解决个别问题以及故障维修,同时指示灯和蜂鸣器能对乘客和工作人员对当前屏蔽门的工作状态给予提醒,理论上满足了地铁屏蔽门作为保障乘客候车安全作用,同时也给乘客带来了较为舒服的候车环境,例如隔绝了绝大多数噪音等等。参考文献 1 吴勇.
22、地铁屏蔽门电气控制系统应用及实践分析 J.今日自动化.2019,000(012):52-53.2 赵丽婕.地铁屏蔽门的控制系统设计分析 J.山西电子技术.2019,05:45-46.3 张运红.电气工程自动化控制中 PLC 技术的应用 J.山东工业技术.2019(15):44.4 肖园园,唐源丰,谢日耀.城际铁路屏蔽门电气控制系统及常见故障 J.电子技术与软件工程.2020(014).5 王贵林.地铁屏蔽门自动控制系统设计研究 J.科学与财富.2019(003).6 胡振超,李雪.地铁站屏蔽门安全监测系统 J.电子技术与软件工程.2018,No.131(09):145-146.称性为 50%,
23、幅值为 3Vpp,频率从 1Hz1MHz 范围,采集其样点数据,并做数据分析,计算其线性度。从增长趋势上来看,信号的频率越高,其线性度越差,但是从频率的整体范围上来看,其线性度一直保持在 1%以下。符合系统预期的三角波线性度要求。图 4 正弦波总谐波失真 4.3 性能总结信号发生器的最高频率以正弦波输出的最高频率为12MHz;DAC 芯片的采样率为 125Msps,但是 FPGA 的内部主频经过 PLL 倍频后为 120MHz,所以该信号发生器的采样率为 120MSa/s;FPGA 的数字信号量输出为 10bits,且 DAC 芯片也为 10bits,则信号发生器的垂直分辨率为 10bits,
24、系统内置常见的波形,正弦波、三角波、方波等,但是可以根据需要,重新生成任意波形数据样点保存后并输出。5 结束语本文基于 DDS 技术,使用 MCU 和 FPGA 联合设计的信号发生器,经过实验各种性能测试,结果表明,该信号发生器精度高,稳定可靠,噪声小,可以在各种实验室和工业场合使用。但是,也存在波形幅度较小和频率较高时,波形失真明显,需要进一步改进。参考文献 1 王佳荣.基于DDS技术的信号发生器设计D.吉林大学,2015.2 黄丽,刘永芳.基于FPGA和DAC的扫频信号发生器的研制J.自动化与仪器仪表,2019(03):8-10.3 杨凤霞.基于 LabVIEW 的虚拟信号发生器的设计 J.电子测试,2014,No.307(21):110-111.4 黄丽,刘永芳.基于FPGA和DAC的扫频信号发生器的研制J.自动化与仪器仪表,2019(03):8-10.5 张圆圆.GaN 全桥逆变器的 THD 及效率优化变频控制策略研究 D.北京交通大学,2021.(上接第 18 页)