简易逻辑分析仪摘要本系统是由单片机作为主控制器、可编程器件作为辅助控制单元来实现数字信号产生、逻辑信号采集和示波器显示。
由单片机为核心的信号发生器,实现了大范围可控频率、预设码型的信号输出;数据采集模块的输入电路中的程控迟滞比较器,提高了输入信道的抗干扰能力。
可编程器件高密度特点在本系统中的应用,大大减少了外围器件,增强了系统的可靠性。
带有LCD显示模块为用户控制提供友好的人机界面,实现了设置掉电保护功能,并支持鼠标操作和图形打印。
关键词逻辑分析仪单片机可编程器件程控迟滞比较器一、方案论证及选择方案一:利用普通的74系列移位计数器构成数字信号发生器,纯单片机方式实现逻辑分析仪。
图 1-1 方案一结构框图如图1-1所示,数字信号发生器部分,利用74系列的移位计数器的基本功能,通过拨码开关向置数端预置循环序列,通过TTL 驱动输出数字信号。
逻辑分析仪部分的门限电压由电位器控制。
这种方法单片机除了完成基本的数据分析外,还需要完成对逻辑数据的采集、存储、显示等大量控制工作。
方案二:由单片机产生数字信号序列,由另外两片单片机构成逻辑分析仪。
射随器门限 比较器电位器 调压电路单 片 机ZYX D/AD/A预 置拨码开关序列 输出数字信号发生器 简易逻辑分析100Hz 时钟键盘级联74 移位计数器 数码管图 1-2 方案二结构框图如图1-2所示,相比方案一在信号产生上方案二采用了单片机方案,数码管显示循环序列码状态,本方案用软件可以实现不同频率、更加复杂数字信号的输出。
在逻辑分析仪部分,部分的特点是双单片机结构,二者通过串口通信,下位机单片机3只负责显示,上位机单片机2通过D/A 输出程控的门限电平。
本方案解决了显示与数据采集处理不能同时工作的矛盾, 方案三利用FPGA/CPLD 的高速特点,实现系统并行工作,这是本方案相比于方案二的特色之一。
用可编程器件可以高速完成单一功能模块。
FPGA/CPLD 的使用弥补了单片机在高速采集和实时显示的弱点,使整个系统的处理能力远超过当前微控制器的水平,这使设计十分具有发挥的空间。
而且通过合理地划分软硬件的工作量,将使软件控制和软件编写变得容易。
单 片 机 2单 片 机 3单 片 机 1输出级TTL 驱动射随器D/A门限 比较器串口 通信ZY X D/A D/A数码管键盘数字信号发生简易逻辑分析键盘数码管图1-3 方案三结构框图如图1-3所示:系统分为四大部分:数字信号发生模块、主控制器、逻辑采集模块、显示控制模块。
硬件设计上包含两块单片机、一块FPGA 、一块FPGA,其中单片机1与TTL 驱动级组成的是数字信号产生模块; 单片机2为逻辑分析仪的主控制器,FPGA (带数据RAM )在单片机2的控制下完成触发控制、数据采集,并支持与主控制器的数据回读,它们构成了数据采集模块;FPGA 在单片机2的控制下完成示波器自动扫描控制,它们构成了显示控制模块,主控制器将符合X-Y-Z 扫描格式的数据写入缓存,FPGA2将自动地、并行地工作,其间不需主控制器的管理,直至显存被更新为止。
FPGA/CPLD 的采用为主控制器赢得了充足的系统管理时间,我们为系统设计了掉电设定保护、信息打印,并使系统支持LCD 、鼠标等设备。
方案一的优点是构成的系统规模较小,成本较低。
但是受到单片机本身89C51 单 片 机 1采集存储 FPGA数据RAM89C51 单 片 机 2FPGA输出级TTL 驱动双通道 D/AXY 示波器Z数字信号发生器显示控制模块键盘 打印机鼠标 LCD 掉电保护信号采集模块键盘LCD速度的限制,它不能适应显示的实时性和高速数字信号采集的要求,不利于对系统功能和指标的发挥。
方案二,主体由软件构成,编程量大,尽管实现实时显示,可是仍受单片机速度的限制,不能适应高速应用的场合。
方案三利用了FPGA/CPLD的系统加速方案,容易达到发挥部分的要求,而且还具有一定的优化和扩展余地,我们将软硬件的工作量进行了合理的划分,可以确保作品在规定的时间内高质量完成。
综合上面方案的优缺点分析,我们决定采用方案三作为我们最终实现方案。
二、理论分析与参数计算1、数字信号发生器(1)通道数:8路(2)最大模值:32(3)频率可程控范围:10Hz--10KHz2、逻辑分析仪(1)通道数:8路数字电路中8线制标准普遍存在,我们的设计的就是8通道信号产生和采集系统,这满足题目基本和发挥部分的要求。
(2)存储深度:1024bit题目的基本要求,水平分辨率scrbit/表示比特每。
其中,scr32bitHD/屏。
设计了分页显示设计32个独立页面,单通道存储深度要扩展为bit scr scr bit M 102432/32=⨯=。
(3)采样率: KHz 10我们设计的系统可以对内时钟和外时钟进行选择,内部时钟KHz f in 10=。
内时钟与时间分辨力的指标在数值上是相等的。
对内时钟采样的情况,存储、显示的数据序号与时间成正比,对于固定的存储深度可以存储的时间也是固定的,ms f M T in M 100000,101000===。
式(2-2) (4)触发控制回读数据中的触发点在存储深度中的位置只与延迟计数的模值有关,单片机可以通过程控延迟计数器的模值M ,来达到控制触发位置在存储深度中任意可调的目的,延迟计数次数D N 与触发位置在数值上是相等的,即D N L =+ 式(2-2)式中,+L 表示回读数据中触发位置距离正向最末一点的相对位置。
对于bit 1000的存储深度,延迟计数模值范围]1000,0[∈M 。
为了保证桶形存储器中没有历史数据残余,可以使用这里的一种 算法:单片机要发送的延迟值为d N ,必须使延迟计数器在使能之前预先延迟d p N t -=1000 式(2-3)这段时间可以通过软件设置来强制延迟。
(5)显示分辨率 40 ⨯ 32由于显示的线有垂直的线,因此我们没有采用平时显示曲线的xy 方式而采用了xyz 方式。
而xyz 方式显示占用空间时间都大,并且频率低的时候不容易观察,显示不稳定,而显示的数据的信息量比较小,仅有8个通道每一个通道又仅仅包含0-1电平,因此我们用用四个象素点来区别0-1电平,利用1个象素点来区别通道。
最小一个周期显示4个点,最多的时候显示8个周期需要32个点。
因此我们尽量的提高效率的情况下我们采用了40 ×32 的分辨率。
这样使得刷新频率在示波器上限频率不变的情况下可以提高。
如果需要看的效果更好一点的话可以看我们为更高级用户设计的同步显示的液晶上的波形。
(6)时基扩展我们用过采样的方法,对采集回的数据采样率f与扫描速度S档位设定0sKSa/10的采样率,将题目基本要求指标进行了较大幅度的提高,将扫s描速度最低100ms按1,2,5分档。
平移显示缓存在内存中的首址并刷新缓存,执行显示程序可以实现时基的平移,此时可以看见屏幕边缘的波形的前驱或者后继波形。
我们最多可以显示的不重叠的波形的页数为1000除以32 等于31页三、电路设计与实现1 序列信号产生器的实现序列形式由用户任意可编程的,频率产生的范围是KHz10,输出~Hz10的频率有两种形式:一是固定100Hz的频率输出,它是为了满足题目基本要求而设计的;另一个可以由用户编辑在设计范围的预置频率输出。
产生数字序列的原理是将用户输入的数字序列放入一块内存空间,软件按地址自增的方式将序列送出,如图3-1要产生题目示例中的波形只要编辑图右方的序列,依次将序列按照程控的频率KHz Hz 1~10送出之后,就形成了频率可控的循环移位序列,同理按照用户的编辑可以产生用户编辑的任意序列。
为了实现同步时钟的输出可以按照用户编辑的形式通过两片锁存器同步输出。
电路的实现比较简单,如图3-2所示只要用锁存器将当前单片机读出的存储器的值锁存即可。
为了实现同步时钟(外部时钟)输出,我们采用两次锁存的方法实现时钟的同步输出:首先向地址8000H ,传送1个BYTE 的数据,将当前的内存地址中的数据字,锁存到1U 中;锁存器2U 、3U 共用片选信号,当再次发送同步时钟,同步时钟将被锁存到锁存器1U 的输出端Q 1,上一次锁存到1U 中的数据字将同时锁存到2U 端,从而实现了同步。
输出时经过一级24574LS 缓冲器将CMOS 电平驱动为TTL 。
Q 0Q 1Q 7Q 6Q 5Q 4Q 3Q 210ms周期80msclock00000101 10000010 01000001 10100000 01010000 00101000 00010100 00001010地址自增图3-2 数字信号同步输出电路图2 逻辑输入电路设计输入电路的核心是比较电路,即将输入信号与设定门限电平相比较,当输入信号U的幅度超过门限电平时,比较器输出为低。
为了消除叠加in噪声,设计时引入正反馈,进行迟滞比较、可以消除噪声干扰的影响。
本系统采用LM339实现比较器功能。
LM339对比较信号源的内阻限制不大,共模范围宽,差动输入可以等于电源电压。
它可以满足输入电路对输入阻抗Ω50的要求,另外与D/A配合完成对门限电压16级≥K程控变化。
图3-3 迟滞比较电路形式及输入输出关系比较器的反馈到同向端电压,ffref O R R R V R V V ++=111 式(3-1)如图3-3按照正反馈电路跳变的临界状态,求出迟滞电平: 临界状态:高电压翻转时 H ref V V V =-+•)1(5ββ 式(3-2)与低电压翻转时 L ref V V V =-+•)1(0ββ 式(3-3)β为正反馈系数,ref V 为D/A 输出的基准电压,H V 为高迟滞电压、LV 为低迟滞电压。
可见,H V 和L V 都是在原来初值上叠加D/A 的步进精度。
由式(3-2)与式(3-3)可知,β•=-=V V V U L H W 5电路不仅满足V 25.0的步进要求,而且还要使L H V V -小于两个档位之间的差值。
我们将L V 置于每两档之间,可以满足上面的要求取V U W 125.0=所以,正反馈系数取401=βL V H VWUUiUo图3-4 单通道迟滞比较电路实际采用的如图3-4所示,其中3R 为输出的上拉电阻,反馈系数由电阻分压而得,2R 取为ΩK 390,4R 取为ΩK 10时,401=β 。
D/A 的模拟量的初值为V V V V ref 128.03940125.01125.0=⨯=-=β,D/A 步进精度为V 256.0,这样形成的门限电压的步进值与A D /输出模拟量的关系如表3-1中所示。
D/A 模拟输出(V) 0.128 0.384 0.64 0.896 1.152 1.4081.664 1.92 H V (V) 0.25 0.50 0.75 1.00 1.251.50 1.752.00 L V (V)0.125 0. 375 0.675 0.875 1.125 1.375 1.675 1.875 D/A 模拟输出(V) 2.1762.432 2.688 2.9443.2 3.456 3.712 3.968 H V (V)2.25 2.502.753.00 3.25 3.50 3.754.00 L V (V)2.125 2. 375 2.6752.8753.1253.3753.6753.875图3-5 迟滞比较器仿真电路图3-5为Multisim 仿真电路图:用电源模拟了当前D/A 的输出0.122V , 图3-6给出的示波器的波形记录,从放大后的波形上看V V H 25.0=、V V L 125.0=验证了我们的理论计算的正确性。