数字示波器制作原理研究_数字示波器的使用
发布时间:2020-02-16 来源: 幽默笑话 点击:
摘要:本文对数字示波器的优缺点进行了简单的分析,并从硬件电路的设计和软件开发两个方面阐述了基于ADuC812单片机和LCD显示模抟的数字示波器的工作原理和制作过程。 关键词:数字示波器;单片机;A/D转换;LCD模块
中图分类号:TN602
文献标识码:A
随着电子技术的发展和变化,对电路测量的要求也变得更高,在电子制作中会发现对很多参数的测量已不是一块万用表所能胜任的了,比如单片机某I/O口的输出波形或制作放大器测其频率响应等等。所以,示波器自然而然地与万用表一样,变成了电子工程师和爱好者的必备工具。
1 示波器的工作原理
示波器是一种能把电压随时间变化的过程用图像显示出来的电子仪器。用它来观察电压(或转换成电压的电流)的波形,并测量电压的幅度、频率和相位等。因此,示波器被广泛地应用在无线电测量中。
普通示波器的种类很多,但它们都包含下列基本组成部分,如图1所示。
物理学理论可以证明,一端通过细绳固定的重物在作摆动时,与中心垂线的距离满足正弦波规律。沙漏实验可以清晰地显示这个随时间变化的波形:用沙漏充当重物,并且在沙漏底下的桌面上平铺一张纸,当沙漏开始摆动时,让纸匀速移动。这样,沙漏中流出的细沙,就在纸上留下了一个正弦波痕迹(如图2所示)。利用这种设计思想,可以完成波形在平面上(对应于时间的流动)的展开。这种设计思想在波形记录、显示中被广泛采用,比如心电图机,就是用原地摆动的电热针,在匀速移动的记录纸带上描记出心电波形。
2 模拟示波器与数字示波器
利用心电图机的结构,已经可以记录电压信号,但是,示波器在大量的应用中,并不需要通过消耗纸张来记录波形,而仅仅是观察波形。因此。可以重复使用的CRT(Cathode Ray Tube)示波管,被应用到示波器的设计中。模拟示波器把需观测的两个电信号加至示波管的x、Y通道以控制电子束的偏移,从而获得荧光屏上关于这两个电信号关系的显示波形。显然,这种模拟示波器体积大、重量重、成本高、价格贵,并且不太适合用于对非周期的、单次信号的测量。
数字示波器首先对模拟信号进行高速采样获得相应的数字数据并存储。用数字信号处理技术对采样得到的数字信号进行相关处理与运算,从而获得所需的各种信号参数。根据得到的信号参数绘制信号波形,并可对被测信号进行实时的、瞬态的分析,以方便使用者了解信号质量,快速准确地进行故障的诊断。测量开始时,操作者可通过操作界面选定测量类型、测量参数及测量范围(可选自动设置,由仪器自动设置最佳范围);微处理器自动将测量设置解释到采样电路,并启动数据采集;采集完成后,由微处理器对采样数据按测量设置进行处理,提取所需要的测量参数,并将结果送显示部件。
使用模拟示波器和数字示波器通常都能很好地观察简单重复性信号(如图3)。但是,两者都有其优点和局限性。对于模拟示波器来说,由于CRT的余辉时间很短,因而难于显示频率很低的信号。由于示波管上的扫描轨迹亮度和扫描速度成反比,所以具有快速上升、下降时间的低重复速率信号就很难看到。而数字示波器的扫描轨迹亮度和扫描速度与信号重复速率无关,故可以很好地反映出来。
对于显示具有较高重复速率的重复性信号的快速上升、下降沿来说,数字存储示波器和模拟示波器的性能几乎没有什么区别。用两种示波器都能很好地观察信号波形。当要进行信号参量的测量时,数字存储示波器的优点在于具有自动测量各种参数的能力。而使用模拟示波器时,则必须自己设置光标、分析理解显示的波形才能得到测量的结果。但是,如果要进行调整工作,那么一般最好使用模拟示波器,这是因为模拟示波器的实时显示能力使它在每时每刻都能显示出输入的电压,其波形更新速率(每秒钟在屏幕上描画扫描轨迹的次数)很高,所以信号的任何变化都会立即显示出来。与模拟示波器相反,数字示波器所显示的是用采集的波形数据重建的波形,所以,其波形更新率远低于模拟示波器,结果在信号发生变化和变化了的信号在屏幕上显示出来之间就有了一定的时间延迟。这是数字示波器的主要缺点。
数字示波器还具有其它的优势:
(1)模拟示波器需要与带宽相适应的CRT示波管,随着频率的提高,对CRT示波管的工艺要求严格,成本增加,存在技术瓶颈。所以,在电子市场上不好买,性能好的大多数是进口品牌,其价格昂贵且需要处理的问题也多,比如要产生阳极高压、扫描锯齿波还要对示波管进行电磁屏蔽等等,而且做出来体积很大,便携就更谈不上了。而数字示波器只要与带宽相适应的高速A/D(AnMog/Digital)转换器,其它存储器和D/A(Digital/Analog)转换器以及显示器都是较低速的部件,显示部分可用LCD(Liquid Crystal Display)显示模块做显示器,在电子市场很容易买到,价格也不贵而且应用简单,只需考虑与微处理器的接口,体积小且功耗远小于CRT示波管。使用LCD显示模块做示波器做成便携式很容易,做成示波表都没问题!当然,LCD显示模块也有其不足之处,比如亮度和对比度不如CRT示波管,但综合考虑LCD显示模块的优势还是比较明显的。
(2)模拟示波器是一个完全的硬件结构,做好之后很难进行功能升级。而数字示波器不同,它的控制以及其它功能的实现在保证基本硬件后都是由软件来实现的,添加新的功能之分方便。
3 数字示波器的硬件系统
一般来说,数字波器主要包括4部分电路,分别是:
(1)程控放大(衰减)电路;
(2)高速A/D转换电路;
(3)Flash(闪存)存储电路;
(4)显示控制电路;
在这几部分中,最重要的是程控放大(衰减)电路和A/D转换电路,因为这两个电路是数字示波器的咽喉,程控放大(衰减)电路决定了示波器的输入带宽和垂直分辨率,A/D转换电路决定了示波器水平分辨率,这两个分辨率直接决定着一个示波器性能的优劣。这两部分电路将被测信号转换成后面的处理电路所需的数据信号,这部分电路都可用高性能的集成电路加少量外围器件构成,电路设计简单。调试也很简单。整个示波器最难的应该是程序,也就是软件方面。软件承担着数字示波器的所有数据处理和控制任务,包括A/D采样控制、水平扫速控制、垂直灵敏度控制、显示处理、峰峰值测量、频率测量等任务。可以采用现在市面上很常见的单片机作为微处理器,使用c语言编程来实现。
所有的电子设备都离不开硬件,首先让我来对它的硬件结构进行一下简述:总体电路如系统框图所示(图4),外部信号从探头输入,进入程控放大(衰减)电路进行放大(衰减),再对被放大(衰减)的信号进行电路整形后送入高速A/D转换器对信号进行采样,采样所得的数据存入Flash闪存中, 需要使用时再从闪存中读出数据进行处理,最后将波形显示在LCD模块上。
下面就各个模块电路作以简单介绍。
3.1程控放大(衰减)电路与电源电路
信号由常见的X10X1示波器探头输入,进入放大(衰减)电路。程控放大(衰减)电路的作用是对输入信号进行放大或衰减调整,使输出信号电压在A/D转换器输入电压要求范围内,达到最好的测量与观察效果,所以程控放大器电路在规定带宽内的增益一定要平坦。
由于示波器电路上包含数字和模拟两个部分,为了避免相互干扰所以将数字部分的供电和模拟部分的供电分开,分别提供一组±5V的直流电源,并用电感与电容做成的滤波器隔离。
3.2高速A/D转换电路
数字示波器中最重要的电路是A/D转换电路,它的作用是将被测信号采样并转换成数字信号存入存储器,说它是数字示波器的咽喉一点也不为过,因为它直接决定着数字示波器所能测量的最高频率,根据奈奎斯特定理,采样频率至少是被测信号最高频率的2倍才能复现出被测信号。而在数字示波器中采样频率至少应该是被测信号频率的5~8倍才行,否则根本观察不到信号的波形。
为了提A/D采样效率,本电路采用ADuC812单片机,芯片内集成了8路12位ADC采集系统、2路12位ADC、80C52MCU内核、8kB的闪速/电可擦除程序存储器、640字节的闪速/电可擦除数据存储器等模块。官方资料给出的最高采样频率为200kHz,对于一般的测量来说绰绰有余了,而12位转换器对于示波器来说也是够用的,例如我们选用128*240的LCD显示模块,垂直分辨率为128格,所以绝对够用。还有就是价格及电路的设计,由于ADC系统集成在单片机内部,大大节约了硬件成本和电路设计的工作量。
3.3 Flash闪存与时钟电路
因为A/D转换器捕获的信号数据量较大,单片机内部的8kB闪存不够使用,所以本电路选用了一块WinBond的W27C020芯片作为单片机的外存使用,容量为256kB,同时,也作为写LCD的缓存使用。
为了得到基准时钟信号,单片机还连接一块频率为11.0592MHz的晶振,用来计算外部波形信号的实际频率。如果示波器需要显示当前日期时间,还可以安装一块内置锂电池的DSl2887日历时钟芯片,带有128字节带掉电保护的RAM(random access memory),使用十分方便。
3.4显示控制电路
LCD选用金鹏OCM240128显示模块,分辨率128*240,蓝色背光,支持触屏。此模块使用现在市面上非常流行的T9693C驱动芯片,只需要将/WR、/RD、C/D以及8个数据端口DB0~DB7与单片机的对应I/O端口连接,就可以正常使用。T9693C还为LCD的显示提供了完善的软件接口,编程简便快捷。
4 数字示波器的软件系统
硬件部分完成了,接下来谈谈软件部分。软件是一台设备的灵魂,没有好的软件支持,所有的硬件都是一堆废铁。我们写的汇编语言源程序要变为单片机可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,基于80C52内核的ADuC812单片机可以使用Keil软件直接使用c语言来进行开发。
总的来说,在数字示波器的软件开发过程中,有两大要点:
(1)A/D转换后数据的处理;
(2)LCD显示控制。
为了降低电路的复杂性,没有设计硬件触发电路,而是用软件实现同步触发。软件触发的好处是触发条件更易调整,只需调整比较语句中的参数即可。例如,显示一屏的数据为240个,但每次读进单片机的数据为500个,多余260个数据就是作为不满足触发条件的舍弃余量,为了以防万一,当从500个数据中以经读出超过260个数据但还没有符合触发条件的数据时,将跳出触发比较循环,重新从闪存中读出500个数据,直到有满足条件的数据出现。保证可以用软件触发的条件是要有足够大的存储空间,选用256kB的外存也是考虑到了这个问题。在一个捕获周期内所有A/D转换后得到的采样数据全部保存在闪存芯片中,等待经过运算处理后发送到LCD显示模块。
金鹏0CM240128是一个通用LCD显示模块,内置T6963系列驱动芯片来显示文字或图形。模块不仅可以显示单一的文本、图形,而且可以实现双图层的(“或”、“异或”、“同或”、“与”四种逻辑关系)合成显示。在数字示波器中可以将格线与波形放在不同的层上显示,显示关系为“或”,画方格线的程序可以参考相关技术文档,这里着重解释一下如何将采样数据转换成波形显示数据。
对显示数据的操作最小单位为字节,一个字节包含8个二进制位,T6963C芯片可以通过接受1位、2位或3位指令代码来对LCD屏幕进行操作,我们可以编写一个函数来实现将某个指定坐标的像素点点亮的功能,这里坐标的取值范围为(0,0)~(239,127)。将A/D转换所得的数据经过处理后作为给LCD显示模块写数据的依据,因为液晶屏每行有240个像素,所以定义一个容量为240字节的数组p[240],数组下标代表水平坐标,数组元素的值代表垂直坐标。p[]在初始时数据全为64(Ox40H),即在LCD中间显示一条横线。因为每个数据显示一个亮点,所以在每一列上都会对应的显示一个亮点,表示波形的状态。为了有较好显示效果,将显示相邻的点用线连接起来,在处理第一个点时预读出第二个点的垂直坐标,与第一个点的垂直坐标进行比较,如果比第一个点的垂直坐标小则从第一个点向第二个点拉线,如果比第一个点的垂直坐标大则从第二个点向第一个点拉线。
当一组240个数据都显示完成后,单片机已经从A/D转换器捕获了下一组信号,在适当的延迟时间后刷新整个屏幕,画出下一个捕获周期得到的波形。这样就可显示出连续的波形变化了。
5 总结
到这里,关于一台数字示波器的制作已经完毕,这个数字示波器的性能其实还有很大的提高空间,例如,把本电路中所有集成电路全部用小型的贴片封装,时钟产生电路的那些通用数字芯片用一片CPLD(Complex Programmable Logic Device)代替,那么这个示波器所有的电路都能做到像LCD显示器那么大的一块双面板上,整个电路装进一个合适的壳子中用电池供电就成了一块示波表。通过更换更大更高分辨率的LCD模块,可以提高示波器的实时响应速率,缩短外部信号变化到显示出波形之间的延迟时间。还可以加入更多实用功能,比如可以加上一个继电器来控制LCD显示器的背光亮度,通过扩展外部存储空间或换用更大容量的Flash闪存来实现波形回放等。当然,在更换硬件设备的同时也需要对软件程序进行必要的升级。
(本文责任编辑 韩建中)
相关热词搜索:示波器 原理 数字 数字示波器制作原理研究 数字示波器实验原理 示波器的使用方法图解
热点文章阅读