当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]摘 要:介绍了一种基于ARM9的彩色薄膜晶体管液晶显示模块(TFT-LCD)的设计和实现方法。为了解决图像及字符在液晶模块上的实时显示,图像库及字符库存储在容量达64Mbyte的NA

摘 要:介绍了一种基于ARM9的彩色薄膜晶体管液晶显示模块(TFT-LCD)的设计和实现方法。为了解决图像及字符在液晶模块上的实时显示,图像库及字符库存储在容量达64Mbyte的NAND Flash闪存中,可以根据不同需求对图像库及字符库进行更新。模块支持24bit彩色RGB格式图像的显示,还支持JPEG格式图像的显示,JPEG图像的解码功能在ARM9处理器上实现。模块采用串口方式与其他外接主控系统通信,通过接收主控系统的不同指令,可以实现对库中图像及字符显示的实时更改。在液晶屏LQ080V3DG01上已通过测试,运行可靠。该模块已实际应用于图像显示设备中。

1 引 言

TFT-LCD因其厚度薄且画面质量优异,可以实现信息的高速度、高亮度及高对比度显示,已广泛应用于图像显示系统中。虽然TFT-LCD具有良好的显示性能,但TFT-LCD的驱动信号非常复杂,同时外围的控制单元需要处理的数据量非常大,以一个分辨率为640×480的彩色TFT-LCD为例,显示一幅彩色图像就需要处理900kbyte的数据量,这对于传统的单片机等处理器显得无能为力。由于图像数据量大,目前图像大都采用压缩后再存储,其中JPEG (Joint PhotographicExperts Group)格式的压缩图像应用最为广泛。

为了解决图像等大容量数据在TFT-LCD显示屏上的应用,本文提出了一种基于ARM9处理器S3C2440X的彩色液晶显示模块。模块能够实现对字符及彩色RGB格式图像的显示,同时还可以显示JPEG 格式的图像。由于液晶显示屏只能接收RGB格式的图像数据,为了实现对JPEG格式的图像显示,必须对压缩图像进行解压缩,JPEG格式图像的解码功能在 ARM9处理器上实现。本文提出的方法简化了彩色TFT-LCD图像显示的设计难度,同时为JPEG格式的解码及液晶显示提供了一种实现方法。液晶显示模块可以方便地与外接系统接口,实现图像显示模块的功能。

2 模块结构设计与分析

模块硬件包括4个部分:ARM9S3C2440X处理器、数据存储模块、液晶显示模块及RS232串口通信模块。模块中使用了两种非易失性闪存NAND Flash和NOR Flash。考虑到NOR Flash具有芯片内执行及可靠性高的特点,使用它来存储ARM9处理器运行的程序代码;存储容量大且高单元密度的NAND Flash用来存储海量数据,作为图像库及字符库的存储单元。SDRAM 作为外扩存储器使用。TFT-LCD LQ080V3DG01作为模块的显示屏使用。与其他外部模块通信采用RS232串口方式。

模块实现的主要功能有:JPEG 格式图像的解码;支持24bit彩色RGB图像数据及JPEG两种格式图像的显示;字符的显示;数据存储容量为64Mbyte,可以实现对图像库及字符库的更新;可以设置不同的串口波特率。模块功能框图如图1所示。

 


图1 模块功能框图。

2.1 ARM9嵌入式处理器S3C2440X

S3C2440X是一款基于ARM920T 内核、主频最高达400MHz、适用于嵌入式应用的RISC处理器。它支持可配置的8,16,32bit数据总线宽度。在存储器接口方面,最多可以扩展6 个通道的ROM 或RAM 存储器,以及2 个通道的SDRAM,同时它还支持NAND Flash、NORFlash存储器扩展。

它内部的ARM920T 内核具有高速微控制器总线(AMBA BUS)结构及哈佛结构的高速缓冲存储器(Cache),高速缓冲分别是16kbyte程序及16kbyte数据存储器,使其具有良好的高速性能[3]; 具有丰富的外围设备,包括LCD控制器、UART、USB、SD 及SPI等接口,可以满足不同的设计要求。

2.1.1 LCD控制器

