RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于DWC2的USB驅(qū)動(dòng)開發(fā)-IAD描述符詳解

嵌入式USB開發(fā) ? 來(lái)源:嵌入式Lee ? 作者:嵌入式Lee ? 2023-06-27 08:45 ? 次閱讀

本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注

基于DWC2的USB驅(qū)動(dòng)開發(fā)-IAD描述符詳解 (qq.com)

一.前言

IAD描述符用于一個(gè)設(shè)備功能關(guān)聯(lián)多個(gè)接口,可以用于實(shí)現(xiàn)組合設(shè)備。

二.參考文檔

參考《iadclasscode_r10.pdf》

USB Interface Association Descriptor Device Class Code and use Model Revision 1.0 July 23,2003

直接在https://www.usb.org/documents下搜索”USB Interface Association Descriptor Device Class Code”下載

ecd0b3ca-1483-11ee-9c1d-dac502259ad0.png

ed1bf88a-1483-11ee-9c1d-dac502259ad0.png

參考《InterfaceAssociationDescriptor_ecn.pdf》

下載地址https://www.usb.org/sites/default/files/iadclasscode_r10.pdf

三.概述

從(USB規(guī)范的)第一天起,關(guān)于是否應(yīng)允許多功能設(shè)備每個(gè)邏輯功能使用一個(gè)以上接口,一直存在歧義。核心規(guī)范沒有為每個(gè)功能含多個(gè)接口的情況提供任何特定的框架支持,但幾個(gè)設(shè)備工作組(DWG)使用它們定義了設(shè)備類,并使用不同的方法來(lái)確定接口應(yīng)如何組織在一起。DWG Common Class組在定義標(biāo)準(zhǔn)方法方面做了大量工作,但定義較晚,從未被采用,最終被停用

最近的USB 2.0 ECN接口關(guān)聯(lián)描述符(IAD)通過(guò)在USB設(shè)備框架中定義一種標(biāo)準(zhǔn)方法來(lái)解決這個(gè)問(wèn)題,該方法用于描述應(yīng)該綁定到設(shè)備驅(qū)動(dòng)程序的同一實(shí)例的接口(及其金額選設(shè)置)的關(guān)聯(lián)。參考《InterfaceAssociationDescriptor_ecn.pdf》。

當(dāng)連接到USB軟件不理解IAD的系統(tǒng)時(shí),使用IAD的新設(shè)備存在遺留問(wèn)題(意味著與設(shè)備驅(qū)動(dòng)程序的接口級(jí)綁定,而不是設(shè)備級(jí)綁定)。盡管IAD會(huì)被忽略,但由于USB系統(tǒng)軟件無(wú)法將接口與驅(qū)動(dòng)程序正確綁定,設(shè)備可能無(wú)法按預(yù)期工作。

USB核心團(tuán)隊(duì)已經(jīng)分配了一個(gè)設(shè)備級(jí)類代碼,該代碼必須包含在使用IAD的設(shè)備實(shí)現(xiàn)中。

這提供了在設(shè)備枚舉期間對(duì)啟用IAD的設(shè)備的最簡(jiǎn)單檢測(cè),這將允許安裝具有正確解析配置和為使能IAD的設(shè)備定位適當(dāng)?shù)尿?qū)動(dòng)程序能力的專用功能驅(qū)動(dòng)程序。

3.1 IAD的來(lái)源背景

ECN即USB Engineering Change Notice,USB的工程變更通知。

《InterfaceAssociationDescriptor_ecn.pdf》此ECN定義了一個(gè)新的標(biāo)準(zhǔn)描述符和接口編號(hào)規(guī)則,允許設(shè)備描述哪一個(gè)接口和同一個(gè)設(shè)備功能關(guān)聯(lián)。這允許操作系統(tǒng)將所有適當(dāng)?shù)慕涌诮壎ǖ酵或?qū)動(dòng)程序?qū)嵗?即多個(gè)接口對(duì)應(yīng)一個(gè)設(shè)備功能。

核心USB框架假設(shè)的基本配置模型是,設(shè)備上的接口和功能之間始終存在1:1的關(guān)聯(lián),即一個(gè)接口對(duì)應(yīng)一個(gè)設(shè)備功能。系統(tǒng)軟件是按照核心規(guī)范的意圖設(shè)計(jì)的,并假設(shè)每個(gè)功能(和一個(gè)接口)有一個(gè)驅(qū)動(dòng)程序(見下圖)

