相关热词搜索:
简易数字波形存储器的实现
简易数字波形存储器的实现 给出了采用类似dma的设计思路以及使用双口ram、快速逻辑电路和 cpu(at89c51)组成的数字波形存储系统的整体电路,从而解决了波形数据的快速 采集和输出显示问题。关键词:dma;
双端口;
ram;
存储器;
at89c51 gal 随着信号处理技术的发展,波形存储变得日益重要,各种类型的波形 存储装置也越来越多。相对于其它波形存储装置,本文给出的设计的最大特点是 速度快,可进行DMA存储,且不占用CPU时间来对信号进行处理。
1 系统的总体设计 由于本设计采用了双口RAM和DMA思想,而且数据的采集、存储 与输出均由逻辑电路控制,因此,提高了数据示波器的采样速度,同时易于实现 “实时显示”,并可在“伪”实时处理时对数据进行操作。此外,数据的实时显示和 “伪”实时处理可通过“DMA允许”来控制,其总体设计方案如图1所示。
1.1 输入电路 本设计的输入电路实际是一个可调增益电路,主要完成对信号的放大。
本设计设置有0.01/div、0.1/div和1/div三档垂直灵敏度, 可分别对输入信号进行1倍、10倍和100倍的放大。具体可采用以下两种方 案:
(1)采用可编程增益运放来实现1、10、100的放大倍数。由 于采用集成运放,因而精度较高,调试方便,但造价也较高。
(2)采用三级放大,第一级为跟随器方式,后两级的放大倍数均为 10,每一级放大后都有一个输出抽头。具体连接如图2所示。
1.2 A/D转换器的选择(1) A/D转换器是波形存储的关键部件。它决定了示波器的最大采样速 率以及分辨率。目前常用的A/D转换器的输出形式有并行和串行两种,其转换 方式有逐次逼近型ADC、积分型ADC、∑-Δ型ADC与流水线型ADC。对本设计来说,显然应该选择高速A/D。综合考虑各方面的因素, 笔者选用了8位CMOS、20MSPS模拟-数字转换器(ADC)TLC5 510。
如果需要进一步提高存储示波器输入信号的频率,可考虑并行A/D, 即用两片A/D对一路信号进行分时采样,因为这样可在不提高器件频率特性的 基础上将输入信号的带宽提高一倍。以此类推,可并联多块A/D以使输入信号 的带宽进一步得到提高(本设计中不涉及此项,有兴趣的读者不妨一试)。
1.3 存储器的选择 笔者在本设计中选用了两片双口4kB的RAM IDT7134 (4kB)。它在双路使用时,一路对应一个存储器。使用双口RAM便于对波 形进行实时处理和“伪”实时处理。
1.4 触发电路的设计 触发电路在设计时有三种方案,其一是采用可调电阻。因为该输入信 号处在一个连续的范围内,即触发电平可以连续变化,因此采用可调电阻能简化 电路。
其二是选用数字电位器代替模拟电阻。该方案虽然可实现程序控制,但 触发电平不能连续可调,且会增加系统的控制任务。其三是由D/A转换器组成 的触发电路,如图3所示。在该电路中,触发电平与Di输入的关系为:
V=VREF Di/2n 式中,n为D/A的位数,VREF为基准电压。
利用D/A触发电路能满足触发电平可调的要求,但会增加系统的复 杂度。因此,应综合考虑以上三个方案。
1.5 GAL和控制电路 a. GAL器件 GAL煟菠犉骷通常采用E2CMOS工艺制造,E2CMOS工艺 的特点是可试验性、低功耗、高速和立即可擦写。目前最常用的GAL器件有G AL16V8和GAL20V8两种系列,它们最多有8个输出端(也可编程输 入),分别有16和20个输入端。GAL器件的特点如下:
● 方便编程,编程单元和逻辑配置可重复进行编程;
● 高性能的E2CMOS工艺使得器件的功耗很低(最大运行功耗为 45mA),速度高(存取速度为15~25ns);
输出逻辑宏单元的配置使 设计具有更大的灵活性;
●具有保密单元,可对程序进行加密以保护知识产权。
除此之外,GAL器件还具有输出寄存器的预加载功能以及锁定保护、 输入缓冲和加电复位等技术特性和功能。
笔者选用GAL16V8来完成图4所示的逻辑功能。其GAL输入 输出端口的逻辑关系为:
(abel语言) Aout=(A0#A1#A2#A3);
Bout=!(B0#B1);
Cout1=!(C1);
Cout0=(C0&!S0#!C1&S0#!C2&S0);
系统中数字部分的逻辑关系均可由GAL来实现,这样不但可使电路 得到简化,同时也可以提高系统的可靠性。
b. 数字控制电路 图5所示是该系统中数字控制电路的工作原理图。当系统工作于实时 显示模式时,CPU首先对所有控制电路进行复位,并使地址计数开始,然后在 每一个时钟完成A/D的数据输出、写入RAM和D/A直接输出。直到地址溢 出(满屏显示所需数据量)后,再将写RAM地址计数信号禁止,同时给出CP U存储完毕信号。
当系统进行波形锁存时,A/D将停止工作,并将满屏所需的数据量存于RAM中,此后计数器只需给出地址,即可由D/A输出波形。
在进行波形移动时,如果在锁存信号方式的基础上一屏显示未定,那 么,CPU将对地址预置数+N(或-N),并会在输出波形后将新的预置数送 入地址口线,此时的CPU可再设定下次显示的首地址,这样即可实现波形的左 右移动,从而显示出波形的任意一部分。
2 系统软件设计流程 本波形存储器系统的主程序分为初始化和键盘管理两部分。图6为其 主程序框图。其中初始化模块主要是在系统加电后炝瓿啥缘テ机系统即外围元件 的初始化熑缍裕校樱罚玻保钩跏甲刺的设定、对定时器和DMA系统初始状态的 设定以及为系统变量赋值等。
由74LS148和74LS76组成的8按键键盘管理模块由A T89C51采用查询方式进行处理。为了提高系统的可靠性,此处没有使用中 断方式。键盘管理的功能是根据按键的功能号和当前状态来转入相应的状态,并 执行有关功能模块,然后进入下一次循环。为了方便键盘的管理,本设计专门开 辟了一个8字节的RAM区作为键盘的管理控制区(这样)每次处理键盘服务程 序时只须访问此区即可。
3 可靠性设计 为了提高本系统的可靠性,本设计还采用了以下几项措施:
(1)采用监控电路。对单片机系统进行监控。笔者在设计时,采用 的是MAX813微处理监控芯片,通过该芯片可使程序在进入死循环时能够重 新复位,从而保证了软件系统运行的可靠性,同时,在系统软件设计时,笔者还 采用了软件看门狗技术。
(2)在可靠性方面。系统初始化时,也已用单片机对所有端口按各 子模块要求进行了相应设置。
(3)系统开启后,存储器会首先运行自检程序,以检查存储单元。
若发现有连续9个存储单元已坏,则在数码管上显示“-error-”,否则显 示“success”。