`
`Hub
`(status)
`
`Old/x
`
`Pending/x
`
`stl
`
`st2
`
`shl
`
`SSPLIT
`
`IN
`
`ACK
`
`stl
`
`st2
`
`shl
`
`~
`
`~
`
`FS/LS
`device
`'( data toggle)
`0
`
`IN
`
`STALL
`
`...
`
`Ready/stall
`
`ctl
`
`ct2
`
`ch3
`
`CSPLIT
`
`IN
`
`STALL
`
`ctl
`
`ct2
`
`ch3
`
`~
`
`~
`
`Old/stall
`
`Host
`( data toggle)
`
`0
`
`....
`
`....
`
`ENDPOINT HALT
`
`Figure A-46. Device Stall No Smash(FS/LS STALL)
`
`488
`
`PA_0001698
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Interrupt OUT Transaction Examples
`A.3
`Legend:
`
`(S) : Start Split
`
`(C): Complete Split
`
`Summary of cases for Interrupt OUT transaction
`
`• Nonnal cases
`
`Case
`
`No smash
`
`(FS/LS handshake packet is done by M+1)
`
`Similar Figure
`
`Reference
`Figure
`
`Figure A-47
`
`HS SSPLIT smash
`
`Figure A-48
`
`HS SSPLIT 3 strikes smash
`
`No figure
`
`HS OUT(S) smash
`
`Figure A-48
`
`HS OUT(S) 3 strikes smash
`
`No figure
`
`HS DAT A0/1 smash
`
`Figure A-48
`
`HS DAT A0/1 3 strikes smash
`
`No figure
`
`HS CSPLIT smash
`
`HS CSPLIT 3 strikes smash
`
`HS OUT(C) smash
`
`HS OUT(C) 3 strikes smash
`
`Figure A-49
`
`Figure A-50
`
`Figure A-49
`
`Figure A-50
`
`HS ACK(C) smash
`
`Figure A-51
`
`HS ACK(C) 3 strikes smash
`
`Figure A-52
`
`FS/LS OUT smash
`
`Figure A-53
`
`FS/LS OUT 3 strikes smash
`
`No figure
`
`FS/LS DAT A0/1 smash
`
`Figure A-53
`
`FS/LS DAT A0/1 3 strikes smash
`
`No figure
`
`FS/LS ACK smash
`
`Figure A-54
`
`489
`
`PA_0001699
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`I FS/LS ACK 3 strikes smash
`
`No figure
`
`•
`
`Searcing
`
`Case
`
`No smash
`
`Similar Figure
`
`Reference
`Figure
`
`Figure A-55
`
`• CS(Complete-split transaction) earlier cases
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`No smash (HS NYETand FS/LS handshake Figure A-56
`packet is done by M+2)
`
`No smash(HS NYET and FS/LS handshake Figure A-57
`packet is done by M+3)
`
`HS NYET smash
`
`HS NYET 3 strikes smash
`
`Figure A-58
`
`Figure A-59
`
`• Abort and Free cases
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`No smash and abort (HS NYETand FS/LS
`transaction is continued at end of M+3)
`
`Figure A-60
`
`No smash and free(HS NYETand FS/LS
`transaction is not started at end of M+3)
`
`Figure A-61
`
`•
`
`FS/LS transaction error cases
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`HS ERR smash
`
`HS ERR 3 strikes smash
`
`• Device busy cases
`
`490
`
`Figure A-51
`
`Figure A-52
`
`PA_0001700
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`No smash(HS NAK(C))
`
`Figure A-62
`
`HS NAK(C) smash
`
`HS NAK(C) 3 strikes smash
`
`FS/LS NAK smash
`
`Figure A-51
`
`Figure A-52
`
`Figure A-53
`
`FS/LS NAK 3 strikes smash
`
`No figure
`
`• Device stall cases
`
`Case
`
`No smash
`
`HS ST ALL(C) smash
`
`HS ST ALL(C) 3 strikes smash
`
`FS/LS ST ALL smash
`
`Similar Figure
`
`Reference
`Figure
`
`Figure A-63
`
`Figure A-51
`
`Figure A-52
`
`Figure A-53
`
`FS/LS ST ALL 3 strikes smash
`
`No figure
`
`491
`
`PA_0001701
`
`
`
`ct2
`
`OUT
`
`ch2
`
`ACK
`
`•
`ct2 • CS:Old/ack
`
`ch2
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`Universal Serial Bus Specification Revision 2.0
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`st!
`
`st2
`
`shl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`st! •
`st2 •
`
`sdl~
`
`SS:Pending/x
`1
`- - - - - - - - - r - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - -+ - - - - - - - - - - - - - - - - - - - - - - - - - - ~ - - - - - - - -
`uFrameM+l
`OUT
`
`DATAO
`
`ACK
`
`CS:Ready/ack
`---------r--------------------------~-------------+--------------------------~
`uFrame M+2
`ctl
`CSPLIT
`ctl
`
`I
`
`....
`---------r--------------------------~-------------+--------------------------~
`uFrame M+3 Host does not issue 2nd CSPLIT,
`CS:Free/x
`because host already receives ACK
`on previous microframe.
`
`I
`
`---------~--------------------------~-------------+--------------------------~
`uFrame M+4 Host does not issue 3rd CSPLIT,
`SS:Free/x
`because host already receives ACK
`on previous microframe.
`
`I
`
`---------~--------------------------~-------------+--------------------------~
`I
`I
`I
`I
`uFrame M+5 ,
`,
`,
`,
`I
`I
`I
`I
`
`I
`
`Figure A-47. Normal No Smash(FS/LS Handshake Packet is Done by M+l)
`
`492
`
`PA_0001702
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`stl
`
`SSPLIT
`
`stl
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`st2
`
`sdl
`
`OUT
`
`DAT AO
`
`............. ,,,..
`
`st2
`
`•
`
`TRANS ERR
`---------L--------------------S~---- -------------i--------------------------~---------
`1
`I
`I
`I
`uFrame M+ 1 :
`:
`:
`:
`---------r--------------------------,-------------T--------------------------,---------
`uframe M+2
`CSPLIT
`:
`ct!
`ctl
`
`I
`
`---------r--------------------------,-------------T--------------------------- --------
`uframe M+3
`ctl
`CSPLIT
`
`I
`I
`I
`I
`I
`I
`
`ct2
`
`OUT
`
`NYET
`
`ch6
`
`ct2
`
`ch5
`
`ctl
`
`ct2
`
`OUT
`
`NYET
`
`ch6
`
`ct2
`
`ch5
`
`•: I .:
`
`---------r--------------------------,-------------r------------------------------------
`uFrame M+4
`ell
`CSPLIT
`
`I
`
`ct!
`
`cl2
`
`OUT
`
`ct?
`
`•
`•
`
`NYET
`
`ch5
`
`ce7
`_____________ r--------------------------, --------
`---------r ____ ce3 ____________________ 1
`---------r--------------------------4-------------T--------------------------~---------
`uframe M+S
`SSPLIT(retry)
`stl
`
`,
`
`I
`
`I
`
`I
`
`st!
`
`st2
`
`sdl
`
`OUT
`
`st2
`
`DATAO
`
`shl~
`, SS:Pending/x
`---------r--------------------------4-------------T--------------------------~
`uFrame M+9
`:
`OUT
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`DATAO
`
`ACK
`
`: CS:Ready/ack
`-4111
`---------r--------------------------,-------------T--------------------------,
`uFrame M+ 10:
`CSPLIT
`ctl
`ell
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`: ....
`
`ct2
`
`OUT
`
`ch2
`
`ACK
`
`ct2
`
`ch2
`
`CS:Old/ack
`
`I
`
`Figure A-48. Normal HS DATA0/1 Smash
`
`493
`
`PA_0001703
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`(data toggle)
`
`0
`
`uFrame M
`
`st!
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'(data toggle)
`0
`
`st!
`
`st2
`
`•
`•
`
`sh!.
`
`SS:Pending/x
`---------~--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`OUT
`
`1
`
`DATAO
`
`ACK
`
`CS:Ready/ack
`---------~--------------------------~-------------+--------------------------~ --------
`____ ct!
`CSPLIT
`uFrame M+2
`OUT
`--------•
`
`I
`
`I
`I
`I
`I
`I
`I
`I
`
`ct2
`
`TRANS ERR
`cel->ce6
`
`:Hub ignores this
`10UT because nu
`match the address
`
`ct!
`
`ct2
`
`ch2
`
`OUT
`
`ACK
`
`CS:Old/ack
`
`CSPLIT(retry imm.)
`ct!
`
`•
`ct2 •
`
`ch2
`
`...
`--------- -------------------------- -------------~--------------------------~---------
`'
`I
`I
`, CS:Free/x
`,
`,
`uFrame M+3 Host does not issue 2nd CSPLIT,
`I
`I
`I
`because host already receives ACK
`I
`I
`I
`I
`I
`I
`on previous microframe.
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`---------r--------------------------,-------------T-------------------------- ---------
`I
`I
`I
`I
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`:
`SS:Free/x
`:
`:
`: because host already receives ACK
`:
`:
`:
`: on previous microframe.
`:
`:
`:
`I
`I
`I
`I
`
`Figure A-49. Normal HS CSPLIT Smash
`
`494
`
`PA_0001704
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`stl
`
`st2
`
`•
`•
`
`shl~
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`OUT
`
`1
`
`CS:Ready/ack
`---------r--------------------------~-------------+--------------------------~ --------
`uFrameM+2 ____ ct!
`CSPLIT
`:
`
`I
`
`DATAO
`
`ACK
`
`ct2
`
`OUT ---------.... Hub ignores this :
`•
`OUT.( no match :
`the Address fieldY,
`
`I
`
`TRANS ERR
`cel->ce6
`
`----'::~--- CSPLIT(retry imm.)
`ct2
`-~~-;:-----------....
`
`•
`
`Hub ignores this
`OUT.( no match
`the Address field)
`
`TRANS ERR
`cel->ce6
`
`CSPLIT(retry imm.)
`----'::~
`ct2 ----~~-;:-----------.... Hub ignores this
`OUT.( no match
`the Address field~
`
`•
`
`TRANS ERR
`cel->ce5
`ENDPOINT HALT
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`: ENDPOINT HALT.
`:
`:
`:
`---------r--------------------------4-------------T--------------------------~---------
`uframe M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`: ENDPOINT HALT.
`:
`:
`:
`
`I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`Figure A-50. Normal HS CSPLIT 3 Strikes Smash
`
`495
`
`PA_0001705
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl
`
`st2
`
`shl~
`
`•
`•
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`---------r--------------------------,-------------+--------------------------~ --------
`uFrame M+ 1
`OUT
`
`1
`
`CS:Ready/ack
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+2
`CSPLIT
`ctl
`
`I
`
`DATAO
`
`ACK
`
`ctl
`
`ct2 •
`
`ch2 ___ _
`
`CS:Old/ack
`
`ct2
`
`OUT
`
`ACK
`
`-<11111--------
`
`TRANS ERR
`cel->ce6
`
`CSPLIT(retry imm.)
`ctl
`
`.....
`---------r--------------------------,-------------T--------------------------, --------
`uframe M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because host already receives ACK
`:
`:
`:
`: on previous microframe.
`:
`:
`:
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`---------r--------------------------,-------------+--------------------------~---------
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because host already receives ACI(
`:
`:
`:
`on previous microframe.
`
`I
`
`Figure A-51. Normal HS ACK(C) Smash
`
`496
`
`PA_0001706
`
`ctl
`
`ct2
`
`ch2
`
`OUT
`
`ACK
`
`~
`
`ch2
`
`ct2 •
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`stl
`
`st2
`
`•
`•
`
`shl~
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`OUT
`
`1
`
`DATAO
`
`ACK
`
`CS:Ready/ack
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+2
`CSPLIT(retry imm.)
`ctl
`
`ctl
`
`I
`
`ct?
`
`ch2 ___ _
`
`CS:Old/ack
`
`ct2
`
`OUT
`
`ACK
`<11111---------
`
`TRANS ERR
`cel->ce6
`
`ctl
`
`ct2
`
`CSPLIT(retry imm.)
`ctl
`
`OUT
`
`ct?
`
`ch2 ___ _
`
`ACK
`<11111---------
`
`TRANS ERR
`cel->ce6
`
`ctl
`
`ct2
`
`CSPLIT(retry imm.)
`ctl
`
`OUT
`
`ct2
`
`ch2 ___ _
`
`ACK
`<11111---------
`
`TRANS ERR
`cel->ce5
`ENDPOINT HALT
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`: ENDPOINT HALT.
`:
`:
`:
`---------r--------------------------,-------------T--------------------------~---------
`uframe M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`: ENDPOINT HALT.
`:
`:
`:
`
`I
`
`Figure A-52. Normal HS ACK(C) 3 Strikes Smash
`
`497
`
`PA_0001707
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`:
`OUT
`
`1
`
`DATAO
`•
`••••••••••••• a,,,,...
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`: TRANS ERR
`1 CS:Ready/trans_j_err
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+2
`CSPLIT
`:
`ctl
`----....::..::.:..::.::_::_ _ _'.:c~tl~......_
`:
`OUT
`•
`ct2
`
`1
`:
`CS:Old/trans err
`
`-
`
`I
`
`ct2
`
`ERR
`
`•
`
`ch4
`
`I
`I
`I
`I
`I
`I
`
`I
`
`I
`
`I
`
`TRANS ERR on FS/LS
`ce2->ce3
`:
`---------L-------------------------- -------------i------------------------------------
`I
`I
`I
`uFrame M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because host already receives ERR
`:
`:
`:
`_________ L on r_revious microframe. ________ J _____________ l_ _________________________ J ________ _
`I
`I
`I
`I
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because host already receives ERR
`:
`:
`:
`________ -L on r_revious microframe. ________ J ____________ -L--_______________________ J ________ _
`---------L--------------------------~-------------i---------------------------' --------
`uframe M+8
`SSPLIT(retry)
`stl
`
`1
`
`I
`
`stl
`
`st2
`
`sdl
`
`OUT
`
`DATAO
`
`uFrame M+9
`
`st2
`
`shl~
`
`•
`•
`
`SS:Pending/x
`_____________ i __________________________ _
`
`OUT
`
`DATAO
`
`ACK
`
`....
`CS:Ready/ack
`_____________ i __________________________ _
`
`CS:Old/ack
`
`---------L--------------------------
`uFrame M+ 10: _ _ ct_1 _ _ .::C..::S:.:.P.:L::I...:.T _ _ ~ct~l-...._
`i
`:
`: ....
`
`1
`
`I
`
`I
`
`I
`I
`
`ct2
`
`OUT
`
`ch2
`
`ACK
`
`ct2
`
`ch2
`
`•
`
`.
`
`Figure A-53. Normal FS/LS DATA0/1 Smash
`
`498
`
`PA_0001708
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`( data toggle)
`0
`
`1
`
`stl
`
`st2
`
`•
`•
`
`shl~
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`:
`OUT
`
`1
`
`I
`
`:
`
`I
`I
`
`DATAO
`
`.....
`
`ACK
`
`1-----------.a~
`~
`I :....---------
`
`1 CS:Ready/trans_j_effRANS ERR
`---------r--------------------------~-------------+--------------------------~ --------
`ell
`uFrame M+2
`CSPLIT
`
`ctl
`
`ct?
`
`ch4
`
`1
`I
`I
`I
`I
`I
`I
`
`CS:Old/trans ett
`
`-
`
`I
`
`ct2
`
`OUT
`
`ERR
`
`ch4
`
`I
`
`I
`
`I
`
`I
`
`I
`I
`I
`I
`TRANS ERR on FS/LS
`I
`I
`I
`ce2->ce3
`I
`--------- -------------------------- _____________ i ___________________________________ _
`I
`I
`I
`I
`uFrame M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because host already receives ERR
`:
`:
`:
`_________ L on r_revious microframe. ________ J _____________ l_ _________________________ J ________ _
`I
`I
`I
`I
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because host already receives ERR
`:
`:
`:
`---------L on r_revious microframe. ________ J _____________ L _________________________ J ________ _
`---------L--------------------------~-------------i---------------------------' --------
`uFrameM+8
`SSPLIT(retry)
`stl
`
`•
`•
`
`st2
`
`shl~
`
`stl
`
`st2
`
`sdl
`
`OUT
`
`DATAO
`
`uFrameM+9
`
`--~~~~e~~~n~~-i------------------------------------
`OUT
`
`1
`I
`I
`I
`I
`
`DAT AO
`
`..... :Device does
`
`• • • •11111••.;••-~h•~ : not receive
`
`:this data.
`:Data toggle
`.....
`hs still 'l ' .
`CS:Ready/ack
`_____________ i __________________________ --------
`
`ACK
`
`11111"
`
`---------L--------------------------
`ct!
`uFrame M+ 10:
`CSPLIT
`ctl
`
`1
`
`I
`I
`I
`I
`I
`I
`I
`
`:.
`
`I
`
`I
`I
`
`ct2
`
`OUT
`
`ch2
`
`ACK
`
`ct2
`
`ch2
`
`CS:Old/ack
`
`Figure A-54. Normal FS/LS ACK Smash
`
`499
`
`PA_0001709
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`---------r--------------------------,-------------+--------------------------~ --------
`uFrame M+ 1
`OUT
`
`1
`
`DATAO
`
`ACK
`
`CS:Ready/ack
`---------r--------------------------~-------------+--------------------------~
`uFrame M+2
`CSPLIT
`:
`:
`ct)
`I
`I
`---------_:C~t)~ ....... I
`I
`~ i
`i
`OUT
`ct2
`
`I
`
`I
`I
`:Does not match thi~
`:csPLIT on first
`:
`:entry of CS.Then
`:
`:mm does not
`:
`:respond any packet 1
`
`ct2
`
`•
`
`TRANS ERR
`cel->ce6
`
`CSPLIT(retry imm.)
`ctl
`
`ctl
`
`ct2
`
`ch2
`
`OUT
`
`ACK
`
`I
`
`Figure A-55. Searching No Smash
`
`500
`
`PA_0001710
`
`~
`
`ct2 •
`
`ch2
`
`CS:Old/ack
`
`....
`---------r--------------------------,-------------T--------------------------, --------
`uframe M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because host already receives ACK
`:
`:
`:
`: on previous microframe.
`:
`:
`:
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`---------r--------------------------,-------------+--------------------------~---------
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because host already receives ACI(
`:
`:
`:
`on previous microframe.
`
`
`
`Host
`(data toggle)
`
`0
`
`uFrame M
`
`Universal Serial Bus Specification Revision 2.0
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`SS:Pending/x
`1
`- - - - - - - - - r - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - -+ - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - -
`uFrame M+ 1
`
`OUT
`
`DATAO
`
`I
`
`-I--------
`
`~
`---------r--------------------------~-------------+----------ACK----------
`uFrame M+2
`CSPLIT
`.....
`ctl
`CS:Ready/ack
`----..::..::..:....:::.::...:__-...'.c:_tl:_....
`ct2
`OUT
`
`NYET
`
`ch5
`
`ch6
`
`I
`
`.....
`---------r--------------------------~-------------+--------------------------~
`uFrame M+3
`CSPLIT
`ctl
`
`•
`ct? •
`
`ct2
`
`OUT
`
`ctl
`
`ACK
`
`ch2
`
`•
`ct2 • CS:Old/ack
`
`ch2 •
`
`---------~--------------------------~-------------+--------------------------~
`uFrame M+4 Host does not issue 3rd CSPLIT,
`SS:Free/x
`because host already receives ACK
`CS:Free/x
`on previous microframe.
`
`I
`
`---------~--------------------------~-------------+--------------------------~
`I
`I
`I
`I
`uFrame M+5 ,
`,
`,
`,
`I
`I
`I
`I
`
`I
`
`Figure A-56. CS Earlier No Smash(HS NYET and FS/LS Handshake Packet is Done by M+2)
`
`501
`
`PA_0001711
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`1
`- - - - - - - - - r - - - - - - - - - - - - - - - - - - - - - - - - - - , - - - - - - - - - - - - -+ - - - - - - - - - - - - - - - - - - - - - - - - - - ~ - - - - - - - -
`uFrame M+ 1
`
`---------r--------------------------~-------------+--------------------------~
`uFrame M+2
`CSPLIT
`ctl
`ctl
`
`I
`
`ct2
`
`OUT
`
`•
`ct2 •
`
`NYET
`
`ch5
`
`.....
`---------r--------------------------~-------------+----------O"'tJT------------~
`uFrame M+3
`
`I
`
`CSPLIT
`
`OUT
`
`NYET
`
`ctl
`
`ct2
`
`ch5
`
`CS:Ready/ack
`
`DAT AO
`
`•
`
`ACK
`
`~
`
`ch6
`
`ctl
`
`ct2
`
`ch6
`
`---------~--------------------------~-------------+--------------------------~
`uFrame M+4
`SS:Free/x
`ctl
`CSPLIT
`
`I
`
`ctl
`
`ct2
`
`OUT
`
`•
`ct2 • CS:Old/ack
`
`ACK
`
`ch2
`
`ch2
`
`.....
`---------~--------------------------~-------------+--------------------------~
`uFrame M+5 :
`: CS:Free/x
`:
`:
`I
`I
`I
`I
`
`I
`
`Figure A-57. CS Earlier No Smash(HS NYET and FS/LS Handshake Packet is Done by M+3)
`
`502
`
`PA_0001712
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`stl
`
`st2
`
`•
`•
`
`shl~
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`
`1
`
`OUT
`
`~
`---------r--------------------------~-------------+----------A.GK----------
`uFrame M+2
`CSPLIT
`:
`.....
`ctl
`CS:Ready/ack
`----....::..:~:.::._:__~c'.:tl~ ..... :,
`OUT
`ct2
`ct?
`
`DATAO
`
`-I--------
`
`I
`
`, .:
`
`chS ____ :
`
`..,.. ________ _
`NYET
`
`TRANS ERR
`cel->ce6
`CSPLIT(retry imm.)
`ctl
`
`ctl
`
`ct2
`
`OUT
`
`•
`ct? •
`
`ch5
`
`I
`1
`
`I
`1
`
`I
`,
`
`Figure A-58. CS Earlier HS NYET Smash
`
`503
`
`PA_0001713
`
`uFrame M+3
`
`ch6
`
`ctl
`
`ct2
`
`ch2
`
`NYET
`
`CSPLIT
`
`OUT
`
`ACK
`
`-------------~--------------------------~ --------
`
`•
`ct2 • CS:Old/ack
`
`ctl
`
`ch2
`
`.....
`--------- -------------------------- _____________ i ___________________________________ _
`I
`I
`I
`I
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because host already receives ACK
`: CS:Free/x
`:
`:
`: on previous microframe.
`:
`:
`:
`---------L--------------------------~-------------L-------------------------- ---------
`1
`uFrame M+5 '
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl
`
`st2
`
`shl~
`
`•
`•
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`
`1
`
`OUT
`
`DATAO
`
`~
`---------r--------------------------~-------------+----------ACK----------
`~ --------
`uFrame M+2
`ctl
`CSPLIT
`ctl
`.....
`CS:Ready/ack
`
`ct2
`
`OUT
`
`NYET
`..,.. ________ _
`
`TRANS ERR
`cel->ce6
`
`ctl
`
`ct2
`
`CSPLIT
`
`OUT
`
`NYET
`..,.. _______ _
`
`TRANS ERR
`cel->ce6
`
`ctl
`
`ct2
`
`CSPLIT
`
`OUT
`
`NYET
`..,.. ________ _
`
`I
`
`•
`ct2 •
`
`ch5 ___ _
`
`ctl •
`ct2 •
`
`ch5 ___ _
`
`ctl
`
`ct2 •
`•
`
`chS ___ _
`
`TRANS ERR
`cel->ce5
`ENDPOINT HALT
`---------r--------------------------,-------------T-------------------------- ---------
`uframe M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`_________ L ENDPOINT HALT. ___________ J _____________ l_ _________________________ : ________ _
`I
`I
`I
`I
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`: ENDPOINT HALT.
`:
`:
`:
`
`I
`
`Figure A-59. CS Earlier HS NYET 3 Strikes Smash
`
`504
`
`PA_0001714
`
`
`
`uFrame M+3
`
`uFrame M+4
`
`-------------~--------------------------~ --------
`
`OUT
`
`DATAO
`
`forces a bit stuffing error .
`
`ell
`
`ch5
`
`ell
`
`•
`ct2 •
`--;;~ir~;/~----.L ~~~--~---.-.-.-.~__J
`Hub stops sending this data anr
`•
`ct? •
`--------- ____ ce3 _________________________________ .L __________________________ __J ________ _
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`Universal Serial Bus Specification Revision 2.0
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~
`uFrame M+ 1 :
`:
`:
`:
`---------L--------------------------~-------------L--------------------------
`uframe M+2
`CSPLIT
`ell
`ell
`
`1
`
`•
`ct2 •
`
`ch5
`
`ct2
`
`OUT
`
`ch6
`
`NYET
`
`ell
`
`ct2
`
`CSPLIT
`
`OUT
`
`ch6
`
`NYET
`
`.....
`--------------------------
`ell
`CSPLIT
`
`ct2
`
`OUT
`
`NYET
`
`ch5
`
`ce7
`
`.....
`
`I
`I
`
`I
`I
`
`I
`I
`
`I
`I
`
`---------r--------------------------,-------------T--------------------------,---------
`uframe M+8
`SSPLIT(retry)
`
`sll
`
`st2
`
`sdl
`
`OUT
`
`DATAO
`
`stl •
`st? •
`
`shl~
`SS:Pending/x
`---------r--------------------------,-------------T---------------------------
`uframe M+9 :
`OUT
`:
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`:
`CS:Ready/ack : .....
`---------L-------------------------- -------------L---------------------------
`ell
`uFrame M+ 10:
`CSPLIT
`
`1
`
`DATAO
`
`ACK
`
`1
`
`ct2
`
`OUT
`
`ch2
`
`ACK
`
`I
`I
`I
`I
`I
`I
`I
`
`I
`
`: .....
`
`I
`I
`
`ctl •
`ct2 • CS:Old/ack
`
`ch2
`
`Figure A-60. Abort and Free Abort(FS/LS Transaction is Continued at End of M+3)
`
`505
`
`PA_0001715
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`( data toggle)
`0
`
`1
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~
`uFrameM+l :
`:
`:
`:
`---------L--------------------------~-------------L--------------------------
`uframe M+2
`ctl
`CSPLIT
`ctl
`
`1
`
`OUT
`
`NYET
`
`ct2
`
`ch5
`
`•
`•
`
`-------------~--------------------------~ --------
`
`ctl
`
`•
`ct2 •
`
`ch5
`
`-------------L--------------------------~
`SS:Free/x
`Hub frees this transaction from SS.
`
`ctl
`
`ct2
`
`ch6
`
`ctl
`
`ct2
`
`ch6
`
`ctl
`
`ct2
`
`uFrame M+3
`
`....
`
`uFrameM+4
`
`1
`I
`
`stl
`
`CSPLIT
`
`OUT
`
`NYET
`
`CSPLIT
`
`OUT
`
`NYET
`
`•
`ct2 •
`
`ch5
`
`I
`I
`
`I
`I
`
`I
`I
`
`ce7
`....
`_________ L ____ Ct'.) ____________________ -------------L--------------------------~---------
`---------r--------------------------,-------------T--------------------------- --------
`uframeM+8
`SSPLIT(retry)
`stl
`
`st2
`
`OUT
`
`st2
`
`sdl
`
`DATAO
`
`•
`
`1
`
`shl~
`SS:Pending/x
`---------r--------------------------,-------------T---------------------------
`1
`uFrameM+9:
`OUT
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`1
`
`I
`
`I
`
`I
`I
`
`---------L--------------------------
`uFrame M+ 10: __ ct_1_---.:C:.:S:::.:P:...:L::I:_:T~-.::ct::l_...._
`i
`ct2
`OUT
`ct2
`•
`:
`: ....
`
`.
`
`CS:Ready/ack
`
`CS:Old/ack
`
`ch2
`
`ACK
`
`ch2
`
`DATAO
`
`ACK
`
`....
`
`Figure A-61. Abort and Free Free(FS/LS Transaction 1s not Started at End ofM+3)
`
`506
`
`PA_0001716
`
`
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`Universal Serial Bus Specification Revision 2.0
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl •
`st2 •
`
`shl~
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+ 1
`:
`OUT
`
`1
`
`I
`
`DATAO
`
`..,._
`
`:
`
`I
`I
`
`i - - - - - -... ;;.;;.---1~
`~
`NAK
`~.£---_:.~.:.------
`' CS:Ready/nak :
`---------r--------------------------~-------------+--------------------------~ --------
`' I
`uFrame M+2
`ctl
`CSPLIT
`I •:
`•
`i CS:Old/nak
`
`ctl
`
`ct?
`
`chJ
`
`I
`
`I
`
`ct2
`
`ch3
`
`OUT
`
`NAK
`
`I
`I
`I
`I
`
`---------r--------------------------4-------------T--------------------------~ --------
`uframe M+3 : Host does nol issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because host already receives NAK
`:
`:
`:
`fr
`I
`·
`.
`I
`I
`I
`---------}- on 2_rev1ous nucro ame. --------~-------------+---------------------------:---------
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because host already receives NAK
`:
`:
`:
`fr
`I
`·
`·
`I
`I
`I
`---------f- on 2_rev1ous nucro ame. --------+------------+-------------------------- :---------
`,
`I
`I
`I
`---------r--------------------------,-------------T--------------------------~---------
`uframeM+8
`
`SSPLIT(retry)
`stl
`
`OUT
`
`st2
`
`stl
`
`st2
`
`sdl
`
`shl~
`SS:Pending/x
`---------r--------------------------4-------------T--------------------------~
`uFrameM+9
`OUT
`
`DATAO
`
`1
`
`DATAO
`
`ACK
`
`....
`, CS:Ready/ack
`---------r--------------------------4-------------T--------------------------~
`uFrame M+l01
`ctl
`CSPLIT
`ctl
`
`ct2
`
`OUT
`
`ACK
`
`ch2
`
`....
`
`•
`ct2 • CS:Old/ack
`
`ch2
`
`Figure A-62. Device Busy No Smash(FS/LS NAK)
`
`507
`
`PA_0001717
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`stl
`
`st2
`
`sdl
`
`SSPLIT
`
`OUT
`
`DATAO
`
`stl
`
`st2
`
`shl~
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`---------r--------------------------~-------------+--------------------------~
`uFrame M+ 1
`OUT
`
`1
`
`DATAO
`
`STALL
`
`CS:Ready/stall
`---------r--------------------------~-------------+--------------------------~ --------
`uFrame M+2
`
`I
`
`ctl
`
`ct2
`
`chl
`
`CSPLIT
`
`OUT
`
`STALL
`
`.....
`
`ctl
`
`~
`
`ct2 •
`
`chl
`
`ENDPOINT HALT
`---------r--------------------------,-------------T-------------------------- ---------
`uframe M+3 : Host does not issue 2nd CSPLIT,
`: CS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`------ ___ L ENDPOINT HALT. -- ------- __ J ____ ------- __ l_ ___ ----- -- ----- -- ----- ___ : ___ ------
`I
`I
`I
`'
`uFrame M+4 : Host does not issue 3rd CSPLIT,
`: SS:Free/x
`:
`:
`: because this endpoint is already
`:
`:
`:
`: ENDPOINT HALT.
`:
`:
`:
`
`I
`
`Figure A-63. Device Stall No Smash(FS/LS STALL)
`
`508
`
`PA_0001718
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Interrupt IN Transaction Examples
`A.4
`Legend:
`
`(S) : Start Split
`
`(C): Complete Split
`
`Summary of cases for Interrupt OUT transaction
`
`• Normal cases
`
`Case
`
`No smash
`(FS/LS data packet is on M+1)
`
`Similar Figure
`
`Reference
`Figure
`
`Figure A-64
`
`HS SSPLIT smash
`
`Figure A-65
`
`HS SSPLIT 3 strikes smash
`
`No figure
`
`HS IN(S) smash
`
`Figure A-65
`
`HS IN(S) 3 strikes smash
`
`No figure
`
`HS CSPLIT smash
`
`HS CSPLIT 3 strikes smash
`
`HS IN(C) smash
`
`HS IN(C) 3 strikes smash
`
`Figure A-66
`
`Figure A-67
`
`Figure A-66
`
`Figure A-67
`
`HS DAT A0/1 smash
`
`Figure A-68
`
`HS DAT A0/1 3 strikes smash
`
`Figure A-69
`
`FS/LS IN smash
`
`FS/LS IN 3 strikes smash
`
`FS/LS DATA0/1 smash
`
`Figure A-70
`
`No figure
`
`Figure A-71
`
`FS/LS DAT A0/1 3 strikes smash
`
`No figure
`
`FS/LS ACK smash
`
`Figure A-72
`
`FS/LS ACK 3 strikes smash
`
`No figure
`
`509
`
`PA_0001719
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`•
`
`Searcing
`
`Case
`
`No smash
`
`• CS(Complete-split transaction) earlier cases
`
`Case
`
`No smash (HS MOAT A and FS/LS
`transaction is on M+1 and M+2)
`
`No smash (HS NYET and FS/LS
`transaction is on M+2)
`
`Similar Figure
`
`Similar Figure
`
`Reference
`Figure
`
`Figure A-73
`
`Reference
`Figure
`
`Figure A-74
`
`Figure A-75
`
`No smash (HS NYET and MOAT A and
`FS/LS transaction is on M+2 and M+3)
`
`Figure A-76
`
`No smash (HS NYET and FS/LS
`transaction is on M+3)
`
`HS NYET smash
`
`HS NYET 3 strikes smash
`
`Figure A-77
`
`Figure A-78
`
`Figure A-79
`
`• Abort and Free cases
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`No smash and abort (HS NYETand FS/LS
`transaction is continued at end of M+3)
`
`Figure A-80
`
`No smash and free(HS NYETand FS/LS
`transaction is not started at end of M+3)
`
`Figure A-81
`
`•
`
`FS/LS transaction error cases
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`HS ERR smash
`
`HS ERR 3 strikes smash
`
`Figure A-68
`
`Figure A-69
`
`510
`
`PA_0001720
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`• Device busy cases
`
`Case
`
`Reference
`Figure
`
`Similar Figure
`
`No smash(HS NAK(C))
`
`Figure A-82
`
`HS NAK(C) smash
`
`HS NAK(C) 3 strikes smash
`
`FS/LS NAK smash
`
`Figure A-68
`
`Figure A-69
`
`Figure A-71
`
`FS/LS NAK 3 strikes smash
`
`No figure
`
`• Device stall cases
`
`Case
`
`No smash
`
`HS STALL(C) smash
`
`HS ST ALL(C) 3 strikes smash
`
`FS/LS ST ALL smash
`
`Similar Figure
`
`Reference
`Figure
`
`Figure A-83
`
`Figure A-68
`
`Figure A-69
`
`Figure A-71
`
`FS/LS ST ALL 3 strikes smash
`
`No figure
`
`511
`
`PA_0001721
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrameM
`
`st!
`
`st2
`
`SSPLIT
`
`IN
`
`st!
`
`st2
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`SS:Pending/x
`---------,--------------------------,-------------T------------------------------------
`uframeM+l
`
`1
`
`IN
`
`DATAO
`
`-ti
`
`CS:Ready/last~ta. _ _ _ _ .....:..A.::.:C::::K::_ _ _ _ _ --.a...
`
`I
`
`I
`I
`
`.....
`
`---------r--------------------------~-------------+--------------------------~
`uFrame M+2
`ctl
`CSPLIT
`:
`----....::..::..:....::.::._:..._ _ _'.c'.:tl~......_
`:
`IN
`•
`,
`ct2
`i
`•
`CS:Old/lastdata:
`
`DATAO
`
`..-ch7
`
`ct2
`cdl
`
`I
`I
`I
`I
`I
`
`---------r--------------------------~-------------+--------------------------~
`uFrame M+3 Host does not issue 2nd CSPLIT,
`CS:Free/x
`because host already receives
`DA TAO on previous microframe.
`
`I
`
`---------~--------------------------~-------------+--------------------------~
`uFrame M+4 Host does not issue 3rd CSPLIT,
`SS:Free/x
`because host already receives
`DA TAO on previous rn.icroframe.
`
`I
`
`---------~--------------------------~-------------+--------------------------~
`I
`I
`I
`I
`uFrame M+5 ,
`,
`,
`,
`I
`I
`I
`I
`
`I
`
`Figure A-64. Normal No Smash(FS/LS Data Packet is on M+l)
`
`512
`
`PA_0001722
`
`
`
`Universal Serial Bus Specification Revision 2.0
`
`Host
`( data toggle)
`
`0
`
`uFrame M
`
`stl
`
`st2
`
`_________ ,,,,..
`SSPLIT
`
`IN
`
`Hub
`(SS: start sp. status
`CS: comp. sp. status)
`SS:Free/x
`
`FS/LS
`device
`'( data toggle)
`0
`
`I
`
`1
`I
`
`Hub ignores this
`IN.( no match
`the Address field)
`---------r--------------------------4-------------T--------------------------~ --------
`I
`uframe M+l :
`:
`:
`:
`---------L--------------------------~-------------i--------------------------~---------
`ell
`uFrame M+2
`CSPLIT
`I .: I
`ell
`I •: I
`
`ct2
`
`IN
`
`ch6
`
`NYET
`
`ct2
`
`ch4
`
`I
`I
`I
`I
`
`---------~--------------------------~-------------+--------------------------~ --------
`uFrame M+3
`ell
`CSPLIT
`
`ctl
`
`•
`ct? •
`
`ct2
`
`IN
`
`ch6
`
`NYET
`
`ch4
`
`I
`
`....
`---------~--------------------------~-------------+--------------------------~
`uFram