e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  EDA

基于STM32F4的多通道串口驱动TFT液晶屏显示系统设计

2020/11/3    来源:液晶与显示    作者:任克强  王传强      
关键字:TFT液晶屏  液晶屏驱动  显示  μC/OS-Ⅲ  
针对TFT液晶屏使用中存在驱动较为复杂以及对处理器要求较高的问题,设计了一种通过串口控制驱动Muc接口TFT液晶屏的显示系统。该系统的硬件由sTM32F4处理器和TFT液晶屏组成,sTM32F4用于驱动TFT液晶屏,并通过其串口向使用TFT液晶屏显示系统的外部处理器提供控制通道;软件利用μC/OS-Ⅲ操作系统编写底层驱动程序和驱动控制接口程序,采用DMA方式读取串口数据。该系统硬件接口简单,只需要两根I/O线就能对TFT液晶屏进行控制,最大可同时支持4个外部处理器通过串口对TFT液晶屏进行控制,串口传输速率为2.4KB/s~2MB/s。实验结果表明,该系统运行稳定可靠,显示效果清晰流畅,简化了TFT液晶屏的驱动和使用,拓展了TFT液晶屏的适应性和使用范围。
    1 引言
 
       TFT液晶屏是嵌入式系统中重要的组成部分,但由于TFT液晶屏驱动较为复杂,对处理
器有较高的要求,在大部分8位和16位机、部分32位机中较难实现驱动。文献[1]和文献[2]利
用STM32处理器的FSMC功能实现了对TFT液晶屏的驱动,但此方法具有一定的局限性,只
能在具有FSMC功能的处理器中实现TFT液晶屏的驱动,无法满足没有FSMC功能的处理器(如51单片机等处理器[3-4])驱动TFT液晶屏的需求。
 
       针对上述问题,本文设计了一种多通道串口控制驱动MUC接口模式的TFT液晶屏的显示
系统,该系统提供4个控制TFT液晶屏的串口通道,使用TFT液晶屏的外部处理器只需有串口
或通过I/O口模拟串口就可以使用TFT液晶屏,简化了TFT液晶屏驱动和使用,降低了使用
TFT液晶屏外部处理器的功能要求,拓展了TFT液晶屏的适应性和使用范围。
 
    2 系统硬件设计
 
       本文设计的TFT液晶屏显示系统由sTM32F4处理器和TFT液晶屏两大部分组成,硬件框图如图1所示。
系统硬件框图
图1 系统硬件框图

       利用STM32F4的FSMC功能驱动TFT液晶屏,并通过其串口向使用TFT液晶显示系统的外部处理器提供控制通道。sTM32F4的时钟,频率高达168 MHz,具有8个串行口和1个FSMC接口,可模拟8080时序驱动TFT液晶屏[5-7]。最大支持4个通道同时接入,外部处理器通过串口访问STM32F4内部预先烧录的接口程序,实现对TFT液晶屏的控制。STM32F4处理器主存储块具有1 M FLASH,分为11个扇区,主存储块FLAsH扇区划分如表1所示。本设计将这1 M的FLASH划分为两个部分,其中:扇区0~8为程序存储区,扇区9~11为汉字字库存储区。
 
       液晶驱动控制器是集成于TFT液晶屏的一个驱动芯片,每种控制器具有唯一的序列号,虽然控制器型号众多,但大部分的底层驱动方式是一样的,可以通过STM32F4模拟8080时序进行驱动,差别主要在于控制指令的不同。因此,为了可以兼容多种不同型号的MUC接口TFT液晶屏,本设计采用读取液晶驱动控制器的序列号进行液晶屏的识别,从而执行对应屏幕型号的控制指令,实现多种不同型号液晶屏的驱动。本文设计的TFT液晶显示系统可驱动60.1~177.8 mm(2.4~7 in)5种尺寸,包括ILI9341、IGDP453和SSD1936等15种不同驱动芯片的MUC接口TFT液晶屏。
sTM32F4主存储块F1ash扇区划分
表1 sTM32F4主存储块F1ash扇区划分
 
    3 系统软件设计
 
       μC/OS-Ⅲ是一种可移植、可剪裁的实时多任务操作系统,专为嵌入式系统设计,可与应用程序一起固化到ROM中。“μC/OS-Ⅲ以其优异的性能和较高的稳定性已经被移植到8位、16位、32位和64位等多种不同处理器中[8-11]。μC/OS-Ⅲ在处理器的RAM空间允许条件下,可创建无数任务。本文系统软件全部是在μC/OS-Ⅲ操作系统的基础上建立的。
