集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1157|回复: 2

基于FPGA的手势语音转换器(3)

[复制链接]
zxopen08 发表于 2017-7-14 10:12:59 | 显示全部楼层 |阅读模式
基于FPGA的手势语音转换器(3)

微处理器, 转换器, 语音
3、系统硬件设计
3.1 基于FPGA的片上系统设计
本文实现了一个基于FPGA的片上系统,该片上系统能够完成术中图像的实时采集、识别匹配和其他外设的控制。该系统用XILINX公司EDK(Embedded Development Kit)软件开发,是一个基于Microblaze的嵌入式系统。系统该体系架构如上图所示。

MicroBlaze软核是一种针对Xilinx FPGA器件而优化的功能强大的32位微处理器,适用于所有现产的FPGA器件MicroBlaze软内核和其它外设IP核一起,可以完成可编程系统芯片(SOPC)的设计MicroBlaze软内核采用RISC(reduced instruction system computer)架构和哈佛(Harvard)结构的32位指令和数据总线,内部有32个通用寄存器R0~R31和2个特殊寄存器程序指针(PC)和处理器状态寄存器(MSR)MicroBlaze还具有指令和数据缓存,所有的指令长度都是32位,有3个操作数和两种寻址模式,指令功能划分有逻辑运算,算术运算,分支,存储器读/写和特殊指令等,指令执行的流水线是并行流水线,它分为3级流水线:取指,译码和执行。 Microblaze软核,片上本地存储器,标准总线互连以及基于片上外设总线(OPB)的外围设备构成了MicroBlaze嵌入式系统。

3.2 视频采集模块设计
3.2.1 视频采集芯片
本项目使用的视频解码器是图像传感器采用美国OmniVision公司开发的CMOS彩色图像传感器芯片OV7620,该芯片将CMOS传感器技术与数字接口组合,是高性能的数字图像传感器,可提供彩色/黑白多种格式的输出;内置10位双通道A/D转换器,输出8位/16位图像数据;具有自动增益和自动白平衡控制,能进行亮度、对比度、饱和度等多种调节功能。可通过SCCB进行内部寄存器编程配置。只需要外接一个27MHz的晶振,就可输出数字视频流的同时还提供像素时钟PCLK、行参考信号HREF、垂直同步信号VSYNC,便于外部电路读取图像,并可编程设置HREF、VSYNC在图像局部开窗,输出窗口图像。它支持连续和隔行两种扫描方式,VGA与QVGA两种图像格式;最高像素为664492,帧速率为30fp8;数据格式包括YUV、YCrCb、RGB三种,能够满足一般图像采集系统的要求。OV7620内部可编程功能寄存器的设置有上电模式和SCCB编程模式。本系统采用SCCB编程模式,连续扫描,16位YUV数据输出。
在这里我们要用到SCL和SDA对图像传感器进行配置,传感器有16位的数据输出还提供像素时钟PCLK、行参考信号HREF、垂直同步信号VSYNC。

VSYNC是垂直场同步信号,其下降沿表示一帧图像的开始;HREF是水平同步信号,其上升沿表示一行图像数据的开始CLK表示输出数据同步信号
3.2.2 SCCB总线对OV7620的配置
OV7620的控制采用SCCB(SeriaI Camera ControlBus)协议。SCCB是简化的I2C协议,SIO-l是串行时钟输入线,SIO-O是串行双向数据线,分别相当于I2C协议的SCL和SDA。SCCB的总线时序与I2C基本相同,它的响应信号ACK被称为一个传输单元的第9位,分为Don’t care和NA。Don’t care位由从机产生;NA位由主机产生,由于SCCB不支持多字节的读写,NA位必须为高电平。另外,SCCB没有重复起始的概念,因此在SCCB的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能产生Don’t care响应信号。由于I2C和SCCB的一些细微差别,所以采用GPIO模拟SCCB总线的方式。SCL所连接的引脚始终设为输出方式,而SDA所连接的引脚在数据传输过程中,通过设置IODIR的值,动态改变引脚的输入/输出方式。SCCB的写周期直接使用I2C总线协议的写周期时序;而SC-CB的读周期,则增加一个总线停止条件。OV7620功能寄存器的地址为0x00~0x7C(其中,不少是保留寄存器)。通过设置相应的寄存器,可以使OV7620工作于不同的模式。

SCCB的寄存器是EEPROM,由于是OV6620/OV7620的片内EEPROM,稳定性不高。虽然理论上SCCB写入一次,终生受用,但是数据容易丢失,因此,SCCB程序的写入应在读图像之前每次写入,并把IICENALBE拉高使能,使SCCB寄存器起作用。

下面列出了一些常用的OV7620寄存器

在对OV7620进行配置的时候,主设备必须做以下操作:
①产生开始/停止信号
②在 SCL上施加串行时钟
③将7位从设备地址,读写位和8位子地址串行放到 SDA 上

读的一方必须在确认位时间里拉低 SDA,返回一个确认位作为对写设备所写数据的确认。

在写周期里,OV7620 返回确认位,在读周期里,主设备返回确认位,除非读的数据是最后一个字节。如果读的数据是最后一个字节,主设备并不返回确认位,通知从设备读周期可以终止。每一字节内,最高位总是先传输。读/写控制位是第一字节的最低位。标准 IIC 通信仅需两个管脚:SCL 和 SDA。 SDA 设置成开漏双向端口。SCL 为高时,SDA 上从高到低的转换表示开始。SCL 为高时,SDA 上从低到高的转换表示结束。只有主设备可以产生开始/结束信号。

除了以上两种情况外,协议要求 SDA 在时钟 SCL位高电平器件保持稳定。只有当 SCL为低时每一位才允许改变状态
OV7620 的 SCCB接口支持多字节读写操作。主设备必须在写周期而不是读周期内提供子地址。因此,OV6620/7620 读周期的子地址是前一个写周期的子地址。在多字节读写周期中,在第一个数据字节完成后,子地址自动递增,使得连续位置的存取可以在一个总线周期内完成。多字节周期改变了原来的子地址。因此,如果在一个多字节周期后有一个读周期,就必须插入一个单字节写周期来提供新的子地址。
d643189658 发表于 2017-8-11 18:41:40 | 显示全部楼层
谢谢楼主的分享
小舍YZ 发表于 2017-12-15 09:48:36 | 显示全部楼层
基于FPGA的手势语音转换器(3)
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-27 09:31 , Processed in 0.066484 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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