基于ARM的实时图像采集压缩系统设计与实现
- 格式:pdf
- 大小:1.19 MB
- 文档页数:4
第30卷 第4期2007年8月电子器件Ch in es e Jo u rnal Of Electro n Devi cesVol.30 No.4Aug.2007Desig n and Realiza tio n of AR M Ba sed R ea -l T im e Im age C ollection an d C o mp ressio n S ystemH UI Ying1,2,L UO H ai -bo 1,X I AO Chuan -min21.S henyang I nstitu te of A utomation,Chinese A cad emy of Sc ie nc es,S heny ang 110016,China;2.Grad uate S chool,Chinese A cad emy of S cie nces ,B eij in g 100039,ChinaAbstract:To achiev e the requir em ent of low pow er,a realizatio n appro ach fo r ARM based embedded image collectio n and co mpression system is presented.We adopt a CPLD to desig n timing controller,w hich pro -v ides a best solution for system synchronizatio n and rea-l time process o f high -speed data flow ,thus,r ealize the contr ol log ic and data com munication betw een ar m and ex ter nal device.The har dw are and softw are constitution are introduced.Ex perim ental result sho w s that the sy stem can collect and compress im ag e in rea-l time by the control of remote PC,then,transfer image data thro ug h w ireless sensor netw ork,and dis -sipate po w er less than 200mW.Key words:ARM ;CPLD;im ag e co llection;Multi2000progr am me EEACC :6210R基于ARM 的实时图像采集压缩系统设计与实现惠 颖1,2,罗海波1,肖传民21.中国科学院沈阳自动化研究所,沈阳110016;2.中国科学院研究生院,北京100039收稿日期:2006-08-25作者简介:惠 颖(1983-),女,中科院沈阳自动化研究所硕士,主要从事数字图像处理、目标跟踪方面的研究,huiying@.摘 要:针对系统低功耗的实际需求,提出一种基于ARM 的嵌入式图像采集压缩系统的实现方案.采用一片CPL D 设计时序控制器,很好地解决了图像采集系统存在的系统严格同步和高速数据流实时处理的设计难点,并能实现AR M 及其外围器件之间的控制逻辑和数据交互.详细介绍了系统硬件平台的构建及系统软件的设计流程,并给出实验结果.利用本系统能够在远程PC 的控制下实时采集压缩图像,并通过无线传感网络传输,系统功耗低于200mW.关键词:图像采集;低功耗;A RM ;CPL D;M ulti2000编程中图分类号:TN919.82 文献标识码:A 文章编号:1005-9490(2007)04-1341-04 实时图像的采集和处理在现代多媒体技术中占有极其重要的地位.日常生活中常见的数码相机、可视电话和电话会议等产品都以实时图像采集作为最核心的技术.基于嵌入式技术的图像采集处理系统具有体积小、成本低、稳定性高等优点,有很高的应用价值[1].目前,大多数图像采集系统往往采用摄像头+USB 压缩控制芯片的方案完成图像的实时采集和压缩[2].本系统是针对世博园中要对植物状况进行实时采集、监控的应用需要而进行的设计,图像数据通过无线传感网进行传输.由于本系统作为无线传感网的一个节点,使用电池供电,摄像头+U SB 控制芯片的方案不能满足系统对低功耗的实际需要;同时,U SB 接口与无线传感网接口不匹配,需要加入接口转换电路.因此,本文采用低功耗的AT 91系列ARM 作为主控制器,设计并实现了基于ARM 的图像采集压缩系统,由ARM 完成图像压缩工作,与使用专用压缩芯片相比,数据输出格式更加灵活.1 系统工作原理整个系统可以分为三个模块:图像采集模块、图像存储模块、ARM.本系统的设计难点在于如何保证图像数据读取单元和CMOS 摄像头的严格同步以及高速数据流(24M H z)的实时处理.系统采用一片CPLD 设计时序控制器,协同CM OS 传感器、ARM 、帧存储器以及Flash 之间的工作流程,很好地解决了系统同步和高速数据流实时处理的问题;系统结构框图如图1所示.图1 系统结构框图远程PC 机通过无线传感网产生中断信号(ARM _WA KE )唤醒ARM 后,系统开始工作,在CPLD 的调度下,CMOS 摄像头输出的图像数据暂存在帧存储器中,同时,ARM 通过CPLD 读取帧存储器中存储的图像,将其压缩成JPEG 格式的图像,并将压缩后的图像数据存入串行Flash 中,向无线传感网络发出中断申请,然后进入休眠状态;无线传感网络接到中断申请后,读取图像数据并发送到远程PC 机,完成一次图像采集、压缩、传送的过程.由于这种工作模式下系统大部分时间都处于休眠状态,所以与摄像头+USB 控制芯片的方案相比,功耗大大降低.2 硬件电路设计2.1 图像传感器本系统选用Om niVisio n 公司的FB7648-FRF 彩色CM OS 摄像头作为图像输入单元,该摄像头集光学镜头与CM OS 图像传感器于一体,简化了系统的设计,它能够通过SCCB 接口控制其工作状态、工作方式及图像输出格式等;芯片运用专有的传感器技术,能够消除普通的光电干扰,输出清晰、稳定的彩色图像[3].CM OS 摄像头同CPLD 的接口电路如图2所示,摄像头输出场同步信号VSYNC 、行同步信号H REF 、像素时钟PCLK 及图像数据,CPLD 由行、场同步信号生成系统的时序,实现系统与CMOS 摄像头的同步,并将图像数据写入帧存储器中;同时,CPLD 还要为CM OS 摄像头实现SCCB 接口功能,通过该接口A RM 可根据需要设置CM OS 摄像头的工作参数.图2 CPL D 与摄像头接口电路2.2 ARM 控制器ARM 选用Atmel 公司的AT 91FR40162S,它采用ARM7TDM I 内核技术,具有高密度的16位指令集和极低的功耗,尺寸仅为10mm @10mm,片内集成了256kbyte 片内SRAM 和2M by te Flash 存储器,为系统提供了大容量的程序存储空间[4-5].AT 91FR40162的EBI 总线接口用以确保多个外设与ARM 器件内置存储器之间实现正确的数据传输.本系统采用片内Flash 作为ARM 的自举存储器,因此需要将A RM 的片选信号NCS0与其自身的NRST F 相连,片选信号NCS1作为ARM 的外设选通信号连接至CPLD 的一个I/O 引脚;EBI 通过配置控制寄存器EBI_CSR0~EBI_CSR1分别设置片内Flash 和外设在重映射后的起始地址、数据总线宽度等.此外,ARM 的JT AG 接口用于芯片的内部测试及程序的仿真调试;ARM 的读/写、数据及地址信号等也作为CPLD 的输入信号,经时序控制电路产生外围器件的控制信号.2.3 存储模块及其他电路设计按照设计要求,本系统需要扩展两种类型的数据存储器,一种用于存储原始的YUV 图像数据,采用并行方式与CPLD 相连;另一种用于存储压缩后的JPEG 图像数据,采用SPI 接口与无线传感网相连.系统选用高速、极低功耗、2MB CMOS 静态随机存储器BS616LV1622作为原始图像数据存储器;扩展4Mbyte 串行可编程闪速存储器AT 45DB041B 存储压缩后的图像数据,该存储器具有供电电压低、封装小、管脚少、采用与无线传感网相容的SPI 接口方式等特点,很符合系统的设计要求[6].电源模块采用T I 公司的升压变换器T PS61030为系统提供稳定的3.0V 工作电压,它能将1.8~ 5.5V 的直流电压变换成5.5V 以下的固定或可调电压,非常适合于采用1节锂离子、2到3节碱性电池供电的应用场合;TPS61030输出的3.0V 电压经两片T PS62020转换后获得系统所需的1.8V 和 2.5V 供电电压.T PS61030和T PS62020都是开关型DC -DC 变换器,其转换效率可达96%,这种设计最大限度地降低了无用功率的1342电 子 器 件第30卷损耗,从而降低了系统功耗.3 设计仿真由于篇幅所限,文中不详细介绍系统的原理图,重点介绍由CPLD 设计的时序控制单元.本系统中CPLD 起到桥接的作用,实现ARM 及其外围器件之间的控制逻辑和数据交换.CPLD 选用M AX Ⅱ系列的EPM 570GT100[7],采用Quartus Ⅱ进行开发.3.1 同步功能实现CPLD 采用行、列两个计数器为帧存储器提供地址信号.FB7648的行同步信号HREF 和像素时钟PCLK 分别作为行、列计数脉冲,场同步信号VSYNC 和H REF 则作为行、列计数器的清零信号端.在VSYNC 变为低电平时,行计数器开始计数,每一个HREF 脉冲行计数器加1;在HREF 变为高电平时,列计数器开始计数,每一个PCLK 脉冲列计数器加1.行、列计数器的输出分别作为帧存储器的高位和低位地址信号,在三个同步信号的控制下,依次将像素数据存入帧存储器,这样就保证了帧存储器中每一个单元与图像的一一对应关系,也就保证了系统与CMOS 摄像头的严格同步;其仿真波形如图3所示.图3 行场同步仿真时序3.2 SCC B 控制信号功能实现系统上电后,ARM 需要通过SCCB 总线对CM OS 摄像头进行初始化.FR7648采用两线SCCB 总线接口协议,在串行时钟SIO_C 的上升沿将SIO _D 上的串行数据锁存到COM S 摄像头中[8].为简化系统设计,在CPLD 中设计了一个SCCB 接口电路,ARM 只需向CPLD 写入三字节的控制字,CPLD 中的SCCB 接口电路即可按照CM OS 摄像头的接口协议将控制字通过SIO_C 和SIO_D 发送出去;其仿真波形如图4所示.图4 CP LD 与摄像头接口仿真波形4 系统软件设计本系统软件在Multi2000环境下采用C 语言开发完成.软件主要分以下几个部分:①CM OS 摄像头初始化;②JPEG 图像压缩;③将压缩图像数据写入串行Flash 中.软件流程如图5所示.图5 系统软件流图(1)CM OS 摄像头初始化系统上电以后,使CM OS 摄像头复位,对摄像头控制寄存器进行初始化设置.程序将寄存器初始值事先存储在数组中,设置控制寄存器时,数据将按照摄像头ID 地址、控制寄存器地址、寄存器值的顺序依次写入.(2)JPEG 图像压缩ARM 在设置完中断寄存器,开外部中断后,进入循环程序,开始采集图像并进行JPEG 压缩.软件系统利用IJG (Independent JPEG Gro up)提供的JPEG 库进行图像压缩[9].图像压缩的步骤如下:①定义JPEG 压缩对象;②初时化压缩对象,即压缩数据指针,设定压缩比等;③按行读取RAM 中的YUV 图像数据并转换成RGB 格式;④分块进行DCT 变换,重排并量化;⑤对量化结果进行编码;⑥压缩结果存入dest 指针指向的地址,并写入串行flash;⑦图像是否读取完毕,是->结束压缩,否->(3).在标准IJG 库中,函数必须从文件或其他设备流中读取数据,再将压缩数据存成JPEG 文件,而ARM7没有文件管理系统,无法直接利用库函数.为解决该问题,在程序中将jpeg _co mpress_struct 中dest 数据源替换成ARM 的内存数据源,并实现管理内存数据的回调函数,将压缩数据指针指向ARM 存储区.回调函数的实现如下:size_t g _buf_leng th=2400;unsigned char *g _buf=NU L Lvo id init_destinatio n (j_compress_ptr cinfo){cinfo ->dest->fr ee_in_buffer=g _buf_lengt h;cinfo->dest->nex t_o ut put_by te=g_buf;}1343第4期惠 颖,罗海波等:基于ARM 的实时图像采集压缩系统设计与实现bo olean empty_output_buffer (j_co mpress_ptr cinfo){r et ur n F A LSE;}(3)压缩数据写入串行Flash串行Flash 的读写操作是按页进行的,本系统采用通过缓存写入主存储页的方式将压缩数据存入主存储区.在这种方式下,数据先移入一个缓冲区,再将缓冲区的数据写入主存中的某一页,其操作码为82H,操作码后跟随4个保留位,11位页地址和9个用于标识从缓冲区哪个字节开始写入的地址位.压缩数据将从第二页开始写入主存储区,第一页中写入压缩数据占用的总页数和最后一页写入的字节数,用于表示压缩数据的大小,与无线传感网接收端进行同步.5 结论及分析按照以上介绍的方案完成系统的设计与调试工作,图6为实验样机的实物照片,图7为样机采集的图图6系统板图图7 采集图像像.实验表明,本系统能够实时采集图像并进行压缩处理,利用电池供电,工作时功耗不超过200mW.摄像头采集一幅640@480的图像,原始数据约为800kbyte,经压缩处理后,数据大小仅为50kbyte,大大减少了数据量.对于基于ARM 单芯片的系统,外围控制完全由ARM 产生,编程相对复杂;而且使用中断的方式实现图像同步,也降低了系统的帧频.而本系统采用ARM+CPLD 的设计方式,由CPLD 完成外围控制,与基于ARM 单芯片的系统相比,降低了对ARM 编程控制的要求,对于QV GA 格式帧频达到60flame/s,V GA 格式帧频达到30flame/s,能够满足工业现场、电力、海关等各种无人值守系统对实时性的要求.此外,系统还具有较低的功耗,适用于电池供电,具有广阔的应用前景.参考文献:[1] 马宏伟,张军平,张建华等.基于32位嵌入式系统的实时图像采集模块[J].电子技术应用,2003,(4):12-14.[2] 邴仲辉.USB 摄像头嵌入式应用的软硬件设计[J].电测与仪表,2005,42(477):46-48.[3] FB7648-FRF VGA Camera M odule Preliminary Datash eet[S ][EB/OL].w w ,2004-04.[4] 马忠梅,徐英慧.AT91系列ARM 核微控制器结构与开发[M ].北京:北京航空航天大学出版社,2003.[5] AT91FR40162DataSh eet [S ][EB/OL ].ww ,2005-06.[6] AT 45DB041B DataSheet [S ][EB/OL ].w w ,2005-05.[7] 钱云,汤勇明,尹涵春等.基于CPLD 的温度采集系统设计[J ].电子器件,2006,29(2):546-549.[8] Om nivision Serial Camera Con trol Bus Application Note[S ][EB/OL].ww ,2003-02.[9] T homas n e.IJG JPEG Library C opy right[C][DB/OL ].w w ,1994-1998.1344电 子 器 件第30卷。