CarPlay wireless(蓝牙+WiFi)连接方案(Wi-Fi部分)

2024-05-27 11:58

本文主要是介绍CarPlay wireless(蓝牙+WiFi)连接方案(Wi-Fi部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇博客是继上一篇CarPlay wireless(蓝牙+WiFi)连接方案(蓝牙部分)的第二部分:Wi-Fi部分。在这篇博客中我主要是针对CarPlay over wireless方案中的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(车载的设备)。

        
        2. Apple Device IE.
           该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部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007410

相关文章

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip