触控屏控制器刷新周期开始时,主端口模块根据帧缓存地址生成逻辑所产生的地址,完成主端口的读操作,实现帧缓存中数据读取,并将该数据输送给输出缓冲模块。同时,时序信号生成模块依据触控屏的时序规范生成行、场同步信号,以及与像素同步的相关显示点的横、纵坐标。触控屏控制器数据显示模块不断从缓存中读取屏幕显示数据。
2 触控屏控制器模块设计
2.1 Avalon-MM Slave接口模块
本模块挂载在Avalon总线上作为从设备使用,用来对所有的用户逻辑进行配置和控制,核心功能是寄存器操作,包括读、写以及一些特殊指示与状态信号的产生与转换。通过从端口得到的数据分别赋值给相应的寄存器,寄存器分为:FIFO地址寄存器、坐标寄存器、一帧数据长度奇存器。本模块是最后在触控屏上实现图形显示功能的接口电路。
2.2 Avalon-MM Master接口模块
LCD控制器的本功能是产生LCD时序信号,将帧缓存中的图像信息进行有序输出。由于图形是一帧一帧地输出到触控屏上,而且显示刷新过程是无限循环的,所以必须反复执行帧缓存读操作,因此本设计对上述读操作进行了硬件加速。可以不断地从FIFO读取图像数据,并且在行、场和触控屏显示有效时间段读取图像数据,其它时间不读图像数据,这样减少了Avalon总线的使用,有利于图像显示并减少了总线负担分析读帧缓存的操作可以发现,该过程总是按照一定的顺序,将存储器中的数据读出来进行显示输出,规律性非常强。
本模块主要完成地址及操作时序的产生、像素数据缓存写操作控制、数据宽度的变换等功能。
2.3 触控屏时序产生模块
本文的触控屏引出信号线有5根:像素数据信号、触控屏时钟信号、行同步信号、场同步信号、使能信号。为了实现触控屏的正常显示,必须对以上信号按照规范的时序进行驱动,其中,行、场同步信号分别用来标记屏幕上一行和一帧图像的显示时间,屏幕扫描线从上到下、从左到右依次扫描。在这个过程中,只需将帧缓存中的图像像素数据依次输出,就可以实现屏幕图像显示。
2.4 FIFO帧缓存模块
DDR控制器随着系统时钟不断往FIFO写数据,当一帧数据写满时就不再进行写状态,而等待LCD控制器进行读状态,颜色处理器从FIFO中获取数据,每次从FIFO中读取32 bit数据并不断送给LCD。
颜色处理器将每一个字节作为一个像素数据,并将一个字节的像素数据转换为3个字节的RGB数据。颜色处理器从同步FIFO缓冲器中读取数据,当同步FIFO缓冲器写和读相互不冲突时,同步FIFO缓冲器产生读请求,让Avalon主端口向Avalon总线发起读传输,从总线上获取的数据将写入同步FIFO缓冲器,颜色处理器从FIFO中读取像素值,并且传给LCD显示模块。
[page]
2)Avalon主端口仿真与测试
Avalon模块的作用是响应Avalon主端口的读请求,并将FIFO中的相应数据输出给Avalon主端口。通过读信号和相应地址主端口,不断地从FIFO中读取图像数据,并按照LCD时序将图像数据输送给LCD。图3为Avalon主端口从显存中读取数据时的仿真波形图。
3)LCD图像显示模块测试
LCD显示模块是将从FIFO中读出的图像数据在触控屏上显示出来。从图4可以看出,当DEN有效时,将像素数据分为R、G、B传送给LCD,HCount和VCount为行计数器和场计数器,随着LCD时钟将各个像素点传送给触控屏。
4 基于SOPC触控屏系统硬件设计
基于SOPC触控屏系统硬件设计如图5所示,其中,SDRAM控制器实现处理器和SDRAM之间的数据存取,包括SDRAM存储程序和字符、图形以及颜色等数据:JTAG UART实现PC和开发板通信,主要用于调试,从键盘输入相应数据,然后通过NiosⅡ软件调试处理器,将数据通过LCD接口传输到触控屏上显示出来。
开发板采用大连宇华公司的H3C40-V6开发板。板上的FPGA芯片为EP3C40F484C6,触控屏为4.3英寸彩色数字TFT—LCD触控屏,分辨率800×484,可以显示文字、彩图等。板上自带触控屏显示驱动器。
[page]
根据所用到的外设和器件特性,在SOPC Builder中建立系统所要添加的外设模块,主要包括:NiosⅡ、SDRAM控制器、JTAG UART、时钟桥、三态桥、锁相环和PIO等。设定好各个参数,再添加LCD控制器,将LCD控制器的Avalon主端口接口连接到SDRAM上。
5 基于SOPC触控屏系统软件设计
根据硬件设计编写软件测试程序,以验证LCD触控屏显示。首先往显存中写入预定的数据来初始化显存,然后通过编程将相应的参数写入LCD的各个控制寄存器,最后使能LCD控制器,以观察显示屏的显示输出是否正确。
本设计采用C语言编程,让触控屏显示彩条。在NiosⅡIDE软件平台上,创建C/C++工程,配置工程的系统属性,然后编译及运行程序。在编译成功后,自动下载到硬件平台上开始运行程序,这时在触控屏上观察到效果如图7所示,图中彩条颜色从上至下分别为红、浅绿、蓝、绿、粉、红、紫、白、蓝。
6 结论
采用自定义添加触控屏接口控制模块来定制用户逻辑外设。使用硬件描述语言建立控制器模块并进行仿真测试;采用参数化组件设计,使其具有较强的通用性和兼容性。该控制器IP核设计有效利用FPGA资源,节约成本,增强系统可靠性和设计灵活性,并且可移植性强。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』