自制数字存储示波器——制作篇

🏠 首页 《无线电》杂志 2003年 🔗 第1期 🔗 第30页 分类:电脑与单片机 🔗 刘河川 🔗, 赵晓杰 🔗

简介

数字存储示波器能完成许多普通示波器所不能实现的功能,例如捕捉瞬间信号、波形非常宽的信号以及非重复的信号等,不过数字存储示波器的价格非常昂贵。虽然可以通过一个前端电路把普通的示波器改造成数字存储示波器,但缺点还是显而易见的,首先你要拥有一台普通示波器(这个花费并不低),还要制作一个采样存储电路,最终还要在普通示波器的屏幕上观看结果,并且不能存储大量的数据,也不能进行数据对比。

现在我们要制作的是一个基于电脑的数字存储示波器。它通过并口连接于电脑,存储数据量可达32K字节,采样速率在600K/s以上。

计算机通过并口读取数字存储示波器上存储的波形数据,然后像普通示波器一样显示在显示器的屏幕上。由于用到了计算机,使这个设备具备了更多的优势,比如可以永久地存储波形数据,并随时调出查看;可以随意放大波形的任一部分,或者同时调出两组波形进行对比;显示器的屏幕也远大于示波器的屏幕,观看十分方便。

实现数字存储示波器功能的电路如图1所示,该电路的输入灵敏度可以在几百毫伏到几十伏之间随意调整,同时可以选择交流耦合或直流耦合。触发可以通过START按钮来完成,也可以由输入的正电平信号来完成,电平可在0~2.5V之间调整。采样率可以在15K/s到600K/s之间调整。本电路的测试探针可以使用普通示波器的×10探针。

图1
图1 🔍原图 (850×599)

在采样期间如果输入信号的电平超出了电位器设置的电平范围,溢出(overflow)指示灯将会作出指示,表示采样期间出现了溢出信号,但数据并没有被计算机读取和显示。

本电路中的SRAM可以使用62256或者6264,它们分别对应了32K或者8K的数据存储区。但是二者在价格上的差异是很小的,所以建议使用62256,存储区会比较大一些。

SRAM的特点之一就是可以接入后备电池,这样SRAM内部保存的数据将不会丢失,对本电路来说只要给SRAM加上后备电池,你存储了一次数据后,数据将一直保存在SRAM内部。这是一个非常有用的功能,你可以将该电路脱离计算机来使用,以后再把数据传输给计算机。

该电路的核心是一个8位的A/D转换器芯片ADC0820。这种芯片是08xx系列ADC芯片中速度最快的,它通过一种4位改良的FLASH技术可以在少于1.5μs的时间内完成一个完整的8位转换。当转换占用空间时,它可以通过内置的采样和锁定功能来捕捉和存储当前的信号。ADC0820的资料可到网站www.maxim-ic.com/quick-view2.cfm?qv-pk=1461上下载。

电路的局限性

根据纳奎斯特的理论,至少要用两倍于一个正弦波的频率进行采样才能完全真实地还原该波形。理论上讲这是非常正确的,但对应数字存储示波器来说,输入频率至少要低于采样频率10倍才能获得比较正确的采样结果。该电路也不例外。

该电路的最大采样速率决定了A/D转换器的转换速率应不小于600K/s,但由于每个芯片的性能会略有区别,可以通过减小电阻R12的阻值(680Ω或者更小)来达到更高的采样速率。一旦超过最高采样速率,影响会非常明显,波形将变得很混乱。所以R12必须调整到一个合适的值,这个值也受到C13精确度的影响。

在实际应用中,最大采样速率并不像输入转换速率那么重要。对于ADC0820,它对于8位信号的转换可达0.1V/μs。由于芯片内置采样和锁定功能,因此这显得并不是很重要,问题的关键在IC7B,输入电压跟随器。虽然没有关于这个芯片的转换速率的确切数据,但实测的结果大概是0.2V/μs。所以不要尝试采样一个50kHz、2V的方波,因为它不能在这种情况下持续工作。解决的办法是使用一个更高速度的电压跟随器。

这个电路可以在音频范围(20kHz)内工作得很好。如果你不介意波形的精确度,它也可以工作在更高的频率。

另一个限制是LM358的输出电压下限只能达到4mV。当输入电压范围为2.5V时,不存在什么问题,采样的每一步是2.5/256=9.8mV。

如果输入电压低至1V时,每一步为1/256=4mV,也不必太过于担心,因为实际上最重要的波形信号并不在此。

工 作 原 理

尽管电路看起来比较复杂,但实际上由于使用了ADC0820,操作起来并不复杂。当S1处于存储位置时,按下复位(RESET)按钮,D触发器IC8A被复位,开始等待触发脉冲,触发脉冲可由触发按钮或者由IC7A组成的电平触发电路来实现,准备(READY)指示灯将点亮。一旦锁存器被触发,7555(IC6)将开始振荡,振荡频率决定于VR2。采样时钟范围大约为15kHz到600kHz左右。

电位器VR2的阻值可以增加到1MΩ,这样可以提供大约30s的超长采样时间,用于采样那些变化非常缓慢的信号。如果需要更长的采样时间,那么就需要改变C13的值,但是时钟输出不能保持50μs以上持续为低。

时钟的下降沿开始进行A/D转换周期,约为1.5μs。然后ADC的第⑨脚变为低电平,同时通过作为反相器的IC9A,RAM地址计数器(IC1、2)将增加。

采样信号从ADC的第①脚输入,参考电压从第输入,相应的8位代码从D0~D7输出。第⑨脚立即输出低电平,将数据写入到SRAM62256中。这就是整个转换的过程,这个过程将一直重复直到地址计数器达到32768,接着IC2A的第⑧脚输出高电平,ADC被禁止,中止进一步的采样,ADC的第⑨脚的增加计数脉冲也会中止。这样输入的波形就被存储到SRAM中了。

如果在采样过程中,输入信号幅度超出了参考电压,那么ADC的第将输出低电平,直到输入信号下降到允许的范围。这将触发IC8B来点亮溢出(overflow)指示灯。

如果你打算使用6264来取代62256,需要去掉LINK 1,然后把开关S1原先连接到IC2B的第⑩脚的线改接到IC2B的第⑧脚。这样计数器将停止在8192,其他部分的工作和前面是相同的。

当S2处于读(READ)模式时,将完全禁止ADC,数据总线处于三态状态。在R4的作用下,RAM的内容将保持不变。计算机可以通过并口的第①脚和第来接管计数器,控制计数器的增加和复位。然后完成的工作就是从RAM中读取数据到计算机中去。

不过,计算机的并口只有5条输入线,这样就无法一次从RAM中读取8位数据,解决的办法是一次读取4位数据。这是由74HC157(IC4)——四双端选择器来完成的,1A~4A用来连接低4位,1B~4B用来连接高4位,1Y~4Y连接输出。IC4的第①脚来控制选通,这样1Y~4Y既可以与1A~4A(低4位)连通,也可以与1B~4B连通,IC4的第①脚由计算机通过并口的第②脚来控制,这样就可以达到每次传送4位的目的。

非常简单的是,软件首先复位计数器,先选择低4位并读取,再选择高4位进行读取,然后增加计数器的值,这样持续到所有数据都被读取完或者操作软件进行中断。实际上,软件上还有一些程序用来处理其他事情,比如噪声等,以便在读取数据时将错误减至最小。

ADC的第和第之间的电压是参考电压,它用来设定A/D转换器能够转换的输入信号的电压范围。这个电压不是必须以电源地作为参考的,所以它可以被设置为一个范围,比如1~4V。但是在该电路中,参考电压被由R7和VR4组成的分压电路设定为0~2.5V。R8和R9组成的分压电路又把这个参考电压分成一半作为交流输入范围的直流偏移量。所以对交流信号设置的输入电压范围将被提升,最大为0.25V。对于直流信号来说,经过输入端的衰减电位器VR1,信号将直接通过电压跟随器。

电压跟随器IC7B将输入的高阻抗信号转换为低阻抗的输出信号,当ADC采样时,R10用于保持IC7B输出稳定。IC7A组成触发电平比较器,用于比较输入电压和VR3分压得到的电压,如果输入电压高于VR3分压得到的电压,IC7A的第①脚将变高,并触发采样锁存器IC8A。

该电路中所有的74HC系列数字电路不能使用LS系列替换,特别是IC4和IC9。尽管555可以代换7555,但是不推荐这样做。

本电路与计算机之间的连接电缆要求是直通型的,管脚必须一一对应。因为软件上已经处理了大部分噪声问题,所以电缆有没有屏蔽层是无所谓的,当然有屏蔽会更好。理论上,电缆不应超过2m。

电源部分使用一般的9V直流电源即可。三端稳压7805可以不用散热片,它几乎不会发热。整机的工作电流小于50mA。下期,笔者为大家介绍此数字存储示波器的安装与使用。

(赵晓杰 刘河川)