慢慢学Linux驱动开发,第四篇,USB工作原理简单分析
1.簡單概念
?
學習U盤驅動,不僅僅是去關注drivers/usb/storage目錄下那相關的3000行代碼。
畢竟,作為U盤,她需要與usb core打交道,需要與scsi core打交道,需要與內存管理單元打交道,還有內核中許多其它模塊打交道。
什么是usb core?她負責實現一些核心的功能,為別的設備驅動程序提供服務,比如申請內存,比如實現一些所以的設備都會需要的一些公函數。
還有就是host controller和root hub的概念,現實中經常是讓一個usb控制器和一個hub綁定在一起,專業一點說是集成,而這個hub被稱為root hub,換言之,和usb控制器綁定在一起的hub就是系統最根本的hub,其他的hub可以連接到她這里,然后可以延伸出去,當然也可以讓usb設備直接連接到usb控制器上。
?
通過使用集線器(Hub)擴展可外接多達127個外設。USB的電纜有四根線,一個電源,一個地,二個數據線。功率不大的外圍設備可以直接通過USB總線供電,而不必外接電源。USB總線最大可以提供5V 500mA電流,并支持節約能源的掛機和喚醒模式。
至于usb控制器,要知道cpu并不是直接和usb設備打交道的,它們之間需要一個代理,而usb控制器就充當了這個角色,這個概念可以延伸到幾乎所以的設備上。
?
2.傳輸方式
?
USB提供了四種傳輸方式,以適應各種設備的需要。這四種傳輸方式分別是:
???? 控制傳輸方式:控制傳輸是雙向傳輸,數據量通常較小,主要用來進行查詢、配置和給USB設備發送通用的命令。控制傳輸主要用在主計算機和USB外設中端點0之間。
???? 等時傳輸方式:等時傳輸提供了確定的帶寬和間隔時間。它被用于時間嚴格并具有較強容錯性的流數據傳輸,或者用于要求恒定的數據傳送率的即時應用中。例如進行語音業務傳輸時,使用等時傳輸方式是很好的選擇。
???? 中斷傳輸方式:中斷方式傳送是單向的并且對于主機來說只有輸入的方式。中斷傳輸方式主要用于定時查詢設備是否有中斷數據要傳送,該傳輸方式應用在少量的、分散的、不可預測的數據傳輸。鍵盤、游戲桿和鼠標就屬于這一類型。
???? 大量傳輸方式:主要應用在沒有帶寬和間隔時間要求的大量數據的傳送和接收,它要求保證傳輸。打印機和掃描儀屬于這種類型。
???? 在開發USB設備時通過設置接口芯片中相應的寄存器使端點處于不同的工作方式。
?
其它的再復雜一點的usb原理先不理解,以后再說。。。。
------------------------------------------------------------------------------------------------------------------
作者:龐輝
出處:http://www.cnblogs.com/pang123hui/
本文基于署名 2.5 中國大陸許可協議發布,歡迎轉載,演繹或用于商業目的,但是必須保留本文的署名龐輝(包含鏈接).
總結
以上是生活随笔為你收集整理的慢慢学Linux驱动开发,第四篇,USB工作原理简单分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书笔记:人月神话的博客积极的心态读后感
- 下一篇: flex+php截图Demo