UNIVERSAL SERIAL BUS
S3C9664/P9664 (Preliminary Spec)
13-2
Serial Bus Interface Engine (SIE)
The Serial Interface Engine interfaces to the USB serial data and handles, deserialization/serialization of data,
NRZI encoding/decoding, clock extraction, CRC generation and checking, bit stuffing and other specifications
pertaining to the USB protocol such as handling inter packet time out and PID decoding.
Control Logic
The USB control logic manages data movements between the CPU and the transceiver by manipulating the
transceiver and the endpoint register. This includes both transmit and receive operations on the USB. The logic
contains byte count buffers for transmit operations that load the active transmit endpoint's byte count and use
this to determine the number of bytes to transfer. The same buffer is used for receive transactions to count the
number of bytes received and transfer that number to the receiver endpoint's byte count register at the end of the
transaction.
The control logic in S3C9664, when transmit, manages parallel to serial conversion, packet generation, CRC
generation, NRZI encoding and bit stuffing.
When receive, the control logic in S3C9664 handles Sync detection, packet decoding, EOP (End Of Packet)
detection, remove bit stuffing, NRZI decoding, CRC checking and serial to parallel conversion
Bus Protocol
All bus transactions involve the transmission of packets. S3C9664 supports low-speed packets. Each transaction
starts when the host controller sends a Token Packet to the USB device. The Token packets are generated by
the USB host and decoded by the USB device. A Token Packet includes the type description, direction of the
transaction, USB device address and the endpoint number.
Data and Handshake packets are both decoded and generated by the USB device. In any transaction, the data is
transferred from the host to a device or from a device to the host. The transaction source then sends a Data
Packet or indicates that it has no data to transfer. The destination then responds with a Handshake Packet
indicating whether the transfer was successful.
Data Transfer Types
USB data transfer occurs between the host software and a specific endpoint on the USB device. An endpoint
supports a specific type of data transfer. The S3C9664 supports two types transfer endpoints: control and
interrupt.
Control transfer configures and assigns an address to the device when detected. Control transfer also supports
status transaction, returning status information from device to host.
Interrupt transfer refers to a small, spontaneous data transfer from USB device to host.
Endpoints
Communication flows between the host software and the endpoints on the USB device. Each endpoint on a
device has an identifier number. In addition to the endpoint number, each endpoint supports a specific transfer
type. S3C9664 supports three endpoints: Endpoint 0 supports control transfer, and Endpoint 1, Endpoint 2
supports interrupt transfer.