WFD简介和连接过程

  WiFI Display(WFD)是WiFI Alliance 开发出的一种规范,使多媒体设备之间建立和维持一个基于WiFi的连接,并且利用这个连接推进视频/音频的在目标设备的呈现播放。

1 WFD简介

   Wi-Fi Display,手机/移动PC-电视/显示器将可以实现无线连接。该标准由WiFi无线产业联盟制定,还在测试中,技术可以压缩3D视频,从而通过Wi-Fi传输。3D视频很耗宽带,如果不压缩就会迟滞,Wi-Fi Display技术可以将延迟时间降到百分之一毫秒以下。

   Miracast实际上就是WiFi联盟(WiFi Alliance)对支持WiFi Display功能的设备的认证名称(该认证项目已经在2012年9月正式启动)。而通过Miracast认证的设备,便可提供简化发现和设置,实现设备间高速传输视频。

2 WFD建立和检测

(1)设备间建立WFD

1)必要的部件

  这里所说的设备,是指有android系统的手机、平板、TV等,或者有HDMI口的TV。

  设备间创建WFD是由2个设备来建立的,其中一个为发送端(Source),另一个为接收端(Sink)。 如下图所示为WFD的建立示意图。

2)使用无线传屏器同电视建立连接

  1.将无线传屏器和电视使用HDMI线连接;

  2.将电视打开,同时确保电视选择HDMI接入,而不是在其他接入方式;

  3.使用micro-USB线给无线传屏器供电;

  4.打开手机、平板或电脑的投射功能进行连接。

(2)测试Wifi Display(使用两台手机)

1)打开手机设置界面点击“显示”

2)在显示界面点击投射

3)在投射界面点击右上方的图标

4)点击勾选“开启无线显示”

5)在另一台手机进行上述同样的操作

6)打开此设备,让其他设备可检测到此设备

7)此时等待其他设备连接

8)此时另一台设备界面会有已打开设备的设备号,点击连接,第一台设备将收到建立连接的提示   9)点击“接收”,此时投射成功

3 WFD调试基础

(1)文件位置 在平台基线的base的Vendor/qcom/proprietary/下。

Kernel 中的WFD代码位于\kernel\drivers\media\platform\msm\wfd

(2)JNI的交互 在WFD代码中,WFD的实现是通过JNI同使用C/C++写的framework层和java写的API组成的。其控制流如下:

WFD app->SessionManagerService.java(SM-A)->WFDNative.java->JNI Layer->WFDNative.cpp->Wifidislay.cpp->SessionManager.cpp(SM-B)。

(3)WFD连接基础

  WFD建立在wifi p2p连接基础上的,支持以下两种连接方式

1)wifi direct:(必须支持)

   设备无需通过无线路由器即可相互连接的技术,需要一台设备作为组织者建立一个类似ap功能的网络,其他设备可以搜索到并用wifi连接上

2)TDLS:(可选)

  2台wifi设备连接在同一个Ap上,它们可以直接建立一个点对点的通道实现数据传输。 如下图所示为WFD建立的11个过程。

1.Device Discovery

  wfd设备之间的搜索探测功能,使用现有的wifi p2p技术为基础,并在wifi信标、探测信号中加入了wfd特有格式的探测信号。

2.Service discovery

  此功能是可选功能,也是建立在wifi p2p原有的servicediscovery基础上,并加入wfd特有格式的请求和回应命令。

3.Device selection

   用户选择一个需要连接的设备,Wifi-direct 连接的强制和默认的,TDLS可选。若有2个sink,一级和二级sink,wifi p2p组织者必须是source。

4.Wifi connection setup

  使用wifi direct和tdls技术,建立wfd基础线路。 将设备建立TCP连接,并创建一个控制端口来建立和维护session,该端口跑的协议是RTSP。

5.Display capability negotiation

  参数协定,决定需要使用的最佳参数,包括音视频解码率、分辨率、信道负载等等。

  若有一级和二级sink存在,都需要单独设定。

  过程和命令如下图。

6.UIBC

   setup user input back channel,用户输入反向通道,此功能是可选的。

  有两种类型:1)generic:硬件无关型,如鼠标点击,按键点击、touch点击、放大缩小等。 2)HIDC人机接口设备控制:包括红外线、USB、蓝牙、WIFI、游戏杆、遥控器等。

7.Link content protection

   建立内容保护机制,可选功能。采用的是HDCP2.0安全协议,需要在数据流传输前建立。 8.WFD Session setup

  WFD核心步骤,必须在能力协定的基础上建立。建立过程使用RTSP通信,具体见下图。

9.AV Streaming

  先将Audio和video多路复用成一个MPEG2传输流。

  在传输流头部用MPEG2-TS格式打包,并封装RTP、UDP、IP报头如下图。

10.Payload control capability

  在数据流建立之后,需要有控制管道负载的能力,包含以下功能: 1)时间同步  如果有2个sink设备,二者音视频必须同步,实现保真。2)编码速率控制:因信道条件和电源管理优化控制管道负载。

