EDA技术课程设计-数码相框_第1页
EDA技术课程设计-数码相框_第2页
EDA技术课程设计-数码相框_第3页
EDA技术课程设计-数码相框_第4页
EDA技术课程设计-数码相框_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第 1 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书目目 录录1 1 前言前言.11.11.1 序言序言 .11.2 设计背景 .11.3 设计特色 .22 2 总体方案设计总体方案设计.32.12.1 方案设计以及论证方案设计以及论证.32.1.2 方案一 单片机解决方案.32.1.2 方案二 arm9 核心方案.32.1.3 方案三:以 fpga 等硬件为基础实现.42.3 方案选择 .43.3.单元模块电路设计单元模块电路设计.53.1 各单元模块功能介绍及电路设计 .53.1.1 系统 sd 卡模块.53.1.

2、2 sdram 控制模块.83.1.3 fifo 模块.93.1.4 vga 显示驱动模块.133.1.5 pll 模块.153.2 特殊器件介绍 .163.2.1 sdram 存储器扩展芯片.163.2.2 fpga 主控芯片.174 4 软件设计软件设计.184.14.1 设计原理及设计原理及 q quartusuartus iiii 介绍介绍.184.1.1 设计原理.184.1.2 quartus ii 介绍.184.1.3 结构设计图.184.2 设计流程框图.205 5 系统调试与仿真系统调试与仿真.215.15.1 sdsd 卡模块的仿真卡模块的仿真.216 6 系统功能、指标参

3、数系统功能、指标参数.226.16.1 系统功能系统功能 .226.26.2 系统指标参数测试系统指标参数测试 .226.2.1 性能参数.226.2.2 图片参数.227 7 设计总结设计总结.238 8 参考文献参考文献.24 第 2 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书9 附录:原理图251 1 前言前言1.11.1 序言序言 数码相框是展示数码照片而非纸质照片的相框。数码摄影必然推动数码相框的发展,因为全世界打印的数码相片不到 35%。数码相框通常直接插上相机的存储卡展示照片,当然更多的数码相框会提供内部

4、存储空间以接外接存储卡功能。数码相框就是一个相框,不过它不再用放进相片的方式来展示,而是通过一个液晶的屏幕显示,它可以通过读卡器的接口从 sd 卡获取相片,并设置循环显示的方式,比普通的相框更灵活多变,也给现在日益使用的数码相片一个新的展示空间。数码相框是观看和分享数码照片的专用设备。其基本原理:外观采用普通相框的造型,把原来相框中间的照片部分换成液晶显示屏,配上电源,存储介质等,可以直接播放数码照片,使得同一个相框内可以循环播放照片,比普通相框的单一功能更有优势。数码相框由三大部件组成:lcd 液晶屏、pcb 电路板和外框。其中 pcb 电路板是数码相框的核心,因为它包含必须的软件。数码相框

5、是时尚的电子消费品、也是家庭必备的装饰品。继承了数码的时尚和相框的温情,用途十分广泛。该设计既是时尚的消费电子,也可以是家庭必备的装饰品,可以作为纪念品,礼品、车载、数码摄影器材、随身个性饰品等。也可当作精美的艺术画框和相框,可摆放在柜台桌面,也可挂墙当作壁画,同时也可作为动态及静态广告机。适用于所有的大众,随着普遍性,一定会出现越来越多有意思的创意应用,为我们的平淡的生活带来无穷的乐趣。1.21.2 设计背景设计背景随着社会的发展和物质水平的提高,人们对于精神世界的追求也得到大幅度的改善。迎合现在市场的所需,消费电子的设计新增了人性化的元素。该设计理念源于提高人们生活的幸福指数。在传统意义上

6、,人们往往用冲印出来的相片记录生活中美好的瞬间。而伴着电子行业的发展,足以用数码形式将其取代,同时还可以将静态图片提升为动态的视频短片,携带方便,存储时间长远,满足于人们的需求,同时也是一种节约型、环保型的构想。fpga 是 asic 电路中设计周期最短、开发费用最低、风险最小的器件之一。de2平台。内含 35000 个逻辑单元,内部功能模块丰富,为实现 sopc 提供了强大的支持和保障。同时,sd 卡接口,usb 主从控制器,sdram、flash 存储扩展芯片,为该创意设计提供了很好支持,便于很好的开发。 第 3 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tftt