S3C2440X内部LCD控制器接口支持STNLCD及TFT-LCD的无缝连接,它支持单色、调色板彩色及24bit真彩色的显示。根据不同的设计要求,通过程序编程可以实现相应的LCD分辨率,数据格式及帧频等设置,从而满足各种类型的LCD模块。S3C2440XLCD控制器用来传输视频数据VD [23:0],同时产生相应的控制信号VSYNC、HSYNC、VDEN及LEND,时序图如图1所示。实现LCD 控制器功能的关键是根据LCD时序的要求,合理配置控制器寄存器。

 


图2 TFT-LCD时序图。

图1中的信号定义如下:

VSYNC:LCD控制器和LCD之间的帧同步信号,高电平有效时表示一帧图像的起始。

HSYNC:行同步信号,由水平有效像素的大小决定。

VCLK:LCD时钟信号,在一个时钟周期内数据送入LCD移位寄存器内。

VDEN:数据使能信号,高电平表示数据有效。

LEND:行结束信号。

VD[23:0]:RGB数据信号线。对于24bitTFT-LCD,R、G、B各占8位;而对于16bit TFT屏有两种方式:5∶6∶5及5∶5∶5+1,使用时需要注意要与相应TFT-LCD的信号相一致。

2.1.2 数据存储模块

NAND Flash是一种固态内存,与EEPROM相比,具有读写速度快的优势;与SRAM 相比,具有非易失性等优势。图像尤其是彩色图像数据量大,因此需要考虑使用大容量的存储器来存储图像数据。另外,考虑到断电后数据的非易失性,因此选择 NAND Flash作为存储器件。

数据存储单元NAND Flash包括图像库及字符库,其中字符库存储容量是8Mbyte,图像库存储容量是56Mbyte。模块选用NAND FlashK9F1216U0A作为图像的存储器件,它的容量大小为64M×8bit,其中每页是(512+16)byte,块大小是 (16k+512)byte;随机读取一页数据的最大时间是12μs,而向NAND Flash写入一页数据的典型时间是200μs。以分辨率为640×480的RGB 彩色图像为例,图像数据大小是900byte,因此将此图像写入Flash的最大时间是341μs,然后将此图像从Flash读出的最长时间是21μs。

以分辨率为640×480的RGB格式彩色图像为例,56Mbyte的图像存储容量可以存储62幅图像,完全可以满足大容量存储的要求。在存储图像数据的编程过程中,由于NAND Flash是以页为单元进行数据存储,这就意味着一幅图像需要占用多个页的存储空间。需要注意的是,由于NAND Flash器件存在坏块单元,而且坏块是随机分布的,因此需要对坏块进行标记处理,对它们标记为不可用,这样就避免了由于坏块单元引起的数据存储错误。[!--empirenews.page--]

2.1.3 JPEG图像解码

JPEG是一种目前广泛使用的静态图像压缩标准,它以其显着的压缩效率和较低的图像质量损失获得了广泛应用,成为国际通用的标准。

JPEG的目的是提供一种使用于各种连续色调图像的压缩方法,并且能够易于硬件实现,具有良好的性价比。为了满足各种应用需求,它提供了两种压缩编码技术:基于离散余弦变换(DCT)的有损压缩编码和基于DPCM 的无损编码,这两种编码方式可以采用4种操作模式来实现:顺序编码、累进编码、无损编码及层次编码。其中基于DCT变换的顺序编码方式最常用。

以基于离散余弦变换的顺序编码方式来说明JPEG图像解码的过程。图像解码是压缩编码的反过程,解码的码流起始位置标志信息,解码器根据 JPEG压缩图像的文件头信息,得到原始图像的基本信息。得到原始图像信息后,解码器根据JPEG文件中的霍夫曼表进行解码。由于熵编码过程中使用霍夫曼编码分别对DC及AC系数进行编码,其中系数编码的顺序采用zig-zag序列,因此实现解码时需要考虑这些相关实现过程,详细信息请参考相关文献 [5]。根据量化系数表,经霍夫曼解码后的系数与相应的量化值进行乘积,然后进行反余弦变换。需要注意的是,JPEG 图像使用的是YCrCb模型,其中Y 是亮度分量,Cr及Cb是色度分量,需要将系数的色彩空间从YCrCb转换到RGB空间,最终得到图像的R、G、B 数据值,这些数据才可以在液晶显示屏上显示。

