首页 > 范文大全 > 正文

基于单片机的数字示波器的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单片机的数字示波器的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】数字系统设计已进入一个新时代。本文是笔者在教学工作中带领学生初步设计一种数字示波器,它是由双CPU进行控制的、能够进行彩显的嵌入式数字示波器。

【关键词】双CPU;单片机AT89C52;CPLD

引言

伴随着计算机的迅速发展和现代化工业控制的要求不断的提高,人们已不满足于单纯的文字操作,而是采用更真实、更形象的图形操作方式。但由此带来的一个问题就是资源的极大浪费。基于这个原因,本次设计了一种通过双CPU 控制 、可脱离计算机的、根据接收的指令显示波形的数字示波器。它主要由CRT显示卡和A/D变换板组成。以两片AT89C52单片机为微控制器,A/D板中的AT89C52单片机负责发送宏命令给CRT显卡中的单片机,其接收到命令后转至相应的程序执行,最终在屏幕上显示信号源的波形。在本次设计中最突出的是使用了目前较为先进的CPLD(复杂可编程逻辑器件)技术,从而大大简化了电路,提高了产品的稳定性和可靠性,提高了工作效率。

1.数字示波器的工作原理

示波器是最通用的电子测试仪器之一。它的主要功能是精确复现作为时间函数的电压波形。波形的图形可用来确定量的信息(如幅度和频率),也可用来获得其质量的信息(如波形);示波器还可用来比较两个不同的波形,并测量它们的时间和相位关系。

根据应用范围的不同,示波器分为模拟示波器和数字示波器两类。从概念上看,模拟示波器和数字示波器是同类仪器,它们均可完成同样的测量,都显示电压波形,只不过仪器内部使用的技术不同。模拟示波器运用传统的电路技术,在阴极射线管上显示波形。而数字示波器是把原来的模拟信号转换成数字形式(一串二进制数),才能进行显示或进行存储。这意味着数字示波器是存储式示波器,因为它的波形是用数字方式存储的,因此数字示波器通常也称为数字存储示波器(DSO)。

数字示波器的输入电路和模拟示波器的相似。前置放大器的输出信号由跟踪/存储或取样/存储电路进行取样,并有A/D转换器数字化,经过A/D转换后,信号变成了数字形式。取样始终驱动A/D转换器、取样器、A/D转换存储器,对实时取样进行控制。在取样之前,电路必须维持示波器的全部带宽,但在A/D转换后,需要的带宽则可大大的下降。因为波形被存在存储器中,显示器的带宽只需做到刷新荧光屏(从存储器)时足够快,没有可见的闪烁就够了。所以我们可以用较低的带宽显示器来显示波形(和模拟示波器相比较,模拟示波器整个系统,包括显示器必需都能维持仪器的全部带宽)。

2.硬件设计

本次硬件设计分为两部分,分别为CRT显示器、A/D模数变化板。

2.1 CRT显示器的工作原理

CRT显示器分为五大部分:CPLD控制、RAM、ROM、89C52(作为CRT控制,取名为V51)和视频放大器。实现彩色CRT控制,目的是可受单片机和DSP器件的控制。基本方式为400X300、640X480、800X600,共七色。我们选用的分辨率是640X480(指可视分辨率)。CPLD在可视区里工作,51控制器在缓冲区(VC)里工作。两者不可同时进行,否则图像出乱。

彩色CRT控制用CPLD对RAM扫描,受V51控制。CPLD产生扫描地址(可三态),对八个数据线分成两组,每组三基色,由最高频率切换,这样每字节两点。

V51主要在VC期间对VRAM进行读写,也可在CNT为高时强制读写,V51无操作时均为高电平。采用P0为A0-A7、P1为A8-A15、P2为DB(P2.0为A16,P2.1为A17)、P3.3为VC、P3.6为WE负脉冲,P3.7为 CNT控制,(CNT 为负时,CPLD工作,V51必须置为高阻)CNT为正时,CPLD地址高阻,DB为0,VRAM的OE为正,V51可进行写操作。若在VC期间,由于CPLD自身置地址线为高阻,则可置CNT为负,使OE为负进行读操作。通过以上介绍,可大体了解CRT显示器的工作原理。而本次设计就是根据这样的工作原理来进行V51的软件编程。

2.2 A/D板的工作原理

A/D板主要有以下几个部分组成:TLC5510(A/D变换器)、CPLD、RAM32K、89C52(起主要控制作用,因此简称为M51)和运放器。通过单片机M51对CPLD的控制,实现对模拟信号进行数字变化,并将采样的数字信号存入存储器32K,接着通过M51对RAM有规律的取数,并将所取得数存入M51的高端存储器(80H-FFH),最后对这些数进行处理,即通过串行通讯口向V51发送宏命令,其接收到命令,立即转向相应的程序执行,并显示在屏幕上。

3.软件设计

由于本次设计是在多CPU环境下工作的,即V51和M51。所以编程总体上分两大部分。V51主要执行图形操作,软件功能是执行画图或填图,M51主要是发送宏命令,一共有16条宏命令,本次设计只用到12条,宏命令表如图1所示,V51在接收到M51发出的命令后,转移到不同程序,按串行命令所给的参数执行填图或画图。

宏命令代码 宏命令意义

00 全清屏

01 画点

02 画单行垂直线

03 画单行水平线

04 画矩形框

05 画矩形块

06 填16X16字形

07 填32X32字形

08 填图形

09 填8X8字形

0A 准备接收数据串

0B 发送128个字节数据

图1

3.1 V51的程序设计

