吴鹏展,龙昭华,张 林
(重庆邮电大学 计算机系统结构研究所,重庆400065)
现有的802.11技术包含的两种网络类型:基础结构网络和Ad-Hoc网络[1],都有一些不足,其中基础结构网络需要AP来管理和控制网络;而Ad-Hoc虽不需要AP的支持,但是配置繁琐,市场支持率低。这两种网络并不能很好的满足这一需求。因此 Wi-Fi联盟提出了一种新的网络模式:Wi-Fi Direct。
Wi-Fi Direct是一种新的 Wi-Fi认证商标名称[2],它对应的技术规范是 Wi-Fi Alliance Peer-to-Peer(P2P)Specification,符合该技术标准的设备在无需AP的情况下,就可以方便地与其他设备实现直接连接,从而传输数据或共享应用,这将极大的扩大无线局域网的应用范围,并对未来的移动智能办公和智能家居生活等消费电子领域产生深远的影响。因此本文把Wi-Fi Direct与投影技术结合起来,研究和设计了一种基于Wi-Fi Direct的无线投影网关,试图把Wi-Fi Direct技术扩展到投影领域,以扩大 Wi-Fi Direct的影响并使投影设备摆脱线缆的束缚。
Wi-Fi Direct旨在提供一种类似蓝牙的P2P (个人对个人)网络。它的基本单元是组,组内包含两类设备:GO(group owner)和 GC (group client)[3]。GO 提 供 传 统WLAN网络中类似AP的功能,可为P2P网络中的其它客户端提供分布式服务,并且它同时支持传统WLAN网络中的STA角色;GC则是连接到GO的、类似于传统网络中的STA的客户端设备。
在P2P网络的组中,GO与GC的连接可以是一对一,也可以是一对多的。因为GO可以同时充当两个角色,所以GO可以同时加入传统WLAN网络和P2P网络,这种特性被称为并发连接。对于传统的不支持Wi-Fi Direct技术的STA,它可与GO的软AP角色连接,也能加入到P2P组中,从而保持了良好的兼容性[4]。图1所示为 Wi-Fi Direct的网络拓扑。
图1 Wi-Fi Direct的网络拓扑
Wi-Fi Direct是基于802.11系列标准的规范,它的主要特点有:
(1)使普通STA支持软AP的角色,从而提供了一种无需真实AP即可使多个终端建立P2P网络进而直接通信的方式,并且对不支持 Wi-Fi Direct的传统 WLAN的STA保持了良好的兼容性;
(2)允许设备支持并发连接,即一个无线终端设备可以同时以多种身份 (软AP、STA)加入多个无线网络中;
(3)建 立 连 接 时 采 用 的 是 WPS (Wi-Fi protected setup)[5],WPS是 Wi-Fi联盟的一个认证项目,主要目的是为了简化WLAN的安装及安全性配置工作,使用该技术,用户只用按下一个按钮或输入一个密码就可以方便、快速的建立起安全的无线网络;Wi-Fi Direct还允许建立连接的所有支持Wi-Fi Direct的设备在适当的时候都进入休眠状态,从而节约电量;
(4)Wi-Fi Direct还提供服务发现功能,即在设备建立连接之前就可获得目标设备所能提供的服务,如在与一个打印机连接之前就可知道这个打印机是否支持彩色打印。
1.3.1 组的建立
在Wi-Fi Direct中,组的建立包含了3个过程:设备发现、GO协商、条件提供。设备发现过程促使两个设备停驻到同一个信道并交换设备信息;而协商GO过程则由相互发现的设备协商由哪个设备作为GO;条件提供则是在GO与GC之间使用WPS来快速的建立安全的连接[6]。
设备发现过程的目的是为了快速找到设备并决定要与哪个设备建立连接。该过程包含两个阶段:扫描和查找。扫描阶段是为了收集设备周围的设备和网络的信息,它采用的技术与802.1-2007标准中所用的扫描技术一样,但是在发送的扫描帧中,加入了WPS信息元素和P2P信息元素。而查找阶段则用来使两个P2P设备到达同一信道进而通信。查找阶段是依靠P2P设备周期性的在监听状态和搜索状态切换来实现的,其中监听状态在一个固定的信道上捕获探询请求帧,而搜索状态则在一系列指定的信道上发送探询请求帧。两个设备能到达同一信道有赖于一种把监听状态的周期随机化的机制。
一旦发现P2P设备,两者就可进行GO协商,以确定哪一个设备作为GO,而判断标准取决协商设备的意愿值及Tie Break位。往往是软、硬件资源比较丰富的终端成为GO。
在相互发现的设备确定GO后,用户只需要在设备上输入密码或按下WPS按钮,即可自动触发WPS过程,最终会形成受WPA2保护的P2P组了,并且SSID、临时密钥都是随机生成的。无需用户对设备设置进行太多的干涉。
1.3.2 Wi-Fi Direct的电源管理
在传统WLAN中,AP是不能进入休眠状态,但在Wi-Fi Direct中,多由移动终端充当软AP角色,而高效的使用电源对于移动终端来说具有重要意义。因此在P2P规范中,以 Wi-Fi的Power Save和 WMM-PS[7]为基础进行修改,创建了两种新的节能机制:P2P-PS和P2P-WMM-PS,以期能达到最大化的节省能源。P2P节能机制的核心是机会节能和缺席通知。机会节能帮助GO进入休眠状态,缺席通知则是告知P2P组中的其它设备GO的休眠计划,这样P2PGC也可在此段时间内进入休眠状态[8]。P2PGC也可给GO发送Presence Request帧来对GO的休眠计划施加影响。
在数字技术迅猛发展的今天,投影机已经成为多媒体教室、家庭影院、多功能会议厅等演示场所的标准配置。但大多投影机传输数据还以线缆为媒介,这导致了诸多麻烦,如布线的更换,会场人员的频繁移动等。因此在文中,设计了一种无线投影网关,该网关使用Wi-Fi Direct技术传输数据,可做为普通投影仪的外接模块,方便用户连接,解决了上述问题。
如图2所示为无线投影网关系统结构图。在该系统中,无线投影网关通过VGA或HDMI接口与投影仪连接,并使用Wi-Fi Direct与其它无线终端通信。并且无线投影网关充当GO,它的软AP角色与其它无线终端建立P2P网络。而它的STA角色则可与传统WLAN网络的AP建立连接,同时把无线投影网关的软AP角色与STA角色桥接起来,这样无线终端的桌面信息则会经无线投影网关的软AP角色传递给投影仪,而其它访问互联网的数据则可经过无线投影网关的软AP转发给STA角色、并进一步传递给实体AP,此时无线终端即可通过无线进行投影又可通过无线访问互联网了。
图2 无线投影网关系统结构
无线投影网关的主要功能包含:完成无线信号的收发;处理无线终端发送过来的桌面数据;同时还要具备向投影仪输出高分辨率及高刷新率的图像的能力。这就需要提供对HDMI接口的支持,但是为了与只有VGA接口的设备保持良好的兼容性,还需要支持VGA接口。因此,在硬件选择中,微处理器采用三星S5PV210[9],无线网卡芯片选择Atheros的AR9374,VGA输出芯片SDA7123。
其中S5PV210是三星推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器,它的主要特点有:
(1)采用了 ARM CortexTM-A8内核,ARM V7指令集,主频可达1GHZ,可以实现每秒运算2亿条指令集的高性能运算能力;
(2)对多媒体提供了良好的支持,支持流畅的2D/3D图形加速,可支持 MPEG-4/MPEG2、H.264/H263等,并支持高达1080p@30fps硬件解码。支持高达1080p的HDMI高清输出,并可提供8-channel/112kHz/24-bit的立体声音输出;
(3)TFT-LCD接口支持并行的24位RGB输出,分辨率最高可达1024x768;
(4)支持4路SDIO接口,可直接使用DMA。
AR9374是Atheros专门为嵌入式设备提供的高度集成的、低功耗802.11a/b/g/n解决方案。被广泛应用在数字电视、蓝光播放机、数字媒体适配器、无线音频等产品中。AR9374使用了Atheros的第六代802.11技术,可工作在2.4GHz和5GHz双频段中,提供高达300Mbps的数据吞吐率。它内部集成了功能强大的CPU及内存子系统,可有效缓解主CPU的压力,以使主CPU专心处理其它数据流。它同时提供极为安全的链路访问,安全上除支持AES,TKIP,WEP外,也支持中国WLAN的强制安全标准WAPI。通信接口还提供对GPIO的支持,以缩小设计难度[10]。
SDA7123是三路10位视频D/A转换器,它包括三路高速、10位输入的视频DA转换器、标准的TTL输入和互补输出高阻抗的模拟输出电源。它有三路独立的10位输入端口,可以在单电源5V下工作,也可以在单电源3.3V下工作。绿通道可带同步信号输出。它的数据更新频率MSPS为140MHz,SDA7123内带1.23V基准,工作温度范围宽 (-40+85℃),它采用QFP型48线方形扁平封装。适用于数字视频系统、图像处理、仪器、高精度显示器、视频信号重建等系统中。
无线投影网关硬件框图如图3所示。微处理器S5PV210通过SDIO与AR9374连接,负责无线信号的收发,SDA7123通过TFT LCD控制器与S5PV210连接[11],并向外提供VGA接口,以对只有VGA接口的设备提供良好的兼容性;而S5PV210的HDMI控制器则可直接连接HDMI接口,向外提供HDMI信号。
图3 无线投影网关硬件框架
整个无线投影网关系统的软件设计包含两个部分:投影网关端和客户端。其中投影网关端的软件烧录在嵌入式无线投影网关硬件中,客户端则安装在要投影的无线终端中,如PC机、智能手机等。如图4所示为系统的软件设计。
图4 无线投影网关系统的软件设计
2.3.1 建立直接连接网络软件设计
在投影网关端,使用Linux作为嵌入式系统,为对Wi-Fi Direct提供支持,内核采用3.0。对 Wi-Fi Direct的控制和配置则使用wpa_supplicant[12]。在上述无线投影网关的硬件平台上移植Linux 3.0及wpa_supplicant等相关依赖的软件,即可开启 Wi-Fi Direct了。开启一个固定SSID的Wi-Fi Direct的命令[13]为:
此时Linux系统就会打开两个无线接口:wlan0和mon.wlan0。无线投影网关也对应有了两个角色了,一个STA角 色 wlan0,一 个 GO 角 色 mon.wlan0。其 中mon.wlan0为客户端提供软AP功能,供客户端加入到Wi-Fi Direct网络。而wlan0则可加入到附近的传统WLAN网络,并可桥接wlan0和mon.wlan0,以便客户端的访问互联网的数据经无线投影网关转发到实体AP。实现桥接功能的转发命令为:
2.3.2 桌面捕捉与渲染软件设计
一旦建立P2P网络,客户端设备就直接连接无线投影网关了。而无线投影网关创建一个进程A监听端口50001,负责从客户端处接收H.264流,使用S5PV210的硬件解码器解码H.264数据流,并渲染到HDMI或VGA接口供投影仪显示。
在客户端,即使该设备不支持Wi-Fi Direct,它也可加入到P2P网络中,并使用socket在端口50001与无线投影网关建立传输屏幕数据流的连接。在获得访问投影仪的权限之后,就可抓取屏幕的内容,把获得的内容编码为H.264,最后把H.264流发送给无线投影网关。之所以没有使用JPEG等静态图像编码,是因为高分辨率的桌面抓取的桌面图像数据量比较大,会给无线网络的传输带来很大的压力。而H.264则是一种高性能的视频编码技术[14],它具有很高的数据压缩比率的同时还能拥有高质量的图像效果,这对使用无线网络传输来说是一个比较合适的选择。
2.3.3 用户投影切换软件设计
投影仪在很多场合的应用,都涉及到用户切换的问题。如在圆桌会议中,一个演讲者做完演讲,就需要把访问投影仪的权限释放给下一个演讲者。在本文中,采用多进程、多端口的设计方法来有效解决这一问题。客户端和无线投影网关端的一个进程A在端口50001负责传输H.264流,另一个进程B在端口50002负责传输用户切换的控制数据。多进程、多端口的方法可以有效的识别H.264数据流和控制信息,避免在如何区分数据流和控制信息上占用太多的MCU资源,从而使得H.264数据流得到及时的处理,进而保证屏幕显示的实时性。
无线投影网关端也创建一个进程B负责监听端口50002,判断是否有访问投影仪的申请。如果有申请,就询问正在投影的设备是否愿意释放投影的权限,并根据正在投影设备的回复响应预投影设备的请求。如图5所示为无线投影网关的进程B的流程图。
图5 无线投影网关的进程B的流程
为了验证无线投影网关的实际效果,特通过实验对其进行测试。试验的条件是:无线投影网关和客户端都使用802.11n,桌面分辨率分别设置为1024x768和1280x800两种情况,两者的距离为5m,并且分别在开启桥接和关闭桥接的条件下进行测试。并且通过计算客户端的桌面与投影仪投影的桌面的时钟差来估算传输的时延。试验结果数据见表1。
表1 试验数据结果
实验数据显示在关闭桥接的时候,无线投影网关只负责通过无线收发桌面数据流,没有客户端访问互联网数据的分流,此时接收到的桌面帧数比打开桥接时要多一些;而对于高分辨率的桌面,因为其数据量比低分辨率的要大,因此接收数据帧的能力也明显低于低分辨率时的能力。在上面的实验环境中,通过计算时钟的差距,可以估算到时延都约为1秒。对于PPT演示、媒体播放等还是能够给予良好的支持。
Wi-Fi Direct作为一项新近诞生的技术规范,解决了人们在无AP时进行直接连接的需求,必将成为无线局域网下一个发展热点。本文在研究 Wi-Fi Direct特性的基础上,设计了一种无线投影网关,该网关可以作为外接模块用在已经面市的投影仪上,也可作为内嵌模块接入到正在研究的产品中,方便用户通过无线与投影仪直接连接,满足了人们对无线办公的需求。但在网络环境复杂的条件下,性能会有一些下降,因此需要在下一步的工作中加强对RTP协议的研究。
:
[1]IEEE 802.11-2007,Information technology-telecommunications and information exchange between systems-local and metropolitan area networks-specific requirements-Part 11:Wireless LAN medium access control and physical layer specifications [S].
[2]Wi-Fi Alliance:Wi-Fi voice-enterpise white paper [EB/OL].http://www.wi-fi.org/register.php?file=wp_Wi-Fi_Direct_20101025_Industry.pdf,2010.
[3]Wi-Fi Alliance.Wi-Fi certified Wi-Fi direct frequently asked questions [EB/OL].[2010-10-21].http://www.wi-fi.org/sites/default/files/uploads/files/faq_20101021_Wi-Fi_Direct_FAQ.pdf.
[4]Yoon H,Kim J.Collaborative streaming-based media content sharing in WiFi-enabled home networks [J].IEEE Transactions on Consumer Electronics,2010,56 (4):2193-2200.
[5]Wi-Fi protected setup specification – version 1.0,Wi-Fi protected setup specification [S].
[6]Wi-Fi Peer-to-Peer technical specification v1.1,Wi-Fi Peer-to-Peer technical specification [S].
[7]WMM Specification v1.1,WMM (including WMM Power Save)specification [S].
[8]Camps Mur D,Perez Costa X,Sallent Ribes S,et al.Designing energy efficient access points with Wi-Fi direct [J].Computer Networks,2011,55 (13):2838-2855.
[9]CHEN Wenzhen,BIAN Weifeng,ZHANG Yawei.Porting LCD drive based on android OS [J].Instrumentation Technology,2012 (4):16-19 (in Chinese). [陈文震,卞卫锋,张亚伟.Android系统下的LCD驱动移植 [J].仪表技术,2012(4):16-19.]
[10]Atheros.AR9374datasheet[EB/OL].[2012-06-25].http://www.qca.qualcomm.com/media/product/product_113_file1.pdf.
[11]FANG Peng,ZHANG Hongyu,ZHAO Minghui.Design of VGA display technology based on ARM CPU S3C2440 [J].International Electronic Elements,2011,19 (11):174-176(in Chinese). [方鹏,张红雨,赵明辉.基于ARM处理器S3C2440的VGA显示技术 [J].电子设计工程,2011,19(11):174-176.]
[12]Malinen J.Linux WPA/WPA2/IEEE 802.1Xsupplicant[EB/OL].[2012-07-03].http://w1.fi/wpa_supplicant/.
[13]linuxwireless.org,P2Phow to [EB/OL]. [2010-06-25].http://linuxwireless.org/en/developers/p2p/howto.
[14]TAO Guidong,ZHANG Zhanjun.Research on the QoS guarantee for H.264video stream transmission based on RTP [J].Journal of Armored Force Engineering Institute,2006,20(5):58-60 (in Chinese).[陶桂东,张占军.基于RTP协议H.264视频流传输QoS保证的研究 [J].装甲兵工程学院学报,2006,20 (5):58-60.]