历史上的今天
今天是:2024年11月08日(星期五)
2019年11月08日 | 基于单片机的等效采样示波器设计
2019-11-08 来源:eepw
在数字示波器技术中,常用的采样方法有两种:实时采样和等效采样。实时采样通常是等时间间隔的,它的最高采样频率是奈奎斯特极限频率。等效采样(Equivalent Sampling)是指对多个信号周期连续样来复现一个信号波形,采样系统能以扩展的方式复现频率大大超过奈奎斯特极限频率的信号波形。
1 总体设计
由于所设计的示波器输入频率范围较宽,
本系统采用了等效和实时两种采样方式。若输入频率小于1.25MHz,选用实时采样;反之,选用等效采样。根据输入频率确定时钟芯片的输出及分频数。当输入频率高于1kHz时,利用可编程频率合成芯片SY89429V产生基准时钟;当输入频率小于1kHz时,由单片机提供40kHz的基准时钟。然后根据输入频率的大小对基准时钟使用不同的分频数,从而产生采样时钟。
2 硬件设计
2.1总体设计
本系统在硬件上可分为五部分:控制器、测频及键盘控制、波形采样、程控时钟和液晶模块。系统功能如图1所示。
(1)控制器 控制器部分任务较重,通过两片89C52(MCU1和MCU2)来完成。其中,MCU1负责采样、数据处理以及程序时钟和液晶的控制工作;MCU2完成测频、DAC输出和键盘接口处理功能。两单片机通过串口通信。
(2)测频模块 本系统输入信号的频率范围较宽(1Hz~80MHz),隔度范围较大(0.1V~2.2V),整形电路采用高速比较器TL3016实现,其参考电压由MCU1对输入信号采样获得。整形后的信号经程控分频器送至MCU2测频,精度可达四位有效数字。
(3)波形采样模块 该模块由40MSPS的模数转换器TLC5540、静态存储器CY7C128A-20和可编程逻辑器件ispLSI1016E-80组成。 在程控时钟和程控分频器的控制下,CLPD产生存储器地址,将高速ADC的采样数据以程控频率写入静态RAM。写满256个点后,将静态RAM的控制权通过数据选择器转交给MCU1,由MCU1进行数据处理,并送液晶显示。
(4)程控时钟电路 程控时钟电路是本系统实现等效采样的关键,其核心是可编程频率合成芯片SY89429V。SY89429V的输出时钟范围是25MHz~400MHz,步进值0.125MHz~1MHz。它内部采用高频锁相环结构,对干扰很敏感,在硬件上采取了一定的抗干扰措施保证其稳定工作。
(5)液晶显示 液晶部分由点阵液晶显示器EDM160160、液晶控制器SED1335、SRAMHM62256、负压发生器和背光交流驱动电路发生器组成。 2.2 等效采样的实现 等效采样是本系统的关键和创新点。主要采用以芯片SY89429V为核心的精密时钟发生电路,控制高速ADC对高频信号进行循环间歇式采样。 实现等效采样的系统框图如图2所示。
等效采样的输入频率是1.25MHz~80MHz。为了使复现的波形尽量精确,系统设计在1.25MHz~40MHz信号范围内每周期采一样一个点,在40MHz~80MHz信号范围内每个周期采一个点来复现波形。即采样频率范围要在1MHz~40MHz之间,并有可控的小步进值。 SY89429V的输出频率为25MHz~400MHz,需要外加分频电路将低低频部分扩展。同时,本系统选用的ADC为TLC5540,其转换速率是5MSPS~40MSPS,低端采样率会受到限制,可以采用控制RAM写入速度的方式来控制采样速率。综合考虑,采用CPLD器件,将SY89429V芯片TEST输出的FOUT频率经过程控二分频器,一方面提供给ADC作为CLK工作频率,另一方面再经过程控二五十进制分频器控制RAM写入速度,作为低端信号的采样频率。
3 软件设计
3.1 总体软件流程
总体软件流程如图3所示。MCU1接收MCU2的测频结果,并将幅值信息传递给MCU2,由MCU1根据输入频率确定采样方式,并控制精密时钟发生电路为ADC提供采样时钟。一次采样完成后,由MCU1处理采样数据并送LCD显示。
3.2 实时采样的实现
实时采样中,为了使采样得到的波形尽量精确,系统将1.25MHz以下的信号分为三个频率范围,在每个频率范围内由程控时钟电器产生某一固定的基准时钟,结合相应的分频数进行采样。具体设置如睛:输入频率为1Hz~1kHz,由单片机提供40kHz采样时钟;输入频率为1kHz~1MHz,由芯片SY89429V提供40MHz采样时钟;输入频率为1MHz~1.25MHz,由芯片SY89429V提供50MHz采样时钟。
3.3 等效采样的实现
由于可编程频率合成芯片SY89429V在本系统所使用的25MHz~50MHz频率范围内,步进值始终为0.125MHz。为便于数据处理,软件设计过程中可以将所有的实际频率转换成以0.125MHz为单位的代值,即除以0.125MHz。 系统中所采用的模数转换器TLC5540的转换速率为5MHz~40MHz,当输入频率小于40MHz时,采用每个信号周期采一点的方法;当输入频率超过40MHz时,采用两个信号周期一点的方法。
下面以输入频率在1.25MHz~40MHz之间的情况为例,输入频率大于40MHz的情况可以类推得到。 将输入频率fin转换后的代值(以后简称代值)记为dfin,根据输入频率设定芯片SY89429V的频率字SY(只取整数,用于控制输出信号的频率),经过n分频后产生采样频率。根据等效采样的原理,采样频率与输入频率相近(对于输入频率为40MHz~80MHz的情况,采样频率与输入频率的二分频接近),二者频率代值的差值记做da,则SY可以表示为: SY=(dfin-da) %26;#215;n
(1) 这时复现一个波形所需的采样点数为: d=(dfin-da)/da
(2) 本系统选用的液晶为160%26;#215;160点阵,将x轴上40个点所表示的时间定义为一格时基,记作A,则液晶屏幕上显示的周期个数为: N=160%26;#215;da/(dfin-da) (3) 由此,时基可以表示为: A=N/(4%26;#215;fin)=40%26;#215;da/[fin%26;#215;(dfin-da)]
(4) 一个波形的采样点数也可以用时基和输入频率来表示: d=40/(A%26;#215;fin)
(5) 笔者利用本文介绍的算法,实现了等效采样,能够地1MHz~80MHz的周期信号进行波形复现,效果令人满意。这种简易示波器在人机界面上为用户提供手动和自动两种工作模式,性价比高,有广阔的市场空间。
史海拾趣
|
送给单片机爱好者的礼物——相信大家一定用过很多LED数码管字段编码的小软件,由于单片机的IO口可以任意编程调换,在设计电路板时为了方便,调换了端口引脚顺序时,只需要在LED表编码做适当修改,就可以保证显示的字符正确!本文介绍的LED数码管在 ...… 查看全部问答> |
|
第一阶段 此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。 第二阶段 此阶段能精通基于某种平台的接口(例如我们现在常用 ...… 查看全部问答> |
|
volatile的作用一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下 ...… 查看全部问答> |
|
PXA270有三个UART,全部连接MAX3073作为串口使用,奇怪的是已经用struct resource建立资源列表, 但Linux运行后使用cat /proc/interrupts显示只有第一个Full Function UART的中断,其他两个没有。 这是怎么回事呢? ...… 查看全部问答> |
|
用SCSI_PASS_THROUGH 参数deviceiocontrol返回错误 用deviceiocontrol向设备发SCSI_PASS_THROUGH 命令,函数返回0,正常为非零,但设备已经收到命令,我要返回的结果,弄了好长时间,不明白,哪位有过类似经验,指点下,谢谢!… 查看全部问答> |
|
实验室有一块EK-STR711的开发板(arm7tdmi),现在想做嵌入式系统,下载了u-boot-1.1.6,发现不知道该如何修改。网络上很多资料都是三星的芯片。可是我的芯片在u-boot中找不到相应的,不知道该如何下手。希望高手指点一下,万分感谢!… 查看全部问答> |