ed338400-1483-11ee-9c1d-dac502259ad0.png

一些設(shè)備類規(guī)范已經(jīng)超過(guò)了核心USB規(guī)范框架,并定義了使用多個(gè)接口(即多個(gè)接口描述符)的設(shè)備功能。支持這一點(diǎn)的模型仍然只需要每個(gè)功能一個(gè)功能驅(qū)動(dòng)程序,但也需要多個(gè)接口綁定到同一個(gè)驅(qū)動(dòng)程序?qū)嵗ㄒ娤聢D)。不幸的是,沒有標(biāo)準(zhǔn)方法允許設(shè)備通過(guò)設(shè)備框架來(lái)描述配置中的哪些接口應(yīng)該與相同的功能相關(guān)聯(lián)。

ed667bda-1483-11ee-9c1d-dac502259ad0.png

此更改通知定義了設(shè)備框架的必要擴(kuò)展,允許設(shè)備注釋哪些接口與同一功能相關(guān)。這種設(shè)備框架擴(kuò)展最終將被用于所有每個(gè)設(shè)備功能使用多個(gè)接口的設(shè)備。

3.2對(duì)軟件的影響

對(duì)現(xiàn)有操作系統(tǒng)版本和現(xiàn)有設(shè)備類沒有影響。系統(tǒng)軟件會(huì)忽略新的描述符。他們描述的接口不會(huì)改變。使用多個(gè)接口來(lái)管理單個(gè)設(shè)備功能的設(shè)備的未來(lái)實(shí)現(xiàn)必須支持此功能。

操作系統(tǒng)當(dāng)前不支持的設(shè)備類會(huì)對(duì)未來(lái)/新的設(shè)備實(shí)現(xiàn)產(chǎn)生影響。具體來(lái)說(shuō),如果一個(gè)設(shè)備實(shí)現(xiàn)包括多個(gè)功能單元(每個(gè)單元有多個(gè)接口),那么該設(shè)備將僅在支持此新描述符的操作系統(tǒng)實(shí)現(xiàn)上正確枚舉

為了更容易地增強(qiáng)現(xiàn)有的操作系統(tǒng)實(shí)現(xiàn),使其能夠處理使用該描述符的設(shè)備,將分配設(shè)備類代碼,目的是所有使用接口關(guān)聯(lián)描述符的設(shè)備都將在其設(shè)備描述符中使用該類代碼。這將允許輕松安裝一個(gè)新的驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序知道如何解析和枚舉包括接口關(guān)聯(lián)描述符的配置。IAD的分類代碼將記錄在usb.org網(wǎng)站上。

現(xiàn)有設(shè)備類工作組負(fù)責(zé)確定是否需要修改其單獨(dú)的規(guī)范以使用或利用此新的框架擴(kuò)展。

3.3合規(guī)性測(cè)試影響

最終必須更新標(biāo)準(zhǔn)合規(guī)工具集(USBCV),以檢查這些新描述符的格式(和使用)。

此外,必須為合規(guī)工具建立一些規(guī)則,以確定哪個(gè)設(shè)備應(yīng)該使用這些描述符,并因未使用這些描述符而使其失敗。

四.IAD描述符

4.1描述符類型

添加了新的IAD描述符類型11。

以下建議與以前的操作系統(tǒng)向后兼容。它保留了當(dāng)前的接口定義,并添加了一個(gè)新的描述符類型。對(duì)于舊的操作系統(tǒng)版本,新的描述符將被忽略,舊的機(jī)制將占上風(fēng)。對(duì)于新的操作系統(tǒng)版本,新的描述符將生效。

將以下內(nèi)容添加到USB規(guī)格書2.0表9-6中(注意,核心規(guī)范目前定義的值為1-8。自發(fā)布以來(lái),值9和10的分配如下所述)。

Descriptor Types

Value

DEVICE

1

CONFIGURATION

2

STRING

3

INTERFACE

4

ENDPOINT

5

DEVICE_QUALIFIER

6

OTHER_SPEED_CONFIGURATION

7

INTERFACE_POWER

8

OTG

9

DEBUG

10

INTERFACE_ASSOCIATION

11

