Universal Serial Bus Specification Revision 2.0
1) Normal. Payload <= 188 bytes:
|
|
|
Full-speed |
Host |
|
HUB |
device |
|
SS: start-split buffer status |
(toggle) |
(toggle) |
|
CS: complete-split buffer status: not needed |
|
0 |
st1 SSPLIT-all |
SS: Free |
0 |
|
st5 |
|
|
uFrame M |
OUT |
|
|
|
sd1 |
|
|
|
DATA0 |
sh1 |
|
|
|
|
|
|
SS: Pending |
|
uFrame M + 1 |
|
OUT |
|
|
DATA0 |
|
|
|
|
|
|
|
0 |
|
|
SS: Free |
|
uFrame M + 2 |
|
|
|
0
uFrame M + 8
uFrame M + 8 +1
Universal Serial Bus Specification Revision 2.0
2) Normal. Payload > 188 Bytes
Host
(toggle)
0 |
st2 |
SSPLIT-begin |
uFrame M |
st5 |
OUT |
|
|
sd1 |
DATA0 |
|
|
sh1 |
uFrame M + 1 |
st3 |
SSPLIT-mid |
|
|
|
st5 |
OUT |
|
|
|
sd1 |
DATA0 |
|
|
sh1 |
|
st3 |
SSPLIT-mid |
|
st5 |
OUT |
|
|
|
sd1 |
DATA0 |
uFrame M + 2 |
|
sh1 |
|
|
|
st4 |
SSPLIT-end |
uFrame M + 3 |
st5 |
OUT |
|
|
sd1 |
DATA0 |
|
|
sh1 |
|
Full-speed |
HUB |
device |
SS: start-split buffer status |
(toggle) |
CS: complete-split buffer status: not needed |
|
SS: Free |
0 |
Create SS[0] entry with status= Pending
OUT
DATA0
Create SS[1] with status = Pending
SS[0]: Free
Create SS[2] with status = Pending
SS(1): Free
Create SS(3) with status = Pending
SS(2): Free
0
SS(3): Free
Universal Serial Bus Specification Revision 2.0
3)HS SSPLIT-all corrupted (missing or CRC error etc.) HS OUT corrupted
Host
(toggle)
0
uFrame M
uFrame M + 1
uFrame M + 2
0
uFrame N + 8
st1 SSPLIT-all
st5
OUT sd1 DATA0
st1 SSPLIT-all
OUT
sd1
DATA0
|
Full-speed |
HUB |
device |
SS: start-split buffer status |
(toggle) |
CS: complete-split buffer status: not needed |
|
SS: Free |
0 |
Trans_err |
|
se1 |
|
OUT token and |
|
DATA0 packets ignored |
|
SS: Free |
|
0
SS: Free
st1
HS handler TIMEOUT se1 DATA0 packet ignored
SS: Free
Universal Serial Bus Specification Revision 2.0
4) HS DATA0 corrupted
|
|
|
Full-speed |
Host |
|
HUB |
device |
|
SS: start-split buffer status |
(toggle) |
(toggle) |
|
CS: complete-split buffer status: not needed |
|
0 |
st1 SSPLIT-all |
SS: Free |
0 |
|
st5 |
|
|
uFrame M |
OUT |
|
|
|
sd1 |
|
|
|
DATA0 CRC error se2 |
SS: Free |
|
|
|
Ignore SS |
|
uFrame M + 1 |
|
|
|
|
|
|
0 |
uFrame M + 2 |
|
|
|
Universal Serial Bus Specification Revision 2.0
5) HS SSPLIT-begin corrupted (missing or CRC error etc.)
Host
(toggle)
0 |
st2 |
SSPLIT-begin |
uFrame M |
st5 |
OUT |
|
sd1
DATA0
|
Full-speed |
HUB |
device |
SS: start-split buffer status |
(toggle) |
CS: complete-split buffer status: not needed |
|
SS: Free |
0 |
Trans_err |
|
OUT token and |
|
DATA0 packet ignored |
|
No SS entry created |
|
st3 |
SSPLIT-mid |
uFrame M + 1 |
|
st5 |
OUT |
|
sd1 |
DATA0 |
|
|
sh1 |
st3 |
SSPLIT-mid |
st5 |
OUT |
|
sd1 |
DATA0 |
uFrame M + 2 |
sh1 |
|
st4 |
SSPLIT-end |
st5 |
OUT |
uFrame M + 3 |
sd1 |
DATA0 |
|
|
sh1 |
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
SSPLIT-end, OUT, and DATA0 packet ignored
No SS entry created
Universal Serial Bus Specification Revision 2.0
6) HS OUT after the HS SSPLIT-begin is corrupted
|
|
|
|
Full-speed |
Host |
|
|
HUB |
device |
|
|
SS: start-split buffer status |
(toggle) |
(toggle) |
|
|
CS: complete-split buffer status: not needed |
|
0 |
st2 |
SSPLIT-begin |
SS: Free |
0 |
uFrame M |
st5 |
OUT |
Trans_err se1 |
|
|
|
|
sd1 |
DATA0 |
se1 |
|
|
|
|
|
|
|
|
DATA0 packet ignored |
|
|
|
|
No SS entry created |
|
st3 |
SSPLIT-mid |
uFrame M + 1 |
|
st5 |
OUT |
|
sd1 |
DATA0 |
|
sh1 |
st3 |
SSPLIT-mid |
st5 |
OUT |
|
sd1 |
DATA0 |
uFrame M + 2 |
sh1 |
|
st4 |
SSPLIT-end |
st5 |
OUT |
uFrame M + 3 |
sd1 |
DATA0 |
|
sh1 |
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
SSPLIT-end, OUT, and DATA0 packet ignored
No SS entry created
Universal Serial Bus Specification Revision 2.0
7) HS DATA0 corrupted
|
|
|
Full-speed |
Host |
|
HUB |
device |
|
SS: start-split buffer status |
(toggle) |
(toggle) |
|
CS: complete-split buffer status: not needed |
|
0 |
st2 SSPLIT-begin |
SS: Free |
0 |
|
st5 |
|
|
uFrame M |
OUT |
|
|
|
sd1 |
SSPLIT-begin and OUT token ignored |
|
|
DATA0 CRC error se2 |
No SS entry created |
|
st3 |
SSPLIT-mid |
uFrame M + 1 |
|
st5 |
OUT |
|
sd1 |
DATA0 |
|
sh1 |
st3 |
SSPLIT-mid |
st5 |
OUT |
|
sd1 |
DATA0 |
uFrame M + 2 |
sh1 |
|
st4 |
SSPLIT-end |
st5 |
OUT |
uFrame M + 3 |
sd1 |
DATA0 |
|
sh1 |
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
SSPLIT-end, OUT, and DATA0 packet ignored
No SS entry created
Universal Serial Bus Specification Revision 2.0
8) HS SSPLIT-mid or OUT token or DATA0 packet after it is corrupted
Host
(toggle)
0
uFrame M
uFrame M + 1
uFrame M + 2
uFrame M + 3
st2 SSPLIT-begin
st5
OUT
sd1 DATA0
sh1
st3 SSPLIT-mid
st5
OUT sd1 DATA0
st3 SSPLIT-mid
st5
OUT
sd1 DATA0
sh1
st4 SSPLIT-end
st5
OUT
sd1 DATA0
sh1
|
Full-speed |
HUB |
device |
SS: start-split buffer status |
(toggle) |
CS: complete-split buffer status: not needed |
|
SS: Free |
0 |
Create SS[0] entry with status = Pending
OUT
DATA0
OUT, and DATA0 packet ignored
No SS[1] entry created
At SOF, down_error recorded
SSPLIT-mid, OUT, and DATA0 packet ignored
No SS entry created
0
FS handler generates a bitstuffing error on full-speed bus
SSPLIT-mid, OUT, and DATA0 |
0 |
packet ignored |
No SS entry created
Universal Serial Bus Specification Revision 2.0
A.6 |
Isochronous IN Split-transaction Examples |
|
|
|
|
|
Case |
Reference |
|
|
Figure |
|
|
|
|
Normal: full-speed bus transaction does not cross microframe boundary |
1 |
|
|
|
|
Normal: full-speed bus transaction crosses microframe boundary |
2 |
|
|
|
|
HS SSPLIT corrupted |
3 |
|
|
|
|
IN after HS SSPLIT corrupted |
4 |
|
|
|
|
HS CSPLIT corrupted |
5 |
|
|
|
|
Consecutive HS CSPLIT corrupted |
6 |
|
|
|
|
HS IN corrupted |
7 |
|
|
|
|
Consecutive HS IN corrupted |
8 |
|
HS data corrupted (case 1) |
|
|
9 |
|
HS data corrupted (case 2) |
|
|
10 |
|
TT has more data than HS expects |
|
|
11 |
|
HS CS too early (full-speed data not available yet) |
|
|
12 |
|
Full-speed timeout or CRC error |
|
|
13 |
|
|
|
Universal Serial Bus Specification Revision 2.0
1)Normal: full-speed bus transaction does not cross microframe boundary
Host |
|
HUB |
|
SS: start-split buffer status |
(toggle) |
|
|
CS: complete-split buffer status |
0 |
|
|
|
st1 SSPLIT |
SS = Free |
uFrame M |
st2 |
|
|
|
|
IN |
Create SS entry with status = Pending |
|
|
|
|
IN |
|
|
Create CS entry |
|
|
SS = Free |
uFrame M + 1 |
|
DATA0 |
|
CS = Ready/last data |
|
|
ct1 |
CSPLIT |
|
ct2 |
IN |
|
uFrame M + 2 |
|
Send last data with |
|
|
|
DATA0 cd1 |
DATA0 |
|
|
|
|
CS = Old/last data |
ch1 |
|
|
uFrame M + 3 |
|
|
Full-speed device
(toggle)
0