1. 程式人生 > >CarPlay wireless(藍芽+WiFi)連線方案(藍芽部分)

CarPlay wireless(藍芽+WiFi)連線方案(藍芽部分)

        在這篇部落格中我將介紹我的CarPlay系列的第三篇部落格:基於wireless(藍芽+WiFi)的CarPlay連線方案。

        在蘋果公司推出基於wired(USB)的CarPlay連線方案後(在我的上一篇部落格中已對CarPlay的USB的連線方案做過介紹,這裡就不介紹了),接下來蘋果公司又推出了基於wireless(藍芽+WiFi)的CarPlay連線方案。

        基於wireless的CarPlay連線,顧名思義,就是車載裝置和Apple裝置不需要連線任何資料線連線,直接通過無線的方式實現CarPlay的功能。在這種方案中,CarPlay的setup由藍芽發起,在這篇部落格中我將介紹CarPlay over wireless中的藍芽部分。

        首先,CarPlay的wireless連線方案要求車載裝置能夠提供藍芽的連線(Bluetooth connection)、服務發現(service discovery)、配對(pairing)、以及iAP2 over Bluetooth。蘋果公司在其協議規範中對藍芽物理層要求車載裝置支援藍芽2.1+EDR(Enhanced Data Rate)以及定義在REF 8.2.6中定義的調製方式。在藍芽連線setup之前,車載裝置需要週期性的執行質詢掃描(inquiry scans),若收到Apple裝置的質詢,車載裝置會回一個帶有BT EIR bit的FHS(Frequency Hoping Sequence:調頻序列)的包來應答(respond)。Apple裝置接收到車載裝置的藍芽EIR(Extended Inquiry Response)會檢測其是否含有CapPlay UUID(Universal Unique Identifier),來確定該車載裝置是否支援wireless CarPlay。支援wireless CarPlay的車載裝置會在其應答包封裝支援CarPlay服務的128bit的UUID(0xEC884348CD4140A29727575D50BF1FD3)。而支援CarPlay over wireless的Apple裝置也需要在其服務(service)的廣播資料中包含128 bit的UUID:0x2D8D2466E14D451C88BC7301ABEA291A。車載裝置以此區別普通藍芽裝置和支援CarPlay的Apple裝置。

        接下來,就是藍芽連線的setup、配對以及iAP2。配對過程要求車載裝置必須支援使用數字比較(Numeric Comparison)的標準藍芽安全簡單配對(Secure Simple Pairing)。當安全的藍芽鏈路建立好後,車載裝置需要協商iAP2 profile建立iAP2會話,用於互動Wi-Fi證書(Wi-Fi credentials,即Wi-Fi的BSSID,SSID,Security,WPA2 PSK,工作通道(Operating Channel))。其中該藍芽鏈路中的iAP2 Client僅僅提供Wi-FI證書,當CapPlay會話建立完成後藍芽鏈路會斷開。

        需要注意的是,iAP2 建立後,車載裝置可能還協商其他藍芽profiles,像HFP,A2DP,AVRCP等。然而,一旦CarPlay會話建立完成,Apple裝置將通知車載裝置斷開所有處於活動狀態的profiles。其中協議還規定,如果Apple裝置在藍芽EIR中顯示wireless CarPlay是可用的,車載裝置必須首先開始協商iAP2 profile,接下來才是協商藍芽的其他profiles。

        在車載裝置的Wi-Fi證書通過iAP2 over Bluetooth與Apple裝置互動成功後,接下來就開始Apple裝置與車載裝置的Wi-Fi連線了,關於Wi-Fi部分我將在CarPlay over wireless方案的下一篇部落格中做介紹。

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


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