当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于Linux平台的网络广告机的设计

摘要:利用嵌入式系统设计的优越性,在Linux系统平台上使用Linux丰富的开源软件和工具集,构建了嵌入式网络广告机系统,满足网络广告机的各项功能应用要求,成功地实现了网络广告机的视频、图片和文字等媒体信息的良好发布,验证了Linux嵌入式平台下广告机系统设计的灵活性、简易性和高效性。
关键词: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后,解压、编译和安装即可。[!--empirenews.page--]
    ②创建和配置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端的显示和播放。

[!--empirenews.page--]

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


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

    本地套接字与本地TCP Socket Server端进行通信,并将相关控制命令最终上传,而本地TCP Socket Server命令则是来源于控制中心TCP Socket Client端对控制命令的上传。本地Socket Server套接字的部分控制代码如下:
[!--empirenews.page--]
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系统开发的软件和硬件技术,也涵盖了嵌入式产品设计的各种综合素质和多项技能,具有一定的实用价值。

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

柏林2024年6月11日 /美通社/ -- 据德国汽车行业协会(VDA)的最新消息,去年德国生产了127万量电动汽车(BEV和PHEV),其中95.5万辆是纯电动汽车。这使得德国成为欧洲生产电动汽车最多的国家。预计今年德...

关键字: 电动汽车 BSP 纯电动汽车 AI

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP
关闭
关闭