Designing Hardware for QuickUSB
Block Handshake I/O Model
Block handshake I/O model is best used for targets that need the benefits of
FIFO handshake but always transfer either 64 (Full Speed) or 512 (Hi-Speed)
byte blocks for each transaction. This I/O model checks the FIFO flags just once
at the beginning of the block and assume that it can transfer the entire block.
This I/O model is implemented in the QuickUSB firmware file
‘quickusb-blockhs vX.XX.qusb’ where X.XX is the firmware version number.
The Block I/O model is designed to provide the highest possible data rate
possible with hardware handshaking.
AS A RESULT, THERE ARE CERTAIN INVALID TRANSFER LENGTHS THAT MAY
RESULT IN A FATAL SOFTWARE ERROR WHICH MAY CRASH YOUR COMPUTER.
The simplest valid transfer length calculation is to request data transfer lengths
in multiples of 512 bytes for Hi-Speed mode or 64 bytes for Full-Speed mode.
For applications that cannot use this simplified method, see the Notes section
below.
Command Transfers
IFCLK
IFCLK
Addr0
X
t
XGD
CMD_DATA
CTL0
REN
CTL1
WEN
CTL2
nREN
CTL3
nWEN
CTL4
nOE
CTL5
GPIFADR
GPIFADR
FD
PB, PD
Name
Pin
Z
Data0
Write Cycle
X
Z
nEMPTY
RDY0
nFULL
RDY1
X
X
t
IFCLK
t
XCTL
t
SGA
Signifies QuickUSB Write to
the Data Bus
t
XCTL
t
XCTL
IFCLK
IFCLK
Addr0
X
t
DAH
CMD_DATA
CTL0
REN
CTL1
WEN
CTL2
nREN
CTL3
nWEN
CTL4
nOE
CTL5
GPIFADR
GPIFADR
FD
PB, PD
Name
Pin
Z
Data0
Read Cycle
X
Z
nEMPTY
RDY0
nFULL
RDY1
X
X
t
IFCLK
t
XCTL
t
SGD
t
SGA
Signifies QuickUSB Read
from the Data Bus
t
XCTL
t
XCTL
12
High Speed Parallel Port