• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

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

    放大字体  缩小字体 发布日期:2022-06-10 10:29:24    浏览次数:237    评论:0
    导读

    摘要:针对TFT液晶屏使用中存在驱动较为复杂以及对处理器要求较高的问题,设计了一种通过串口控制驱动MUC接口TFT液晶屏的显示系统。该系统的硬件由STM32F4处理器和TFT液晶屏组成,STM32F4用于驱动TFT液晶屏,并通过其串口向使用TFT液晶屏显示系统的外部处理器提供控制通道;软件利用μC/OS-Ⅲ操作系统编写底层驱动程序和驱

    摘要:针对TFT液晶屏使用中存在驱动较为复杂以及对处理器要求较高的问题,设计了一种通过串口控制驱动MUC接口TFT液晶屏的显示系统。该系统的硬件由STM32F4处理器和TFT液晶屏组成,STM32F4用于驱动TFT液晶屏,并通过其串口向使用TFT液晶屏显示系统的外部处理器提供控制通道;软件利用μC/OS-Ⅲ操作系统编写底层驱动程序和驱动控制接口程序,采用DMA方式读取串口数据。该系统硬件接口简单,只需要两根I/O线就能对TFT液晶屏进行控制,最大可同时支持4个外部处理器通过串口对TFT液晶屏进行控制,串口传输速率为2.4 KB/s~2 MB/s。实验结果表明,该系统运行稳定可靠,显示效果清晰流畅,简化了TFT液晶屏的驱动和使用,拓展了TFT液晶屏的适应性和使用范围。

    关 键 词:TFT液晶屏;液晶屏驱动;串口;μC/OS-Ⅲ;显示

    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 系统硬件框图
    Fig.1 Hardware framework of system

    利用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液晶屏。

    表1 STM32F4主存储块Flash扇区划分

    Tab.1 Sector division of FLASH in STM32F4 main memory

    3 系统软件设计

    图2 系统软件流程图
    Fig.2 Flow chart of system software

    μC/OS-Ⅲ是一种可移植、可剪裁的实时多任务操作系统,专为嵌入式系统设计,可与应用程序一起固化到ROM中。μC/OS-Ⅲ以其优异的性能和较高的稳定性已经被移植到8位、16位、32位和64位等多种不同处理器中[8-11]。μC/OS-Ⅲ在处理器的RAM空间允许条件下,可创建无数任务。本文系统软件全部是在μC/OS-Ⅲ操作系统的基础上建立的。

    系统软件流程图如图2所示。程序运行时首先调用OSInit()完成对整个操作系统所有变量和数据结构的初始化,自动创建空闲任务,完成操作系统运行前的准备工作。然后调用OSTaskCreate()创建一个起始任务,起始任务运行时将创建5个任务,分别是1个串口配置任务和4个控制串口通道任务,将串口配置任务设置为最高级,然后将起始任务删除,起始任务只在程序运行时执行一次。之后将创建的5个任务添加到就绪列表,调用OSStart()启动μC/OS-Ⅲ,开始多任务之间的调度。按照任务的优先级,串口配置任务将首先被执行,此时采用非阻塞延时的方式让系统延时5 s,在这5 s内若有更改配置操作则可进行人工修改配置,否则跳过,保留串口默认配置,随之将串口配置任务删除,将不会再被执行,最后操作系统将会在空闲任务和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液晶屏的控制操作。

    (a)读时序
    (a)Read timing

    (b)写时序
    (b)Write timing
    图3 FSMC模式A读写时序
    Fig.3 FSMC mode A read and write timing

    图4 16位并口8080接口时序
    Fig.4 16 bit parallel port 8080 interface timing

    3.2 串口通信程序设计

    串口是连接外部处理器和本文TFT液晶屏显示系统的桥梁,所有外部处理器传入的所有数据和指令都是通过串口进行发送。本设计采用STM32F4的4个串口作为传输通道,利用DMA方式进行传输。DMA传输数据的本质是将数据从一个地址空间复制到另一个地址空间,无需CPU参与,大大减轻了CPU的负担。

    本设计的系统配置界面如图5所示。图5(a)界面显示当前4个串口的默认波特率都为9.6 kB/s,通过触摸屏幕可以选择是否配置串口波特率或者直接跳过配置;图5(b)为串口配置界面,可通过触摸屏幕完成4个串口的波特率配置。

    (a) 设备信息及选择界面
    (a) Equipment information and selection interface

    (b) 串口配置界面
    (b) Serial port configuration interface
    图5 系统配置界面
    Fig.5 System configuration interface

    3.3 驱动控制接口设计

    外部处理器在控制TFT液晶屏显示系统前,先发送一系列的设置数据,STM32F4处理器接收这些数据并进行数据解析,获取端口号,选择是显示图像还是显示字符、数字或者汉字。如果显示图像,首先会判断图像的显示坐标和大小,然后接受串口发来的图像数据,写入到液晶屏进行显示。如果显示字符、数字或者汉字,首先会判断显示字体的大小、长度和坐标,设置背景颜色和字体颜色,然后调取STM32F4内部FLASH存入的字模数据写入到液晶屏进行显示。驱动控制接口调用流程如图6所示。

    图6 驱动控制接口调用流程图
    Fig.6 Flow chart of driver control interface calling

    4 实验结果

    首先测试在不同波特率下的数据传输速度,外部处理器通过串口通道发送数据控制TFT液晶屏显示系统,传输速度的理论值与实际值如表2所示。如果选择最为常用的9.6 kB/s波特率,每秒可以传输9 400字节,若传输长宽为16×16像素的汉字或者字符,每秒可以传输约29个汉字

    表2 不同波特率的数据传输速度

    Tab.2 Data transfer speeds with different baud rates (kB·s-1)

    或者字符。

    采用11 cm(4.3 in)800×480分辨率的TFT液晶屏进行显示测试,在9.6 kB/s波特率下测试外部处理器通过串口控制TFT液晶屏显示汉字、字符和数字的效果,测试结果如图7所示。其中,图7(a)为1个外部处理器控制TFT液晶屏显示系统的全屏显示结果;图7(b)为2个外部处理器同时控制TFT液晶屏显示系统的2分屏显示结果;图7(c)为3个外部处理器同时控制TFT液晶屏显示系统的3分频显示结果;图7(d)为4个外部处理器同时控制TFT液晶屏显示系统的4分频显示结果。当多个处理器通过串口通道同时控制TFT液晶显示系统时,显示效果稳定流畅。

    (a) 单通道控制显示
    (a) Single channel control display

    (b) 双通道控制显示
    (b) Dual channel control display

    (c) 三通道控制显示
    (c) Three channel control display

    (d) 四通道控制显示
    (d) Four channel control display
    图7 液晶屏控制显示测试结果
    Fig.7 LCD control display test results

    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液晶屏的情况下,显示效果清晰流畅,系统运行稳定可靠。


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://www.dingdx.com/news/202206/10/7191.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号