文献标识码:A
DOI:10.16157/j.issn.0258-7998.2015.12.006
中文引用格式:陈东旭,李宏. 多路图像数据合成LCD显示控制器设计[J].电子技术应用,2015,41(12):28-31,35.
英文引用格式:Chen Dongxu,Li Hong. Design of LCD display controller for multi-channel image data synthesis[J].Application of Electronic Technique,2015,41(12):28-31,35.
0 引言
随着嵌入式技术的发展,LCD在嵌入式系统中的广泛应用推动了LCD显示控制器的发展和完善。随着所需显示的图像信息增加、功能要求增多对LCD显示控制器的功能提出了更高的要求[1]。
当前,嵌入式领域使用的LCD显示控制器主要有微处理集成型和专用型两种类型,如LPC1788自带的LCD显示控制器和ILI9320专用LCD显示控制器,由于使用便捷、性能稳定,在一般嵌入式系统的显示领域应用广泛。但随着嵌入式系统定制化需求提高、显示要求增多,如需视频和操作界面等多路图像混合输出显示的场合,上述的LCD显示控制器由于接口单一、功能固定,很难满足实际需求。如依旧使用这类显示控制器,则往往需嵌入式处理器完成显示前的合成处理,极大地增加了嵌入式处理器的处理压力,不但需要额外选择性能高端的处理器,更是加大了编程开发难度[2]。
针对以上情况,结合实际工程需求,本文提出了一种基于FPGA的专用LCD显示控制器,具有多路图像协调存取、画中画显示、OSD字符叠加等功能,可用于视频信息和显示数据混合输入领域。
1 LCD显示控制器总体构架
1.1 具有多路图像数据合成的改进型嵌入式系统
典型的具有视频显示功能的嵌入式系统如图1(a)所示,主要由ARM最小系统、摄像头、集成或专用LCD显示控制器、显存模块、LCD组成。其中LCD显示控制器由ARM处理器自带或外接专用芯片,在需要多路图像处理时需调用自身ARM处理器,极大增加了ARM处理器的负担,不得不选用高端处理器来达到所需处理性能要求。
针对典型电路的不足,本设计将实时视频直接接入LCD显示控制器处理,而不经过ARM处理器,系统结构如图1(b)所示。由LCD显示控制器直接完成视频数据与操作显示数据的存取、合成、叠加等处理操作,降低了ARM处理器处理图像数据的压力,从而保证系统高效稳定工作。
1.2 LCD显示控制器的工作原理及构架
LCD显示控制器由视频接口电路完成视频数据的转换、输入,由8080、6800等协议接口电路完成ARM最小系统显示数据的解析、输入,再由主控器与存储控制器把两路数据分别存入片外存储器中,再由后级合成显示电路从显存中读取所需要的图像数据,合成处理后配合LCD显示所需要时序一同送入LCD中,完成最终的显示。
根据上述原理提出了如图2所示的LCD显示控制器构架,主要由图像接口、图像缓存、协调存取、显示合成等模块组成,完成从图像接入、处理、存取、输出显示等一系列工作[3]。
2 图像接口电路设计
2.1 视频接口电路设计
本设计选用OV7670作为接入摄像头,不经过ARM最小系统处理直接接入LCD显示控制器中,通过SCCB总线对OV7670进行初始化配置,然后把配置完成信息传递给拼接模块,由拼接模块来接收OV7670摄像头输入的视频像素信号、像素时钟、行同步帧同步信号,最终输出16位RGB565格式数据、拼接后像素的像素时钟和帧有效信号,视频最高分辨率为640×480 ppi,帧率达到30帧/秒。
2.2 8080接口协议解析电路设计
ARM最小系统显示数据以8080时序输入,8080接口协议解析电路,一方面配合其时序接收相应的数据信息,另一方面对接收到的数据信息进行解析[4],具体设计的总线连接和寄存器设置如图3所示。
在ARM最小系统部分,可以使用模拟8080方式或FSMC(可变静态存储控制器)进行时序信号的传输,其中使用FSMC方式速度更快、更便捷[5]。具体FPGA设置的控制功能和寄存器配置如表1所示,ARM处理器编程时只要按照以下数据时序要求,就可以方便地进行寄存器控制和数据读写。
3 协调存取电路设计
存取协调电路包括视频与显示数据的预处理、SDRAM协调控制器,其中SDRAM协调控制器是整个协调控制电路的核心,为了让LCD显示控制器灵活存取连续更新的视频数据和非连续更新的ARM最小系统显示数据,改进了传统的SDRAM控制器,总体结构如图4所示,使其在操作两类不同数据时更加灵活高效便捷,并可以移植扩展。
3.1 SDRAM主协调器设计
SDRAM主协调器主要根据控制信息控制SDRAM从控制器工作,完成视频数据与显示数据的协调。其中视频帧有效信号和起始、结束地址分别给出视频数据和ARM显示数据的帧完成信号,其中ARM显示数据像素点与起始地址、结束地址关系如式(1)所示:
其中S为有效像素点个数,H0、V0为起始行地址和起始列地址,H1、V1为结束行地址和结束列地址。
3.2 SDRAM从协调器设计
SDRAM从协调器会根据接收的信息对对应数据进行存储规划,对于视频数据,从协调器使用顺序存取,而在ARM显示数据部分,则使用映射存取,具体对应关系如图5所示。
当ARM处理器需更新上图所示区域时,可以根据式(2)计算出对应SDRAM在存储上述所更新数据时的地址值。
其中VM、HM为LCD显示区域行像素点和列像素点,CM、RM为SDRAM存取列地址和行地址,AR为更新数据在SDRAM存储时的起始行地址、AC为更新数据在SDRAM存储时的起始列地址、NV为连续存储的像素点值,NH为所需更新的区域块,BA为连续存储像素点结束后需跳过像素点个数。
3.3 SDRAM控制器设计
SDRAM控制器主要完成初始化、自刷新、行列地址输出、读写控制等针对SDRAM的直接操作。在本设计中,SDRAM除了完成初始化和自刷新等基本控制功能外,其他的读写切换、分页地址切换都受对应SDRAM从协调器控制,最终完成单片SDRAM的部分乒乓存取,主要利用SDRAM高速读写来完成片内的分页读写切换。
4 合成显示电路设计
4.1 合成控制电路设计
合成模块从SDRAM中读取所需显示数据,根据显示方式进行数据的筛选调整,然后把相应的显示数据点输出,合成控制功能示意图如图6所示,其中根据显示方式的不同,分别可以显示单视频、单ARM显示信息和画中画显示,以方便嵌入式系统根据对应显示要求进行调节控制,达到最佳的显示操作体验[6]。
4.2 OSD字符叠加电路设计
OSD字符叠加是一种辅助信息显示方法,可以在原本输出显示的图像上叠加所需辅助显示的字符信息,以达到显示效果最优化,本设计在最终数据输出部分加入了OSD叠加模块,ROM中数据有叠加所需给定,并通过分层叠加操作对输入显示数据进行处理,通过透明度的调节可以让随屏叠加字符有透明效果,用以表示辅助信息的次重点[7]。
4.3 LCD驱动时序产生电路设计
时序发生模块接收最终处理完成的显示数据,并根据对应显示屏的驱动时序,产生相应的驱动时序,把所需显示数据送到LCD上完成显示。本设计选取群创的7寸屏AT070TN83作为最终显示屏幕。关键时序参数如表2所示,其中的tCLK的典型值为30 ns。
5 LCD显示控制器的实现与功能测试
基于上述设计,用Verilog HDL编程在FPGA cyclone II EP2C35F484C8N上实现,用两片1 M×4 BANK×16 bit容量的SDRAM K4S641632作为数据显存,并通过摄像头OV7670、ARM STM32F103和群创7寸屏AT070TN83进行系统测试。
利用SignalTap II工具实时捕捉输出端信号,主要包括驱动时钟lcd_clk、行同步信号lcd_hs、帧同步信号lcd_vs、数据有效信号lcd_en、显示数据蓝色分量lcd_blue, 捕捉实时显示驱动时序如图7和图8所示。
由测试时序分析可得 LCD显示控制器产生的时序完全符合7寸屏AT070TN83驱动所需的时序要求。
LCD显示控制器接入实际嵌入式系统中进行显示效果测试,主要包括ARM、摄像头和LCD屏等器件,最终实际的显示界面如图9所示。
上图中A区域为实时视频显示区域,B区域为由ARM显示数据确定的操作界面的显示区域,C区域为由OSD字符叠加形成的字符区域,其中视频显示界面可对大小位置进行调节,显示界面可根据用户自定义编程设置,并可以灵活加入各类随屏显示内容。经测试,LCD显示控制器设计运行良好、显示效果稳定可靠,可以满足设计需求。
6 结论
本文以FPGA+SDRAM为核心,完成特定功能LCD显示控制器的设计。充分利用FPGA高效并行处理的特点,在带视频显示功能的嵌入式系统设计时把复杂庞大的图像数据处理合成功能放入到LCD显示控制器内部,极大地降低了ARM处理器的图像处理压力,让一般ARM最小系统处理复杂图像数据成为可能,同时LCD显示控制器用Verilog HDL设计开发,有良好的移植性和功能拓展性,稍作修改和调整就可以适应不同的嵌入式系统显示要求。经实际测试,该LCD显示控制器运行稳定,显示效果良好,可推广用于视频监控、车载娱乐等具有视频显示功能的嵌入式系统中。
参考文献
[1] MITHUNA C O,LIBIN T T,KRISHNAKUMAR R S,et al.System Verilog based design and implementation of LCD Controller IP Core(2015) 2015 International Conference on VLSI Systems,Architecture,Technology and Applications,VLSI-SATA 2015.
[2] 李钢,王飞.STM32直接驱动RGB接口的TFT数字彩屏设计[J].单片机与嵌入式系统应用,2011,11(8):28-30.
[3] LIU H,TANG W.Video Camera System Based on FPGA(2015) Proceedings-2014 7th International Symposium on Computational Intelligence and Design,ISCID 2014,2:249-252.
[4] SHI D,YE X,YE S.Design of microcontroller's display system based on FPGA.Proceedings of 4th International Conference on Intelligent Systems Design and Engineering Applications,ISDEA 2013:251-254.
[5] 汤莉莉,黄伟.基于STM32的FSMC接口驱动TFT彩屏设计[J].现代电子技术,2013(20):139-141,144.
[6] 万鹏,杨大伟.基于FPGA的视频叠加融合系统设计与实现[J].电子技术应用,2013,39(9):44-46.
[7] 黄燕群,李利品,王爽英,等.基于FPGA的OSD设计[J].液晶与显示,2010,25(3):429-433.