当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]设计一种嵌入式系统,以WinCE操作系统和ARM硬件平台为核心实现对现场的实时监控;通过无线网络把视频图像传输到主机端,以实现分析、存储及显示等功能。数字视频监控系统是以

设计一种嵌入式系统,以WinCE操作系统和ARM硬件平台为核心实现对现场的实时监控;通过无线网络把视频图像传输到主机端,以实现分析、存储及显示等功能。

数字视频监控系统是以计算机或嵌入式系统为中心、视频处理技术为基础组建的的一种新型监控系统,系统采用符合图像数据压缩的国际标准,综合利用图像传感器、计算机网络、自动控制和人工智能等技术。由于数字视频监控系统对视频图像进行了数字化,所以与传统的模拟监控系统相比,数字监控具有许多优点。数字化的视频系统可以充分利用计算机的快速处理能力,对其进行压缩、分析、存储和显示。

数字化视频处理技术提高了图像的质量与监控效率,使系统易于管理和维护。整个系统是模块化结构,体积小,易于安装、使用和维护。正是由于数字视频监控技术具有传统模拟监控技术无法比拟的优点,而且符合当前信息社会中数字化、网络化和智能化的发展趋势,所以数字视频监控技术正在逐步取代模拟监控技术,广泛应用于各行各业。嵌入式系统以体积小、实时性强、性价比高、稳定性好等特点在社会的各个领域中得到了广泛应用。笔者设计的一种嵌入式系统,以WinCE操作系统和ARM硬件平台为核心实现了对

现场的实时监控,并通过无线网络把视频图像传输到主机端,以实现分析、存储和显示等功能。

1 系统设计

本系统主要由操作系统定制、视频图像采集、视频图像无线传输三部分组成。系统的核心芯片选用基于ARM920T内核的S3C2410嵌入式微处理器,软件环境选用Microsoft Windows CE操作系统。系统首先通过USB摄像头采集现场实时视频信息,并对其进行压缩。然后,使用两块无线网卡在ARM开发板与上位机之间构建一个无线局域网络,从而将压缩的视频数据传输到主机端,终端用户即可在主机端通过流媒体播放程序查看远程视频影像。视频监控系统总体结构框图如图l所示。

 

2 操作系统的定制

系统硬件平台的核心芯片选用了S3C2410处理器,最高频率可达203 MHz。S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用O.18μm制造工艺的32位微控制器。该处理器具有较高的集成度,简化了应用系统的硬件设计,提高了系统的可靠性。开发扳上还扩展了4MB的NOR Flash、64 MB的NAND Flash和64 MB的DRAM。

系统选用了Microsoft Willdows CE(简称“WinCE”)操作系统。WinCE是一个紧凑的、高效且可扩展的32位操作系统,适用于各种嵌入式系统和产品。它拥有多线程、多任务和确定性的实时、完全抢占式优先级的操作系统环境,专门面向只有有限资源的硬件系统;同时,它的模块化设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它,可以选择、组合和配置WinCE的模块和组件来创建用户版的操作系统。

在WinCE产品开发中,主要有内核定制和应用程序开发两项非常重要的工作。微软在两方面都提供了良好的开发工具,即内核定制工具Platform Builder(简称“PB”)和应用程序开发工具Embedded Visual C++(简称“EVC”)。

在系统定制过程中,各部分的关系如图2所示。

3 视频图像采集

3.1 摄像头驱动

图像采集模块的硬件资源选用了当前市面上应用最广泛的USB接口的中星微摄像头。该款摄像头造价低廉,成像效果好,用于本系统中体现出了较高的性价比。系统在进行视频采集前,首先要检测设定视频源。系统启动后,WinCE操作系统会自动检测摄像头是否连接好。本系统在定制WinCE操作系统时,通过修改操作系统配置和注册表。可以使系统自动加载摄像头在WinCE下的驱动程序ZC030x.dll。

系统自动加载驱动程序时,首先要将驱动程序复制到\WINDOWS文件夹下,然后向注册表中写入摄像头的驱动信息:

 

其中,prefix为设备文件名,D11为驱动的文件名,Order为设备文件名索引。硬件配置完成后启动操作系统,就可以自动加载驱动,运行应用程序进行图像采集了。

3.2 图像采集程序

中星微摄像头采用了中星微301PLUS快速主控芯片。该芯片是一款高性能图像压缩芯片,输出MIPEG视频流数据。MIPEG(Motion JPEG)主要是基于静态视频压缩发展起来的技术,特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩,通常可达到6:1的压缩率。它的误差稳定性非常好,可以获取清晰度很高的视频图像,而且还可以灵活设置各路视频清晰度,压缩帧数。

本系统直接从摄像头驱动中获取MJPEG视频流数据。

图像采集模块用到的主要函数有:

capInitCamera()用来初始化视频设备,并获取当前可用的视频设备数目;

capSetVideoFormat()设置视频格式和分辨率。本系统使用的视频格式为RGB24,分辨率为320×240像素;

capGrabFrsme()从驱动中抓取1帧图像,并存储在缓存lpFrameBuffer中;

capGetLastJpeg() 将抓取的MJPEG格式的图像转换成JPEG格式,送到无线发送模块。

capCloseCamera() 关闭视频设备;

视频采集部分还有查询视频采集格式、设置明暗度、设置对比度等相关函数,不再详述。

