- 规划摘要
在许多嵌入式体系中,为了完结杰出的人机界面,这就对体系的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图