- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
采用C8051F020设计的嵌入式测试仪
0 引言
测控技术的不断发展,将嵌入式操作系统应用到测控领域,从而实现在线实时测试已经成为一种发展趋势,而且越来越多的工业现场对各种测试仪器的需求不断增高,希望测试仪器能够向在线实时测试方向发展。基于这些需求,本文给出了基于C8051F020控制的测试仪键盘显示部分的设计方案。在整个嵌入式测试系统中,本部分只是作为下位机,并通过RS485总线接口与上位机进行通信,从而将接收到的测试数据根据控制命令的要求在显示器中予以显示,同时将测试人员发送的各类请求信号回送给上位机以对测试数据进行一定的处理。
1 系统硬件设计
本系统的硬件由MCU模块(C8051F020)、电源模块、显示模块(OCM320240K)、矩阵键盘模块等四部分构成,其系统总体硬件设计框图如图1所示。其中,本设计中外扩的缓冲存储器和FLASH存储器。解决了高速数据接收与处理不匹配、字符库容量小的问题。
1.1 MCU模块C8051F020
C8051F020是美国Cygnal公司推出的高性能单片机,是完全集成的混合信号系统级芯片,它的出现彻底改变了人们对8051单片机速度慢、性能低的印象。C8051F020使用了Cygnal专利的高速、流水线结构以及与MCS-51指令集完全兼容的CIP-51微处理器内核。CIP-51在提升8051速度上采取了新的途径,该芯片在保持CISC结构及指令系统不变的情况下,可对指令运行实行流水作业,从而废除了机器周期的概念。它的指令以时钟周期为运行单位,平均每个时钟周期可执行1条单周期指令,从而大大提高了指令运行速度,是一种功能比较齐全的高速、高性能单片机。
本系统设计选用此款单片机作为测试仪的MCU的最主要原因,一方面是由于CIP-51与MCS-51指令完全兼容,可使用标准的8051的汇编器、编译器及软件包进行软件开发,同时也很方便使用人员进行软件移植;另一方面可充分利用其丰富的通用数字端口资源,而不用地址/数据线复用,其外围电路的设计也可以大大简化。由于该芯片的低端口(P0、P1、P2、P3)既可按位寻址,也可按字节寻址,所以系统所需的控制信号都设计在低端口部分;而高端口(P4、P5、P6、P7)只能按字节寻址,故MCU与显示模块、存储器等模块的数据、地址总线均设计在高端口部分;C8051F020丰富的端口资源及其分配的灵活性是通过使用优先权交叉开关译码器实现的;而且所有引脚都采用5V电压.并都可以配置为漏极开路或推挽输出方式和弱上拉。
1.2 液晶显示模块OCM320240K
人类获取信息有80%来自视觉,且各种信息最终都通过信息显示来实现人机交换。由于液晶显示器件(LCD)具有低工作电压,微功耗,使用CMOS电路直接驱动,而且轻便易携带,因此,一经出现就倍受青睐,自然成为智能仪表等产品的首选显示器件。
本系统中的单片机对液晶模块的控制采用间接控制方式。即不使用单片机的数据系统,而利用它的I/O口来实现与液晶模块的联系。设计时可将液晶模块的数据总线与单片机的P1口进行连接作为数据总线,另外三根时序控制信号线通常利用8051的P3口中未被使用的I/O口来控制。该访问方式不占用CPU的存储器空间,它的接口电路与时序无关,其时序完全靠软件编程来实现。
图形点阵式液晶显模块OCM320240K的PCB板上含有完整的驱动器系统(内置SED1335液晶显示控制器),其接口系统则包含了驱动系统所需的控制信号和电源。它的行、列驱动器均采用KS0086,并由4个运算放大器组成液晶显示偏压电路。点阵液晶显示控制器SED1335通过其与单片机的接口及编程可实现对液晶显示器的文字、图形、菜单、翻页和内容的左右移动等功能。对输出到液晶显示器件电极上的电位信号进行相位、峰值、频率等参数的调制可以建立交流驱动电场,从而实现液晶显示。
1.3 电源模块
针对工业现场使用的便携式嵌入式测试仪,可考虑采用直流电源供电。本系统所需的三个电源分别为+5 V、+3.3 V、-23 V。其中+3.3 V是给C8051F020芯片供电。-23 V是液晶显示器所需的大负电压驱动电源,+5 V是驱动器和其它芯片的逻辑电源。电源模块的设计采用外部双电源供电,+8 V和-33 V直流电源经过稳压电路后可分别提供上述三种电压。具体电路设计如图2所示,其中在+5 V和+3.3 V的电源接口中连接的LED灯可作为电源指示灯,灯亮表示电源接通。电路中的电容则用于电源的滤波。
1.4 矩阵键盘模块
键盘模块的设计采用中断方式非编码8×8矩阵键盘,为了节省功耗,设计中选用了上拉电阻。按钮的行、列线分别接到MCU的P2、P3端口,INT0作为外部中断连接到MCU的P0.2端口。按键包含有0~9数字键、菜单显示的“确定”、“取消”、“上翻”、“下翻”等控制键及测试系统所需的其它基本功能键。
1.5 外部扩展电路
本设计中的外扩电路有两部分:其一是外扩了高速缓冲存储器,由于该测试仪通过RS485总线从上位机接收的数据可能是高速数据,而高速的总线数据和显示模块的处理速度可能不匹配,因而必须考虑采用外部扩展高速缓存来满足显示模块中64 KB显示RAM的要求也可将测试数据分屏显示。本文选用128 KB的SRAM芯片STC62WV1024;其二是外扩了一片FLASH存储器来为测试仪增加掉电保护功能,以便在突然断电情况下不丢失测试数据。更主要的目的是,由于显示模块中自带的用户自定义字符库CGRAM容量小,所以考虑将所建的国标基本字库存放在外扩的FLASH中,由MCU根据用户需要对其进行动态管理,同时不断完成所需显示字库的调入调出操作。这样既可满足大容量字库的要求,又能达到实时调度。本设计选用的是K9F2G08U芯片。
2 显示模块的软件设计
2.1 LCD初始化
液晶显示器的显示功能之所以强大,除了其本身具备一定的硬件显示功能外,更重要的是通过软件设计来实现各种显示功能,包括基本显示和由基本显示组合而成的扩展功能显示。但在使用之前,一般都必须根据液晶显示模块的特性选择初始化参数,以对其进行初始化,初始化流程如图3所示,其具体的初始化代码如下:
2.2 汉字显示
SED1335通过字符代码来确定字符库中字符首地址,并将相应的字模数据送到液晶显示模块。在液晶屏上出现该字符的16×16点阵块实际上就是文本显示RAM中的一个字节所对应的显示屏上的16×16点阵。通过SED1335显示存储器内用户自定义的字符库CGRAM。用户可在相应的单元写入相应的字符代码,然后通过对子程序的调用即可实现汉字显示,下面是显示汉字“欢迎使用”的部分程序代码:
由于CGRAM容量有限,故可考虑将用户自定义的国标基本字符库放在外扩的FLASH中,然后由MCU根据测试数据类型和用户需求不停地从FLASH字库中动态调入所需字库并暂存在CGRAM中。通过显示模块自定义字库的扩展,可使OCM320240K的显示功能更加完善和强大。从而更适合于各种领域的显示。
2.3 菜单显示
液晶模块的菜单显示设计应尽量与普通微机上的菜单结构保持一致(即呈树形拓扑结构),以适应操作人员的操作习惯。本设计中的菜单显示是在键盘的配合下实现的。为了简化操作,键盘中与菜单显示有关的控制键一般只设置“确定”、“取消”、“上翻”、“下翻”等基本功能,通过这几个按键即可操作菜单显示程序和命令执行程序,其键盘响应及菜单显示流程如图4所示。操作时,按下“确定”键,屏幕将显示下一级菜单;而按下“上翻”、“下翻”键,闪烁光标将在同一级菜单的各个菜单项间移动,以表示当前选中的菜单。对各级菜单进行编号时,可以设置两个变量mn、ln来分别表示当前的菜单号和光标所在的行(第一行为0,以此类推)。在程序初始化时,mn=0、ln=0;用“确定”键可则可改变菜单编号(mn=mn×2+ln),“取消”键改变菜单编号(mn=[mn/2]),“上翻”、“下翻”键可改变光标位置(ln=ln±1)。如12号菜单就是5号菜单光标位置处于第三行(ln=2)时按“确定”键得到的,其编号为5×2+2=12。确定菜单编号和光标位置后,再调用显示程序(或函数执行程序)即可显示新一级菜单并重新设置光标位置。其例程代码如下:
3 结束语
在完成了软硬件设计之后,即可对于本设计的电路板进行调试,以实现其显示功能。目前,本系统与上位机的级联调试还在进行之中。此外,考虑到触摸屏使用的日益广泛,本系统在电路设计中还考虑了与带触摸屏控制器(ADS7843)的显示模块DV320240F的接口,以便于今后根据需要增加触摸功能。