基于单片机和EDA技术的逻辑分析仪设计

时间:2020-08-28 18:07:57 电子信息工程毕业论文 我要投稿

基于单片机和EDA技术的逻辑分析仪设计

 

摘要本设计采单片机控制8路逻辑信号电平采集;采用EDA技术设计的CPLD芯片处理逻辑信号,控制点阵扫描和分析结果在示波器上显示;单片机和CPLD间采用中断方式交换数据。该设计具有1、3级触发方式,触发字位置和浮动时标线显示等功能,以及友好操作界面和波形稳定显示等特点,并拓宽示波器使用功能。

 

关键字:点阵扫描控制;逻辑分析;CPLD;VHDL编程

 

The design of the logical analysis apparatus of one-chip microcomputer and the EDA's technology baseding on

 

 

AbstractThis design uses the one-chip microcomputer to be controlled gathering of logical signal levels of 8 tunnels, Use CPLD's chip of EDA's technical design to the logic signal processing and Control  scanning to the lattice signal and The result of display analysis on the oscillograph , Use the interrupt mode exchange data between one-chip microcomputer and CPLD. this design has 1 and 3 grade of method of activation , trigger word seat display and time to be marked thread display  etc. merit abilityAs well as friendly operation interface and waveform stabilization what shows  etc. characteristic , And widen the oscillograph use merit ability .

 

Key wordsThe lattice scanning control; The logical analysis; CPLD; VHDL's programming

 

1  引言 

 

逻辑分析仪是数字电路调试和信号分析中不可缺少的工具。本设计参照“2003年全国大学生电子设计竞赛”的题目,用双踪信号示波器作为逻辑分析结果显示设备;用单片机控制逻辑信号采集和逻辑分析仪的各项功能操作;用EDA(电子设计自动化)技术设计的CPLD(复杂可编程逻辑器件)芯片处理逻辑信号,控制逻辑分析结果波形的点阵扫描;达到一般逻辑分析仪应有的功能和指标[1]。本设计的逻辑分析仪特点是性能稳定、成本低,并拓宽了示波器使用功能。

 

2  总体结构及各硬件设计

 

逻辑信号分析的总体结构如图1所示;其中逻辑分析仪由8路逻辑信号检测电路、单片机系统和CPLD点阵扫描控制电路构成。逻辑分析仪能接受8路逻辑信号(D7~D0)和位传送时钟信号(B-CLK);其接受的逻辑信号形式如图2所示。

 

600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-7831.png" width="554" height="202" />

 

逻辑分析仪各部分解释如下:

 

2.1  逻辑信号检测

 

8路逻辑信号检测部分由81采样模拟开关(CD4051)和模数转换器ADCMAX7820)组成,如图3所示。为了适应较宽范围(0.25~4V)逻辑信号门限电压(逻辑1的电压)的输入,对逻辑信号电平采用模拟信号采样,当AD转换获得逻辑信号电平的数字量(A/D-DATA)大于门限电压对应的数字量时,确定为逻辑1。由于分时检测8路逻辑信号(D7~D0),要求采样开关速度和AD转换速度要远远大于逻辑信号位传送速度;当位传送时钟信号到来时,才能保证8路逻辑信号每1路采样点在靠近位的中间位置,从而得到可靠的电平数字量。

 

本设计的CD4051从地址选通(CH-SELECT)到数据输出时间约500nsMAX7820转换一路信号所需的时间约3ns,采集处理8路逻辑信号各位(1个字节)所需时间约5us。若8路逻辑信号每位采样点在位中间的三分之一区,则逻辑信号的位宽约为15us,因此本设计的逻辑分析仪可对66kHz以下波特率的8路信号进行逻辑分析。

 

600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-16949.png" width="519" height="222" />

 

2.3  单片机系统

 

