APP下载

基于无线wi-fi技术的多媒体信息推送系统

2012-06-07项亮亮章双佐宋占伟

吉林大学学报(信息科学版) 2012年1期
关键词:声卡调用终端

项亮亮,章双佐,陈 捷,宋占伟

(吉林大学 电子科学与工程学院,长春 130012)

基于无线wi-fi技术的多媒体信息推送系统

项亮亮,章双佐,陈 捷,宋占伟

(吉林大学 电子科学与工程学院,长春 130012)

为了在一个小区域内,快速有效地获取信息,设计了多媒体信息推送系统。该系统可设置中心控制台进行信息交流,满足信息实时实地地推送并显示。将目前流行的wi-fi技术与嵌入式系统相结合,采用高分辨率液晶显示屏做为终端显示设备,S3C6410做为主控器。经过实验测试,该系统稳定性高,图片、声音、视频流等多媒体信息可在局域网内快速实时地推送并显示,达到了预期目的。

无线宽带;嵌入式;实时推送;多媒体信息

0 引 言

目前最有效的信息获取途径是互联网[1]。但现代社会网络信息资源容量急剧膨胀并且对资源需求的便利性提出了更高的要求。多媒体信息推送技术最早是由美国Point Cast Network公司于1996年提出的。推送技术实质上是依据一定的技术标准和约定,自动从信息资源中选择特定的信息并通过一定的方式有规律地将信息传递给用户的一种技术[2]。本质上为一种能根据用户事先向系统输入信息的请求,进行对多媒体信息筛选、分类、排序的特殊软件系统,在适当时候推送到用户所需的终端。

组建一个小范围的无线wi-fi局域网模拟实现多媒体信息的实时推送功能。手持系统的终端(下位机)采用三星的S3C6410作为主控芯片,基本符合系统的要求,不仅处理速度快,而且便于开发以及后期的维护和升级。服务器端(上位机)软件系统是由C++编写的多媒体信息推送窗口。

wi-fi是由无线以太网相容联盟(WECA:Wireless Ethernet Compatibility Alliance)所发布的业界术语,中文为“无线相容认证”。作为一种短程无线传输技术,能在数百英尺范围内支持互联网接入的无线电信号[3]。同时也足以提供在家或小区快速上网的便捷途径。随着电子商务和移动办公的进一步普及,廉价的wi-fi必将成为随时需要进行网络连接用户的必然之选[4]。

1 整体系统设计

核心芯片系统采用韩国三星的S3C6410系列处理器作为系统的MCU(Microprogrammed Control Unit)。外围主要硬件由 WM-G-MR-09核心芯片设计的 wi-fi模块以及群创的AT070TN83显示器控制模块组成。整个系统分为上位机和下位机两部分。上位机(PC Control)是整个系统的推送者,负责在多媒体信息推送中完成音频、视频、数据等信息的封装和排列,使其能在多媒体推送信道上传送。下位机(各终端)通过无线wi-fi方式与上位机控制系统进行数据传输并根据用户需求作出相应的显示或反馈。系统整体框架如图1所示。

图1 多媒体信息推送系统框架图Fig.1 The diagram of multimedia information push system

1.1 上位机系统部分设计

推送终端承担与服务器进行信息交互,接受多媒体镜像,执行命令任务和提交系统日志等任务,是整个系统中重要的部分[5]。

设计的上位机系统主要由C++编程语言设计完成,主要任务是完成各种信息的打包处理并将其推送到用户终端。为了提高数据的传送效率,减少网络出现拥塞的可能性,采用上述组播传播技术。采用目前主流的组播(Multicast)传输技术。所谓组播是一种允许一个或多个发送者发送单一数据包到多个接收者的网络技术。当组播源把数据包发送到特定的组播组(Multicast Group)时,只有加入到该组播组的终端才能接收到这些数据包。这样设计可节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。而且在发送者和每个接收者之间实现一点对多点的网络连接[6]。

在软件设计上,主体利用线程池技术,使当线程池中的线程不处于阻塞状态时,后续请求将进入缓冲队列等待[7]。服务器在处理管理主机发布多媒体信息任务时,同时监听由推送终端发出的更新请求。在收到终端的更新请求后,根据请求数据包头获取终端编号,在数据库中以终端编号查询对应镜像名称、存储路径等信息,对终端进行实时数据更新[8]。关键的视频推送部分利用RTP(Real-Time Transport Protocol)数据实现。在这里只给出数据发送部分程序的主要设计过程,其他部分将在下位机实现中给出;当RTP会话建立成功时,需要设置数据发送的目标地址,通过调用RTPSession类的AddDestination()、DeleteDestination()和ClearDestinations()完成。通过调用RTPSession类的SendPacket()方法,向目标地址发送流媒体数据,调用RTPSession类的SetDefaultPayloadType()、SetDefaultMark()和SetDefault-TimeStampIncrement(),并将其设置为会话的默认参数,指明发送的数据及其长度,进行数据发送。

1.2 下位机终端实现

1.2.1 终端类型

移动多媒体系统用户终端主要分为单向终端和双向终端两种形式[9](见表1)。

表1 多媒体系统用户终端类型Tab.1 The types of multimedia system user terminal

由于需要语音的双向通信,所以设计成为双向终端。

1.2.2 终端代码实现

1)声卡驱动。音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须变换成数字音频信号后,才能送到处理器中作进一步处理。在声卡驱动上,从安全性角度考虑,应用程序在Linux下无法直接对声卡设备进行操作,而是通过内核提供的驱动程序完成对声卡的各种操作[10]。

系统调用open()函数获得对声卡的访问权,同时为随后的系统调用做好准备,其函数原型:int open(const char*pathname,int flags,int mode);参数pathname是将要被打开的设备文件名称,对于本系统为/dev/dsp;参数flags标志设备打开方式;mode为可选参数。当指定设备文件不存在时,指明新创建文件具有的权限。系统调用read()函数从声卡读取数据,其函数原型:int read(int fd,char*buf,size_t count);参数fd是设备文件的标识符,通过open函数调用获得;参数buf是缓冲区,保存从声卡获得的数据;参数count限定从声卡获得的最大字节数;如果调用成功,将返回从声卡读取的实际字节数,如果调用失败,将返回-1。因为设计声音为双向通信,故系统调用write函数向声卡写入数据,函数原型:size_t write(int fd,const char*buf,size_t count);其参数和read函数一样。系统调用ioctl对声卡进行控制,在此设置采样率,量化位数以及声道数目和控制方式。

2)视频以及图像显示。在显示设备的图形用户界面利用linux内核中的一种驱动程序接口,帧缓冲驱动(Framebuffer Driver)接口。当Linux抽象出FrameBuffer设备时[11],利用Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉后,便于在程序设计上利用用户态进程实现对屏的直接写功能,使设计简明,便于维护升级。基于这种理念的设计本质上是为了避免考虑物理显存的位置、换页机制,将对显示设备的操作抽象化、统一化,用户将Framebuffer看成是显存的一个映像,将其映射到进程地址空间后,就能直接进行读写操作,而写操作立即反应在屏幕上。这样的设计更加方便,而且效果可以达到预期指标。

3)视频信息的传输。设计网络环境中实时传输流媒体数据是运用RTP。利用它能一对一(unicast,单播)或一对多(multicast,组播)[12]传播。RTP是在传输协议基础上作为应用程序的一部分加以实现的(见图2)。

考虑到成本问题,设计采用开源的RTP库——JRTPLIB(面向对象的RTP库)。以下给出设计程序实现的主要过程。

1)初始化:使用JRTPLIB进行实时流媒体数据传输前,首先生成RTPSession类的一个实例表示此次RTP会话,再调用Create()方法对其进行初始化操作[13]。RTPSession类的Create()方法只有一个参数,用来指明此次RTP会话所采用的端口号[13]。

2)数据接收:首先调用RTPSession类的PollData()方法接收RTP或者RTCP(Real-Time Transport Control Protocol)数据报。由于同一RTP会话中允许有多个参与者(源),调用RTPSession类的GotoFirstSourceWithData()和GotoNext-SourceWithData()方法遍历携带有数据的源。从RTP会话中检测出有效数据源后,调用RTPSession类的GetNextPacket(),并从中抽取RTP数据报,RTP数据报处理完后,将其释放。

3)数据控制:JRTPLIB是个高度封装后的RTP库,在使用时可以由JRTPLIB完成传输。只要Poll-Data()或SendPacket()方法被成功调用,JRTPLIB就能自动对到达的RTCP数据报进行处理,并在需要时发送RTCP数据报,确保整个RTP会话过程的正确性[14]。

图2 结构层Fig.2 Structure layer

2 调 试

在调试阶段,进行了声音、图片以及视频等多媒体信息实时推送测试。测试结果表明,在接收终端和控制中心的距离在200m以内声音的实时性和真实性比较理想,视频能顺畅播放,图片推送十分理想。下面给出图片测试的过程以及效果图。

将所有设备连接好,在主控机窗口添加被推送内容(见图3);选择被推送图片后,选择已连接的IP(用户终端提出请求的IP地址)点击“发送数据”按钮即可将多媒体信息打包推送出去。

当用户终端接收到来自PC Control从数据库推送过来的信息时,终端根据数据包信息判断后,提取有用数据还原并显示,实验效果如图4所示。

图3 上位机推送窗口Fig.3 The windows of upper machine push system

图4 用户终端显示图 Fig.4 The showing diagram of user terminal

3 结 语

基于目前十分流行的无线wi-fi技术,通过TCP/IP协议成功地模拟出了在一个局域网内快速便捷地对媒体信息推送的系统。通过实验测试表明,数据流能快速准确地被推送并在用户终端的LCD屏上清晰显示,系统工作稳定,达到了既定目标。此项技术的实现加速了我国在数字化城市道路上的步伐,为建设智能小区提供了技术参考。

[1]范迎秋.基于网格的信息推送服务模式[J].情报探索,2007(3):58-60.

FAN Ying-qiu.Information Push Service Model Based on Grid[J].Information Research,2007(3):58-60.

[2]NICOPOLITIDIS P,PAPADIMITRIOU G I,POMPORTSIS A S.Adaptive Wireless Push System for Multichannel Environments with Single-Receiver Clients[J].Electronics Letters,2011,47(2):147-148.

[3]RANJAN D,TRIPATHI A K.Effect of Variability of a Framework upon Its Testing Effort:An Empirical Evaluation[C]∥Computer Sciences and Convergence Information Technology(ICCIT),2010 5th International Conference on.[S.l.]:IEEE,2010:146-151.

[4]YANG Xiao.IEEE 802.11n:Enhancements for Higher Throughput in Wireless LANs[C]∥IEEE Wireless Communications.[S.l.]:IEEE,2005:1284-1536.

[5]徐萌,王晓.利用信息推送技术做好图书馆的服务工作[J].科技情报开发与经济,2010,20(8):52-57.

XU Meng,WANG Xiao.Doing Well Library Service by Using Information Pushing Technology[J].Sci-Tech Information Development & Economy,2010,20(8):52-57.

[6]刘传,王毅.普适多媒体信息发布系统的构建[J].计算机工程与设计,2011,32(1):103-106.

LIU Chuan,WANG Yi.Building of Pervasive Multimedia Message Distribution System[J].Computer Engineering and Design,2011,32(1):103-106.

[7]贺杰.线程池技术应用研究[J].网络安全技术与应用,2011(5):58-60.

