邵 玫
摘要:根据图像模式识别的需要,分析了对嵌入式处理平台的资源需求,根据资源需求,选择了ADI公司的Blackfin BF533系列DSP作为处理器平台,然后结合Blackfin的特性和图像清晰度的需求,确定使用OV7141 CMOS图像传感器。论文涉及到了在硬件和底层软件的设计中遇到的相关关键问题,同时给出了该平台的输出结果。该平台价格低廉,具有速度为1200MIPS的数据处理能力,其图像采集模块可以拍摄到640×480分辨率的清晰掌纹图像,可以完全满足在线生物特征识别的资源需求。
关键词:图像识别;Blackfin;OV7141 CMOS传感器;软硬件设计
1引言
红外图像采集设备广泛应用于特殊场合,尤其是在线生物特征认证[1],为了达到应用的要求,除了要求算法要可靠外, 还要求识别设备足够小型,具有便携化以及可升级性。所以,能够摆脱PC的束缚,在嵌入式系统上实现图像鉴别更加具有实际应用价值,但是,目前大部分的研究都是基于PC平台的,都还在算法研究阶段[1-2]。
现在的大部分图像识别算法研究都是在PC上实现的,其系统结构往往是使用一个CCD的摄像机捕捉图像,然后输入个人电脑,再在PC上使用MatLab或VC环境开发通用的识别算法程序。这样的开发模式具有很大的灵活性,适合于科学研究,但是距离真正的实用还有一定的距离。
针对一些需要红外滤波在线生物特征认证系统的要求,本文根据红外图像识别的具体要求,提出了基于ADI公司的Blackfin系列DSP处理器,使用Omnivision公司的OV7141 CMOS图像传感器的设计方案,经过实际的调制,该方案可以提供清晰的图像,并且Blackfin处理器可以提供1200MIPS的运算速度,为生物特征识别软件的开发提供了很好的平台。而系统的整体成本也控制在了很低的水平上。
2系统的硬件设计
完整的红外图像鉴别系统应该具备注册和鉴别两个基本功能。为了实现注册和鉴别两个功能,本文将系统分为以下几个模块:图像采集模块、鉴别处理模块、输入输出模块和通信模块。其中,鉴别处理模块是整个系统的核心, 它既要从前端获得的图像中提取掌纹线的信息,完成图像鉴别算法的运算,还要对其它的模块进行控制和监测。系统的结构框图如图1所示。
2.1并行外设总线设计
由于本方案采用的是OV7141,它具有数据时钟、场同步信号和行同步信号引脚,故采用了通用输入模式。由于OV7141输出的是8位的图像信号,因此只用到了Blackfin的PPI接口数据脚的低8位,高八位的PF复用引脚可以作为它用。硬件连接采用了如图2所示的设计方案[3]。
OV7141工作时钟的典型频率是24MHz,这个时钟信号连接到Blackfin的PPI_CLK引脚,作为并行数据传输的时序基准。OV7141的场同步和行同步信号加到Blackfin的PPI_FS1和PPI_FS2引脚上,在Blackfin的内部,这两个引脚连接到了定时器1和定时器2的PWM电路,可以通过设置TIMER1和TIMER2的相关寄存器来设定视频信号的同步时序参数。
2.2 SCCB控制总线设计
SCCB是OmniVision公司定制的串行摄像头控制总线(Serial Camera Control Bus),它用于对摄像头的寄存器进行读写,以达到对摄像头输出图像的控制。SCCB的数据传输由主器件控制,主器件能够发出数据传输启动信号、时钟信号以及传送结束时的停止信号。通常主器件都是微处理器,它寻址访问的设备称为从器件。为了进行通讯,每个接到SCCB的设备都有一个唯一的地址( ID),使用软件寻址来识别总线上的从器件,省去了从器件的片选。因此,只需要两根线(串行时钟线SIO_C和串行数据线SIO_D) ,挂接到总线上的器件就能相互进行信息传递。组成SCCB的SIO_C和SIO_D必须经过上拉电阻RP 接到正电源上,连接到总线的器件的输出级必需为“开漏”或“开集”的形式,以便在多个主或从需求仲裁的情况下完成线与的功能[4-6]。
在SCCB 协议中定义开始和停止条件如下:开始条件是在SIO_C为高电平时,SIO_D出现一个下降沿;停止条件是在SIO_C为高电平时,SIO_D出现一个上升沿。除了开始和停止状态,在数据传输时,如果SIO_C为高电平时,必需保证SIO_D上的数据的稳定,也就是说,SIO_D上的数据只能在SIO_C为低电平时改变。
与I2C 总线类似,SCCB完整的数据传输包括两个或三个阶段。每一阶段包中含9位二进制数据,其中高8位为所要传输的8位数据,最低位根据主器件的数据传输是读操作还是写操作而确定。
在SCCB 协议定义了两种写操作,即三相写操作和两相写操作。三相写操作是往从器件的目的寄存器中写入数据。在三相写操作中,第一阶段写从器件的地址,第二阶段写从器件目标寄存器的地址,第三阶段写入数据。而两相写操作只有三相写操作的前两个阶段。
在本文的设计中,由于Blackfin不支持IIC或SCCB总线,因此使用BF533 DSP芯片两个通用(GPIO)引脚,用软件模拟的方式实现了SCCB总线的驱动[7-8]。为了实现电压匹配,并保护珍贵的DSP芯片,故可使用了74HC244三态缓冲器作为驱动缓冲。
3 系统的软件设计
为了能够给上层应用程序提供必要的驱动和接口,系统的底层软件是所有工作的基础,这部分工作包括了DMA通道的设置、SCCB控制总线的实现和串口通信等等。
3.1 DMA图像数据传输通道设计
在Blackfin的内部具有12个通道的DMA控制器,可以实现PPI、SPORTS、SPI、UART和RAM之间的数据传输,每个被支持的DMA外设都至少有一个专用的DMA通道。Blackfin支持一维和二维的DMA传输,其DMA传输的初始化可以通过设定寄存器来实现,也可以通过待传输数据头部的一组状态描述符来实现。
3.2 SCCB总线的实现
由于Blackfin系列的DSP不支持IIC或SCCB总线,因此需要使用GPIO引脚,使用程序模拟来实现对SCCB总线的支持。根据开发板的实际连接情况,在本文方案中,PF7引脚作为SIO_C时钟线,PF5引脚作为SIO_D数据线来使用。
假设将通过SCCB发送五位数据“SOF 0 1 1 EOF”时,引脚上的电平变化情况如图8,从图中可以得到模拟SCCB时序的方法,也就是把每一位数据的传输切分成四个时间片。
在三相写操作中,具体指令包括了开始位、结束位、以及3组每组9位的数据,一共包含有29bits数据。在程序实现中,可以用一个29个元素的数组来表示一个指令,然后用上文的代码将指令位依次写入PF7和PF5引脚中。具体的代码不在此处赘述。
4结果和分析
本文方案使用ADI公司的ADSP-BF533 EZ-KIT 开发板,与绘制的OV7141摄像PCB板相连,使用标准的摄像镜头,以石英射灯作为光源,拍摄到了人体掌静脉的图像,分辨率达到了640×480,清晰度达到了掌静脉这一生物识别的要求。
作为嵌入式方案,16位的BF533 DSP具有600MHz的处理速度,拥有32M的数据SDRAM,2M的Flash存储器,开发板支持C++语言程序。可以较容易的把PC上的识别处理程序移植到该嵌入式系统中,完全可以满足图像识别处理的资源要求,为后期的开发提供了高性能的开发平台。
5总结
本文根据图像模式识别的需要,分析了对嵌入式处理平台的资源需求,包括了对处理器的需求,以及对摄像拍摄模块的需求指标,根据资源需求分析的结果,选择了ADI公司的Blackfin系列BF533 DSP处理器。再结合Blackfin的硬件接口和对图像清晰度的需求,确定使用OV7141 CMOS图像传感器,它可以输出640×480分辨率的黑白手章静脉图像。本文包括了并行外设总线(PPI)的硬件接口设计和时序,使用DSP的GPIO口实现SCCB控制总线的仿真实现,以及在Blackfin内部使用DMA通道实现数据的快速传输。在本章的最后,给出了该平台的输出结果。
参考文献
[1] 田捷,杨鑫 生物特征识别技术理论与应用 电子工业出版社 2005.9
[2] ADI.inc ADSP-BF533 datasheethttp://www.analog.com 2006.5
[3] Omnivision.inc OV7640/OV7141 datasheet Version2.1 http://www.ovt.com 2005.3
[4] ADI.inc ADSP-BF533 EZ-KIT Lite Evaluation System Manualhttp://www.analog.com 2006.5
[5] 陈峰 Blackfin系列DSP原理与系统设计 电子工业出版社 2004.1
[6] 车树良,吕英华,王海兰 基于S3C44B0的图像数据采集方法 计算机工程与应用 2005.12
[7] OmniVision.inc OmniVision Serial Camera Control Bus (SCCB) Functional SpecificationProprietary to OmniVision Technologies Version 2.1 2003.2
[8] 张智杰,郭晓东 Blackfin DSP并行外围接口在红外视频处理通用模块中的应用研究 光学与光电技术 2005.12.