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