7、ft 显示系统设计说明书显示系统设计说明书tft(thin film transistor)薄膜晶体管,它可以做到高亮度、高对比度、高速度、高分辨率显示存储信息,是目前最好的 lcd 彩色显示设备之一,逐渐取代传统的点阵显示器,成为主流显示设备。tft 寻址的 lcd 显示器以其大容量、高清晰度和全彩色的视频显示成为液晶乃至整个平板显示的主导技术。作为现在市场成熟的移动存储接口,无疑想到了 usb 和 sd 卡。usb 接口具有很快的传输速度,支持热插拔以及连接多个设备的特点,目前已经在各类外部设备中广泛的被采用;sd 卡是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用

8、,传输速度快,大容量存储,携带方便,兼容性强,使用广泛。1.31.3 设计特色设计特色本设计充分利用 eda 技术,采用 altera 的 quartus 全新开发概念,具有以下几个方面的特点:1、成本低廉,携带方便,供电方式简单,可以做到量产。2、软硬件协同设计,减少开发周期,系统规模小,功能齐全。de2 平台提供了sdram、sram、flash、sd 卡接口,具有丰富的存储介质,很好的做到功能模块化,流水线操作,保障系统的运行速度。3、这款 altera fpga 逻辑资源丰富,配置器件齐全,开发范围广泛,热插拔式的存储介质深入赢得市场。高速的运行速度和强大的数据处理能力保障了系统的正常

9、工作和稳定性。4、整体设计来讲,打破了原有的照片冲印显示图片的模式,节约资源,并且环保。具有很好的市场前景,同时外观时尚精美。5、从扩展方面来讲,还可以做到播放 mp3、mp4、幻灯图片,阅读电子书、设置闹钟备忘录等功能。 第 4 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书2 2 总体方案总体方案设计设计2.12.1 方案设计以及论证方案设计以及论证2.1.2 方案一 单片机解决方案以单芯片的解决方案,以 ess/amlogic/mpx 等芯片设计为代表,philip/sony 等品牌厂商也以该方式为主。该方案的架构如

10、图 2-1-1 所示:主芯片系统相片输出外围设备存储卡图 2-1-1 单芯片方案图该方案的结构简单,成本低,芯片功能强大,多媒体的编解码速度快。但是可扩展的余地不足对读卡部分,某些方案使用硬件实现,不能支持新类型的卡应客户要求的二次开发不方便。2.1.2 方案二 arm9 核心方案 以 arm9 等强大的 cpu 为核心,以 wincelinux 等操作系统为软件核心架构系统,如图 2-1-2 所示:存储卡arm 系统相片输出外围设备图 2-1-2 arm 系统方案此方案以 arm 如 s3c2410、intel xscale 等强大的嵌入式 cpu 为架构,速度在200m-300mhz。嵌入

11、 wince、linux 等操作系统,实现多媒体的编解码。系统芯片功能强大,实现的功能多,对于新的多媒体格式支持好,只需要安装更新的软件,硬件电路简单,二次开发容易实现。但是该方案成本较大,该类强大的 cpu 一般使用在 pda等嵌入式领域;比较耗电,功耗较高,使用软件解码,功耗与频率相关性很大。 第 5 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书2.1.3 方案三:以 fpga 等硬件为基础实现这种方案,是以 fpga 硬件来实现,这种解决方式的结构如图 2-1-3 所示:系统时钟与复位sdram控制器模块lcd显示

12、驱动模块写 sdram 缓存fifo 模块bmp色彩表模块读 sdram 缓存fifo 模块spi 时序产生sd 卡控制模块图 2-1-3 fpga 硬件方案该方案全部采用 fpga 硬件完成,其中包括 sd 卡模块,sdram 控制模块,fifo 控制模块,lcd 驱动模块。sd 卡作为外部存储媒介,该模块完成 sd 卡的初始化、命令发送、数据读取等。从 sd 卡中读取的 bpm 图片色彩表数据缓存到 bmp 色彩表中,读出的图片数据被送入写 sdram 缓存的 fifo 模块中,通过 sdram 模块完成高速的缓冲,提高显示的刷频率。tft lcd 显示器实时的从 sdram 中读取数据进

13、行图片循环显示。2.32.3 方案选择方案选择综合考虑以上方案,我们选择了方案三。该方案成本低廉,携带方便,供电方式简单可以做到量产。该方案的所有功能全部使用 fpga 来实现,系统规模小,fpga 流水线操作,很好的保障系统运行所需要的频率。fpga 逻辑资源丰富,配置器件齐全,开发范围广泛,热插拔式的存储介质深入赢得市场。高速的运行速度和强大的数据处理能力保障了系统的正常工作和稳定性。 第 6 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书3.3.单元模块电路设计单元模块电路设计本节主要介绍系统各单元模块的具体功能、电

14、路结构、工作原理、以及各个单元模块之间的联接关系;同时本节也会对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。3.13.1 各单元模块功能介绍及电路设计各单元模块功能介绍及电路设计本系统主要分为 5 个单元模块,它们分别是:系统时钟与复位模块、sd 卡相关模块、数据流控制模块、sdram 控制器模块以及 vga 显示驱动模块。各单元模块功能及相关电路的具体说明如下。 3.1.1 系统 sd 卡模块其中包含两个子模块:sd 卡控制模块完成 sd 卡的一些基本控制,例如上电初始化,命令发送,数据读取;spi 时序产生模块主要控制 fpga 和 sd 卡之间的数据和命令的传输。sd 卡

15、通信可以是 sd 模式或者 spi 模式,该工程使用了 sd 卡的 spi模式进行通信。sd 卡在总线模式中唤醒,在接受复位命令时如果 cs 信号有效,那么将进入 spi 模式。如果 sd 卡人物 sd 总线模式是必须的,那么它不会对命令做出响应并继续保持 sd 总线模式。如果需要 spi 模式,sd 卡将切换到 spi 模式并发出spi 模式下的 r1 响应。返回 sd 总线模式唯一的方法是重新给 sd 卡上电。在 spi 模式下,sd 卡协议状态不被检测。所有在 sd 总线模式下支持的命令在 spi 模式下也是可用的。spi 模式下默认的命令结构/协议检测关闭。随着 sd 卡在 sd 总线

16、模式下上电,cmd0 必须紧跟着 第 7 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书一个有效的 crc 字节。一旦在 spi 模式下,默认将关闭。verilog 部分代码:always (posedge clk or negedge rst_n)if(!rst_n) cnt8 = 5d0;else if(spi_tx_en | spi_rx_en) beginif(cnt8 5d18)cnt8 = cnt8+1b1;/spi 工作使能else ;/计数到 18 停止,等待撤销 spi 使能endelse cnt8 =

17、5d0;/spi 关闭,计数停止/spi 时钟信号产生reg spi_clkr; /spi 时钟信号,由主机产生always (posedge clk or negedge rst_n)if(!rst_n) spi_clkr 5d1 & cnt8 5d18) spi_clkr = spi_clkr; /在 cnt8 处于 2-17 时 spi时钟有效翻转assign spi_clk = spi_clkr;/spi 主机输出数据控制reg spi_mosir;/spi 主机输出从机输入数据信号always (posedge clk or negedge rst_n)if(!rst_n) spi_

18、mosir = 1b1;else if(spi_tx_en) begincase(cnt84:1)/主机发送 8bit 数据4d1: spi_mosir = spi_tx_db7;/发送 bit74d2: spi_mosir = spi_tx_db6;/发送 bit64d3: spi_mosir = spi_tx_db5;/发送 bit54d4: spi_mosir = spi_tx_db4;/发送 bit44d5: spi_mosir = spi_tx_db3;/发送 bit34d6: spi_mosir = spi_tx_db2;/发送 bit24d7: spi_mosir = spi_t

19、x_db1;/发送 bit14d8: spi_mosir = spi_tx_db0;/发送 bit0default: spi_mosir = 1b1;/spi_mosi 没有输出时应保持高电平endcaseendelse spi_mosir = 1b1;/spi_mosi 没有输出时应保持高电平 第 8 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书assign spi_mosi = spi_mosir;/-/spi 主机输入数据控制reg7:0 spi_rx_dbr; /spi 主机输入从机输出数据总线寄存器always

20、 (posedge clk or negedge rst_n)if(!rst_n) spi_rx_dbr = 8hff;else if(spi_rx_en) begincase(cnt8)/主机接收并锁存 8bit 数据5d3: spi_rx_dbr7 = spi_miso; /接收 bit75d5: spi_rx_dbr6 = spi_miso; /接收 bit65d7: spi_rx_dbr5 = spi_miso; /接收 bit55d9: spi_rx_dbr4 = spi_miso; /接收 bit45d11: spi_rx_dbr3 = spi_miso; /接收 bit35d13

21、: spi_rx_dbr2 = spi_miso; /接收 bit25d15: spi_rx_dbr1 = spi_miso; /接收 bit15d17: spi_rx_dbr0 = spi_miso; /接收 bit0default: ;endcaseendassign spi_rx_db = spi_rx_dbr;assign spi_tx_rdy = (cnt8 = 5d18); /spi 数据发送完成标志位,高有效assign spi_rx_rdy = (cnt8 = 5d18); /spi 数据接收完成标志位,高有效 第 9 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡

22、读取控制 tfttft 显示系统设计说明书显示系统设计说明书3.1.2 sdram 控制模块 对控制器内部的逻辑功能做细分,将其划分为多个字模块来实现。sdram-ctrl 是 sdram 状态控制模块,该模块主要完成 sdram 的上电初始化以及定时刷新、读/写控制等状态的变迁。它的内部设计了 2 个状态机,一个拥有上电初始化的状态控制,另一个则用于正常工作时的状态控制。sdram-cmd 是 sdram 命令模块,该模块根据 sdram-ctrl 模块的不同状态指示输出相应的 sdram 控制命令和地址。sdram-wr-data 是 sdram 数据读/写模块,该模块同意是根据 sdra

23、m-ctrl 模块的状态指示完成 sdram 数据总线的控制 sdram 的数据读/写都在该模块内完成。verilog 部分代码/将待写入数据送到 sdram 数据总线上always (posedge clk or negedge rst_n) if(!rst_n) sdr_din = 16d0;/突发数据写寄存器复位else if(work_state = w_write) | (work_state = w_wd) sdr_din = sys_data_in;/连续写入存储在 wrfifo 中的 256 个 16bit 数据/产生双向数据线方向控制逻辑always (posedge clk

24、 or negedge rst_n) if(!rst_n) sdr_dlink = 1b0; else if(work_state = w_write) | (work_state = w_wd) sdr_dlink = 1b1;else sdr_dlink = 1b0;assign sdram_data = sdr_dlink ? sdr_din:16hzzzz;/数据读出控制reg15:0 sdr_dout;/突发数据读寄存器 第 10 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书/将数据从 sdram 读出alwa

25、ys (posedge clk or negedge rst_n)if(!rst_n) sdr_dout 9d0) & (cnt_clk 9d10)*/) sdr_dout = sdram_data; /连续读出 8b 的 16bit 数据存储到 rdfifo 中assign sys_data_out = sdr_dout;3.1.3 fifo 模块图片数据部分送入写 sdram 缓存的 fifo 模块,完成高速数据的缓冲。在读fifo 的数据。在本图像处理器中采用了两个异步 fifo,在视频的前向通道和后向通道之间分别加人了两个异步 fifo。前向通道的 fifo 主要对经 a/d 变换的数

26、据缓冲,后向通道的 fifo 主要对 d/a 变换的数据缓冲异步 fifo 的实现通常是利用双口 ram 和读写地址产生模块来实现的。fifo 的接口信号包括异步的写时钟(wr_ clk)和读时钟(rd_ clk)、与写时钟同步的写有效(wren)和写数据(wr_ data)、与读时钟同步的读有效 rden 和读数据(rd_ data)o 为了实现正确的读写和避免 fifo 的上溢或下溢,通常还应该给出与读时钟和写时钟同步的 fif0 的空标志(empty)和满标志(full)以禁止读写操作 图像处理器中的 fifo 为双向异步 fifo,深度为 6k,宽度为8bitsbpm 图片表数据缓存到

27、 bpm 色彩表模块中 verilog 部分源代码always (posedge clk_100m or negedge rst_n)if(!rst_n) vga_validr = 1b0;else vga_validr = 9d256);/fifo(256 个 16bit 数据)即发出写 sdram 请求信号assign sdram_rd_req = (rdf_use 9d480) & vga_validr;/vga 显示有效且 fifo 半空(256 个 16bit 数据)即发出读 sdram 请求信号/sdram 读写响应完成标致捕获reg sdwrackr1,sdwrackr2;/sd

28、ram_wr_ack 寄存器reg sdrdackr1,sdrdackr2; /sdram_rd_ack 寄存器/锁存两拍 sdram_wr_ack,用于下降沿捕获always (posedge clk_100m or negedge rst_n)if(!rst_n) beginsdwrackr1 = 1b0;sdwrackr2 = 1b0;endelse beginsdwrackr1 = sdram_wr_ack;sdwrackr2 = sdwrackr1;endwire neg_sdwrack = sdwrackr1 & sdwrackr2; /下降沿标志位,高有效一个时钟周期always

29、 (posedge clk_100m or negedge rst_n) /锁存两拍 sdram_rd_ack 用于下降沿捕获if(!rst_n) beginsdrdackr1 = 1b0;sdrdackr2 = 1b0;endelse beginsdrdackr1 = sdram_rd_ack;sdrdackr2 = sdrdackr1; endwire neg_sdrdack = sdrdackr1 & sdrdackr2;/下降沿标志位,高有效一个时钟周期/sdram 读写地址产生逻辑reg13:0 sys_wrabr; /sdram 写地址寄存器,对应 sdram_addr21:8re

30、g16:0 sys_rdabr; /sdram 读地址寄存器,对应 sdram_addr21:5/sdram 写地址产生always (posedge clk_100m or negedge rst_n)if(!rst_n) sys_wrabr = 14d0;else if(sdwrad_clr)sys_wrabr = 14d0; /写入地址复位,重新写入新图片数据 第 12 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书else if(neg_sdwrack) sys_wrabr = sys_wrabr+1b1;/一次写

31、入完成后地址递增 8reg4:0 cnt25;/0-99 计数器always (posedge clk_100m or negedge rst_n)if(!rst_n) cnt25 = 5d0;else if(!vga_validr) cnt25 = 5d0;else if(neg_sdrdack) beginif(cnt25 5d24) cnt25 = cnt25+1b1;else cnt25 = 5d0;end/sdram 读地址产生always (posedge clk_100m or negedge rst_n)if(!rst_n) sys_rdabr = 17d0;else if(!

32、vga_validr) sys_rdabr = 17d14975;/从末-800 地址读数据else if(neg_sdrdack) beginif(cnt25 = 5d24) sys_rdabr = sys_rdabr-17d49;else sys_rdabr = sys_rdabr+1b1; /一次读出完成后地址递增endassign sys_wraddr = sys_wrabr,8h00;assign sys_rdaddr = sys_rdabr,5d0;/sd 卡读出数据写入 sdram_wrfifo 或者 vgaramreg10:0 cnt78; /计数到 1078/cnt78 计数

33、 0-53(sd 数据不缓存)和 54-1077(sd 数据表译码) ,1078 计数停止(sd 数据写入 sdram)always (posedge clk_50m or negedge rst_n)if(!rst_n) cnt78 = 11d0;else if(sdwrad_clr) cnt78 = 11d0;/重新下一幅图片else if(cnt78 11d1078) & wrf_wrreq) cnt78 11d53) & (cnt78 11d1078) & wrf_wrreq; /sd 接收数据写入 vga 色彩表 ramwire bmpsd_wren = (cnt78 = 11d10

34、78) & wrf_wrreq; /sd 接收数据存储到 sdram /例化 sdram 写入数据缓存 fifo 模块 例化 sdram 读出数据缓存 fifo 模块wire15:0 rdf_dout;/sdram 数据读出缓存 fifo 输出数据总线/例化 256 字节 ram 存放 bmp 图片的色彩表译码数据reg7:0 rr_din;/ram 输入数据 第 13 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书wire7:0 rr_dout;/ram 输出数据wire7:0 rr_addr;/ram 读写地址/bmp

35、 色彩表数据译码以及写使能信号产生reg1:0 cnt4;/四字节数据寄存器always (posedge clk_50m or negedge rst_n)if(!rst_n) cnt4 = 2d0;else if(sdwrad_clr) cnt4 = 2d0;/重新下一幅图片else if(bmpvt_wren) cnt4 = cnt4+1b1;/4 字节色彩表译码,bmp/*色彩表用 4 个字节表示一个色彩,这里我们只取其中有用的数据拼凑成 1 个字节保存即可。*/always (posedge clk_50m or negedge rst_n)if(!rst_n) rr_din = 8

36、d0;else if(bmpvt_wren) begincase(cnt4)2d0: rr_din7:6 = wrf_din7:6;/2blue-2blue2d1: rr_din5:3 = wrf_din7:5;/3green-3green2d2: rr_din2:0 = wrf_din7:5;/3red-3reddefault: ; endcaseendwire rr_wr = bmpvt_wren & (cnt4 = 2d3);/vgaram 写使能信号/bmp 色彩表读写地址产生reg7:0 rr_wraddr;/vgaram 写入地址产生always (posedge clk_50m

37、or negedge rst_n)if(!rst_n) rr_wraddr = 8d0;else if(sdwrad_clr) rr_wraddr = 8d0; /重新下一幅图片else if(rr_wr) rr_wraddr = rr_wraddr+1b1;assign rr_addr = (cnt78 11d1078) ? rr_wraddr : rdf_dout7:0;assign dis_data = rr_dout;/译码后的显示数据 第 14 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书3.1.4 vga 显

