官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页-old > 新闻中心 > FPGA技术教程 > 边缘检测 >

MP801边缘检测工程移植到7寸LCD屏幕显示(推荐)-明德扬科教(mdy-edu.com)

发布时间:2019-12-10   作者:admin 浏览量:



MP801边缘检测工程移植到7LCD屏幕显示


本文为明德扬原创文章,转载请注明出处!作者:鱼丸粗面

明德扬开发板MP801有丰富的例程,其中一个有趣的案例是用MP801开发板实现一个边缘检测的功能。通过接入摄像头采集到外部图像数据,在FPGA中进行图像算法处理,最终能够通过VGA接口在显示屏上显示出采集到的外部图像的边缘信息。此例程在明德扬的官方论坛上有更新,感兴趣的同学可以直接前往下载。

在官方论坛上的案例中,图像数据是通过VGA接口输出到显示屏上进行显示,输出的图像分辨率为640*480。今天我为大家重点介绍的是如何不使用VGA接口,而是通过一个7LCD屏幕显示出边缘检测的图像数据。

显示效果如下图1所示:

此工程的模块与在MP801上实现的案例是一样的,直接拿过来使用,只是在显示模块vga_driver中做了部分修改。由于LCD屏的驱动时序与VGA的时序不一致,因此需要对显示模块进行适配的修改。首先需要先搞清LCD屏的驱动时序。

其中,LCD屏的行时序是:

LCD屏显示方式从屏幕左上角一点开始,从左像右逐点显示,每显示完一行,再回到屏幕的左边下一行的起始位置,在这期间,需要对行进行消隐,每行结束时,用行同步信号进行同步;LCD的驱动有两种方式,一种为HV模式,另一种为DE模式,这两种模式都能驱动LCD屏,数据在DCLK的上升沿采样。

LCD屏的列时序为:

当显示完所有的行,形成一帧,用场同步信号进行场同步,并使LCD显示回到屏幕左上方,同时进行场消隐,开始下一帧。

行、场的时序参数定义如下:

2 LCD时序参数定义

LCD行、场的时序图:其中行周期数是1056,列周期数是505LCD显示的区域是800*480时序段,行、场数通过计数器进行计数。

3 LCD行、场时序图

水平扫描计数:

4 水平扫描计数

行同步信号hsync_r以及行有效显示信号hsync_de

5 行同步信号以及行有效显示信号

场信号也是按照上面的时序来进行设计,主要是为了得到场同步信号vsync_r和场有效显示信号vsync_de。有效显示信号lcd_de是在这两个信号同时有效时才拉高。当lcd_de拉高时,输出的像素值在LCD屏幕上显示。

6 LCD屏幕显示区域

由于RAM中保存的数据数量最大为320*200,因此在LCD屏上最大只能有320*200的外部数据显示区域:

7 RAM中存储数据显示区域

驱动模块向RAM中输入读地址以读取RAM中存储的数据:

8 读地址设计

最终在LCD屏上输出的RGB信号:

9 输出RGB信号

总结:由于RAM的资源限制,RAM中存储的一副图像最大只能有320*200的像素点,因此导致输出到LCD屏幕上的像素最大也只能为320*200,摄像头采集到的一帧640*480的图像数据会有大部分被丢弃掉,这也导致了显示出来的效果不是很理想。想要解决这个问题,就只能增大存储空间,通过外部存储器如SDRAM,将摄像头输出的整幅图像都保存起来然后在LCD屏幕上显示。目前我们正在做这一工程的移植,并且还会增加许多有趣的功能,提供很有意思的玩法。

想要源代码或者感兴趣的同学可以加下面本人的联系方式:QQ3358622769,期待与大家一起探讨进步!


   拓展阅读