系统软件流程图
图2 系统软件流程图
 
        系统软件流程图如图2所示。程序运行时首先调用OSInit( )完成对整个操作系统所有变量
和数据结构的初始化,自动创建空闲任务,完成操作系统运行前的准备工作。然后调用OSTa
skCreate( )创建一个起始任务,起始任务运行时将创建5个任务,分别是1个串口配置任务和4
个控制串口通道任务,将串口配置任务设置为最高级,然后将起始任务删除,起始任务只在程序运行时执行一次。之后将创建的5个任务添加到就绪列表,调用OSStart( )启动μC/OS-Ⅲ,开始多任务之间的调度。按照任务的优先级,串口配置任务将首先被执行,此时采用非阻塞延时的方式让系统延时5s,在这5s内若有更改配置操作则可进行人工修改配置,否则跳过,保留串口默认配置,随之将串口配置任务删除,将不会再被执行,最后操作系统将会在空闲任务和4个控制串口通道任务之间循环调度。
 
       3.1 液晶显示驱动设计

       本设计所支持的TFT液晶屏都是Muc接口的16位8080并口驱动方式,完全可以通过FSMC模拟8080时序进行驱动,只是初始化控制指令有所差别,只需根据读取TFT液晶屏的ID序列号判断屏幕型号,调用不同的初始化程序完成液晶屏驱动显示。TFT液晶屏的信号线包括:数据总线(D0~D15)、设置写入数据/命令(RS)、写使能(wR)、读使能(RD)、片选(CS)、复位(RST)和背光(BL),在控制时只需要用到D0~D15、RS、WR、RD和CS引脚。FSMC模式A读写时序如图3所示,TFT液晶屏16位并口8080接口时序如图4所示,对比图3和图4可知,TFT液晶屏没有地址线,具有一个设置写入数据/命令(RS)引脚,通过此引脚决定传输的是数据还是命令,可以将此信号线看作FsMc的其中一个地址线,将RS引脚连接到FSMC A0地址线。当FSMC写地址0时,对于TFT液晶屏即为写命令;当FSMC写地址1时,对于TFT液晶屏即为写数据。这样就可以通过FSMc模拟16位并口8080时序完成对TFT液晶屏的控制操作。
FSMC模式A读写时序
图3 FSMC模式A读写时序
16位并口8080接口时序
图4 16位并口8080接口时序
 
       3.2 串口通信程序设计
 
       串口是连接外部处理器和本文TFT液晶屏显示系统的桥梁,所有外部处理器传人的所有数
据和指令都是通过串口进行发送。本设计采用STM32F4的4个串口作为传输通道,利用DMA
方式进行传输。DMA传输数据的本质是将数据从一个地址空问复制到另一个地址空问,无需CPU参与,大大减轻了CPU的负担。
 
       本设计的系统配置界面如图5所示。图5(a)界面显示当前4个串口的默认波特率都为9.6 kB/s,通过触摸屏幕可以选择是否配置串口波特率或者直接跳过配置;图5(b)为串口配置
界面,可通过触摸屏幕完成4个串口的波特率配置。
系统配置界面
图5 系统配置界面
       3.3 驱动控制接口设计
 
       外部处理器在控制TFT液晶屏显示系统前,先发送一系列的设置数据,STM32F4处理器
接收这些数据并进行数据解析,获取端口号,选择是显示图像还是显示字符、数字或者汉字。如果显示图像,首先会判断图像的显示坐标和大小,然后接受串口发来的图像数据,写入到液晶屏进行显示。如果显示字符、数字或者汉字,首先会判断显示字体的大小、长度和坐标,设置背景颜色和字体颜色,然后调取sTM32F4内部FLAsH存入的字模数据写入到液晶屏进行显示。驱动控制接口调用流程如图6所示。
驱动控制接口调用流程图
图6驱动控制接口调用流程图
 
    4 实验结果
 
       首先测试在不同波特率下的数据传输速度,外部处理器通过串口通道发送数据控制TFT液
