当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于ARM的远程视频监控系统的设计

摘要:在ARM 微处理器平台上移植嵌入式Linux 操作系统,完成视频采集任务,并以服务器方式将图像发送到网络,从而实现远程监控。系统以ARM9 微处理器AT91RM9200 为主处理器,采用普通USB 摄像头作为图像采集设备,构建了一种可靠性好、价格低廉和使用方便的网络视频监控系统。

0 引言

在国内外市场上,视频监控主要有模拟视频监控和数字视频监控。前者技术发展已经非常成熟,在实际工程应用中得到广泛应用,但只适合于小范围的区域监控,而且系统的扩展能力差,已经不能适应社会发展的需要。后者又可分为基于PC 机的视频监控系统和基于嵌入式的视频监控系统。嵌入式视频监控系统与PC 视频监控系统相比,具有体积小、功耗低、性能稳定的特点,很适合于在银行、学校等公共场所的安全监控。采用USB 摄像头作为视频采集设备的嵌入式视频监控系统,更由于其价格低廉、通用性好且接口标准而备受青睐。

本系统基于 ARM9 处理器和嵌入式Linux 操作系统,利用USB 接口摄像头实现数字图像采集任务,同时直接将数据以视频服务器方式发送到网络,用户可以直接通过Web 浏览器进行远程实时监控。

1 硬件平台设计

1.1 微处理器模块

平台采用 ATMEL 公司的AT91RM9200 处理器,AT91RM9200 是基于ARM920T 内核的低功耗32 位RISC 微处理器,其主频为180MHz,处理速度快,功能强,性价比高,能很好满足嵌入式Linux 系统的需求,还集成了包括USB2.0 主机端口和设备端口以及10/100MBase-T 以太网接口。在此基础上,配置了64M 的Nand Flash 用作存储设备,2×32M的32 为SDRAM。处理器通过USB 接口连接摄像头,通过以太网接口连接网络。系统硬件平台功能如图1 所示。


图 1 监控系统硬件

[!--empirenews.page--]

1.2 USB 主设备模块

AT91RM9200 片内集成的USB 主机端口集成一个跟集线器,并在下游端口集成收发器,它提供几个半双工高速串行通信端口,速率为12Mbit/s,最多可连接127 个USB 器件。本系统外扩一个USB 主机端口来支持USB 摄像头的访问。

系统采用的是应用广泛的选用罗技快看酷讯版摄像头进行数据采集,这种摄像头可以实现硬件JPEG 编码,视频数据由摄像头采集,一旦主控制器获得视频数据请求,则通过USB接口读取其缓存的数据,并对图像数据进行压缩编码,然后基于socket 编程来发送这些压缩后的数据到服务器。

1.3 以太网接口模块

AT91RM9200 的在片以太网卡端口和网络物理层芯片DM9161E 的MII 接口通信。片内以太网卡通过DMA 通道进行数据的发送,不影响AT91RM9200 的正常运行。首先正确设置传送控制寄存器和传送地址寄存器的传送数据块字节数、数据块存储首地址等参数,随后依次从指定数据存储区地址读取1024b 数据,送入内部发送缓冲器中,由MAC 对数据进行封装发送,同时记录已传送字节数,直到数据块发送完毕。当发送完一组数据后,发出DMA中断请求,由AT91RM9200 进行相应的处理。整个网络子系统电路由AT91RM9200 控制和调度。

2 嵌入式Linux 开发环境的建立

2.1 交叉编译链的建立

嵌入式开发与普通开发有个显着的不同是,普通开发是在本机开发、调试,本机运行,而嵌入式由于资源有限,不能直接在嵌入式目标机上运行开发工具,因此嵌入式开发一般采用交叉编译方式,即在开发主机上编译目标机上运行的程序。交叉编译链可以自己制作,也可以通过网络下载别人已制作好的交叉编译链直接使用。本系统所用交叉编译链版本是3.4.3。

2.2 配置并编译内核

