基于Linux平台的网络广告机的设计

发布者:MysticDreamer最新更新时间:2013-11-01 来源: 21ic关键字:嵌入式系统  网络广告机  Linux 手机看文章 扫描二维码
随时随地手机看文章

引言

网络广告机俗称digital signage system,是在网络信息化飞速发展的时代背景下产生的一种新型网络多媒体信息发布系统。基于这种系统,用户可以采用多种方式于公共显示终端上发布公共信息内容。目前,数字化、网络化、信息化的多媒体网络广告机成为传媒市场的一大亮点,然而单机版的广告机以及单一的媒体发布形式已经难以满足日益增长的市场需求,国内外正在积极投入基于多种媒体形式和多功能交互型网络广告机的研究。本文利用Linux嵌入式系统设计的优越性能,使用广大Linux系统支持的开源软件和工具集,构建了成本低、功能健全和网络分布灵活的网络媒体广告机系统。

1 系统概述

如图1所示,整个系统大体分为广告机监控终端、服务器控制中心、广告机显示终端3个部分。监控终端通过Web浏览器控制页面接收管理员输入的控制命令,经过网络路由向服务器控制中心提交表单。服务器控制中心根据监控终端提交的不同表单类别调用对应的CGI例程来启动相应的Socket服务进程,建立与开发板Socket监听服务进程之间的网络通信,同时传递对应的控制命令和信息。广告机显示终端解析相应的控制命令和信息,来控制显示终端设备上的媒体信息播放形式。

1.1 硬件环境

广告机监控终端和服务器控制中心的设备为普通PC机。广告机显示终端采用的是芯胜嵌入式VT8430开发板。该开发板的处理器是芯晟科技推出的数字音视频多标准多媒体处理芯片CSM1200。该芯片采用ARM9内核,支持MPEG-2、H.264、AVS的高清和标清解码/输出,视频输出支持PAL/NTSC/480p/576p/720p/1080i。
同时,CSM1200是一个有着丰富的外围设备和强大媒体能力的嵌入式平台SoC,可以灵活地选择多种LCD或者其他显示设备,作为广告机信息发布节点的媒体播放设备。

1.2 软件环境

监控终端和服务器控制中心的采用Linux系统平台。监控终端只需能够提供正常的Web页面浏览功能便可以借助浏览器实现信息的交互。服务器控制中心和显示终端是多媒体信息发布的关键的部分,需要配置相关的环境如下:

①构建CGI模块。CGI用来设计基于Web浏览器的B/S(Browser/Serrer)系统架构,可以在无客户端(client)的情况下,广泛地使用Web浏览器提供的按钮、输入框、字体和颜色等界面元素。通过不同平台浏览器监控终端递交的表单就可以控制信息的交互。在官网下载源码包li-bcgi-1.0.tar.gz后,解压、编译和安装即可。 

②创建和配置httpd服务。官网下载httpd-2.2.4.tar.gz,解压、配置、编译和安装后,设置相应CGI程序以及html服务路径和目录,以提供Web浏览器监控端不同的控制页面目录和CGI例程集存储目录。

③配置数据库。安装Sqlite3数据库来提供对于各种媒体信息的查询、插入和删除等控制操作。SQLite是存储在单一磁盘文件中的一个完整的数据系统,尤其适合于嵌入式系统设计。在Ubuntu10.04服务器系统平台上,使用aptitude安装libsqlite3-0、libsqlite3-dev、libs-qlite3和libsqlite3-doc开源软件包即可。

④定制显示终端Linux系统。显示系统采用基于ARM9的CSM1200处理芯片,因此使用arm-9tdmi-linux-gun交叉编译工具,基于Linux2.6.2 7内核源码包定制针对显示开发板环境平台的Linux操作系统,详见参考文献。编译好内核之后进行u-boot的烧写、根文件系统的制作,并设置相应的启动方式来加载制作的Linux内核。详细的步骤见参考文献。

⑤搭建显示终端Qt环境。显示终端通过Qt图形界面播放各种媒体信息,首先获取Qt开源软件包qtopia-core-opensource-src-4.2.2.tar. gz,解压后设置arm-9tdmi-linux-gun为编译器环境,编译安装Qt软件包后,拷贝所需资源到开发板文件系统。

上述环境搭建的大部分内容都可以从相应的官网获取开源源码包和详细的配置安装信息。