HE Jie.Research and Application of Thread Pools[J].Network Security Technology & Application,2011(5):58-60.

[8]李云华.独辟蹊径品内核:Linux内核源代码导读[M].北京:电子工业出版社,2009.

LI Yun-hua.Inventive Product Kernel:Linux Kernel Source Code Review[M].Beijing:Publishing House of the Electronics Industry,2009.

[9]陈维,黄永平,陈博,等.基于MOST网络的多媒体信息传输设计与实现[J].吉林大学学报:信息科学版,2010,28(2):141-146.

CHEN Wei,HUANG Yong-ping,CHEN Bo,et al.Design and Implement of Multimedia Transmission Based on MOST[J].Journal of Jilin University:Information Science Edition,2010,28(2):141-146.

[10]CHU He-ting,ROSENTHAL,MARILYN.Search Engines for the World Wide Web:A Comparative Study and Evaluation Methodology[EB/OL].(1996-10-21).[2011-04-05].http://cui.unige.ch/tcs/cours/algoweb/2002/articles/art_habashi_arash.pdf.

[11]赵洁,龚威.嵌入式Linux帧缓冲设备驱动程序[J].计算机系统应用,2010,19(12):208-211.

ZHAO Jie,GONG Wei.Framebuffer Driver Based on Embedded Linux[J].Computer Systems & Applications,2010,19(12):208-211.

[12]WARREN W G.实战Linux Socket编程[M].西安:西安电子科技大学出版社,2002:56-64.

WARREN W G.Combat Linux Socket Programming[M].Xi'an:Xidian University Press,2002:56-64.

[13]刘华文,申春,杨冬,等.语义 Web服务基础技术研究综述[J].吉林大学学报:信息科学版,2010,28(1):47-54.

LIU Hua-wen,SHEN Chun,YANG Dong,et al.Surver of Semantic Web Service Techniques[J].Journal of Jilin University:Information Science Edition,2010,28(1):47-54.

[14]WU Jia-gao,JIANG Nan,ZOU Zhi-qiang,et al.HPSIN:A New Hybrid P2PSpatial Indexing Network[J].Journal of China University of Posts and Telecommunications,2010,17(3):66-72.

Multimedia Information Push System Based on Wireless wi-fi

XIANG Liang-liang,ZHANG Shuang-zuo,CHEN Jie,SONG Zhan-wei
(College of Electronic Science and Engineering,Jilin University,Changchun 130012,China)

In order to access information quickly and efficiently in a small area,we present a solution.We combine the currently popular technology of wi-fi with embedded system,using high-resolution LCD(Liquid Crystal Display)as the terminal display device,S3C6410as the master controller.After experimental tests,the system has high stability and pictures,audios,videos and other multimedia information can be pushed and displayed immediately in the real time in a local area network,achieving the expected purpose.

wi-fi;embedded system;real-time push;multimedia information

TN915

A

2011-08-26

吉林省科技支撑计划重点基金资助项目(20100314)

项亮亮(1987—),男,浙江慈溪人,吉林大学硕士研究生,主要从事嵌入式系统研究,(Tel)86-13596404548(E-maill)xll_boy@163.com;宋占伟(1962—),男,长春人,吉林大学教授,硕士生导师,主要从事嵌入式系统研究,(Tel)86-13504473223(E-mail)songzw@jlu.edu.cn。

1671-5896(2012)01-0018-05

(责任编辑:刘俏亮)

猜你喜欢

声卡调用终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
核电项目物项调用管理的应用研究
通信控制服务器(CCS)维护终端的设计与实现
LabWindows/CVI下基于ActiveX技术的Excel调用
多功能北斗船载终端的开发应用
基于系统调用的恶意软件检测技术研究
ALSA声卡驱动程序设计
声卡数据采集系统设计方式分析
ABB Elastimold 10kV电缆终端及中间接头
利用RFC技术实现SAP系统接口通信