晶屏显示系统,传输速度的理论值与实际值如表2所示。如果选择最为常用的9.6 kB/s波特率,每秒可以传输9400字节,若传输长宽为16×16像素的汉字或者字符,每秒可以传输约29个汉字或者字符。
 
       采用11cm(4.3 in)800×480分辨率的TFT液晶屏进行显示测试,在9.6kB/s波特率下测试外部处理器通过串口控制TFT液晶屏显示汉字、字符和数字的效果,测试结果如图7所示。其中,图7(a)为1个外部处理器控制TFT液晶屏显示系统的全屏显示结果;图7(b)为2个外部处理器同时控制TFT液晶屏显示系统的2分屏显示结果;图7(c)为3个外部处理器同时控制TFT液晶屏显示系统的3分频显示结果;图7(d)为4个外部处理器同时控制TFT液晶屏显示系统的4分频显示结果。当多个处理器通过串口通道同时控制TFT液晶显示系统时,显示效果稳定流畅。
液晶屏控制显示测试结果
液晶屏控制显示测试结果
图7 液晶屏控制显示测试结果
 
    5 结论
 
       TFT液晶屏驱动是开发和设计嵌入式应用系统经常要面对和解决的问题。常规的MUC接口
TFT液晶屏驱动方法较为复杂,对直接使用TFT液晶屏的外部处理器和开发设计人员均有一定的要求。本文采用串口方式控制Muc接口模式的TFT液晶屏的方法,降低了对外部处理器的功能要求,可以满足无法直接进行屏幕驱动的8位、16位和32位机使用TFT液晶屏的需求,仅需两根I/O线就能进行TFT液晶屏的控制,节约了外部处理器的资源。本文方法可同时提供4个控制TFT液晶屏的串口通道,既可以单个外部处理器控制TFT液晶屏,也可以多个外部处理器同时控制TFT液晶屏,拓展了TFT液晶屏的使用范围,可满足某些特定场合的应用需求。本文方法具有较好的兼容性,可适用5种不同尺寸、15种不同IC芯片的MUC接口TFT液晶屏。经测试,TFT液晶屏的驱动速度能较好地满足显示需要,在4个串口通道同时控制TFT液晶屏的情况下,显示效果清晰流畅,系统运行稳定可靠。

       参考文献:
       [1]王军,张福弟,王磊,等.基于sTM32的R61581驱动液晶屏显示方法研究[J].液晶与显示,2016,31(1):93-96.
       [2]汤莉莉,黄伟.基于STM32的FSMC接口驱动TFT彩屏设计[J].现代电子技术,2013,36(20):139-141,144.
       [3]卢忠亮,沈慧芳,陈杰.基于射频识别的智能物流小车[J].江西理工大学学报,2011,32(3):53-56.
       [4]罗刘敏,王明霞,郭艳花,等.基于单片机的智能小车控制系统设计[J].仪表技术与传感器,2018(1):123-126.
       [5]李慧敏,樊记明,杨笑.基于STM32和OV7670的图像采集与显示系统设计[J].传感器与微系统,2016,35(9):114-117.
       [6]原群盛,钱松荣.基于STM32动态监测系统设计[J].液晶与显示,2016,31(7):680-685.
       [7]刘振海,骆冬根,王改.基于FSMC接口的CF卡数据存储系统设计[J].现代电子技术,2019,42(10):15-18.
       [8] 孟蓉歌,张春化,王佳,等.符合AUTOSAR标准的μC/OS-Ⅲ移植[J].计算机应用,2017,37(S2):248-250,258.
       [9]杨立身,张安伟,王磊,等.基于sTM32的μC/OS-II与μC/GUI整合移植与显示优化[J].液晶与显示,2014,29(6)950-956.
       [10]王泽,肖继学,张汉中,等.μC/OS-Ⅲ的实时性测试[J].测控技术,2016,35(5):105-110.
       [11]罗尔聪,郭宇.μC/OS-Ⅲ任务调度器在Coq中的验证[J].计算机工程,2015,41(3):53-58.
 
       作者简介
       任克强(1959-),男,湖南汨罗人,硕士,教授,1993年于华中理工大学获得硕士学位。主要从事图像与视频处理、嵌入式技术与应用方面的研究。王传强(1992-),男,山东济宁人,硕士研究生,2018年于江西理工大学获得学士学位.主要从事嵌入式技术与应用方面的研究。
责任编辑:杨培
本文来源于互联网,e-works本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐
数字化企业网首页