彩色CRT控制的基本方式为640*480的点阵,经计算共有307200个,在硬件设计中已经介绍1个字节代表2个点,因此共有153600B,即150KB,显示器分三个区域,即64KB、64KB、22KB,分别称为0区、1区、2区。用十六进制表示为即A17、A16分别取00H、01H、02H。在V51编程的过程中,借用寄存器51H-56H。V51执行的画图和填图的子程序设计在这里就不多说了。

本次设计是属于嵌入式、多CPU的工作方式,所谓嵌入式是指可以脱离计算机工作,在本次设计中的显卡部分(CRT)是属于嵌入式,我们把主段程序调试成功,烧入89C52的片子,那么显卡部分就完全脱机。只要插入电源,就会进入我们的第一幅面。

本次设计是采用多CPU通讯的,也就是V51进行的任何画图程序都是通过M51控制的,那势必要有发送和接收程序。串行通讯是通过P3.0、P3.1实现的。根据硬件设计的要求,串行通讯的工作方式采用方式2,波特率为fosc/32。因此首先送92H给串行口控制寄存器SCON,即置SM0、REN、TI为1,再送80H给特殊功能寄存器PCON,即置SMOD为1。打开串行输出口,即P3.1置高。等待直到RI为1时,将接收缓冲器SBUF中的内容读出,存入寄存器。由于M51传送了8个数据,因此要进行8次循环,最后关闭串行输出口。在此程序的编写过程中要注意RI必须由软件清“0”。具体程序在这里就不详细介绍了。

因为显卡部分最后脱机,所以要将所有子程序汇总,以判宏命令的方式组织程序。在硬件设计中已说明除了全清屏外,一般对VRAM的读写都在VC期间进行,即在V51接收到M51发送过来的01-0B中任一条宏命令后,必须在等到VC下降沿时才能执行命令。设计VC有3ms,当P3.3测到VC下降沿时,打开T1计数,定时小于3ms,开始读写,T1计数到终端等待VC下一个下降沿,最后再置定时并退出中断,继续操作,直到操作完全消T1定时。

图2

3.2 M51的程序设计

M51通过串行口P3.0接收到P3.1发过来的允许发送信号的命令后,发送宏命令至V51,V51接收到命令后,后转至相应的位置,执行程序,并在显示器上显示出来。因此必须有一个宏命令的发送程序。根据硬件设计的要求,串行通讯的工作方式采用方式2,波特率为fosc/32。因此首先送80H给串行口控制寄存器SCON,即置SM0为1,再送80H给特殊功能寄存器PCON,即置SMOD为1。待P3.0(串行输入口)为1时,串行输入口打开,将寄存器的内容写入发送缓冲区SBUF中,等待TI为1再进行下一个寄存器内容的输入,以此循环。发送程序流程图如图2所示。

M51与V51之间能够通信,接着要做的主要是调通A/D板及采样信号。关A/D板调通的问题,由A/D板的工作原理可知,CPLD的引脚D0-D3决定采样频率和一次采样的容量。采样频率自定,本次设计选用40M的晶振,进行256分频,即得采样频率40M/256,因此D0-D2均取1,D3=1时,采数容量为16K, D3=0时,采数容量为8B,所以取D0-D3=1111,设P2为0FH,给P3.6一个负脉冲,设置采样频率,接着打开CPLD,进行A/D变换,直到P1.7变为下降沿,说明A/D变换结束。与此同时并将采样的数据写入RAM32K,其实RAM32K只用掉16K,将P3.5置低,51对RAM进行读数,一次读128个数,并送入89C52的高端寄存器,即80H-FFH,调节一次电位器,查看80H-FFH里的数据是否间隔相等,再调节,再查看若每次均是,说明A/D变换成功,不是,继续调通。

怎样取RAM中采集过来的点,这就涉及一个算法。采样频率fc为40M/256,则Tc=6.4us。而本次设计的波形频率为f=50Hz,周期为T=0.02s,所以在一个周期里可显示(0.02/6.48)*106 =3125个点,但本次设计显卡基本方式为:640x480,取坐标的长度为512个点,且显示两个周期。因此一个周期可显示256个点,也就是在3125个点中取256个点,3125/256=12,即每间隔12个点取一次,由于时间、人力等关系,本次并未设计双踪示波器,因此需要间隔24个点取一次。取点问题解决了,下面就是判数,取采样数80H为零点,大于80H的处于坐标的上方,小于80H的处于坐标的下方,按照这样的规则判数。本次设计还采用波形刷新的功能,即第一次显示一个与屏幕颜色不同的波形,第二次显示一个与屏幕颜色相同的波形,依次这样显示下去,达到刷新的功效。

4.结束语

本次设计的数字示波器基本能够实现所要求的功能,显示器控制驱动器能直

接接受单片机和控制信号控制,并且实现了多CPU系统信号处理。但由于时间,能力等问题,本次设计中仍然存在一些不足之处,例如:图像信息的传输速度比较慢、未设计双踪示波器等,这些都有待于进一步提高。

参考文献

[1]张友德等.单片微型机与原理[M].上海:复旦大学出版社,2000.

[2]涂时亮.MC68HC05单片机原理、运用及技术手册[M].上海:复旦大学出版社,1992.

[3]于海生.微型计算机控制技术[M].清华大学出版社,1999.

[4]戴梅萼,史嘉权.微型计算机技术及应用[M].清华大学出版社,1996.

[5]刘玉宾,朱焕立.单片机原理及接口技术实践教程[M].机械工业出版社,2004.