2 系统功能模块设计

系统功能模块原理图如图2所示。监控终端由Qt控制页面、Mplayer控制页面和文件更新控制页面组成。在不同的监控控制页面触发相应的控制操作,将通过Web功能访问服务器控制中心并向服务器递交不同的表单。控制中心主体部分由服务器Web httpd站点、CGI控制模块、数据库Sqlite3和TCP Socket Client端组成。根据监控终端递交的不同的表单,相应的CGI控制程序将执行,CGI程序进行的相应的录入、删除和更新Sqlite3数据库操作,同时调用并开启对应的Socket Client进程,将对应的控制命令和数据库信息通过网络Socket递交到显示终端TCP Socket Server监听服务器。显示终端的TCPSocket Server监听接收TCP Client端传来的控制命令,通过解析控制命令的类别,将空控制命令和相关的信息写入到Qt本地或者Mplayer本地套接字服务器,并存储在本地Linux文件系统中。Mplayer播放器和Qt播放程序读取文件系统中各自本地套接字的控制信息,调用相应的音视频驱动程序来控制音视频文件在Qt界面和Mplayer端的显示和播放。


3 关键算法设计

3.1 数据库设计

根据广告机监控终端所监控媒体种类的不同,使用Sqlite3数据库维护媒体视频播放、图片背景和Qt字幕的信息。数据库原理见参考文献。对于广告机监控管理员以及管理者的身份,需要设计管理者的ID、登录密码和对应的用户名信息,以便对广告机的监控和管理。就视频和图片媒体而言,都涉及对相应媒体对象的插入、删除、更新和播放顺序等控制操作,因此分别设置ID、文件名、加入时间和排序序号来进行相应的维护和控制管理。对应的数据库设计原理图如图3所示。[page]

3.2 广告机显示终端

广告机显示终端的Qt图形界面原理如图4所示。Qt界面的设计原理见参考文献。开发板通电之后,主程序程序开始执行,Mplayer媒体播放器读取存储在开发板上的视频文件进行循环播放,同时将监听自己的本地套接字。当网络通信模块将控制终端传来的控制命令写到Mplayer播放程序的本地套接字之后,Mplayer将根据控制命令执行相应的响应,如暂停、播放下一首、重头开始播放等。Qt图形界面程序开始执行时,先读取本地图片文件和文本文件,进行循环播放。同时,Qt图形界面程序的监听命令线程将监听Qt图形界面的本地套接字。当接到控制命令时,Qt图形界面程序将执行相应的操作,如关闭、打开、更新滚动字幕等。

本地套接字与本地TCP Socket Server端进行通信,并将相关控制命令最终上传,而本地TCP Socket Server命令则是来源于控制中心TCP Socket Client端对控制命令的上传。本地Socket Server套接字的部分控制代码如下:

3.3 服务器控制中心

服务器控制中心通过传递管理员用户的控制命令,来控制显示终端图片、视频以及文字媒体的更新和播放状态的改变。管理者用户通过点击Qt或者Mplayer控制页面的各种控制按钮和媒体更新文件操作,触发监控中心的各种CGI例程,因此监控终端的各种控制操作便与相应的CGI控制操作例程一一对应。CGI例程通过TCP Socket网络通信向显示终端服务器递交相应的控制命令和相关控制信息,就可以完成对各种媒体信息的操作控制。Linux系统网络套接字编程见参考文献。

由图2可知,显示终端分为Qt和Mplayer模块。其中,Qt模块用来播放媒体图片和字幕信息,Mplayer负责播放各种视频文件。对于媒体视频和图片文件信息,控制的方式基本上分为两种:一种是不带上传内容的单纯媒体运行方式的控制操作(如视频文件的播放暂停、视频播放调序等),只需要点击相关的控制按钮即可完成;另一种是基于文件上传的媒体更新的操作。例如视频文件、图片库的更新等操作。因此,将结合上述不同的控制方式给出广告机字幕滚动、纯命令控制和文件上传的关键算法设计。

Qt更新显示终端滚动字幕的表单部分如下所示:

用户通过Qt控制页面添加更新的文字内容,点击更新字幕按钮会触发改变字幕的CGI例程。qt_change_list.cgi例程将创建从本地到显示开发板上的TCP Socket Server端的TCP套接字连接,并将控制命令“更新文字”与文字内容一起上传到TCP Socket Server端服务器。

