Patent ID: 8200862

Claim:
A card reader comprising: a transmit pair for sending packets to a host; a receive pair for receiving packets from the host; wherein the transmit and receive pair comprise a differential bus with a first pin carry+signal and a second pin carry−signal from host as the receive pair, and a second pair differential serial bus with a first pin carry+signal and a second pin carry−signal to the host as the transmit pair; an input buffer for buffering packets from the receive pair and for buffering packets to the transmit pair; a command extractor for extracting commands from the packets from the host; a command pipe for flowing commands from the host to the card reader; a status pipe for flowing status packets from the card reader to the host; a bulk data-out pipe for flowing data packets from the host to the card reader; a bulk data-in pipe for flowing data packets from the card reader to the host; bulk endpoint buffers comprising: a status bulk-in endpoint that sends status packets to the host through the status pipe; a data bulk-in endpoint that sends data packets to the host through the bulk data-in pipe; a data bulk-out endpoint that receives data packets from the host through the bulk data-out pipe; a command endpoint that receives command packets from the host through the command pipe; a processor for executing control routines; a chaining direct-memory access (DMA) engine, programmed by the processor to transfer data packets including headers and payloads between the input buffer and the bulk endpoint buffers; a flash-card socket for receiving a flash memory card; and a flash-card protocol converter, coupled to the bulk endpoint buffers, for converting commands extracted by the command extractor into flash-card signals for accessing the flash memory card inserted into the flash-card socket, whereby packets are flowed through pipes using the chaining DMA engine.