基于嵌入式Linux平台视频传输与控制系统的构建

2018-02-05 20:49:09编辑:什么鱼 关键字:Linux平台  视频传输  控制系统

    本文介绍了基于嵌入式Linux平台视频传输控制系统的构建,给出了跨客户端通过3G网络进行远程视频传输的技术实现,并总结了在实现过程中遇到的难点以及对应的解决方案。

    3G是第三代移动通信技术,结合了无线通信技术和互联网等多媒体技术。随着3G技术的发展,它在声音和数据的传输速度上有很大提升,并能够在全球范围内实现无线漫游。其数据传输高速、永远在线、覆盖范围广等优点,有效地解决了移动机器人采用有线或者无线远程控制所带来的信息传输和控制距离等方面的瓶颈问题,使远程救援机器人、仿真机器人、家庭保姆机器人等移动机器人技术在大数据量实时传输方面多了一种可利用的解决方案。

1 系统总体架构
    本系统主要用来将移动机器人所采集到的视频数据通过3G网络传给服务器,再将服务器的控制信号传给电机驱动板,以驱动移动机器人平台运动,总体架构如图1所示。摄像头OV9650采集的视频图像经过JPEG压缩后,存入缓存区,当服务器监听到客户端的接入请求后,再将缓存区的数据通过网络传输给客户端的监控界面进行显示;当需要控制机器人行动时,客户端的控制按钮发送控制信息给服务器,服务器通过程序解析后控制底层电机驱动器,驱动机器人平台运动。

    
    系统硬件平台核心处理器采用S3C6410,它基于ARM1176JZF—S内核,是一个16/32位RISC微处理器,其内部集成了强大的硬件加速器,包括音视频处理、2D加速等,为2.5G和3G通信服务提供了优化的硬件性能,工作频率最高可达677 MHz;采用2 GB NAND Flash,主要用于存放内核代码、应用程序、文件系统和数据资料;DDRSDRAM采用两片128 MB K4X51163PE芯片;摄像头采用CMOS图像传感器OV9650,最高输出130万像素(1300×1 024),具有高敏感度、低功耗、支持多种常用的图像格式输出、支持自动图像控制等优点。
    Linux作为一种类Unix操作系统,具有稳定健壮、低成本、高性能、互操作性好和源代码开放等特点。而其良好的内核结构,以及可裁剪的特性,满足了嵌入式应用的差异性需求,使其在嵌入式系统领域占有一席之地。本系统中采用的Linux内核为3.0.1版本,文件系统采用YAFFS2,Bootloader选用uboot。

2 系统软件设计
2.1 视频数据的采集与传输
    视频数据的采集通过Linux中视频设备OV9650的驱动以及Video for Linux提供的相应接口完成。为了方便,将视频采集的相关信息封装到以下结构体中:
    
    采集程序通过函数init_s3c6410(struct vdIn*vd,char*devICe,int width,int height)来完成对摄像头以及采集参数的初始化,并通过函数s3c6410_Grab(struetvdIn*vd)完成对图像的抓取,用JPEG压缩算法对采集到的图像进行压缩,图像格式为RGB565。

    视频数据传输通过Socket实现,且直接在服务器设备端与Web客户端之间进行传输,通过视频流服务器实现对视频的开关控制。由于视频传输是连续的过程,所以客户端和服务器端都通过线程来实现发送与接收。接收线程由函数pthread_create(&(servers[id].threadID),NULL,server thread,&(servers[id]))创建。
    视频的采集和传输是在两个线程中实现的,它们共享一个缓冲池。这两个线程都是在视频采集服务器端的程序启动时创建并运行的。其中采集视频图像的线程不断通过摄像头采集现场图像,经过JPEG压缩后存放到缓冲池中,而传输视频数据的线程创建一个Socket来监听等待远程客户的连接请求。当有客户发送连接请求并建立连接后,就通过该连接向远程客户发送视频数据,而发送的视频数据就是从缓冲池中获取的。也就是说,在视频采集服务器端,视频数据传输所需要的一切都已经准备好,就等着客户的请求,一旦建立连接,就可以发送视频数据,从而实现较快的速度和较高的效率。
    视频采集和传输的工作流程图如图2所示。

    
