>
首页 » 业界动态 » 基于S3C2410与AT2042的无线视频监控终端设计

基于S3C2410与AT2042的无线视频监控终端设计

作者:  时间:2007-11-02 11:10  来源:
1 引言

鉴于视频监控技术已进入以嵌入式技术为依托的网络视频监控系统的新阶段。为此,笔者设计并实现了基于CDMA 1×网络的嵌入式无线视频监控终端。此终端设备以Samsung公司的32位处理器S3C2410为主控芯片,利用Pentamicro公司的AT2042芯片完成双通道视频编码,采用Anydata.NET公司的DTU-800X无线数据模块实现CDMA 1×网络接入与压缩视频传输。该视频远程监控具有较低码率、帧率和一定的图像质量,其视频录像功能具有高分辨率和高质量。本文将介绍此终端的系统整体设计,并详细分析系统软件设计,最后给出测试结果和结论。

2 系统整体设计

嵌入式无线视频监控终端的系统框图如图1所示。它主要由视频编码子系统、主控子系统、CDMA通信子系统3大部分构成。视频编码子系统中,采用TI公司的超低功耗图像解码芯片TVP5150,将模拟视频信号转换成数字视频信号输入到AT2042的视频输入接口,继而由AT2042实现双通道视频编码产生两路不同分辨率的压缩视频流,此外,需要为AT2042配备专用的SDRAM存储代码及视频数据。主控子系统以S3C2410为核心,利用32位总线外扩FLASH,SDRAM。其中FLASH用于存储系统软件,待系统上电后加载到SDRAM运行;S3C2410通过AT2042的外部主机接口对AT2042进行控制以及读取压缩视频流;利用I2C总线接口控制TVP5150;通过USB主机接口外接移动硬盘/U盘或SD/MMC接口外扩SD卡,可作为视频存储设备;通过UART接口扩展RS-485接口进行云台控制、扩展两个RS-232串口分别作为与无线数据模块通信的接口和开发调试用的控制台。CDMA通信子系统由无线数据模块DTU-800X及外围UIM卡和天线组成,实现压缩视频数据包的无线发送。

其中AT2042芯片的功能模块图,如图2所示。该芯片是一款内置微控制器ARM946E的双通道音视频编解码芯片,支持多种音视频编解码标准,有多种图像分辨率和帧率,支持恒定码率(CBR)和可变码率(VBR)两种码率控制方式。在双通道视频编码模式下,可将一路数字视频编码产生两路不同分辨率的压缩视频流——较高分辨率的基本通道和较低分辨率的次级通道,并且两个通道的视频质量、帧率以及压缩标准都可单独设置。此外,AT2042具有符合ITU-R BT.656标准的数字视频输入/输出接口、SDRAM控制器以及可与ARM无缝连接的外部主机接口。外部主机接口包括两个寄存器(状态寄存器和命令寄存器)以及4个FIFO队列(发送/接受 FIFO和复用/解复用FIFO),外部CPU通过访问上述寄存器和FIFO实现对AT2042的参数配置和压缩码流的读写。

由于系统需要完成AT2042、视频A/D转换芯片的控制和驱动,并实现网络通信、压缩视频存储、云台控制等多任务处理,选择基于ARM920T的SoC芯片S3C2410作为主控芯片,采用开源的,可裁减的Linux操作系统,能较好地满足系统需求。S3C2410处理器具有3路UART,4路DMA,RTC,SD/MMC接口、I2C总线接口、2个USB主机接口、2路SPI等片内外设,非常便于外围设备扩展。其低廉的价格、丰富的外设资源,使得这款CPU得到了广泛应用,针对此处理器而移植的Linux OS也比较成熟,有利于系统运行的可靠性和稳定性。

DTU-800X是Anydata.NET公司最新的一款小巧精密型的CDMA无线数据模块,具有完整的CDMA数字调制/解调系统,并具有数据通信速率最高可达153 Kbit/s的RS-232串口,该串行接口具有一个512 Kbit/s的发送和接收FIFO。

