寫在前面,看完本文,你是不可能完全掌握USB驅(qū)動(dòng)的,這里主要是給大家?guī)?lái)一點(diǎn)思路,希望能對(duì)大家有所幫助。
一.整體框架
二.硬件基礎(chǔ)
USB的硬件十分簡(jiǎn)單,一共就四根線,一共電源一共地,還有兩根數(shù)據(jù)線。這區(qū)區(qū)四根線看似簡(jiǎn)單,作用不可小看啊。
識(shí)別過(guò)程:正如上圖看到的, PC的USB口內(nèi)部,D-和D+接有15K的下拉電阻,未接USB設(shè)備時(shí)為低。USB設(shè)備的USB口內(nèi)部,D-或D+接有1.5K的上拉電阻;它一接入PC,電源通過(guò)兩根電阻接地,然后分壓,就會(huì)把PC USB口的D-或D+拉高,從硬件的角度通知PC有新設(shè)備接入。
三.軟件概念
1.USB設(shè)備概觀
有圖可看出:
? 設(shè)備通常有一個(gè)或多個(gè)配置.? 配置常常有一個(gè)或多個(gè)接口? 接口常常有一個(gè)或多個(gè)設(shè)置.? 接口有零或多個(gè)端點(diǎn).
2.端點(diǎn)
端點(diǎn)是USB通信的最基本的形式,USB端點(diǎn)只能往一個(gè)方向傳輸數(shù)據(jù)。輸出端點(diǎn)(主機(jī)向設(shè)備),輸入端點(diǎn)(設(shè)備向主機(jī))都是相對(duì)于主機(jī)來(lái)說(shuō)的。
端點(diǎn)的四種類型:
控制端點(diǎn):控制端點(diǎn)是用來(lái)控制對(duì)USB設(shè)備不同部分的訪問,通常用于配制設(shè)備、獲取設(shè)備信息、發(fā)送命令到設(shè)備,或者獲取設(shè)備的狀態(tài)報(bào)告。數(shù)據(jù)可靠,并且有時(shí)間保證。
中斷端點(diǎn):每當(dāng)USB宿主要求設(shè)備傳輸數(shù)據(jù)是,中斷端點(diǎn)就以一個(gè)固定的速率來(lái)傳輸少量數(shù)據(jù)。注意這里說(shuō)的中斷,并不是我們之前說(shuō)的硬件上的中斷。因?yàn)樵O(shè)備在沒有主控制器要求的情況下是不會(huì)發(fā)送數(shù)據(jù)的,所以是USB宿主負(fù)責(zé)每一個(gè)USB設(shè)備是否有數(shù)據(jù)需要發(fā)送。這些端點(diǎn)是USB鼠標(biāo)和鍵盤所使用的主要傳輸方式。
批量端點(diǎn):批量端點(diǎn)傳輸大批量的數(shù)據(jù)。USB協(xié)議不保證這些傳輸始終可以在特定的時(shí)間內(nèi)完成。U盤等設(shè)備多用次傳輸方式
等時(shí)端點(diǎn):等時(shí)端點(diǎn)也可以傳送大批量的數(shù)據(jù),但是數(shù)據(jù)是否到達(dá)沒有保證。USB話筒,USB視頻都使用這類端點(diǎn)。
3.接口
USB接口只處理一種USB邏輯連接。舉個(gè)例子:現(xiàn)在的USB攝像頭基本都帶麥克風(fēng)功能。要實(shí)現(xiàn)它的驅(qū)動(dòng),則需要兩個(gè)驅(qū)動(dòng),一個(gè)USB攝像頭驅(qū)動(dòng),一個(gè)麥克風(fēng)驅(qū)動(dòng)。所以需要兩個(gè)接口。因?yàn)橐粋€(gè)USB接口代表了一種基本的功能。所以說(shuō),并不是一個(gè)硬件就只對(duì)應(yīng)著一個(gè)驅(qū)動(dòng),是有一對(duì)多的情況的。
4.配置
一個(gè) USB 設(shè)備可有多個(gè)配置并且可能在它們之間轉(zhuǎn)換,以便改變?cè)O(shè)備的狀態(tài). 例如, 一些允許固件被下載到它們的設(shè)備包含多個(gè)配置來(lái)實(shí)現(xiàn)這個(gè),一個(gè)配置只能在一個(gè)時(shí)間點(diǎn)上被使能。
-
接口
+關(guān)注
關(guān)注
33文章
8691瀏覽量
151915 -
USB驅(qū)動(dòng)
+關(guān)注
關(guān)注
1文章
137瀏覽量
20275 -
配置
+關(guān)注
關(guān)注
1文章
189瀏覽量
18458
原文標(biāo)題:看完就會(huì)是不可能的,給大家講講USB驅(qū)動(dòng)
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
介紹一種簡(jiǎn)單的數(shù)據(jù)解析方法
HDF驅(qū)動(dòng)框架中USB DDK的解析與指導(dǎo)
USB 3.0電纜實(shí)物解析
電腦不能識(shí)別USB全面解析
HC6800的USB驅(qū)動(dòng)程序
簡(jiǎn)單的USB轉(zhuǎn)RS232線驅(qū)動(dòng)安裝入口
![<b class='flag-5'>簡(jiǎn)單</b>的<b class='flag-5'>USB</b>轉(zhuǎn)RS232線<b class='flag-5'>驅(qū)動(dòng)</b>安裝入口](https://file.elecfans.com/web1/M00/55/B6/pIYBAFsy4hmAS0V4AABW81Xae_A195.jpg)
USB入門教程之如何簡(jiǎn)單快速的玩轉(zhuǎn)USB
![<b class='flag-5'>USB</b>入門教程之如何<b class='flag-5'>簡(jiǎn)單</b>快速的玩轉(zhuǎn)<b class='flag-5'>USB</b>](https://file.elecfans.com/web1/M00/65/80/o4YBAFurWCqAL2-gAAAytEktZkg027.png)
USB驅(qū)動(dòng)開發(fā)的步驟及方法解析
USB設(shè)備驅(qū)動(dòng)的詳細(xì)資料概述
![<b class='flag-5'>USB</b>設(shè)備<b class='flag-5'>驅(qū)動(dòng)</b>的詳細(xì)資料概述](https://file.elecfans.com/web1/M00/91/21/o4YBAFzRMbqAC9ArAAauFYV9-lk138.png)
基于USB設(shè)備的接口驅(qū)動(dòng)設(shè)計(jì)方法解析
![基于<b class='flag-5'>USB</b>設(shè)備的接口<b class='flag-5'>驅(qū)動(dòng)</b>設(shè)計(jì)方法<b class='flag-5'>解析</b>](https://file.elecfans.com/web1/M00/B0/8E/pIYBAF3orcGAXJusAAE7NjzcYfA952.png)
C語(yǔ)言簡(jiǎn)單數(shù)據(jù)解析
![C語(yǔ)言<b class='flag-5'>簡(jiǎn)單</b>數(shù)據(jù)<b class='flag-5'>解析</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
HDF驅(qū)動(dòng)框架中USB DDK的解析與開發(fā)指導(dǎo)
如何制作簡(jiǎn)單的USB設(shè)備
![如何制作<b class='flag-5'>簡(jiǎn)單</b>的<b class='flag-5'>USB</b>設(shè)備](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論