单片机系统[2]由单片机(AT89C51)、点阵液晶显示模块和4×4键盘三部分组成,其示意图见图1的“单片机系统”部分。单片机的P0口在不同的时间段分别用于显示数据输出,逻辑信号采样数据输入,采样字节输出的数据传送;P1P3口用于逻辑信号检测(见图3引脚标注)、CPLD点阵扫描控制(见图4引脚标注)和液晶显示模块的操作控制;P2口用于4×4键盘扫描及按键信息接受。单片机系统的键盘和显示部分用于完成13级触发方式,1级、3级触发字,16级门限电压选择,数据采集区的前、中、后显示页面(16字节)选择,时间线位置等参数的设定和显示,以及相关功能操作。

 

2.4  CPLD点阵扫描控制

 

CPLD点阵扫描控制部分由可编程逻辑阵列(CPLD)、数模转换器(DAC)和XYZ轴扫描信号放大电路组成,并在CPLD控制下工作;其电路如图4所示。

 

600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-5417.png" width="549" height="280" />

 

CPLD向通过输出中断CPLD-INT请求(单片机的INT0)从单片机系统获得采样字节;对每个采样字节按顺序进行8路逻辑信号位波形(或时标线)的点阵扫描的信息处理,并控制数模转换(DAC)、信号放大、信号扫描显示和回扫信号消隐处理。在处理一个页面(1/3数据区)16个采样字节后,重复处理过程。

 

CPLD内部由计数器链(2分频器,点、位、字节计数器)、数据接收器、X轴位边界定位器、加法器、Y轴定位输出器、21多路器、消隐控制器等部分组成,如图5所示。CPLD外部引脚CLK(CPLD-CLK)EN(使能)TR(信息类型控制)DI[7~0] (CPLD-DATA)CP(锁存)-INT(CPLD-INT)分别连逻辑分析仪单片机的ALEP1.7P3.1P0[0~7]P3.0P3.2引脚(见图4的引脚标注);-WRA0(通道选择)DO[7~0]分别连DAC-WRA0D[7~0]引脚;Zout连信号放大器的Z轴输入端。CPLD工作原理说明如下:

 

600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-12884.png" width="438" height="246" />

 

开机后,CPLD内部复位,EN=0CPLD处于保持状态。

 

1.数据传送——首先设置EN=0CPLD处于保持;然后,CP的上升沿,将外部数据送入数据接收器;设置TR=0,传送8路信号采样字节;TR=1,传送触发字或时标线位置的4位编码(给出16个位置信息)。传送数据后,设置EN=1,CPLD工作。

 

2.逻辑信号扫描——在EN=1,TR=0前提下,外部时钟CLK的上升沿驱动计数器链工作。字节计数器(采样字节计数)值ByteC经过X轴位边界定位器处理后的值X1X1=ByteC*10H)与点计数器(位内点计数)值Xc再经过加法器处理,产生当前扫描点X轴数字量X=X1+Xc=ByteC*10H+Xc。位计数器(采样字节各位计数)值BitC和数据接收器(存放采样字节)值DI[7~0]经过轴定位输出器处理,产生当前扫描点轴数字量的Y有两种:①当DI[BitC]=0,Y=0E0H-(BitC*20H)+05H;②当DI[BitC]=1,Y=0E0H-(BitC*20H)+15H。A0(A0=1)、负(A0=0)状态对2选1多路器的驱动下,分时将Y、X送到DO[7~0]总线上;以此同时,在两个-WR(-CLK)的上升沿(A0正、负半个周期的中间)驱动下,将送到DO[7~0]总线上的YX分别写入数模转换器DAC的两个通道。位计数器值BitC=7时,表示一个采样字节处理完,CPLD发出传送下一个字节的中断请求-INT。逻辑分析仪单片机收到中断请求后,进行一次数据传送处理。

 

3.触发字和时间线位置扫描——EN=1前提下,TR=1数据接收器DI[3~0](位置信息)送入字节计数器,并控制点计数器值Xc=0,经过X轴位边界定位器和加法器处理后,产生扫描点X轴数字量X=X1+Xc=DI[3~0]*10H+0同时TR=1控制Y轴定位输出器的值Y按计数方式工作,在CLK1驱动下,输出Y=00~0FFH的计数值,在示波器屏上显示竖线,表示触发字或时间线位置。当Y=0FFH时,表示位置信息扫描完毕,发出传送下一个字节的中断请求信号。

 

4.消隐处理——在Xc=0FH,即开始下1路时钟位各点扫描时,点计数器输出Z1=1;在BitC=7,即开始8路信号下一组各时钟位(下一个采样字节)扫描时,Y轴定位输出器输出Z2=1;在Y=OFFH,触发字和时间线位置扫描结束时,Y轴定位输出器输出Z2=1;在A0=1时,为了消除当前传送的Y轴数字量与前一次X轴数字量产生的干扰扫描点,2分频器输出的A0使Z3=1Z1、Z2、Z3信号经过消隐控制器(或非门电路)处理,使Zout为低电平,经反相放大器处理后,向示波器Z轴输出+12V电压,以消除回扫线和干扰点。

 

双踪信号示波器调整到X-Y工作方式,探头Y1为X轴输入,探头Y2为Y轴输入,显像管电子枪控制端为Z轴输入。CPLD输出的XY轴数字量X、Y经过数模转换和放大处理后,产生示波器XY轴扫描的模拟信号,在示波器屏上显示8路逻辑信号。CPLD输出的Zout信号经放大后,控制示波器的Z轴,以消隐回扫线和干扰点,使8路逻辑信号清晰的显示。

 

3  软件设计

 

软件设计部分有逻辑信号检测及数据采集处理、键盘显示扫描处理、采样字节输出处理和CPLD内部结构设计VHDL(硬件描述语言)编程四部分。本文主要介绍逻辑信号检测及数据采集处理和CPLD结构设计VHDL编程部分。

 

3.1  逻辑信号检测及数据采集处理

 

逻辑信号检测及数据采集处理是通过单片机的INT1中断服务程序来完成。其中1级触发字逻辑信号检测中断服务程序和数据采集处理子程序流程如图6、图7所示。

 

当各项参数设定后,按“确认键”保存参数,并打开逻辑信号检测中断(INT1),关闭采样字节输出中断(INT0)。每次逻辑信号发生器的位传送时钟(B-CLK)触发一次逻辑信号检测中断服务程序的执行,每次服务程序执行要进行8次路选和8AD转换启动,并分别检测转换结束状态和读取转换结果。每次逻辑信号检测中断服务,要调用8路逻辑信号数据采集处理子程序,将8路信号状态转换成1个采样字节,并存入采样数据区。当数据区存满后,关闭逻辑信号检测中断,打开采样字节输出中断,等待CPLD输出中断请求(CLPD-INT)

 

600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-27242.png" width="514" height="421" />

 

