收藏网址

收藏官网,优惠快人一步

您可以尝试通过快捷键 CTRL + D 加入收藏夹

|
|
0755-83865666
|
|
手机立创
|
面板定制
|
消息(0)
|

温馨提示

您上传的BOM清单格式不准确,当前支持上传xls、xlsx、csv、JPG、PNG、JPEG格式,请检查后重新上传

BOM正在分析中...
首页 > 新品推荐 > 基于FPGA的SD NAND图片显示实现
  • 基于FPGA的SD NAND图片显示实现

  • 2024-11-05 17:40:03 阅读量:34

1、目标

 

使用 SD NAND数据读写控制器读取事先存储在 SD NAND的图片数据,将读取的图片数据通过SDRAM 数据读写控制器暂存在 SDRAM 芯片中,通过 VGA 显示器将暂存在 SDRAM 的图片显示出来。 SD 卡内存储两张图片,其交替显示在 VGA 显示器上,分辨率为 640*480。

 

 SD NAND

SD NAND

SD NAND在SD2.0版本协议下,SPI模式的理论最大传输速率为50Mbps,加上命令号以及等待返回响应信号的时间,实际上的传输速率还会下降。对于采用分辨率为640*480@60Hz 的显示器来说,一幅图像的数据量达到640*480*16bit = 4915200bit = 4800Kbit(1Kbit=1024bit), 每秒钟刷新60次,那么每秒钟需要传输的数据量达到4800Kbit*60 = 288000Kbit =281.25Mbit (1Mbit=1024Kbit)。由此可以看出,SD卡的读写速度完全跟不上VGA的数据发送速度,因此必须先缓存一幅图像到内部或外部存储器,再通过VGA接口显示。FPGA的片内存储资源较少,对于缓存如此大量的数据,只能使用SDRAM或DDR3缓存数据。

 

2、图片的预处理

首先选取要显示的图片两张,使用 Window 系统自带的画图工具对图片进行处理,将图片处理为分辨率 640*480。

 

VGA的显示格式为16位RGB565格式,为了使SD NAND读出的数据可以直接在VGA上显示,需要将图片通过 “ IMG2LCD ” 上位机软件转成16位的RGB565格式的bin文件,再将bin文件导入SD NAND中。

 

使用 “ IMG2LCD ” 上位机软件打开两张图片,按如下设置相关参数,然后点击保存,就生成了两个图片的二进制文件(像素值)。

 

SD NAND 

 

3、SD NAND的预处理

 SD NAND在经过多次存放数据与删除数据之后,存入的文件有可能不是按照连续的扇区地址存储的,为了避免图片显示错误,我们将bin文件导入SD NAND之前,需要对SD NAND进行一个格式化处理。

 

首先得找个读卡器,再把所用到的SD NAND开发板插到读卡器上边,通过USB接口与PC建立链接。

 SD NAND

 

本次实验我依然选用的是深圳雷龙公司的一款SD NAND产品----CSNP32GCR01-AOW。 可以看到这款SD NAND开发板设计得很巧妙,把对外接口设计成了通用的micro接口,兼容性非常强,不管是插读卡器还是直接插FPGA开发板,都是即插即用,十分方便。

 

【32Gb SD NAND 二代】商品购买

 

接着说回来对SD NAND的初始化处理。插上读卡器后,选择对应的磁盘,点击“格式化”,并点击“开始”

 

 指引

格式化完成后,将前面生成的两张图片对应的bin文件存入对应的SD NAND磁盘中:

 指引

  

SD NAND内部的存储资源是以扇区的形式进行划分的,为了将图片的bin数据从SD NAND中读取出来,我们需要找到图片存储对应的扇区地址。扇区地址可以用“WinHex 软件”来查看。

 

以管理员身份运行软件 WinHex 软件,点击“工具 ”,然后点击“打开磁盘”:

 指引

 

双击打开对应的SD NAND,记录下两个 bin文件的第一扇区地址:

指引

指引

 

 此时查询到的扇区地址就是bin文件存放的起始扇区地址,我们只需要按照这个起始扇区地址,按顺序读出SD NAND中的数据即可,直到读完一张图片中的所有数据。SD NAND中一个扇区存放512个字节,也就是256个16位数据,对于分辨率为640*480的图片来说,共需要读出1200(640*480/256)个扇区数据。

 

4、FPGA实现

       

先说下总体思路:

· SD NAND中存有两幅图片,一副为雷龙公司的官网截图,另一幅则是本博客的头像

· FPGA从SD NAND中读取这两幅图片的像素信息,并缓存到SDRAM中

· 将SDRAM中的数据(两幅图片的像素信息)通过VGA接口显示在显示器上 

   根据这个思路,可以对应的画对应的系统框图:

系统框图

 

FPGA顶层模块例化了以下五个模块:PLL时钟模块、SD NAND读取图片控制模块、SD NAND控制器模块、SDRAM控制器模块和VGA驱动模块。 

 

【32Gb SD NAND 二代】商品购买

 

4.1、详细设计

 

(1) 顶层模块

顶层模块:顶层模块主要完成对其余各模块的例化,实现各模块之间的数据交互。需要注意的是,系统初始化完成是在SD NAND以及SDRAM都初始化完成后才开始拉高的,该信号控制着SD NAND读取图片控制模块的复位信号,因此SD NAND读取图片控制模块是在系统初始化完成后才工作的,防止因SD NAND或者SDRAM初始化未完成导致数据错误。

 

(2) PLL时钟模块

PLL时钟模块:PLL时钟模块通过调用锁相环(PLL)IP核实现,总共输出五个时钟,频率分别为100Mhz、100Mhz(相位偏移-180度)、50Mhz、50Mhz(相位偏移180度)和25Mhz。 两个100Mhz的时钟用于为SDRAM控制器模块提供驱动时钟;两个50Mhz的时钟用于为SD NAND控制器模块提供驱动时钟;25Mhz用于为VGA驱动模块提供驱动时钟。

 

(3) SD NAND读取图片控制模块

SD NAND读取图片控制模块:SD NAND读取图片控制模块通过控制SD NAND控制器的读接口,从SD NAND中读取图像数据,并在读完一张图片后延时一段时间,再去读取另一张图片数据,实现两张图片的循环切换读取。

 

 

(4)SD NAND控制器模块

SD NAND控制器模块:SD NAND控制器模块负责驱动SD NAND,该模块将SD NAND的读写操作封装成方便用户使用的接口。关于SD NAND读写控制器模块在上一篇文章中已经详细说明了,可参考: 基于FPGA的SD卡的数据读写实现(SD NAND FLASH)

 

(5)SDRAM读写控制模块

SDRAM读写控制模块:SDRAM读写控制器模块负责驱动SDRAM存储器,缓存图像数据。该模块将SDRAM复杂的读写操作封装成类似FIFO的用户接口, 非常方便用户的使用。关于此部分,有详尽的系列文章供参考:相信我,SDRAM真的不难----汇总篇

 

(6)VGA驱动模块

 VGA驱动模块根据VGA时序参数输出行、场同步信号;同时它还要输出数据请求信号用于读取SDRAM中的图片数据,并将图片通过VGA接口在显示器上显示。关于此部分,有详尽的文章供参考:如何用VGA接口乳法?

 

4.2、仿真

        一般的测试中,我们都需要先进行仿真来观察时序等测试行为。此次实验由于找不到好的SD NAND的Verilog模型,所以仿真测试略。

4.3、实验结果

        编译工程,把程序下载到FPGA开发板,通过VGA接口连接VGA线到显示器,如下:

实验结果 

接着观察显示器是否会交替显示我们事先保存的两幅图片。实验现象果然与预期一致:

  

SD NAND 

 

  

好啦,本次实验就做完啦。如果屏幕前的你也有存储产品方面的需求的话,你都可以试试雷龙公司的SD NAND产品哦。

 

这是一家专业做存储产品的公司,NAND Flash是其主要产品。 该公司专注NAND Flash设计研发13年,在这一块可以说是相当专业。如果你对NAND Flash仍有疑惑的问题,或者你想在你的设计中使用NAND Flash产品,都可以直接联系我们

 

 SD NAND

 

【32Gb SD NAND 二代】商品购买

 |  CS(创世)  |  SD NAND
热门物料
型号
价格
STM32G030C8T6/单片机(MCU/MPU/SOC) 2.75
A4988SETTR-T/步进电机驱动芯片 3.8
SP3485EN-L/TR/RS-485/RS-422芯片 0.7454
AD7606BSTZ/ADC/DAC-专用型 84.18
ATMEGA64A-AU/单片机(MCU/MPU/SOC) 13.88
MC34063ADR2G/DC-DC电源芯片 1.92
ADM2582EBRWZ-REEL7/隔离式RS485/422收发器(带电源) 25.08
G5NB-1A-E-24VDC/功率继电器 1.46
ACT45B-510-2P-TL003/共模滤波器 1.15
ADM2587EBRWZ-REEL7/隔离式RS485/422收发器(带电源) 25.6
您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 2022 深圳市立创电子商务有限公司 版权所有

提示

您确定要删除此收货地址的吗?

请填写订单取消原因

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
投诉意见

紧急问题投诉电话:

18826549599

更快的受理通道

对常规通道处理结果不满意

请在此扫码

此意见箱直通立创管理层

优惠券 建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服