一种通过缓存管理实现对单色液晶显示屏操作的方法
【专利摘要】本发明涉及基本单色显示屏操作方法【技术领域】,特别涉及一种通过缓存管理实现对12864单色液晶显示屏操作的方法。本发明通过建立全屏显示缓存区,根据显示数据类型确定屏幕的刷新方式,对显示内容的操作主要体现为对显示缓存的读写,当发送刷新屏幕命令才进行屏幕的刷新,这种方式可以尽量减少操作显示屏的次数,大大提高显示速度。显示文字不在局限为固定行,而是可以在任意位置显示,同时加入图形元素,使屏幕显示内容更加人性化,增强了用户体验度。
【专利说明】一种通过缓存管理实现对单色液晶显示屏操作的方法
【技术领域】
[0001]本发明涉及基本单色显示屏操作方法【技术领域】,特别涉及一种通过缓存管理实现对12864单色液晶显示屏操作的方法。
【背景技术】
[0002]随着电子技术发展,各种电子产品逐步进入人们的生活,其中集成基本单色液晶显示屏的电子产品占有很大比重。随着集成电路技术的飞速发展,具有更高运行频率、更大存储空间的处理器不断出现,相对于传统处理器,其具有更高的性能,运行速率也远远高于单色显示屏的数据传输速率,这样两者在配合使用时就会使得低速设备的性能影响高速设备,从而影响机器的整体性能。
【发明内容】
[0003]为了解决现有技术的问题,本发明提供了一种通过缓存管理实现对12864单色液晶显示屏操作的方法,该方法可充分发挥高性能处理器的性能,使复杂的数据操作仅仅针对显示缓存区,而不是直接操作显示屏,尽量减少对单色液晶显示屏的数据读写,可避免显示速度慢,显示效果差的缺点。
[0004]本发明所采用的技术方案如下:
一种通过缓存管理实现对12864单色液晶显示屏操作的方法,是在系统应用层内设置显示缓冲区,需要显示的字库数据直接放入显示缓存,待一整屏的数据准备完成后再将数据发送到驱动层,驱动层把显示数据通过端口送到显示屏。
[0005]字库数据包括显示文字、单个点、直线、矩形、填充矩形和位图六种类型。
[0006]对于显示文字时,系统程序首先根据字符编码在字库文件中找到文字的位图,再将读出的数据按照所给坐标放到缓冲区的相应位置中,缓冲区准备好后用刷屏命令实现文字的显示。
[0007]对于单个点的显示方式,单点显示仅刷新要显示的点对应的一个字节数据。
[0008]对于直线、矩形或填充矩形及位图的显示,显示时,首先用显示单点的方式将显示数据放入缓冲区,缓冲区操作完成后用刷屏命令实现真正显示。
[0009]本发明提供的技术方案带来的有益效果是:
通过建立全屏显示缓存区,根据显示数据类型确定屏幕的刷新方式(局部刷新和全屏刷新),对显示内容的操作主要体现为对显示缓存的读写,当发送刷新屏幕命令才进行屏幕的刷新,这种方式可以尽量减少操作显示屏的次数,大大提高显示速度。显示文字不在局限为固定行,而是可以在任意位置显示,同时加入图形元素,使屏幕显示内容更加人性化,增强了用户体验度。
【专利附图】
【附图说明】
[0010]图1为本发明的一种通过缓存管理实现对12864单色液晶显示屏操作的方法的针对显示文字的方法流程图;
图2为本发明的一种通过缓存管理实现对12864单色液晶显示屏操作的方法的针对显示单点的方法流程图。
【具体实施方式】
[0011]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0012]实施例一
本专利所应用的12864单色液晶显示屏的IOCTL命令,BACKLIGHT_0N命令控制开背光,BACKLIGHT_0FF命令控制关背光,LCD_DISP_L0G0命令使机器显示开机logo,这三个命令只有命令字发送到驱动层,无数据传输;CHANGE_CONTRAST命令用来调节显示屏的对比度,该命令发送一个int型数据到驱动层;DR0W_D0T命令用来在屏上显示一个点,该命令发送3个字节到驱动层;RERRESH_SCREEN命令用来刷新显示屏,该命令发送一整屏即IKB的数据到显示驱动;驱动在收到相关命令后会对屏进行数据操作。
[0013]附图1为显示文字的基本流程图,程序根据输入文字的内码计算出在字库中偏移地址,然后在字库文件中的上述偏移地址处读出对应的文字点阵数据,最后将点阵数据根据文字要显示的位置放入显示缓冲区的对应位置,发送RERRESH_SCREEN命令并不是在每次操作完显示缓存都进行,当要显示的内容全部都放到缓冲区,需要在屏上显示时才会调用该命令实现显示。在屏上显示直线、矩形、填充矩形和位图的方式与显示文字基本相同,都是先操作缓冲区,再发送RERRESH_SCREEN命令进行显示。
[0014]附图2为显示单个点的基本流程图,程序根据输入要显示的点的坐标计算出要设置的显示缓冲区位置,然后根据点的颜色计算出对应缓冲区位置的数据并设置缓冲区,最后将点的坐标和颜色数据发送到显示驱动层,显示驱动层也相应的设置驱动层缓冲区对应位置的数据,最后把一个字节的显示内容发送到显示屏实现显示。之所以在应用层和驱动层都进行设置缓冲区操作是为了保持两个缓冲区数据的一致性,防止其他操作更改缓冲区导致显示错误。
[0015]本专利提出的对单色显示屏的操作方式主要应用于一款集成12864单色显示功能的网络开票机,该网络开票机采用龙芯LSlB处理器作为主控制器,实现网络开票的相关功能。处理器通过GPIO端口与12864单色液晶显示屏相连,由于采用的显示屏内部没有字库,字库是以文件的形式存放在文件系统中,所以Linux的显示驱动部分仅负责对显示屏的数据写入操作,字库的查询和读取在应用层实现。该方式的特点是将字库查询等复杂操作放在应用层,应用层有一显示缓冲区,每次读出的字库数据直接放入显示缓存,待一整屏的数据准备完成后再将数据发送到驱动层,驱动层把显示数据通过GPIO送到显示屏。本专利的实现方式能充分发挥高速设备的性能,减少对低速外设的操作,提高机器的整体运行速度。
[0016]本专利的龙芯LSlB处理器采用MIPS架构,MIPS架构是一种简洁、优化、具有高扩展性的RICS架构,它的特点是包含大量的寄存器、指令数和字符、可视的管道延时时隙,这些特征使MIPS架构提供最高的每平方毫米性能和当今SOC设计中最低的能耗。龙芯LSlB处理器最高运行主频为255MHz,片外搭载容量为256MB的DDRII内存芯片和128MB的Nandflash芯片,嵌入式Linux的应用使得机器可以进行多线程多任务的处理,整机性能较高,运行速度较快。
[0017]显示屏内核驱动程序的实现:显示驱动部分主要实现ioctl的操作,该函数在数据传输时主要分为两类,当要在显示屏上显示单个点时ioctl仅接收3个字节的数据,这3个字节分别是显示点的横坐标、纵坐标和点的颜色,显示单点是仅向显示屏送一个字节的数据;当显示内容为字符或图形时,ioctl从用户空间接收整屏的数据,发送数据到显示屏采用的是显示屏的地址自增功能,整屏数据发送仅需发送8次地址,减少了对GPIO的操作,提闻显不速度。
[0018]显示缓冲区的处理:对显示缓冲区的处理主要包括显示文字、单个点、直线、矩形、填充矩形和位图六种类型。显示文字时程序首先根据字符编码在字库文件中找到文字的位图,再将读出的数据按照所给坐标放到缓冲区的相应位置中,缓冲区准备好后用刷屏命令实现文字的显示;对于单个点的显示方式跟其他的内容显示有明显的不同,因为显示单点时数据量较小,如果也刷新整个屏幕则会因要给屏发送大量数据而影响显示速度,所以单点显示仅刷新要显示的点对应的一个字节数据;直线的显示最终可以归结为显示很多点,但是如果显示点的数量过多就会增加操作显示屏的次数,也会影响显示速度,因此直线显示时首先用显示单点的方式将显示数据放入缓冲区,缓冲区操作完成后用刷屏命令实现真正显示;显示矩形、填充矩形和位图的方式跟显示直线类似,都是先操作缓冲区,缓冲区准备好再用刷屏命令实现显示。
[0019]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种通过缓存管理实现对12864单色液晶显示屏操作的方法,是在系统应用层内设置显示缓冲区,需要显示的字库数据直接放入显示缓存,待一整屏的数据准备完成后再将数据发送到驱动层,驱动层把显示数据通过端口送到显示屏。
2.根据权利要求1所述的一种通过缓存管理实现对12864单色液晶显示屏操作的方法,其特征在于,所述的字库数据包括显示文字、单个点、直线、矩形、填充矩形和位图六种类型。
3.根据权利要求2所述的一种通过缓存管理实现对12864单色液晶显示屏操作的方法,其特征在于,对于显示文字时,系统程序首先根据字符编码在字库文件中找到文字的位图,再将读出的数据按照所给坐标放到缓冲区的相应位置中,缓冲区准备好后用刷屏命令实现文字的显示。
4.根据权利要求2所述的一种通过缓存管理实现对12864单色液晶显示屏操作的方法,其特征在于,对于单个点的显示方式,单点显示仅刷新要显示的点对应的一个字节数据。
5.根据权利要求2所述的一种通过缓存管理实现对12864单色液晶显示屏操作的方法,其特征在于,对于直线、矩形或填充矩形及位图的显示,显示时,首先用显示单点的方式将显示数据放入缓冲区,缓冲区操作完成后用刷屏命令实现真正显示。
【文档编号】G09G5/22GK103886845SQ201410070473
【公开日】2014年6月25日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】曲小龙, 乔国凯, 于治楼 申请人:浪潮软件集团有限公司