logo资料库

基于Linux的ARM9多路视频监控系统设计.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
2 研 究 与 开 发 2009 年 1 月 第 28 卷  第 1 期 基于 Linux 的 ARM9 多路视频监控系统设计 袁  敏1 ,2  张仁杰1  邵  娜1  李琮琮1  姚翠亚1 (1. 上海理工大学光电学院  上海  200093 ; 2. 盐城工学院信息工程学院  盐城  224003) 摘  要 : 随着嵌入式处理器和 Linux 的广泛应用 ,视频监控向着嵌入式发展已经成为一种趋势 。但由于视频监控硬件设施昂 贵 ,成本较高 ,不能普遍使用 。本文提出一种低成本高性能的方案 。本设计实现基于 S3C2410 的视频多路监控系统 ,采用 ARM9 处理器为开发硬件平台 ,ARM Linux 为操作系统 ,网眼 V2000 摄像头为视频图像采集设备 ,通过局域网或 Internet 实 现远程的多路视频监控 。用户通过监控界面 ,可实时监控远程的多路视频图像 。该系统具有开发成本低 、使用方便 、性能高 等特点 。 关键词 :嵌入式系统 ; Linux ; 视频监控 ;视频采集 中图分类号 : TP277   文献标识码 : A ARM9 multi channel video monitoring system design based on Linux Yuan Min1 ,2  Zhang Renjie1  Shao Na1  Li Congcong1  Yao Cuiya1 (1. Optical and Electronic Information Engineering College ,University of Shanghai for Science and Technology , Shanghai 200093 ; 2. Institute of Information Engineering , Yancheng Institute of Technology , Yancheng 224003) Abstract : Wit h t he widespread application of embedded processors and Linux ,t he embedded develop ment of video moni toring has been a trend. However , due to expensive video monitoring hardware and high cost ,it cannot be universally used. In t his paper ,a proposal wit h t he characteristics of low cost and high performance is p ut forward. It has been a pos sibility to achieve t he remote video monitoring ,video telephony and video conferencing networks wit h t he use of t he em bedded system. The design is conducted based on t he S3C2410 multi channel video monitoring system wit h ARM9 micro Linux as t he operating system and Web Eye V2000 camera as t he video image processor as t he hardware platform ,ARM channel video monitoring system t hrough L AN or t he Internet . acquisition equip ment , by achieving the remote multi Through interface monitoring ,users can f ulfill t he real time remote monitoring of multi channel video images. The system has t he advantages of low cost ,easy use ,high performance and so on. Keywords : embedded system ; Linux ; video monitoring ; video acquisition 0  引  言 随着计算机技术 、网络技术的快速发展 ,人类进入到 了一个全新的信息时代 ,为了获得更舒适的生活品质和更 安全的生活环境 ,人们对信息的需求量越来越大 。监控是 人们获取信息的一种重要方式[ 1 ] ,在获取信息的途径中 , 视频是携带信息量最大的一种 ,因此视频监控系统也成为 了监控系统中最重要的组成部分之一 。 嵌入式系统以体积小 、实时性强 、性价比高 、稳定性好 等特点在社会的各个领域中得到了广泛应用 。本文设计 的嵌入式系统以 Linux 操作系统和 ARM9 硬件平台为核 心 ,实现了对多个现场的实时监控 ,并通过局域网或 In ternet 把视频图像传输到主机端 ,以实现分析 、存储和显 示等功能 。 1  系统总体设计 为实现远程监控 ,实时获得视频数据是一个重要环 节。系统在基于 S3C2410 的 ARM9 芯片和嵌入式 Linux 系统平台[ 2 ] ,采用 USB 接口的摄像头捕捉视频 ,通过 USB 接口将数据传输到 ARM 开发板 ,由 ARM 开发板上的视 频采集 、处理模块进行处理 ,将原始的视频信息处理成可 传输 、存储、再处理或显示的视频信号 ,再利用网络传输将 视频数据传输至 PC ,实现视频监视功能。系统总体结构 设计图如图 1 所示。  作者简介 : 袁敏 ,硕士 ,主要从事测试信号获取与处理方面的研究 。 —24— 中国科技核心期刊 © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
2 2009 年 1 月 第 28 卷  第 1 期 图 1  系统总体设计框图   本系统选取 Q T2410 开发板作为系统设计的硬件平 台 。该开发板分为核心板和底板两部分 :核心板包括一片 ARM920 T 核心的 S3C2410 嵌入式微处理芯片 ,32M ×2 的 SDRAM , 64M 的 NAND Flash 以 及 2M 的 NOR Flash ,核心板通过 144Pin 的接口与底板相连接 ; 底板上 主要包括一块 CS8900A 10M 以太网控制芯片和其对应的 RJ 45 接口 ,MAX3232 串口接口芯片和两个 RS232 接口、 一个 SD/ SDIO 接口 、一个 A TA 设备接口、一个液晶显示 屏接口 ,以及常用 I/ O 接口电平转换芯片[ 3 ] 。 S3C2410 微 处 理 器 是 一 款 由 Samsung Electronics Co ,Ltd 为手持设备设计的低功耗、高度集成的微处理器 , 采用 0. 18μm 制造工艺的 32 位微控制器 。该处理器具有 较高的集成度 ,简化了应用系统的硬件设计 ,提高了系统 的可靠性。 2  系统软硬件设计 2. 1  操作系统的定制 设计中宿主机 PC 上使用的是 Redhat 社区的 Fedora 4 的发行版 ,内核版本为 2. 6. 11. 8 ,其自带了 3. 4 版本的 gcc ,以及 g + + 等编译器 ,开发板上烧入的 ARM Linux 内核为经过定制编译的 2. 4. 18 rmk2 标准 Linux 内核 ,宿 主机上使用的交叉编译工具链为 2. 95. 3 的版本 。 ARM Linux 操作系统作为系统的开发 、运行平台较 其他嵌入式操作系统有以下优势 : (1) Linux 内核的所有源代码都是开放的 ,同时由于 有 GPL ( GNU general public license) 的控制 ,Linux 下开 发的软件兼容性非常高 ; (2) 现在 Linux 系统己经被移植到多种硬件平台 ,支 持包括 X86 、Alp ha 、MIPS、Power PC、ARM 、IA64 、S/ 390 、 Super H 等现有的绝大部分微处理器体系结构 ; (3) 微内核模块化体系结构。一般情况下一个具备完整 网络协议栈和支持基本文件系统的嵌入式 Linux 内核 image 只有几百 k 大小 ,完全适合用于资源有限的嵌入式平台 ; (4) Linux 操作系统最突出的功能是对网络的支持 , 基本上所有的网络协议都可以在 Linux 上找到 ,在针对嵌 入式的应用中 ,ARM Linux 同样可以通过定制内核全面 支持各种网络协议[ 4 ] 。 2. 2  视频采集模块 USB 摄像头选用网眼公司的 V2000 产品 , 采用了 研 究 与 开 发 OV511 芯片 ,镜头 (L ENS) 采用 CMOS ,相比 CCD 具有反 应快 、成本低等特点 ,其图像传感器 (SENSOR) 为 OV7620 和数字信号处理芯片(DSP) 为 OV511 ,一般 Linux 内核都 自带这两款芯片的驱动程序 ,方便移植 。 OV511 驱动加载有两种方式 :静态加载和动态加载 。 动态方式与静态方式相比 ,测试时要简单的多 。不需要下 载整个内核 ,只需通过 nf s ,加载驱动即可测试 。测试成功 后便可以编译进内核。 本设计种选择动态加载 ,步骤如下 : (1) 在 arm linux 的 kernel 目录下 make menuconfig 。 (2) 首先选择 Multimedia device - > 下的 Video for linux 。加载 video4linux 模块 ,为视频采集设备提供编程 接口 ; (3) 然后在 usb support - > 目录下选择 support for usb 和 usb camera ov511 support ,从而在内核中加入了对 采用 OV511 接口芯片的 USB 数字摄像头的驱动支持。 (4) 保存配置退出 。 (5) make dep ;make zImage 便生成带有 ov511 驱动的 内核 。 接下来 ,通过 uboot 将内核烧至 flash 。将摄像头插 上 ,系统就会提示发现摄像头 ov511 ,这说明驱动正常 ,驱 动加载成功 。 以上是整个系统软件的“底层”工作部分 。接下来 ,可 以利用 mvc 程序实现图像的获取 ,并且实现图像比较判 断程序 ,只有当图像发生变换以后 ,系统才会自动将现场 情况上报给监控主机。 mvc 程序中主要功能函数有图像获取、jpeg 压缩 、图 像处理 。图像获取后放置在当前目录. / img 下 ,图像名称 为 video img. jpeg ,以便于服务器程序读取。视频采集流 程图如图 2 所示 。 图 2  视频采集流程图 (p :图像变化程度) © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 中国科技核心期刊 —34—
2 2 2 2009 年 1 月 第 28 卷  第 1 期 个场景 。9 个模块的实现是通过在一个 GroupBox 中加入 9 个 Frame ,每一个 Frame 显示一路信号。 研 究 与 开 发 2. 3  网络传输模块 该模块用 linux 下的 socket 编程实现 。在这里 ,实现 了两段程序 ,分别运行在板子上和 PC 上 。在开发板上运 行服务端程序 ,在 PC 上运行客户端程序 ,使开发板一直 处于监听状态 ,PC 可以主动连接任一开发板 ,非常灵活。 开发板上的服务程序不停读取 mvc 抓取的图片 ,并传送 到 PC 上 。PC 客户端每隔一定的时间接收并保存 ,从而 实现将前一部分保存的 jpg 文件每隔 40 ms 就传送到 PC 上一次 。 具体实现过程为 :首先 ,客户端发送“开始接收”(recv _begin) 标志 ,服务器端接收到此标志后开始发送“开始发 送”( send_begin) 标志 ,告诉客户端可以接收 ,然后便开始 发送和接收过程 。等到服务器端发送完一个完整的图片 文件后 ,再发送一个“发送完毕”( send_end) 标志 ,服务器 端接收到 send_end 标志后停止接收。至此 ,一个完整的 传送过程完毕 。接着 ,再循环此过程 。上述标志主要用来 解决传输同步问题 。 此外 ,客户端程序中还有一个 cli_pt hread () 函数 ,用 来产生一个接收线程[ 5 ] 。当要执行一个连接时 ,Q T 调用 cli_pt hread () 函数 ,产生一个接收线程 client () ,从而可以 同时建立几个连接来监控 。 2. 4  监控显示模块 该模块把各个 ARM9 开发板读取的数据在监控终端 显示出来。本系统是一个实时监控系统 ,只要以较快的速 度显示变化的图片就可以实时显示现场情况 ,采取每秒显 示 25 帧图片来实现。该模块是通过 Qt 来实现的 , 在 Qt3. 1 中提供了很多类 ,合理利用这些类就可以实现图片 的显示 。图像显示灵活可以随着串口的改变按比例变化。 流程图如图 3 所示 。 图 3  监控显示模块流程图 首先 ,建立界面 ,通过继承 QWidget 类实现 Form1 。 在该类中安排各个板块 ,包括 IP 输入框及各种按钮 。最 大的部分是视频显示部分 ,分成 9 个屏幕 ,可以同时监控 9 其次 ,各种按钮及各个显示窗口是通过 Qt 提供的布 局类来实现的 。布局类最原始的类是 QLayout ,可将框架 分成一些有规律的单元 ,把一些窗口部件等放到指定的单 元中 。通过 Q GridLayout 网格布局 ,将一个窗口分割成网 格状 ,再把各个部件放到适当的格中[ 5 6 ] 。 最后是显示部分和网络部分的接口。在本设计中 ,网 络部分是通过 C 语言实现的 ,这会给实现多个连接带来一 定的困难 。因为 ,虽然 Qt 调用 C 语言函数是作为 extern 类型声明的 ,但是函数不是对象[ 7 8 ] 。作为一个视频显示 , 要长期连接 ,函数不容易退出 ,而此时下面的函数将全部 阻塞 。为了解决这个问题 ,利用 C 语言中的多线程 ,通过 建立不同的线程来实现多路传送 。 3  设计结果及展望 3. 1  本设计实现的功能 : 该系统实现了基于 ARM9 平台和 linux 操作系统 ,通 过 USB 摄像头采集现场实时视频信息 ,然后通过局域网 或 Internet 实现远程的多路视频监控 。整个系统具有稳 定可靠 、安装简便 、成本低廉等特点 。 3. 2  本设计的主要优势 : (1) 视频采集模块采用了 mvc 程序 ,可自动检测采集 的图像是否发生变化。如果没有变化 ,将不对文件进行重 复的写操作 ,减轻了开发板运行程序的压力 。 (2) mvc 程序做了适当的修改 ,每次采集图片后都保 存为同一个文件 ,解决了原来的 mvc 程序保存大量图片 而开发板上空间不足的问题 。 (3) PC 上视频接收 、显示模块采用 Qt 开发 ,具有优良 的跨平台特性 。 3. 3  本设计仍待解决的问题 没有进行 Linux 下通用 USB 摄像头驱动在 S3C2410 开发板上的开发移植 ,使得摄像头的选取具有局限性 。 3. 4  本设计结果的展望 该系统具有良好的扩展特性 ,通过对通用 USB 摄像 头数据输入驱动程序进行研究与编写 ,可加强系统的兼容 性与通用性 、稳定性 ;通过改进网络通信模块 ,可应用于各 种不同的场合进行监控 。 参 考 文 献 [ 1 ]  万加富. 网络监控原理与应用[ M ]. 北京 :机械工业出 版社 ,2003 :7 8. [ 2 ]  于明 ,范书瑞. ARM9 嵌入式系统设计与开发教程 [ M ]. 北京 :电子工业出版社 ,2006 :13 15. [ 3 ]  孙天泽 , 袁文菊. 嵌入式设计及 Linux 驱动开发指 南 ———基于 ARM9 处理器 [ M ]. 北京 :电子工业出版 社 ,2005 :28 30. (下转第 58 页) —44— 中国科技核心期刊 © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
2 2 2 2 2 2009 年 1 月 第 28 卷  第 1 期  “(VOL TA GE IN TO‘Reading’) ”,  “VOL TA GE MAX 30. 0 V  “CNX HI J 1_3 LO J 1_4”,“100020”) ; If ( Reading < 27| | Reading > 29) 打印错误信息 Remove (“DC - SIGNAL USIN G‘DC_POWER’”,  “CNX HI J 1_1 LO J 1_2”,“100030”) ; Remove (“DC - SIGNAL USIN G‘DC _ VOL TM E TER’”,  “CNX HI J 1_3 LO J 1_4”,“100040”) ; …… 从上面可以看出 ,测试程序描述的是信号特性 ,而与 具体所使用的仪器无关 。这也是面向信号的测试程序与 硬件无关的关键所在 。当更换了测试仪器后 ,只要修改系 统配置文件的信息 ,使测试程序中的虚拟资源指向新的仪 器和仪器驱动程序 ,而测试程序不需要任何改变 ,真正实 现了测试程序与仪器无关 。 在基本系统基础上 ,有关几个单位根据不同的测试需 求 ,增加了电台综合测试仪、专用激励源 、视频信号模拟 器 、矢量网络分析仪等测试仪器 ,已经完成了多套测试系 统的研制任务 ,很好地满足装备的维修需要 。 7  结   论 采用基本系统和专用系统的设计概念 ,应用 IVI 技术 和面向信号的编程技术 ,所构建的自动测试系统实现了测 试仪器的可互换性和测试程序的可移植性。工程实用表 明 ,所研制的综合检测设备具有很强的通用性 、易扩展性 和维护性 。 参 考 文 献 [ 1 ]  王勇. 现代测试技术[ M ]. 西安 :西安电子科技大学出 版社 ,2007. [ 2 ]  田雨. 电子系统通用测试平台的研究与实现[J ]. 测控 技术 ,2004 (10) :21 24. [ 3 ]  李行善. 自动测试系统集成技术[ M ]. 北京 :电子工业 出版社 ,2004. [ 4 ]  王建新. Labwindows/ CV I 测试技术及工程应用[ M ]. 北京 :化学工业出版社 ,2006. [ 5 ]  A TL AS 培训手册[ M ]. 应 用 天 地 试系统[J ]. 计算机测量与控制 ,2008 ,16 (6) :749 (上接第 41 页) [5 ]  郑先成 ,张晓斌. 基于以太网的大型飞机电气特性测 751. [6 ]  张丽花 ,马捷中 ,翟正军. 基于 VXI、PXI 和 L XI 的网 络化混 合 测 试 系 统 设 计 [ J ]. 计 算 机 测 量 与 控 制 , 2008 ,16 (8) :1059 1061. [7 ]  MU ELL ER J E. U sing L XI event s in A TS[ C ]. Sys tems Readiness Technology Conference , IEEE ,2006 , 9 :452 460. [ 8 ]  余力凡 ,张磊. 运载火箭测发控网络设计 [J ]. 航天控 制 ,2008 ,26 (4) :68 73. [ 9 ]  高鉴伟 ,陈家思. 浅谈计算机网络安全与防范技术 [J ]. 网络安全技术与应用 ,2008 ,9 :27 28. [ 10 ] 董高峰. 谈网络化测试技术 [J ]. 电子测试 ,2007 (1) : 22 25. (上接第 44 页) [4 ]  陈 赜. ARM9 嵌 入 式 技 术 及 Linux 高 级 实 践 教 程 2001 :315 325. [ M ]. 北京 :北京航空航天大学出版社 ,2005 :19 20. [ 7 ]  WALL K. GNU / Linux 编程指南 [ M ]. 王勇 ,译. 北 [5 ]  董永清. L INU X C 编程实践 [ M ]. 北京 :人民邮电出 京 :清华大学出版社 ,2002 :312 316. 版社 ,2008 :204 207. [ 8 ]  陈文智. 嵌入式系统开发原理与实践[ M ]. 北京 :清华 [6 ]  贾明. Linux 下的 C 编程[ M ]. 北京 :人民邮电出版社 , 大学出版社 ,2005 :205 208. —85— 中国科技核心期刊 © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
分享到:
收藏