为了开发LED信息显示屏系统,对LED单行显示屏下位机系统进行了研究,利用EDA软件PRO-TEUS建立了基于51单片机的硬件电路原理图,同时在KEIL环境下编写了相应的单片机通信和控制程序。经PROTEUS与KEIL的联合仿真和调试,证明了设计的可行性,开发出了包含从上位机接收字符信息并储存在下位机存储器中的串口通信部分和从存储器读出字符信息并显示的显示控制部分的显示屏下位机系统。
0引言
随着发光二极管(LED)技术的发展,亮度高、功耗小的LED不断面世,技术上的可行和成本的降低使LED显示屏有了应用和发展的机会。同时,随着计算机技术和基于计算机技术的电子设计自动化(EDA)技术的发展,由于EDA技术具有可提高电子系统设计效率和可靠性、降低设计者劳动强度和设计风险等众多的优势,越来越多的电子系统的设计都会借助诸如PROTEUS,KEIL,MULTISIM,PROTEL,MATLAB等EDA工具。
本文从一个实际的LED显示屏下位机的应用设计出发重点论述了串口通信和显示控制两个部分,系统采用的EDA工具软件主要是PROTEUS和KEIL
1EDA及主要工具软件简介
EDA技术指以计算机为工作平台,融合了电子技术、计算机技术、智能化技术最新成果的现代电子设计技术。随着计算机技术的发展,目前绝大多数电子系统的设计都会采用EDA工具软件来完成。根据设计项目的不同及设计需求的不同,所采用的EDA软件也不同,目前常用的EDA工具软件主要有:PROTEUS,KEIL,MULTISIM,PROTEL,MATLAB,MAXPLUS,QUARTUS等。PROTEUS和KEIL是在EDA环境下进行单片机相关开发的完美组合。
1.1PROTEUS简介
Proteus软件是英国LabcenterElectronic。公司研发的EDA工具软件,它已具有近二十年的历史,在电子行业中得到了广泛的应用,除了具有和其它EDA工具一样的原理图布图、PCB布线及电路仿真的功能外,还具有革命性的功能:互动的电路仿真、针对微处理器的应用,并可以直接在基于原理图的虚拟原型上编程,实现软件源码级实时调试,有显示及输出,能看到运行后输入输出效果,配合软件提供的虚拟仪器(示波器、逻辑分析仪等),可以方便地进行电子系统的开发。
1.2KEILμvision2简介
KEIL协μvision2是美国KeilSoftware公司出品的15系列兼容单片机集成开发环境,它是15系列单片机开发的优秀软件之一,集编辑、编译、仿真功能于一体,支持汇编、PLM和C语言的程序设计,界面友好,易学易用,并可和PROTEUS联合调试。
2LED显示屏下位机系统
对于一个LED显示屏系统来说,整个系统由上位机(一般由个人计算机担当)和下位机(一般由单片机、ARM或CPLD、FPGA等担当)组成。而下位机是整个系统的核心部分,也是设计的重点和难点部分,下位机的性能在很大程度上决定整个系统的性能。系统由于要显示汉字字符信息,汉字编码到显示码的转换、存储及控制显示由上位机还是下位机来承担要有明确的分工,解决方案有两个:一是将汉字库显示码存储在下位机中,上位机只传送汉字编码,由下位机通过编码查找汉字显示码地址进行汉字显示;二是汉字编码到显示码的转换由上位机软件完成,串口通信传送显示码,下位机只负责显示码的存储和控制显示。由于汉字库对下位单片机来说较大,存储成本高且电路复杂、程序编写麻烦,而对上位机来说,汉字库存储和汉字编码到显示码的转换编程容易,综合考虑上位机及下位机的特点,决定采用第二套方案。
2.1硬件结构
从硬件上来讲,下位机系统主要由处于核心地位的8051单片机及与上位PC机通信的RS232接RAM存储器、驱动控制阵列、LED显示点阵等部分组成。本设计的下位机硬件系统框图如图1所
RS232接口负责接收上位机传来的汉字显示码,并向8051单片机发出中断信号;单片机响应中断后将汉字显示码存储于RAM中,RAM可根据设计需要选择6264、62128或更大容量的存储器;8051单片机在与上位机的通信结束且存储完成后,将从RAM中取出显示码由驱动及控制阵列控制LED点阵进行字符显示。在硬件系统中,除了以上这些功能性器件外,电源的选择也比较重要,由于在实际应用中LED显示屏面积一般较大,功耗普遍都在30W以上,而系统的供电电压为5V,供电电流将达6A,为保证系统正常工作,必须使用开关电源。
2.2下位机软件
下位机软件是运行于8015单片机的16进制机器语言,可以由汇编语言或C51编写,在KEIL开发环境中编译成8051单片机的机器语言。下位机软件的功能是配合硬件完成汉字显示码的接收、存储及控制显示,算法流程图如图2所示。
单片机初始化包含片内RAM(包括计数寄存器等)初始化、RS232信设置初始化、中断初始化等,对于传输是否完毕的判断是将编码在显示码流首字节内的传输总字数和单片机计数寄存器相比较,显示之前的串口接收重置是为了下次串口通信的方便。在程序运行的任意时刻,上位机向下位机发送显示码会引起串口中断,单片机会中断当前的工作并保存现场数据,转而接收显示码并存储在片外RAM中,完成之后会返回中断的断点继续前面的工作,由于中断可能随时发生,所以没有在流程图中画出。
3串口通信
通信部分是连接上位PC机和下位单片机的信息通道,由于RS223申口通信被单片机和PC机广泛支持,而且通信协议简单、便于电气连接和编程控制,所以在本设计中采用RS232串口通信标准。在电气连接上,单片机的RXD端口接PC机串口的TXD,单片机的TXD端口接PC机串口的RXD,公共地连接在一起。而在软件方面,除了要设置合理的波特率外,主要是下位机的串口中断入口程序要将上位机发送来的显示码流中的字符显示码及相关控制字保存到相应队M及寄存器中,并要记得清除RI以便下一次接收。
4PROTEUS仿真及与KEIL的联合调试
下位机系统按照图1的硬件系统框图进行搭建,8015单片机可选择AT89C51,RAM存储器可选择SK内存的HY6264,同时需要一片74LS373作地址锁存,驱动及控制阵列用带输出锁存的移位寄存器74LS595,LED点阵选用Φ3的8x8点阵模块。在PROTEUS6.9SP5环境下的仿真原理图如图3所示,其中LED点阵只有两个字,这对系统的构建和测试已经足够,在实际工程应用中可以扩展字数。
在PROETEUS6.9SP5环境下搭好电路原理图后,还要按照图2所示的算法流程编写单片机的程序才能进行仿真。程序的编写可以直接在PROTEUS下进行,但PRO花US仅提供ASM51编译器,即只能用汇编语言编写源程序。单片机程序也可在KEILμvision2集成开发环境中编写,可以使用C或汇编语言编写源程序,经编译后可以联合仿真调试。
对于PROTEUS和KEIL的联合仿真调试,需要对各自开发环境进行一定的设置,具体方法如下:首先将PROTEUS安装目录下模型库中的"VDM51.DLL"动态链接库复制到KEIL安装目录下的"C5lBIN"文件夹;然后修改KEIL安装目录下的"TOOLS.INI"文件,在【C51】子项中增加一行"TDRV5=BINVDM51.DL("proteusVSMSimulator")";其次打开PROTEUS,在Debug菜单中勾选"UseRemoteDebugMonitor";最后在KEIL环境中编写程序并编译后,在设置选项的调试标签中选择"使用ProteusVSMSimulator"。以上步骤设置完成后即可进行联合仿真调试。
5结束语
利用EDA技术进行LED屏下位机系统的设计可以提高设计效率和可靠性、降低设计的劳动强度和设计成本并可以在将来方便地修改设计。本设计旨在验证硬件设计和算法的可行性,在应用到工程实际中时,还需要根据实际情况增加显示控制器件及LED显示模块,同时还要考虑电源供电功率的问题及散热问题。