何海波
(江苏自动化研究所,江苏 连云港 222061)
基于i.MX35的挖掘机视频监控系统设计
何海波
(江苏自动化研究所,江苏 连云港 222061)
挖掘机等工程机械需要对施工现场的视觉盲区进行视频监控,确保作业安全。为了满足安全需求,研制了基于i.MX35的挖掘机视频监控系统,使用i.MX35作为视频主处理器、ADV7180作为NTSC/PAL摄像头输出视频的解码芯片、eMMC或PATA接口固态硬盘作为视频存储介质,实现对挖掘机等工程机械作业现场的视频监控、记录与回放等功能,能够显著提高生产效率、保证作业安全,可以广泛应用于挖掘机等工程机械的控制系统中。
i.MX35;视频采集;ADV7180;V4L2
随着计算机技术和集成电路技术的不断进步,视频采集与处理技术取得了长足的发展。现在各行各业对安全生产日益重视,视频监控技术已经被广泛应用于各种安全监控场合。挖掘机是功能典型、结构复杂的工程机械,被广泛应用于交通基础设施、工程建筑等行业,并向着大型化、复杂化的方向不断发展。为了减少因视角盲区、视线频繁转换等原因造成操作失误而导致的人员伤亡和财产损失,对作业现场进行实时视频监控已经成为新一代挖掘机的迫切需求[1-2]。
针对挖掘机等工程机械需要对作业现场进行视频监控的需求,设计了一种以Freescale公司高性能多媒体应用处理器i.MX35为核心的视频监控系统,通过视频解码芯片ADV7180对NTSC/PAL制式摄像头输出的模拟视频信号进行解码,并将解码后的数字信号通过i.MX35的CSI(Camera Sensing Interface)接口读入CPU,完成视频信号的实时显示、记录与存储,从而实现对作业现场的实时视频监控,提高生产效率、保证作业安全。
挖掘机视频监控系统主要由主处理器模块、电源管理模块、存储器模块、视频采集模块、显示模块和通信接口模块等功能模块组成,其系统总体原理框图如图1所示。
主处理模块由i.MX35主处理器和晶振、启动配置、上电复位等外围电路构成,负责采集ADV7180输出的YUV信号,转换后显示在LCD显示屏上,并进行编码和压缩后,记录在板载eMMC或PATA接口的SSD/CF等存储介质中。电源管理模块将车载蓄电池输出的12/24 V电压转换为+5 V,+3.3 V,+1.8 V等系统所需的各种内部电压。存储器模块通过i.MX35的EMI接口外扩DDR2 SDRAM和NAND Flash存储器,前者用作系统RAM,后者用作程序存储器。视频采集模块由ADV7180将摄像头输出的NTSC/PAL制式的模拟信号转换为YUV信号,视频监控系统包含2路视频输入,通过I2C总线选择其中一路作为当前输入信号。显示模块将i.MX35输出的TTL电平的视频信号转换为LVDS信号后,显示在LVDS液晶显示屏上,PWM用于控制显示亮度,GPIO用于控制背光的开/关。通信接口模块主要包括RS-232和以太网接口,用于应用程序的开发与调试。
图1 视频监控系统原理框图
2.1 i.MX35多媒体应用处理器
i.MX35是Freescale公司基于ARM1136JF-S内核的高性能多媒体应用处理器[3],主频高达532 MHz,拥有16 kbyte的一级指令缓存、16 kbyte的一级数据缓存和128 kbyte的二级缓存,集成了高性价比的DDR2控制器、矢量图形硬件加速器(GPU)、独立图像处理单元(IPU)、矢量浮点运算协处理器(VFP)以及基于RISC的DMA控制器(SDMA)等,可以提供先进的图像和视频处理功能。i.MX35拥有丰富的外设资源,包括外部存储器接口(EMI)、数字摄像头接口(CSI)、高分辨率LCD控制器、eSDHC接口、并行ATA接口、10/100 Mbit/s自适应以太网控制器(FEC)、异步串行接口(UART)、I2C接口和GPIO等,极大地简化了视频监控系统的开发。
i.MX35的CSI接口可以从摄像头或TV解码器捕获数据,由IPU和GPU进行预处理,将YUV信号转换为RGB格式,输出到LCD显示屏上。i.MX35的LCD控制器经过优化并支持24位WVGA显示屏,可以为视频监控系统提供高分辨率的视频显示。IPU和GPU提供了强大的图像处理能力,包括色彩空间转换、2D图像加速、MPEG-4硬件编解码、混合图形层和视屏层等,可以最大限度降低CPU负荷,提高显示性能。视频监控系统对采集的视频图像进行压缩,以MPEG-4编码记录在板载eMMC或PATA接口的SSD/CF中,从而节省存储空间。
2.2 电源管理模块
电源管理模块比较复杂,需要将主机蓄电池的输出电压转换为i.MX35内部所需的多种供电电压,同时还要为LCD显示屏提供+12 V背光电源。根据挖掘机等工程机械的实际电源电路需求,视频监控系统的电源方案原理图如图2所示。
图2 电源电路原理框图
外部输入的9~32 V蓄电池电压首先通过LCT3789转换成+12 V电压,然后利用LTC3633的第一通道转换成+5 V电压,再由5 V电压分压得到+1.35 V和1.8 V电压;利用1.8 V电压使能LTC3633的第二通道的Enable引脚,从而延迟得到3.3 V电压,再由3.3 V电压使能RT9179输出,得到1.5 V电压。其中,LTC3789为Linear公司的buck-boost型开关电源芯片,输入电压范围为4~38 V,转换效率最高可达98%,可稳定输出12 V/5 A。LTC3633A-2是Linear公司的双通道开关电源,每个通道可以输出3 A的电流,可以用来输出+5 V和+3.3 V电压。RT8010是RICHTEK公司的产品,输入范围从2.5~5.5 V,最大可输出1 A的电流,分别用来输出1.8 V和1.35 V电压。RT9179输入电压范围3~5.5 V,输出电流500 mA,用来为i.MX35处理器的PVDD和MVDD供电。
2.3 ADV7180视频转换电路
工程机械中通常使用NTSL/PAL制式的模拟摄像头,其输出的模拟信号必须经过模数转换后才能输入至i.MX35的IPU进行后续处理。ADV7180是Analog Devices公司推出一款10位、4倍过采样的高性能视频图像解码器[4-7],最多支持6路复合视频信号复用输入,可以自动检测输入信号的编码格式,将NTSC/PAL制式的模拟视频信号转换成i.MX35的CSI接口支持的与ITU-R BT.656标准兼容的16位分量视频图像数字信号(YCbCr4∶2∶2)。ADV7180视频转换电路的电原理图如图3所示。
ADV7180的视频像素输出引脚P[15:0]连接到i.MX35的CSI接口的CSI_D[15:0],LLC、VS/FIELD和HS引脚分别连接到CSI_PIXCLK、CSI_VSYNC和CSI_HSYNC。本设计只使用了2个输入通道,未使用的通道由0.1 μF电容接地。i.MX35通过I2C访问ADV7180的控制和状态寄存器,ALSB引脚选择ADV7180在I2C总线上的设备地址,设计中ALSB下拉到GND,选择的I2C设备地址为0x20。i.MX35通过GPIO控制ADV7180的复位引脚(RESET#)和掉电引脚(PWRDWN#)。i.MX35的CSI不需要ADV7180的中断输出,因而中断输出引脚(INTRQ#)直接上拉到3.3 V电源。ADV7180的输入ADC将1.0 V模拟输入量化为10位数字量,量化结果可进行增益校正。设计中在ADV7180的输入引脚前添加电阻分压网络,以将输入视频信号限制在ADC的有效范围内。
图3 ADV7180视频转换电路原理图
ADV7180对PCB布线有特殊的要求[4],模拟输入信号的长度应尽可能短,并尽量保持75 Ω的走线阻抗以减少信号反射;需要在每个电源引脚和电源层之间放置0.1 μF和10 nF的去耦电容,并放置在和ADV7180同一层,走线长度尽可能短(不应超过0.5 cm);放置一个外部PLL环路滤波器到ELPF引脚,并保持与ADV7180同一层,且走线尽可能短;为了将每个数字输出信号的驱动限制在15 pF以内,走线应尽可能短并减少过孔,可以在数字输出信号上靠近ADV7180处添加30~50 Ω的串联电阻以抑制反射、减少EMI并减少芯片内的电流尖峰;VREFN与VREFP之间的电路以及晶振电路的走线也应该足够短,且与ADV7180在同一层。
2.4 视频存储电路
视频存储电路由板载eMMC和通过PATA接口外扩的SSD/CF等组成,其电原理图如图4所示。挖掘机等工程机械工况较为恶劣,视频存储电路需要综合考虑抗干扰、抗振动和温度等级等要求。设计中首选Micron公司的32 Gbyte大容量工业级eMMC芯片MTFC32GJDDQ作为主要存储介质,并使用经过加固处理的PATA接口外扩SSD/CF作为辅助存储介质,用于存储经过MPEG-4编码压缩的视频数据。eMMC通过i.MX35的eSDHC接口扩展,使用8位数据线,时钟频率为52 MHz,提供高达416 Mbit/s的数据传输率。视频数据仅在特殊工况时才需要进行记录,配合MPEG-4编码压缩算法,32 Gbyte容量能够基本满足视频监控系统数据存储的需求,在需要更大容量的情形则可以使用外扩的SSD/CF等存储介质。
3.1 软件总体架构
视频监控系统的软件基于Linux的V4L2架构开发,由设备驱动层、操作系统接口层和应用层等部分构成,其总体架构如图5所示。V4L2(Video for Linux 2,V4L第二版)是Linux下广泛使用的一套视频驱动开发框架[8-10],定义了Linux下视频驱动的标准编程接口(API),使得应用程序可以使用统一的API访问不同的视频设备,从而简化驱动程序和应用程序的开发。V4L2规范可以支持多种视频设备,提供了视频采集、视频输出、视频覆盖/预览、视频输出覆盖、编解码等接口。视频监控系统需要处理视频的采集、输出覆盖和编解码等,基于V4L2进行软件开发可以降低开发难度,节约开发时间,并提高了系统的稳定性。
设备层驱动程序的开发较为复杂,需要在i.MX35的官方Linux BSP开发包的基础上,根据视频监控系统的硬件情况进行移植与适配。视频监控应用程序的开发相对简单,通过Linux虚拟文件系统接口对摄像头、帧缓冲区和存储设备进行访问,即可完成视频的采集、存储与回放。
图4 视频存储电路原理图
图5 视频监控系统的软件框架图
3.2 IPU驱动程序设计
IPU用于完成视频和图像的处理,并实现与视频输入设备和显示输出设备的接口。IPU驱动程序由设备驱动和底层公共例程库两部分组成,设备驱动包括帧缓冲区设备驱动、V4L2捕获设备驱动和V4L2输出设备驱动,底层公共例程库为设备驱动提供IPU硬件寄存器的访问接口。IPU的帧缓冲区设备驱动通过IDMA从帧缓冲区内存读取像素数据并发送给LCD显示器。帧缓冲区设备对图形硬件的显存进行抽象,允许应用程序通过“/dev/fb*”访问硬件显存,而不需要知道底层硬件寄存器细节。视频监控系统通过i.MX35的SDC控制同步LCD显示屏,IPU帧缓冲区驱动实现了前景和背景两个帧缓冲区设备,其中背景用于一般图形显示,前景用于摄像头的视频显示。V4L2捕获设备驱动包括两个接口,捕获接口使用IPU的预处理ENC通道来记录YCrCb视频流,覆盖接口使用后处理VF通道直接将预览视频显示在SDC的前景上而无需CPU干预。V4L2输出设备驱动使用IPU后处理例程来处理视频输出,驱动实现了标准V4L2输出设备API。i.MX35的官方Linux BSP已经包含了完善的IPU驱动,设计中需要在板级文件中添加相应的平台设备,配置LCD时序参数,并在内核配置中添加相应的IPU驱动程序。
3.3 ADV7180驱动程序设计
ADV7180作为图像传感器(Camera Sensor)设备挂接到V4L2子系统,V4L2通过ioctl回调例程对其进行访问。视频监控系统包含2路视频输入,分别连接到AIN1和AIN4,由ADV7180的输入控制寄存器(地址为0x00)的INSEL[3:0]选择输入通道和视频格式。INSEL[3:0]配置为0000b和0011b时分别选择复合视频信号(CVBS)AIN1和AIN4,配置为0110b时AIN1和AIN4共同组成S-Video输入。ADV7180内部集成了模拟多路器,以允许同时连接多个视频信号到解码器,驱动需要根据所选择的视频输入配置ADC切换寄存器1和2(地址分别为0xC3、0xC4)。视频监控系统使用了16位CSI接口,驱动程序需要通过ADV7180的输出控制寄存器(地址为0x03)将OF_SEL[3:0]配置为0010b。另外,ADV7180的其他寄存器也需要配置为合适的值[4,6]。
驱动程序通过I2C访问ADV7180的控制和状态寄存器,并通过GPIO控制ADV7180的复位引脚和掉电引脚。在板级文件中需要添加ADV7180的平台设备,相应的代码片断如下:
static void adv7180_pwrdn(int pwrdn){
党的十八届三中全会把推进国家治理体系和治理能力现代化作为全面深化改革的总目标提出来,表明我们党对社会主义现代化的认识提升到了一个新的高度,这必将极大地推动我国的治理体系向着制度化、规范化、程序化、科学化迈进。从“管理”到“治理”,是一次政府、市场、社会从配置的结构性变化引发现实的功能性变化再到民主参与的主体性变化的制度型塑,无论是从思想理念、方式方法,还是从技术手段上都对社会治理创新提出了全新的挑战与要求,需要我们从更宽广宏大的视野加以审视把握。
…
}
static void adv7180_reset(void){
…
}
static struct mxc_tvin_platform_data adv7180_data={
…
.pwdn=adv7180_pwrdn, //ADV7180的掉电控制
};
static struct i2c_board_info jrcd570_camera={
.type="adv7180",
.addr=0x20, //对应的l2C读,写地址分别为0x41和0x40
.platform_data=(void*)&adv7180_data,//平台设备私有数据
};
static viod_init jrcd570_board_init(void){
…
i2c_register_board_info(1,&jrcd570_camera,1);//注册平台设备
…
}
3.4 应用程序设计
Linux中所有外设都被视作特殊的“设备文件”,视频监控系统的应用程序可以像访问普通文件一样通过open、ioctl、read和write等Linux系统调用对视频设备“/dev/video*”和显示设备“/dev/fb*”进行操作,实现视频的采集、显示、记录与回放。
视频采集与显示程序的流程如图6所示。应用程序首先打开用于显示视频的帧缓冲区设备,获取配置信息后,调整相关参数,设置显示窗口的大小、ALPHA混合值和色键(Color Key)等信息。然后打开视频设备,查询设备能力,选择视频输入,设置视频数据格式、视频标准、视频裁减窗口大小以及视频的亮度、饱和度、色平衡等参数。视频设备配置完成后,应用程序就可以根据需要使用名为VIDIOC_OVERLAY的ioctl启动或停止视频的采集。视频监控系统的IPU驱动使用覆盖(Overlay)方式直接在SDC的前景帧缓冲区设备上显示视频图像,显示操作完全在内核驱动中完成,无须像其他V4L2应用程序那样先读取采集结果、进行格式转换、然后再输出到帧缓冲区设备,因而CPU占用率更低、视频显示更流畅、编程效率也更高。
图6 视频采集与显示程序的流程图
视频的记录与回放比较简单,视频监控系统的IPU驱动实现了特殊的接口,用于简化应用程序编程。当需要进行视频记录时,应用程序通过ioctl系统调用设置用于接收视频数据的缓冲区队列,然后通过名为VIDIOC_CAPTURE的ioctl启动虚拟捕获。IPU驱动在采集与显示视频的同时,将显示内容通过硬件编码后由IDMA拷贝到接收缓冲区,完成缓冲区填充时再通知应用程序将其存储到文件中。回放视频时,应用程序将视频从文件中读入数据缓冲区,再由IPU驱动进行解码并直接以覆盖方式显示在SDC的前景帧缓冲区设备上。
本设计实现了一种基于i.MX35的挖掘机视频监控系统,详细介绍了系统的软硬件设计过程。在硬件方面,设计了适合于工程机械的i.MX35电源供电方案,并给出了详细的ADV7180硬件设计方法。在软件方面,基于Linux V4L2框架,充分利用i.MX35先进的图像和视频处理功能,将视频采集与显示完美的结合起来,使用IPU直接覆盖方式实现高效的视频显示;并利用硬件加速功能进行视频编解码和数据压缩,配合大容量高速存储器介质,实现了视频图像的实时记录与回放。设计的视频监控系统具有启动速度快、分辨率高、存储容量大、图像清晰、性能稳定可靠等优点,能够满足挖掘机等工程机械对作业现场进行视频安全监控的需求,显著提高生产效率、保证作业安全,可以广泛应用于挖掘机等工程机械的控制系统中。
[1]罗文星,郭刚.基于WLAN的挖掘机作业情况视频监控系统的设计与实现[J].机械制造与自动化,2012,41(3):110-112.
[2]徐殿魁.工程车辆视频处理与图形终端硬件平台的设计与实现[D].南京:南京理工大学,2010.
[3]Freescale Semiconductor.i.MX35 reference manual Rev.3[EB/OL].[2014-09-30].www.freescale.com.
[4]Analog Devices, Inc.ADV7180 datasheet,Rev.I[EB/OL].[2014-08-30].www.analog.com.
[5]蔺志强,孟令军,彭晴晴.基于ADV7180的视频图像实时采集系统的设计[J].电视技术,2011,35(17):36-38.
[6]吴君钦,宋健,刘昊.基于S3C6410和ADV7180的嵌入式视频采集系统设计与实现[J].计算机工程与科学,2012,34(12): 115-119.
[7]廖诤,张攀,颜悦.ADV7180在图像采集嵌入式系统中的应用[J].电视技术,2012,36(S2):231-233.
[8]Freescale Semiconductor.i.MX35 PDK Linux reference manual [EB/OL].[2014-08-30].www.freescale.com.
[9]黄俊伟,巴义.基于V4I2移动视频监控系统的研究与设计[J].电视技术,2012,36(17):159-162.
[10]徐家,陈奇.基于V4L2的视频设备驱动开发[J].计算机工程与设计, 2010,31(16):3569-3572.
Design of Video Surveillance System for Excavators Based on i.MX35
HE Haibo
(JiangsuAutomationResearchInstitute,JiangsuLianyungang222061,China)
Excavators and other construction machineries need field video monitoring to eliminate blind spots and ensure safe operation while they are working.To meet the security needs of excavators, the design of a video surveillance system based on i.MX35 is introduced, which uses i.MX35 as the main processor, ADV7180 as the decoder for video output of NTSC/PAL cameras, and eMMC or SSD with PATA interface as the video storage medium.The designed system has the capabilities of video monitoring, recording and playing back.It can be widely used in the control systems of excavators to significantly improve productivity and ensure safety.
i.MX35; video capture; ADV7180; V4L2
国家自然科学基金项目(61303045);江苏省自然科学基金项目(BK2012237)
TP23
A
10.16280/j.videoe.2015.07.010
2014-09-30
【本文献信息】何海波.基于i.MX35的挖掘机视频监控系统设计[J].电视技术,2015,39(7).
何海波(1981— ),硕士,工程师,主要从事工程机械控制器与显示终端的研究与开发工作。
责任编辑:闫雯雯