广告机控制命令的控制表单部分设计如下:

对于单纯的控制命令,广告机终端的设计比较简单,对于每一种控制命令均对应有不同的CGI例程和命令宏定义,每个例程将对应的控制命令通过Socket上传就可以实现。

上传文件关键表单部分设计:

文件上传将根据Qt图片和视频文件的不同调用相应的上传例程。这里除了要将图片或者视频文件上传到开发板显示终端外,还要向服务器监控中心的Sqlite3数据库中添加相应的资源信息和状态信息,根据前面数据库对不同媒体类别的设计属性域添加相应的相关信息,以便后续的插入、排序、删除和更新操作。其中,使用多线程传输模型设计上传程序my_scp实现对较大视频和图片文件的快速传输,关于多线程编程见参考文献。上传文件的部分代码如下所示:

3.4 监控终端

为了提升安全性能,需要设置用户密码功能。管理员通过用户名和密码的匹配输入后,就可以获得广告机的控制权限。根据广告机媒体类型的不同,分别设计了Qt控制页面、Mplayer控制页面和文件更新控制页面。通过控制不同的控制页面,即可控制广告机的不同媒体播放操作。

结语

本项目设计使用Linux开源系统和软件工具集,构建了基于嵌入式多网络节点、性能优越的广告机系统,最终获得了满意的效果。本系统的设计不但涵盖了Linux系统开发的软件和硬件技术,也涵盖了嵌入式产品设计的各种综合素质和多项技能,具有一定的实用价值。

关键字:嵌入式系统  网络广告机  Linux 引用地址:基于Linux平台的网络广告机的设计

上一篇:时间换空间的方案解决嵌入式系统中性能问题
下一篇:嵌入式DSP访问片外SDRAM的低功耗设计研究

推荐阅读最新更新时间:2024-03-16 13:29

