池鹏可,苏成悦,谢广泉,柳 丁
(广东工业大学物理与光电工程学院,广东 广州510006)
随着智能嵌入式设备的迅猛发展与普及,嵌入式操作系统的应用也变得更加广泛。Android系统是目前市场上基于Linux内核的最成功移动设备系统之一,它开源并包含移动设备操作系统所有必需的功能,被广泛地应用在各种移动设备[1]。Linux内核为Android的软件栈提供核心系统服务,这些服务包括设备驱动、网络体系、文件系统、内存管理、电源管理和进程管理[2]。Android提供广泛而实用的函数库和工具,利用它们可以基于ARM Cortex A8内核的嵌入式系统开发丰富的应用程序[3]。
在无线投影网关的硬件设计方面,有研究者[4,5]介绍了以AMD Geode Gx 533处理器和CS 5535南桥为核心,配合USB 控制器等其他相关功能芯片进行设计的方法。对于系统方案的选择,有学 者 采 用 WinCE 操 作 系 统[5,6]或 是Linux 系统[7,8]。目前无线通讯协议趋向多样化,文献[9]提出一种基于WHDI技术的高清视频通讯协议,该协议以有损传输为代价换取较高的传输速率。有学者从事无线投影这方面的研究,也有以Android为平台的无线显示产品,但以Android为平台实现多用户无线投影的开发研究尚未发现。
随着物联网技术的发展,智能移动设备可以感知和获取周围环境的信息,方便人们的生活和工作。本文设计了一个支持PC 机及Android手持移动设备的无线投影系统,使用者能够将PC 机和手持移动设备上的屏幕信息通过WIFI无线发射,经无线网关传输到投影仪和液晶电视机,并可在多个用户间切换,不受线缆的束缚,方便通过投影系统展示,实现手持移动设备实时拍摄画面的实时显示。该系统对智能家庭娱乐和智能化办公有较大意义,具备广泛的应用前景。
PC机或手持移动设备将显存数据进行编码,通过无线通信传输到无线投影网关,无线投影网关接收并解码显存数据,通过VGA 接口或HDMI接口送到投影仪显示。无线通信是基于TCP/IP 协议、802.11协议组的无线局域网[10]。系统由Android手持移动设备或PC 机、无线投影网关、投影仪组成。该系统中,Android手持移动设备和PC机作为客户端,无线投影网关作为服务端。客户端通过投影管理软件获取并发送显存数据,无线投影网关与投影仪连接,将接收到的显存信息显示在屏幕上。工作流程如图1所示。
Figure 1 Working process图1 工作流程图
如图2所示为多用户无线投影网关系统结构图。在PC机、手持移动设备上运行自主设计的投影管理软件,各台从机间断获取显存数据并发送给主机,主机上的投影管理软件有四个预览框分别显示四台从机的屏幕信息,主机将自己的屏幕显存数据编码发送给无线投影网关解码显示。当需要哪一台从机投影时,点击主机的投影管理软件上相应的预览框,切换让从机与无线投影网关通信,即主机可以让任意一台从机将显存数据编码发送给无线投影网关解码显示,自由切换,这样便实现多用户无线投影。
客户端软件包括PC 机和移动设备的无线投影软件,客户端软件主要是与无线投影网关建立无线通信,将屏幕显存数据发送给无线投影网关。为了提高无线传输速率,防止网络传输阻塞,则需要对显存数据进行压缩编码。但是,过度的压缩会导致图像失真,所以为了权衡图像的清晰度和传输速率,采用了JPEG 图像编码算法。因为JPEG 图像的压缩率是30∶1,其图像质量几乎没损耗[11],图像大小适合无线传输。
Figure 2 System structure of a wireless multi-user projection gateway图2 多用户无线投影网关系统结构
在Visual Studio 2010平台上使用C++编程语言设计PC 机的客户端管理软件。主机调用socket类的bind函数绑定本地地址、绑定应用端口为5050 并开启监听,从机连接主机时需调用socket类的connect函数发出连接请求,主机调用的socket类的accept函数会自动响应从机的连接请求进行通讯,新建线程用于接收从机发送的显存数据。
主机的监视窗口显示桌面信息是通过在线程中解码接收到的显存数据方式实现的。切换投影从机桌面信息时,主机先将用于无线投影网关的套接字发送给需要投影的从机,再断开与无线投影网关的通信。从机接收到主机的套接字后,断开与主机的连接,建立与无线投影网关的通信,将显存数据发给无线投影网关。需投影主机时,从机断开与无线投影网关的通信,重新建立与主机的连接并发送切换信号,主机接收到切换信号后,建立与无线投影网关的通信。工作过程如图3所示。
Figure 3 Working process of management software on PC图3 PC管理软件工作过程
Eclipse是著名的跨平台开源集成开发环境(IDE),主要用Java语言在Eclipse平台上开发,Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性[12],当然Eclipse也支持Android ADT 插件,这样使得Android APP开发便捷。我们在Eclipse平台上使用Java编程语言设计手持移动设备上的客户端无线投影管理软件。
手持移动设备上的客户端无线投影管理软件,调用socket类函数绑定服务端的IP和端口号,与服务端建立连接,调用service类在后台获取屏幕显存数据。获取屏幕显存信息是读取framebuffer中的数据,其方法为:
摄像头拍摄画面实现无线投影设计主要是对手机相机功能的开发,自定义surfaceView 来定义自己的相机类,显示手机摄像头实时摄像的画面。无线投影管理软件获取自定义相机预览画面的数据,对数据进行解析编码,Android移动设备作为socket客户端将采集到的数据发送给无线投影网关显示。
《地貌学原理》[13]书中认为:花岗岩在3组相互正交的原生节理切割下,形成许多长方形或近似正方形的岩块,由于风化作用将周边棱角磨圆,岩块逐渐球化,最后形成风化球又称孤石。孤石是原岩不断风化过程中尚且没有风化完全的残留物。如图1中(b)所示,该工程边坡上广泛发育形态多样的孤石,直径一般为1~6 m。根据场地勘察报告,区内地层主要为第四系人工堆积层、第四系残积层和燕山期侵入花岗岩,而燕山时期的花岗岩是形成孤石的主要岩体。工程需要对孤石进行稳定性分析,对不稳定的孤石进行治理。
随着PC机和智能手持设备的普及,无线技术应用日新月异,本文设计了一款便携式无线投影网关,实现多PC用户或智能手持移动设备用户实时切换投影,对不具备无线投影功能的投影仪实现无线投影。无线投影网关是由基于ARM Cortex A8内核处理器,内嵌Android系统,将接收到的客户端屏幕显存数据解码显示,数据经过ARM Cortex A8嵌入式处理器处理以后,通过VGA 或HDMI接口送到投影仪显示出来。
无线投影网关的硬件结构图如图4 所示,包括:三星Cortex A8处理器、LCD 接口、USB接口、SD 接口、VGA 模块、HDMI接口、WIFI模块、按键、220V 电源接口和电源转换模块。
Figure 4 Hardware structure of a wireless projection gateway图4 无线投影网关硬件结构图
为了使无线投影网关接收速度和图像处理速度更快,本系统的无线投影网关采用Samsung S5PV210处理器,Ralink RT2070 无线网卡。Samsung S5PV210处理器的主要特性[13]:
(1)运行主频可高达1 GHz,能够流畅运行Android操作系统,非常适合开发高端物联网终端等设备。
(2)S5PV210 内部集成了PowerVR SGX540高性能图形引擎,支持2D/3D 图形流畅运行,最高可支持1080p@30fps硬件解码视频流畅播放和1080p@30fps 硬 件 编 码(Mpeg-2/VC1)视 频 输入。
Ralink RT2070 兼 容IEEE 802.11g、IEEE 802.11b标准,无线传输速率高达54 Mbps,是普通11b产品 的5 倍;支 持64/128/256 位WEP 数据 加 密,同 时 支 持 WPA/WPA-PSK、WPA2/WPA2-PSK 安全机制。内置智能天线可适应不同的工作环境,使台式机或笔记本PC 机用户方便地接入无线网络,同时支持无线漫游功能。另外还可以方便地与其它的11b、11g无线设备连接。
Samsung S5PV210 处 理 器 通 过 USB 与Ralink RT2070 连接进行数据的接收,通过TFT LCD 控制器与VGA 模块连接,以便能连接上只有VGA 接口的投影仪。Samsung S5PV210 处理器也可通过HDMI接口连接上带有HDMI接口的投影仪或者液晶电视机,以达到高清效果输出。
从Android系统架构来看,软件堆栈包括在Linux内核顶层上的Java应用程序和用Java、C、C++、XML等语言编写的系统组件[14]。在本文中,无线投影网关内嵌入Android系统、使用Java语言设计的接收管理软件。无线投影网关建立一个套接字的ServerSocket对象,新建一个监听端口,等待客户端发送显存数据的请求。若有客户端的请求时,无线投影网关会新建线程负责接收显存数据;若没有客户端的请求时,但接收到主机的切换指令,便会中断其他客户端的通信,重新与主机指定的客户端连接通信。无线投影网关接收完一帧显存数据,通过handle方法将一帧显存数据传输到主线程来更新UI显示屏幕信息。如图5 所示为无线投影网关工作流程。
Figure 5 Working process of a wireless projection gateway图5 无线投影网关工作流程图
对无线投影网关系统进行整体实验测试是在100m2无障碍物的实验室进行,局域网是由主机产生的热点所形成的,目的是测试在没有路由器环境下的通信效果,这样也方便在没有路由器的办公教学场所进行无线投影。
分别对桌面分辨率为1 360*768、1 280*768和1024*768三种情况测试,经测试,无线投影网关能够显示图像信息的分辨率可高达1 360*768,满足普遍PC 机和移动设备的无线显示。经计时器测试,无线投影过程延时约1s,测试过程基本流畅,PPT 演示和视频播放效果达到要求。PC 机和移动设备测试结果数据如表1所示。
Table 1 Test result表1 测试结果
如图6所示,使用多台PC 机进行多用户无线投影测试,图中最左的PC 机为主机,其余为从机。图7所示为主机上无线投影管理软件,此软件上的三个预览图分别是各台从机的屏幕信息,一个是主机的屏幕信息。主机客户端的预览图是为了方便辨别各台从机和自由选择哪台从机进行无线投影,双击预览图即可切换从机无线投影,因而预览图不需要是实时从机屏幕信息,各从机可以每隔5s将显存数据发送给主机解码显示。如图8所示,使用手机进行Android移动设备无线投影测试,投影显示流畅,手机操作正常。
Figure 6 Test of multi-user wireless projection图6 多用户无线投影测试
Figure 7 Management software of wireless projection on PCs图7 PC机无线投影管理软件
Figure 8 Test of wireless projection on mobile phone图8 手机无线投影测试
基于Android的智能移动设备逐渐进入教育、家居等重要领域,服务于工作和生活的信息化。随着物联网技术的发展,智能移动设备在人们的工作和生活中变得越来越重要。通过Android系统构建的一个ARM 嵌入式服务端,通过获取终端的显存数据和无线传输,实现了多用户无线投影,扩展了传统投影仪的通讯功能,实现了无线投影系统中多用户机自由切换和实时投影、手持设备摄像头拍摄画面无线投影等功能。本系统通过直接获取显存数据并传输投影,提高了手机和PC 机的软件开发速度,可避开不同终端流媒体播放器兼容性问题。
本系统经测试能够显示图像信息的分辨率最高可达1 360*768,但无线投影过程还是存在约1s的延时,测试过程基本流畅,视频播放效果基本达到要求,图片和PPT 演示实时效果较佳,无延时感,满足普通PC机和移动设备多用户的无线显示需求。视频播放中出现的延时主要是因为无线投影网关采用的处理器只是单核ARM Cortex A8处理器,处理速度不理想。在同样的硬件配置下,Lunix系统的方案同样存在延时[7],若采用四核ARM Cortex A9处理器,可能能够解决因处理器速度慢而导致的效果延时问题,对Android系统以及传输协议算法的优化可能对改善延时有所帮助。Android与Linux系统相比较,二系统之间在延时问题上不存在明显优势,Android在移动设备开发方面更具优势。无线连接是投影设备的发展趋势,基于Android设计的多用户无线投影系统极具应用的优势。
[1] Khomh F,Yuan Hao,Zou Ying.Adapting Linux for mobile platforms:An empirical study of Android[C]∥Proc of 2012 28th IEEE International Conference on Software Maintenance(ICSM),2012:629-632.
[2] Shabtai A,Fledel Y,Elovici Y.Securing Android-powered mobile devices using SELinux[J].Security & Privacy,IEEE,2010,8(3):36-44.
[3] Wang Qian.A brief analysis on the framework and its kernel of android embedded system[J].Computer Development &Applications,2011,24(4):59-61.(in Chinese)
[4] Dai Wei,Zhu Guang-xi.Embedded hardware design of wireless projection gateway[J].Computer and Digital Engineering,2007,38(6):79-80.(in Chinese)
[5] Xu Duan-quan,Zhu Guang-xi.Design of wireless gateway of projector[J].Computer Engineering and Design,2008,29(5):1163-1165.(in Chinese)
[6] Cao Jie,Fu Jie,Ma Xiao-yu.The design of Windows CE embedded system wirless projector[J].Computer Knowledge and Technology,2011,7(14):3274-3275.(in Chinese)
[7] Wu Peng-zhan,Long Zhao-hua,Zhang Lin.Reseach and design of wireless projector gateway on Wi-Fi Direct[J].Computer Engineering and Design,2013,34(6):2223-2227.(in Chinese)
[8] Pura A,Raghu C.V.Design of a wireless adapter for multimedia projectors[C]∥Proc of 2011 2nd International Conference on Wireless Communication,Vehicular Technology,Information Theory and Aerospace & Electronic Systems Technology(Wireless VITAE),2011:1-4.
[9] Guan En-jing.The research of wireless projection connection device on WHDI[J].Science & Technology Information,2013(23):37.(in Chinese)
[10] Tsunashima K,Shida T,Kawano H,et al.Compact programmable network display system for portable projectors[J].IEEE Transactions on Consumer Electronics,2009,55(2):312-315.
[11] Descampe A,De Vleeschouwer C,Vandergheynst P,et al.Scalable feature extraction for coarse-to-fine JPEG 2000image classification[J].IEEE Transactions on Image Processing,2011,20(9):2636-2649.
[12] http://zh.wikipedia.org/wiki/Eclipse.
[13] User’s manual-S5PV210X[Z].Seoul:Samsung,2009.
[14] Butler M.Android:Changing the mobile landscape[J].Pervasive Computing,IEEE,2011,10(1):4-7.
附中文参考文献:
[3] 王茜.Android嵌入式系统架构及内核浅析[J].电脑开发与应用,2011,24(4):59-61.
[4] 戴维,朱光喜.无线投影网关的嵌人式硬件设计[J].计算机与数字工程,2007,38(6):79-80.
[5] 徐端全,朱光喜.无线投影机网关系统设计[J].计算机工程与设计,2008,29(5):1163-1165.
[6] 曹洁,付杰,马晓昱.基于Windows CE的嵌入式无线投影系统设计[J].电脑知识与技术,2011,7(14):3274-3275.
[7] 吴鹏展,龙昭华,张林.基于直接连接的无线投影网关的研究与设计[J].计算机工程与设计,2013,34(6):2223-2227.
[9] 管恩京.基于WHDI的无线投影连接设备的研究[J].科技信息,2013(23):37.