USB規(guī)格書2.0中P251中內(nèi)容如下,即添加了類型11的IAD描述符類型。

Table 9-5. Descriptor Types

Descriptor Types

Value

DEVICE

1

CONFIGURATION

2

STRING

3

INTERFACE

4

ENDPOINT

5

DEVICE_QUALIFIER

6

OTHER_SPEED_CONFIGURATION

7

INTERFACE_POWER1

8

4.2IAD描述符內(nèi)容

以下是接口關(guān)聯(lián)描述符的定義。在下一次規(guī)范修訂更新時(shí),應(yīng)將其作為新的第9.6.6節(jié)(將當(dāng)前第9.6.6章移至第9.6.7章,依此類推)。

接口關(guān)聯(lián)描述符用于描述兩個(gè)或多個(gè)接口與同一功能相關(guān)聯(lián)?!瓣P(guān)聯(lián)”包括兩個(gè)或多個(gè)接口及其所有可選設(shè)置接口。

對(duì)于需要多個(gè)接口的每個(gè)設(shè)備功能,設(shè)備必須使用接口關(guān)聯(lián)描述符。

接口關(guān)聯(lián)描述符總是作為GetDescriptor(configuration)請(qǐng)求返回的配置信息的一部分返回。無(wú)法使用GetDescriptor()或SetDescriptor()請(qǐng)求直接訪問(wèn)接口關(guān)聯(lián)描述符。

接口關(guān)聯(lián)描述符必須位于與其關(guān)聯(lián)的接口的接口描述符集(包括所有可選設(shè)置)之前。

關(guān)聯(lián)接口集中的所有接口編號(hào)必須是連續(xù)的。

表9-Z顯示了標(biāo)準(zhǔn)接口關(guān)聯(lián)描述符。

接口關(guān)聯(lián)描述符包括函數(shù)類、子類和協(xié)議字段。這些字段中的值可以與任何一個(gè)相關(guān)接口的接口類、子類和協(xié)議值相同。

對(duì)于現(xiàn)有的設(shè)備類,優(yōu)選的實(shí)現(xiàn)是使用關(guān)聯(lián)接口列表中第一個(gè)接口的接口類、子類和協(xié)議字段值。

注意:由于此特定功能未包含在早期版本的USB規(guī)范中,因此現(xiàn)有的USB操作系統(tǒng)實(shí)現(xiàn)將如何支持使用此描述符的設(shè)備存在問(wèn)題。強(qiáng)烈建議使用接口關(guān)聯(lián)描述符的設(shè)備實(shí)現(xiàn)使用設(shè)備描述符中的多接口功能類代碼。這允許簡(jiǎn)單而容易地識(shí)別這些設(shè)備,并允許在某些操作系統(tǒng)上安裝升級(jí)驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序可以解析和枚舉包括接口關(guān)聯(lián)描述符的配置。多接口函數(shù)類代碼記錄在http://www.usb.org/developers/docs網(wǎng)站

Table 9–Z. Standard Interface Association Descriptor

偏移

區(qū)域

大小

描述

0

bLength

1

Number

描述符字節(jié)數(shù).

1

bDescriptorType

1

Constant

INTERFACE ASSOCIATION 描述符即11.

2

bFirstInterface

1

Number

和該功能關(guān)聯(lián)的第一個(gè)接口序號(hào)

3

bInterfaceCount

1

Number

和該功能關(guān)聯(lián)的接口個(gè)數(shù)

4

bFunctionClass

1

Class

USB-IF分配的類編碼.
不能寫0
0xFF表示廠商自定義
其他值由USB-IF分配.

5

bFunctionSubClass

1

SubClass

USB-IF分配的子類編碼.
bFunctionClass 不為FFH 則所有值都由USB
IF分配.

6

bFunctionProtocol

1

Protocol

USB-IF分配的協(xié)議編碼. 這些代碼由bFunctionClass和bFunctionSubClass字段的值限定。

7

iFunction

1

Index

描述該功能的字符串描述符索引

其中bFunctionClass ,bFunctionSubClass,bFunctionProtocol 的值需要根據(jù)具體的設(shè)備類文檔確定

比如UVC參考《UVC 1.5 Class specification.pdf》Universal Serial Bus Device Class Definition for Video Devices Revision 1.5 August 9, 2012 P60

