基于fpga+stm32的数字示波器

本文详细介绍了设计一款数字示波器的过程,采用FPGA与单片机结合的核心处理器,采用实时采样与顺序等效采样的策略,实现了输入信号的高效处理、频率测量和稳定性提升。关键模块包括输入电路、采样保持、AD采样和软件触发。设计满足了垂直灵敏度调节和高精度测量要求,通过实验验证了其性能和稳定性。
摘要由CSDN通过智能技术生成

数字示波器

摘要:

本次数字示波器设计分为输入电路模块,采样保持模块,AD采样电路,FPGA与单片机结合的控制模块等。本设计核心处理器采用单片机与FPGA相结合的方案,输入信号首先进入输入电路模块,通过缓冲电路使输入阻抗升至1M,然后为实现三档垂直灵敏度把信号进行分档放大。从输入电路模块出来的信号分两路,一路进入采样保持模块一路进入tlv3501制作的比较器进行过零比较,把正弦波转换为方波送入FPGA计数测量频率。采样保持电路采用AD783制作采样保持电路,信号经AD采样后送入控制模块进行数据处理。本次设计可以很好的满足设计要求,是一份不错的设计方案。

**关键字:**数字示波器,FPGA,采样保持

**
**

一、方案论证与比较

1.核心处理器方案比较:

方案一:采用STM32单片机的方案。该方案成本低,但是时序控制方面精度不高,处理速度慢,不建议采用此方案。

方案二:采用FPGA加单片机的方案完成顶层控制,该方案规模较大,但对高速信号处理速度快,FPGA时序实现能力较强,逻辑组合能力较强,且使用该方案能较大提高系统性能指标,综合考虑下决定采用此方案。

2.采样方案比较:

数字示波器有两种采样方式:实时采样和等效采样,

方案一:采用实时采样,实时采样所有采样点的采集都是按照一个固定的次序,只一个触发可完成全部采集。实时的优点是采样时间短,相应的需要高的AD速度和精度

方案二:采用等效采样,等效采样是每个周期等效、等间隔抽取少量样本,最后合并成一个周期。等效采样的优点是不需要太高的采样频率,缺点是周期长。

等效采样也有两种方式:顺序采样和随机采样。

方案一:采用随机采样方案,每次随机扫描采集多个采样点,以触发点为基准,按时间先后次序将数据重组排列,该方案最大的难点是被测时间极短,很难直接测量,一般采用精密的内插器进行扩展后再进行测量。所以不采用此方案。

方案二:采用顺序采样方案,每次触发在每个周期波形上只采样一点,且每次延迟一个已知的时间。该方案能以低的采样速度获得高的被测信号带宽。可由纯数字完全实现。

综上所述,决定采用实时采样与顺序等效采样相结合的方案。根据设计要求,采用分档的方式,100kHz以下信号采用实时采样,100kHz以上信号采用顺序等效采样的方案。

3.测频方案比较:

方案一:采用周期法测定频率,在被测信号一个周期内采用标准信号的脉冲数N来间接测量频率。该方案适用于低频信号,被测信号频率过高时由于测量时间短,会造成精度不高的情况,所以不采用此方案。

方案二:采用等精度测频法,将标准频率信号与待测信号输入到两个计数器进行同步计数,人为预置闸门时间,当闸门开启信号到来时,等待被测信号触发沿到来时,计数器开始计数。该方案测量精度与被测信号的频率无关,仅与闸门时间和标准频率有关,所以可保证测频段内测量精度不变。综合考虑采用此方案测量。

4.触发方案比较:

方案一:采用tlv3501制作比较器,当信号大于比较触发电平时产生一次触发。该方案调试困难,当产生触发时,由于比较器边沿抖动会造成触发不稳定,影响测量,所以决定不采用此方案。

方案二:采用软件触发方案,在数字电路中通过FPGA中把软件触发电平写入寄存器,当上升沿产生时产生一个触发脉冲。该方案没有边缘抖动的问题,触发更加稳定精确,所以决定采用此方案。

5.总体方案设计:

如下图1所示,为系统的整体框图,分为输入电路模块,采样保持模块,AD采样电路,FPGA与单片机结合的控制模块等。输入信号首先进入输入电路模块,通过缓冲电路使输入阻抗升至1M,然后为实现三档垂直灵敏度把信号进行分档放大。从输入电路模块出来的信号分两路,一路进入采样保持模块一路进入tlv3501制作的比较器进行过零比较,把正弦波转换为方波送入FPGA计数测量频率。采样保持电路采用AD783制作采样保持电路,后接ths3201高速放大器进行10倍放大。信号经AD采样后送入控制模块进行数据处理。本设计核心处理器采用单片机与FPGA相结合的方案,放大部分由THS3201放大器制作,整体供电由±7V、±5V直流电压源提供。
在这里插入图片描述

图1 系统总体框图

二、理论分析与计算

1.等效采样原理分析

等效采样是通过较低的采样频率获得较高的带宽,利用多个信号周期的连续采样复现一个信号波形。等效采样有顺序采样和随机采样两种采样方法,本次设计采用的是顺序采样。

顺序等效采样的原理是用极窄时序宽度的采样脉冲在被测信号各周期不同相位逐次进行采样,每一次的取样比前一次延迟一个时间t,当时间足够长时可遍历得到整个波形,从而实现把被测高频周期信号变为低频信号重现。设输入信号的周期为T,由此可得任意两取样脉冲之间的间隔为t,其中m为两个取样脉冲之间被测信号的周期个数,由此可推导出实时采样时钟为。顺序采样的一个难点是精确产生t,本次设计利用FPGA内部的锁相环产生200MHz时钟,可精确得到最小的t为5ns。在FPGA内设置采样模块连接ADC采样时钟线与数据线通过单片机送来的采样率进行采样操作。

2.垂直灵敏度计算

垂直灵敏度指示示波器的垂直方向每格所代表的电压幅度值,有题目要求可知本次设计示波器垂直灵敏度分为三档:1V/div、0.1V/div、2mV/div。由于垂直分辨率为8bit,显示屏刻度为8div×10div。为满足采样要求,对应每一挡放大有如下要求:

G=

由此计算出对应每一挡增益为:

表1 前级增益

垂直灵敏度1V/div0.1V/div2mV/div
前级增益-80-86.25

选择不同挡位,把信号进行不同的放大和衰减,进入采样保持电路后通过放大器放大20倍达到ADC2V采样的要求。

3.扫描速度计算

扫描速度可表示示波器展宽被测信号波形的能力。其具体定义是单位实际闪光点在屏幕水平方向移动的距离。由于题目要求水平显示分辨率≥20点/div,水平10格,每格20个点则存储深度M为10×20=200点。根据即在固定存储深度下,采样率与扫描速度成反比则当M=200时由此可推算出每一挡扫描速率与采样率之间的关系,从100ns~20ms共分六个挡。具体计算如下表2所示:

表2 扫描速率与采样率对应关系

扫描 速度20ms/div2ms/div200us/div20us/div2us/div100ns/div
实时采样率1KSPS10KSPS100KSPS1MSPS
等效采样率10MSPS200MSPS

由于AD最高采样速率限定为1MHz,在20us/div以上的档位采用等效采样。

三、电路与程序设计

1.输入电路模块设计:

如下图2、图3所示为输入电路模块,该模块有两个部分,一个是隔离电路,把输入阻抗升至1M。另一部分是分档放大部分,当信号输入根据信号大小分三档进行放大和衰减至100mV,以满足AD采样幅度要求。隔离电路采用ths3001制作跟随放大器,其驱动负载压摆率使得接1K电阻。输入端并联3M电阻使实际输入阻抗为1M。后接50Ω电阻进行阻抗匹配。放大部分采用高速放大器ths3201,根据垂直灵敏度的要求计算出不同档位前级放大增益,三档增益分别为放大6.25倍,衰减8倍,衰减80倍。根据放大倍数修改分立元件参数,搭建放大电路。具体参数设计如下图:

