×
嵌入式开发 > 详情

基于SOPC的触控屏控制器IP核设计

发布时间:2020-07-10 发布时间:
|

可编程片上系统(SOPC)是一种特殊的嵌入式系统,它设计方式灵活,具备软硬件在系统可编程功能。SOPC 在设计上以集成电路IP 核为基础,而自行开发的SOPC IP 核,根据实际硬件资源和功能任务需求来定制显示控制功能,可以增强系统可靠性和设计灵活性,降低了成本。目前针对LCD 显示设计的控制器IP 核文章较多[1-2],但对于TFT-LCD 触控屏设计的控制器IP 核文章较少[3],而且这类文章中很少见对控制器各个模块进行仿真验证内容。

文中提出一种针对TFT-LCD 触控屏控制器IP 核的设计方法。该控制器具有Avalon 总线接口,与其他标准IP 核一起构成以NiosⅡ为核心的片上系统。针对本设计中触控屏帧缓存读操作的特点,选择以Avalon 主端口接口的形式对模块进行开发,大大提高了处理器运行效率,同时实现了触控屏控制器IP 核的参数化设计, 提高了控制器对于不同LCD 屏的可复用性,最后通过对输出缓冲FIFO 的使用,解决了数据读出时钟与像素时钟不同步问题。

1 触控屏控制器总体结构

在SDRAM 中开辟一段储存空间, 用来存放屏幕图像数据,称之为帧缓存。通过设计适当的硬件逻辑来建立帧缓存与屏幕图像像素之间的一一对应关系,并配合触控屏显示所必需的行、场时序信号,将帧缓存中的数据不断地输送给触控屏, 完成最终的显示刷新, 其总体结构如图1所示。

触控屏控制器刷新周期开始时,主端口模块根据帧缓存地址生成逻辑所产生的地址,完成主端口的读操作,实现帧缓存中数据读取,并将该数据输送给输出缓冲模块。同时,时序信号生成模块依据触控屏的时序规范生成行、场同步信号,以及与像素同步的相关显示点的横、纵坐标。触控屏控制器数据显示模块不断从缓存中读取屏幕显示数据。

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 显示模块。

3 Modelsim 仿真与测试

1)Avalon 从端口仿真与测试

由图2 可知,从端口一位地址对应一位数据。当写信号有效时,将数据写入相应的寄存器;当读信号有效时,对应寄存器地址将数据输出。通过从端口数据写入来控制LCD 模块,控制LCD 读取图像的首地址和读取数据的长度。

图2 从端口仿真波形图



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机系统的EMC测试