CPLD点阵扫描控制电路在每次输出81位信号波形后,向单片机系统发出采样字节输出中断;对每次采样字节输出中断的服务,单片机要对CPLD进行一次采样字节输出及写操作控制。输出的`采样字节有波形数据、触发字和时标线位置三种数据类型。

 

3.2  CPLD结构设计的VHDL编程

 

CPLD内部结构各部分设计采用硬件描述语言VHDL编程来实现[3]。由于篇幅所限,仅给出部分设计的编程及解释说明。

 

1.点计数器设计的编程

 

if TR='0' then     -- TR=0时,逻辑信号时钟位的扫描点计数。

 

  if f='0' then    -- f为回扫时钟插入标志位,f=0时,正常的点计数扫描。

 

    Xc<=Xc+1;      -- 点计数增1。

 

  else

 

    Xc<=Xc;        -- f=1时,Xc保持1个时钟时间。

 

  end if;

 

  if Xc="1111" then

 

    f<='1';        -- 计完1个时钟位16个点后,f置1控制插入一个回扫时钟

 

    BitC<=BitC+1;  -- 采样字节的位计数增1

 

    Z1<='1';       -- 控制下一时钟周期不显示

 

  else 

 

    f<='0';        -- 控制正常计数

 

    Z1<='0';       -- 控制正常显示

 

  end if;

 

else              -- TR=1时,触发字和时标线位置扫描

 

  Xc<="0000";     -- 点计数器值Xc 置0

 

end if;

 

    程序中的“Xc<=Xc+1”语句仅为点计数器增1作准备,只有下一个时钟到来后,才计数增1变化;因此,对后边的“if Xc="1111" then”语句,判断到Xc="1111"时,已经为点计数器Xc变成0做好了准备。程序中的“--”为注释标志。

 

2.Y轴定位输出器设计的编程

 

if TR='0' then        -- TR='0'逻辑信号扫描,由位计数器值和数据接收器值确定Y值

 

if BitC="000" then   第1路逻辑信号,对应字节内的最高位,示波器上端

 

if DI(7)='0' then  Y<="11100101"; -- DI(7)=0,Y=E5H

 

else  Y<="11110101";              -- DI(7)=1,Y=F5H

 

end if;

 

elsif BitC="001" then              -- 第二路

 

if DI(6)='0' then Y<="11000101"; -- DI(6)=0,Y=C5H

 

else  Y<="11010101";             -- DI(6)=1,Y=D5H

 

end if;

 

elsif BitC="010" then              -- 第三路

 

if DI(5)<='0'then Y<="10100101"; -- DI(5)=0,Y=A5H

 

else  Y<="10110101";             -- DI(5)=1,Y=B5H

 

end if;

 

elsif BitC="011" then              -- 第四路

 

if DI(4)<='0'then Y<="10000101"; -- DI(4)=0,Y=85H

 

else  Y<="10010101";             -- DI(4)=1,Y=95H

 

end if;

 

elsif BitC="100" then              -- 第五路

 

if DI(3)='0' then Y<="01100101"; -- DI(3)=0,Y=65H

 

else  Y<="01110101";             -- DI(3)=1,Y=75H

 

end if;

 

elsif BitC="101" then              -- 第六路

 

if DI(2)='0' then Y<="01000101"; -- DI(2)=0,Y=45H

 

else  Y<="01010101";             -- DI(2)=1,Y=55H

 

end if;

 

elsif BitC="110" then              -- 第七路

 

if DI(1)='0' then Y<="00100101"; -- DI(1)=0,Y=25H

 

else  Y<="00110101";              -- DI(1)=1,Y=35H

 

end if;

 

elsif BitC="111" then              -- 第八路

 

if DI(0)='0' then Y<="00000101";  -- DI(0)=0,Y=05H

 

else  Y<="00010101";              -- DI(0)=1,Y=15H

 

end if;

 

end if;

 

else        -- TR='1'触发字和时标线位置扫描,Y轴定位输出器按计数方式工作

 

if Y<"11111111" then   -- Y<"11111111"时,计数增1,从下到上扫描位置线

 

Y<=Y+1;Z2<=0;    -- Z2=0,正常显示

 

else                   -- Y="11111111"时,消隐控制,发出中断申请

 

Z2<='1', INT<='0';

 

end if;

 

end if;

 

4  结束语

 

本设计将单片机和EDA技术结合起来,简化了硬件结构,工作性能稳定,经过应用测试,达到了逻辑分析仪应有的功能要求。

 

通过本设计,笔者认为,运用EDA技术设计电路,设计者可专注于电路的行为和功能,而不必考虑电路如何实现及电路布线,并且可通过计算机进行设计效果的模拟和修改,为设计者提供了更广阔的设计空间。用单片机和EDA技术开发的电子产品,在功能、性能指标和开发效率等方面比传统的方法有明显的提高,而且成本降低。

 

参考文献[1]顾乃级,孙续逻辑分析仪原理与应用[M]. 北京:人民邮电出版社,1973. 

 

          [2]李华,MCS-51系列单片机实用接口技术[M]. 北京:北京航空航天大学出版社,1993. 

 

          [3]潘松,黄继业. EDA技术实用教程[M]. 北京:科学出版社,2002.

 

 

【基于单片机和EDA技术的逻辑分析仪设计】相关文章:

1.基于EDA技术的FPGA设计

2.基于EDA技术进行的数字电路设计

3.基于EDA技术的现代电子设计方法

4.基于EDA技术进行数字电路设计

5.eda技术的发展和展望

6.EDA技术在电路设计中的地位和作用

7.EDA技术的电子设计要点

8.EDA技术主要特征和要点

9.电子工程设计的EDA技术详解