在这里插入图片描述

图2 隔离电路设计图

在这里插入图片描述

图3 分档放大电路设计图

2.采样保持模块设计

如下图4所示为采样保持模块设计电路图,该模块分为采样保持电路与放大电路。本设计中为了保证采样输入信号的稳定,采用AD783搭建采样保持电路,AD783超高速采用保持放大器采样时间短、功耗低。采样误差大的一个原因就是孔径抖动,AD783孔径抖动小,最大只到50ps,可有效保持保样值。为满足AD0~2V采样要求,信号通过采样保持电路后增加一级放大电路,把信号放大20倍。具体参数设计如下图:

在这里插入图片描述

图4 采样放大模块设计图

3.AD采样模块设计

如下图5所示为AD采样电路设计电路图。本次设计要求垂直分辨率为8bit,水平显示分辨率≥20点/div,所以决定采用高速ADC模数转换器ADS830进行采样。ADS830采样速率可达到60MSPS。利用FPGA控制ADC时钟,同时通过ADC数据线把采样数据送入FPGA通过单片机送来的采样率进行采样处理。由于输入口进行了阻抗匹配,所以后接opa2690高速放大器进行放大偏置。输入端增加电容进行隔直,使交流信号输入opa2690后进行两倍放大并偏置成单极性信号满足AD转换器单极性信号输入要求。

在这里插入图片描述

图5 AD采样模块电路图

4.过零比较模块设计

如下图6为过零比较器设计电路图。该模块的主要作用是为FPGA进行频率采集做信号处理。把放大后的正弦信号通过tlv3501比较器芯片制作的比较器电路得到方波,送入FPGA进行计数测频。

在这里插入图片描述

图6 比较电路设计图

5.软件模块设计

如下图7为FPGA内部RTL图。外部时钟产生50MHz通过锁相环模块产生200MHz内部逻辑时钟。周期测量是通过外部比较器模块产生方波信号送入频率采集模块。本次设计采用等精度测量的方法通过频率采集模块计数后通过cnt_ext与cnt_ref送入单片机通过公式计算出对应的频率从而得到对应周期。采样模块连接外部ADC与单片机,单片机送来采样率,采样模块通过ADC_CLK时钟线控制ADC采样时钟,通过ADC_DAT线接收采样数据。数据处理后送入存储双口RAM模块,该模块读入单片机地址送出需要显示的数据。利用FPGA内部丰富的逻辑资源与强大的时序控制,配合单片机显示实现高速系统设计要求。
在这里插入图片描述

图7 FPGA内部RTL图

下图8所示为软件系统流程图,开始程序后进行初始化,后开始周期采集与放大增益软件校准的前期准备。随后进入模式选择页面,根据题目要求分为普通模式与触发模式。选择普通模式直接开始采样处理,选择触发模式,需测试是否有上升沿,每次上升沿触发后再进行采样处理。处理后数据送入单片机进行曲线与周期的显示。具体流程如下:
在这里插入图片描述

图8 软件流程图

四、测试方案与测试结果

1.测试仪器

(1)RIGOL DS1104示波器

(2)RIGOL DG1062 信号发生器

(3)RIGOL DP832 直流电源

2.测试方法

通过信号发生器输入信号到系统,观察显示屏,记录结果。在测试点连入示波器观察结果并记录。

3.测试结果及分析

(1)显示测试

表3 垂直灵敏度1V/div 输入信号峰峰值5V

频率实测周期误差实测峰峰值误差
10Hz
500Hz
10kHz
50kHz
100kHz
500kHz
1MHz
10MHz

表4 垂直灵敏度0.1V/div 输入信号峰峰值500mV

频率实测周期误差实测峰峰值误差
10Hz
500Hz
10kHz
50kHz
100kHz
500kHz
1MHz
10MHz

表5 垂直灵敏度2mV/div 输入信号峰峰值10mV

频率实测周期误差实测峰峰值误差
10Hz
500Hz
10kHz
50kHz
100kHz
500kHz
1MHz
10MHz
短路噪声

由上表可知,电压测量误差≤5%,波形周期测量误差≤5%,可满足设计要求。

(2)其他基本项测试

通过按单次触发键,开始一次采样;按下存储键,多次采样后仍可恢复存储波形;提供100kHz方波校准信号,通过示波器可测出幅度0.302V、频率为100KHz。由此可看出本次设计很好的符合了所有的设计要求。

五、总结

本次设计分为输入电路模块,采样保持模块,AD采样电路,FPGA与单片机结合的控制模块等。实现了根据垂直灵敏度把信号进行分档放大。通过tlv3501制作的比较器进行过零比较,把正弦波转换为方波送入FPGA计数测量频率。采样保持电路采用AD783制作采样保持电路,信号经AD采样后送入控制模块进行数据处理。本次设计很好的完成所有的设计要求。这个题目最大的难点就是在软件的设计与调试。

参考文献

[1] 康华光,邹寿彬,秦臻.电子技术基础.北京:高等教育出版社,2013.

[2] 樊昌信.通信原理教程.北京:电子工业出版社,2010.

[3] 蒋焕文,孙续.电子测量.北京:中国计量出版社,2008.
数测量频率。采样保持电路采用AD783制作采样保持电路,信号经AD采样后送入控制模块进行数据处理。本次设计很好的完成所有的设计要求。这个题目最大的难点就是在软件的设计与调试。

参考文献

[1] 康华光,邹寿彬,秦臻.电子技术基础.北京:高等教育出版社,2013.

[2] 樊昌信.通信原理教程.北京:电子工业出版社,2010.

[3] 蒋焕文,孙续.电子测量.北京:中国计量出版社,2008.

  • 10
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
声明:该设计来自阿莫论坛,设计资料仅供学习参考,不可用于商业用途。 这个版本的PCB是根据一款市售的通用壳体设计的,也就是有“外壳”,如果能用阿莫的机器给开孔那就解决了很多网友(包括我)头疼的外壳问题! 本来这个版本的示波器是使用PSP的液晶屏,试验下来发现功耗要比现在所使用的这款3.5寸的大,其实这个屏的分辨率要略高于PSP的480*272,现实更加细腻,只是没有4.3寸的屏看起来爽。 FPGA双通示波器作品实物图展示: FPGA双通示波器性能参数: 通道数:2通道 模拟带宽:30MHz 采样率:双通道,每125Msps 垂直精度:8bit 存储深度:每通道不小于8KB 电压灵敏度:10mv/div~5v/div(1:1探头) 扫速范围:100ns/div~5s/div FFT功能:1024点FFT X-Y功能 触发方式:单次、正常、自动,触发电压可调并带有超前触发功能 480*320/3.5寸高分辨率液晶显示器。 工作电压:6.2V~9V,推荐使用8V稳压电源 最大电流消耗:350mA(8V),因为数字部分使用DC/DC稳压电路,所以电流消耗与供电电压有一定关系。 按键功能: s0:模式选择(选择示波器和FFT) s1:通道选择(分别为:通道1,通道2,双通道和X-Y模式即李莎育图) s2:触发方式选择(分别为:自动上升沿,自动下降沿,正常上升沿,正常下降沿) s3:触发通道选择(触发通道在单通道时默认为当前通道,不能选择,只有在双通道和X-Y模式下可选) s4:存储深度选择(分别为:1000点,2000点,4000点,8000点每通道选择)注:在低扫速下使用地存储深度可以获得较好的实时性 s5:输入耦合选择(分别为交流耦合AC和直流耦合DC两种方式) s6:上下键功能选择(设置上下键的功能,分别为灵敏度ATT、基线位置Level、触发电平TrigY) 注:s12和s10为1通道的上下键,s13和s11为2通道的上下键 s7:左右键功能选择(设置左右键的功能,分别为扫速控制Speed和触发水平位置设置TrigX)注:s14和s15为左右键 s8:单次触发(单次触发功能,只有触发模式为正常情况下可以用,自动模式下不可用) s9:运行停止键
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值