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

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短