Table 3-1 Standard Video Interface Collection IAD

Offset

Field

Size

Value

Description

0

bLength

1

Number

Size of this descriptor, in bytes: 8

1

bDescriptorType

1

Constant

INTERFACE ASSOCIATION
Descriptor.

2

bFirstInterface

1

Number

Interface number of the first
VideoControl interface that is
associated with this function.

3

bInterfaceCount

1

Number

Number of contiguous VideoStreaming
interfaces that are associated with this
function. The count includes the first
VideoControl interface and all its
associated VideoStreaming interfaces.

4

bFunctionClass

1

Class

CC_VIDEO. Video Interface Class
code (assigned by the USB). See
section A.1, "Video Interface Class
Code".

5

bFunctionSubClass

1

SubClass

SC_VIDEO_INTERFACE_COLLECT
ION. Video Interface Subclass code.
Assigned by this specification. See
section A.2, "Video Interface Subclass
Codes".

6

bFunctionProtocol

1

Protocol

Not used. Must be set to
PC_PROTOCOL_UNDEFINED.

7

iFunction

1

Index

Index of a string descriptor that
describes this interface. This must be
used for the device (function) name and
be implemented in US English
(LANGID = 0x0409) at the minimum.

4.3UAC的IAD實(shí)例

1. -------------------IADDescriptor--------------------

2.bLength:0x08(8bytes)

3.bDescriptorType:0x0B(InterfaceAssociationDescriptor)

4.bFirstInterface:0x02(Interface2)

5.bInterfaceCount:0x02(2Interfaces)

6.bFunctionClass:0x01(Audio)

7.bFunctionSubClass:0x02(AudioStreaming)

8.bFunctionProtocol:0x00

9.iFunction:0x08(StringDescriptor8)

10.Language0x0409:"usb-audio"

11.Data(HexDump) :080B020201020008 ........

4.4UVC的IAD實(shí)例

1. -------------------IADDescriptor--------------------

2.bLength:0x08(8bytes)

3.bDescriptorType:0x0B(InterfaceAssociationDescriptor)

4.bFirstInterface:0x00(Interface0)

5.bInterfaceCount:0x02(2Interfaces)

6.bFunctionClass:0x0E(Video)

7.bFunctionSubClass:0x03(VideoInterfaceCollection)

8.bFunctionProtocol:0x00(PC_PROTOCOL_UNDEFINED)

9.iFunction:0x05(StringDescriptor5)

10.Language0x0409:"usb-webcam"

11.Data(HexDump) :080B00020E030005 ........

4.5CDC的IAD實(shí)例

1. -------------------IADDescriptor--------------------

2.bLength:0x08(8bytes)

3.bDescriptorType:0x0B(InterfaceAssociationDescriptor)

4.bFirstInterface:0x04(Interface4)

5.bInterfaceCount:0x02(2Interfaces)

6.bFunctionClass:0x02(CommunicationsandCDCControl)

7.bFunctionSubClass:0x02

8.bFunctionProtocol:0x01

9.iFunction:0x0A(StringDescriptor10)

10.Language0x0409:"usb-com"

11.Data(HexDump) :080B04020202010A ........

五.使用IAD時(shí)的設(shè)備描述符

5.1使用IAD時(shí)的設(shè)備描述符

使用IAD的設(shè)備必須使用下表中所示的示例設(shè)備描述符中定義的設(shè)備類bDeviceClass、子類bDeviceSubClass和協(xié)議代碼bDeviceProtocol其他的參考USB2.0的規(guī)格書usb_20.pdf的Table 9-8. Standard Device Descriptor。這組類代碼被定義為多接口功能設(shè)備類代碼。

偏移

區(qū)域

大小

描述

0

bLength

1

Number

描述字節(jié)數(shù)

1

bDescriptorType

1

Constant

見usb_20.pdf的Table 9-8. Standard Device Descriptor

2

bcdUSB

2

BCD

4

bDeviceClass

1

EFH

Miscellaneous Device Class

5

bDeviceSubClass

1

02H

Common Class

6

bDeviceProtocol

1

01H

Interface Association Descriptor

7

bMaxPacketSize0

1

Number

見usb_20.pdf的Table 9-8. Standard Device Descriptor

8

idVendor

2

ID

10

idProduct

2

ID

12

bcdDevice

2

BCD

