DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1433|回复: 0
打印 上一主题 下一主题

[待整理] 嵌入式系统VGA显示接口的系统实现,软硬件解决方案

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 16:20:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
           
  •                 设计摘要
          在许多嵌入式系统中,为了实现良好的人机界面,这就对系统的MCU和显示设备提出了更高的要求。若能用低速的MCU实现和PC机类似的显示效果,将会大幅度提高产品的附加值。目前,带有VGA接口和类VGA的显示设备随处可见,若能以此类设备作为各种嵌入式系统的显示器,也可提高各种嵌入式设备人机界面的通用性。本项目采用FPGA器件和带有VGA接口的显示器,实现适用于各种嵌入式系统的显示接口,使得低速的MCU不需要增加过多开销即可采用VGA接口设备作为显示器。
           

           
  •                 硬件结构图
          系统硬件结构图如图1所示:
       

        图1系统硬件结构图

         

          三、软件介绍
          系统软件分为两个部分:MCU软件模块和FPGA软件模块。MCU软件模块主要负责将要显示数据传送给FPGA,主要实现的功能是在VGA显示器上打点(在指定的行坐标、列坐标出以某一指定的颜色显示一个点),在此功能的基础之上实现划线、矩形填充、显示图片的功能。FPGA模块主要负责接收MCU模块发送的数据,并将接收到的数据通过内部的写FIFO单元存入外接的SDRAM存储器中,然后再通过内部的读FIFO单元从SDRAM中将数据取出送到VGA数模转换模块,同时FPGA模块还要提供VGA显示所需要的HS、VS、SYNC等扫描信号。
           
          1、FPGA软件模块介绍
          FPGA模块的软件主要有以下几部分组成。
           
  •                 FPGA顶层模块:
          FPGA顶层模块主要定义了FPGA与外围的MCU、SDRAM、VGA数模转换的接口。各引脚的具体定义如表1和图1所示。
        表1

                               
                                        方向

                       
                               
                                        名称

                       
                               
                                        描述

                       
                                                                         Input
                       
                                                                         clk 
                       
                                                                         输入时钟50M
                       
                                                                         Input
                       
                                                                         rst_n
                       
                                                                         异步复位,低有效
                       
                                                                         Input
                       
                                                                         a0
                       
                                                                         数据地址选择,低表示地址
                       
                                                                         Input
                       
                                                                         we
                       
                                                                         写信号,上升沿有效
                       
                                                                         Input
                       
                                                                         re
                       
                                                                         RE,读信号,下降沿有效
                       
                                                                         Input
                       
                                                                         ce
                       
                                                                         片选,低有效
                       
                                                                         input
                       
                                                                         [15:0]data1616
                       
                                                                         时序接口,数据线
                       
                                                                         output
                       
                                                                         dclk
                       
                                                                         输出时钟40M,给VGA
                       
                                                                         output
                       
                                                                         hs_sig
                       
                                                                         列同步信号
                       
                                                                         output
                       
                                                                         vs_sig
                       
                                                                         行同步信号
                       
                                                                         output
                       
                                                                         red_sig[4:0]
                       
                                                                         红信号
                       
                                                                         output
                       
                                                                         green_sig[5:0]
                       
                                                                         绿信号
                       
                                                                         output
                       
                                                                         blue_sig[4:0]
                       
                                                                         蓝信号
                       
                                                                         output
                       
                                                                         sdram_clk
                       
                                                                         SDRAM时钟信号
                       
                                                                         output
                       
                                                                         sdram_cke
                       
                                                                         SDRAM时钟有效信号
                       
                                                                         output
                       
                                                                         sdram_cs_n
                       
                                                                         SDRAM片选信号
                       
                                                                         output
                       
                                                                         sdram_ras_n
                       
                                                                         SDRAM行地址选通脉冲
                       
                                                                         output
                       
                                                                         sdram_cas_n
                       
                                                                         SDRAM列地址选通脉冲
                       
                                                                         output
                       
                                                                         sdram_we_n
                       
                                                                         SDRAM写允许位
                       
                                                                         output
                       
                                                                         sdram_ba[1:0]
                       
                                                                         SDRAM的L-Bank地址线
                       
                                                                         output
                       
                                                                         sdram_addr[12:0]
                       
                                                                         SDRAM地址总线
                       
                                                                         inout
                       
                                                                         sdram_data[15:0]
                       
                                                                         SDRAM数据总线
                       
                                                                         output
                       
                                                                         sdram_udqm
                       
                                                                         SDRAM高字节屏蔽
                       
                                                                         output
                       
                                                                         sdram_ldqm
                       
                                                                         SDRAM低字节屏蔽
                       
           
       

        图1 FPGA软件顶层模块

         
           
  •                 SDRAM读、写控制模块
          SDRAM读、写控制模块主要实现FPGA对SDRAM存储器的读写控制,该模块主要完成SDRAM的上电初始化以及定时刷新、读写控制等状态的变迁。该模块各引脚的具体定义如表2和图2所示。
        表2

                               
                                        方向

                       
                               
                                        名称

                       
                               
                                        描述

                       
                                                                         input
                       
                                                                          clk
                       
                                                                         系统时钟,100MHz
                       
                                                                         input
                       
                                                                          rst_n
                       
                                                                         复位信号,低电平有效
                       
                                                                         input
                       
                                                                         sdram_wr_req
                       
                                                                         系统写SDRAM请求信号
                       
                                                                         input
                       
                                                                         sdram_rd_req
                       
                                                                         系统读SDRAM请求信号
                       
                                                                         output
                       
                                                                         sdram_wr_ack
                       
                                                                         系统写SDRAM响应信号
                       
                                                                         output
                       
                                                                         sdram_rd_ack
                       
                                                                         系统读SDRAM响应信号
                       
                                                                         input
                       
                                                                         sys_addr[21:0]
                       
                                                                         读写SDRAM时地址暂存器
                       
                                                                         input
                       
                                                                         sys_data_in[15:0]
                       
                                                                         写SDRAM时数据暂存器
                       
                                                                         output
                       
                                                                         sys_data_out[15:0]
                       
                                                                         读SDRAM时数据暂存器
                       
                                                                         output
                       
                                                                         writing
                       
                                                                         SDRAM正写标志
                       
                                                                         output
                       
                                                                         sdram_clk
                       
                                                                         SDRAM时钟信号
                       
                                                                         output
                       
                                                                         sdram_cke
                       
                                                                         SDRAM时钟有效信号
                       
                                                                         output
                       
                                                                         sdram_cs_n
                       
                                                                         SDRAM片选信号
                       
                                                                         output
                       
                                                                         sdram_ras_n
                       
                                                                         SDRAM行地址选通脉冲
                       
                                                                         output
                       
                                                                         sdram_cas_n
                       
                                                                         SDRAM列地址选通脉冲
                       
                                                                         output
                       
                                                                         sdram_we_n
                       
                                                                         SDRAM写允许位
                       
                                                                         output
                       
                                                                         sdram_ba[1:0]
                       
                                                                         SDRAM的L-Bank地址线
                       
                                                                         output
                       
                                                                         sdram_addr[11:0]
                       
                                                                         SDRAM地址总线
                       
                                                                         inout
                       
                                                                         sdram_data[15:0]
                       
                                                                         SDRAM数据总线
                       
       

        图2 SDRAM顶层模块

         

           
  •                 读、写FIFO模块
          读、写FIFO模块采用系统的IP核实现,FIFO的容量为1K字单元(16位)。Wrf FIFO单元在wrreq为1时将MCU的数据存入wrf
           
          FIFO,数据存入后,立即被写入SDRAM中。Rdf FIFO单元在rdreq为1时将数据从SDRAM中取出送给VGA控制模块。
       

        图3 写FIFO模块

         

       

        图4 读FIFO模块

         

           
  •                 PLL单元
          PLL单元主要负责管理系统所需的各种时钟信号,其中主要有:inclk0为系统输入时钟(50MHZ)。c1、c2为SDRAM提供100MHZ的读、写时钟。c0、c3分别是为采样MCU数据和VGA时序扫描所提供的40MHZ时钟。
       

        图5 PLL模块

         
           
  •                 VGA控制模块
          VGA控制模块主要负责将从MCU接收到的数据送给wrf FIFO中,然后从rdf  FIFO中取出要显示的数据,并产生VGA所需的行扫描、列扫描信号、同步信号、时钟信号,一并送给外围的VGA数模转换电路。该模块的各引脚的具体定义如表3和图6所示。
        表3

                               
                                        方向

                       
                               
                                        名称

                       
                               
                                        描述

                       
                                                                         input
                       
                                                                         clk_40m
                       
                                                                         输入时钟40M
                       
                                                                         input
                       
                                                                         clk_100m
                       
                                                                         输入时钟100M
                       
                                                                         input
                       
                                                                         rst_n
                       
                                                                         异步复位,低有效
                       
                                                                         input
                       
                                                                         a0
                       
                                                                         数据地址选择,低表示地址
                       
                                                                         input
                       
                                                                         we
                       
                                                                         写信号,上升沿有效
                       
                                                                         input
                       
                                                                         re
                       
                                                                         读信号,下降沿有效
                       
                                                                         input
                       
                                                                         ce
                       
                                                                         片选,低有效
                       
                                                                         input
                       
                                                                         rdf_q[15:0]
                       
                                                                         rdf读数据
                       
                                                                         input
                       
                                                                         writing
                       
                                                                         正写SDRAM
                       
                                                                         input
                       
                                                                         sdram_rd_ack
                       
                                                                         读SDRAM应答
                       
                                                                         input
                       
                                                                         data1616[15:0]
                       
                                                                         数据线
                       
                                                                         output
                       
                                                                         wrf_din[15:0]
                       
                                                                         wrf写数据
                       
                                                                         output
                       
                                                                         wrf_wrreq
                       
                                                                         wrf写使能
                       
                                                                         output
                       
                                                                         wrf_aclr
                       
                                                                         wrf异步清零
                       
                                                                         output
                       
                                                                         [21:0]sys_addr
                       
                                                                         SDRAM地址
                       
                                                                         output
                       
                                                                         rdf_rdreq
                       
                                                                         rdf读使能
                       
                                                                         output
                       
                                                                         hs_sig
                       
                                                                         列同步信号
                       
                                                                         output
                       
                                                                         vs_sig
                       
                                                                         行同步信号
                       
                                                                         output
                       
                                                                         de
                       
                                                                         时序控制
                       
                                                                         output
                       
                                                                         red_sig[4:0]
                       
                                                                         红信号
                       
                                                                         output
                       
                                                                         green_sig[5:0]
                       
                                                                         绿信号
                       
                                                                         output
                       
                                                                         blue_sig[4:0]
                       
                                                                         蓝信号
                       
       

        图6 VGA模块

          2、系统的RTL图
       
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-29 19:13 , 耗时 0.109363 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表