基于DSP的汽车运行图像监测系统
2008-07-17
作者:万 鹏
摘 要: 采用MPEG-4压缩算法、DSP技术和现代电子技术,研制了汽车运行状况图像监测系统。在总体设计方案的基础上,基于DSP芯片ADSP-BF533" title="ADSP-BF533">ADSP-BF533设计了系统硬件,并采用C语言与汇编语言进行混合编程,开发了系统软件。为提高系统可靠性和稳定性,从软、硬件两方面采取了抗干扰措施。本文所研制的汽车运行状况图像监测系统具有对大量视频图像数据" title="图像数据">图像数据的存储、压缩和回放等功能,能够实现对汽车运行状况图像实时记录。
关键词: 汽车 图像监测 MPEG-4 DSP技术
目前交通事故责任的认定令公安部门、交通部门、保险公司、汽车生产厂商非常关注。目前,所有事故原因的调查、分析、统计工作都只能根据事故发生后现场的状况来推断,所以难免有不符合事实的情况。
随着数字技术的发展,图像数据压缩编码" title="压缩编码">压缩编码技术及其标准的改进,以及芯片成本的不断下降,使得嵌入式实时图像监测系统的研究受到了人们的重视。本文采用美国模拟器件公司最新推出的专用音视频处理芯片ADSP-BF533和目前流行的MPEG-4视频压缩算法,通过IDE接口硬盘研制了汽车运行状况图像智能监测系统。该系统不但具有汽车运行图像采集功能,能为交通事故和盗车分析提供有力的证据,而且结构简单、成本低、可靠性高、可移植性强、扩展灵活,不仅可以满足汽车图像的监测,而且还可以应用到金融、交通、公安、监狱、广场、小区等图像监控场所,具有广泛的应用前景。
1 设计方案
汽车运行状况图像监测系统的结构图如图1所示。
系统主要由视频图像采集模块、图像压缩编码模块、编码数据存储模块、GPS模块及电源电路组成。其中视频图像采集模块使用CMOS摄像头OV7648采集视频数据;图像压缩编码模块通过MPEG-4压缩编码库将OV7648输出的ITU-R656数字信号进行压缩编码;编码数据存储模块的功能将编码数据通过FAT32文件系统" title="文件系统">文件系统存储于硬盘;GPS模块为系统提供实时时间、行车速度以及经纬度等信息。由于视频图像数据量大,而ADSP-BF533内部存储器容量有限,所以外扩了SDRAM作为视频图像数据的缓存器;该系统的程序全部存储于外扩的Flash上;整个系统的供电电源由汽车上的直流蓄电池供电,使用DC-DC电压模块获得各部分电路所需的电压。
系统工作过程如下:ADSP-BF533通过DMA方式从PPI接口将摄像头输出的数字视频信号直接存入SDRAM;当采集完一帧数据后,DMA产生中断,ADSP-BF533从SDRAM中读入数据进行MPEG-4视频编码,编码后的数据存入SDRAM;每当压缩后的数据超过8KB时调用一次FAT32文件系统,将数据存入硬盘。每当检测到汽车启动时,将新建一个视频文件,在检测到停车时,结束该文件。GPS模块为系统提供实时时间、经纬度和行车速度等信息,并通过LCD显示出来。当系统检测到汽车连续行驶2个小时以上时,将通过蜂鸣器报警,以提示司机疲劳驾驶,并在行车记录中进行记录。
2 系统的硬件设计
2.1 ADSP-BF533最小系统
2.1.1 ADSP-BF533数字处理器芯片
Blackfin processor是美国模拟器件公司推出的一类新型的嵌入式处理器,专门应用在数字图像处理领域。其运算速度快,具有多种外设接口,可以方便地进行各种扩展。本课题选用Blankfin processor系列中的ADSP-BF533,它拥有运算速度高达600MHz的DSP内核,采用了ADI公司和Intel公司联合开发的MSA架构技术,内含2个16位乘法器,2个40位累加器,2个40位算术逻辑单元(ALU),4个8位视频ALU以及1个40位移位器,提供了专门的视频处理硬件单元和视频处理指令,并支持动态电源管理,充分满足了实时图像处理的要求[3]。
2.1.2 存储器电路
因为视频数据信息量很大,而ADSP-BF533内部存储器容量有限,所以系统外扩SDRAM作为视频数据的缓存器。SDRAM与ADSP-BF533的接口图如图2所示。
系统SDRAM采用Hynix公司的HY57V561620,它是一款高速的同步动态存储器,组成结构为4Banks×4M×16bit。
系统程序存储在Flash中。Flash选用ADI公司的AM29LV800BT。其容量为1MB,工作电压为2.7V~3.6V,可以被配置为8位或者16位的数据宽度。
AM29LV800BT与ADSP-BF533接口图如图3所示。
2.2 视频图像采集
CMOS图像传感器芯片选用ADI公司推荐的OmniVision OV6650。这款芯片的像素阵列是352×288;具有自动曝光、自动白平衡、自动增益等功能;视频信号输出有RGB、YUV、YCrCb等多种模式;可以通过I2C总线进行控制,被广泛应用于图像采集领域。
CMOS图像传感器通过一个CAMERA INTERFACE 口与ADSP-BF533连接。CMOS传感器与ADSP-BF533接口图如图4所示。
因为ADSP-BF533没有I2C接口,所以将PF0和PF1与CMOS传感器OV6650的SIO_C和SIO_D相联,通过软件模拟了一个I2C接口。OV6650的输出数据同步信号线PCLK连接在ADSP-BF533的PPI_CLK口。
2.3 IDE硬盘接口
IDE(Integrated Drive Electronics),也叫ATA(Advanced Technology Attachment),ATA接口最早是在1986年由康柏、西部数据等几家公司共同开发的,在九十年代初开始应用于台式机系统。IDE接口硬盘的数据传输模式经历过三个不同的技术变化,由最初的PIO模式,到DMA模式,再到Ultra DMA模式。
2.4 GPS数据处理模块" title="处理模块">处理模块
本系统采用的GPS模块GPS-G01是一款超低功耗的GPS接收板,备有连接有源天线的直角MCX接头。内置TIM-LC模块,提供一路3V串口和一路RS232标准串口(3V串口兼容5V TTL输入电平,两路串口内容一样),支持3.15到5.25V范围内的工作电压输入,提供有源天线监控、手动工作模式选择开关。
为了能在处理GPS各种信息的同时,保证图像信息的正常处理,本系统通过一片AT89C2051筛选GPS传来的数据,将需要的日期、时间、经纬度、速度等信息提取之后传给DSP系统,同时通过LCD显示。
因为AT89C2051与BF533系统之间的通信和AT89C2051与GPS模块之间的通信都需要使用串行口,所以在单片机中通过软件模拟了一个串行口,用于与DSP系统的通信;而将单片机本身带有的串行口用于接收GPS模块传来的数据。电路如图5所示。
3 系统软件设计
根据设计要求及系统硬件模块的划分,本系统的软件主要分为DSP系统软件和GPS数据处理模块软件。
DSP系统软件的主要任务是基于已开发的MPEG4编码库和FAT32文件系统实现图像数据的采集、处理与存储,GPS信息的接收与存储,以及对司机疲劳驾驶的报警等。
GPS数据处理模块软件的主要任务是应用GPS技术提取时间、位置、速度等参数,并进行格式转换,将转换后的参数通过LCD显示,同时传递给DSP系统。
3.1 MPEG-4压缩编码模块
MPEG-4代表了基于模型/对象的第二代压缩编码技术,根据图像的内容将其分割成不同的视频对象VO(Video Object),然后进行编码[5]。本课题研究并编写了MPEG-4简单框架的压缩编码算法[6],其基本编码结构包括:形状编码、运动补偿和纹理编码;使用的主要技术是:运动估计补偿、DCT变换和混合DPCM编码[7]。
该算法可以针对图像宽度、图像长度、量化系数、编码码流和输入数据格式等参数进行设定和配置。
根据课题的要求,MPEG-4压缩编码算法的输入数据格式为:352×288像素的4:2:2的YUV数据。
基于ADSP-BF533实现的MPEG-4简单框架框图如图6所示。
3.2 FAT32文件系统模块
本系统在硬盘中所存储的数据要求能够直接被PC机读取,所以在硬盘上要建立FAT32文件系统。该文件系统分为四个模块:(1)FAT32文件系统参数的读取模块;(2)FAT32文件系统的地址转换模块;(3)FAT32文件系统的FAT表搜索模块;(4)FAT32文件系统的文件目录搜索模块。各模块都提供了一些接口函数,可以被其他程序调用。
在数据存储子程序中通过调用以上几个模块的函数来实现压缩数据的大容量存储。系统采用逻辑寻址方式对扇区进行寻址,若操作成功则返回0,否则操作失败返回错误信息。
硬盘的数据寄存器是一个16位PIO数据传输器,用于对扇区的读、写操作;错误寄存器记录操作方式下的错误原因;状态寄存器反映硬盘驱动器执行命令后的状态;命令寄存器接收处理机输出的HDC命令。在编程时必须将这些硬盘寄存器的地址进行映射。
3.3 DSP系统软件
系统上电以后首先自检,然后初始化。初始化程序包括对OV7648、PLL、SDRAM和EBIU的设置,对DMA0_PPI中断的设置以及对硬盘的初始化。
启动图像采集与编码程序后,ADSP-BF533通过DMA方式将摄像头输出的数据读入SDRAM中。当采集完一帧数据后,DMA将产生中断,在中断服务程序中先屏蔽本中断,置中断标志位,然后重新配置DMA_PPI中断,启动下一帧的采集,最后退出中断。
当主程序检测到中断标志位有效时,调用MPEG-4编码库对刚才的一帧数据进行压缩编码,压缩完成后将数据存入SDRAM中。周而复始。当程序查询到已编码的数据大于8KB时,调用FAT32文件系统向硬盘存储当前视频数据。
因为原始图像数据的采集是通过DMA方式进行的,无需内核的干预,所以当前帧图像数据的采集与上一帧数据的压缩是同时进行的。
主程序在处理视频数据的同时,通过定时器中断每秒从GPS数据处理模块提取一次信息(包括时间、速度、经纬度等)用于行车数据记录。当系统检测到连续行车时间超过两小时以上时,会通过蜂鸣器对司机进行报警,并在系统中记录该疲劳驾驶的信息,以备有关部门检查。
当系统检测到停车时会将结束标志位置1;若程序检测到结束标志位为1则写一次文件结束,并退出程序。程序流程图如图7所示。
3.4 GPS数据处理模块软件
GPS接收机每秒自动向单片机发送一帧数据,数据内容包括经纬度、时间、速度和定位状态等。本系统所使用的GPS接收机符合NEMA-0183数据通信协议(也为ASCII码数据通信协议)。NMEA-0183数据通信协议是美国国家海洋电子协会为海用电子设备制定的标准格式。它是在过去海用电子设备的标准格式0180和0182的基础上,增加了GPS接收机输出的内容而完成的。目前广泛采用的是Ver 2.00版本。现在除少数GPS接收机外,几乎所有的接收机均采用了这一格式。NEMA-0183数据通信协议消息格式共有11种(其中7种输出消息,4种输入消息),每种消息以“$”开头,以
不同格式输出不同的数据信息,常用格式有:
$GPRMC GPS定位数据(经度,纬度,速度,方向,时间等)
$GPGSV GPS卫星状态
$GPXTE 偏航距和操纵方向
$GPGGA GPS定位数据(经度,纬度,时间,定位状态等)
用户可以根据自己的需要,通过向GPS接收机发送控制命令来控制GPS的输出,以接收到自己需要格式的数据。本系统采用的是$GPRMC格式的数据。
初始化完毕后,系统提取GPS模块输出的数据,从中筛选出$GPRMC字段的数据,将这些数据转换成十六进制数后,再通过串行口传送给DSP系统,同时将这些数据通过LCD显示出来。
本文以ADSP-BF533为核心,使用MPEG-4视频压缩算法将压缩后的数据存入硬盘,实现图像实时监测。所研究的监测系统不仅体积小、压缩率高、存储容量大、实时性强,而且价格适中、可扩展性高。通过较小的软、硬件改动就可应用到汽车运行状况监测、十字路口监测、超市监测、智能楼宇和小区监测等领域,具有较强的实用价值和可推广性。
参考文献
[1] 苏涛,蔺丽华,卢光跃,等.DSP实用技术[M].西安:西安电子科技大学出版社,2002.
[2] 张雄伟,曹铁勇.DSP芯片的原理与开发应用[M].北京:电子工业出版社,2000.
[3] 陈峰.Blackfin系列DSP原理与系统设计[M].北京:电子工业出版社,2004.
[4] 罗志强,王耀南.Blackfin533的DMA技术及其在图像处理中的应用[J].国外电子元器件,2005,(2):32-35.
[5] 刘俊辉,冯驰,林洪彬.基于MPEG4的数字硬盘录像系统的设计和实现[J].应用科技,2004,(8):14-16.
[6] BAUER S,KNEIP J,MLASKO T.The MPEG-4 multimedia coding standard:algorithms,architectures and applications[J].Journal of VLSI signal processing,1999,(23):14-15.
[7] ATUL PURI,ARAVIND R,A.Motion-Compensated video coding with adaptive perceptual quantization[J].IEEE Transaction on circuits and systems for video technology,1991,1(4):351-362.