2.2 远程控制的实现
    为了监控界面能被通用浏览器打开,需要移植Web服务器Boa。Boa服务器是一款小型开源的嵌入式Web服务器,交叉编译后的可执行代码大小约为60 KB,在Linux3.0.1内核下运行时占用的内存大小约为1.7 MB。其功能较为强大,支持身份认证、CGI动态Web技术等。它不像传统的Web服务器那样为每个访问连接开启一个进程,只能依次完成用户的请求,即单进程响应多路请求,因此,Boa在同等硬件条件下相对于其他Web服务器表现出更快的速度,节省更多的资源。
    通用网关接口(CGI)是用于Web服务器与外部应用程序之间信息交互的标准接口。CGI可以使外部程序处理客户端传来的表单和数据,并对此作出某种反应。这种反应可以是HTML文件、图片等可以在浏览器窗体上出现的任何数据,也可以是对服务器端硬件资源的控制。
    调用CGI程序的方法主要有两种:
    ①GET方法,CGI程序从环境变量QUERY_STRING中获得数据;
    ②POST方法,Web服务器通过STDIN向CGI程序传输数据,数据量超过1024字节时采用此方法。
    本系统采用GET方法。
    在串口应用程序中,数据的获取通过以下代码实现:
    ……
    char*data;
    data=getenv(“QUERY STRING”);
    ……

3 监控界面的实现
    监控界面用网贞实现,如图3所示。

    
    为了使页面呈现出动态效果,如显示当前时间、视频数据传输速率等,页面将嵌入Javascript代码。整个界面分为两个区:视频显示区和控制面板区。视频显示区显示视频流服务器传输上来的视频数据,控制面板区通过按钮与CGI串口应用程序交互控制电机驱动板。
    Javascript是一种流行的通用脚本语言,基于Javascript可以实现用户与页面的交互,并响应页面上发生的事件。
    HTML表单是Web文档的一部分,用来将信息从浏览器传递到服务器,它提供多种接收输入的方法,包括单选按钮、多选框、文本框等,表单以

标签开始,以</form>标签结束。本系统控制面板的按钮采用“button”输入类型。传统的HTML表单需要通过提交按钮(“subm it”)来发送表单数据,数据以名/值对的形式发送至服务器端的CGI程序。本系统的每个按钮都需要实时提交,如果通过传统方法来实现,则需要对每个按钮配对一个不同名的提交按钮,这样会使页面代码变得更复杂,因此本系统使用Ajax方法。使用Ajax创建HTML表单时,不再需要提交按钮来发送表单数据,对于每个按钮,只要在属性中添加事件处理函数onClICk(),就能在点击按钮时触发Ajax建立浏览器和服务器CGI应用程序间的通信,实现代码如下:
    
   

    结语
    本文所介绍的系统在实验中获得了较好的结果,视频图像的传输具有较好的稳定性,为了提高图像的连续性,可以通过修改代码提高摄像头的采集频率。该移动机器人平台可以根据实际需要进行功能扩充,并可以通过本文所阐述的方法,对控制面板的功能进行相应的扩展,比如摄像头的调焦、温湿度显示、机械手臂运动控制等。


关键字:Linux平台  视频传输  控制系统

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018020537699.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于嵌入式Linux无线多频段WSN网关设计
下一篇:基于ZigBee与μIP协议栈的嵌入式网络监控系统设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于嵌入式Linux和MiniGUI为平台的智能导诊系统设计

    通过研究基于MIPS架构的SMP8654芯片的硬件架构,并且利用芯片内部的图形加速引擎GFX的方式实现了具有高清视频显示和图片文字处理功能的播放器。系统以嵌入式Linux和MiniGUI为平台设计了智能导诊系统,提高了医院的导诊就医的服务效率。智能导诊系统能够播放医院相关的健康宣传资料、专家排班信息。   MIPS微处理器是指无内部互锁流水级的处理器,它是由斯坦福大学的Hennessy教授领导的研究小组研制出来的。MIPS微处理器采用RISC(Recluced InstructionSet Computer)的设计原则,只支持有限的机器指令以及简单的算术指令,通过提供大量的内部寄存器减少
发表于 2018-03-19 21:12:02
基于嵌入式Linux和MiniGUI为平台的智能导诊系统设计