根据JPEG 文件交换格式提供的资料文献[6],YCrCb色彩空间到RGB色彩空间的转换见公式(1)。

 


考虑到延时应尽量小,程序在NOR Flash存储器上执行效率低。图像解码算法中应合理安排在ARM9中的内存分配。设计过程中将频繁访问的程序代码及数据搬运到ARM9内部高速缓冲存储器中,从而提高编码的效率。由于顺序编码方式最常用,它通常称为JPEG 基本系统(BaseLine)。设计过程中,实现的JPEG 图像解码支持顺序编码,完全可以满足应用要求。

2.2 TFT-LCD LQ080V3DG01

实验中选用LQ080V3DG01彩色液晶显示模块测试设计效果。LQ080V3DG01 由彩色TFT-LCD面板、驱动电路、控制电路、供电电路及背光单元组成。它支持最大分辨率为640×480的图形和文字显示,数据输入格式为 18bit,其中红绿蓝各占6bit,提供的颜色共262 144种。

TFT-LCD需要+3。3V或+5V供电电压,背光需要交流电源供电。输入的控制信号有4个:帧同步信号VSYNC、行同步信号HSYNC、数据使能信号ENAB及时钟信号CK。数据线宽度是18bit,红绿蓝各占6bit,分别是R [0∶5]、G [0∶5]及B [0∶5],颜色配置信息如表1所示。

表1 输入数据信号及颜色显示配置

 


LQ080V3DG01液晶显示屏的数据线共18bit,对于24bit的彩色图像以及24bit的ARM9S3C2440X的TFT-LCD 控制器而言,其接口并不兼容。设计中为了适应LQ080V3DG01液晶显示屏的接口,分别舍弃了8bit R、G、B 值的低2位,测试结果显示效果良好。如果选用的TFTLCD是24bit数据线,则可以直接连接到LCD控制器相应的数据线。

3 模块设计方案的实现

3.1 工作流程

在ARM9执行初始化后,主程序就等待外部模块通过串口发送指令。外接模块通过RS232串口与本模块通信,根据通信协议发送不同的指令,实现相应的功能。在约定的串口波特率下,通信协议如下:显示图像时首先发送指令0x55,然后再发送图像在图像库中的编号;显示字符时首先发送指令0x56,然后再发送字符在字符库中的编号,最后发送字符在液晶屏上显示的横轴及纵轴坐标。需要说明的是,在NAND Flash存储空间中的图像库及字符库是自己定义的,可以重新下载更新。软件流程图如图3示。

 


图3 软件流程图

3.2 彩色图像显示

所设计的模块支持24bit彩色RGB及JPEG两种格式的图像显示。因为像素数据可以直接送到液晶接口控制模块显示,而JPEG格式的图像则必须经过解码之后才能显示,所以图像在显示前,需要先判断图像数据是什么格式。如果图像数据是JPEG格式,则必须经过图像解码,解码后得到原始彩色图像的像素数据值R、G、B,这些数据经过显示控制单元送到液晶屏显示。如果图像是原始图像的数据,则可以直接送到液晶控制模块进行显示。

由于要显示的图像存储在NAND Flash的图像库存储空间,所以在将彩色图像输出到TFT-LCD显示时,首先要将需要显示的图像数据从NAND Flash中读取出来,得到一幅24bit彩色图像的完整原始图像数据。原始图像数据中,一个像素占用3byte,其中R、G、B 各占1byte。将数据输出给TFT-LCD 显示前,需要根据LCD接收的数据格式将图像数据进行转换,然后才能输出显示,图像数据按照从上到下,自左向右的顺序输出[9]。同样,将TFT-LCD 按照相同的顺序进行扫描,最终完成整幅图像的显示。

NAND Flash存储着大量的图像数据,为了区分不同的图像数据,将相应的图像输出显示,模块采用RS232串口与外界通信。通过发送不同的指令,可以将在NAND Flash上存储的相应图像读取出来,输出在TFT-LCD上,最终实现各种彩色图像的显示。

3.3 字符显示

字符采用16×16点阵,由于每个像素占用3byte,所以每个字符占用768byte。可以将常用字符存储在NAND Flash中,作为字符库使用,需要时调用即可。当显示字符时,首先要确认相应字符在存储器中的位置,然后根据地址信息对相应字符进行操作,最后根据字符要显示的位置在液晶屏上输出,实现字符在液晶屏上的显示。

