CarPlay wired(USB)连接方案

        在上一篇博客中我对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 会话建立框图:


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值