系统选用开源的 Linux 2.6.14 版内核作为操作系统,以交叉编译方式编译,即在普通PC机上运行Fedora 8 环境下,用交叉编译链编译在ARM 9 机器上运行的Linux 内核。内核用tftp 方式下载到开发板,然后解压自引导。具体操作如下:

(1) 给内核补丁,下载Linux2.6.14 内核源码linux-2.6.14.tar.bz2 和AT91RM9200 补丁2.6.14-at91.patch.gz,然后:

3 视频采集的实现

3.1 USB 摄像头驱动

Linux 对于视频采集设备的支持,是通过Video4Linux(V4L)实现的,V4L 为视频应用程序提供了一套统一的API 函数,视频应用程序通过标准的API 接口实现与内核和驱动的通信,实现视频设备的各种功能。对于USB 接口摄像头,驱动程序实现了基本的I/O 接口函数open、close、read、write,实现了内存映射功能函数mmap 和控制函数ioctl,并对于中断进行了处理。

Linux 中视频采集的实现,可以用read()函数直接读取数据,也可以用mmap()函数通过内存映射工作。内存映射方式直接将设备地址映射到内存地址空间,使用方便,效率更高,因此本系统采用内存方式获取视频数据。

本系统的设备控制函数ioctl 实现的主要设备控制命令有获得摄像头信息VEDIOCGCAP,判断获取图片是否成功VEDIOSYNC,读取图片相关信息VEDIOCGPIC,以及获取图片VEDIOGETPIC。

3.2 视频数据采集

本系统数据采集程序也是基于 V4l 编写应用程序,其基本流程首先通过open 系统调用打开摄像头设备,如果成功则继续通过ioctl 函数命令(参数VEDIOCGCAP)获取摄像头相关信息,ioctl 函数命令(VEDIOGETPIC)获取图像数据。

[!--empirenews.page--]

4 远程监控的实现

4.1 BOA 服务器的建立

Web 服务器在本方案中采用了Linux 系统中常用的Boa,Boa 是一种非常小巧的Web服务器,其可执行代码只有大约60KB 左右。Boa 支持CGI,速度快和安全性好,很适合嵌入式系统使用。使用时只需用已建好的交叉编译链编译,然后修改配置文件boa.cONf,为Boa 创建需要的目录/var/www/、/var/log/boa/acces_log 和/var/log/boa/error_log,以及将通用mime.types 拷贝到/etc 目录下,即完成了BOA 的配置。

4.2 远程视频服务的实现

远程视频服务基于 servfox/开源软件包,servfox 流媒体服务器使用V4L 完成原始视频图像的获取,然后把视频图像以MJPEG 的方式压缩,通过TCP 协议向网络发送。

复制 spcaview 软件包的目录http-java-applet 到Boa 的Web 服务器目录下,启动boa 服务,再运行命令,#servfox –s 640x480 –w 7070.

即已完成视频服务器的建立,在和ARM 开发板连接的PC 机浏览器上,输入开发板的IP 地址和Boa 服务器目录下的网页即可观看摄像头所采集的信息。

5、结论

本文设计实现的嵌入式Linux 的网络视频监控系统,是一种低成本的网络视频监控方案,而且可以直接连入以太网,通过浏览器即可观看,画面流畅,简易方便,具有广泛的应用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

据《日经新闻》报道,软银旗下英国芯片制造商Arm计划到2025年销售AI芯片。该公司专门成立一个AI芯片部门,并将在2025年春季之前制造出原型产品,并于秋季开始大规模生产。

关键字: 软银 AGI ARM AI芯片

业内消息,近日日本软件银行集团(SoftBank Group)旗下安谋国际科技公司(Arm)计划研发人工智能(AI)芯片,先成立一个AI芯片部门,目标是明年春季建立AI芯片原型产品,然后将量产工作交由代工厂制造,预估20...

关键字: ARM AI芯片

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS

一直以来,riscv架构都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来riscv架构的相关介绍,详细内容请看下文。

关键字: riscv ARM riscv架构
关闭
关闭