CN100462936C - Universal serial bus host controller rapid testing system and method thereof - Google Patents
Universal serial bus host controller rapid testing system and method thereof Download PDFInfo
- Publication number
- CN100462936C CN100462936C CNB2006100749523A CN200610074952A CN100462936C CN 100462936 C CN100462936 C CN 100462936C CN B2006100749523 A CNB2006100749523 A CN B2006100749523A CN 200610074952 A CN200610074952 A CN 200610074952A CN 100462936 C CN100462936 C CN 100462936C
- Authority
- CN
- China
- Prior art keywords
- host controller
- usb
- serial bus
- test
- usb host
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
This invention discloses one common series bus host controller rapid test system and its method, which comprises the following steps: acquiring common series host controller right; establishing analogue series bus device; through virtual common series bus connecting multiple bus devices; activating designed real common bus device test program; receiving and catching user mode application program to send out data pack through common series bus; if it receives activation information, activating real common series bus device interface test program; if it receives test terminal information, terminating test program and giving back test result to user mode application program and ending real common series bus interface test.
Description
Technical field
The present invention relates to a kind of usb host controller fast testing system and method thereof, relate in particular to a kind of foundation and related specific USB interface is tested system and method thereof with the quick test of finishing usb host controller by virtual USB equipment and actual USB interface.
Background technology
USB (universal serial bus) (Universal Serial Bus, English abbreviation: USB) be a kind of new interface technology that is applied in personal computer (PC) field.When this type of usb host controller chip of test, adopt basically in conjunction with the USB tool and be used as means of testing at present.Usually, earlier the USB tool is connected into computing machine, load the driver of USB tool then, application program by user model sends instruction at last, indication operating system is tested, and waits for the feedback of operating system then, calculates the usb data transfer rate according to feedback information.Yet in the prior art, there is following shortcoming in the test that utilizes the USB tool to carry out the USB control chip:
1, reduces test speed.Because the USB tool is the single-chip microprocessor system normally, its processing speed generally can't be compared with computer processing speed, therefore, owing to not matching of single-chip microprocessor system and computer processing speed, and reduces whole test speed.
2, waste of manpower resource increases testing cost.Need the tester to carry out associative operation, in test, separately the USB tool is connected into the USB port of computing machine, valuable human resources have been wasted, and owing to need to use the USB tool to test, increased testing cost and, always needed constantly to improve the USB tool along with the continuous change and the raising of test request.
3, increase the probability of makeing mistakes, reduce work efficiency.Because there are quality problems probably in USB tool itself or because some is former thereby cause it to damage, and cause the erroneous judgement of test procedure disconnected.Simultaneously, owing to add manually-operated, increased the probability that test procedure is made mistakes.In addition, when finding USB device operation irregularity, can't determine it is that the port unusually also connects or USB device operation irregularity, therefore can cause the test result mistake, so also need to cause work efficiency to reduce like this by detecting to confirm whether the USB device is working properly.
Summary of the invention
Technical matters to be solved by this invention is to provide a kind of usb host controller fast testing system and method thereof, sets up by virtual USB equipment and actual USB interface and related specific USB interface is tested to finish the quick test of usb host controller.
For achieving the above object, a kind of usb host controller fast testing system provided by the present invention comprises: control module, in order to obtain the control of usb host controller; Filtering module is in order to the data packet that receives and the application program of interception user model is sent to usb host controller, to judge whether to exist the test activation of USB device to be measured or the information of end of test (EOT); Virtual USB equipment constitutes test channel in order to make between computing machine and a plurality of actual USB interface; And test module, in order to being connected with a plurality of actual USB interface to be measured respectively, to finish test to the interface of the actual USB device of appointment by virtual USB equipment.
And for achieving the above object, a kind of usb host controller method for rapidly testing provided by the present invention comprises following steps: the control of obtaining usb host controller; Set up virtual USB equipment; Be connected with the interface of a plurality of actual USB device respectively by virtual USB equipment, the test of the interface of the actual USB device of appointment prepared to finish; Activation is to the test procedure of the interface of the actual USB device of appointment; The data packet that the application program of reception and interception user model is sent to usb host controller is to judge whether to exist the test active information of USB device to be measured; If there is not a test active information, then continue to receive and data packet that the application program of interception user model is sent to usb host controller; After receiving the test active information, activation is to the test procedure of the interface of the actual USB device of appointment; Activate the data packet that the back receives and the application program of interception user model is sent to usb host controller in test, to judge whether to exist the end of test information of USB device to be measured; If do not receive end of test information, then continue to receive and data packet that the application program of interception user model is sent to usb host controller; And after receiving end of test information, stop test procedure and return the application program of test result, and end is to the test of the interface of the actual USB device of appointment to user model.
In sum, the invention has the advantages that:
1, gets rid of the influence of USB tool, reduce the cost of research and development and production USB tool.The method that the present invention adopts is directly tested the usb host controller chip, and designs a USB and filter (USB Filter) driver, is responsible for receiving activation/end test instruction, receives after the instruction flow process according to the rules, activation/end test procedure.Return the application program of test result after the end of test (EOT) to user model.Therefore need not to use the USB tool, got rid of the influence of USB tool, reduced the cost of research and development and production USB tool.
2, finish the task of test usb data transmission automatically, fast.The disclosed technical scheme of the present invention need not to use the USB tool, and only utilizes computer terminal just can test.Present computing machine has all surpassed the USB tool from performance and stable aspect, and therefore the precision and the speed of test can be guaranteed.The present invention is when test, use the technology of virtual unit, concrete USB port reflection is become virtual USB equipment, in the actual test, constitute test channel with virtual USB equipment and usb host controller chip, form a data flow path of replying fast in computer-internal, this channel can not delay the transmission of data owing to USB tool or other factors, therefore can finish test assignment fast.And only need flow process according to the rules to activate the dependence test program, just can realize fast automatically testing the USB velocity test, saved the human resources of a large amount of preciousnesses.
Describe the present invention below in conjunction with the drawings and specific embodiments, but not as a limitation of the invention.
Description of drawings
Fig. 1 is the system block diagrams of usb host controller fast testing system of the present invention;
Fig. 2 is the method flow diagram of usb host controller method for rapidly testing of the present invention; And
Fig. 3 is the method flow diagram that obtains the control of usb host controller of the present invention.
Wherein, Reference numeral:
The 10:USB console controller
11: control module
12: filtering module
13: virtual USB equipment
14: test module
15: the application program of user model
16: actual USB interface
Step 300 is connected with a plurality of actual USB device interfaces respectively by virtual USB equipment, to finish the test preparation to the actual USB device interface of appointment
The data packet that the application program of step 500 reception and interception user model is sent to usb host controller
Step 700 judges whether to exist the end of test information of USB device to be measured
Embodiment
As shown in Figure 1, the system block diagrams of having represented usb host controller fast testing system of the present invention among the figure, set up by virtual USB equipment and actual USB interface and related specific USB interface to be tested to finish the quick test of usb host controller, this system works principle is as follows: by control module 11, application program 15 to user model sends control information, by filtering module 12, obtain the control of usb host controller 10, with binding usb host controller 10 and filtering module 12, and set up the data path of binding, application program 15 direct transmissions by user model are instructed to filtering module 12 to activate or to stop this test, and set up related with actual usb 16 by virtual USB equipment 13, test module 14, be electrically connected with filtering module 12 and virtual USB equipment 13, in order to be connected with a plurality of actual usb 16 to be measured respectively by virtual USB equipment 13, to finish test to the interface of the actual USB device of appointment, thus, computing machine just can be visited actual usb 16, to finish the purpose to specific USB port test.
In one embodiment of this invention, this control module 11 comprises that also usb host controller searches module (in the accompanying drawing expression), in order to search usb host controller 10 and obtain usb host controller 10 the universe unique identifier (English full name: Globally Unique Identifier, English is write a Chinese character in simplified form: GUID), the information set of usb host controller 10, the title of all USB device and the access path of usb host controller 10; And binding module (not expression in the accompanying drawing), in order to binding usb host controller 10 and filtering module 12, directly send instruction to activate or to stop test to filtering module 12 to the actual USB device interface 16 of appointment with application program 15 by user model.Wherein binding module also comprises and searches module (in the accompanying drawing expression), in order to search the well-determined access key value of list of devices database and usb host controller 10; And mark module (not expression in the accompanying drawing), in order to add mark, with binding filtering module 12 and usb host controller 10, to set up the data path of binding at the list of devices database.
This filtering module 12 in order to the data packet that receives and the application program 15 of interception user model is sent to usb host controller 10, activates or the information of end of test (EOT) with a test that judges whether to exist a USB device to be measured; The root node that in test, belongs to the USB system simultaneously owing to usb host controller 10, USB device all needs by these root node transmission data, for guaranteeing the normal transmission of data, the data transmission and the test data of reality need be distinguished, be distinguished actual data transmission and test by this filtering module 12.
In one embodiment of this invention, when activating test, for guaranteeing the normal transmission of test data, arrange two character strings and be used for activating or ended test, wherein, a character string is as the test activation marker, and another stops sign as test, if filtering module 12 monitors activation marker, then activate test procedure.In the later time, filtering module 12 will be intercepted and captured the data of transmitting on the usb bus, stops sign up to receiving.After the end of test (EOT), remove the binding relationship that module (expression in the accompanying drawing) is removed the usb host controller 10 set up and filtering module 12 by one.At last, finish some cleaning works finally to finish whole testing process.
In one embodiment of this invention, virtual USB equipment 13 further comprises storage module (not expression in the accompanying drawing), in order to the device description symbol of storage virtual USB equipment 13 and the new address of computing machine distribution.
As shown in Figure 2, this figure is the method flow diagram of a kind of usb host controller method for rapidly testing of the present invention, and as shown in the figure, usb host controller method for rapidly testing of the present invention comprises following steps:
Obtain the control (step 100) of usb host controller, step 100 will be done further explanation hereinafter; Set up virtual USB equipment (step 200), step 200 will be done further explanation hereinafter; Be connected with the interface of a plurality of actual USB device respectively by virtual USB equipment, (step 300) prepared in the test of the interface of the actual USB device of appointment to finish; Activation is to the test procedure (step 400) of the interface of the actual USB device of appointment; The data packet (step 500) that the application program of reception and interception user model is sent to usb host controller; The information (step 600) that judges whether to exist the test of USB device to be measured to activate; If there is not this test active information, then return step 500; After receiving this test active information, activate the test procedure of interface of the actual USB device of a pair of appointment; After activating, test receives and tackles the data packet that the application program of this user model is sent to this usb host controller, to judge whether to exist an end of test information of this USB device to be measured; Judge whether to exist the end of test information (step 700) of USB device to be measured; If do not receive this end of test information, then return step 500; And after receiving end of test information, stop test procedure and return the application program of test result, and end is to the test (step 800) of the interface of the actual USB device of appointment to user model.
Fig. 3 is the method flow diagram that obtains the control (step 100) of usb host controller of the present invention.As shown in the figure, it comprises following steps: search usb host controller (step 110); Obtain the universe unique identifier (step 120) of usb host controller; Obtain the information set (step 130) of usb host controller by the universe unique identifier; Obtain the total interface information (step 140) of usb host controller by information set; Obtain the title (step 150) of all USB device interfaces by total interface information; Obtain the access path (step 160) of usb host controller; Binding USB filtering module and usb host controller, directly send instruction to activate or to stop the interface testing (step 170) to the actual USB device of appointment with the application program by user model to the USB filtering module, step 170 will be done further explanation hereinafter.
In one embodiment of this invention, wherein bind a USB filtering module and a usb host controller, directly sending instruction with the application program by user model to the USB filtering module can realize the interface testing (step 170) of the actual USB device of appointment by the following method with activation or termination: search a list of devices database, to obtain the information of all USB device; Obtain a well-determined access key value of usb host controller by the information of all USB device; And the mode by adding mark at the list of devices database, binding USB filtering module and usb host controller are to set up the data path of binding.
The step (step 200) of setting up a virtual USB equipment of the present invention further realizes by the following method: at first, activate a bus enumeration procedure, to obtain a device descriptor of virtual USB equipment.In one embodiment of this invention, the address that virtual USB equipment is set is zero; Computing machine is the instruction that zero virtual USB equipment sends the requesting service descriptor to the address; This address is zero virtual USB equipment sends it back a device descriptor from this equipment to computing machine.Secondly, be provided with and store an address of virtual USB equipment, with as the basis of after this communicating by letter.In this stage, in one embodiment of the invention, computing machine is that zero virtual USB equipment sends instruction to the address, distributes new address (non-vanishing), and virtual USB device is stored this new address, and with this basis as later communication.At last, obtain a configuration descriptor of virtual USB equipment.In one embodiment of this invention, main frame is to the virtual USB device request device descriptor of new distribution address, virtual USB device replied device descriptor; Host requests configuration and report descriptor, all descriptors of virtual USB device replied; Main frame sends the instruction that acknowledges receipt of to virtual USB equipment, the instruction that the virtual USB device replied acknowledges receipt of.After the bus enumeration procedure finished, virtual USB equipment began operate as normal, by setting up relatedly with actual USB interface, visiting actual USB interface, and finished the purpose to the USB port test of appointment, thereby realized testing whole USB system.
After receiving end of test information, stop test procedure and return the application program of a test result, and finish the step (step 800) of the test of the interface of the actual USB device of appointment is further comprised following steps in one embodiment of this invention: remove the binding of usb host controller and USB filtering module to user model.
Certainly; the present invention also can have other various embodiments; under the situation that does not deviate from spirit of the present invention and essence thereof; those of ordinary skill in the art work as can make various corresponding changes and distortion according to the present invention, but these corresponding changes and distortion all should belong to the protection domain of the appended claim of the present invention.
Claims (10)
1. universal serial bus host controller rapid testing system, set up by dummy general serial bus apparatus and actual USB (universal serial bus) and related specific USB (universal serial bus) to be tested to finish the quick test of USB host controller, it is characterized in that this system comprises:
One control module is in order to obtain the control of a USB host controller;
One filtering module, the data packet that sends to this USB host controller in order to the application program that receives and tackle a user model activates or the information of end of test (EOT) with a test that judges whether to exist a universal serial bus device to be measured;
One dummy general serial bus apparatus constitutes test channel in order to make between computing machine and a plurality of actual USB (universal serial bus); And
One test module is in order to be connected with a plurality of actual USB (universal serial bus) to be measured respectively by this dummy general serial bus apparatus, to finish the test to the interface of designed real common bus.
2. universal serial bus host controller rapid testing system according to claim 1 is characterized in that, this control module further comprises:
One USB host controller is searched module, in order to search this USB host controller and to obtain a universe unique identifier of this USB host controller, an information set of this USB host controller, the title of all universal serial bus devices and the access path of this USB host controller; And
One binding module, in order to bind this USB host controller and this USB (universal serial bus) filtering module, directly send instruction to activate or to stop this test to this USB (universal serial bus) filtering module to the interface of designed real common bus with application program by this user model.
3. universal serial bus host controller rapid testing system according to claim 2 is characterized in that, this binding module further comprises:
One searches module, in order to search a well-determined access key value of a list of devices database and this USB host controller; And
One mark module is in order to add mark at this list of devices database, to bind this USB (universal serial bus) filtering module and this USB host controller, to set up the data path of binding.
4. universal serial bus host controller rapid testing system according to claim 2 is characterized in that, further comprises one and removes module, in order to remove the binding of this USB host controller and this USB (universal serial bus) filtering module.
5. universal serial bus host controller rapid testing system according to claim 1, it is characterized in that, this dummy general serial bus apparatus further comprises a storage module, the new address of distributing in order to the device description symbol that stores this dummy general serial bus apparatus and a computing machine.
6. USB host controller method for rapidly testing, set up by dummy general serial bus apparatus and actual USB (universal serial bus) and related specific USB (universal serial bus) to be tested to finish the quick test of USB host controller, it is characterized in that this method of testing includes the following step:
Obtain the control of a USB host controller;
Set up a dummy general serial bus apparatus;
Be connected with the interface of a plurality of actual universal serial bus devices respectively by this dummy general serial bus apparatus, prepare to finish this test to the interface of designed real common bus;
The test procedure of the interface of activating designed real common bus;
Receive and tackle the data packet that the application program of a user model is sent to this USB host controller, to judge whether to exist a test active information of a universal serial bus device to be measured;
If there is not this test active information, then continues reception and tackle the data packet that the application program of this user model is sent to this USB host controller;
After receiving this test active information, activate the test procedure of the interface of a pair of designed real common bus;
After activating, test receives and tackles the data packet that the application program of this user model is sent to this USB host controller, to judge whether to exist an end of test information of this universal serial bus device to be measured;
If do not receive this end of test information, then continue to receive and tackle the data packet that the application program of this user model is sent to this USB host controller; And
After receiving this end of test information, stop this test procedure and return the application program of a test result, and finish this test the interface of designed real common bus to this user model.
7. USB host controller method for rapidly testing according to claim 6 is characterized in that, this step of obtaining the control of a USB host controller further comprises following steps:
Search this USB host controller;
Obtain a universe unique identifier of this USB host controller;
Obtain an information set of this USB host controller by this universe unique identifier;
Obtain the total interface information of this USB host controller by this information set;
Obtain the title of all universal serial bus device interfaces by this total interface information;
Obtain the access path of this USB host controller; And
Bind a USB (universal serial bus) filtering module and this USB host controller, directly send instruction to activate or to stop this test to this USB (universal serial bus) filtering module the interface of designed real common bus with application program by this user model.
8. USB host controller method for rapidly testing according to claim 7, it is characterized in that, this binds a USB (universal serial bus) filtering module and this USB host controller, directly sends instruction with the application program by this user model to this USB (universal serial bus) filtering module and further comprises following steps to activate or to stop this step to the test of the interface of designed real common bus:
Search a list of devices database, to obtain the information of all universal serial bus devices;
Obtain a well-determined access key value of this USB host controller by the information of these all universal serial bus devices; And
By the mode of adding mark, bind this USB (universal serial bus) filtering module and this USB host controller, to set up the data path of binding at this list of devices database.
9. USB host controller method for rapidly testing according to claim 6 is characterized in that, this step of setting up a dummy general serial bus apparatus further comprises following steps:
Activate a bus enumeration procedure, to obtain a device descriptor of this dummy general serial bus apparatus;
Be provided with and store an address of this dummy general serial bus apparatus, with as the basis of after this communicating by letter; And
Obtain a configuration descriptor of this dummy general serial bus apparatus.
10. USB host controller method for rapidly testing according to claim 6, it is characterized in that, after receiving this end of test information, stop this test procedure and return the application program of a test result, and finish this step and further comprise following steps: remove the binding of this USB host controller and this USB (universal serial bus) filtering module the test of the interface of designed real common bus to this user model.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100749523A CN100462936C (en) | 2006-04-25 | 2006-04-25 | Universal serial bus host controller rapid testing system and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100749523A CN100462936C (en) | 2006-04-25 | 2006-04-25 | Universal serial bus host controller rapid testing system and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101063952A CN101063952A (en) | 2007-10-31 |
CN100462936C true CN100462936C (en) | 2009-02-18 |
Family
ID=38964985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100749523A Expired - Fee Related CN100462936C (en) | 2006-04-25 | 2006-04-25 | Universal serial bus host controller rapid testing system and method thereof |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100462936C (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446623A (en) * | 2008-12-25 | 2009-06-03 | 北京中星微电子有限公司 | Testing method and testing system of USB controller |
CN102866946A (en) * | 2012-08-15 | 2013-01-09 | 深圳市同洲电子股份有限公司 | Method and device for testing reading/writing function |
CN108228399A (en) * | 2016-12-14 | 2018-06-29 | 浙江舜宇智能光学技术有限公司 | USB device automatic checkout equipment and its method |
CN109117390B (en) * | 2018-08-09 | 2021-10-26 | 山东中孚安全技术有限公司 | Method and system for obtaining usb _ bus _ type symbolic address by Linux kernel module |
CN113079370B (en) * | 2021-03-31 | 2022-12-02 | 盛泰光电科技股份有限公司 | Camera module testing system and method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010018646A1 (en) * | 2000-02-28 | 2001-08-30 | Shigeru Nagashima | USB simulation apparatus and storage medium |
US6393588B1 (en) * | 1998-11-16 | 2002-05-21 | Windbond Electronics Corp. | Testing of USB hub |
US20020087585A1 (en) * | 2000-07-11 | 2002-07-04 | Rising Hawley K. | Fuzzy relations and graph structures for compact description and modification |
CN1369792A (en) * | 2000-07-14 | 2002-09-18 | 英业达股份有限公司 | Method and device for testing USB port |
-
2006
- 2006-04-25 CN CNB2006100749523A patent/CN100462936C/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6393588B1 (en) * | 1998-11-16 | 2002-05-21 | Windbond Electronics Corp. | Testing of USB hub |
US20010018646A1 (en) * | 2000-02-28 | 2001-08-30 | Shigeru Nagashima | USB simulation apparatus and storage medium |
US20020087585A1 (en) * | 2000-07-11 | 2002-07-04 | Rising Hawley K. | Fuzzy relations and graph structures for compact description and modification |
CN1369792A (en) * | 2000-07-14 | 2002-09-18 | 英业达股份有限公司 | Method and device for testing USB port |
Also Published As
Publication number | Publication date |
---|---|
CN101063952A (en) | 2007-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69829584T2 (en) | LOCALIZATION OF DEVICES AND SERVERN | |
CN103150238B (en) | A kind of service request processing method, simulated performance method of testing and device | |
CN100407664C (en) | Multi-network element emulation test system and implementation method | |
CN103621026B (en) | The method for interchanging data of virtual machine, device and system | |
CN104348673B (en) | A kind of method of commissioning, master control borad and business board | |
CN100462936C (en) | Universal serial bus host controller rapid testing system and method thereof | |
CN103139157B (en) | A kind of based on the network communication method of socket, Apparatus and system | |
CN105162512A (en) | Multi-channel satellite remote sensing data processing and storing system and test method | |
JP2003178222A (en) | Data converting method and device between business protocols and its processing program | |
CN105117345A (en) | Interface testing method and device for application program | |
CN112491653A (en) | Automatic test system and test method for communication equipment | |
CN102426548A (en) | Debugging method, debugger and debugging system for embedded system | |
CN106708748A (en) | Method and system for improving OpenStack block storage volume mounting performance | |
CN109491679A (en) | A kind of CPLD online upgrading method and device | |
CN105471955A (en) | Writing method of distributed file system, client device and distributed file system | |
CN102480383B (en) | A kind of log information message processing method and device | |
CN102201922A (en) | Data charging method and relevant apparatus | |
CN113641450A (en) | Cloud management system and management method for private cloud | |
CN106878990A (en) | A kind of information-pushing method and device | |
CN101853179B (en) | Universal distributed dynamic operation technology for executing task decomposition based on plug-in unit | |
CN1609819B (en) | Test method for computer external equipment interface | |
CN106257257A (en) | A kind of detect the method for optical module planisphere, device and virtual vector analyser | |
CN101094484B (en) | Interactive testing device for data of smart card, and method for testing quality of network by using the smart card | |
CN100555241C (en) | Realize the method for bare nucleus software debugging in a kind of polycaryon processor | |
CN109388598A (en) | A kind of information processing method and general-purpose serial bus USB cluster server |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090218 Termination date: 20190425 |
|
CF01 | Termination of patent right due to non-payment of annual fee |