為什麼手機上wifi都用sdio介面,不用usb介面?

大家有自己理解的可以說下


一句話概括:SDIO實現起來很簡單,USB實現太複雜

具體SDIO的規範我沒研究過,但看有效代碼也不過幾千行的事情,一個簡單的USB控制器代碼就得上萬行。

並且USB協議是多層次的協議,類似網路協議,實現了控制器還要繼續實現USBD和Class Driver的代碼,以及與網路層面結合的部分,一個完整的USB WiFi驅動,代碼會非常巨大,並且調試困難。

我雖然不是很了解SDIO,但從代碼規模上看,跟USB就差至少一個數量級,甚至是幾個數量級,所以廠商肯定是挑簡單的實現,而不是複雜的那個。

USB協議棧代碼共用的問題,這個在早期的時候是不能共用的,早期的時候手機大多數只支持device模式,不支持host模式,這種條件下要接WiFi必須再支持host,代碼無法共用。同時Host和Device模式不可以並存,一個控制器一旦設置成device模式,就變成獨佔的情況,主機需要再加一個USB控制器才行,USB控制器的硬體成本也比SDIO要高的多。並且,多集成一個USB控制器,手機內部空間比較緊張,電路板的設計會比較麻煩。


1.建議把都去掉,確實有採用Realtek或者MTK的USB介面WiFi手機(當然不多,但國產寨板基本都是……)

2.SDIO首先是通用性,從很久之前就開始採用,SDIO實時性等特性比協議棧複雜的USB好的多。現在雖然很多時候代碼量不是主要考慮,但是SDIO就在哪裡……不用白不用,USB需要額外硬體支持

3.現在SDIO WiFi也在被淘汰,對於手機……基帶晶元也快無敵了好嘛。與高通820處理器所配套的基帶晶元2G/3G/4G/WiFi b/g/n/ac / BLE/GPS/GNSS/ Compasa八合一……(如果我記錯了……額……你知道就行了)


我覺得sdio傳輸速度也快,sdio3.0達到200MHZ,而且還有休眠喚醒主機功能,這個對於省電比較挑剔的手機最適合了


穩定性


功耗方面是很大考量因素,為了做到這個不惜減小最大吞吐量。


推薦閱讀:

iphone7 vivoxplay6 三星s8 華為p10 mate9pro 哪個手機好?
為啥不用手機的系統開發嵌入式系統?
中國的飛機上居然也能開手機啦!那以後還能不能好好坐飛機了?
【極地游報】vol.123 雷蛇公布首款遊戲手機,《絕地求生》將推出正式版和Xbox One版

TAG:手機 | USB | 嵌入式系統 | Linux內核 |