linux配置usb主从_一种Linux下USB设备主从切换的实现
龍源期刊網
http://www.qikan.com.cn
一種
Linux
下
USB
設備主從切換的實現
作者:侯景昆
來源:《電子技術與軟件工程》
2013
年第
22
期
摘
要
USB
協議是嚴格的主從協議,通訊過程中必須有一個做
Host
,一個做
Device
。本文
闡述了一種在
Linux
下實現
USB?Host
和
Device
身份切換的方法。
【關鍵詞】
USB?OTG?Host?Device
1
引言
USB
協議是嚴格的主從協議,通訊過程中規定通訊雙方必須有一個做
Host
(比如
PC
),
一個做
Device
(比如
U
盤)。但是有些設備可能會希望同時具有兩種身份,在某個時刻做
Host
,另外一個時刻做
Device
,于是
USB?IF
官方制定了
OTG
協議,規定兩個都支持
OTG
協
議的
USB
設備可以動態地根據需要進行主從切換。但是真正支持
OTG
協議的設備并沒有流行
起來,原因應該有如下:
(
1
)
OTG
協議實現要復雜些,而實際應用需求不強,市面上真正支持
OTG
協議的設備
也很難找到,單方面支持
OTG
協議是沒有用的,因此各大廠商沒有動力推出
OTG
設備。
(
2
)
USB
協議規定
Host
要給
Device
供電,而大部分
USB
設備都是便攜設備,對另外一
個
USB
設備供電能力不足。
既然真正支持
OTG
協議的設備幾乎難覓,那么為什么目前市面上很多的音視頻播放器或
平板電腦都號稱支持
OTG
呢?其實這些設備并沒有真正實現
OTG
協議(包括
HNP
協議和
SRP
協議),而只是通過
USB
線上
ID?Pin
的狀態來確立自己究竟是做主設備還是做從設備,
一旦身份確認,在通訊過程中是無法動態切換的,所以嚴格來說這只是一種偽
OTG
設備。本
文將討論的就是
Linux
下這種情況的一種具體實現方法。
2?Linux
下主從切換方案設計
Linux
下該方案總體設計思路如圖
1
:
首先,該方案在內核空間實現一個名為
umonitor.ko
的驅動程序,該驅動負責偵測
USB
接
口上的變化,判斷是否有
USB
連線,以及是做主設備還是從設備等核心檢測工作。如果判斷
目前是做
USB?Host
,則發出
“A_IN”
的
UEVENT
消息;如果判斷是做
USB?Device
,則發出
“B_IN”
的
UEVENT
消息。
總結
以上是生活随笔為你收集整理的linux配置usb主从_一种Linux下USB设备主从切换的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在道路饮料里+饮料会变味吗?
- 下一篇: 哈密瓜为什么会苦?