设计说明:本次我们设计了一套可完成摄像头数据采集,图像存储与预处理,并使用模型进行推导,将推理结果叠加到原图像上,并通过VGA进行输出显示的机器视觉系统。在设计中,我们使用的是摄像头OV7670,利用IIC进行相关配置,图像存储利用的是SDRAM,输出为VGA。在顶层设计中,我们共划分了六大模块,分别为摄像头OV7670模块、数据采集模块、数据处理模块(黑盒)、IIC模块、主控模块、数据寄存(SDRAM)与显示控制模块。主控模块为系统各模块提供不同频率时钟(clk0~clk3)及复位信号,同时实现对系统的整体控制,IIC模块的输入分别与主控的输出的复位信号及输出时钟信号CLK1相连,IIC的输出为摄像头模块的SCLK与SDAT相连完成摄像头模块的配置;摄像头模块配置完成并连接主时钟(由数据处理模块产生)后,会输出帧同步信号(VSYNC)、行同步信号(HREF)、像素时钟信号(PCLK)与8位像素信号(D0~D7);之后将摄像头输出的相关信号输入到数据采集模块中,经数据采集模块采集并转化为16位rgb像素信号、像素时钟信号、摄像头主时钟信号与同步信号;之后将他们及主控产生的时钟及复位信号输入到数据寄存、数据处理与显示控制模块中。
设计框图:
顶层模块设计框图(第一部分):
部分引脚说明:
引脚名称 | 含义 |
din [7:0] | 摄像头输出像素数据 |
href | 摄像头输出行同步 |
vsync | 摄像头输出帧同步 |
Pclk | 摄像头输出像素时钟 |
CMOS_SCLK | 摄像头初始化 |
CMOS_SDAT | 摄像头初始化 |
CMOS_XCLK | 摄像头主时钟输入 |
rst_n | 复位信号 |
clock | 总时钟 |
Clk0 | 数据处理模块时钟 |
Clk1 | IIC模块时钟与VGA时钟 |
Clk2 | 数据寄存与显示模块读入时钟 |
Clk3 | 数据寄存与显示模块读出时钟 |
sys_rst_n | 系统复位信号 |
CMOS_ODATA[15:0] | 数据处理模块处理后的rgb数据 |
data[15:0] | 数据采集模块采集转化后的rgb信号 |
Clk_vga | 数据寄存与显示模块vga时钟输入信号 |
Clk_write | 数据寄存与显示模块写时钟输入信号 |
sys_we | 数据寄存与显示模块写允许输入信号 |
Vga_hs | VGA行扫描控制信号 |
Vgad[15:0] | VGA输入RGB565信号 |
Vga_vs | VGA场扫描控制信号 |
Sdram_addr[11:0] | SDRAM地址总线 |
Sdram_ba[1:0] | SDRAM 的Bank地址 |
Sdram_cas_n | SDRAM 列地址选通 |
Sdram_cke | SDRAM 时钟使能 |
Sdram_clk | SDRAM 系统时钟 |
Sdram_cs_n | SDRAM 片选 |
Sdram_data[15:0] | SDRAM 数据总线 |
Sdram_ras_n | SDRAM行地址选通 |
Sdram_we_n | SDRAM 写使能 |
S_DQM[1:0] | SDRAM 数据掩码 |