基于FPGA简易数码相框设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的简易数码相框设计
摘要:随着电子技术的发展,数码产品渐渐的成为人们生活的一部分。

本文提出一种基于fpga简易的数码相框设计方案,实现把sd卡上彩色图片呈现在液晶显示器上。

大容量、高速度的sdram作为缓存器,在处理信号同步上起到很大作用。

此方案可以适用于各种彩色图像显示、视频图像再现等场合。

关键词:数码相框;fpga;sd卡;液晶显示器;sdram
中图分类号:tp391.7 文献标识码:a 文章编号:1007-9599 (2012) 24-0158-02
1 概述
实现vga上显示一张彩色的图片,就要求满足一定的条件:包括图片数据源、数据缓存、显示器。

cpu捕获外部数据源,然后将获取的数据源缓存在sram或者sdram等存储芯片,最后以标准的时序给vga刷屏。

数据源有静态和动态的。

所谓静态数据源,就是数据已经保存在系统中,不能再改变的的数据源[1]。

为了显示真彩图像,可以将图像数据存放于sdram,或者flash,从而通过读取ic上已经存储的图像数据,显存于sram/sdram。

动态数据源可以是直接通过读取存放于sd卡、u盘等移动数据的图片,通过图片解码来得到图像数据;uart/usb等接口或者是网络传输作为数据通道可以得到希望的图像数据;摄像头作为外部数据源,来采集图像,传输至
sdram/sram。

图像的格式,有jpeg、bmp、png等多种格式;图像的位数,也有单色、4灰、256色、4096色、16位真彩色、24位真彩色、32位真彩色这几种。

fpga并行数据输出,经过数模转换(电阻网络转换或者视频转换芯片),得到16位以上的vga数据[2]。

人眼不能分辨的极限,至少也需要16位真彩色。

16位以上的数据,24位、32位,人眼基本无法分辨清楚,因此,要求不是很高的情况下16位真彩色已经足够胜任。

最基本的分辨率有如
vga_640_480_60fps_25mhz、vga_800_600_72fps_50mhz和
vga_1024_768_60fps_65mhz。

以至少25mhz的速度刷屏,需要实现显卡刷屏的功能,最小图片容量模式下的数据量是
640*480*16=4915200bits=600kb,再大些的数据量
1024*768*16=1.5mb,如此大的图片数据,就需要有如此容量的缓存区。

综上,也就是说,要实现真彩图像vga显示,一需要16位以上的vga驱动电路;二需要足够的容量来存放图片。

2 系统总体结构设计
本系统设计以altera ep2c8q208c8为核心芯片,通过对sd卡、sdram、vga接口的控制,实现彩色图片的显示。

选用sd卡做存储设备,可以方便、快捷、大量的存储图片;由于vga扫描的时钟频率较高,而sd卡数据源读取的速度达不到vga的时序要求,需要加一片sdram做图像数据缓存,只要时序控制好,就可以达到数据的高速传递。

整体设计结构如图1所示。

图1 系统总体结构
2.1 sd卡
sd卡有两种接口模式:sd模式和spi模式,本文使用spi模式。

spi模式由一个由基于闪存sd存储卡提供的次要通信协议组成,此模式是sd存储卡协议的子集。

此接口在上电(cmd0)后的每一个复位命令期间被选择[3]。

spi标准只定义物理链接,而不提供数据传输协议。

spi模式执行利用sd存储卡协议和命令集的子集。

sd卡的上电初始化过程:
(1)适当延迟等待sd就绪
(2)发送74+个spi_clk,且保持spi_cs_n=1、spi_mosi=1 (3)发送cmd0命令并且等待响应r1=8’h01,将卡复位到idle 状态
(4)发送cmd1命令并且等待响应r1=8’h00,激活卡的初始化进程
(5)发送cmd16命令并且等待响应r1=8’h00,设置一次读写block的长度为512字节
sd数据读取操作:
(1)发送命令cmd17
(2)接收读数据起始令牌0xfe
(3)读512字节数据以及2个字节的crc
sd命令cmd发送控制:
(1)发送8个时钟脉冲
(2)sd卡片选cs拉低,即片选有效
(3)连续发送6个字节命令
(4)接受1个字节响应数据
(5)sd卡片选cs拉高,即关闭sd卡
2.2 sdram
在基于fpga的图象处理系统中,常常需要用到大容量、高速度的存储器。

而在各种随机存储器件中,sdram的价格低、体积小、速度快、容量大,是比较理想的器件。

但sdram的控制逻辑比较复杂,对时序要求也十分严格,使用很不方便,这就要求有一个专门的控制器,使系统用户能很方便地操作sdram。

sdram需要正确的上电逻辑和模式设置来进入期望的工作模式。

访问特定的逻辑单元必须先激活相应的存储块,并锁定对应的行列地址。

另外,必须有定时的刷新逻辑保持数据不丢失,sdram有多种操作模式,由引脚cs#、ras#、cas#、we#和地址信号的不同状态来决定,sdram控制器必须为sdram提供满足时序要求的这些控制信号,以准确地控制sdram的各种不同操作[4]。

控制器的设计包括以下几点:
(1)初始化。

包括等待200us,这是sdram的输入稳定期;所有l-bank预充电;至少8个预刷新周期。

(2)自动刷新。

(3)支持burst长度为8的读写操作。

(4)读、写、自动刷新和初始化之间的优先级仲裁机制以及转
换机制。

具有以上功能的sdram控制器可以满足系统对sdram访问的需要,不仅可以减小开发难度,还可以节省系统资源和成本,提升系统的性能。

2.3 vga显示
(1)vga时序
vga接口是显示卡上输出模拟信号的接口,也叫d-sub接口。

这种接口上面共有15个针孔,分成3排,每排5个,通过模拟vga 接口显示图像的工作原理,将计算机内部以数字方式生成的显示图像信息,通过显卡中的adc转变为r、g、b三基色信号和行、场同步信号,通过电缆传输到显示设备中[5]。

vga的时序包括水平时序和垂直时序,且两者都包含的时序参数有:水平(垂直)同步脉冲、水平(垂直)同步脉冲结束到有效显示数据区开始之间的宽度(后沿)、有效显示区宽度、有效数据显示区结束到水平(垂直)同步脉冲宽度开始之间的宽度(前沿)。

水平有效显示区宽度与垂直有效显示区宽度逻辑与的区域为可视区域,其他区域为消隐区。

一行或一场的时序信息如图2所示。

图2 行/场时序图
(2)vga驱动
为匹配vga接口,还需要加上一个vga驱动器,实际上起到d/a 转换的作用。

采用权电阻电路显现vga
接口的阻抗匹配网络,根据测试结果可以发现这种形式的网络电路也可以实现很清晰效果。

vga接口协议规定,r、g、b分别为红绿蓝三基色模拟电压为0~0.714v,0v代表无色,0.714v代表满色[6]。

三基色源端及终端的匹配电阻均为75欧姆,因此以r基色为例,电路形式如图3所示,g、b基色的匹配网络跟r基色一样。

图3 r基色阻抗匹配网络
令rx为5位权电阻网络的等效电阻,当5位全为1时
rx=r||2r||4r||8r||16r
有如下关系
3.3/(rx+75)= 0.714/75
可以得出,等效电阻rx = 271.6欧,r =526.225欧。

考虑到所有电阻都必须取标称值的原因,故将r取为500欧,这样跟理论值会存在一些误差。

由上可知
rx=0.5k||1k||2k||4k||8k ≈258ω
v0=75ω/(75ω+8kω)*3.3v=0.03v
v4=75ω/(75ω+258ω)*3.3v=0.743v
3 结束语
在许多图像处理系统中,速度快、容量大的sdram起到显著作用,本文依据sdram为缓存器设计了一种实时图像显示系统。

fpga控制读取sd卡里的图像信号,经由sdram缓存显示到液晶显示器上,可以根据设计按键实现上翻下翻或自动浏览图片。

本设计为一种简
易的图片显示方案,效果清晰,操作简单,适合多种场合应用。

参考文献:
[1]夏宇闻.verilog数字系统设计教程[m].北京:北京航空航天大学出版社,2006.
[2]刘凌.数字信号处理的fpga实现[m].清华大学出版社,2011(03).
[3]吴厚航.深入浅出玩转fpga[m].北京:北京航空航天出版社,2011.
[4]朱正伟.eda计数及应用[m].北京:清华大学出版社,2005,1-17.
[5]罗建军.vga适用编程计数[m].北京:清华大学出版社,2007,7-30.
[6]夏宇闻.复杂数字电路与系统的verilog hdl设计技术程[m].北京:北京航空航天大学出版社,1998.。

相关文档
最新文档