基于Linux和ARM9的物流信息化终端平台上对终端定位功能实现

  前 言  物流的定位方案与技术的选择对提高现代物流配送管理效率,减少运营成本具有重要的影响。物流终端定位要求较高的定位精度,能提供全天候连续不间断的定位信息支持,能满足复杂地形条件的定位需求。   本文针对当前物流行业终端定位功能的需求进行分析,针对当前定位技术现状,提出相适应的物流终端定位功能实现方案,并在基于嵌入式Linux和ARM9硬件核心的物流信息化终端平台上对终端定位功能进行了初步的实现。  系统实现方案  移动定位技术的现状分析目前,移动定位技术已经非常成熟,较广的应用主要可以分为两大类,一类是GPS等利用卫星进行后方交汇的定位技术;另一类是利用移动通信网技术提供位置服务的定位技术。常用
发表于 2018-02-17 19:37:43

嵌入式Linux平台上编写触摸屏驱动的开发

    引言    触摸屏因方便灵活、节省空间、直观等特点,作为嵌入式系统的输入设备越来越受各种终端产品生厂商的青睐。而linux操作系统因为有着源代码公开、便于裁减的优点,是当前嵌入式系统的一大热门选择。本文将在构造硬件的基础上,深入的讨论如何在linux操作系统里编写一个触摸屏驱动。    SPI接口的简介    串行外围设备接口SPI总线技术是摩托罗拉公司推出的一种全双工、同步串行接口,它提供了功能强大的四线接口(接收线、传输线、时钟线和从片选线)。    SPI的从设备和主设备共用一个时钟线,而时钟始终是从主设备里发送
发表于 2018-02-17 19:32:50

基于arm920T嵌入式Linux的实验平台环境的构建

的,能够运行几乎所有的黑白和彩色的GB /GBC游戏ROM,但运行复杂一些的游戏需要在速度上得到加强,同时它的声音还没有得到测试。    Gnuboy已经实现了i386汇编代码的一些优化工作,能够在奔腾机器上运行良好,除此之外,到目前为止,它能够运行的平台还很有限。随着嵌入式系统设计技术的发展,PDA、Smartphone等嵌入式产品的功能不断地得到扩展,适应用户的需要, Gnuboy在嵌入式产品中的移植应用非常具有前景。目前Gnuboy在ARM Linux下还没有得到很好的应用,本文就是在构建的基于ARM920T Linux的嵌入式平台上对gnuboy运用进行的尝试性工作,同时, Gnuboy作为一种虚拟机技术,本文
发表于 2018-02-12 21:34:18
基于arm920T嵌入式Linux的实验平台环境的构建

瑞萨电子推出新款RZ/G Linux平台,为嵌入式工业Linux开发人员

全球领先的半导体解决方案供应商瑞萨电子株式会社(TSE:6723)今日宣布推出采用工业级民用基础设施(CIP)超长期支持的Linux®内核的RZ/G Linux平台,可将基于Linux的嵌入式系统的维护周期延长至10年以上。新款瑞萨电子RZ/G Linux平台提供经过验证的Linux套件,嵌入式开发人员可利用其中的云维护和其它诸多开发功能,更轻松地将Linux部署于高性能工业设备中。RZ/G Linux平台可实现超长期的Linux内核稳定性,每年可减少数十万美元的维护成本,还可以大幅降低工业设备的开发周期和Linux的部署成本。瑞萨电子OA业务部副总裁加藤茂树表示:“长期维护和支持对于工业和基础设施中的嵌入式系统的安全性和可靠性
发表于 2017-10-18 21:26:38
瑞萨电子推出新款RZ/G Linux平台,为嵌入式工业Linux开发人员

AVT数字高清视频传输技术在ADAS驾驶上的技术应用

本文首先分析AVT技术在同轴高清数字化的技术特色,然后结合实际应用介绍相关的系统方案及实现,最后展望其对提高车载视觉应用安全性前景。车载视频监控已经成为数字视频监控技术所覆盖到的重要应用领域,出于对汽车及驾驶安全性等多方面考量,所涉及视频和视觉系统必须稳定可靠,其中对于视频传输就有了更加严格的要求。视频传输数字化成为发展的必然趋势,先进视频传输(Advanced Video Transfer,简称AVT)作为一种数字同轴高清视频传输技术,以其优越的图像性能和突出的系统特性,全面支持车载高清视频设备的视觉无损和实时传输,有益于从视频记录扩展到ADAS相关的视频应用。本文首先分析AVT技术在同轴高清数字化的技术特色,然后结合实际
发表于 2018-02-04 14:09:09

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved