打印

基于DSP5416水表号码图像采集系统的研究

[复制链接]
572|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Plantt|  楼主 | 2019-2-20 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于DSP5416水表号码图像采集系统的研究



摘要:一般图像采集要涉及到大量的数据,对信号处理器的速度和存储器的容量有较高的要求。本文针对TI公司的数字信号处理器TMS320VC5416内部存储器容量有限的特点设计一个新的方案,采用具有图像开窗截取功能的CMOS图像传感器OV7620采集水表号码图像,实验结果表明该设计切实可行且有广泛的应用价值。
       关键字:TMS320VC5416  OV7620   水表号码

1引言
         随着科学研究对图像采集的要求日益提高,对号码图像采集系统的存储量、速度都提出了越来越高的技术要求。为了实现号码图像的自动读取, 以前采用CCD图像传感器加视频解码芯片SA7113实现号码图像的采集,经过数据缓存器FIFO后存入外扩的随机存储器RAM中, 图像的截取是通过可编程逻辑器件CPLD来实现的。虽然该种方法实现了图像的截取,但硬件电路复杂,增加了设计成本。本文使用的信号处理器TMS320VC5416的片上程序存储器ROM为16K,数据存储器RAM为128K,而一幅640*480的灰度图像就有300K左右,显然处理器的存储容量不够。因此本文针对这种情况采用具有图像截取功能的CMOS数字图像传感器OV7620,取代CCD模拟传感器加视频解码芯片SA7113,简化了硬件电路,解决了信号处理器TMS320VC5416的存储容量有限的问题。

        2系统采集方案的确定
        号码图像采集的方法有一种是采用CCD图像传感器加视频解码芯片,从CCD摄像头出来的视频模拟信号需经过视频解码器转换为视频数字信号,再经过先进先出存储器FIFO缓存,最后通过可编程逻辑器件CPLD进行图像截取才能进入信号处理器(DSP)处理。由于DSP的控制能力比较差,本身的通用I/O口少,而对视频解码器的控制是通过内置的I2C总线来实现的。为了实现对视频解码器的控制,I2C总线是用单片机的P1口模拟完成对视频解码器的初始化,虽然这种方案实现了号码采集,但硬件结构复杂。

TMS320VC5416最大允许访问的数据存储空间为128K,而一幅640*480的灰度图像就需要大约300K的存储空间,因此系统针对信号处理器的TMS320VC5416存储容量有限的特点,选择了内部集成模数转换器A/D且具有图像开窗功能的CMOS图像传感器OV7620。这种传感器具有内部默认工作模式和I2C总线模式,为实现图像截取功能,将TMS320VC5416的主机接口HPI改为通用I/O口,分别用HD2和HD3模拟I2C总线的数据线SDA和时钟线SCL进行I2C总线的设置。通过设置OV7620内部各个寄存器实现开窗等一系列功能,将感兴趣的图像截取出来,数据输出只采集OV7620低8位(Y7-Y0)亮度数据,减少了TMS320VC5416的数据存储量和处理量,节省了TMS320VC5416的存储空间。

        3 采集系统硬件设计
3.1号码图像采集系统的基本结构
       如图1所示,该号码图像采集系统是由CMOS图像传感器OV7620,信号处理器TMS320VC5416及数据隔离器74LVCH16245A三部分组成。
这里主要介绍图像传感器的确定和图像采集系统的实现过程,系统采用CMOS数字图像传感器OV7620采集水表号码,存入TMS320VC5416内部的RAM中,在OV7620与TMS320VC5416之间采用74LVCH16245A作为数据隔离芯片。用TMS320VC5416的HD2和HD3分别模拟数据线SDA和时钟SCL, 即在硬件电路上保证图像传感器工作在I2C总线格式,在软件上系统将TMS320VC5416的HP0改为通用I/O口作为水表号码采集的使能。当/1OE为低电平时,74LVCH16245A将数据通道打开,TMS320VC5416开始接收数据从而系统完成水表号码的采集工作。


图1 采集系统硬件框图

3.2图像传感器OV7620

                  图2 CMOS图像传感器的原理图

由图2所示,图像传感器OV7620内部集成了行列选择电路、模数转换电路、视频时序产生电路等,并可与I2C总线接口。大大简化了其外围电路设计,外围电路仅有石英晶体和一些电阻、电容等元器件组成。OV7620的开窗特征允许用户根据实际需要设置有效图像数据窗口的大小。其范围从4×2到664×492,并且该窗口能够被置于664×492边界范围内的任何位置,同时窗口大小的变化不会改变输出数据速率和帧速,它仅仅是通过调整行频参考信号的有效时间来实现的。在速度方面可通过设置寄存器11(时钟速率控制)改变采集速度,降低采集速度可为识别处理水表号码提供时间,这对于系统采集有效数据以及提高系统性能等方面都起到了很大帮助,因此系统选用了具有图像截取功能的CMOS数字图像传感器OV7620。

3.3图像采集硬件电路的实现
       在图像传感器OV7620和TMS320VC5416之间需加一个数据隔离信号,通知信号处理器TMS320VC5416接收图像。
      由于TMS320VC5416工作在160MHz时对同步信号进行判断大约需要7个时钟周期(45ns左右),而OV7620的输入时钟为27MHz,所以需要对OV7620的输入时钟进行二分频来产生象素时钟(13.5MHz 74ns),设置时钟速率控制寄存器(Clock rate control)为0x80实现二分频,实现DSP与传感器之间同步工作。
系统上电后,TMS320VC5416通过I2C总线对CMOS图像传感器OV7620的工作寄存器进行初始化设置,包括开窗大小、位置,场频,扫描方式等。OV7620即开始按要求采集并输出图像信号,包括行同步信号HREF、场同步信号VSYNC、像素时钟信号PCLK和图像信号,随后CMOS图像传感器OV7620在使能信号的控制下将采集到的图像存入TMS320VC5416中,完成图像的采集。

图像采集的关键是图像采集起始点的精确控制,本系统是在I2C总线模式下设置OV7620的内部寄存器实现各个同步信号极性的控制,VSYNC的上升沿表示一帧新图像的到来,HREF是水平同步信号,其上升沿表示一列图像数据的开始,PCLK是输出数据同步信号。HREF为高电平即可开始有效地数据采集,而PCLK下降沿的到来则表明数据的产生,PCLK每出现一个下降沿,系统便传输一位数据。HREF为高电平期间,系统共传输640位数据。即在一帧图像中,即VSYNC为低电平期间,HREF会出现480次高电平。而下一个VSYNC信号上升沿的到来则表明分辨率640×480的图像采集过程的结束。

      4号码采集系统中软件设计
4.1通用I/O控制器和通用I/O状态寄存器配置
      TMS320VC5416主机接口(HPI)用于在主从模式下,实现DSP与外部器件通信,它具有一个增强型HPI接口,该接口用8-bit数据总线(HD0-HD7)与主机交换信息。通过设置通用I/O控制寄存器(GPIOCR)和通用I/O状态寄存器(GPIOSR)相应位,可以将HD0- HD7转换成通用I/O,再通过软件编程,实现与I2C总线的接口。相关的控制器如图3所示

GPIOCR

GPIOSR

图3 HPI控制寄存器

     在本系统是将TMS320VC5416的HPIENA直接接地,这时HD7~HD0作为通用I/O口 使用,HD7 ~ HD0的输入输出状态由GPIOCR的相应位(DIR7~DIR0)控制,当DIRx为0时,HDx作为输入脚,当DIRx为1时,DIRx作为输出脚,GPIOSR中的I07 ~ I00作为对应的(HD7~HD0)输入输出数据位。

4.2  I2C总线简介
      集成电路芯片间总线I2C (Inter – Integrated Circuit)是一种允许在简单的二线总线上工作的串行接口和软件协议,主要用于传感器与控制器件间的数据通信。


图4 I2C总线上数据传输格式

I2C总线上只有时钟SCL为高电平时的数据才有效,而且SDA上高/低电平的转换只能在SCL为低电平时完成;最后以Stop终止传输,释放总线。

4.3 软件编程实现HPI与I2C总线接口
   首先设置寄存器,将相应的HPI接口改为通用的I/O口,然后通过软件编程实现I2C总线协议[5],在此仅以I2C总线启动为例简单介绍说明如何实现的:(其中HD2为SDA,HD3为SCL)
#define TURE             1
#define FALSE            0
#define GPIOCR          0x3C     //设置GPIOCR的映射地
#define GPIOSR          0x3D     //设置GPIOSR的映射地址
#define WRITE_I2C       0x42     //I2C总线的读写地址
#define READ_I2C        0x43
#define GPIOCR_VAL      0x03    //HD1, HD0 are OUT
void I2C_start(void)
{
  SIO_Dout();    //HD2为OUT
  SIO_Dhigh();   //HD2=1
  delay_I2C();   //延迟程序
  Ehigh();       //HD0=1
  delay_I2C();
  SIO_Chigh();  //HD3=1
  delay_I2C();
  SIO_Dout();
  SIO_Dlow();
  Elow();        //HD0=0
  delay_I2C();
  SIO_Dlow();   //HD2=0
  delay_I2C();
  SIO_Clow();   //HD3=0
  delay_I2C();
}

4.4实验结果
     为了测试系统的实际效果,本文采用普通的白炽灯为光源,CMOS图像传感器OV7620开窗为200×40情况下采集了水表号码图像,由图5可以看出所采集到的图像达到了设计要求,为后续图像的识别处理奠定了基础。
      
图5 采集的水表号码

     5 结论
      系统选用具有图像开窗功能的CMOS数字图像传感器OV7620采集水表号码图像, OV7620内部集成了模数转换器A/D和视频时序产生电路,不但简化了硬件电路结构,降低了系统的成本,而且从640×480图像中截取200×40的有效图像,大大降低了图像的存储量和处理量,解决了信号处理器TMS320VC5416的存储空间不足的问题。



相关帖子

沙发
Plantt|  楼主 | 2019-2-20 17:06 | 只看该作者
基于DSP5416水表号码图像采集系统的研究

文档1.pdf

184.5 KB

使用特权

评论回复
板凳
rtrfrer4| | 2019-2-20 19:02 | 只看该作者
感谢分享!学习下设计思路

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

637

主题

901

帖子

4

粉丝