CarPlay wired(USB)連接方案

本文轉自: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章