本文轉自:https://blog.csdn.net/huangke2012hk/article/details/51225887
在上一篇博客中我對CarPlay做了基本的介紹,在這篇博客中我將介紹CarPlay的wired(USB)的連接方案。
首先,CarPlay的wired(USB)的連接方案要求車載設備至少要支持USB2.0 Hi-Speed,能夠同時處理bulk IN和bulk OUT傳輸。該方案還要求車載設備必須支持USB Host Mode,該模式要求車載設備能夠工作在USB device模式下,因爲Apple設備在CarPlay中是作爲USB Host的。而通常情況下,車載設備USB是工作在USB Host模式的,而外接的USB設備是工作在USB Device模式的,因而在這種情況下的CarPlay wired(USB)連接方案中就需要進行USB的模式切換。下圖則是CarPlay的USB模式切換處理邏輯框圖:
當角色切換完成後,按照協議要求有以下幾點需要注意:
1.車載設備(USB device)需要等待至少1000ms,目的是等待Apple設備(USB host)來枚舉
2.如果1000ms後沒有任何traffic,車載設備(USB device)得切換回USB Host模式
3.當Apple設備偵測到總線掉電(the loss of VBUS),Apple設備將切換回USB Device模式
4.如果車載設備(USB device)偵測到USB總線至少有200ms處於不活躍(inactivity)狀態,車載設備(USB device)將切換回USB Host模式
接下來,對iAP2在CarPlay wired(USB)連接方案中的接口描述符(Interface Descriptor)和i數據傳輸(Data Transfers)作一下介紹
1.iAP2接口描述符(Interface Descriptor)
車載設備(USB Device)與Apple設備(USB Host)建立一個iAP2連接,需要申明一個vendor指定(vendor-specific)的接口,該接口有一個bulk IN端點(endpoint)和一個bulk OUT端點(endpoint)。
2.iAP2數據傳輸(Data Transfers)
Apple設備(USB Host)通過bulk OUT端點發送iAP2數據給車載設備(USB Device)。依據USB協議,如果車載設備 (USB Device)成功地接收到Apple設備發送的iAP2數據便會回覆一個USB ACK包,反之則回覆一個USB NAK包。如果車載設備(USB Device)重複地回覆USB NAK包並且超過1秒,便會視爲接收超時。
車載設備在iAP2傳輸通道上成功的建立一個iAP2連接,通過iAP2進行認證,該認證過程有以下7種iAP2控制會話消息:
1.RequestAuthenticationCertificate
2.AuthenticationCertificate
3.RequestAuthenticationChallengeResponse
4.AuthenticationResponse
5.AuthenticationFailed
6.AuthenticationSucceeded
7.AccessoryAuthenticationSerialNumber
接下來,再介紹一下USB的NCM(Network Control Model)的兩個接口。
1.USB NCM 控制接口(Control Interface)描述符(Descriptor)
2.USB NCM數據接口(Data Interface)描述符(Descriptor)
車載設備需要在這個接口上完成USB Hi-Speed NCM。這個接口需要支持到64KB封裝的數據報的傳輸(也就是到40個1514字節的以太網幀(Ethernet Frame)的傳輸)和16比特的NCM傳輸塊。
使用CarPlay USB NCM接口的車載設備需要支持至少100Mbps的帶寬,TCP和UDP的延遲小於5ms,UDP的丟包率(iperf測試下)要低於1%。
當Apple設備連上或斷開的時候,車載設備需要對NCM接口狀態作相應的改變。當Apple設備連接上的時候,在網絡協議棧的頭部需要標註NCM接口可用。
最後,介紹建立/終止CarPlay會話(session)。
建立CarPlay會話(session),車載設備首先需要同Apple設備建立IP網絡連接,因此需要虛擬一個網絡接口並分配MAC地址和ip地址,該ip連接必須是IPv6。車載設備在這個接口上需要支持Apple Bonjour零配置網絡連接(zero-configuration networking)。一旦網絡連接建立成功,車載設備在完成認證後將在CarPlay接口上開始設置(setup)和內容傳輸(content transfer)。需要注意的是,按協議要求,車載設備需要在與Apple設備網絡連接建立好後的3秒鐘內建立CarPlay會話,如果與Apple設備的物理連接斷開,車載設備也需要檢測到該斷開情況並且在1秒鐘內終止CarPlay會話。
下圖是wired(USB)的CarPlay 會話建立框圖:
---------------------
作者:Ke8323
來源:CSDN
原文:https://blog.csdn.net/huangke2012hk/article/details/51225887