本文主要是介绍CarPlay wireless(蓝牙+WiFi)连接方案(Wi-Fi部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Wi-Fi方面,车载设备工作在AP模式下,Apple设备作为STA连接到车载设备(AP)。首先,在蓝牙进行Carplay相关交互前,车载设备的Wi-Fi已经工作在AP模式下,车载设备的Wi-Fi证书(Wi-Fi credentials,即Wi-Fi(AP)的BSSID,SSID,Security,WPA2 PSK,工作信道(Operating Channel))通过iAP2 over Bluetooth与Apple设备交互成功后,接下来Apple设备作为STAt就开始与车载设备进行Wi-Fi连接了,该连接就是通常的基于Wi-Fi基础结构(Infrastructure)的WiFi连接,对于Wi-Fi及802.11、WFA协议部分,我将在我的另一个博客系列中做介绍,在这里就只针对CarPlay相关的Wi-Fi做介绍。当基于Wi-Fi的无线链路建立好后,接下来就是苹果的Bonjour服务来建立CarPlay会话。CarPlay会话建立完成后,接下来就是iAP2 profile的断开和蓝牙的断开。整个CarPlay over wireless的连接过程就完成了, 下图是在2.4GHz下的CarPlay over wireless连接图:
接下来,主要介绍CarPlay over wireless方案中对Wi-Fi的要求:
1. 在硬件上要求支持802.11n 2.4GHz HT20或802.11n 5GHz HT20 or HT40,建议支持802.11ac VHT20,VHT40,VHT80。
2. 在频段上要求工作在2.4GHz或5GHz,如果工作在2.4GHz频段,要求车载设备(AP)只能工作在信道1(2.412 GHz)、6(2.437 GHz)或11(2.462 GHz);如果工作在5GHz频段,要求车载设备(AP)工作在信道36(5.180 GHz)、40(5.200 GHz)、44(5.220 GHz)、48(5.240 GHz)、149(5.745 GHz)、153(5.765 GHz)、157(5.785 GHz)或161(5.805 GHz)。建议工作在5GHz频段,此外,需要限制信道切换(channel switch)功能在CarPlay中使用。
3. 基本的(Basic)Wi-Fi要求:
1). 车载设备的Wi-Fi需要工作在Software Access Point(SWAP)模式,也就是我们通常说的AP模式
2). 车载设备的Wi-Fi需要支持DCF(Distributed Coordination Function)
3). 车载设备的Wi-Fi需要支持下面基本类型的帧:
Association Request and Response
Re-association Request and Response
Probe Request and Response
- Broadcast Probe Requests
- Directed Probe Requests
Beacons
Disassociation
De-authentication
RTS/CTS
ACK
Data Frames
Null Frames
Public Action Frames
Receive Defragmentation(mandatory)
Transmit Fragmentation (optional)
4). 车载设备的Wi-Fi需要支持电源管理和IEEE802.11定义的省电功能。
5). 车载设备的Wi-Fi可以支持short guard interval(400 ns)。
6). 车载设备的Wi-Fi需要支持OFDM数据率:6,9,12,18,24,36,48和54Mbps。
4. 高级的(Advanced)Wi-Fi要求:
1). 车载设备的Wi-Fi需要支持WFA(Wi-Fi联盟)的WMM(WFA Wireless Multimedia)的QoS(Quality of Service)机制。
2). CarPlay协议要求用AC_VO类型的QoS(WMM)Wi-Fi数据包传输音频数据流和控制数据流,用AC_VI类型的QoS(WMM)Wi-Fi数据包传输屏幕/视频数据流。
3). 车载设备的Wi-Fi也可以支持U-APSD(Universal Advanced Power Save Delivery)。
4). 当Apple设备要进入802.11省电模式时,它会发一个带有PM bit的null data包给车载设备(AP),车载设备必须ACK这个包并且必须flush其Tx 硬件队列(hardware queue)里的所有还未发送出去的数据包,而还未进入硬件队列的包将不会再发送。
5. Wi-Fi安全要求:
1). 需要支持并使用WPA2个人安全模式(WiFi Protected Access version 2 Personal) ,也就是我们通常说WPA2-PSK安全模式。
2). 所有支持的加密算法/功能都应该有硬件来完成。
6.性能要求:
最后,介绍一下在CarPlay over wireless中所用到的两个信息元素(information Element(IE)),同时分别附上我在自己的开发平台上添加这两个IE的截图供参考(用Wireshark抓的beacon包)。
1. IEEE802.11 Interworking IE.
该IE要求车载设备(AP)支持。该IE中的Access NetWork Option字段用来提供是否CarPlay的车载设备(AP)提供Internet共享服务;Venue info字段用来告知该网络是由车载的设备提供,其Group code值为10(车载的设备)。
该IE是Vendor IE,由Vendor自定义(ID:221(0xDD),Apple的OUI:0x00-0xA0-0x40,Sub_type:0x00),该IE需要添加在车载设备(AP)的Beacon,Probe Response和Association Response帧中。而该IE中最重要的就是其payload部分,由苹果公司自定义,有Flags,Name,Manufacture,dWds,Bluetooth MAC,Device ID等信息,细节可以查看Apple的CarPlay协议中的定义。
这篇关于CarPlay wireless(蓝牙+WiFi)连接方案(Wi-Fi部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!