US20110072163A1 - Usb device communication apparatus, systems, and methods - Google Patents
Usb device communication apparatus, systems, and methods Download PDFInfo
- Publication number
- US20110072163A1 US20110072163A1 US12/957,081 US95708110A US2011072163A1 US 20110072163 A1 US20110072163 A1 US 20110072163A1 US 95708110 A US95708110 A US 95708110A US 2011072163 A1 US2011072163 A1 US 2011072163A1
- Authority
- US
- United States
- Prior art keywords
- request
- functional
- usb device
- descriptor
- usb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
- G06F13/426—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
Definitions
- USB devices generally operate using a standard protocol or interface, such as the interface set by the USB Implementers Forum, Inc.
- the USB Implementers Forum, Inc. is a non-profit corporation founded by a group of companies that developed a Universal Serial Bus specification. For more information regarding the USB specification, the reader is encouraged to consult the document “Universal Serial Bus Specification” Revision 2.0, published by the USB Implementers Forum in 2000, and later versions (hereinafter the “USB Specification”).
- FIG. 1 shows a block diagram of a system according to an embodiment of the invention.
- FIG. 3 shows a block diagram of communication flow according to an embodiment of the invention.
- FIG. 4 shows a flow diagram of a method of enabling a security operation according to an embodiment of the invention.
- FIG. 7 shows a flow diagram of a method of receiving and executing a security operation for a USB device according to an embodiment of the invention.
- FIG. 9 shows a flow diagram of a method of receiving and executing a functional request at a USB device according to an embodiment of the invention.
- FIG. 1 shows a block diagram of a system 100 according to an embodiment of the invention.
- the system may comprise a host 110 and a USB device 150 .
- the host 110 may comprise a memory 112 , a host controller 114 , and a USB hub 116 .
- the host 110 may interact with the USB device 150 through the host controller 114 via a USB hub 116 and bus 140 .
- the host 110 may store software, drivers and an operating system in memory 112 .
- the memory 112 may comprise volatile and nonvolatile memory, including flash memory, and can be accessed by the host controller 114 to utilize the software, drivers and operating system.
- the USB device 150 may comprise a USB bus interface 165 to receive control endpoint standard device requests with embedded functional sub-requests.
- the functional sub-requests can be embedded in a portion of the control endpoint standard device request.
- the USB device 150 may also comprise a logic controller 160 to implement the functional sub-request.
- the functional sub-request may comprise a buffer operation (e.g., buffer reset, buffer copy, and fetching the buffer structure); or a security operation (e.g., login/logout, enabling/disabling security, changing the password, reading/writing key data, and media recovery).
- functional requests may be specific functional requests to USB device 150 , such as power off, power on, record, and others as specified by the USB device developer.
- the unsecured memory 174 may be used to store client software.
- the client software may be transferred by a user to the host 110 and stored in the memory 112 .
- the client software may be executed by the host controller 112 to encode a functional sub-request forming a first portion of a control endpoint standard device request.
- the client software may be executable code that may run in a restricted host environment. In a restricted host environment, the user may not be permitted to install drivers onto host 110 . The inability to install drivers on a host 110 may limit the functionality of USB device 150 . However, even when the host 110 is operating in a restricted host environment, the operating system may allow the installation of client software in memory 112 either from unsecured memory 174 , the internet, or other media.
- Activity 410 may include decoding a reset buffer request from the first portion of a control endpoint standard device request, and resetting the buffer.
- the first portion of the control endpoint standard device request may be the wValue portion of a Get_Descriptor request.
Abstract
Description
- This application is a continuation of U.S. application Ser. No. 11/765,287, filed Jun. 19, 2007, which is incorporated herein by reference in its entirety.
- Various embodiments described herein relate to apparatus, systems, and methods associated with Universal Serial Bus (USB) communications, including communicating with devices in a restricted host environment.
- USB devices are utilized as part of a number of systems including but not limited to printers, monitors, keyboards, mice, memory devices such as flash memory devices or “thumb drives,” cellular phones, digital cameras, digital recorders, and other peripherals. Computers are designed to utilize various operating systems such as Microsoft's Windows XP™ and Windows Vista™ and Apple's Mac OS X™.
- USB devices generally operate using a standard protocol or interface, such as the interface set by the USB Implementers Forum, Inc. The USB Implementers Forum, Inc. is a non-profit corporation founded by a group of companies that developed a Universal Serial Bus specification. For more information regarding the USB specification, the reader is encouraged to consult the document “Universal Serial Bus Specification” Revision 2.0, published by the USB Implementers Forum in 2000, and later versions (hereinafter the “USB Specification”).
- USB devices may communicate with computers utilizing an operating system without the need to install additional drivers or software onto the computer provided the instructions or requests used by the USB device are supported by the drivers resident on the host. Administrators may wish to maintain control over a user's modifications to a computer. Thus, operating systems allow administrators to limit the ability of users to install or update drivers or modify the operation of the computer. The environment the user encounters in this case is often referred to as a restricted host environment.
-
FIG. 1 shows a block diagram of a system according to an embodiment of the invention. -
FIG. 2 shows a block diagram of a system according to an embodiment of the invention. -
FIG. 3 shows a block diagram of communication flow according to an embodiment of the invention. -
FIG. 4 shows a flow diagram of a method of enabling a security operation according to an embodiment of the invention. -
FIG. 5 shows a flow diagram of a method of logging in to a locked USB device according to an embodiment of the invention. -
FIG. 6 shows a flow diagram of a method of receiving and executing a buffer operation on a USB device according to an embodiment of the invention. -
FIG. 7 shows a flow diagram of a method of receiving and executing a security operation for a USB device according to an embodiment of the invention. -
FIG. 8 shows a flow diagram of a method of receiving and modifying a parameter of a USB device according to an embodiment of the invention. -
FIG. 9 shows a flow diagram of a method of receiving and executing a functional request at a USB device according to an embodiment of the invention. -
FIG. 1 shows a block diagram of asystem 100 according to an embodiment of the invention. The system may comprise ahost 110 and aUSB device 150. Thehost 110 may comprise amemory 112, ahost controller 114, and a USB hub 116. Thehost 110 may interact with theUSB device 150 through thehost controller 114 via a USB hub 116 andbus 140. Thehost 110 may store software, drivers and an operating system inmemory 112. Thememory 112 may comprise volatile and nonvolatile memory, including flash memory, and can be accessed by thehost controller 114 to utilize the software, drivers and operating system. - The
USB device 150 may comprise aUSB bus interface 165 to receive control endpoint standard device requests with embedded functional sub-requests. The functional sub-requests can be embedded in a portion of the control endpoint standard device request. TheUSB device 150 may also comprise alogic controller 160 to implement the functional sub-request. The functional sub-request may comprise a buffer operation (e.g., buffer reset, buffer copy, and fetching the buffer structure); or a security operation (e.g., login/logout, enabling/disabling security, changing the password, reading/writing key data, and media recovery). In addition, functional requests may be specific functional requests toUSB device 150, such as power off, power on, record, and others as specified by the USB device developer. - The
USB bus interface 165 may operate to receive data in a second portion of the control endpoint standard device request. If the functional sub-request is a write request, for example,logic controller 160 may operate to receive the data and store the data in a location in thememory 170. -
Memory 170 may be partitioned to include asecured memory 172 and anunsecured memory 174. The functional sub-request may be a security request, in which case thelogic controller 160 may operate to lock thesecured memory 172 of theUSB device 150. Thelogic controller 160 may operate to unlock thesecured memory 172 of theUSB device 150 when the functional sub-request is a unlock request. In addition thelogic controller 160 may operate to erase thememory 170 or a portion thereof, when the functional sub-request is an erase request. - The
unsecured memory 174 may be used to store client software. The client software, in turn, may be transferred by a user to thehost 110 and stored in thememory 112. The client software may be executed by thehost controller 112 to encode a functional sub-request forming a first portion of a control endpoint standard device request. The client software may be executable code that may run in a restricted host environment. In a restricted host environment, the user may not be permitted to install drivers ontohost 110. The inability to install drivers on ahost 110 may limit the functionality ofUSB device 150. However, even when thehost 110 is operating in a restricted host environment, the operating system may allow the installation of client software inmemory 112 either fromunsecured memory 174, the internet, or other media. -
USB device 150 may also comprise an operative unit, such as printer hardware, a camera, or other hardware. The operative unit may be controlled bylogic controller 160 to perform an action, such as printing, taking a picture, and scanning a document. - The
USB bus interface 165 may receive data in a second portion of a control endpoint standard device request, wherein the functional sub-request comprises a write request. The write request may cause thememory 170 to receive the data and to store the data in thememory 170. TheUSB device 150 may also have thelogic controller 160 lock theUSB device 150 when the functional sub-request comprises a lock request. TheUSB device 150 may also havelogic controller 160 unlock theUSB device 150 when the functional sub-request is a unlock request. TheUSB device 150 may also have thelogic controller 160 erase thememory 170 when the functional sub-request comprises an erase request. -
FIG. 2 shows a block diagram of asystem 200 according to an embodiment of the invention. Thesystem 200 comprises ahost 210 and aUSB device 250.Host 210 may comprise amemory 212, ahost controller 214, and aUSB hub 216.USB hub 216 may be attached via an electrical wire, bus or wirelessly viaconnection 280, toUSB device 250.USB device 250 may comprise one or more of akeyboard 235, amouse 240, animaging sensor 245, amemory device 252, a transceiver/antenna 255, adisplay 260, a camcorder orcamera 265, aprinter 270, a compact disc (CD)/digital video disc (DVD)drive 275, or any number of other devices that may be attached to ahost 210 via aUSB connection 280 to aUSB hub 216. -
FIG. 3 shows a block diagram of communication flow according to an embodiment of the invention. Thesystem 300 comprises ahost 310 and aUSB device 350.Host 310 may compriseclient software 311,USB system software 313, and aHost USB interface 315. TheHost USB interface 315 may comprise aHost Controller 314 and a HostSerial Interface Engine 316.USB device 350 may comprise afunction layer 355, a USBlogical device layer 360, and aUSB bus interface 365. USBlogical device layer 360 may comprise a control endpoint zero 362.USB bus interface 365 may comprise a USBserial interface engine 367. - Information flows for the
system 300 includes representations of true data flows inbus functional pipes 372 and message pipe or control pipe 374 (to be designated ascontrol pipe 374 for the balance of this document) are abstract representations of data flows. While bothfunctional pipes 372 andcontrol pipe 374 are not hardwired pipes, and data betweenhost 310 andUSB device 350 actually flows throughbus 340, for ease of understanding the operation of various embodiments, data flow throughcontrol pipe 374 will be characterized as device requests. Thecontrol pipe 374 normally comes into existence once aUSB device 350 is powered on, in order to provide access to the USB device's 350 configuration, status, and control information. - Each
USB device 350 may support one or morefunctional pipes 372 through which thehost 310 may communicate with theUSB device 350. USB devices, such asUSB device 350 generally supports a specially designatedcontrol pipe 374 at control endpoint zero 362 to which thecontrol pipe 374 may be attached. Associated with thecontrol pipe 374 at control endpoint zero 362 may be the information used to describe theUSB device 350. Acontrol pipe 374, also known as a message pipe, is defined in the USB Specification as “A bi-directional pipe that transfers data using a request/data/status paradigm. The data has an imposed structure that allows requests to be reliably identified and communicated.” - Data processed through
control pipe 374 may have a set configuration and be limited to 8 bytes.Control pipe 374 is normally used to send and receive USB device requests. USB device requests are normally eight bytes in length and follow the format set in table 1. -
TABLE 1 Offset Field Size (Bytes) Value 0 bmRequest Type 1 Request Type 1 bmRequest 1 Request 2 wValue 2 Value 4 wIndex 2 Index or Offset 6 wLength 2 Count - There are currently eleven standard device request codes set out, and two codes that may be set in the future. The eleven codes are: Get_Status, Clear_Feature, Set_Feature, Set_Address, Get_Descriptor, Set_Descriptor, Get_Configuration, Set_Configuration, Get_Interface, Set_Interface, and Synch_Frame.
- A Clear_Feature is used to clear or disable a specific feature of
USB device USB device USB device USB device USB device future USB device USB device USB device USB device USB device - When a Get_Descriptor request is made,
USB device host - Get_Descriptor requests are formatted as shown in table 2 below:
-
TABLE 2 bmRequest Type bmRequest wValue wIndex wLength Data 10000000B Get_Descriptor Descriptor Type Zero or Descriptor Descriptor and Descriptor Language Length Index ID - Get_Descriptor requests support a limited number of descriptor type and descriptor index requests in the wValue field portion of the request. Table 3 lists the descriptor types specified in the USB Specification.
-
TABLE 3 Descriptor Types Value Device 1 Configuration 2 String 3 Interface 4 Endpoint 5 Device Qualifier 6 Other Speed Configuration 7 Interface Power 8 - Thus, only a limited number of descriptor codes are prescribed for use in the wValue field of a Get_Descriptor request. None of these comprise a functional request. However, by utilizing a value that is not prescribed, the wValue field can be used to encode a functional request. For example, if a user desires to reset a buffer, the executable file may have the
host controller 114 ofFIG. 1 send a Get_Descriptor request with wValue with a high byte of 0x03 and a low byte of 0x10, as shown in Table 4. Such a request is not recognized by the USB Specification. -
TABLE 4 bmRequest Type bmRequest wValue wIndex wLength 1 byte 1 byte 2 byte 2 byte 2 byte 10000000B 00000110B 0x03 0x10 0x00 0x00 0x00 0x00 - Other requests not recognized by the USB Specification may also be made in this manner. For example, referring to
FIG. 1 , USB device 150 (e.g., a mass storage device).USB device 150 may be accessed byhost 110 using mass storage protocols to read/write data from or to theUSB device 150. In special cases, aUSB device 150 may provide extra functions, such as locking thesecured memory 172 ofUSB device 150 or unlocking thesecured memory 172 ofUSB device 150. - Host 110 may operate in a restricted mode as set by the administrators or operations system of
Host 110. IfHost 110 is in a restricted mode, thehost controller 114 may be unable to access vendor-specific requests without installing additional drivers inmemory 112. TheUSB device 150 may have an executable file stored in theunsecured memory 174 partition ofmemory 170. By transferring the executable file tomemory 112,host controller 114 may run the executable file. -
Logic controller 160 may receive the Get_Descriptor request fromhost 110.Logic controller 160 may decode the Get_Descriptor request and a functional command encoded into wValue. Referring toFIG. 3 , it can be seen that theUSB system software 313 transmits the Get_Descriptor request to the control endpoint zero 362 viacontrol pipe 374. USBlogical device layer 360 may decode the Get_Descriptor command and determine that the wValue portion of the Get_Descriptor request is not a descriptor request but a functional request. USBlogical device layer 360 may then execute the functional request encoded into wValue. -
FIG. 4 shows a flow diagram of a method of enabling a security operation according to an embodiment of the invention.FIG. 4 illustrates how a user operating an embodiment of the invention may enable the security function using a password “lexar12345”. -
Activity 410 may include decoding a reset buffer request from the first portion of a control endpoint standard device request, and resetting the buffer. For example, the first portion of the control endpoint standard device request may be the wValue portion of a Get_Descriptor request. -
Activity 420, comprising several sub-activities, may involve writing the password to a specific location, such as in thememory 170 ofUSB device 150 ofFIG. 1 . To send the password to theUSB device host FIGS. 1 , 2, 3) may encode data into a second portion of the control endpoint standard device request. The second portion of the control endpoint standard device request may comprise the wIndex portion of a Get_Descriptor request, for example. - The first portion of the Get_Descriptor request, wValue, may have a write request encoded with a memory location. To write the password, “lexar12345” into the
memory 170 ofUSB device 150 ofFIG. 1 , host 110 may need to submit six separate Get_Descriptor requests, 422, 424, 426, 428, 430 and 432. -
Activity 422 may comprise a Get_Descriptor request with a write request encoded into wValue for location 11 and wIndex may be encoded with data 0800.Activity 424 may comprise a Get_Descriptor request with a write request encoded into wValue for location 12 and wIndex may be encoded with data 6C65.Activity 426 may comprise a Get_Descriptor request with a write request encoded into wValue for location 13 and wIndex may be encoded with data 7861.Activity 428 may comprise a Get_Descriptor request with a write request encoded into wValue for location 14 and wIndex may be encoded with data 7231.Activity 430 may comprise a Get_Descriptor request with a write request encoded into wValue for location 15 and wIndex may be encoded with data 3233.Activity 432 may comprise a Get_Descriptor request with a write request encoded into wValue for location 16 and wIndex may be encoded with data 3435. When received by the USB device and decoded and executed the result may be that the USB device buffer has stored the data string “08 00 6C 65 78 61 72 31 32 33 34 35” corresponding to the password “lexar12345”. The USB device now has the password “lexar12345” stored in it for future use. To enter additional data into the USB device, one would simply repeat the writing requests illustrated above until the desired amount of data was written to the buffer. -
Activity 450 may include sending a Get_Descriptor command with wValue encoded with an enable security request. The USB device may now have its security function enabled with a password of “lexar12345”. -
FIG. 5 shows a flow diagram of a method of logging in to a locked USB device according to an embodiment of the invention. Once a password is set inUSB device activity 510 may involve resetting the buffer.Activity 520 may involve sending the password, comprisingseveral sub-activities -
Activity 522 may comprise a Get_Descriptor request with a write request encoded into wValue for location 21 and wIndex may be encoded with data 0800.Activity 524 may comprise a Get_Descriptor request with a write request encoded into wValue for location 22 and wIndex may be encoded with data 6C65.Activity 526 may comprise a Get_Descriptor request with a write request encoded into wValue for location 23 and wIndex may be encoded with data 7861.Activity 528 may comprise a Get_Descriptor request with a write request encoded into wValue for location 24 and wIndex may be encoded with data 7231.Activity 530 may comprise a Get_Descriptor request with a write request encoded into wValue for location 25 and wIndex may be encoded with data 3233.Activity 532 may comprise a Get_Descriptor request with a write request encoded into wValue for location 26 and wIndex may be encoded with data 3435. The password “lexar12345” may now be encoded into the buffer of theUSB device activity 550 may be to encode a login request into wValue of a Get_Descriptor command, which may unlock a secured memory such assecured memory 172 ofFIG. 1 . - The functional commands which may be encoded into wValue of a Get_Descriptor request may also include buffer requests (e.g., buffer reset, buffer copy, and fetching the buffer structure).
FIG. 6 shows a flow diagram of a method of receiving and executing a buffer operation on a USB device according to an embodiment of the invention. -
Activity 610 may comprise decoding a Get_Descriptor request from a control endpoint standard device request.Activity 630 may include decoding a buffer operation sub-request from a wValue portion of the Get_Descriptor request. The buffer operation may include any buffer operation including the buffer operations listed above.Activity 670 may include executing the buffer operation received by the USB device. - The functional commands encoded into wValue may also include security requests such as login, logout, enable security, disable security, change password, reading key data, writing key data and media recovery.
FIG. 7 shows a flow diagram of a method of receiving and executing a security operation for a USB device according to an embodiment of the invention. -
Activity 710 may comprise decoding a Get_Descriptor request from a control endpoint standard device request.Activity 730 may include decoding a security operation sub-request from a wValue portion of the Get_Descriptor request. The security operation may include any security operation including the security operations listed above.Activity 770 may include executing the security operation received by the USB device. - Referring to
FIG. 2 , the wValue portion of the Get_Descriptor request may include commands specific to the type ofUSB device 250 being operated. For example, theUSB device 250 may comprise a functional element, such as akeyboard 235, and the functional sub-request may modify a parameter of the functional element. For thekeyboard 235, such a request may include converting keys from an English-based keyboard to one of an Asian-based language, for example. Additional functionality for themouse 240 may be added, for example, by converting themouse 240 from a right-handed mouse to a left-handed mouse. - Similarly, a functional request for the transceiver/
antenna 255 may include increasing or decreasing the gain of theantenna 255. A functional request for thedisplay 260 may include commands to display in landscape or portrait layout based on user preference. Functional requests for theprinter 270 may include converting font commands so that Arial fonts print as Times New Roman. Functional requests for the CD/DVD device 275 may include converting region codes on DVDs or CDs. Other functional requests may be used. -
FIG. 8 shows a flow diagram of a method of receiving and modifying a parameter of a USB device according to an embodiment of the invention.Activity 810 may include decoding a Get_Descriptor request from a control endpoint standard device request.Activity 830 may include decoding instructions to modify a parameter of a functional element from a wValue portion of the Get_Descriptor request.Activity 850 may include decoding a value to set the parameter of the functional element from the wIndex portion of a Get_Descriptor request.Activity 870 may comprise modifying the parameter of the functional element according to the value encoded in wIndex. - In addition to functional sub-requests that may operate to modify a parameter of a functional element, functional sub-requests may also be used to request that the functional element perform an action. For the
imaging sensor 245, a functional request may include turning the device off at a pre-selected time. Thememory device 252 may accept buffer or security commands. For the camera/camcorder 265, the functional commands may include setting a specific record time. -
FIG. 9 shows a flow diagram of a method of receiving and executing a functional request at a USB device according to an embodiment of the invention.Activity 910 may include decoding a Get_Descriptor request at a control endpoint.Activity 930 may include decoding an action request for a functional element in the wValue portion of the Get_Descriptor request.Activity 950 may include decoding a parameter for an action request in the wIndex portion of a Get_Descriptor request. The parameter may comprise a start time, a stop time, or any of a number of parameters depending upon the specific nature of the action request.Activity 970 may include executing the action request pursuant to the parameter of the action request. - The “Universal Serial Bus Specification” Revision 2.0. does not provide any mechanism for the USB device manipulation disclosed herein. To provide such capability despite lack of recognition in the USB Specification, some embodiments described herein provide for execution of functional requests on a USB device without the need to install additional drivers onto a host, such as a user's personal computer. These functional requests can include device security commands, buffer requests, USB device parameter modifications, and action requests such as ON/OFF action commands.
- The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b) requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. The above description and figures illustrate embodiments of the invention to enable those skilled in the art to practice the embodiments of the invention. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/957,081 US8335865B2 (en) | 2007-06-19 | 2010-11-30 | USB device communication apparatus, systems, and methods |
US13/616,858 US8402173B2 (en) | 2007-06-19 | 2012-09-14 | USB device communication apparatus, systems, and methods |
US13/834,247 US8732341B2 (en) | 2007-06-19 | 2013-03-15 | USB device communication apparatus, systems, and methods |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/765,287 US7853725B2 (en) | 2007-06-19 | 2007-06-19 | USB device communication apparatus, systems, and methods |
US12/957,081 US8335865B2 (en) | 2007-06-19 | 2010-11-30 | USB device communication apparatus, systems, and methods |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/765,287 Continuation US7853725B2 (en) | 2007-06-19 | 2007-06-19 | USB device communication apparatus, systems, and methods |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/616,858 Continuation US8402173B2 (en) | 2007-06-19 | 2012-09-14 | USB device communication apparatus, systems, and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110072163A1 true US20110072163A1 (en) | 2011-03-24 |
US8335865B2 US8335865B2 (en) | 2012-12-18 |
Family
ID=39748574
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/765,287 Active 2028-10-15 US7853725B2 (en) | 2007-06-19 | 2007-06-19 | USB device communication apparatus, systems, and methods |
US12/957,081 Active 2027-07-11 US8335865B2 (en) | 2007-06-19 | 2010-11-30 | USB device communication apparatus, systems, and methods |
US13/616,858 Active US8402173B2 (en) | 2007-06-19 | 2012-09-14 | USB device communication apparatus, systems, and methods |
US13/834,247 Active US8732341B2 (en) | 2007-06-19 | 2013-03-15 | USB device communication apparatus, systems, and methods |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/765,287 Active 2028-10-15 US7853725B2 (en) | 2007-06-19 | 2007-06-19 | USB device communication apparatus, systems, and methods |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/616,858 Active US8402173B2 (en) | 2007-06-19 | 2012-09-14 | USB device communication apparatus, systems, and methods |
US13/834,247 Active US8732341B2 (en) | 2007-06-19 | 2013-03-15 | USB device communication apparatus, systems, and methods |
Country Status (2)
Country | Link |
---|---|
US (4) | US7853725B2 (en) |
WO (1) | WO2008156810A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402173B2 (en) | 2007-06-19 | 2013-03-19 | Micron Technology, Inc. | USB device communication apparatus, systems, and methods |
US20140047141A1 (en) * | 2012-03-29 | 2014-02-13 | Bahareh Sadeghi | Buffer-related usb communication |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077390A1 (en) * | 2007-09-14 | 2009-03-19 | Particio Lucas Cobelo | Electronic file protection system having one or more removable memory devices |
US8615544B2 (en) | 2011-02-25 | 2013-12-24 | Wyse Technology Inc. | System and method for unlocking a device remotely from a server |
US8572754B2 (en) | 2011-02-25 | 2013-10-29 | Wyse Technology Inc. | System and method for facilitating unlocking a device connected locally to a client |
US8651884B1 (en) | 2012-04-10 | 2014-02-18 | Google Inc. | Ejectable memory card tray in a universal serial bus (USB) connector |
US10097369B2 (en) | 2013-06-28 | 2018-10-09 | Hewlett-Packard Development Company, L.P. | Attached computing device |
EP3035741A1 (en) | 2014-12-17 | 2016-06-22 | Thomson Licensing | WLAN user quality of experience control in a multi-access point environment |
EP3283970A4 (en) | 2015-04-17 | 2019-04-17 | Hewlett-Packard Development Company, L.P. | Universal serial bus management |
US10409734B1 (en) * | 2017-03-27 | 2019-09-10 | Symantec Corporation | Systems and methods for controlling auxiliary device access to computing devices based on device functionality descriptors |
KR102083315B1 (en) * | 2017-09-11 | 2020-03-03 | 삼성디스플레이 주식회사 | Organic light-emitting display device and method of manufacturing the same |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484219B1 (en) * | 2000-02-04 | 2002-11-19 | Microsoft Corporation | Host-specified USB device requests |
US6795872B2 (en) * | 2002-05-09 | 2004-09-21 | Renesas Technology America, Inc. | Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed |
US7127678B2 (en) * | 2000-12-21 | 2006-10-24 | Microsoft Corporation | System and method to specify device specific user interface information in the firmware of a USB device |
US20080320198A1 (en) * | 2007-06-19 | 2008-12-25 | Micron Technology, Inc. | Usb device communication apparatus, systems, and methods |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831748B2 (en) | 2004-08-10 | 2010-11-09 | Microsoft Corporation | Extended USB protocol with selective broadcast mechanism |
-
2007
- 2007-06-19 US US11/765,287 patent/US7853725B2/en active Active
-
2008
- 2008-06-19 WO PCT/US2008/007649 patent/WO2008156810A1/en active Application Filing
-
2010
- 2010-11-30 US US12/957,081 patent/US8335865B2/en active Active
-
2012
- 2012-09-14 US US13/616,858 patent/US8402173B2/en active Active
-
2013
- 2013-03-15 US US13/834,247 patent/US8732341B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484219B1 (en) * | 2000-02-04 | 2002-11-19 | Microsoft Corporation | Host-specified USB device requests |
US7127678B2 (en) * | 2000-12-21 | 2006-10-24 | Microsoft Corporation | System and method to specify device specific user interface information in the firmware of a USB device |
US6795872B2 (en) * | 2002-05-09 | 2004-09-21 | Renesas Technology America, Inc. | Maintaining at least partial functionality of a device as defined by a hardware configuration at a USB bus enumeration while the device memory is programmed |
US20080320198A1 (en) * | 2007-06-19 | 2008-12-25 | Micron Technology, Inc. | Usb device communication apparatus, systems, and methods |
US7853725B2 (en) * | 2007-06-19 | 2010-12-14 | Micron Technology, Inc. | USB device communication apparatus, systems, and methods |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402173B2 (en) | 2007-06-19 | 2013-03-19 | Micron Technology, Inc. | USB device communication apparatus, systems, and methods |
US8732341B2 (en) | 2007-06-19 | 2014-05-20 | Micron Technology, Inc. | USB device communication apparatus, systems, and methods |
US20140047141A1 (en) * | 2012-03-29 | 2014-02-13 | Bahareh Sadeghi | Buffer-related usb communication |
US10635393B2 (en) * | 2012-03-29 | 2020-04-28 | Intel Corporation | Buffer-related USB communication |
Also Published As
Publication number | Publication date |
---|---|
US8732341B2 (en) | 2014-05-20 |
WO2008156810A1 (en) | 2008-12-24 |
US20130013815A1 (en) | 2013-01-10 |
US8335865B2 (en) | 2012-12-18 |
US8402173B2 (en) | 2013-03-19 |
US20130212303A1 (en) | 2013-08-15 |
US20080320198A1 (en) | 2008-12-25 |
US7853725B2 (en) | 2010-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8402173B2 (en) | USB device communication apparatus, systems, and methods | |
JP4538027B2 (en) | Semiconductor device | |
US8745277B2 (en) | Command portal for securely communicating and executing non-standard storage subsystem commands | |
KR100450080B1 (en) | Portable storage medium based on Universal Serial Bus standard and Control Method therefor | |
US9026683B1 (en) | Command portal for executing non-standard storage subsystem commands | |
US8135880B2 (en) | USB mass storage locking | |
JP4663572B2 (en) | Universal serial bus data transmission method and device implementing the method | |
US20060253620A1 (en) | Data structure of flash memory having system area with variable size in which data can be updated, USB memory device having the flash memory, and method of controlling the system area | |
US20020073340A1 (en) | Secure mass storage device with embedded biometri record that blocks access by disabling plug-and-play configuration | |
US7711915B2 (en) | Method for overcoming system administration blockage | |
US8695085B2 (en) | Self-protecting storage | |
US7620761B2 (en) | Multi-functional storage apparatus and control method thereof | |
JP4622770B2 (en) | COMMUNICATION SYSTEM, INFORMATION PROCESSING DEVICE, PERIPHERAL DEVICE, AND COMMUNICATION METHOD | |
US20040054859A1 (en) | Mouse device capable of storing data | |
US8095719B2 (en) | Data communication systems and bridges | |
WO2016031456A1 (en) | Reader/writer device, information processing device, data transfer control method, and program | |
JP7179489B2 (en) | Storage system and its control method, program, and storage control system | |
KR100484151B1 (en) | Method and apparatus for controlling print operation | |
JP2004302870A (en) | Write-protect method for media reader/writer | |
US20120137089A1 (en) | Storage device, electronic device, and access control method for storage device | |
WO2012014196A1 (en) | Device and method for communicating with a storage device | |
Specification | SD Specifications Part 1 Physical Layer Simplified Specification | |
JP2002215359A (en) | Information processing device, information processing system, printing control method, and storage medium | |
CN101193088A (en) | A portable storage device with network function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:047243/0001 Effective date: 20180629 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050937/0001 Effective date: 20190731 |
|
AS | Assignment |
Owner name: MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |