摘要:逻辑分析仪作为基础仪器,应该在基础数字电路教学中得到广泛应用。本文介绍了基于FPGA的液晶显示控制设计方案,通过使用OLA2032B逻辑分析仪,对控制线进行监测与分析,保证设计方案的准确性,或者在设计出现问题时,快速定位和解决问题。结果表明,逻辑分析仪在数字电路的设计、调试和分析中,起着很重要的作用。
关键字:LCD、逻辑分析仪、总线分析、触发
一、引言
逻辑分析仪是数字设计验证与调试过程中公认最出色的工具,它能够检验数字电路是否正常工作,并帮助用户查找并排除故障。逻辑分析仪的主要特点是能够同时观察多个信号;能够按高低电平、升降沿等模式触发多条信号线,并查看结果。在基础教学实验室中,逻辑分析仪应该与示波器处于同等重要的地位,但示波器的身影随处可见,逻辑分析仪多数是纸上谈兵,而且随着很多仿真软件的成熟,设计人员在计算机上便可以观察被控器件的输出信号,这样在教学实验室中,就回避了价格昂贵、操作繁琐、不易维修的逻辑分析仪,但软件仿真与硬件输出有时会有一定的差距,这就会造成设计结果与我们预想的结果不同,而且很难查找其原因,这就需要我们观察硬件电路输出的控制信号。本文针对逻辑分析仪的使用,主要介绍了OLA2032B独立台式逻辑分析仪在EDA实验教学中的一个典型的应用——基于FPGA的液晶显示控制设计方案。
二、LCD显示控制原理简介
1、LCD的显示控制原理
实验的过程中使用了清华大学提供的EDA GW48-PK2教学实验箱,主要使用其中的液晶显示模块,此液晶显示器为HS12864-3型液晶显示器,它是一种图形点阵液晶显示器,它主要由行驱动器和列驱动器及128×64全点阵液晶显示器组成,包含七种指令,读写指令共用八路数据。可完成图形显示,也可以显示8×4个(16×16点阵)汉字。
在实验箱上,可以由FPGA直接控制LCD液晶显示器,如图1所示,FPGA保存子模,生成绘图指令,并根据指令生成相应的时序,发送给LCD。LCD端的DDRAM控制器接收时序控制信号并将图像显示在液晶屏上。
图1 FPGA直接控制LCD示意图
液晶模块的硬件构成如图2所示,液晶屏被分为左右两个区域,它是通过片选信号CS0、CS1选择当前信号所控制的区域,读写指令共用八路数据,通过几根控制线完成液晶显示器的读写工作。该设备内置64×64位的显示存储器DDRAM,显示屏上各像素点的显示状态与DDRAM中的数据一一对应,DDRAM的数据直接作为图形显示的驱动信号。DDRAM中某一点的数据为“1”,则液晶屏上相应的像素点显示;DDRAM中某一点的数据为“0”,则液晶上相应的像素点不显示。图2中,IC3为行驱动器,IC1、IC2为列驱动器,IC1、IC2、IC3中含有很多功能器件。
图2 模块主要硬件构成
通过控制DI、RW、E、CS1和CS2这五个信号管脚的电平并向数据总线上发送相应的数据,我们可以对液晶屏控制器进行简单的操作指令,如显示开关设置、显示起始行设置、地址指针设置和数据读/写等指令。这些指令可以分为两类,即显示状态设置指令和数据读/写操作指令,根据控制指令表(表1)书写操作指令。
其中:D/I:数据/指令标志位,0表示数据总线上信号为指令,1表示数据总线上信号为数据;
R/W:读/写标志位,0表示FPGA向数据总线上做写操作,1表示FPGA读数据总线。
表1 液晶屏控制指令表
如图3所示,在设计的过程中,读写时序非常关键,为保证读写操作的正确性,可用逻辑分析仪进行调试,主要观察信号的时序关系,以及读写的数据值的正确与否。读写时序有具体的时序参数要求,可以通过逻辑分析仪的测量功能,测量其中时间参数与读取时序参数表对照,具体测量方法详见下文。
图3 读写操作时序
2、设计思路:
LCD显示控制器设计要点:
1) LCD的读写是一个连续的过程,需要设置好起始地址后连续的进行写入,这需要一个状态机来实现(LCD控制器);
2) 向LCD发送指令之前需要确定LCD的状态是否可以接收指令,即要先进行读状态字的操作,这也需要一个状态机来实现(LCD读/写接口);
3) HS12864-3液晶屏自带DDRAM,读写DB[7..0]实际上是和DDRAM交换数据;
4) 由于DDRAM为并行8位数据总线,为了发送数据尽可能简单,建议在LCD模块中采用双向8位RAM;
5) 不断刷新128*64的每一像素的数据,但只需产生数据向双向RAM中刷新。无需关心如何绘制到LCD上。
三、使用逻辑分析仪进行调试
1、设计过程中出现的问题
在实验结果中发现LCD模块每隔一段时间可能产生一些不稳定的因素,左半屏可能会不显示,有时出现滚屏的现象,有时会在液晶显示器上出现散点,或出现图像混乱现象,如图4所示。这种现象一般由于控制指令出现问题,控制线与数据线的时序关系出现偏差,出现这种现象需要使用逻辑分析仪进行调试。
图4 液晶显示的异常现象
2、搭建实验环境
基于以上问题,需要我们搭建一套实验环境,查找液晶显示过程中可能出现的错误,实验设备以逻辑分析仪为主,配备相应的测试附件,如果希望存储实验数据或者设置,还需要将逻辑分析与PC相连,利用逻辑分析仪的配套软件,将所要的数据存储下来。这样便搭建了PC实时控制软件+OLA逻辑分析仪+DUT待测设备的实验环境,如图5所示。
图5 实验环境
3、连接方式
在逻辑分析仪与被测电路相连时,一般逻辑分析仪的标准配件有两种连接形式,一种是插针连接方式,这需要实验板上预留排针式的测试端口,这种情况一般出现在专业的测试板上,连接比较轻松;另一种是飞机头连接方式,这种连接方式测试钩非常小巧,可以随意钩在实验板的测试管脚,对实验板没有特殊要求,如图6所示。另外,我们北京海洋兴业科技有限公司与美国Pomona公司合作提供很多其它形式的连接方式,如微型SMD测试夹、集成电路测试夹等等,根据用户的需求建立不同的逻辑分析仪测试方案。
图6 逻辑分析仪通过飞机头连接被测电路
4、逻辑分析仪的使用
为了更方便、更快捷的解决设计中存在的问题,我们需要很好的使用逻辑分析仪,利用其独有的特点和丰富的功能调试棘手的问题,所谓磨刀不误砍柴工,如果可以很好地驾驭测试手段,就可以达到事半功倍的效果。下面我们主要介绍OLA2032B逻辑分析仪在这个设计实验中如何最大的发挥作用。
1) Auto-Scale功能
将逻辑分析仪的测试线与被测电路中想要观察的信号管脚连接好之后,不需要任何设置,只要按下Auto-Scale功能键,待测信号便可以在屏幕上显示,类似于数字示波器的Auto-Set功能,给逻辑分析仪的使用带来前所未有的方便。如图7所示,接入的13路信号全部显示在屏幕上。
图7 Auto-Scale功能
2) 总线形式显示
由于逻辑分析仪的通道数很多,OLA2032B拥有32路数据通道,如果同时显示这些信号,未免会显得杂乱无章,这是我们需要总线形式显示一组或几组信号,每组的通道个数可根据实际情况设定,并且每组的信号有高位或地位的顺序关系。例如,此实验中,S0-S7是读写指令共用的数据通道,其它S8-S12为5路控制线,为了方便,可以将S0-S7设置成总线形式,并以十六进制或者十进制显示,这样可清晰的理解设计者的指令,如图8所示,可以看出大部分时间写入的数据为0,对照液晶显示控制指令表,可以看出写入的是液晶屏上空白的地方。
图8 总线形式显示
3) 通道命名
由于逻辑分析仪的通道数比较多,可以通过颜色来区分不同的通道,也可以给每一个通道命名,如图所示,我们给每个通道定义与实际意义相符的名字,这样就非常好区分,方便观察时序关系。通道的命名可以在仪器上操作,也可以在计算机软件上操作,后者使用计算机键盘,更加快捷。
4) 计算机软件
OLA2032B逻辑分析仪可以通过一根USB电缆与计算机相连,通过配套软件,可以读取采集的信号数据和设置,可以在PC上控制仪器,并且读取数据和控制仪器的速度都非常快,均可以达到USB2.0的速度,在计算机上显示的信号波形基本与计算机上的波形同步,没有延时。图7图8均为计算机存储的图片。
5) 触发功能
同示波器类似,OLA2032B逻辑分析仪也具备丰富的触发功能,包括高阶的多阶触发、或阶触发等等。首先可以设置每个通道的状态进行触发,如上升沿、下降沿、高电平、低电平等状态;其次可以进行脉冲宽度触发,捕获毛刺;另外可以进行多阶触发、或阶触发,我们称之为既并行又串行的触发,这种触发方式可以用来分析数据的包头、包尾等。在我们的实验中,我们可以根据信号的时序关系触发指定位置,例如图8的触发方式为使能端EN的下降沿,这里只用到了最简单的单通道下降沿触发方式。
6) 观察时序使用测量功能
如前所述,对于液晶屏幕的读写时序有严格的时间限制,如果显示出现错误,很可能是因为读写时序以及其持续时间不满足要求,所以我们需要使用逻辑分析仪的光标测量功能来查找问题所在。OLA2032B提供了三组六根光标,可以测量每根光标对应基准位置的时间差和没组光标两根之间的时间差,这样便可以将测量结果与液晶显示器参数对照,查找问题所在。请对比图8与图3的时序关系。
四、使用逻辑分析仪的注意事项
1、输入信号的电压
由于数字信号的电平均较低,一般在5V以内,所以逻辑分析仪的耐压能力较差,所以尽量不要将电压较高的信号,长时间的接入逻辑分析中。例如,逻辑分析仪有时也可以用来测量和分析一些串行总线,如I2C、SPI等串行总线,但是一般不用逻辑分析仪分析RS232总线,因为RS232的电平较高,超过了逻辑分析仪的耐压能力。
2、信号阈值
阈值是判决信号为高电平或低电平的门限电平,所以对于同一个信号,对应不同的阈值可能得到不同的结果,所以我们要根据实际情况选择阈值大小,有些用户想要双阈值的判决,可是大多数逻辑分析仪没有这项功能,一般将逻辑的域值设置成高电平的门限即可。
3、存储深度
逻辑分析仪在采集信号时都会将采集到的信号存储到存储器(Memory)中,根据用户的要求,需要采集多长时间、定时分辨率为多少来设置存储深度,OLA2032B最大存储深度为512Kbit/每通道。
4、数字信号与模拟信号的相关性
逻辑分析仪观测到的信号,我们称之为“伪信号”,只有高低电平之分,也就是说逻辑分析仪观察到的信号只有水平轴是有意义的,它反映信号的时间关系,而垂直轴是没有意义的,它并不代表幅度,如果信号出现了问题,尤其是串扰、毛刺等现象,我们要是想知道其来源以及产生原因,还需要与其它仪器相配合,如示波器、频谱分析仪等等。
小结:
本文介绍了逻辑分析仪在EDA教学中的应用,通过OLA2032B逻辑分析仪调试基于FPGA的LCD显示控制设计方案的实验。在测试的过程中,我们可以发现逻辑分析仪在基础教学中起着很重要的作用,比示波器更适合调试数字电路。实践证明,逻辑分析仪可以缩短我们的设计时间,解决其它仪器或者软件解决不了的问题,并且它是多通道的时序分析的唯一解决方案,它可以同时看到硬件电路实际输出的多路信号。海洋仪器推出的OLA2032B逻辑分析仪,希望可以解决逻辑分析仪在基础教学中作壁上观的现状,较高的性价比真正做到让数字电路教学用得起逻辑分析仪。在这里非常感谢清华大学的老师给我们这样好的平台,使我们对我们的产品更有信心。
版权声明:本资料属于购线网所有,如需转载,请注明出处!