在蘋果公司推出基於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中藍牙部分的交互邏輯簡圖: