D7简易逻辑分析仪摘要本系统由8位可预置的循环移位数字信号发生器、简易逻辑分析仪两部分组成。
循环移位数字信号发生器由51单片机控制,可以产生8位逻辑信号序列和时钟信号波形,并且逻辑信号序列可以预置。
其中一路输出电平可在0~5V内调节。
采用16×2液晶显示各设置参数,显示直观,设置方便。
在简易逻辑分析仪的设计中,由于要在示波器上显示8路波形,此操作占用大量运算时间,故而采用双单片机协同工作的方式:其中一片单片机作输入控制、数据存储、数据显示及各控制参数设置;另一片单片机控制D/A转换器输出波形到示波器。
两单片机之间采用串行方式进行通信。
我们采用XY扫描方式的显示方法。
X轴的锯齿波信号由D/A转换器产生,由于要同时显示8路信号,所以Y轴的信号由被测信号、时标信号和参考电平相加得到,在软件配合下,可以比较方便实现8路信号的稳定显示,同时也可显示时间标志线和触发点位置。
在本设计中,采用插线连接信号发生器和简易逻辑分析仪,连接方式灵活、方便。
数据采集有单级、多级(3级)触发方式。
信号采集电路中采用门限电压调节电路,可以采集0.1~4.5V门限的各种逻辑电平,存储深度达到24Bit,示波器可以实现对8路24Bit信号同时显示。
时间标志线,触发点等功能完善。
达到了基本的设计要求,并对其它的功能进行了较好的完善和扩充。
第一部分:方案论证与比较由于本题目实际由两个相对独立的部分组成,所以我们对两个部分分别进行分析讨论:一、数字信号发生器根据题目要求,我们考虑可以采用以下几种方案可以采用:1、方案一:采用555定时器和可预置移位寄存器。
用74LS194A接成8位可预置循环移位寄存器,方波发生器提供一时钟信号给移位寄存器,预置数用8个波段开关接入(即循环序列)。
此方案简单可靠,但信号频率不易更改,硬件复杂,不易扩展。
2、方案二:采用EPROM固化波形输出,EPROM存储容量大,将各种波形的产生程序固化到EPROM中,一振荡器接一8位的计数器送EPROM 8位数据输出,8位计数器需要3位地址线再加上8位选择开关切换不同波形显示,这样就有11位地址线可寻址2K空间。
尽管此种方法可产生较好的波形,但使用时不够灵活,只有固定的几种波形。
3、方案三:用PC 通过软件编程可以从并行口输出信号波形,不需要硬件电路,且设计灵活,但是不适合电子设计竞赛,并且PC体积大,携带不方便。
4、方案四:采用中规模FPGA,使用VHDL语言设计移位寄存器。
此方案可以实现精确定时产生信号,且信号频率可调,体积小, 但其显示电路占用资源多,这样设计出来的电路系统将大且复杂。
5、方案五:采用一片89C51单片产生波形序列。
用单片机产生数字信号,设计简单,设置灵活,频率调节方便,并且易扩展其他功能,有它独到之处!综合分析上述各方案,比较其优缺点,包括灵活性、可靠性、可扩展性和易操作性,所以选用方案五。
二、简易逻辑分析仪我们先对题目要求进行简单分析:要实现本题目的基本要求,主要实现数据采集存储和控制示波器显示的功能。
其中数据采集功能要求可采集8路信号,采集深度20位(我们的方案选择24位),数据量为24×8=24bytes,对于一般的单片机系统很容易实现。
对于显示功能,要求用示波器显示清晰稳定的8路数字波形,再包括额外的时间标线和触发点的显示,则共需要9个通道。
对于示波器来说,为了显示的波形清晰稳定,一般要求扫描的刷新频率f>25Hz。
每显示一路信号,需要沿X轴扫描24个位,设定每个位需要显示10个点,则显示一个通道需要24×10个点。
同时显示9通道的数字波形,则共显示24×9=216个位,216×10个点。
由此可知,扫描一个点所需的时间为:1秒/(25祯*24位*9通道*10点)=18.5微秒/点。
对于采用12MHz晶振的单片机来说,仅能执行大约15条指令。
如果数据采集存储和控制显示功能由同一单片机来实现,处理起来十分困难。
即使是24兆的单片,也只能执行30条左右而已。
因而若用单MCU来实现,则须用更高性能的单片来实现。
因此只用一片普通51单片来实现是不现实的。
针对以上分析,提出以下方案1、方案一:采用高性能单CPU系统实现,比如32位的ARM芯片作为控制系统核心。
如果采用此方案,可以很好的解决同时采样和控制显示的功能,但是ARM 系统设计调试复杂,在短时间内难以很好的完成设计,所以不宜采用此方案。
2、方案二:针对分析中提出的问题,我们也可以采用两片普通51单片机来实现系统设计,一片51实现数据采集,存储;另一片51实现控制示波器实时显示功能,两片51之间采用串行通信来解决数据通信问题,这样的方案可以满足题目提出的设计要求。
3、方案三:采用大规模FPGA来实现系统,采用FPGA来实现相应功能,一般是使用状态机方式来实现,即所解决的问题都是规则的有限状态转换问题。
分析本题目的要求,可以看出,其中的逻辑控制灵活多变,适合于采用程序控制的cpu执行方式,如使用FPGA来实现,大部分的资源会消耗用来控制键盘和显示等辅助功能,用在主逻辑控制方面的资源相对比较少。
另外,考虑到逻辑复杂程度和实现规模,可采用芯片大概要到Alter EPF11C50、Alter EP1C6等级别的芯片来实现,但此种规模PLD系统受实验室条件限制,无法顺利开发,而且其所需元器件和EPC配置芯片在本地无法买到,因而综合比较后我们淘汰掉本方案。
综合分析上述各方案,比较其优缺点,包括灵活性、可靠性、可扩展性和易操作性,所以选用方案二。
第二部分:信号发生器实现方案一、硬件组成:硬件结构框图如下:信号发生器由3个小模块构成1、输出滞留稳压电源模块电路图如下:本模块主要完成对个电路供电的功能,主要由电源变压器、桥式整流器、电容滤波器、三端集成稳压器等组成。
其作用是将交流电转换为平稳的直流电,核心部分是整流电路和稳压电路。
电源变压器将交流220V电压变为7.5V交流电,经由桥式电路全波整流作用以后,得到脉动直流电,经C5滤波后得到9V的直流电,电容器C6为三端稳压器W7805的输入端补偿电容,其作用是消除输入端引线过长引起的自激振荡,抑制电源的高频干扰,安装时尽量靠近集成稳压器,C7、C8为输出端补偿电容,以改善输出瞬态响应。
2、信号发生器模块连接如原理图1.1所示采用89C51产生逻辑循环序列信号,由P0口输出,即Q0--Q7的八路信号输出。
输出序列信号由T0计数器溢出中断产生,采用方式1。
MAX813L具有上电复位、Watchdog输出、掉电电压监视、手动复位四大功能。
WDI(Watchdog Input)主要是作为Watchdog计数器重定用的。
在1.6秒内若CPU 不触发复位看门狗定时器,则WDO(Watchdog Output)将输出低电平。
复位电路分为手工复位与上电复位。
上电复位用比较器产生触发信号触发触发器,以此产生复位信号。
同时,对时基产生的脉冲进行定时,当复位时间达140毫秒时,Reset 发生器产生一脉冲使复位信号无效。
上电复位时,只要电压低于4.63V,复位信号Reset就有效;当电源电压超过4.63V时,Reset信号仍将继续保持140毫秒左右,以保证CPU复位可靠后无效。
手动复位时,MR(Manual Reset)接地时间不小于150纳秒,则可产生一个手动复位过程。
即在复位端产生140毫秒的有效复位信号(高电平有效)。
若将WDO端与MR连接,则可组成上电复位及看门狗复位电路。
3、显示部分液晶显示选用CA1602A,LCD显示数据输出接P1口,。
液晶显示内容第一行为标题信息,第二行开始的8位0、1数字是循环输出的逻辑信号序列,接着输出的是信号的频率值。
二、软件组成:1、流程图:程序流程图如1.2所示。
2、软件说明:在初始化部分,其频率值F的具体计算如下所示:T0的计数初值:NUM= 65536-Fosc/(12×F) 对89C51 Fosc=12MHz输出时钟频率为:F=100HZ,则一个时钟周期循环输出8位序列中的一位。
则定时输出时钟脉冲时,NUM=65536-12M/(FF*12) FF=F/2;要输出较为精确的频率,用计算到的常数进行循环产生脉冲,并按执行实际情况适当进行调整计数初值,使实际周期准确。
第三部分、简易逻辑分析仪方案实现一、结构组成:本分析仪由数据采集存储和控制显示两部分构成:数据采集存储模块由信号输入电路、89C52单片机、小键盘和液晶显示模块组成;逻辑状态与波形显示模块由D/A变换器(TLC7226)和89C52构成。
两模块之间采用串行通信方式。
结构框图如下:二、数据采集和存储部分此部分对应框图中的MCU1、电压比较器、键盘和LCD液晶显示1、输入电路:八路输入信号通过电压比较器LM339和D/A转换器TLC7226提供的基准电压作比较后,作为存储单片的输入,8路信号接入LM339同相输入端,可以获得较大阻抗。
2、触发和存储原理:本部分功能主要依靠51单片机来实现。
根据题目要求,对逻辑信号的采集是要依靠触发字来触发的。
触发字又分单级触发字和三级触发字两种,单级触发字的预置依靠小键盘输入实现。
当单片机采集到的状态字和用户所提供的触发字8位逻辑状态完全一致时,开始一次数据采集,连续采集24位,然后存储到显示缓冲区中,这样每个显示通道的存储深度为 24bit;对于三级触发字方式,设定从外部采两位的状态,连续取三次,都和我们设定的两位逻辑状态一样的情况下,将进入3级触发采集状态,开始采集。
采集完24位数据后,存储起来。
为了同时显示8路信号,所以数据送去显示前要把采集到的数据进行拼装处理,把采集到的24个字节排列成适合显示的8通道数据组合,每一通道存放从同一输入端口采集到的24BIT信息即组合形成8个存储深度为24BIT的数据显示通道,这样就可以把数据依次送到示波器上按行扫描显示。
三、逻辑状态与波形显示部分此部分对应框图中的MCU2、D/A转换器和示波器。
本部分的主要难点集中在示波器显示控制上,我们先对示波器的显示方法进行分析讨论:1、显示方法分析:要能同时在示波器上看到8路信号波形,模拟示波器需要用外接扫描信号方式工作示波器上显示数字信号发生器的8路信号和1路触发点位置标识,共需9个通道。
同时显示这9个通道的信号,需要采用动态扫描的方法:借助9个不同的基准电压,使显示的9路波形分别处在不同的位置上,即把要在示波器上显示的信号电平Qi+Vi偏置电平(i=0~7)加与示波器Y轴输入端。
X轴输入则是由TLC7226提供的线性锯齿波。
显示的信号电平Qi+Vi其叠加效果如下图的Y++所示:具体扫描方式有三种方案可供选择:(1)、按行扫描方式,X用外触发方式,扫描10次扫完一屏。