11.Display Session Teardown

  WFD会话终止,按连接分两种方法:

    1)Wifi-direct:跟 wifi p2p规范一样,source和sink有序拆除连接。

    2)TDLS: IEEE P802.11z specification规范动作,有序的拆除终止连接。

时间: 2024-10-13 17:23:14

WFD简介和连接过程的相关文章

[转]使用Wireshark来检测一次HTTP连接过程

Wireshark是一个类似tcpdump的嗅探软件,界面更人性化一些,今天我用它来检测一次HTTP连接过程. 安装好之后,先配置一下,选择Capture->Options,先设定你要嗅探的网络接口, 然后在Capture Filter里输入tcp port http,说明只监听80端口的tcp请求. 设置好这些,你就可以点击Start开始检测了. 打开浏览器随便浏览一个网页,你就会得到类似下面的结果: 我浏览的是Google的页面.这里211.100.209.50是浏览器,66.249.89.

Android WifiDisplay分析二:Wifi display连接过程.

这一章中我们来看Wifi Display连接过程的建立,包含P2P的部分和RTSP的部分,首先来大致看一下Wifi Display规范相关的东西. HIDC: Human Interface Device Class  (遵循HID标准的设备类)UIBC: User Input Back Channel  (UIBC分为两种,一种是Generic,包含鼠标.键盘等:另一种是HIDC,HID是一个规范,只有遵循HID的标准,都可以叫做HID设备,包含USB鼠标.键盘.蓝牙.红外等)PES: Pac

2G、3G无线路由器拨号连接过程

无线MODEM是为数据通信的数字信号在具有有限带宽的模拟信道上进行无线传输而设计的,它一般由基带处理.调制解调.信号放大和滤波.均衡等几部分组成.无线MODEM又名"无线调制解调器",区别于传统modem之处在于调制后的信号是通过无线传输的.无线modem有2G和3G各种网络的,如GPRS.CDMA.EDGE.WCDMA.CDMA2000(EVDO).TD-SCDMA等. 无线MODEM一般常见的接口有RS232串行口.USB口和PC卡式接口.RS232串行口和USB口一般都是外置式,

类的加载和连接过程

类是平台能加载的最小程序代码单元,要将新的类加入到jvm的当前运行状态中,以下操作会被执行.首先,类文件必须被加载进来并连接,而且必须进行大量的验证.之后会提供一个代表该类的新class对象给正在运行的系统,并可以创建新的实例. 类的加载和连接 加载过程首先要读取构成类文件的字节流并给类的表现形式解冻.该过程一开始是创建一个字节数组,其内容通常是从文件系统中读取的,然后产生与加载的类对应的class对象.在这个过程中会对类做一些基本的检查,但在加载过程结束时,class对象还不成熟,所以类不可用

Socket连接过程

<pre name="code" class="objc">Socket的英文原义是"孔"或"插座".作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端口 <span style="color: rgb(51, 51, 51); font-family: arial, 宋体, sans-serif; font-size: 14px; li

iOS socket原理及连接过程详解

连接过程图解(度娘的拿过来用) 1.网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket. 2.我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标

TCP建立连接和释放连接过程

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议.TCP建立连接需要三次握手,释放连接需要四次握手. 1.TCP整个过程流程图 并且TCP整个过程可以看成是状态机 2.TCP建立过程(三次握手) TCP连接过程: (1) 服务端通过socket,bind和listen准备好接受外来的连接,此时服务端状态为Listen (2)客户端通过调用connect来发起主动连接,导致客户端TCP发送一个SYN(同步)字节,

第三次实验报告:使用Packert Tracer分析TCP建立连接过程.

姓名:贡觉扎西 学号:201821121122 班级:计算1814 1.实验目的 使用路由器连接不同的网络 使用命令行操作路由器 通过抓取HTTP报文,分析TCP连接建立的过程 2.实验内容 使用Packet Tracer,正确配置网络参数,通过抓取HTTP数据包,分析TCP连接建立过程. 建立网络拓扑结构 配置参数 抓包 分析数据包 3. 实验报告 1.建立网络拓扑结构 2.配置参数 客户端的ip地址为192.168.1.28,网关为192.168.1.29 ·服务器的ip地址为192.168

SSH基本简介及连接交互过程

简介: SSH(Secure+SHell):是一种网络协议,顾名思义,就是非常安全的shell,主要用于计算机间的加密传输. SSH服务基于非对称加密(public-key cryptograthy,也称公开密钥加密)技术实现数据加密传输.该技术会生成一对密钥,一个对数据进行加密,而且只能用于加密,而另一个只能用于解密.使用加密密钥加密后的数据,只能用对应的解密密钥才能解密.而且只知道其中一个密钥,无法计算出另一个.因此,如果公开了一对密钥中的一个,并不会危害到另一个密钥.通常把公开的密钥称为公