基于linux的嵌入式无线可视门铃系统的设计
1、引言   在当前的电子行业中,无线技术已经渗透到方方面面,无论是电视机的遥控设备,还是计算机的外围设备都是如此,有的键盘和鼠标甚至也使用了无线技术。无线网络技术已经成为热门技术。无线网络产品广泛应用于家庭网络、小型办公室、会展中心、体育中心、飞机厂、医院、学校、港口、住宅小区、酒店、宽带接入。它使人们在Internet应用中摆脱了无穷无尽电线电缆的束缚,进入真正的无网不在的Internet自由空间。无线网络技术可望成为新的经济增长点。   近几年来, 随着市场上智能化楼宇的不断升温, 门铃系统已作为智能化办公室和智能化住宅小区的一个重要组成部分,被各商家和用户所接受。人们已开始习惯用门铃系统代替传统的铁钥匙去管理各通道
[嵌入式]
ARM 开发板嵌入式linux系统与主机PC通过串口传输文件
嵌入式linux系统与主机通过串口传输文件 我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载。但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx、zmtx,另外一个是lsz、lrz。个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者。下面介绍一下lsz/lrz的使用方法。 一、编译lrzsz并下载到开发板上 从http://download.chinaunix.net/download/0007000/6293.shtml下一个lrzsz的tar包,解压缩后输入./configure,然后进入了sr
[单片机]
OK6410A 开发板 (八) 58 linux-5.11 OK6410A fiq 异常
arch/arm/kernel/entry-armv.S 1183 .L__vectors_start: ... 1191 W(b) vector_fiq 732 .align 5 733 __fiq_usr: 734 usr_entry trace=0 735 kuser_cmpxchg_check 736
[单片机]
基于DSP的Bluetooth嵌入式系统应用
蓝牙(Bluetooth)协议标准是由蓝牙特别兴趣小组(Bluetooth SIG)发布的,1999年发布了Bluetooth 1.0版, 2001年2月发布了Bluetooth1.1版。目前SIG成员已经发展到3000家左右。蓝牙协议规定的无线通信标准,基于免申请的2.4GHz的 ISM频段,采用GFSK跳频技术和时分双工(TDD)技术,通信距离为10米左右,Blue tooth 1.0版标准规定的数据传输速率为 1Mbps。主要适用于各种短距离的无线设备互连应用场合。可以提供点到点或点到多点的无线连接。 1 基于电缆替代的蓝牙协议简析 1.1 蓝牙协议体系 蓝牙协议规范所措述的协议栈模式如图1所示。 蓝牙体系结构
[应用]
基于ARM+FPGA+多DSP的嵌入式实时图像处理系统
摘 要: 介绍了一款通用的嵌入式图像处理系统的设计方法。系统采用FPGA设计FIFO实现ARM与多DSP的高速数据传输方法。实验结果表明,所设计的多DSP协同工作的实时嵌入式图像处理系统,其工作性能稳定、数据处理能力强,适用于高端的雷达信号处理、电子对抗、超声图像处理等场合。 关键词: ARM11; TMS320C6416T; FIFO; FPGA; 多DSP嵌入式系统 实时图像处理、高速数据运算处理要求其系统具有对数据处理速度快、数据吞吐率高以及多任务处理功能。目前大多数方案都是采用HPI数据传输方式,将ARM和DSP进行组合完成一些图像处理,DSP处理器只是完成图像采集、压缩、编码等简单的处理 工作,不能满足实时的智能
[嵌入式]
基于ARM+FPGA+多DSP的嵌入式实时图像处理系统
掉电保护在嵌入式系统中的设计应用
本文介绍的方法是在用ARM7系列芯片S3C4510B和μClinux构建的嵌入式平台上实现的。整个掉电保护实现的基本思路是:产生掉电信号,捕捉掉电信号和处理掉电信号。重点介绍这个过程的具体实现。   系统防掉电设计的目的是:采用一种机制,使得系统在意外失去供电的情况下,可以保证系统运行状态的确定性以及记录数据的完整性;当系统供电恢复后,现场数据可以及时恢复,避免应用系统产生混乱。我们知道,在嵌入式系统设计与开发中越来越多地应用嵌入式操作系统。由于操作系统的引入,数据的读写往往是通过文件的方式完成,而不是直接对存储单元地址操作。用文件读写方式操作数据,在程序的运行过程中往往将数据暂存在易失性的存储空间,如SDRAM,一旦系统意外失
[模拟电子]
掉电保护在<font color='red'>嵌入式系统</font>中的设计应用
米尔芯驰D9超强国产CPU,能跑安卓、Linux、RTOS
米尔能跑安卓、Linux、RTOS的国产核心板开发板 你还记得缺芯、涨价的那段日子吗?近几年,因为贸易战、技术打压,芯片国产化已成为趋势。 今天给大家推荐一款能跑安卓、Linux、RTOS的开发板,而且是车规级工业超强国产CPU。那就是米尔电子今年新推出的,基于芯驰D9系列核心板及开发板。 芯驰D9有什么特点? 1、D9处理器D9处理器是国产厂商芯驰推出的专为新一代电力智能设备、工业互联网设备、工业控制设备、工业机器人、工程机械、轨道交通等先进工业应用设计的高可靠、高安全、高实时、高性能芯片。 D9处理器特点:  采用Cortex-A55 + R5组合架构  台积电16nm FinFET 制程工
[嵌入式]
米尔芯驰D9超强国产CPU,能跑安卓、<font color='red'>Linux</font>、RTOS
拒绝开发板, 用 SkyEye 就可以模拟 ARM Linux
对于希望学习 ARM 汇编的同学而言, 购买 ARM 开发板进行板上实测无疑是一个有效的方法,不过购买 ARM 开发板需要一笔费用,而且每次 测试 都需要连接开发板,比较麻烦。这里介绍一个 ARM 模拟器——SkyEye,通过 SkyEye 我们可以直接在一台 PC 上完成 ARM 汇编程序的开发和调试了,摆脱了 ARM 开发板的限制,真是不错! 下面介绍如何使用: 1、下载 SkyEye 的最新版(https://sourceforge.net/projects/skyeye/),本文用的是 skyeye-1.3.4_rc1.tar.gz,同时为了后面的实验,还要下载 testsuite,它是 skyeye 的测试文件,这里
[单片机]
拒绝开发板, 用 SkyEye 就可以模拟 ARM <font color='red'>Linux</font>!
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
502 Bad Gateway

502 Bad Gateway


openresty
设计资源 培训 开发板 精华推荐

502 Bad Gateway

502 Bad Gateway


openresty
何立民专栏 单片机及嵌入式宝典

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

502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
502 Bad Gateway

502 Bad Gateway


openresty