3 软件系统设计

无线视频监控终端的软件架构以嵌入式Linux为操作系统构建,主要包括Bootloader,Linux内核、根文件系统、驱动程序、应用程序等几个部分。Linux内核采用了稳定的Linux Kernel 2.4.18版本,并针对所设计的硬件系统进行了移植和裁减;采用CRAMFS作为根文件系统,将文件数据以压缩形式存储于Flash中,在需要运行时解压缩到内存;驱动程序包括AT2042,Flash,串口,I2C,USB等外设的驱动及API,其中AT2042驱动作为模块在运行时加载到内核中,其他外设驱动直接编译到内核中。针对S3C2410平台的嵌入式Linux操作系统移植,根文件系统设计及常用外设的驱动程序设计都比较成熟,接下来,将重点介绍Bootloader,AT2042驱动程序以及应用程序设计。

3.1 Bootloader

Bootloader完成系统的启动加载任务,包括硬件系统的初始化和系统配置工作等,具体包括:初始化CPU、内存,驱动Flash,I2C、串口,通过I2C对视频A/D转换芯片TVP5150初始化,从Flash中下载AT2042固件并初始化AT2042,设置内核启动参数等。在此阶段,关键是从Flash中加载AT2042固件并初始化AT2042为双通道视频编码模式,而后设置两个编码通道的参数(图像分辨率、帧率、码率控制方式、比特率等),上述过程是通过访问AT2042外部主机接口实现的。首先通过写命令寄存器使AT2042实现对其SDRAM控制,而后从Flash中读取固件代码并通过循环写解复用FIFO完成固件加载,通过写配置指令及相应参数到接收FIFO完成AT2042的初始化。

3.2 AT2042驱动程序

实现对AT2042的初始化,音视频压缩码流的读写,编解码参数设置等。Linux将设备分为最基本的两大类:字符设备和块设备。字符设备是以单个字节为单位进行顺序读写操作,通常不用缓冲,因此,可把AT2042定义为字符设备。Linux为所有文件,包括设备文件,提供统一的操作函数接口,由结构体struct file_operations定义。为便于修改和更新,将AT2042驱动程序作为独立的模块,在Linux系统运行时动态加载到内核中。通过module_init(at2042_init_module)调用来实现驱动模块的加载;此外,还进行AT2042的I/O端口地址映射及所需内核存储空间的动态分配等。在模块被卸载时,module_exit(at2042_cleanup_module)被调用,at2042_cleanup_module()函数通过调用unregister_chrdev()内核函数取消注册的驱动程序、取消IO端口地址映射以及释放存储空间等。

3.3 应用程序

根据系统需求,应用程序主要实现如下功能:控制AT2042并读取双通道的压缩视频流,将基本通道压缩视频流存储到移动硬盘或SD卡,同时将次级通道压缩视频流打包通过CDMA网络传输(CDMA网络拨号接入);调节AT2042的两路编码通道的编码参数,以及云台控制等。采用多线程技术,在主程序中调用open()函数打开AT2042,创建压缩视频存储线程、压缩视频网络传输线程、云台控制及编码参数设置线程、网络拨号接入及维护线程等,接着启动AT2042视频编码并读取和缓存压缩视频流。

调用read()函数读取压缩视频流,对每一帧的压缩数据添加帧号、帧类型、帧长等头信息,根据通道编号将两路压缩视频数据分别暂存到相应的缓存区中,每个缓存区可存储一个GOP(图像组)的压缩数据。由于压缩视频存储线程或网络传输线程也要访问上述缓存区,因此,采用互斥体以避免对缓存区域访问时出现竞态问题。

