简易逻辑分析仪作者:萧奋洛王元祥杨志专(华中科技大学)编号:1-59赛前辅导教师:黄瑞光文稿整理辅导教师:肖看摘要本简易逻辑分析仪主要由数据信号发生器、程控逻辑门限设定、数据采集、触发控制、数据处理、波形存储、示波器显示控制和操作面板等功能模块组成。
本逻辑分析仪以单片机AT89C55和FPGA(ACEX1K50)为控制核心,除了实现题目要求的全部功能以外,还采用240×128点阵型液晶实现波形显示和全程菜单操作,采用红外键盘实现全数字控制,使得系统智能化和人性化。
此外,本系统还提供掉电保存和时钟显示等功能,使得系统更加实用。
在软件方面,本系统以多机通信为基础,让多个处理器协调工作,使得系统稳定可靠。
一总体方案论证与设计1 方案比较与选择方案一:采用单片机作为系统控制核心。
这种方案要求单片机除了完成基本处理分析以外,还需要完成8路TTL数据的采集与普通模拟示波器的显示控制。
单片机虽然具备灵活的控制方式,但受工作速率的影响,可能会使示波器显示屏幕抖动和出现明显的回扫线,难以达到题目的要求。
方案二:采用CPLD/FPGA(或带有IP核的CPLD/FPGA)作为系统控制核心。
即用CPLD/FPGA完成信号采集、触发控制与示波器的显示控制,由IP核实现人机交互和信号处理分析。
本方案优点在于系统结构紧凑,有很高的工作速率,但是调试过程繁琐,不利于实现友善的用户交互界面。
方案三:采用单片机与FPGA结合的方式。
即用单片机作为主处理器,完成人机界面、系统控制和触发控制。
用FPGA作为协处理器,完成8路TTL数据的采集与普通模拟示波器的显示控制。
这种方案兼顾了上述两种方案的优点,可以在硬、软件的结合上,使设计达到整体优化的效果。
因此,我们采用方案三。
2 系统设计方案本系统以单片机为主处理器,以FPGA为协处理器,其中FPGA主要完成8路TTL数据的采集与普通模拟示波器的显示控制。
在系统结构上,我们采用总线方式实现单片机对FPGA的控制流传输,使用双口RAM实现大量高速数据流的交换,使系统非常稳定、可靠。
图1给出了本系统的总体框图。
图1 系统框图二 理论分析与参数计算1 多级逻辑门限设定的计算题目要求逻辑门限电压可在0.25~4V 范围内按16级变化。
也即起始电压0.25V 1=a ,末尾电压V 416=a ,根据等差数列理论,其步长为V V V a a n a a d n 25.01525.0411611161=-=--=--=因此,对应的16级逻辑门限电压依次为:0.25V 、0.5V 、…… 3.75V 、4.00V 。
2 存储深度M题目要求示波器上显示8路波形(即行数8=Z ),每行位数bit m 201=,每页存储深度Byte bit Z m M 2082011=⨯=⨯=。
本设计扩展存储页数5=n ,故系统的存储深度为:Byte Byte M M n ni M M i 1002055111=⨯=⨯=⨯===∑3 扫描频率根据人眼的视觉惰性,当场频率Hz f V 48≥时,不产生亮度闪烁感觉。
由于示波器上要显示8路信号(即行数8=Z ),故欲得到稳定的波形显示,行频率为Hz Hz f Z f V H 384488=⨯≥⨯=本设计取场频率Hz f V 50=、行频率Hz f H 400=。
三 主要电路分析与设计1 八路数字信号发生器信号发生器需要有八路信号和一路时钟输出,其输出频率为100Hz 。
在这里使用一片小单片机AT89C2051作为信号发生器。
采用多机通信方式,由主机发送预置数据,信号发生器从机被动接收并产生相应的序列信号。
此外,信号发生器还使用8×8开关矩阵进行通道切换,实现一对一和一对多的波形通道切换控制。
2 通道输入信号调理电路题目要求输入阻抗大于50K Ω,故通道输入前端加一级电压跟随器,然后进入高精度、宽输入电压范围的电压比较器MAX912,整形后输出标准的逻辑信号,电路如图2所示。
同时,为了实现16级可变的逻辑门限电压,我们采用8位D/A 芯片TLC7524构成程控衰减器,5V 基准源AD586作为参考电压,此时D/A 输出电压为V D V D V D Vo IN INREF IN 0195.05256256⨯=⨯=⨯=其中IN D 为输入的数字量,改变IN D 即可改变衰减器的衰减倍数,而步长V d 25.0=,故数字步长△IN D =12。
最后输出作为比较器MAX912的比较电压。
图2 通道输入信号调理电路3 显示驱动电路显示部分主要由锯齿波扫描和信号扫描组成,我们根据需要还扩展了Z 轴的显示控制功能。
(1)由于屏幕上要显示8路波形,因此外部D/A 必须分时复用。
但为了避免回扫线对显示效果的影响,X轴输入与Y轴输入必须保持严格同步,而且DAC还必须具备足够快的转换速率。
因此,为了简化硬件设计,我们选择转换频率为10MHz的双通道高速D/A芯片TLC7528作为信号扫描输出,电路如图3所示。
图3 显示接口电路(2)示波器的Z轴具有亮度调节功能,我们通过控制Z轴的输入电压来实现触发位置的标定和回扫线的消隐。
实验证明:当Z轴输入电压为0V左右时,示波器显示正常波形;当Z轴输入电压为5V左右时,示波器显示灰暗波形;当Z 轴输入电压为10V左右时,示波器显示全灭。
由于我们利用FPGA直接控制Z轴,而FPGA的I/O输出电压为0~3.3V,为此我们在外面必须附加驱动电路。
驱动电路可以采用D/A的方式,但Z轴对小范围的连续电压输入并不敏感,因此我们直接利用比较器和模拟开关,实现对时间轴任意位置的亮、暗、灭三级标定,电路如图4所示。
图4 Z轴输入控制电路4 红外键盘和接收电路本系统采用电视机遥控器作为键盘。
接收部分采用红外接收头接收和单片机AT89C2051解码,然后通过多机通信协议向主机回传键值,进行按键处理。
5 掉电保存电路本系统采用EEPROM芯片24LC64对用户数据进行保存。
由于24LC64具有CI2结构,不仅可以节省宝贵的口线资源,而且有8KByte的存储空间,可以充分满足用户的要求。
四系统软件设计1 FPGA软件部分FPGA主要完成8路数据采集与模拟示波器的显示控制。
而显示控制的难点在于屏幕回扫线的消隐。
为此,我们采取以下措施,达到了彻底清除回扫线的效果。
一方面我们利用模拟示波器的Z轴实现消隐,即在锯齿波波尾通过控制Z 轴的输入电压,使屏幕熄灭,这样可以有效地抑制场回扫线。
另一方面我们将行回扫线移向屏幕两端以外,使屏幕显示非常清晰,其显示控制流程图如图5所示。
Array图5 FPGA显示控制流程图2 单片机软件部分单片机软件主要实现各种触发控制和人机界面。
在本系统中,主机需要通过多机通信协议控制所有从机;通过总线方式与FPGA通信,实现触发控制和显示图6 系统控制流程图控制。
系统控制流程图如图6所示,触发控制流程图如图7所示。
图7 触发控制流程图五测试方法与测试数据1 测试仪器DF1731SD1A直流稳压源 TEKTRONIX模拟示波器FLUKE 17B数字万用表 G6W伟福仿真器2 数字信号发生器的测试信号发生器输出频率为99.7Hz,8位序列完全可调:00000000~11111111。
3 单级触发的测试(当输入信号序列为00000101时)实验证明:当设置触发字为01010000时,系统在01010000位置触发,很好地实现了单级触发的功能;当设置触发字为11010101时,因为序列00000101无法通过移位得到序列11010101,故逻辑分析仪没有触发产生。
4 三级触发的测试(当输入信号序列为00000101时)实验证明:当设置三级触发字分别为XX1X1XXX、XX0X0XXX、XX1X0XXX时,系统在00101000位置触发,很好地实现了三级触发的功能;当设置三级触发字为XX1X1XXX、XX1X1XXX、XX0X0XXX时,因为这个触发条件永远不可满足,故逻辑分析仪没有触发产生。
5 多级逻辑门限设定的测试由于没有能够输出可变门限电压的数字信号序列发生器, 因此我们采用高精度稳压源输出连续可调的直流电压作为数字信号输入,通过比较逻辑门限电压和比较器发生逻辑跳变的最小输入电压,来测定电压比较器的性能。
具体测试数据如表1所示。
表1 多级逻辑门限设定的测试数据由表1可知,比较器发生逻辑跳变的最小输入电压与逻辑门限电压在误差范围内相等。
除了第一级以外,每一级的相对误差基本上都小于3%。
6 系统可实现的功能(1)屏幕上能非常清晰稳定地显示8路信号波形,没有任何回扫线的影响。
(2)时间标志线为细亮垂线,且处于码元正中间,可以实现左右随意移动。
(3)16级逻辑门限设定。
(4)多级触发控制和任意触发位置可调。
(5)触发位置能通过对应位置处的码元波形闪烁来表示。
(6)存储深度加大,可分页显示。
(7)240×128点阵型液晶实现波形显示和全程菜单操作。
(8)红外键盘实现全数字控制。
(9)掉电保存和实时时钟显示。
六误差分析与测试结果1 误差分析本系统的误差主要来源于以下两个方面(1)基准源的不稳定影响了D/A芯片的输出性能,使得每一级逻辑门限电压都存在一定的系统误差。
(2)电源纹波的干扰减小了系统的噪声容限, 从而降低了电压比较器的比较性能。
2 测试结果本系统除了完成题目要求的全部功能以外,还做了很多其他附加功能,有些甚至远远超过指标。
总而言之,本次比赛是很成功的。
AbstractThe system is combined with digital signal generator block, program-control threshold logic setting block, data sampling block, trigger control block, data processing block, waveform storing block, oscilloscope display control block and operating panel block. With core of FPGA(ACEX1K50) and MCU AT89C55, this logic analyzer delivers the basic functions. LCD(240×128) and infrared remote control make user interface more friendly.Additionally, this logic analyzer delivers storing user’s information and displaying time, making system more practical. On the side of software, this system is based on multi-point communication, makes all of the microprocessors work friendly. Additionally, makes the system more stable and dependable.。