14

iManufacturer

1

Index

15

iProduct

1

Index

16

iSerialNumber

1

Index

17

bNumConfigurations

1

Index

使用IAD類代碼的示例設(shè)備描述符

5.2使用IAD的設(shè)備描述符實(shí)例

1. ----------------------DeviceDescriptor----------------------

2.bLength:0x12(18bytes)

3.bDescriptorType:0x01(DeviceDescriptor)

4.bcdUSB:0x200(USBVersion2.0)

5.bDeviceClass:0xEF(Miscellaneous)

6.bDeviceSubClass:0x02

7.bDeviceProtocol:0x01(IAD-InterfaceAssociationDescriptor)

8.bMaxPacketSize0:0x40(64bytes)

9.idVendor:0x2BC5(Orbbec3DTech.Int'lInc.)

10.idProduct:0x0529

11.bcdDevice:0x0200

12.iManufacturer:0x01(StringDescriptor1)

13.Language0x0409:"webcamvendor"

14.iProduct:0x02(StringDescriptor2)

15.Language0x0409:"webcamproduct"

16.iSerialNumber:0x03(StringDescriptor3)

17.Language0x0409:"00000000"

18.bNumConfigurations:0x01(1Configuration)

19.Data(HexDump) :12010002EF020140C52B290500020102 .......@.+).....

20. 0301 ..

六.IAD使用模型

下圖提供了一個(gè)示例,說(shuō)明在典型的設(shè)備實(shí)現(xiàn)中如何使用IAD。

核心USB規(guī)范并沒有指定從GetDescriptor(Configuration)請(qǐng)求返回的描述符集,應(yīng)該如何構(gòu)造的組織(位置關(guān)系)要求。

下圖說(shuō)明了如何組織這些描述符的推薦布局,以便主機(jī)軟件可以輕松地解析它們,并明確地知道,要向每個(gè)功能驅(qū)動(dòng)程序提供哪些描述符。

組織描述符集的一般方法是“按設(shè)備功能”對(duì)它們進(jìn)行分組。這基本上意味著特定設(shè)備功能的所有描述符應(yīng)始終位于“一起”(如圖所示)。

此外,圖中說(shuō)明了描述符集應(yīng)如何綁定到設(shè)備驅(qū)動(dòng)程序。需要注意,對(duì)于類特定描述符應(yīng)如何與IAD關(guān)聯(lián)進(jìn)行分組,可能存在特定(附加)要求。這些將在特定的設(shè)備類文檔中指定,比如UVC參考《UVC 1.5 Class specification.pdf》Universal Serial Bus Device Class Definition for Video Devices Revision 1.5 August 9, 2012 P60。

(1)在示例框圖的頂部,多接口功能設(shè)備類(Multi-Interface Function Device Class)設(shè)備,其設(shè)備描述符包括設(shè)備類bDeviceClass、子類bDeviceSubClashh和協(xié)議代碼bDeviceProtocol,他們的值必須分別是0xEF(Misc),0x02(Common Class),0x01(IAD).

(2)接下來(lái)是配置描述符集。在高層次上,該特定配置包括三個(gè)設(shè)備功能。配置描述符和第一個(gè)接口或IAD描述符之間的任何描述符都應(yīng)被視為“全局”,并傳遞給每個(gè)功能設(shè)備驅(qū)動(dòng)程序(見示例)。

(3)第一個(gè)功能關(guān)聯(lián)包括兩個(gè)接口(包括所有類特定描述符和可選設(shè)置alternate settings)。第二設(shè)備功能是單個(gè)接口功能,并且不需要IAD。第三個(gè)設(shè)備功能與第一個(gè)類似。對(duì)于每個(gè)設(shè)備功能,系統(tǒng)軟件必須向設(shè)備驅(qū)動(dòng)程序提供“關(guān)聯(lián)”中的所有描述符以及上述“全局”描述符。

(4)bInterface Count字段中的值必須包括預(yù)期集合中的所有接口。例如,假設(shè)一個(gè)多接口功能的接口編號(hào)為N到M。bFirstInterface字段值為N,bInterface Count的值則為(M-N)+1(因?yàn)殛P(guān)聯(lián)中的所有接口都必須是數(shù)字連續(xù)的,所以算法(M-N)+1總是有效的)。注意,每個(gè)接口可以有零個(gè)或多個(gè)可選設(shè)置alternate settings,但可選設(shè)置不包括在bInterface Count的計(jì)算中。