压缩视频网络传输线程负责将次级编码通道的压缩码流通过CDMAl×信道传输到监控中心,采用RTP/UDP/IPIP网络传输协议模型和socket编程技术实现压缩视频流的实时传输。采用支持Linux平台的RTP库JRTPLIB进行实时流媒体编程:首先生成RTPSession类的一个实例来表示此次RTP会话,并调用Create()方法对其进行初始化操作;在RTP会话成功建立后,需设置好数据发送的目标地址(即为监控中心),调用RTPSession类的SendPacket()方法向目标地址发送压缩视频数据报;作为RTCP数据报的接收端,调用PollData()方法接收RTCP数据报,根据RTCP数据报承载的关于数据传输质量的反馈信息调整发送策略。

压缩视频存储线程负责移动硬盘检测、挂载、存储空间检测以及分段存储基本编码通道的压缩码流。通常需要进行以下检测工作:内核是否包含USB存储设备驱动、移动硬盘以VFAT格式挂载到特定目录以及可用磁盘空间等。为便于按时段检索录像,建立年/月/日目录结构,并按时分秒命名文件,分段录像文件间隔可灵活设定;当无可用空间时,自动覆盖最早的录像文件。

云台控制及编码参数设置线程通过TCP/IP协议实现云台PTZ参数、基本通道和次级通道编码参数的设置。网络拨号接入及维护线程利用点对点协议 (PPP)实现CDMA网络的拨号接入,并通过定时向监控中心发送心跳数据的方法来维护建立的网络连接。拨号成功后获得动态IP地址,通过发送心跳数据(包括设备ID及当前IP地址等信息)向监控中心登陆,以告知在线状态及IP地址。

4 测试结果与结论

首先是对CDMAl×信道传输的次级编码通道码流进行解码重建的图像质量的测试。图3是从解码视频中截取的图像(缩小显示),分别对应两种典型的应用场景,编码参数为CIF分辨率,CBR,8f/s,码率约为60 Kbit/s。其中:图3a为在杭温高速路上采用车载方式由终端传输的视频截取帧,测试时车速保持80~100 km/h,系统工作正常,尽管车辆颠簸引起摄像机颤动,图像显示效果良好,在跟踪特定车辆时,较清晰地采集到了“浙JE1132”车牌号信息,利用此设备可跟踪监视可疑车辆;图3b为采用广角摄像头对繁华城市路口的进行全景监控的图像,基本能展现出车辆、行人等的行为和交通状况。

其次是对次级编码通道压缩视频传输实时性的测试。针对图3b所示场景,在CBR、码率设为60 Kbit/s下,对QCIF/CIF分辨率下的测试结果如表1所示。可见,QCIF分辨率下传输帧率较高,且压缩码流平均码率也较高。主要原因是,与CIF相比,QCIF分辨率的I帧、P帧占用比特数较小,分割的数据包也较少,丢包或差错对一帧的重建影响较小,因此帧率较高。但是测试中发现,由于QCIF分辨率较低,通常需要插值放大到CIF显示,图像质量稍差些。

此外,对基本编码通道的视频录像质量和存储空间占用进行了测试。当基本通道的编码参数为D1分辨率、VBR,25f/s、质量等级为3时,录像回放的图像质量可接近DVD画质,有利于事后的视频分析处理和取证工作。每小时录像平均占用存储空间为:在图3a场景下约450~700 Mbyte;在图3b场景下约为300~500 Mbyte。

以上测试结果表明,此CDMA无线视频监控终端非常适于车载(防暴监控车、公安消防车)、灾害或突发事件现场的远程无线视频监控应用。笔者相信,随着无线网络带宽的逐步提高,无线视频监控终端将提供更好的监控性能,对灾害或突发事件的应急处理将有不可替代的价值,应用前景也将更加广阔。

相关推荐

视频监控高清成像芯片发展现状及前景

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20

波士顿爆炸案刺激视频监控支出增长

视频监控  安防电子  2013-05-31

基于嵌入式系统的数据记录分析仪的硬件设计

S3C2410  以太网  2011-08-23

TI高性能DSP实现视频监控差异化应用

TI  视频监控  2011-08-10

对于动车追尾事故 五家设备商均称系统运行正常

在线研讨会
焦点