[問題] host controller 如何偵測usb裝置

看板LinuxDev作者時間10年前 (2014/10/31 14:44), 編輯推噓5(5011)
留言16則, 3人參與, 最新討論串1/1
從網路上的資訊得知,所有usb的溝通 都是從host發起,追host controller driver之後 在註冊時,hcd的struct內,會順便註冊一個ISR 當有usb裝置接入的時候,便會開始執行此ISR的function 但是host controller如何得知裝置接入的event 是D+、D-會拉一個特殊的訊號通知嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.20.230.25 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1414737846.A.E76.html

10/31 17:05, , 1F
平常BUS是SE0狀態,full/high speed接入會把D+拉高,反之
10/31 17:05, 1F

10/31 17:11, , 2F
low speed會拉D-,這樣host就會準備來溝通了
10/31 17:11, 2F

10/31 17:23, , 3F
如果是high speed device,他會再發一個chrip K,2.0 host
10/31 17:23, 3F

10/31 17:25, , 4F
收到之後會再回應一串KJKJKJ的訊號完成high speed 交握
10/31 17:25, 4F

11/01 12:06, , 6F
m_choate_sp.pdf
11/01 12:06, 6F

11/03 09:28, , 7F
感謝askacis大大的說明 還有inses大補充的pdf
11/03 09:28, 7F

11/03 09:54, , 8F
另外再問一個問題,所以整個溝通的行為是,host提供5V
11/03 09:54, 8F

11/03 09:56, , 9F
的電,D+、D-是由device去拉的?一樣的主機 接不同的
11/03 09:56, 9F

11/03 09:57, , 10F
device,反應時間不一樣,要量測波型 才能確定嗎?
11/03 09:57, 10F

11/03 11:22, , 11F
從SE0到D+拉high是device作的沒錯,因為不同device,
11/03 11:22, 11F

11/03 11:23, , 12F
用的controller跟phy可能也不一樣,所以可能反應時間不一
11/03 11:23, 12F

11/03 13:28, , 13F
a大這邊指的controller跟phy是host端還是device端??
11/03 13:28, 13F

11/03 13:29, , 14F
因為都是從host的角度去看,對於device沒有這麼了解
11/03 13:29, 14F

11/03 16:27, , 15F
我講的是device端~~
11/03 16:27, 15F

11/04 13:26, , 16F
感謝askacis大的經驗分享~會再花時間琢磨
11/04 13:26, 16F
文章代碼(AID): #1KKo-svs (LinuxDev)
文章代碼(AID): #1KKo-svs (LinuxDev)