CN100390766C - Universal serial bus device and data exchanging method - Google Patents

Universal serial bus device and data exchanging method Download PDF

Info

Publication number
CN100390766C
CN100390766C CNB2006100591295A CN200610059129A CN100390766C CN 100390766 C CN100390766 C CN 100390766C CN B2006100591295 A CNB2006100591295 A CN B2006100591295A CN 200610059129 A CN200610059129 A CN 200610059129A CN 100390766 C CN100390766 C CN 100390766C
Authority
CN
China
Prior art keywords
impact damper
endpoint
data
serial bus
universal serial
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.)
Active
Application number
CNB2006100591295A
Other languages
Chinese (zh)
Other versions
CN1818892A (en
Inventor
许钰鼎
曾俊华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Priority to CNB2006100591295A priority Critical patent/CN100390766C/en
Publication of CN1818892A publication Critical patent/CN1818892A/en
Application granted granted Critical
Publication of CN100390766C publication Critical patent/CN100390766C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

The present invention relates to a universal serial bus (USB) device which supports a bulk-only transmission mode to carry out data exchange with a USB host end and comprises a bulk-endpoint buffer for storing data received or transmitted through bulk endpoints, and an interrupt-endpoint buffer for storing the data received or transmitted through interrupt endpoints. A method for realizing the USB device is that firstly, the interrupt-endpoint buffer is used for storing part of the data received or transmitted by the bulk endpoints; subsequently, a multiplexer is used for controlling whether a path of the data exchange between the USB device and the USB host end exists between the USB host end and the bulk-endpoint buffer or between the USB host end and the interrupt-endpoint buffer.

Description

Universal serial bus device carries out the method for exchanges data with it
Technical field
The invention relates to USB (universal serial bus), in particular to a kind of device and method for interchanging data of USB (universal serial bus).
Background technology
USB (universal serial bus) (Universal Serial Bus, USB) be a kind of new interface technology at the personal computer peripheral device device, usb protocol has 1.0,1.1 and 2.0 3 versions, communication speed is divided into 1.5Mbps, 12Mbps, 480Mbps, and can connect nearly 127 peripheral units simultaneously to main frame, have quick, two-way, plug and play (PnP) and cheap characteristics.USB interface has been widely used in various electronic equipments, wherein USB mass storage class (mass storage class) equipment can be used for the design of portable memory device, digital audio-video product, so use comparatively extensive, as Portable hard disk, flash disc, digital camera, MP3 player, read-write CD-ROM drive or the like.
The transmission specification of USB mass storage class device includes four independently sub-transmission specifications, (Bulk-only) transmission mode and control separately in batches that wherein comparatively commonly used be-in batches-interruption (control-bulk-interrupt, CBI) transmission mode, both have defined the usb host end (host) of USB mass-memory unit and two kinds of basic skills that device end (device) carries out data transmission.The Bulk-Only transmission mode only uses bulk endpoint (Bulk Endpoint) to carry out data transmission, and the CBI transmission mode is then held concurrently and used control end points (Control Endpoint), bulk endpoint (Bulk Endpoint), interrupt endpoint three types of end points such as (Interrupt Endpoint) to carry out data transmission.
And the data packet kind of between usb host end and device end, being transmitted comprise general data (data), order package (command block wrapper, CBW) and state package (commandstatus wrapper, CSW) three kinds.CBW is meant the order package that sends to equipment end from the usb host end, and it is made of 31 bytes, and scsi command is generally adopted in the order that wherein comprises.The corresponding command is taken out and carried out to USB device from the CBW that is received, transmit specific data and send the CSW that reflects the current command executing state to host side, and it is made of 13 bytes.The usb host end just can judge this time whether operation is correct according to CSW, thereby decision is to continue to transmit data or carry out the error-checking of data transmission.
When carrying out data transmission with in batches independent transmission mode, general USB device only uses bulk endpoint to carry out data transmission with host side.When data when the usb host end is sent to the USB device, data are stored in the bulk endpoint impact damper after at first receiving via bulk endpoint.And if data are desired when the USB device is sent to the usb host end, data also are stored in earlier in the bulk endpoint impact damper, send via bulk endpoint again.In in batches independent transmission mode, owing to only use bulk endpoint to transmit general data, CBW and CSW, thereby the impact damper that stores the data of the bulk endpoint action that must store once and again and empty, because the cause that these actions are quite time-consuming, and the speed of data transmission is delayed, and cause the usefulness of USB system to be lowered.
Summary of the invention
In view of this, (universalserial bus, USB) Zhuan Zhi method is to solve the problem that prior art exists to the object of the present invention is to provide a kind of realization USB (universal serial bus).In batches independent (Bulk-only) transmission mode of USB device support is to carry out exchanges data with the usb host end, and comprise the bulk endpoint impact damper to store the data that receive or send via bulk endpoint (bulk endpoint), also comprise that the interrupt endpoint impact damper is to store the data that receive or send via interrupt endpoint (interrupt endpoint).In one embodiment, realize that the method for USB device comprises the following steps: to use the interrupt endpoint impact damper, former to store via partial data that bulk endpoint received or sent.Then using multiplexer (multiplexer), is to be to and between usb host end and the bulk endpoint impact damper or between usb host end and the interrupt endpoint impact damper with the path of exchanges data between control USB device and usb host end.
In another embodiment, the invention provides a kind of USB (universal serial bus) (USB) device, in batches independent (Bulk-only) transmission mode of USB device support is to carry out exchanges data with usb host end (host).The USB device comprises: the bulk endpoint impact damper, in order to store via bulk endpoint (bulk endpoint) institute from usb host termination receipts or be sent to the data of usb host end; The interrupt endpoint impact damper is in order to store via interrupt endpoint (interrupt endpoint) institute from usb host termination receipts or be sent to the data of usb host end; Multiplexer (multiplexer), being coupled between usb host end and bulk endpoint impact damper and the interrupt endpoint impact damper, is to be to and between usb host end and the bulk endpoint impact damper or between usb host end and the interrupt endpoint impact damper in order to the path of exchanges data between control USB device and usb host end; And microprocessor (micro-processor), be coupled to bulk endpoint impact damper and interrupt endpoint impact damper, in order to carry out operation of data, and the running of all unit in the control USB device, and microprocessor may command multiplexer, former to guide via among the partial data storage interrupt endpoint impact damper that bulk endpoint received or sent, and via reception of interrupt endpoint impact damper or transmission.
Description of drawings
Fig. 1 is the block diagram according to the embodiment of USB device of the present invention;
Fig. 2 is according to USB device control data route method of the present invention.
[label simple declaration]
100~USB device;
104~control end points impact damper;
106~bulk endpoint impact damper;
108~interrupt endpoint impact damper;
110~microprocessor;
112~storage element;
114~multiplexer;
116~routing working storage;
Embodiment
Fig. 1 is the embodiment according to USB device 100 of the present invention.USB device 100 is supported in batches separately (Bulk-only) transmission mode and control-in batches-interruption (control-bulk-interrupt, CBI) transmission mode simultaneously.USB device 100 comprises three impact dampers, be respectively control end points impact damper (control endpoint buffer) 104, bulk endpoint impact damper (bulk endpointbuffer) 106, reach interrupt endpoint impact damper (interrupt endpoint buffer) 108, this three impact damper 104,106,108 is respectively applied for host side was received or desired to be sent in storage from the main frame termination by control end points (control endpoint), bulk endpoint (bulk endpoint), interrupt endpoint (interrupt endpoint) data.USB device 100 also comprises storage element 112, in order to storage data, and microprocessor (micro-processor) 110, in order to the execution operation of data, and control the running that whole USB device 100 comprises storage element 110 and impact damper 104,106,108.
The data packet kind of being transmitted between usb host end and device end comprises three kinds of general data, order package (CBW) and state packages (CSW) as previously mentioned.When carrying out data transmission with in batches independent transmission mode, USB device 100 is different from traditional USB device and only uses bulk endpoint, uses bulk endpoint and interrupt endpoint but hold concurrently, to carry out data transmission with host side.Owing in the independent transmission mode of traditional batch, use chance that interrupt endpoint carries out data transmission seldom, therefore the present invention uses interrupt endpoint impact damper 108 to handle and stored command package and state package, and bulk endpoint impact damper 106 is specialized in processing and the storage work of carrying out general data, bulk endpoint impact damper 106 in the USB device 100 can be reduced by this and the action removing and store and the usefulness of promoting USB device 100 must be repeated.
USB device 100 still comprises multiplexer 114 and routing working storage 116, stores path selection bit in the routing working storage 116, and microprocessor 110 can to change the value of the path selection bit that stores in the routing working storage 116 be 0 or 1.When the value of the path selection bit that stores in the routing working storage 116 is 0, data routing will lead to bulk endpoint impact damper 106 by multiplexer 114, and when the value of the path selection bit that stores in the routing working storage 116 is 1, data routing will lead to interrupt endpoint impact damper 108 by multiplexer 114.Therefore, when data when the usb host end is sent to USB device 100, data at first arrive multiplexer 114, multiplexer 114 can be directed to bulk endpoint or interrupt endpoint with data routing according to the path selection bit that stores in the routing working storage 116, after receiving by bulk endpoint or interrupt endpoint again, respectively with data storing in bulk endpoint impact damper 106 or interrupt endpoint impact damper 108.And if data are desired when USB device 100 is sent to the usb host end, data also are stored in earlier in bulk endpoint impact damper 106 or the interrupt endpoint impact damper 108, are sent to multiplexer 114 via bulk endpoint or interrupt endpoint respectively, to be sent to the usb host end.In addition, routing working storage 116 can be in the storer of being controlled by microprocessor 110.
Fig. 2 is the embodiment according to USB device 100 control data route method 200 of the present invention.At first, step 202 changes to 1 by microprocessor 110 with the value of the path selection bit in the routing working storage 116, so that the data routing of guiding multiplexer 114 leads to interrupt endpoint impact damper 108.This moment is if the usb host end sends the order package to USB device 100, and then this order package can be led to interrupt endpoint impact damper 108 and stores in step 204.When the order package be received finish after, can be in step 206 value of the path selection bit in the routing working storage 116 be changed to 0, so that the data routing of guiding multiplexer 114 leads to bulk endpoint impact damper 106.
This moment, the firmware of control microprocessor 110 can be resolved the order package that stores in the interrupt endpoint impact damper 108 in step 208, and took out the scsi command that is comprised in the order package; If scsi command is represented the requirement of usb host end and reads certain particular data that then microprocessor 110 can extract these data in storage element 112, and in step 210 these data is stored in bulk endpoint impact damper 106.Because this moment, the value of path selection bit was 0, the data routing of multiplexer 114 is to lead to bulk endpoint impact damper 106, so these data can directly be sent to the usb host end via bulk endpoint.Otherwise if scsi command represents that the requirement of usb host end writes certain particular data, then USB device 100 must be received this data from the usb host termination.This moment, the data routing of multiplexer 114 was to lead to bulk endpoint impact damper 106 because the value of path selection bit is 0, so the usb host end can directly transmit these data to bulk endpoint, and was stored in the bulk endpoint impact damper 106.So microprocessor 110 can extract these data from bulk endpoint impact damper 106 in step 210, and is stored in the storage element 112.
Then, microprocessor 110 can be in step 212 changes to 1 with the value of the path selection bit in the routing working storage 116, so that the data routing of guiding multiplexer 114 leads to interrupt endpoint impact damper 108.Because the order package that has received in step 206 before USB device 100 has been finished in step 210, USB device 100 must be to response of host state package, with the result notification usb host end that will order package to be carried out.This moment, the firmware of control microprocessor 110 can write this state package in the interrupt endpoint impact damper 108 in step 214, so this state package can directly be sent to the usb host end by interrupt endpoint impact damper 108.This moment, usb host end and 100 whole command process flow processs of USB device were finished.At last, send when finishing in the state package, microprocessor 110 can be in step 216 changes to 0 with the value of the path selection bit in the routing working storage 116, so that the data routing of guiding multiplexer 114 leads to bulk endpoint impact damper 106.But step 202 is to 216 process repetitive cycling, to continue the data transmission of 100 in processing usb host end and USB device.
If the value of the path selection bit in routing working storage 116 is 1, and USB device 100 positive mat interrupt endpoint impact damper 108 stored command packages or state package the time, the usb host end also may send the interruptive command that needs via the interrupt endpoint processing, and causes the result who competes with interrupt endpoint impact damper 108.Can select to handle earlier the order of this interrupt endpoint this moment, order package in the present interrupt endpoint impact damper 108 or state package are stored separately, and the value of path selection bit changes 0 into.The command process for the treatment of this interrupt endpoint finishes, and will order package or state package to return again and store up to interrupt endpoint impact damper 108, and the value of path selection bit changes 1 into, to continue the processing of this order package or state package.Also can select to handle earlier this order package or state package, and earlier the order of this interrupt endpoint be stored separately, treat that this order package or state package dispose, the capable again order of handling this interrupt endpoint.
In sum, the impact damper that the USB device that the present invention is provided in embodiment can be by using interrupt endpoint to be handling and stored command package and state package, and allow the impact damper of bulk endpoint can be specially in order to the transmission of processing general data.Therefore can allow the impact damper of bulk endpoint needn't be tired in constantly emptying and move the data that wherein store, thereby save the action of a large amount of unnecessary execution for the firmware program of USB device, and reduce the computing of unnecessary execution.Therefore can reduce between USB device and the host side and carry out the required time of data transmission, thus the usefulness of lifting USB device.
Above-mentioned several embodiment of the present invention described.Those skilled in the art should understand that they can be with embodiment of the invention modification or as the basis of designing, to reach identical purpose or the convenience of being introduced with this paper of embodiment.Those skilled in the art also should understand; above-mentioned equivalent constructions thing does not surmount spirit of the present invention and category; even those skilled in the art make modification, replacement or the change of various types, as long as spirit still according to the invention just still belongs to protection category of the present invention.

Claims (13)

1. a universal serial bus device carries out the method for exchanges data, the in batches independent transmission mode of this universal serial bus device support is to carry out exchanges data with the USB host end, and comprise that the bulk endpoint impact damper is to store the data via bulk endpoint received or sent, also comprise the interrupt endpoint impact damper storing, and the method that this realization universal serial bus device carries out exchanges data comprises the following steps: via the data that interrupt endpoint received or sent
Use this interrupt endpoint impact damper, former to store via partial data that this bulk endpoint received or sent; And
The utilization multiplexer is controlled the path of exchanges data between this universal serial bus device and this USB host end, makes it be to and between this USB host end and this bulk endpoint impact damper or between this USB host end and this interrupt endpoint impact damper.
2. universal serial bus device according to claim 1 carries out the method for exchanges data, its Central Plains comprises general data, order package and state package via the type of the data that this bulk endpoint received or sent, and described partial data is ordered the data of the type of the data of type of package and this state package for this.
3. universal serial bus device according to claim 1 carries out the method for exchanges data, and wherein the control in this path of this multiplexer is the value decision by a path selection bit.
4. universal serial bus device according to claim 1 carries out the method for exchanges data, also comprises the following steps:
When the data type of being transmitted between this universal serial bus device and this USB host end is general data, adjust this multiplexer so that this path leads to this bulk endpoint impact damper by this USB host end; And
When the data type of being transmitted between this universal serial bus device and this USB host end is order package or state package, adjust this multiplexer so that this path leads to this interrupt endpoint impact damper by this USB host end.
5. universal serial bus device according to claim 1 carries out the method for exchanges data, also comprises the following steps:
When this universal serial bus device receives the interruptive command of this interrupt endpoint of USB host end access, immediately the described partial data in this interrupt endpoint impact damper is stored separately, and empty this interrupt endpoint impact damper, to store this interruptive command; And
After treating that this interruptive command disposes, return and deposit described partial data to this interrupt endpoint impact damper, and the described partial data in this interrupt endpoint impact damper is handled in continuation.
6. universal serial bus device according to claim 1 carries out the method for exchanges data, also comprises the following steps:
When this universal serial bus device receives the interruptive command of this interrupt endpoint of USB host end access, this interruptive command is stored separately, continue to handle the described partial data in this interrupt endpoint impact damper; And
After treating that described partial data disposes, return and deposit this interruptive command to this interrupt endpoint impact damper, and continue to handle this interruptive command.
7. universal serial bus device, this universal serial bus device support in batches separately transmission mode comprise to carry out exchanges data with the USB host end:
The bulk endpoint impact damper is in order to store the data of receiving or be sent to this USB host end via bulk endpoint from this USB host termination;
The interrupt endpoint impact damper is in order to store the data of receiving or be sent to this USB host end via interrupt endpoint from this USB host termination; And
Multiplexer, be coupled between this USB host end and this bulk endpoint impact damper and this interrupt endpoint impact damper, in order to control the path of exchanges data between this universal serial bus device and this USB host end, make it be to and between this USB host end and this bulk endpoint impact damper or between this USB host end and this interrupt endpoint impact damper.
8. universal serial bus device according to claim 7, also comprise microprocessor, be coupled to this bulk endpoint impact damper and this interrupt endpoint impact damper, in order to carry out operation of data, and control the running of all unit in this universal serial bus device, and this this multiplexer of microprocessor may command formerly is stored among this interrupt endpoint impact damper via the partial data that this bulk endpoint received or sent to guide, and receives or send via this interrupt endpoint impact damper.
9. universal serial bus device according to claim 8, also comprise the routing working storage, be coupled between this multiplexer and this microprocessor, in order to store path selection bit, this multiplexer determines this path to lead to this bulk endpoint impact damper or this interrupt endpoint impact damper by this USB host end according to the value of this path selection bit, and this microprocessor can be changed the value of this path selection bit.
10. universal serial bus device according to claim 8, wherein when the data type of being transmitted between this universal serial bus device and this USB host end was general data, this microprocessor can adjust this multiplexer so that this path leads to this bulk endpoint impact damper by this USB host end; And when the data type of being transmitted between this universal serial bus device and this USB host end was order package or state package, this microprocessor can adjust this multiplexer so that this path leads to this interrupt endpoint impact damper by this USB host end.
11. universal serial bus device according to claim 8 also comprises storage element, is coupled to this microprocessor, in order to storage data.
12. universal serial bus device according to claim 8, wherein when this universal serial bus device receives the interruptive command of this interrupt endpoint of USB host end access, this microprocessor stores the described partial data in this interrupt endpoint impact damper immediately separately, and empty this interrupt endpoint impact damper, to store this interruptive command; And after treating that this interruptive command disposes, this microprocessor returns deposits described partial data to this interrupt endpoint impact damper, and continues to handle the described partial data in this interrupt endpoint impact damper.
13. universal serial bus device according to claim 8, wherein when this universal serial bus device receives the interruptive command of this interrupt endpoint of USB host end access, this microprocessor stores this interruptive command separately, and continues to handle the described partial data in this interrupt endpoint impact damper; And after treating that described partial data disposes, this microprocessor returns deposits this interruptive command to this interrupt endpoint impact damper, and continues to handle this interruptive command.
CNB2006100591295A 2006-03-14 2006-03-14 Universal serial bus device and data exchanging method Active CN100390766C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100591295A CN100390766C (en) 2006-03-14 2006-03-14 Universal serial bus device and data exchanging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100591295A CN100390766C (en) 2006-03-14 2006-03-14 Universal serial bus device and data exchanging method

Publications (2)

Publication Number Publication Date
CN1818892A CN1818892A (en) 2006-08-16
CN100390766C true CN100390766C (en) 2008-05-28

Family

ID=36918909

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100591295A Active CN100390766C (en) 2006-03-14 2006-03-14 Universal serial bus device and data exchanging method

Country Status (1)

Country Link
CN (1) CN100390766C (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100424665C (en) * 2006-12-06 2008-10-08 北京飞天诚信科技有限公司 Method and device for implementing CCID equipment
CN101464724B (en) * 2007-12-18 2011-09-28 鸿富锦精密工业(深圳)有限公司 Multi-channel master-salve equipment communication circuit
CN101650700B (en) * 2009-09-17 2011-12-28 飞天诚信科技股份有限公司 Method and device for supporting multi-logical channel communication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1236134A (en) * 1998-04-15 1999-11-24 精工爱普生株式会社 Peripher device and control method thereof
US6311294B1 (en) * 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
CN1369816A (en) * 2001-02-13 2002-09-18 明碁电通股份有限公司 High-speed transmission device and method for for universal serial bs
JP2002318778A (en) * 2001-04-20 2002-10-31 Ricoh Co Ltd Data communication system and data communication method
US20050125589A1 (en) * 2003-12-05 2005-06-09 Yu-Ping Feng [data transfer method for universal serial bus device]

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1236134A (en) * 1998-04-15 1999-11-24 精工爱普生株式会社 Peripher device and control method thereof
US6311294B1 (en) * 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
CN1369816A (en) * 2001-02-13 2002-09-18 明碁电通股份有限公司 High-speed transmission device and method for for universal serial bs
JP2002318778A (en) * 2001-04-20 2002-10-31 Ricoh Co Ltd Data communication system and data communication method
US20050125589A1 (en) * 2003-12-05 2005-06-09 Yu-Ping Feng [data transfer method for universal serial bus device]

Also Published As

Publication number Publication date
CN1818892A (en) 2006-08-16

Similar Documents

Publication Publication Date Title
KR100677538B1 (en) A Host Adapter for Combining I/O Completion Reports and Method of Using the Same
EP2126705B1 (en) Serial advanced technology attachment (sata) and serial attached small computer system interface (scsi) (sas) bridging
US6901461B2 (en) Hardware assisted ATA command queuing
RU2505851C2 (en) Providing indirect data addressing in input/output processing system where indirect data address list is fragmented
CN1595381B (en) Bridge controllers, bridge and method for operating the bridge
JP4917174B2 (en) Computer program, apparatus, and method for facilitating input / output processing for input / output (I / O) operations in a host computer system configured to communicate with a controller
JP5159902B2 (en) Method for processing a variable length device command word (DCW) in a controller configured to communicate with a channel subsystem in an I / O processing system
CN100349150C (en) System and method for accessing controller communication data through direct memory
US8799532B2 (en) High speed USB hub with full speed to high speed transaction translator
KR20060017470A (en) Controller apparatus and method for improved data transfer
WO2000075789A1 (en) A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
US7526594B2 (en) USB data transfer method
WO2006122286A2 (en) Command-re-ordering in hub interface unit based on priority
CN100390766C (en) Universal serial bus device and data exchanging method
JP4412191B2 (en) Data transfer control device and electronic device
EP2214103B1 (en) I/O controller and descriptor transfer method
CN101303685B (en) Method for improving read-write data speed of all-purpose sequence bus storage equipment
CN101232522B (en) Network card driving method
US7600058B1 (en) Bypass method for efficient DMA disk I/O
CN102750245A (en) Message receiving method, module and system as well as device
CN100336043C (en) Device, system and method for upgrading optical storage transfer performance
US6772311B2 (en) ATAPI device unaligned and aligned parallel I/O data transfer controller
CN101855623B (en) Controller with indirect accessible memory
JP2002318778A (en) Data communication system and data communication method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant