欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    :用戶可通過Type-C線連接至電腦或者充電寶給RC8X臨時供電。RC8X的USB口支持的輸入電壓為:5V,所以請確保供電電源電壓符合要求,如果供電電源的電壓超過5V,可能會燒壞遙控器。

    謝IT之家網友 小七雜記的原創投稿

    隨著科技的發展,智能手機的性能愈發強大,普及度也是越來越高,而它在我們的日常生活中的地位更是水漲船高。但是在電池技術沒有什么突破性發展的今天,續航成了所有手機不得不提的一項參數,而充電作為其中不可或缺的一環,也是被各大手機廠商不遺余力地進行宣傳。今天小七就和大家來聊一下手機充電技術的發展,由于小七本人知識有限,文中若有任何錯誤歡迎大家指出。

    前排提示:本文沒有提及無線充電

    充電知識

    在繼續后面的故事之前,我們需要先補充一點基礎的充電方面的知識。

    知識點①:充電的電壓以及發熱

    目前大多數手機使用的電芯都是單鋰或者多并鋰組成,電芯工作電壓在3.0V~4.4V之間,均壓平臺3.6V-3.8V。當進行充電行為時,電能進入手機后通過手機內的降壓電路處理后再輸出3.3~4.5V左右的電壓給電池充電。而這個電壓轉換壓降過程,就是由手機內的充電管理IC模塊負責。

    這個電壓轉換壓降過程會產生發熱,電壓差距越大產生的熱量會越多。

    知識點②:充電的電流以及功率

    手機充電時的電流并不是一直不變的。優秀的充電方案應該是手機需要多大的功率,充電器就給多大的功率,而不是手機只能被動地接受充電器一成不變的功率。

    當手機處于低電量的時候,手機會要求充電器火力全開,這就是所謂的充電峰值。在這個時候充電速度非常快,但是損耗和發熱也很大。

    充電時,隨著手機電量的上升,充電的功率往往是逐漸下降的。當手機的電量充到60%~80%的時候(具體看手機廠商的設定),充電電流會減小,以達到減少電池損耗和手機發熱量等目的。

    在后面這個階段,電流往往只有幾百毫安甚至更小,充電的功率也很小(相對而言),也就是我們常說的涓流充電。

    需要注意的是,涓流充電是大功率充電時代的產物,對于5V/500mA的充電器是沒有涓流充電這么一說的。(電流本來就很小)

    下面開始正文,本文分為“史前”時期、初露鋒芒、快充現世、高低之爭和一統天下五個部分。

    “史前”時期

    我們先來說一下當年功能機還統治著地球的時期,比較早期的充電器和現在的充電器主要有三個比較明顯的區別:

    ①以前的充電器并不像現在這樣數據線和適配器(充電頭)分開,而是一體的,也就是充電頭連著數據線;

    ②以前的充電器功率其實很小,一般都是5V/500mA,也就是2.5W(瓦)的功率;

    ③以前的充電器單純只能充電,而現在負責的充電器把數據線拔下來接到電腦上還可以進行數據傳輸(同時也能充電)。

    圖左為老式一體充電器(黑),右為新式分體式充電器(白)

    注:此處并非指分體的充電器要優于一體的充電器,實際上兩者各有優劣

    為什么當時的充電器功率這么小呢?主要原因有兩個:

    ①手機相對功能少,耗電少,因此電池也小(大多數是幾百毫安時/mAh),不需要太大功率的充電器;

    ②大功率的充電器制造難度大,成本高,在當時的環境下顯然不劃算。

    但是隨著手機的發展,尤其是安卓手機的崛起,手機功能也開始增多,耗電量也開始增大,電池容量也開始突飛猛進,到了動則上千毫安時的時代。這個時候如果還是繼續使用著5V/500mA的充電器,那么就會出現充電非常慢,而且會出現邊充電邊玩手機,電量還是越來越少的這種”入不敷出”的情況。

    在智能手機萌芽的時候,USB接口在手機上也隨之普及開來。而手機充電技術的變革,就從這里開始了。

    初露鋒芒

    比較早開始出現的充電標準是USB BC 1.2(BC是Battery Charge的簡稱)。

    USB規格第一次是于1995年,由Intel(英特爾)、NEC(日本電氣株式會社)、Compaq(康柏)、DEC(美國數字設備公司)、IBM(國際商業機器公司)、Microsoft(微軟)、Northern Telecom(北方電信公司)等七家公司組成的USB IF(USB Implement Forum)共同提出。

    BC 1.2的出現,讓同時進行充電和數據傳輸成為了主流。

    USB BC1.2標準由USB IF協會于2010年頒布,指的是可直接為關閉的便攜式設備電池充電,成為建立通過USB端口為電池充電的正確方式的關鍵標準。

    說白了,BC1.2就是可以給包括手機在內的便攜式設備使用USB接口充電(包括關機充電)的一套官方標準。

    BC 1.2出來之前,除了日漸強大的智能手機,諸如數碼相機、DV等便攜式設備也開始逐漸受到人們的青睞。這些便攜式設備與電腦之間的數據交換也變得頻繁了許多,因此,USB接口在這些設備上開始普遍起來。

    盡管USB接口出現的目的是為了傳輸數據和連接諸如鍵盤鼠標的設備而并不是充電,但是在這時候,如果能使用USB接口給這些設備充電,那么就會方便很多,USB BC 1.2也就應運而生了。

    目前市面上主流的USB接口可以分為USB 2.0和USB 3.0兩種,其中兩者的電壓都是5V,而電流方面USB 2.0為500mA,USB 3.0為900mA。

    注:

    ①USB 3.1 gen1其實就是USB 3.0的馬甲版(最大傳輸速率仍然是5Gb/s),而USB 3.1 gen2才是升級版,最大傳輸速率可達10Gb/s,最大輸出電壓/電流可達20V/5A);

    ②傳輸數據的USB 2.0的線纜中只有四根線,充電的MicroUSB 2.0線纜中有五個觸點,而USB 3.0中升級為了九根線;

    ③常見的USB分線器/集線器/HUB等可以將一個USB接口分出多個USB接口的設備,在沒有獨立外接電源的情況下,很有可能因為給每個USB接口提供的電流不足而導致連接在該USB接口上的設備無法正常使用甚至是損壞,因此大家在使用這類產品的時候一定要小心。

    USB BC 1.2最大的功勞就是使得USB充電的最大電流能夠達到1500mA也就是1.5A,盡管它沒有提升電壓(因為要適配其他便攜設備),但是將電流提升到1.5A之后,USB接口充電的最大功率就能夠達到7.5瓦(W),這個時候的USB BC 1.2已經足夠應付當時的手機充電了。

    USB BC 1.2的出現不僅使得當時的USB充電規范混亂的場面得到了規范,而且它對于集線器/分線器/HUB也有著很好的支持,特別需要注意的是,為了保證每個接口能有足夠的電流,支持BC 1.2的集線器/分線器/HUB往往都需要外接電源。

    圖為USB BC 1.2工作方案

    前排提示:千萬不要小看USB IF協會哦

    快充現世

    盡管USB BC 1.2標準已經能滿足當時的充電需求,但是科技的發展是無止境的。隨著智能手機的發展,對充電的速度再次提出了更高的要求。而就在這個時候,發布USB BC 1.2標準的USB IF協會居然沒有給出一套可行的解決方案,而這就為后來的快充標準大混戰埋下了伏筆。

    到了2013,高通大佬就出場了。當時高通一拍桌子,振臂一呼:同志們,跟著我有肉吃!它率先突破了USB IF協會關于USB BC 1.2標準中的1.5A的最大電流限制,將其提升到了2A也就是10W的功率(5V/2A),充電速度大幅提升。

    這就是高通的QuickCharge快充1.0版本,也就是QC 1.0快充。

    了解高通的同學應該都知道,高通在手機芯片和通信專利方面可謂是一方巨擘,而憑借著這個霸主級別的地位優勢,高通可以迅速推廣自己的QC快充標準。然后,就可以坐著收QC標準的授權費。

    而到了2014年,情況就有些不一樣了,這個時候雖然Type-C的數據線已經面世,但卻還沒有普及,手機上依舊還使用著MicroUSB 2.0接口的數據線(也就是大家常說的安卓線)。前面我們已經提到了,由于MicroUSB 2.0的數據線內部只有四根線,對電流的承載能力非常有限,2A基本就是極限了,而Type-C接口優于設計的優越性,接口的觸點非常多,因此內部可以增加的線比MicroUSB 2.0要多得多,最大可支持5A的電流。所以Type-C接口與生俱來就對大電流有著極大的友好。

    圖左為Type-C型接口,圖右為MicroUSB 2.0接口

    注:

    ①Type-C接口只是一種接口類型,由于體積小,正反可插,以及可以兼容諸多協議,因此有著“數據接口的終極形態”之稱,但也因為其兼容了諸多協議,可以集成視頻、音頻、數據、供電等各種接口和協議(如雷電三),導致目前市面上的Type-C接口功能不一,對新手來說比較不友好。

    ②常見的MicroUSB除了2.0,還有MicroUSB 3.0,手機上有三星的note3和s5采用了這種接口。但是由于MicroUSB 3.0體積太大,因此后來就沒有手機采用這種接口了,反倒是移動硬盤現在用的比較多。

    圖為MicroUSB 3.0數據接口

    注:以下提及的MicroUSB如無標注則均為MicroUSB 2.0

    高低之爭

    我們繼續回到2014年。

    而這個時候,如果還要繼續通過增大電流的方法來提升充電功率,MicroUSB那孱弱的身軀可承受不了這巨大的電流。于是乎,以高通QC為首的高壓快充方案和以OPPO VOOC為首的低壓大電流快充方案就此分道揚鑣,而快充協議的混戰也從此展開。

    先來說說高通這邊的高壓快充方案。

    我們都知道P(功率)=U(電壓)*I(電流),而既然當時增大電流不行,那就增大電壓唄,同樣是18W功率的快充,如果要用5V電壓的話,電流已經超過了3A,正常的MicroUSB是絕對受不了的。而使用12V的電壓,電流就只需要1.5A,一下子電流就降下來了。這種方案的一大好處就是成本比較低,而壞處就是將充電器的電壓升到這么高,在二次降壓過程中手機的充電管理IC產生的熱量也是極大的,所以高壓快充的一大特點就是手機發熱嚴重。

    注意,1.5A是QC標準比較推薦的電流,因為2A是Micro USB的極限,業界的普遍共識是,不要把器件用到極限值,而是要預留余量。

    圖為高壓快充方案示意圖

    接下來我們再來說說OPPO的VOOC低壓大電流快充。

    圖為低壓大電流快充原理示意圖

    和高通不同,OPPO這邊采用的是另外一種解決方案。不是說正常的MicroUSB數據線承載不了這么大的電流嘛,那就把充電器從頭到尾徹底改造一番。OPPO采用在當時來說相當另類的解決方案,在普通的MicroUSB數據線中增加了兩個觸點,使得內部變成了七根線,充電頭也因為整合了IC電路而變得奇大無比。

    圖片來自網絡

    不僅如此,因為從頭改造電路,所以數據線只能用官方的特制數據線,一般的數據線無法達到快充的效果,而且這樣做的成本也很高,大電流充電對于電池的損耗也更為明顯,很多使用初期的VOOC快充的手機在使用大約一年之后,電池續航嚴重下降。

    但是,付出了如此沉重的代價,OPPO也不是沒有收獲的。

    初代的VOOC快充就憑借著5V/5A的25W超大功率,在充電速度上一騎絕塵,使得其余手機都難以望其項背。而由于它將發熱源外置到充電器中,手機在充電時發熱量明顯小于高壓快充方案。既然VOOC快充如此優秀,OPPO自然也不能藏著掖著,于是乎……

    充電五分鐘,通話兩小時的廣告詞響徹大江南北。

    圖為OPPO R11官方宣傳文案

    低壓大電流方案雖然成本高,且對充電設備有比較高的要求(尤其是線材),但是手機上的發熱量小,充電速度更快。

    一統天下

    大家當然不可能傻乎乎地去給高通送錢,在利益的驅使下,各家廠商也開始著手研發自己的快充標準。

    下面來說一些比較主流的快充。

    隨后聯發科也推出自己的Pump Express(PE)和后來的Pump Express Plus(PEP)快充,而魅族的mCharge快充就是基于此,華為早期推出了Fast Charge Protocol(fsp)快充,國際巨頭三星也有自己的AFC(Adaptive Fast Charging)快充,而小米和努比亞等一眾使用高通SoC作為自己旗艦手機SoC的廠商也是使用的高通的QC快充。以上提到的這些都是使用的高壓快充方案。

    當然低壓大電流方案這邊也不是沒有援軍,比如說一加。一加CEO劉作虎作為OPPO前高管,盡管一加使用的是高通的SoC,但是在一加推出自己的快充方案時,還是選擇了低壓大電流方案,也就是一加Dash閃充。

    看到這里是不是覺得高壓快充方案已經贏得了勝利,低壓方案只能在一旁茍延殘喘?

    當然不是!事情在2016年發生了轉變。

    2016年,Type-C接口已經普及得七七八八了,安卓旗艦手機基本都是使用這種接口,這就為低壓方案的翻身提供了有利條件。(盡管Type-C接口支持大電流,但是其線材依舊比較粗)

    這一年,華為改變了快充方案,推出了自家的另一類快充(scp),全稱Super Charge Protocol,搭載的機型有榮耀Magic、Mate9和P10/plus,使用的是4.5V/5A的低壓大電流方案。

    而聯發科這邊的PEP快充,也轉投了低壓方案,魅族最新發布的旗艦Pro7 Plus搭載的mCharge4.0也是使用了低壓方案,早前的mCharge3.0屬于高壓快充方案(24W),充電器輸出電壓最高可達12V;而mCharge4.0(25W)屬于低壓大電流方案,充電器輸出電壓5V,電流可達5A。

    努比亞也推出了自家的快充方案,名為NeoCharge,使用的是5V/5.2A的26W低壓大電流快充方案,搭載在努比亞2017年發布的M2上。

    至于小米……額……好像沒有低壓快充方案,目前已有的澎湃S1上搭載有9V/2A的18W的澎湃快充,是典型的高壓快充方案。不知道澎湃S2會不會給我們帶來驚喜呢?

    再說說高通,高通似乎也發現了低壓方案的優勢,在最新的QC4快充上,也使用了低壓大電流方案,不過于此同時也還支持著高壓快充方案。

    盡管目前低壓大電流方案已經基本統治了快充,但是各家的快充協議互不兼容,可以說給消費者帶來了很大的苦惱。

    這個時候,又到USB IF協會出場了。

    USB IF協會之前當然也沒有閑著,發布了基于USB 3.1中Type-C接口的USB Power Delivery(簡稱USB PD)的充電標準,最高可以提供100W(20V/5A)的充電功率,旨在統一便攜移動設備的充電標準。USB IF的夢想是美好的,只是現實往往比較殘酷。各家廠商自己做手機,再做快充標準,當然都是首選自家的快充協議,USB PD標準也就被晾到了一邊。

    但是夢想還是要有的,萬一實現了呢?

    要知道,USB IF協會的背景可不弱(都是行業巨頭聯合成立的),而谷歌官方也是表示安卓一定要支持USB PD協議,不要亂搞些有的沒的快充協議。加上USB IF協會積極與各國以及各個高端實驗室溝通,其最新發布的USB PD3.0已經成功收編高通的QC4快充協議,至此,高通QC、聯發科PEP、華為fcp、scp,OPPO的VOOC等快充協議基本被USB PD3.0收納。而廠商日后研發自己的快充技術,只要基于USB PD的協議即可。USB PD協議有望一統江湖。

    圖為USB PD3.0協議,圖片來自網絡

    但是,盡管前途一片光明,道路還是一片崎嶇,快充大一統,還是有不短的路要走。

    .USB基礎知識介紹

    這里有一篇文章寫的非常好不再重復造輪子

    USB基礎知識介紹:https://blog.csdn.net/Richard_Brown/article/details/106602288

    2.USB設備介紹

    常見的USB設備:U盤、鼠標、MP3、移動硬盤、數碼相機、鍵盤、游戲桿、USB攝像頭、USB打印機、USB掃描儀、USB話筒、USB網卡、USB顯示器等。我這里就以STM32F103C8T6為主控芯片,目的是開發一個USB設備用于跟電腦PC機進行通信實現電腦音量的控制,我稱之為音樂控制器項目。

    3.USB協議版本

    USB協議的版本:USB的協議版本有:USB1.0、USB1.1 、USB2.0和USB3.0等

    注意:USB2.0并不是高速設備的代名詞,因為USB2.0協議對設備的高速模式并不是強制的,而是可選的。如PDIUSBD12(USB芯片型號),是符合USB2.0協議的,但是不支持高速模式,只支持12Mb/s的全速模式。和USB芯片也有關系的,不要認為支持USB2.0協議就一定具有高速模式。

    STM32F103的USB設備模式介紹(屬于USB2.0)

    USB設備模式 本章介紹OTG_FS控制器在USB設備模式時的功能。OTG_FS控制器在以下情況時工作在設備模式下:● OTG B類設備 ─ 插入的是USB電纜的B端時,默認的是OTG B類設備模式 ● OTG A類設備 ─ OTG A類設備通過HNP協議切換到設備角色 ● B類設備 ─ 在ID線存在時,插入的是USB電纜的B端,同時USB全局配置寄存器的HNP位 (OTG_FS_GUSBCFG寄存器的HNPCAP位)為’0’時(請參考OTG 1.3版的第6.8.3節) ● 僅作為USB設備(請參考下圖) ─ USB全局配置寄存器的強制設備模式位(OTG_FS_GUSBCFG寄存器的FDMOD位) 為’1’,將強制使OTG_FS控制器工作于USB設備模式(請參考OTG 1.3版的第6.8.3 節)。在這種情況下ID線無論是否存在,其狀態都將被忽略。注意:在設計一個總線供電的僅實現設備模式的B類設備時,需要有一個外部的電壓變換器,從VBUS取電,為芯片的VDD供電。

    由圖可知STM32作為一個簡單的從設備還是比較簡單的只需要把DP DM鏈接到PA11跟PA12管腳即可。原理圖如下:

    USB主機如何識別從設備的接入跟速度

    其實就是根據D+、D- 的高低電平來檢測設備的插入。在USB集線器的下游端口D+和D-上,分別接了一個15kΩ下拉電阻;在設備端,D+或D-上接了一個上拉電阻1.5kΩ(本圖中是D+),低速設備的上拉電阻接在D-上,高速和全速設備的上拉電阻接在D+上。在當沒有設備插入時,輸入端的電平就被這兩個下拉電阻拉到了低電平。當有設備插入時,接了上拉電阻的數據線,電平被拉高,根據被拉高的是D+還是D- 來判斷是低速設備還是全速設備。USB高速設備顯示被識別成全速設備,然后通過集線器和設備兩者的確認,再切換到高速模式。高速模式下,是電流傳輸,這時要將D+上的上拉電阻斷開

    USB只遵循主從模式通信的理解

    注意:USB只遵從主從模式,即設備與設備、主機與主機不能互連。為了解決這個問題,就有了 USB OTG(on the go),做法是:同一個設備在不同的場合下可以在主機與從機之間切換。USB OTG比USB多了一個ID引腳,ID接地,充當USB Host;ID懸空,充當USB Device。例如:手機通過USB OTG接入電腦,此時手機就是USB Device,電腦是USB Host;U盤接入手機,此時手機就是USB Host,U盤是USB Device。

    至于USB OTG如何在主機和從機間切換,這里就不做介紹,這個涉及到主機談判協議HNP(Host Negotiation Protocol),是通過HNP去實現的。我也是大概能看懂這幾句話,這個不懂暫時跳過。

    如何去描述一個設備是什么呢

    答案是設備描述符:USB主機如何知道插入的USB是個什么樣的設備,這個設備有什么功能就是由設備描述符來決定的。

    USB描述符的類型

    USB1.1協議中定義的標準描述符有:設備描述符(Device Descriptor)、 配置描述符(Configuration Descriptor)、 接口描述符(Interface Descriptor)、 端點描述符(Endpoint Descriptor)、 字符串描述符(String Descriptor) USB2.0又新增了兩個新的標準描述符:Device Qualifier Descriptor、 Other Speed Configuration Descriptor 還有一些特殊的描述符,如類特殊描述符(HID描述符、音頻接口描述符)、廠商自定義的描述符等。

    設備描述的理解

    USB(Universal Serial Bus)設備描述符是一種用于描述連接到USB總線上的設備的信息的數據結構。它提供了有關設備的基本信息,如供應商ID、產品ID、設備類別、協議等。以下是常見的USB設備描述符字段和它們的含義:

    1. Device Descriptor(設備描述符)
    2. bLength: 描述符的長度。
    3. bDescriptorType: 描述符的類型,對于設備描述符,值為0x01。
    4. bcdUSB: 指示支持的USB規范版本。
    5. bDeviceClass: 設備的類別。
    6. bDeviceSubClass: 設備的子類別。
    7. bDeviceProtocol: 設備的協議。
    8. bMaxPacketSize0: 端點0的最大數據包大小。
    9. idVendor: 供應商ID,由USB論壇分配。
    10. idProduct: 產品ID,由制造商分配。
    11. bcdDevice: 設備的版本號。
    12. iManufacturer: 制造商信息的字符串描述符索引。
    13. iProduct: 產品信息的字符串描述符索引。
    14. iSerialNumber: 序列號信息的字符串描述符索引。
    15. bNumConfigurations: 設備支持的配置數目。
    16. Configuration Descriptor(配置描述符)
    17. bLength: 描述符的長度。
    18. bDescriptorType: 描述符的類型,對于配置描述符,值為0x02。
    19. wTotalLength: 配置描述符及其子描述符的總長度。
    20. bNumInterfaces: 配置中接口的數目。
    21. bConfigurationValue: 配置的值,用于選擇配置。
    22. iConfiguration: 配置信息的字符串描述符索引。
    23. bmAttributes: 配置特性,如自供電、遠程喚醒等。
    24. bMaxPower: 配置所需的最大電流。
    25. Interface Descriptor(接口描述符)
    26. bLength: 描述符的長度。
    27. bDescriptorType: 描述符的類型,對于接口描述符,值為0x04。
    28. bInterfaceNumber: 接口的編號。
    29. bAlternateSetting: 可選擇的設置編號。
    30. bNumEndpoints: 接口使用的端點數目。
    31. bInterfaceClass: 接口的類別。
    32. bInterfaceSubClass: 接口的子類別。
    33. bInterfaceProtocol: 接口的協議。
    34. iInterface: 接口信息的字符串描述符索引。
    35. Endpoint Descriptor(端點描述符)
    36. bLength: 描述符的長度。
    37. bDescriptorType: 描述符的類型,對于端點描述符,值為0x05。
    38. bEndpointAddress: 端點的地址及方向。
    39. bmAttributes: 端點的屬性,如控制、同步、批量、中斷等。
    40. wMaxPacketSize: 端點支持的最大數據包大小。
    41. bInterval: 中斷端點的輪詢間隔。
    42. String Descriptor(字符串描述符):用于提供與設備相關的文本信息,如制造商名稱、產品名稱、序列號等。這些字符串描述符可以幫助用戶和操作系統更好地識別和管理連接的USB設備。每個字符串描述符都有一個索引,它們包含在設備描述符、配置描述符和接口描述符中。
    • bLength(描述符長度):字符串描述符的字節數。
    • bDescriptorType(描述符類型):對于字符串描述符,值為0x03。
    • bString:實際的字符串數據,使用UTF-16LE編碼。字符串的長度是可變的,由bLength字段指定。注意,字符串描述符并不是以零結尾的C風格字符串,而是在數據中直接編碼的。
    • Language ID:對于字符串描述符,索引為0的字符串包含語言ID列表,該列表指示支持的語言。
    • 索引:每個字符串描述符都有一個唯一的索引,從1開始。這些索引被用于在描述符中引用特定的字符串。一些常見的字符串描述符索引包括:
    • iManufacturer:制造商名稱的字符串描述符索引。
    • iProduct:產品名稱的字符串描述符索引。
    • iSerialNumber:序列號信息的字符串描述符索引。
    • iConfiguration:配置信息的字符串描述符索引。
    • iInterface:接口信息的字符串描述符索引。這些字符串描述符允許制造商在USB設備中提供易于理解的信息,以便用戶能夠識別設備并與之交互,而不必僅僅依賴于設備的硬件信息。

    常見的USB描述符類型及其對應的編號

    描述符類型(bDescriptorType)編號(bDescriptorType)描述設備描述符(Device Descriptor)0x01描述連接到USB總線的設備的基本信息。配置描述符(Configuration Descriptor)0x02描述設備的配置和接口信息。字符串描述符(String Descriptor)0x03提供與設備相關的文本信息。接口描述符(Interface Descriptor)0x04描述接口的信息,包括類別、子類別和協議。端點描述符(Endpoint Descriptor)0x05描述端點的信息,包括方向、類型和最大數據包大小。設備質量描述符(Device Qualifier Descriptor)0x06用于USB 2.0設備,提供設備的速度和能力信息。其他速度配置描述符(Other Speed Configuration Descriptor)0x07提供USB 2.0設備的其他速度配置信息。接口功率描述符(Interface Power Descriptor)0x08描述接口的功率需求。OTG描述符(OTG Descriptor)0x09用于USB On-The-Go(OTG)設備,提供OTG設備的能力信息。接口功能描述符(Interface Functional Descriptor)0x24描述特定類型的接口的功能性信息,如音頻、視頻等。MIDI接口描述符(MIDI Interface Descriptor)0x24描述MIDI音頻接口的特定功能信息。

    注意,這只是一些常見的USB描述符類型,實際上還有其他特定領域的描述符和擴展描述符,用于支持更多的功能和特性。每個描述符類型都有其特定的用途和信息內容,幫助操作系統和應用程序正確地配置和與USB設備進行通信。

    不同的描述符都有自己的結構體

    這里引用的那篇博客由詳細的介紹我這里就不在詳細展開

    USB描述符之間的關系

    USB描述符之間的關系:一個USB設備只有一個設備描述符。設備描述符決定了該設備有多少種配置,每種配置都有一個配置描述符;配置描述符中又定義了該配置有多少個接口,每個接口都有一個接口描述符;接口描述符中又定義了該接口有多少個端點,每個端點都有一個端點描述符;端點描述符定義了端點的類型、大小等。如果有HID描述符或音頻接口描述符,則在接口描述符的后面。一個設備至少要包含設備描述符、配置描述符和接口描述符,如果USB設備沒有端點描述符,則它僅僅用默認管道與主機進行數據傳輸。USB描述符之間的關系是一層一層的,設備描述符、配置描述符、接口描述符、端點描述符。

    我們在快速開發一個USB設備的時候就是要配置一個描述符結構體,這樣主機就能識別到我們這個設備是什么東西,也就可以實現通信或者控制。這是描述符號之間的關系圖:

    主機在獲取描述符時,首先獲取設備描述符,再獲取配置描述符,然后根據配置描述符中的配置集合總長度,一次將配置描述符、接口描述符、類特殊描述符(如果有)、端點描述符一次讀回。注意:接口描述符、類特殊描述符、端點描述符不能單獨獲取,必須跟配置描述符以一個集合的方式一并返回。可以通過beagle抓USB數據看到,沒有Get Interface Descriptor和Get Endpoint Descriptor的請求。

    對于字符串描述符,## 標題是單獨獲取的。主機通過發送獲取字符串描述符的請求和描述符的索引號、語言ID來獲取對應的字符串描述符。

    總結

    1. 開發一個USB設備需要知道是遵循什么標準
    2. 開發一個UBS設備要配置若干設備描述符
    3. 不同的設備的設備描述符不一樣要選擇合適的
    4. USB通信至少需要兩根線D+ D- 識別要加上拉電阻

    基礎知識準備完畢,下面就可以動手開發USB音樂控制器項目了

    下期內容預告:STM32CubeMx開發一個USB設備與電腦通信

    小李的創客實驗室

    旨在向廣大電子愛好者提供更多的資訊,實現每個人的心中的創客夢想!

    51篇原創內容

    公眾號

    往期文章:

    旋轉式編碼器介紹

    STM32CubeMx定時器編碼器模式(超詳)

    STM32CubeMx驅動WS2812B實現幻彩(超詳)

    STM32CubeMx配置USART1增加打印功能

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有