38、示驱动模块 cpld/fpga 实现 vga 彩色显示控制器在工业现场中有许多应用。以硬件描述语言 vhdl 对可编程器件进行功能模块设计、仿真综合,可实现 vga 显示并实现了动画效果。vga 作为一种标准的显示接口得到了广泛的应用。vga 在任何时刻都必须工作在某一显示模式之下,其显示模式分为字符显示模式和图形显示模式。而在应用中,讨论的都是图形显示模式。vga 的图形模式分为三类:cga、ega 兼容的图形模式;标准的 vga 图形模式;vga 扩展图形模式。后两种图形模式统称为 vga 图形模式。文中基于标准 vga 模式来实现。工业标准的 vga 显示模式为:640*480*16 色

39、*60hz。常见的彩色显示器一般都是由 crt(阴极射线管)构成,每一个像素的色彩由 r(红,red)、g(绿,green)、b(蓝,blue)三基色构成。显示时采用的是逐行扫描的方式。由vga 显示模块产生的水平同步信号和垂直同步信号控制阴极射线管中的电子枪产生电子束,轰击涂有荧光粉的屏幕,产生 rgb 三基色,于显示屏上合成一个彩色像素点。图 3 表示的是 vga 显示模块与 crt 显示器的控制框图。电子束扫描一幅屏幕图像上的各个点的过程称为屏幕扫描。现在显示器都是通过光栅扫描方式来进行屏幕扫描。在光栅扫描方式下,电子束按照固定的路径扫过整个屏幕,在扫描过程中通过电子束的通断强弱来控制电

40、子束所经过的每个点是否显示或显示的颜色。电子枪在vga 显示模块产生的行同步、场同步等控制信号的作用下进行包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程。光栅扫描的路径通常为:从上到下扫过每一行,在每一行中从左到右地进行扫描。其过程如下:电子束从屏幕左上角开始向右扫,当到达屏幕的右边缘时,电子束关闭(水平消隐),并快速返回屏幕左边缘(水平回扫),然后在下一条扫描线上开始新的一次水平扫描。一旦所有的水平扫描均告完成,电子束在屏幕的右下角结束并关闭(垂直消隐),然后迅速返回到屏幕的左上角(垂直回扫),开始下一次光栅扫描。 第 15 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控

41、制 tfttft 显示系统设计说明书显示系统设计说明书verilog 部分源代码always (posedge clk or negedge rst_n)if(!rst_n) x_cnt = 11d0;else if(!disp_ctrl) x_cnt = 11d0; /关显示else if(x_cnt = 11d1039) x_cnt = 11d0;else x_cnt = x_cnt+1b1;/x 坐标计数always (posedge clk or negedge rst_n)if(!rst_n) y_cnt = 10d0;else if(!disp_ctrl) y_cnt = 10d0

42、; /关显示else if(y_cnt = 10d665) y_cnt = 10d0;else if(x_cnt = 11d1039) y_cnt = y_cnt+1b1;/y 坐标计数/有效显示标志位产生reg valid_yr;/行显示有效信号reg valid_r;always (posedge clk or negedge rst_n)if(!rst_n) valid_yr = 1b0;else if(y_cnt = 10d31) valid_yr = 1b1; /行有效显示区else if(y_cnt = 10d631) valid_yr = 1b0;wire valid;/有效显示

43、区标志always (posedge clk or negedge rst_n)if(!rst_n) valid_r = 1b0;else if(x_cnt = 11d187) valid_r = 1b1; /列有效显示区else if(x_cnt = 11d987) valid_r = 1b0;assign valid = valid_r & valid_yr; / vga 有效显示区标志位/ vga 场同步,行同步信号reg hsync_r,vsync_r; /同步信号always (posedge clk or negedge rst_n)if(!rst_n) hsync_r = 1b1

44、;else if(x_cnt = 11d0) hsync_r = 1b0;/产生 hsync 信号else if(x_cnt = 11d120) hsync_r = 1b1;always (posedge clk or negedge rst_n)if(!rst_n) vsync_r = 1b1; else if(y_cnt = 10d0) vsync_r = 1b0;/产生 vsync 信号else if(y_cnt = 10d6) vsync_r = 11d183) & (x_cnt 10d30) & (y_cnt = 10d30) & (y_cnt = 10d630);/ vga 色彩信

