Patent ID: 7685328

Claim:
A method of operating a smart card device, comprising; connecting a USB host device as a master to a USB smart card device via a smart card reader that is coupled to the host device for reading the smart card device and including a USB bus, wherein the smart card device comprises an integrated circuit comprising D+ and D− ports forming an interface circuit, a single serial interface engine that translates USB data into parallel data, a low speed USB transceiver and separate full speed USB transceiver connected in parallel between the serial interface engine and the interface circuit, a processor, a data memory storing programmable USB configurations and connected to the processor, a USB device controller coupled to the serial interface engine and processor and a buffer connected between the processor, USB device controller and serial interface engine through which programmable configurations are loaded to the USB device controller and serial interface engine, and a clock source coupled to the processor, serial interface engine and USB device controller for switching clock speed operation for a low speed clock speed or a full speed clock speed; attaching to the USB host device and USB bus and powering-on the USB smart card device, low speed in a default configuration by powering the low speed transceiver only and the clock source in a low speed configuration; enumerating to the USB host device as a low speed USB smart card device and operating as a low speed device; detecting an event indicative that the USB smart card device should switch to a full speed mode; detaching from the USB host device and USB bus; disabling the USB smart card device by switching off power to the USB device controller; switching the clock source to a full speed clock speed and switching out from the low speed transceiver operation and enabling full speed transceiver operation; and attaching to the USB bus and enumerating to the USB host as a full speed USB smart card device while the USB host device sends a new set of descriptors to operate in full speed.