Carplay wireless認證

2023-11-15   ?   orange

CarPlay是蘋果公司為車載系統(tǒng)開發(fā)的一項功能,該功能將iOS設(shè)備的界面通過USB或wireless(藍牙+Wi-Fi)投影顯示在車載屏幕上,可以讓駕駛員在車內(nèi)通過車載屏幕直接方便地使用iOS設(shè)備上的功能。例如,在車載屏幕上直接使用iPhone或iPad上的地圖、導(dǎo)航、Siri語音助手、音樂、電話、短信等各項iOS上的服務(wù)及功能。換句話說,就相當于是在自己的車載系統(tǒng)上安裝了一個“iOS操作系統(tǒng)”。該功能在很大程度上減少了駕駛員在車內(nèi)對iPhone或iPad的直接使用及操作,從而降低了對駕駛員在車輛駕駛過程中的干擾。

目前,在很多報道中將CarPlay理解成一套車載系統(tǒng),這種解釋是不完全正確的。CarPlay是蘋果公司為車載系統(tǒng)開發(fā)的一項功能,也可以說是車載系統(tǒng)中的一項新的應(yīng)用,并非是一套車載系統(tǒng)。

CarPlay有兩種實現(xiàn)途徑:

一種是通過wired(USB)連接iOS設(shè)備和車載系統(tǒng)設(shè)備,另一種是通過wireless(藍牙+Wi-Fi)來連接iOS設(shè)備和車載系統(tǒng)設(shè)備。CarPlay的兩種連接方案都是需要通過iAP2 (iOS Accessory Protocol,version 2)協(xié)議以及Bonjour服務(wù)來建立CarPlay會話(CarPlay Session)從而實現(xiàn)CarPlay功能的。在我接下來的博客中,我將分別介紹CarPlay的wired(USB)連接方案,CarPlay的wireless(藍牙+Wi-Fi)連接方案,以及兩種連接方案相互切換的實現(xiàn)。

另外,對于CarPlay的USB連接方案,在硬件上需要支持USB 2.0(含)以上版本。iOS設(shè)備需要支持閃電接口(Lightning接口),也就是說iPhone5之前的蘋果設(shè)備不支持wired(USB)連接方式的CarPlay。在操作系統(tǒng)方面,蘋果公司從iOS 7.1開始加入了CarPlay的功能,無論是wired還是wireless的連接方式,iOS設(shè)備的操作系統(tǒng)版本都需要在7.1及以上。

Carplay wireless bt+ wifi :bt:

在蘋果公司推出基于wired(USB)的CarPlay連接方案后(在我的上一篇博客中已對CarPlay的USB的連接方案做過介紹,這里就不介紹了),接下來蘋果公司又推出了基于wireless(藍牙+WiFi)的CarPlay連接方案。

基于wireless的CarPlay連接,顧名思義,就是車載設(shè)備和Apple設(shè)備不需要連接任何數(shù)據(jù)線連接,直接通過無線的方式實現(xiàn)CarPlay的功能。在這種方案中,CarPlay的setup由藍牙發(fā)起,在這篇博客中我將介紹CarPlay over wireless中的藍牙部分。

首先,CarPlay的wireless連接方案要求車載設(shè)備能夠提供藍牙的連接(Bluetooth connection)、服務(wù)發(fā)現(xiàn)(service discovery)、配對(pairing)、以及iAP2 over Bluetooth。蘋果公司在其協(xié)議規(guī)范中對藍牙物理層要求車載設(shè)備支持藍牙2.1+EDR(Enhanced Data Rate)以及定義在REF 8.2.6中定義的調(diào)制方式。在藍牙連接setup之前,車載設(shè)備需要周期性的執(zhí)行質(zhì)詢掃描(inquiry scans),若收到Apple設(shè)備的質(zhì)詢,車載設(shè)備會回一個帶有BT EIR bit的FHS(Frequency Hoping Sequence:調(diào)頻序列)的包來應(yīng)答(respond)。Apple設(shè)備接收到車載設(shè)備的藍牙EIR(Extended Inquiry Response)會檢測其是否含有CapPlay UUID(Universal Unique Identifier),來確定該車載設(shè)備是否支持wireless CarPlay。支持wireless CarPlay的車載設(shè)備會在其應(yīng)答包封裝支持CarPlay服務(wù)的128bit的UUID(0xEC884348CD4140A29727575D50BF1FD3)。而支持CarPlay over wireless的Apple設(shè)備也需要在其服務(wù)(service)的廣播數(shù)據(jù)中包含128 bit的UUID:0x2D8D2466E14D451C88BC7301ABEA291A。車載設(shè)備以此區(qū)別普通藍牙設(shè)備和支持CarPlay的Apple設(shè)備。

接下來,就是藍牙連接的setup、配對以及iAP2。配對過程要求車載設(shè)備必須支持使用數(shù)字比較(Numeric Comparison)的標準藍牙安全簡單配對(Secure ** Pairing)。當安全的藍牙鏈路建立好后,車載設(shè)備需要協(xié)商iAP2 profile建立iAP2會話,用于交互Wi-Fi證書(Wi-Fi credentials,即Wi-Fi的BSSID,SSID,Security,WPA2 PSK,工作信道(Operating Channel))。其中該藍牙鏈路中的iAP2 Client僅僅提供Wi-FI證書,當CapPlay會話建立完成后藍牙鏈路會斷開。

需要注意的是,iAP2 建立后,車載設(shè)備可能還協(xié)商其他藍牙profiles,像HFP,A2DP,*RCP等。然而,一旦CarPlay會話建立完成,Apple設(shè)備將通知車載設(shè)備斷開所有處于活動狀態(tài)的profiles。其中協(xié)議還規(guī)定,如果Apple設(shè)備在藍牙EIR中顯示wireless CarPlay是可用的,車載設(shè)備必須首先開始協(xié)商iAP2 profile,接下來才是協(xié)商藍牙的其他profiles。

在車載設(shè)備的Wi-Fi證書通過iAP2 over Bluetooth與Apple設(shè)備交互成功后,接下來就開始Apple設(shè)備與車載設(shè)備的Wi-Fi連接了,關(guān)于Wi-Fi部分我將在CarPlay over wireless方案的下一篇博客中做介紹。

下圖是CarPlay over wireless中藍牙部分的交互邏輯簡圖:


Carplay wireless認證(圖1)


最后,當基于wireless的CarPlay會話成功建立后,考慮到同頻干擾的影響,針對Wi-Fi工作在2.4GHz頻段和5GHz頻段的兩種情況,蘋果公司在其CarPlay協(xié)議上對藍牙行為也有些不同。因為藍牙也是工作在2.4GHz頻段,對于Wi-Fi工作在2.4GHz頻段的情況,在Carplay會話成功建立后的,與Apple設(shè)備的藍牙鏈路必須被終止,車載設(shè)備的藍牙子系統(tǒng)需要被禁用,與其他設(shè)備的所有藍牙連接也都必須終止;而對于Wi-Fi工作在5GHz頻段的情況,同樣,在Carplay會話成功建立后的,車載設(shè)備與建立好CarPlay會話的Apple設(shè)備的藍牙鏈路也必須被終止,但其藍牙子系統(tǒng)不需要禁用,可以與其他沒有建立CarPlay會話的藍牙設(shè)備建立藍牙連接和profiles。

  wireless bt+ wifi :wifi:

在Wi-Fi方面,車載設(shè)備工作在AP模式下,Apple設(shè)備作為STA連接到車載設(shè)備(AP)。首先,在藍牙進行Carplay相關(guān)交互前,車載設(shè)備的Wi-Fi已經(jīng)工作在AP模式下,車載設(shè)備的Wi-Fi證書(Wi-Fi credentials,即Wi-Fi(AP)的BSSID,SSID,Security,WPA2 PSK,工作信道(Operating Channel))通過iAP2 over Bluetooth與Apple設(shè)備交互成功后,接下來Apple設(shè)備作為STAt就開始與車載設(shè)備進行Wi-Fi連接了,該連接就是通常的基于Wi-Fi基礎(chǔ)結(jié)構(gòu)(Infrastructure)的WiFi連接,對于Wi-Fi及802.11、WFA協(xié)議部分,我將在我的另一個博客系列中做介紹,在這里就只針對CarPlay相關(guān)的Wi-Fi做介紹。當基于Wi-Fi的無線鏈路建立好后,接下來就是蘋果的Bonjour服務(wù)來建立CarPlay會話。CarPlay會話建立完成后,接下來就是iAP2 profile的斷開和藍牙的斷開。整個CarPlay over wireless的連接過程就完成了,下圖是在2.4GHz下的CarPlay over wireless連接圖:


Carplay wireless認證(圖2)

  接下來,主要介紹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頻段,要求車載設(shè)備(AP)只能工作在信道1(2.412 GHz)、6(2.437 GHz)或11(2.462 GHz);如果工作在5GHz頻段,要求車載設(shè)備(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)(國內(nèi)僅支持高頻,即>=149)。建議工作在5GHz頻段,此外,需要限制信道切換(channel switch)功能在CarPlay中使用。

3.基本的(Basic)Wi-Fi要求:

1)車載設(shè)備的Wi-Fi需要工作在Software Access Point(SWAP)模式,也就是我們通常說的AP模式;

2)車載設(shè)備的Wi-Fi需要支持DCF(Distributed Coordination Function);

3)車載設(shè)備的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)車載設(shè)備的Wi-Fi需要支持電源管理和IEEE802.11定義的省電功能;

5)車載設(shè)備的Wi-Fi可以支持short guard interval(400 ns);

6)車載設(shè)備的Wi-Fi需要支持OFDM數(shù)據(jù)率:6,9,12,18,24,36,48和54Mbps。

4.高級的(Advanced)Wi-Fi要求:

1)車載設(shè)備的Wi-Fi需要支持WFA(Wi-Fi聯(lián)盟)的WMM(WFA Wireless ****)的QoS(Quality of Service)機制;

2)CarPlay協(xié)議要求用AC_VO類型的QoS(WMM)Wi-Fi數(shù)據(jù)包傳輸音頻數(shù)據(jù)流和控制數(shù)據(jù)流,用AC_VI類型的QoS(WMM)Wi-Fi數(shù)據(jù)包傳輸屏幕/視頻數(shù)據(jù)流;

3)車載設(shè)備的Wi-Fi也可以支持U-APSD(Universal Advanced Power S*e Delivery);

4)當Apple設(shè)備要進入802.11省電模式時,它會發(fā)一個帶有PM bit的null data包給車載設(shè)備(AP),車載設(shè)備必須ACK這個包并且必須flush其Tx 硬件隊列(hardware queue)里的所有還未發(fā)送出去的數(shù)據(jù)包,而還未進入硬件隊列的包將不會再發(fā)送。

5.Wi-Fi安全要求:

1)需要支持并使用WPA2個人安全模式(WiFi Protected Access version 2 Personal) ,也就是我們通常說WPA2-PSK安全模式;

2)所有支持的加密算法/功能都應(yīng)該有硬件來完成。

6.性能要求:


Carplay wireless認證(圖3)

相關(guān)內(nèi)容:
  • Carplay wired認證
  • Carplay認證機構(gòu)_深圳藍亞
  • 打印機CE RED認證
  • 無線對講機CE EMC認證
  • 微波爐CE EMC認證詳解
  • QQ在線咨詢
    全球認證咨詢
    13632500972
    實驗室座機
    0755-23059481
    <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://#/hm.js?6844225bf949cff65b89ec7139b9ad0f"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>