(5)對(duì)于使用IAD的設(shè)備功能(如示例中的第一個(gè)和第三個(gè)功能),USB系統(tǒng)軟件應(yīng)構(gòu)建“硬件標(biāo)識(shí)符”,用于使用設(shè)備描述符中的idVendor和idProduct以及IAD中的bFirstInterface字段定位和加載設(shè)備驅(qū)動(dòng)程序。此外,系統(tǒng)軟件應(yīng)使用IAD中的類代碼字段(bFunctionClass、bFunctionSubClass、bFunctionProtocol)構(gòu)建“兼容性標(biāo)識(shí)符”。

ed790430-1483-11ee-9c1d-dac502259ad0.png

使用接口關(guān)聯(lián)描述符的示例設(shè)備框圖

七.總結(jié)

1.在一個(gè)設(shè)備功能需要關(guān)聯(lián)多個(gè)接口時(shí)需要使用IAD描述符,比如UVC,UAC, 而一個(gè)配置描述符下可以使用多個(gè)IAD即實(shí)現(xiàn)了組合設(shè)備,比如UVC+UAC_CDC, 使用IAD時(shí)此時(shí)設(shè)備描述符的設(shè)備類bDeviceClass、子類bDeviceSubClashh和協(xié)議代碼bDeviceProtocol,他們的值必須分別是0xEF(Misc),0x02(Common Class),0x01(IAD)。詳見前面的實(shí)例。

2.IAD描述的內(nèi)容參考前面的實(shí)例,bFunctionClass ,bFunctionSubClass,bFunctionProtocol 的值需要根據(jù)具體的設(shè)備類文檔確定,可以參考前面的實(shí)例。