45、号产生reg7:0 vga_rgb;/ vga 色彩显示寄存器always (posedge clk)if(!valid) vga_rgb = 8d0;else vga_rgb = dis_data;/r,g,b 控制液晶屏颜色显示assign vga_r = vga_rgb2:0;assign vga_g = vga_rgb5:3;assign vga_b = vga_rgb7:6;3.1.5 pll 模块 pll,即锁相环。简单的理解,给 pll 一个时钟输入,然后经过 pll 内部的处理以后,在 pll 的输出端口就可以得到一定范围的时钟频率。pll 之所以应用广泛,是因为从其输出得到的

46、时钟不仅从频率和相位上比较稳定,而且时钟网络延时也相比内部逻辑产生的分频时钟要小得多。输出两个时钟 内部 sdram 控制器工作的100mhz,外部 sdram 使用有一定移相(-72)的 100mhz 时钟频率。 第 17 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书3.23.2 特殊器件介绍特殊器件介绍3.2.1 sdram 存储器扩展芯片s_a0s_a1s_a2s_a3s_a4s_a5s_a6s_a7s_a8s_a9s_a10s_a11s_db 0s_db 1s_db 2s_db 3s_db 4s_db 5s_db

47、 6s_db 7s_db 8s_db 9s_db 10s_db 11s_db 12s_db 13s_db 14s_db 15s_c lks_b a0s_b a1s_nc ass_c kes_nr ass_nw es_nc ss_ldqms_udqm+3v3vdd1dq02vddq3dq14dq25gnd6dq37dq48vddq9dq510dq611gnd12dq713vdd14ldqm15w e16c as17r as18c s19b a020b a121a1022a023a124a225a326vdd27gnd28a429a530a631a732a833a934a1135nc36c ke3

48、7c lk38udqm39nc40gnd41dq842vddq43dq944dq1045gnd46dq1147dq1248vddq49dq1350dq1451gnd52dq1553gnd54ic 2hy57v641620dgnd图 3-2-1 sdram 连接图该同步动态随机存储器(sdram)选用的芯片型号为 hy57v641602,4banks x 1mbits x16。其上电初始化的步骤一般为:等待 200 微秒,这是 sdram 的输入稳定期;所有 l_bank 预充电;完成至少 8 个预刷新周期;模式寄存器设置(msr) ,完成 sdram 读写相关的配置。状态图如 3-2-2.图

49、3-2-2 sdram 初始状态图 第 18 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书3.2.2 fpga 主控芯片目前的主流 fpga 仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如 ram、时钟管理和 dsp)的硬核(asic 型)模块。如图1-1 所示(注:图 1-1 只是一个示意图,实际上每一个系列的 fpga 都有其相应的内部结构) ,fpga 芯片主 要由 7 部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式 ram、丰富的布线资源、内嵌的

50、底层功能单元和内嵌专用硬件模块。选用芯片如图 3-2-2。a1a2a3a4a5a6a7int0int1t0t1txdrxdrdwrabcdefgdpled1led2led3led41302_ioled51302_c lkled61302_r stled70832_clkled80832_d0832_csu5_diu5_dou5_csu5_clku4_sdau4_sclio_138io_140d0d1d2d3d4d5d6d7a0k1k2k3k4k5k6k7k8b it1b it2b it3b it4b it5b it6b it7b it8io3io4io7io8io9io24io25io26io

51、27io28io30io31io32io40io41io42io43io44io45io47io48io51io52io53io55io57io58io59io60io63io64io65io67io69io70io71io72io73io74io75io76io79io80io81io86io87io92io93io94io96io97io99io100io101io103io104io112io113io114io115io118io119io120io121io122io125io126io129io132io133io134io135io136io137io139io141io142i

52、o143io144u10ep2c5t144c8nlcd/elcd/rwlcd/rsspeak erpin104pin115pin139pin141ale图 3-2-2 fpga 芯片该款芯片是 altera 公司 cyclone 典型器件之一,起主要含有逻辑单元(le)4608 个,m4kram 块(4kb)26 个,总 ram 119808 bits,嵌入式 18*18 乘法器 13 个,还有两个锁相环(pll).所含有资源充分满足该系统设计。 第 19 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书4 4 软件设计软件

53、设计4.14.1 设计原理及设计原理及 quartusquartus iiii 介绍介绍4.1.1 设计原理本数字频率计核心部分由 eda 软件 quartus ii 进行设计,综合,仿真,下载。具体步骤如下:1)用 verilog hdl 设计出各个部分模块,并对各个模块进行仿真测试。2)将 verilog 语言程序综合生成功能模块图,根据要求连接好各个模块,并进行综合和总体仿真。3)根据需求选择相应的芯片,对其进行引脚分配,以便于将 verilog 实现的数字频率计下载到相应的芯片上。4.1.2 quartus ii 介绍1.quartus ii 是 altera 公司推出的 cpld/f

54、pga 开发工具,quartus ii 提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:1)可利用原理图、结构框图、veriloghdl、ahdl 和 vhdl 完成电路描述,并将其保存为设计实体文件;2) 芯片(电路)平面布局连线编辑;3) logiclock 增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具;4) 完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用 signaltap ii 逻辑分析工具进行嵌入式的逻辑分析;5) 支持软件源文件的添加和创建,并将它们链接

55、起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;6) 可读入标准的 edif 网表文件、vhdl 网表文件和 verilog 网表文件;能生成第三方 eda 软件使用的 vhdl 网表文件和 verilog 网表文件。 第 20 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书4.1.3 结构设计图图 4-1-1 数码相框 quartus 设计结构图 第 21 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计

56、说明书4.24.2 设计流程框图设计流程框图quartus ii 9.0 原理图设计:主要完成数码相框核心系统的原理图设计、编译、仿真测试、文件下载。各子模块verilog 设计各子模块编译 仿真模块连接形成系统原理图工程整体编译仿真测试配置芯片引脚下载图 4-2-1 quartus ii 9.0 设计流程图结构图protel 99se 电路原理图设计:完成整个数码相框的 fpga 最小系统及外围电路的原理图设计。s_db 0.15s_a0.11s_c lks_b a0.1s_nc ass_c kes_nr ass_nw es_nc ss_udqms_ldqmtc ktdotditm sc o

57、nf_donenc enc sodc lkdata0nc onfigpin1.208fpgaep2c 8.schdocpin1.208ioio下下.schdocs_db 0.15s_a0.11s_c lks_nc ass_c kes_nr ass_nw es_nc ss_udqms_ldqms_b a0.1sdr amsdr am .schdocpowerpower.schdoctc ktdotditm sc onf_donenc enc sodc lkdata0nc onfig下下下下下下下下.schdocpin1.208s_db 0.15s_a0.11s_b a0.1图 422 数码相框系

58、统 protel99se 设计 第 22 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说明书5 5 系统调试与仿真系统调试与仿真5.15.1 sdsd 卡模块的仿真卡模块的仿真该仿真应用了可编程逻辑器件开发工具 quartus ii 中 singaltap ii 嵌入式逻辑分析器。signaltap ii 嵌入逻辑分析仪集成到 quartus ii 设计软件中,能够捕获和显示可编程单芯片系统(sopc)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达 1024 个通道,采

59、样深度高达 128kb,每个分析仪均有 10 级触发输入/输出,从而增加了采样的精度。signaltap ii 为设计者提供了业界领先的 sopc 设计的实时可视性,能够大大减少验证过程中所花费的时间。signaltap ii 将逻辑分析模块嵌入到 fpga 中,如图 1 所示。逻辑分析模块对待测节点的数据进行捕获,数据通过 jtag 接口从 fpga 传送到quartus ii 软件中显示 sd 卡模块的仿真波形如图 5-1-1.图 5-1-1 sd 卡模块的仿真波形 第 23 页基于基于 fpgafpga 对对 sdsd 卡读取控制卡读取控制 tfttft 显示系统设计说明书显示系统设计说

60、明书6 6 系统功能、指标参数系统功能、指标参数6.16.1 系统功能系统功能1、使用 fpga 系统的 isp1362 及接口完成 usb 数据的读取;sd 卡接口完成 sd 卡数据的读取;自动判断哪一个接口处有硬件连接请求。2、使用 fpga 平台,讲存储在 sdram 内部的图片或者视频数据,显示回放在 tft.3、对于不同大小的图片,系统可以根据输出屏幕的大小自动调节图片大小并改善图像质量。4、通过按键选择播放的方式。支持一张图片长久显示,支持多张图片循环显示。6.26.2 系统指标参数测试系统指标参数测试6.2.1 性能参数系统工程在 quartusii9.0 中编译后各种资源的占用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论