实验过程中为字符库分配8Mbyte空间,可以存储10 922个字符。字符库还可以实现更新,只需将存储器NAND Flash对应地址空间的内容替换即可。[!--empirenews.page--]

4 实验结果

为了测试模块的正确性,将一幅分辨率为640×480的图像"AutumnLeaves"下载到NANDFlash存储器中,它在图像库中的编号为0x01。

根据串口通信协议,向液晶显示模块发送指令0x55,然后再发送图像在图像库中的编号0x01。

显示模块接收到指令后,液晶屏显示效果如图4所示。测试结果表明,模块工作正常,发送显示其他图像及字符的指令同样效果良好,运行可靠,达到了模块方案设计要求。

 


图4 液晶屏显示图像测试结果。

5 结 论

提出了一种基于ARM9的24bit彩色TFTLCD液晶显示模块设计方案。图像及字符库存储在NAND Flash固态闪存中,保证了图像及字符的实时显示,同时还能实现对图像库及字符库的更新。提供了串口通信方式,可以方便地实现与其他外接系统交互。该模块设计简化了彩色TFT-LCD显示图像的设计难度,提高了开发效能。模块可以兼容不同类型的彩色TFT-LCD,为液晶显示模块的彩色图像显示提供了一种新的方法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式处理器是一种特殊的计算机处理器,它被设计用于嵌入到各种设备和系统中,以实现特定的功能。由于其低功耗、高性能和可靠性等特点,嵌入式处理器在许多领域都有广泛的应用,如汽车电子、工业控制、医疗设备等。本文将对嵌入式处理器...

关键字: 嵌入式处理器 嵌入式系统

2023年10月10日, [恩智浦创新技术论坛] 在深圳湾万丽酒店举行,众多工业、物联网、新能源和医疗等行业的企业出席论坛,深入交流市场趋势与行业洞察,一同讨论如何协同面对市场的机遇与挑战,共同促进未来市场的发展。米尔电...

关键字: NXP 嵌入式处理器

据业内信息报道,昨天 AMD 在 Embedded World 上宣布了其第四代 EPYC 嵌入式处理器,该处理器采用其 Zen 4 架构,旨在云和企业计算以及工厂车间工业边缘服务器中的嵌入式网络、安全、防火墙和存储。

关键字: Zen 4 AMD EPYC 嵌入式处理器

摘要:近年来随着人工智能、智能交通以及控制技术的快速发展,智能车成为了目前最为热点的研究课题之一。但是现阶段有关智能车辆系统方面的研究还不够深入,特别是在控制技术方面还存在一些问题。而嵌入式技术具有功能强大、成本低且可裁...

关键字: 智能车系统 设计 实现

摘 要 :智能电网以优良的性能服务于国民生产,主要依靠接入电力系统设备间的网络通信。便携式电力设备的网络通信性能测试对于智能电网的运行具有重要意义。以嵌入式处理器为核心,提出了一种智能电网设备网络通信性能的便携式测试装置...

关键字: 智能电网 嵌入式处理器 WinCE操作系统 通信 便携式测试装置 人机接口

本文基于ARM9芯片的S3C2440和Linux操作系统,设计了一种SPI驱动程序,该驱动程序功能可靠灵活、易于移植,可应用于多种嵌入式平台,实现ARM与设备之间的通信。

关键字: S3C2440 SPI arm9 Linux ARM

随着对高处理能力、实时多任务、网络通信、超低功耗需求的增长,传统8位机已远远满足不了新产品的要求,高端嵌入式处理器已经进入了国内开发人员的视野,并在国内得到了普遍的重视和应用。

关键字: 32位 ARM 嵌入式处理器 调试技术

什么是韦根协议?如何实现?本文详细解读。

关键字: STM32 韦根协议 实现

技嘉官网现出现了两款新的迷你PC产品,GB-BSRE-1505和GB-BSRE-1605,这两款型号是面向商用的,一般会是公司采购,所以并不像消费者产品那么紧跟时代潮流,这两款新的迷你PC用的处理器还是AMD的第一代锐龙...

关键字: 技嘉 pc 锐龙 嵌入式处理器
关闭
关闭