iOS外設(shè)數(shù)據(jù)通信方式

網(wǎng)絡(luò)端口

建立Socket使用TCP/IP協(xié)議族進(jìn)行通信,天然支持多通道,想要幾個(gè)通道就建幾個(gè)socket就行了

Wi-Fi 連接

優(yōu)點(diǎn):

  • 簡(jiǎn)單,不需要集成MFi芯片
  • 只要對(duì)應(yīng)的硬件有無(wú)線網(wǎng)卡,然后將手機(jī)和硬件連接到同一個(gè)局域網(wǎng)中就可以使用 Socket 通過網(wǎng)絡(luò)協(xié)議通信

缺點(diǎn):

  • 無(wú)線連接信號(hào)容易受到干擾,不太穩(wěn)定,容易斷開
  • 如果硬件使用的場(chǎng)合沒有公共 Wi-Fi,就需要手機(jī)自建熱點(diǎn)共享,硬件進(jìn)行熱點(diǎn)接入,操作步驟較多,對(duì)用戶來(lái)說學(xué)習(xí)使用成本較高,并且熱點(diǎn)共享要求手機(jī)本身的數(shù)據(jù)移動(dòng)網(wǎng)絡(luò)是穩(wěn)定的,在沒有移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)信號(hào)的地方,熱點(diǎn)無(wú)法建立。
  • 參考鏈接: http://www.itdecent.cn/p/bcb104f8b8e9

USB熱點(diǎn)共享

這個(gè)其實(shí)跟 Wi-Fi 中的熱點(diǎn)共享非常類似,也不需要集成 MFi 芯片。

優(yōu)點(diǎn):

  • USB 熱點(diǎn)共享,走的是有線,不容易受到干擾,更穩(wěn)定,

iPhone 可以邊使用可以邊充電

  • iPhone 可以邊使用可以邊充電

缺點(diǎn):

  • 操作步驟比較復(fù)雜,需要先打開個(gè)人熱點(diǎn)共享

NCM(需要MFi->廢了,只能用于Carplay)

就是把 USB 端口虛擬成標(biāo)準(zhǔn)的網(wǎng)絡(luò)端口,然后手機(jī)和外設(shè)就能通過有線網(wǎng)絡(luò)直連了,可以理解成手機(jī)和外設(shè)通過一跟網(wǎng)線連起來(lái)了,然后就可以用 Socket 通過 TCP,UDP 進(jìn)行通信了。

優(yōu)點(diǎn):

  • 有線連接,非常穩(wěn)定,帶寬足夠
  • 不依賴移動(dòng)網(wǎng)絡(luò)信號(hào)

缺點(diǎn):

  • 需要集成 MFi 芯片并進(jìn)行 MFi 認(rèn)證,有一定門檻
  • 除了 CarPlay,其他跟 iPhone 連接的外設(shè)都不能使用 NCM 的方式跟 iPhone 上的 App 進(jìn)行連接和通信

EAP(MFi,蘋果推薦方式,復(fù)雜,實(shí)現(xiàn)門檻高)

EAP 全拼是 External Accessory Protocol,即外部設(shè)備協(xié)議。這個(gè)是蘋果推薦使用的外設(shè)連接方式。需要外設(shè)集成 MFi 芯片進(jìn)行 MFi 認(rèn)證。手機(jī)端開發(fā)相對(duì)簡(jiǎn)單,只要集成 iOS 系統(tǒng)提供的一個(gè)框架 ExternalAccessory.framework,并且在 info.plist 中配置好協(xié)議字符串 (Supported external accessory protocols),當(dāng) iOS 設(shè)備通過 USB 或者藍(lán)牙連接到對(duì)應(yīng)硬件時(shí),iOS 系統(tǒng)會(huì)把符合 MFi 認(rèn)證要求的外設(shè)抽象成了一個(gè)流對(duì)象,App 通過指定的協(xié)議字符串來(lái)創(chuàng)建一個(gè) EASession 類的實(shí)例來(lái)訪問到該流對(duì)象,就能通過 NSInputStream 和 NSOutputStream 跟硬件件進(jìn)行通信了。

  • EASession 模式:它的帶寬相對(duì)較低,但是允許同時(shí)通過多個(gè)協(xié)議字符串創(chuàng)建多個(gè)會(huì)話,也就是說直接支持多通道

  • Native Transport 模式:它的帶寬足夠大,理論值是 100MB 以上,但是不支持多通道,如果業(yè)務(wù)層需要支持多數(shù)據(jù)通道的話需要 App 自己進(jìn)行通道的復(fù)用與拆分,并且 Native Transport 需要 iPhone 工作在 USB Host 模式,硬件需要支持 USB 模式切換

外設(shè)連接黑科技 - USBMuxd(不需要MFi認(rèn)證,可參考)

USBMuxd,利用這種連接方式不需要做 MFi 認(rèn)證,支持 iPhone 上的 App 跟外設(shè)通過進(jìn)行通信,非常方便。

基本原理
iPhone 的 iOS 系統(tǒng)中自帶了 USBMuxd 服務(wù),該服務(wù)能夠?qū)崿F(xiàn)
USB-TCP 協(xié)議的轉(zhuǎn)換,能夠把 USB 的端口映射到本機(jī) (localhost) 的 TCP 端 (基于 Unix Domain Socket )。只需要在外設(shè)端也實(shí)現(xiàn)一個(gè) USBMuxd 服務(wù),并指定端口映射關(guān)系, 那
iPhone 的 App 和外設(shè)上的應(yīng)用就可以使用 Socket 進(jìn)行 TCP 進(jìn)行通信了。

參考鏈接:http://www.itdecent.cn/p/74decb993761;http://www.itdecent.cn/p/eba133891ec6

開源實(shí)例:https://github.com/rsms/peertalk

OTG - 即插即用 iPhone不支持

BLE

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容