-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUSB_Complete_3rd.mm
201 lines (200 loc) · 14.3 KB
/
USB_Complete_3rd.mm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<map version="0.9.0">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1225103806394" ID="ID_112321108" MODIFIED="1225766756719" TEXT="USB Complete 3rd Edition">
<icon BUILTIN="edit"/>
<node CREATED="1225103961672" ID="ID_622641237" MODIFIED="1225104408620" POSITION="left" TEXT="Types of Pipe">
<font NAME="SansSerif" SIZE="14"/>
<node CREATED="1225103979153" ID="ID_209215896" MODIFIED="1225104316936" TEXT="Message">
<node CREATED="1225103987746" ID="ID_917077104" MODIFIED="1225103992370" TEXT="Control Transfer"/>
</node>
<node CREATED="1225103984952" ID="ID_214389869" MODIFIED="1225103986512" TEXT="Stream"/>
</node>
<node CREATED="1225104170937" ID="ID_993038494" MODIFIED="1225104174369" POSITION="left" TEXT="Basic Rules">
<node CREATED="1225104216250" ID="ID_1803797186" MODIFIED="1225104240045" TEXT="Every device has Default Control Pipe that uses Endpoint 0"/>
<node CREATED="1225178493961" ID="ID_1581319364" MODIFIED="1225178528111" TEXT="All USB devices must support Control Transfers, the standard requests, and Endpoint 0"/>
</node>
<node CREATED="1225104678899" ID="ID_1060638855" MODIFIED="1225104699472" POSITION="right" TEXT="Terminology">
<node COLOR="#669900" CREATED="1225104705363" ID="ID_643910082" MODIFIED="1225175367828" TEXT="Transfer">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<node CREATED="1225104938004" ID="ID_1981786082" MODIFIED="1225104955574" TEXT="A Transfer 是由一個或一個以上的Transaction組成"/>
<node CREATED="1225103929448" ID="ID_637093281" MODIFIED="1225104408620" TEXT="Types of Transfer">
<font NAME="SansSerif" SIZE="14"/>
<node CREATED="1225103938491" ID="ID_1090389535" MODIFIED="1225103940592" TEXT="Control">
<node CREATED="1225104274621" ID="ID_114734895" MODIFIED="1225104316937" TEXT="Use Message Pipes">
<arrowlink DESTINATION="ID_209215896" ENDARROW="Default" ENDINCLINATION="729;0;" ID="Arrow_ID_1449405169" STARTARROW="None" STARTINCLINATION="729;0;"/>
</node>
</node>
<node CREATED="1225103940889" ID="ID_147753675" MODIFIED="1225103942740" TEXT="Bulk">
<node CREATED="1225104247149" ID="ID_1283197651" MODIFIED="1225104250991" TEXT="Can be very fast"/>
<node CREATED="1225104251303" ID="ID_447972825" MODIFIED="1225104257374" TEXT="Can be delay"/>
<node CREATED="1225104261244" ID="ID_863827317" MODIFIED="1225104268702" TEXT="Only in high speed and full speed"/>
</node>
<node CREATED="1225103942940" ID="ID_566316504" MODIFIED="1225103946639" TEXT="Interrupt">
<node CREATED="1225104346276" ID="ID_1162909468" MODIFIED="1225104366181" TEXT="Can be used in any speed (high, full, low)"/>
<node CREATED="1225104330356" ID="ID_1686017159" MODIFIED="1225104335478" TEXT="Sample devices">
<node CREATED="1225104336275" ID="ID_996847536" MODIFIED="1225104337715" TEXT="Keyboard"/>
<node CREATED="1225104337925" ID="ID_738317753" MODIFIED="1225104338975" TEXT="Mouse"/>
</node>
</node>
<node CREATED="1225103946927" ID="ID_1445553849" MODIFIED="1225103956807" TEXT="Isochronous">
<node CREATED="1225104375076" ID="ID_1169102229" MODIFIED="1225104380955" TEXT="Deliver right in time"/>
<node CREATED="1225104381171" ID="ID_481285553" MODIFIED="1225104384278" TEXT="No error checking"/>
<node CREATED="1225104261244" ID="ID_583129123" MODIFIED="1225104268702" TEXT="Only in high speed and full speed"/>
</node>
</node>
</node>
<node COLOR="#669900" CREATED="1225104760957" ID="ID_319346143" MODIFIED="1225175367826" TEXT="Transaction">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<node CREATED="1225104981879" ID="ID_1439573953" MODIFIED="1225105009630" TEXT="每一筆Transaction中,傳輸的單元為Packet"/>
<node CREATED="1225104492130" ID="ID_491148526" MODIFIED="1225104498986" TEXT="Phases of Transaction">
<node CREATED="1225104500081" ID="ID_1285445677" MODIFIED="1225104505271" TEXT="1. Token"/>
<node CREATED="1225104505543" ID="ID_497344784" MODIFIED="1225104508668" TEXT="2. Data"/>
<node CREATED="1225104508892" ID="ID_646034259" MODIFIED="1225104512153" TEXT="3. Handshake"/>
</node>
</node>
<node COLOR="#669900" CREATED="1225104766454" ID="ID_1820503337" MODIFIED="1225175367823" TEXT="Packet">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<node CREATED="1225105277264" ID="ID_1563068309" MODIFIED="1225105349567" TEXT="每一個Packet都是以SYNC欄起始,以EOP (End of Packet)結束"/>
<node CREATED="1225105165697" ID="ID_354074154" MODIFIED="1225173586711" TEXT="Types of Packet">
<node CREATED="1225105315662" ID="ID_164929642" MODIFIED="1225105334017" TEXT="EOP (End of Packet)">
<arrowlink DESTINATION="ID_1563068309" ENDARROW="Default" ENDINCLINATION="1024;0;" ID="Arrow_ID_1306884854" STARTARROW="None" STARTINCLINATION="1024;0;"/>
</node>
<node CREATED="1225105341660" ID="ID_1276194253" MODIFIED="1225105349567" TEXT="SYNC">
<arrowlink DESTINATION="ID_1563068309" ENDARROW="Default" ENDINCLINATION="946;0;" ID="Arrow_ID_1249453115" STARTARROW="None" STARTINCLINATION="946;0;"/>
</node>
<node CREATED="1225173587941" ID="ID_877554774" MODIFIED="1225173590002" TEXT="Token">
<node CREATED="1225105189426" ID="ID_1151024191" MODIFIED="1225105209487" TEXT="IN"/>
<node CREATED="1225105209752" ID="ID_106054172" MODIFIED="1225105210598" TEXT="OUT"/>
<node CREATED="1225105213229" ID="ID_1307144432" MODIFIED="1225105213953" TEXT="SETUP"/>
<node CREATED="1225105210815" ID="ID_796847116" MODIFIED="1225105213021" TEXT="SOF"/>
</node>
<node CREATED="1225173591642" ID="ID_1597883794" MODIFIED="1225173592672" TEXT="Data">
<node CREATED="1225105220333" ID="ID_21103701" MODIFIED="1225105223661" TEXT="DATA0"/>
<node CREATED="1225105223900" ID="ID_1022054915" MODIFIED="1225105224809" TEXT="DATA1"/>
<node CREATED="1225105225098" ID="ID_798626976" MODIFIED="1225105226313" TEXT="DATA2"/>
<node CREATED="1225105226996" ID="ID_1056762299" MODIFIED="1225105230167" TEXT="MDATA"/>
</node>
<node CREATED="1225173593082" ID="ID_1260924602" MODIFIED="1225173595424" TEXT="Handshake">
<node CREATED="1225105214161" ID="ID_815967300" MODIFIED="1225105216899" TEXT="ACK"/>
<node CREATED="1225105217107" ID="ID_1653061374" MODIFIED="1225105217768" TEXT="NAK"/>
<node CREATED="1225105218065" ID="ID_1831172034" MODIFIED="1225105220085" TEXT="STALL"/>
<node CREATED="1225105230449" ID="ID_699468541" MODIFIED="1225105233150" TEXT="NYET"/>
</node>
<node CREATED="1225173595809" ID="ID_575230164" MODIFIED="1225173598017" TEXT="Special">
<node CREATED="1225105257884" ID="ID_1693233242" MODIFIED="1225105258972" TEXT="PRE"/>
<node CREATED="1225105259180" ID="ID_1537731954" MODIFIED="1225105260765" TEXT="ERR"/>
<node CREATED="1225105261120" ID="ID_1493272853" MODIFIED="1225105261917" TEXT="SPLIT"/>
<node CREATED="1225105262913" ID="ID_266512598" MODIFIED="1225105263874" TEXT="PING"/>
</node>
</node>
</node>
</node>
<node CREATED="1225174382156" ID="ID_824928911" MODIFIED="1225175803208" POSITION="right" TEXT="Descriptors">
<node CREATED="1225176078166" ID="ID_511108234" MODIFIED="1225176085410" TEXT="Types of Descriptor">
<node CREATED="1225174400307" ID="ID_1436703469" MODIFIED="1225174411680" TEXT="Standard Descriptors">
<node CREATED="1225175170910" ID="ID_824577743" MODIFIED="1225186790932" TEXT="Device Descriptor (01h)">
<node CREATED="1225186841553" ID="ID_80156762" MODIFIED="1225186846492" TEXT="Required: Yes"/>
</node>
<node CREATED="1225175181315" ID="ID_435349866" MODIFIED="1225186798640" TEXT="Configuration Descriptor (02h)">
<node CREATED="1225186841553" ID="ID_616841511" MODIFIED="1225186846492" TEXT="Required: Yes"/>
</node>
<node CREATED="1225175197508" ID="ID_1393885150" MODIFIED="1225186809153" TEXT="String Descriptor (03h)"/>
<node CREATED="1225175186952" ID="ID_990911512" MODIFIED="1225186804767" TEXT="Interface Descriptor (04h)">
<node CREATED="1225186841553" ID="ID_1557546281" MODIFIED="1225186846492" TEXT="Required: Yes"/>
<node CREATED="1225175671126" ID="ID_620514183" MODIFIED="1225175678884" TEXT="HID Class">
<arrowlink DESTINATION="ID_1649321571" ENDARROW="Default" ENDINCLINATION="180;0;" ID="Arrow_ID_765047055" STARTARROW="None" STARTINCLINATION="180;0;"/>
</node>
</node>
<node CREATED="1225175193642" ID="ID_133591241" MODIFIED="1225186814810" TEXT="Endpoint Descriptor (05h)"/>
<node CREATED="1225175200417" ID="ID_812874559" MODIFIED="1225186825547" TEXT="Device_Qualifier Descriptor (06h)">
<node CREATED="1225186841553" ID="ID_1671750546" MODIFIED="1225186908269" TEXT="Required: Yes, for devices that support both full and high speed."/>
<node CREATED="1225175433912" ID="ID_1183675918" MODIFIED="1225175442956" TEXT="Can NOT use in low and full speed"/>
</node>
<node CREATED="1225175206199" ID="ID_1859654219" MODIFIED="1225186828895" TEXT="Other_Speed_Configuration Descriptor (07h)">
<node CREATED="1225186841553" ID="ID_1130550068" MODIFIED="1225186908269" TEXT="Required: Yes, for devices that support both full and high speed."/>
<node CREATED="1225175433912" ID="ID_899997935" MODIFIED="1225175442956" TEXT="Can NOT use in low and full speed"/>
</node>
</node>
<node CREATED="1225174411944" ID="ID_515291621" MODIFIED="1225174423790" TEXT="Class-specific Descriptors">
<node CREATED="1225175587078" ID="ID_1649321571" MODIFIED="1225175678884" TEXT="HID Class">
<node CREATED="1225175656952" ID="ID_741525389" MODIFIED="1225175661574" TEXT="Report Descriptor"/>
<node CREATED="1225175661782" ID="ID_1740374440" MODIFIED="1225175667306" TEXT="Physical Descriptor"/>
</node>
</node>
</node>
<node CREATED="1225175889400" FOLDED="true" ID="ID_822531213" MODIFIED="1225175918341" TEXT="Image of USB Descriptor Tree">
<node CREATED="1225175805576" HGAP="219" ID="ID_1245454827" MODIFIED="1225175898346" VSHIFT="7">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<img src="USB_Descriptor_Tree.png" />
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1225176103824" ID="ID_336333151" MODIFIED="1225176119999" TEXT="Data Types in Descriptors">
<node CREATED="1225176121488" ID="ID_369064020" MODIFIED="1225176129166" TEXT="b">
<node CREATED="1225176156752" ID="ID_370569675" MODIFIED="1225187250353" TEXT="byte (8 bits)"/>
</node>
<node CREATED="1225176134698" ID="ID_1208281974" MODIFIED="1225176136341" TEXT="bcd">
<node CREATED="1225176159300" ID="ID_541471177" MODIFIED="1225176168884" TEXT="binary-coded decimal"/>
</node>
<node CREATED="1225176136566" ID="ID_880401172" MODIFIED="1225176137119" TEXT="bm">
<node CREATED="1225176170134" ID="ID_128986217" MODIFIED="1225187242709" TEXT="bit map"/>
</node>
<node CREATED="1225176137351" ID="ID_572860684" MODIFIED="1225176139230" TEXT="d">
<node CREATED="1225176173735" ID="ID_1080043932" MODIFIED="1225176176560" TEXT="double word"/>
</node>
<node CREATED="1225176139462" ID="ID_1651196776" MODIFIED="1225176139803" TEXT="i">
<node CREATED="1225176178052" ID="ID_1666321507" MODIFIED="1225176180448" TEXT="index"/>
</node>
<node CREATED="1225176140502" ID="ID_510265278" MODIFIED="1225176141601" TEXT="id">
<node CREATED="1225176181368" ID="ID_473279529" MODIFIED="1225176182625" TEXT="ID"/>
</node>
<node CREATED="1225176141827" ID="ID_681454059" MODIFIED="1225176143110" TEXT="w">
<node CREATED="1225176183658" ID="ID_220067164" MODIFIED="1225187255248" TEXT="word (16 bits)"/>
</node>
</node>
</node>
<node CREATED="1225178373618" ID="ID_1372061788" MODIFIED="1225178379566" POSITION="left" TEXT="USB Devices">
<node CREATED="1225178393713" ID="ID_1392966928" MODIFIED="1225178396635" TEXT="HUB">
<node CREATED="1225178397593" ID="ID_1854380551" MODIFIED="1225178430881" TEXT="Each hub has an interrupt IN endpoint for reporting the events to the host"/>
</node>
</node>
<node CREATED="1225185677305" ID="ID_1936557642" MODIFIED="1225185683336" POSITION="right" TEXT="Device States">
<node CREATED="1225185590924" ID="ID_1937057753" MODIFIED="1225185693709" TEXT="6 Device States">
<node CREATED="1225185618785" ID="ID_759176057" MODIFIED="1225185814730" TEXT="Power"/>
<node CREATED="1225185620809" ID="ID_1657307175" MODIFIED="1225185824275" TEXT="Default">
<node CREATED="1225186396678" ID="ID_1062588765" MODIFIED="1225186489767" TEXT="In Default state, Host communicate with device through Endpoint 0. Host sends a Get_Descriptor through default pipe."/>
</node>
<node CREATED="1225185623184" ID="ID_1548059449" MODIFIED="1225185827645" TEXT="Address">
<node CREATED="1225186514459" ID="ID_106483664" MODIFIED="1225186633606" TEXT="In Address state, Host sends Get_Descriptor again to retrieve full information about the device. After matching driver to device, Host sends Set_Configuration to device."/>
</node>
<node CREATED="1225185625028" ID="ID_1789205823" MODIFIED="1225185841226" TEXT="Configured"/>
<node CREATED="1225185631735" ID="ID_1996193042" MODIFIED="1225185634468" TEXT="Attached">
<node CREATED="1225186199725" ID="ID_489721285" MODIFIED="1225186235091" TEXT="If the HUB isn't providing power to a device's VBUS line, the device is in Attached state."/>
</node>
<node CREATED="1225185634701" ID="ID_173906117" MODIFIED="1225185635861" TEXT="Suspend">
<node CREATED="1225186237903" ID="ID_758693922" MODIFIED="1225186292644" TEXT="A device enters the Suspend state after detecting no bus activity, including Start-of-Frame markers, for at least 3 milliseconds."/>
</node>
</node>
<node CREATED="1225185714344" ID="ID_1459942572" MODIFIED="1225185749951" TEXT="States order during enumeration steps">
<node CREATED="1225185751879" ID="ID_132016056" MODIFIED="1225185814730" TEXT="1. Power">
<arrowlink DESTINATION="ID_759176057" ENDARROW="Default" ENDINCLINATION="205;0;" ID="Arrow_ID_631520744" STARTARROW="None" STARTINCLINATION="205;0;"/>
</node>
<node CREATED="1225185754428" ID="ID_283648177" MODIFIED="1225185824275" TEXT="2. Default">
<arrowlink DESTINATION="ID_1657307175" ENDARROW="Default" ENDINCLINATION="205;0;" ID="Arrow_ID_412441164" STARTARROW="None" STARTINCLINATION="205;0;"/>
</node>
<node CREATED="1225185758970" ID="ID_875347866" MODIFIED="1225185827645" TEXT="3. Address">
<arrowlink DESTINATION="ID_1548059449" ENDARROW="Default" ENDINCLINATION="205;0;" ID="Arrow_ID_1900070265" STARTARROW="None" STARTINCLINATION="205;0;"/>
</node>
<node CREATED="1225185761942" ID="ID_699129211" MODIFIED="1225185841226" TEXT="4. Configured">
<arrowlink DESTINATION="ID_1789205823" ENDARROW="Default" ENDINCLINATION="205;0;" ID="Arrow_ID_1749852607" STARTARROW="None" STARTINCLINATION="205;0;"/>
</node>
</node>
</node>
</node>
</map>