審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8575

    瀏覽量

    151014
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7936

    瀏覽量

    264456
  • IAD
    IAD
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    9101
  • DWC2
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    125
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x01開篇介紹與新思DWC2 USB2.0控制器簡(jiǎn)介

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-0x01開篇介紹與新思DWC2 USB2
    的頭像 發(fā)表于 05-08 18:10 ?4583次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-0x01開篇介紹與新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0控制器簡(jiǎn)介

    基于DWC2USB驅(qū)動(dòng)開發(fā)-0x02 DWC2 USB2.0 IP功能特征介紹

    DWC2即新思(Synopsys )的DesignWare? Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。從linux的內(nèi)核源碼驅(qū)動(dòng)中就帶
    的頭像 發(fā)表于 05-09 10:09 ?9357次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-0x02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介紹

    基于DWC2USB驅(qū)動(dòng)開發(fā)-USB復(fù)位詳解

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-USB復(fù)位詳解 (qq.com) 一.前言
    的頭像 發(fā)表于 07-07 11:18 ?6.4w次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>復(fù)位<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開發(fā)-USB連接詳解

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-USB連接詳解 (qq.com) 一.前
    的頭像 發(fā)表于 07-07 08:46 ?3689次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>USB</b>連接<b class='flag-5'>詳解</b>

    基于DWC2USB驅(qū)動(dòng)開發(fā)-設(shè)備類驅(qū)動(dòng)框架

    本文轉(zhuǎn)自公眾號(hào),歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-設(shè)備類驅(qū)動(dòng)框架 (qq.com) 一.前言 從軟件頂層,從數(shù)據(jù)流的角度來(lái)看
    的頭像 發(fā)表于 07-16 15:56 ?1305次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-設(shè)備類<b class='flag-5'>驅(qū)動(dòng)</b>框架

    基于DWC2USB驅(qū)動(dòng)開發(fā)-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例

    本文轉(zhuǎn)自公眾號(hào)歡迎關(guān)注 基于DWC2USB驅(qū)動(dòng)開發(fā)-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例 (qq.com) ? 一.前言 ? ? ? ?對(duì)于驅(qū)動(dòng)
    的頭像 發(fā)表于 08-08 09:43 ?2268次閱讀
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-數(shù)據(jù)不能發(fā)送問(wèn)題分析案例

    基于DWC_ether_qos的以太網(wǎng)驅(qū)動(dòng)開發(fā)-描述符鏈表介紹

    of descriptors)。DMA根據(jù)描述符鏈表自動(dòng)在FIFO和用戶指定的緩存之間搬運(yùn)數(shù)據(jù)。對(duì)于熟悉新思的IP的用戶來(lái)說(shuō),這種套路會(huì)有似曾相識(shí)的感覺,沒錯(cuò)新思的大部分高速IP的數(shù)據(jù)流都是這么處理的,比如在DWC2
    的頭像 發(fā)表于 08-30 09:39 ?4496次閱讀
    基于<b class='flag-5'>DWC</b>_ether_qos的以太網(wǎng)<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>描述符</b>鏈表介紹

    USB描述符詳解

    對(duì)于實(shí)現(xiàn)USB功能的項(xiàng)目,不管是實(shí)現(xiàn)CDC,大容量存儲(chǔ)、HID等都必須使用實(shí)現(xiàn)USB標(biāo)準(zhǔn)描述符,從而實(shí)現(xiàn)USB枚舉過(guò)程。這里共享一個(gè)USB
    發(fā)表于 06-12 14:46

    USB設(shè)備檢測(cè)過(guò)程的USB設(shè)備的描述符

    USB 設(shè)備的總體信息,它是枚舉過(guò)程中主機(jī)從設(shè)備讀取的第一個(gè)描述符。設(shè)備描述符總共有 18 個(gè)字節(jié),分為 14 個(gè)字段,如表 6-5 所示。(2)配置
    發(fā)表于 11-12 09:23

    usb標(biāo)準(zhǔn)描述符之技巧

    usb標(biāo)準(zhǔn)描述符之技巧 USB是個(gè)通用的總線,端口都是統(tǒng)一的。但是USB設(shè)備卻各種各樣,例如USB鼠標(biāo),
    發(fā)表于 04-12 11:09 ?1528次閱讀

    USB HID報(bào)告及報(bào)告描述符簡(jiǎn)介

    USB中,USB HOST是通過(guò)各種描述符來(lái)識(shí)別設(shè)備的,有設(shè)備描述符,配置描述符,接口描述符
    發(fā)表于 04-12 11:13 ?4030次閱讀

    USB設(shè)備鍵值表描述符說(shuō)明資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是USB設(shè)備鍵值表描述符說(shuō)明資料免費(fèi)下載包括了:1.設(shè)備描述符的結(jié)構(gòu),2. 配置描述符的結(jié)構(gòu),3. 接口
    發(fā)表于 07-16 16:56 ?35次下載
    <b class='flag-5'>USB</b>設(shè)備鍵值表<b class='flag-5'>描述符</b>說(shuō)明資料免費(fèi)下載

    USB描述符之間的依賴是怎么樣的

    USB 是個(gè)通用的總線,端口都是統(tǒng)一的。但是USB 設(shè)備卻各種各樣,例如USB 鼠標(biāo), USB鍵盤, U盤等等,那么USB 主機(jī)是如何識(shí)別出
    發(fā)表于 07-23 16:53 ?8次下載
    <b class='flag-5'>USB</b>各<b class='flag-5'>描述符</b>之間的依賴是怎么樣的

    科普一下什么是USB描述符

    以及行為呢?這就要通過(guò)描述符來(lái)實(shí)現(xiàn)了。那么什么是USB描述符呢?其實(shí)就是一些傳遞的協(xié)議信息,比如設(shè)備的類型、廠商ID、產(chǎn)品ID、端點(diǎn)情況、版本號(hào)等信息。 既然描述符是協(xié)議信息,那么不
    的頭像 發(fā)表于 12-02 14:41 ?3953次閱讀

    基于DWC_ether_qos的以太網(wǎng)驅(qū)動(dòng)開發(fā)-描述符格式介紹

    前面我們介紹了描述符鏈表的工作模式,重點(diǎn)是了解環(huán)形鏈表是如何環(huán)形的,以及相關(guān)的寄存器。驅(qū)動(dòng)編寫就需要更進(jìn)一步,了解描述符的具體內(nèi)容,即4個(gè)描述符的每個(gè)字段的含義。
    的頭像 發(fā)表于 09-04 14:14 ?2621次閱讀
    基于<b class='flag-5'>DWC</b>_ether_qos的以太網(wǎng)<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>-<b class='flag-5'>描述符</b>格式介紹
    RM新时代网站-首页