APP下载

基于S3C2440的实时捕捉监控系统设计

2013-04-25韩业忠朱成果

电子科技 2013年9期
关键词:寄存器触摸屏摄像头

韩业忠,朱成果

(辽宁大学 物理学院,辽宁 沈阳110036)

随着社会经济的高速发展,生活节奏不断提高,无人值守且需要长期检测有用信息或家用安全监控等成为人们的迫切需求。嵌入式技术使这种需求的实现成为可能。本文以S3C2440芯片为核心设计了一种实时捕捉监控系统。系统共有两种工作模式,一种是显示模式(主动模式),另一种是监控模式(被动模式)。开机上电后通过触摸屏选则工作在何种模式下,当工作在显示模式时,LCD不间断显示OV9650采集到的场景;当工作在监控模式时,将红外传感器作为监测模块,时刻监测是否有物体进入监控区域,若有物体进入监控区域,OV9650图像传感器立即被唤醒,同时LCD显示摄像头捕捉到的图像;当物体离开监控区域,OV9650传感器和LCD便进入休眠状态,SDHC将储存在这期间内采集到图像,备以后查看。

1 系统硬件构成概述

以S3C2440芯片作为系统的控制芯片,外围电路采用天嵌公司生产的TQ2440底板,扩展出摄像头接口、LCD接口、GPIO接口等。S3C2440芯片是基于ARM920T内核构架的RISC高性能微处理器,其最高工作频率可达400 MHz,内部集成了丰富的片上系统,包括LCD控制器和摄像头接口CAMIF。系统将红外传感器用于监测是否有物体进入监控区,将传感器OV9650用于现场图像的采集,并且采集到的图像能在LCD上同步显示。系统功能模块包括监测模块、采集模块、显示模块和存储模块。系统总体架构如图1所示。

图1 系统总体结构图

1.1 系统监测模块和存储模块

检测模块主要包括E18-D80NK型号红外传感器。该红外传感器集发射器与接收器于一体。发射器发射调制后的光波,接收器则解调被物体反射回来的光波并进行输出,能够很好地降低可见光的影响。将该传感器与GPIO口连接,构成监测模块。模块原理如图2所示。

图2 监测模块结构图

存储模块选用Sandisk公司生产的SDHC卡。其特点是存储容量高,写入速度快[1]。SDHC与S3C2440的连接情况,如图3所示。

图3 存储模块结构图

1.2 图像采集模块

S3C2440A内部集成了摄像头接口CAMIF。CAMIF接口包含一个主时钟输出信号,一个复位输出信号,三个来自摄像头的同步时钟输入信号以及8位数据输入信号。图像数据仅通过8位数据通道传输。图像传感器OV9650的控制总线是由SCCB_E、SIO_C、SIO_D组成的,通常只使用由SIO_C和SIO_D构成的2线串行模式[2]。其工作方式类似于IC总线协议,采用由高位到低位依次传输字节数据。当1 Byte传输完成后,主控制器将SDLA置为高电平并释放,等待接收由来自设备的确认信号。摄像头接口与DMA控制器之间有两条进行数据传输的模式:一条是预览模式(P通路),另一条是编码模式(C通路)。本系统使用的是预览模式,即将从摄像头接口传送来的数据转换成RGB格式,并通过预览DMA,将数据传送到SDRAM中,LCD就能够同步显示采集到的图像。CAMIF的结构如图4所示。

图4 CAMIF原理图

OV9650传感器只能工作在从模式下,故通过控制芯片初始化OV9650传感器的各个寄存器。OV9650传感器的XVCLK引脚用来接收控制芯片供给的24 MHz工作时钟[3]。垂直同步信号(VSYNC)和水平参考信号(HREF)共同作用于帧同步的检测,在HREF处于低电位且VSYNC处于上升沿时进行同步。OV9650传感器输出的PCLK时钟作为像素同步信号,各个像素数据在PCLK的下降沿时有效,即更新像素数据;在HREF处于上升沿时输出像素数据。OV9650传感器内部集成了十位A/D转换器和8位DSP转换器,于是图像数据可以以10位原始RGB格式通过数据接口D[0∶9]输出,也可以以转换后的8位RGB/YCbCr格式通过数据接口D[0∶7]输出。CAMIF支持8位的YCbCr格式,所以将CAMIF的数据接口CAMDATA[7∶0]与OV9650传感器的数据接口D[9∶2]相连[4]。OV9650摄像头与CAMIF的详细连接如图5所示。

图5 图像采集模块结构图

1.3 实时显示模块

实时显示模块包括TQ043TSCM-V型LCD和S3C2440内部集成的LCD控制器。LCD控制器能够支持多种灰度的STN彩色LCD面板,也支持多种像素的TFT彩色LCD面板以及真彩显示。本系统选择16位每像素的TFT彩色LCD显示。

2 监控系统程序设计

设置全局变量keyy,keyy表示运行模式,程序根据keyy的值判断系统将要工作在显示模式还是监控模式下。若keyy的值为1,则系统工作在显示模式下,LCD将一直显示OV9650传感器捕捉到的图像;若keyy的值为2,则系统工作在监控模式下,OV9650传感器和LCD初始化后进入休眠状态,红外传感器则一直监控是否有物体靠近,当有物体进入监控区域,唤醒OV9650传感器和LCD,SDHC同时存储OV9650传感器捕捉到的图像;当物体离开监控区域,OV9650传感器和LCD进入休眠状态。系统总体程序流程如图6所示。

图6 系统总体程序流程图

2.1 红外传感器和触摸屏程序设计

当红外传感器检测到物体,信号线输出低电平。所以将GPG并口设置成输入状态,再将GPGDAT全部写1,以查询方式,检查GPGDATE7是否为0。若为0,则意味有物体进入监控区,主程序随后被唤醒。

控制芯片集成了四线制电阻式触摸屏接口,分为引脚控制逻辑和触摸屏中断发生逻辑,用于控制触摸屏X、Y方向的引脚的转换。触摸屏接口共有4种工作模式,系统选择的是其中的等待中断模式和自动X/Y方向转换模式。首先将触摸屏控制寄存器ADCTSC的值设置为0XD3,使触摸屏接口进入等待中断模式,在该模式下,触笔落下时会产生一个中断;系统响应中断后,会将ADCTSC的低两位清零,触摸屏接口就立即进入自动X/Y方向转换模式,依次读取触点的X、Y轴的坐标值。其中,将X轴坐标值写入数据寄存器ADCDAT0的低十位中,将Y轴坐标值写入数据寄存器ADCDAT1的低十位中。当触点X轴坐标值在400~450之间、Y轴坐标值在100~300之间时,系统进入显示模式;当触点X轴坐标值在800~850之间、Y轴坐标值在100~300之间时,系统进入监控模式。

2.2 图像的采集和显示程序设计

LCD的显示程序关键是各种寄存器的配置。LCD控制寄存器一共有5个,帧缓冲地址寄存器有3个。

通过控制寄存器LCDCON1设置CLKVAL的值为4,显示模式设置为TFT彩色LCD和16位每像素模式;通过LCDCON2设置VBPD为2、VFPD为4、VSPW为8;通过LCDCON3设置HBPD的值为10、HOZVAL为(480-1)、HFPD为19;通过LCDCON4设置HSPW为30;LCDCON5主要用来设置各种信号的极性。内存中视频缓冲区LCD_BUFFER的位置由帧缓冲地址寄存器LCDSADDR1决定。缓冲区的开始地址LCDBASEU和结束地址LCDBASEL则分别由帧缓冲地址寄存器LCDSADDR1和LCDSADDR2来决定,须保证缓冲区是在4 MB的连续区间内[5]。LCDSADDR3主要用来配置虚拟屏幕相关的设置,本系统不涉及。

摄像头接口通过DMA进行数据交换时,可以通过寄存器设置单独禁止P通道或C通道。使用C通道的时候,控制芯片在内存中各开辟4块乒乓存储区域,寄存器rCIPRCLRSA1、rCIPRCLRSA2、rCIPRCLRSA3和rCIPRCLRSA4分别用于表示这4块内存的首地址。本系统使用P通道,只需将缓存(U32)LCD_BUFFER的首地址分别赋给rCIPRCLRSA1、rCIPRCLRSA2、rCIPRCLRSA3和rCIPRCLRSA4,摄像头采集到的图像就会自动在LCD屏幕上显示。

2.3 SDHC存储程序设计

摄像头捕获图像后会将FlagCapture_P置1,系 统将根据FlagCapture_P的值向SDHC中存储数据。由于LCD屏的分辨率为480×272,图像像素为16位RGB格式,故直接将视频缓冲区的数据存入SDHC中,需要261 120 Byte。通过查看图片的位图,会发现每一行的像素数据有很多重复的字节。根据这一特点,可以把图像数据变为(i1,num1),(i2,num2),(i3,num3)…(in,numn),其中i和num定义成无符号字符型,in是相同字节的数据,numn是重复的字节个数。首先,创建数组Image_Buffer,Compress_Buffer和结构体type struct CONVERT,并定义结构体数组struct CONVERT Convert。Image_Buffer作为图像数据的缓存区,存放原始图像;结构体CONVERT包含两个元素,分别用来存储i和num的值;数组Compress_Buffer用于储存压缩之后数据。数据压缩时,缓冲区LCD_BUFFER的数据传递到Image_Buffer中,然后从Image_Buffer[0]开始扫描。扫描的过程中,i等于被扫描字节的内容,当发现相邻字节内容相同且num<255时,num加1;否则,就将(in,numn)存 入结构 体数组Convert中,并将num置1,重复以上过程,直至扫描Image_Buffer中的全部字节。再通过强制类型转换,将Convert中的值存到数组Compress_Buffer。最后将Compress_Buffer中的数据以Byte为单位写入SDHC中。读取图片则是逆过程,将解压后的数据送入LCD_BUFFER中,LCD就显示了存储的图片。该压缩图片的方法本质上是一维行程编码[6],节省了SDHC卡存储空间。

3 实际性能测试

利用SecureCRT和DNW软件,通过USB下载线将程序下载到NAND Flsh中。其中,SecureCRT为串口调试软件,DNW为USB下载软件。

上电启动后,选择监控模式,摄像头OV9650和LCD初始化后,进入休眠状态;当红外传感器检测到有物体进入监控区,摄像头和LCD可在3 ms内被唤醒,LCD显示摄像头捕捉到的图像,如图8所示,同时向SDHC中存储数据,当物体离开监控区,系统再次进入休眠状态。图7和图9显示的是设备运行时通过SecureCRT软件获取的串口信息,从中可以观察到SDHC和LCD缓存之间的数据传输状况。

图7 摄像头拍摄时的串口信息

图8 实时显示拍摄到的画面

图9 读SDHC时的串口信息

LCD显示SDHC中的数据时,如图10所示,画面与实时显示时相比会偏暗。这是因为LCD实时显示是由LCDCDMA控制,CPU并不干涉,故往SDHC中存储数据不影响LCD的流畅显示。而向SDHC存储数据需要时间,所以会出现少量丢帧的现象,进而导致画面偏暗。

图10 显示SDHC卡中的数据

4 结束语

本文设计了一款最小化实时监控系统。该系统不仅体积小,反应灵敏,而且具有“捕捉”功能,即当物体进入监控区时,系统立即被唤醒并做出反应。该设计降低了系统的耗电量,也使得SDHC卡能够存储更多有价值的信息。经实际运行,系统能够很好地满足实时响应、关键图像保存的要求,且工作稳定可靠。该系统在无人值守或家用安全监控等方面具有实际应用价值。

[1] 王拾亦.基于ARM的嵌入式数据存储系统研究[D].太原:太原科技大学,2009.

[2] 马超.刘正林,邹雪城.SCCB在ARM9嵌入式平台上的实现[J].计算机与数字工程,2006,34(7):134-137.

[3] 陈丽华,施隆照.基于3G手机的视频监控系统的设计[J].现代电子技术,2011,34(16):3-6.

[4] 杨晓健.基于ARM9的嵌入式视频采集系统[J].西安工程大学学报,2010,24(2):208-212.

[5] 童庆平,刘笃仁.基于ARM芯片S3C2410的TFT-LCD驱动方法[J].电子元器件应用,2007,9(3):20-22

[6] 潘超,李和平,陈定方.基于行程编码的位图压缩方法的研究[J].湖北工业大学学报,2006,21(3):120-123.

猜你喜欢

寄存器触摸屏摄像头
浙江首试公路非现场执法新型摄像头
STM32和51单片机寄存器映射原理异同分析
摄像头连接器可提供360°视角图像
Lite寄存器模型的设计与实现
PLC和触摸屏在卫生间控制系统的应用
浅析投射式多点触控电容触摸屏
皮肤“长”出触摸屏
奔驰360°摄像头系统介绍
触摸屏项目移植在自动化系统升级中的应用
高速数模转换器AD9779/AD9788的应用