4 视频传输部分

4.1 配置无线网卡

图像传输模块主要是通过USB接口的无线网卡来实现的。该无线网卡可与S3C2410集成的USB主机接口直接相连,工作在2.4 GHz的ISM频段,采用直接序列扩频通信方式,遵从802.11g协议,传输速度可达54Mbps,室内有效距离为100 m,能够满足局域网内视频传输的要求。本系统通过开发板和主机之间的无线网卡构建无线局域网络,能够实现点对点的无缝连接,用户通过此无线网络可以实现文件传输、视频通信等应用。

开发板端的无线网卡也需要加载驱动才能运行。本系统在定制WinCE操作系统时,首先将无线网卡的驱动程序复制到\WINDOWS文件夹下,然后向注册表中写入无线网卡的驱动信息。WinCE操作系统启动后会自动检测无线网卡是否连接好,并加载驱动程序,此时,就可以通过应用程序调用此无线网卡了。在无线传输时,注意要把开发板和主机设置在同一IP网段。

4.2 传输视频数据

实时传输协议RTP(Real time Transport Protocol)是一种实时流式传输协议,能够保证媒体信号带宽与当前网络状况相匹配,在一对一(umcast,单播)或者一对多 (multicast,多播)的网络环境中实现流媒体数据的实时传输。RTP通常使用UDP来进行多媒体数据的传输。整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTCP控制协议。[!--empirenews.page--]

针对系统数据的收发要求,采用了开源代码JRT-PLIB提供的RTP协议栈。JRTPLIB是一个面向对象的RTP库,完全遵循RFC1889设计。开发人员只要初步了解RTP协议就可以开发出高质量的音/视频传输程序。把它移植到EVC上,稍作修改就可以应用在WinCE操作系统的ARM开发板上了。

4.2.1 建立RTP的数据发送和接收

JRTPLIB 提供的RTPSession类可以实现RTP的数据发送和接收。RTP数据发送和接收的初始化步骤基本相同。首先设置时间戳、最大的RTP包尺寸、数据超时等会话参数,然后设置基端口(注意这个端口必须是偶数,默认值为5000)。在设置好这些参数之后,就可以使用RTPSession的Create方法建立RTP数据接收和发送了。

数据发送端使用RTPIPv4Address(intIP,PORT_DATA)建立一个新的地址,再使用AddDestination将这个地址增加到发送的地址列表中。然后,调用SendPacket函数发送RTP数据。

在数据接收端建立RTP会话并且增加了目标地址后,就可以从目标地址接收数据了。此时将调用OnRtpPacket函数接收RTP数据,在这个函数里取得装载数据并使用。在OnRTPPacket函数中,调用函数zc030x_OutPicture(&m_pDlg->frame),对接收到的数据进行解码。最后,调用函数StretchDIBits(),在当前窗口中显示视频图像。

4.2.2 RTP的控制协议——RTCP

RTCP(Real-time Transport Control Protocol)和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这砦信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,以有效的反馈和最小的开销使传输效率达到最佳效果。

JRTPLIB是一个高度封装的RTP库,调用PollData()或者SendPacket()方法后,JRTPLIB能够自动对到达的RTCP数据报进行处理,并在需要时发送RTCP数据报,从而确保整个RTP会话过程的正确性。在RTP数据收发中,也可以通过调用RTPSession类提供的方法选择当前RTP会话需要发送的控制信息,并对控制信息进行设置。

结语

本系统基于S3C2410平台和WinCE操作系统,通过USB摄像头采集现场实时视频信息,并对其进行压缩。然后,用两块无线网卡在开发板与上位机之间构建无线局域网络,使用实时流式传输方式实现了视频数据的无线传输。整个系统具有稳定可靠、安装简便、成本低廉等特点,可以应用在远程监控、工业控制、视频会议、可视电活等诸多领域。

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

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

关键字: ARM 汽车电子

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

关键字: ARM 汽车芯片 芯片

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

关键字: ARM 服务器 AI Neoverse CSS

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

关键字: riscv ARM riscv架构

随着科技的不断进步,人脸识别技术已经成为了当今社会最为热门的技术之一,被广泛应用于安防、金融、教育、医疗等领域。

关键字: 人脸识别 视频监控 摄像机

最新消息报道,知情人士透露Arm近日裁掉了中国70多名软件工程师,并会将部分职位转移到中国以外的地区。Arm通过“全球服务”部门已经将支持其中国客户的工作外包给安谋科技,该部门曾经拥有约200名员工。

关键字: ARM 裁员

凭借着在个人计算机领域的广泛应用打下的坚实基础,X86自始至终统治着整个服务器生态。而这并不是业界希望看到的,因此Arm服务器被给予厚望。业界期盼Arm能够带来新的服务器CPU替代:打破一个同质化的数据中心架构,实现更高...

关键字: ARM 服务器 AI

本文中,小编将对64位处理器予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 处理器 ARM AMD

32位MCU开发方案的设计实例包括以下几个方面:

关键字: MCU ARM

业内消息,日本唯一一家负责定制 Soc 芯片的上市公司 Socionext 宣布将联合台积电合作开发一款 32 核 ARM 处理器,将采用台积电的 2 nm 制程工艺,该 CPU 采用了 Arm 的 Neoverse 计...

关键字: 台积电 2nm ARM 处理器 Socionext
关闭
关闭