Password keyboard usb communication anomaly recovery method and system
Abstract
The present invention relates to the technical field of USB communications, and provides a password keyboard USB communication anomaly recovery method and system. The method comprises the following steps: various underlying drive modules of a password keyboard insert command numbers in respective communication data; determine whether communication is abnormal or not; if yes, the various underlying drive modules of the password keyboard determine whether data needs to be retransmitted; if yes, the underlying drive modules transmit original data again with the same command numbers; a connecting device determines whether the command numbers of the received data are same or not; if yes, discard repetitively received data, or otherwise, receive the data. According to the technical solution of the present invention, various underlying drive modules perform error processing; the short-time disconnection problem due to the fact that communication is interfered is resolved; design of a communication protocol can be simplified; and thus, by means of a command serial number mechanism, the problem of asynchronous or repetitive operation of both communication sides due to the fact that same commands are repetitively received and transmitted can be prevented.

Term
No projected expiry on record.
- Priority
- Filed
- Published
- Today
8 claims: 2 independent, 6 dependent
- 1一种密码键盘USB通信异常恢复方法,其特征在于,包括以下步骤:密码键盘各底层驱动模块,在各自的通信数据中插入命令号;判断密码键盘与连接设备的通信是否异常,若是,则密码键盘各底层驱动模块以及连接设备,判断是否需要重发数据;若需要重发数据,则所述底层驱动模块,以相同的命令号再次发送原数据;连接设备判断接收到的数据的命令号是否一致,若是,则数据重复接收,丢弃重复接收数据,若否,则接收该数据。
- 2根据权利要求1所述的密码键盘USB通信异常恢复方法,其特征在于,在所述底层驱动模块,以相同的命令号再次发送原数据之前,还包括步骤:判断数据重发次数是否超过预设的最大重发次数,若是,则发送超时,并更新命令号,若否,则以相同的命令号再次发送原数据。
- 3根据权利要求1所述的密码键盘USB通信异常恢复方法,其特征在于,所述密码键盘与连接设备的通信异常包括数据发送失败和数据接收超时。
- 4根据权利要求1所述的密码键盘USB通信异常恢复方法,其特征在于,密码键盘各底层驱动模块所发送的通信数据中,还插入有与各底层驱动模块对应的模块号。
- 5一种密码键盘USB通信异常恢复系统,其特征在于,包括插入单元、第一判断单元、第二判断单元、重发单元和接收单元;所述插入单元用于密码键盘各底层驱动模块,在各自的通信数据中插入命令号;所述第一判断单元用于判断密码键盘与连接设备的通信是否异常;所述第二判断单元用于在第一判断单元判定通信异常时,密码键盘各底层驱动模块,判断是否需要重发数据;所述重发单元用于在第二判断单元判定需要重发数据时,所述底层驱动 模块,以相同的命令号再次发送原数据;所述接收单元用于连接设备判断接收到的数据的命令号是否一致,若是,则数据重复接收,丢弃重复接收数据,若否,则接收该数据。
- 6根据权利要求5所述的密码键盘USB通信异常恢复系统,其特征在于,所述重发单元还用于在以相同的命令号再次发送原数据之前,判断数据重发次数是否超过预设的最大重发次数,若是,则发送超时,并更新命令号,若否,则以相同的命令号再次发送原数据。
- 7根据权利要求5所述的密码键盘USB通信异常恢复系统,其特征在于,所述密码键盘与连接设备的通信异常包括数据发送失败和数据接收超时。
- 8根据权利要求5所述的密码键盘USB通信异常恢复系统,其特征在于,所述插入单元还用于在密码键盘各底层驱动模块所发送的通信数据中,插入有与各底层驱动模块对应的模块号。
Independent claims8
82 paragraphs, as filed
Method and system for recovering abnormal USB communication of cipher keyboard
Technical field
0001The invention relates to the technical field of USB communication, in particular to a method and system for recovering abnormal USB communication of a password keyboard.
Background technique
0002The password keyboard is one of the indispensable computer peripherals of the financial cash register system. It is widely used in communication, government, transportation, government, industry and commerce, taxation, supermarkets and other service industries. It is used in conjunction with banking systems, POS machines and management systems. It is used to enter the password. In the existing password keyboard, in addition to the password input module, it also integrates a signature board module, a sound wave module, and a scanning module. During the communication process, the connection between the terminal and the external password keyboard is normal, but due to hardware interference or the influence of the surrounding environment, the terminal and the external password keyboard are temporarily disconnected, and then the normal situation is restored immediately. Although the connection with the external password keyboard is normal, the communication service has been disconnected.
0003In the prior art, the POS host is mainly connected to an external password keyboard through a USB port, and communication business data transmission is carried out through USB. During the communication copying process, the POS host and the password keyboard are interfered and the USB is disconnected, which leads to the communication process. It appears that each underlying driver module fails to receive the response data and returns a timeout error, which causes the application program to be interrupted due to non-human interference, which affects the normal operation of the application program.
0004<u style="single">Summary of the invention</u>
0005For this reason, it is necessary to provide a USB communication recovery method and system, which is used to solve the problem that the existing USB devices are interrupted for a short time due to interference, resulting in communication abnormalities and interruptions.
0006In order to achieve the above-mentioned purpose, the inventor provides a method for recovering abnormal USB communication of a password keyboard, and the method for recovering abnormal USB communication of a password keyboard includes the following steps:
0007Each low-level drive module of the password keyboard inserts the command number in the respective communication data;
0008Determine whether the communication between the password keyboard and the connected device is abnormal.
0009If the data needs to be retransmitted, the underlying driver module sends the original data again with the same command number;
0010The connecting device judges whether the command numbers of the received data are consistent, if so, the data is received repeatedly, discarding the repeated received data, if not, then the data is received.
0011Further, before the bottom layer driver module sends the original data again with the same command number, it also includes the steps:
0012Judge whether the number of data retransmissions exceeds the preset maximum number of retransmissions. If it is, the transmission will time out and the command number will be updated. If not, the original data will be sent again with the same command number.
0013Further, the abnormal communication between the password keyboard and the connected device includes data transmission failure and data reception timeout.
0014Further, the communication data sent by each bottom driver module of the password keyboard is also inserted with a module number corresponding to each bottom driver module.
0015In order to achieve the above object, the inventor also provides a password keyboard USB communication abnormal recovery system, the password keyboard USB communication abnormal recovery system, including an insertion unit, a first judgment unit, a second judgment unit, a retransmission unit, and a receiving unit;
0016The insertion unit is used for each bottom layer drive module of the password keyboard, and the command number is inserted in the respective communication data;
0017The first judging unit is used to judge whether the communication between the password keyboard and the connected device is abnormal;
0018The second judging unit is used to judge whether the data needs to be retransmitted when the first judging unit judges that the communication is abnormal.
0019The retransmission unit is used to send the original data again with the same command number when the second judgment unit determines that the data needs to be retransmitted, the underlying drive module;
0020The receiving unit is used for the connection device to determine whether the command numbers of the received data are consistent, if so, the data is received repeatedly, discarding the repeated received data, and if not, the data is received.
0021Further, the retransmission unit is also used to determine whether the number of data retransmissions exceeds the preset maximum number of retransmissions before sending the original data again with the same command number. Otherwise, send the original data again with the same command number.
0022Further, the abnormal communication between the password keyboard and the connected device includes data transmission failure and data reception timeout.
0023Further, the insertion unit is also used for inserting a module number corresponding to each bottom driving module into the communication data sent by each bottom driving module of the password keyboard.
0024Different from the prior art, the above technical solution password keyboard USB communication abnormal recovery method and system when the communication is abnormal, each bottom layer driver module determines whether the data needs to be retransmitted, and each bottom driver retransmits the data to solve the communication abnormal problem. When sending data, each bottom-level driver module introduces a command number to the sending message, and the same data is sent with the same command number, thereby avoiding repeated processing of the same command and synchronizing the command processing status of the two parties in the communication; this technical solution consists of each bottom-level driver module Error handling can solve the problem of communication being interrupted and disconnected for a short time. It can simplify the design of the communication protocol, and use the command sequence number mechanism to prevent repeated receiving and sending of the same command, causing the communication parties to be out of synchronization or repeated operations.
Description of the drawings
0025Figure 1 is a flowchart of a method for recovering from a USB communication abnormality of a password keyboard according to a specific embodiment;
0026Figure 2 is a flowchart of a specific embodiment of the connection device sending data;
0027Figure 3 is a specific embodiment of the connection device data receiving response processing flow;
0028Figure 4 is a specific embodiment of the connected device event receiving response processing flow;
0029Fig. 5 is a block diagram of modules of the system for recovering from a USB communication abnormality of a password keyboard according to a specific embodiment.
0030Description of reference signs:
003110. Insert the unit;
003220. The first judgment unit;
003330. The second judgment unit;
003440. Retransmission unit;
003550. Receiving unit.
Detailed ways
0036In order to describe in detail the technical content, structural features, achieved objectives and effects of the technical solution, the following detailed descriptions are given in conjunction with specific embodiments and accompanying drawings.
0037Please refer to FIG.
0038In S101, each bottom layer driving module of the password keyboard and the connecting device, insert the command number in the respective communication data. Wherein, the connecting device is the device connected to the password keyboard. In this embodiment, the connecting device is preferably a POS machine, and the password keyboard includes a numeric keyboard module, a signature board module, and a scanner module, each module Each includes a hardware circuit and a corresponding underlying drive module, where the numeric keyboard module is used to obtain digital information such as the entered password, the signature board module is used to obtain information such as the user's signature, and the scanning gun is used to scan one-dimensional code Or QR code to be barcode information. The digital keyboard module, the signature board module and the scanning gun module all have independent data processing capabilities, can realize data receiving and sending functions, and each module shares a USB communication interface.
0039When each bottom driver module normally communicates with the connected device (that is, the host side), a command number is inserted into the data sent. In order to distinguish different data, the command number of different data is different. For example, the sent data can increase the command number in the order of sending.
0040S102: Determine whether the communication between the password keyboard and the connected device is abnormal, and if it is, then each bottom layer driver module of the password keyboard and the connected device are judged whether it is necessary to resend the data. Among them, the types of communication abnormalities include data transmission failure and data reception timeout. When the password keyboard fails to send data to the connected device, or the connected device receives overtime, the password keyboard needs to resend the data to the connection; and when the connected device fails to send or receives overtime, the connected device needs to resend the data.
0041S103. If the data needs to be retransmitted, the bottom drive module and the connecting device send the original data again with the same command number. In this technical solution, the underlying drive modules of the numeric keyboard module, the signature board module and the scanner module all support a data retransmission mechanism, and the maximum number of retransmissions is preset. When the data response sent by the bottom-level drive modules expires, and the number of retransmissions does not exceed the maximum number of retransmissions, the data is sent again with the same command number.
0042S104. Connect the device and the underlying drive module to determine whether the command numbers of the received data are consistent. If so, the data is received repeatedly, discarding the repeated received data, and if not, the data is received.
0043In this embodiment, each bottom-level driver retransmits the data to solve the communication abnormal problem. When re-sending the data, each bottom-level driver module introduces a command number to the sent message, and the same data is sent with the same command number, thereby avoiding the same command. Repeat processing, and synchronize the command processing status of both parties in communication. In this technical solution, the USB communication interface protocol is only responsible for the basic data transmission functions such as data transmission and reception, and is not responsible for the judgment of data retransmission. The design of the communication protocol also uses the introduction of a command sequence number mechanism to prevent repeated receiving and sending of the same command, causing the communication parties to be out of synchronization or repeated operations.
0044Please refer to Figure 2, which is a flow chart of data sent by the connected device when the communication exception recovery method described above is used for communication. Connecting devices to send data involves the following steps:
0045S201, the connected device judges whether the response after the sent data is timed out, if not, the communication is normal, and a response is returned, and if it is timed out, go to step S202;
0046S202, determine whether data retransmission is supported, and if not, go to step S205; if data retransmission is supported, go to step S203;
0047S203, judge whether the number of data retransmissions is full, if yes, go to step S205, if not, go to step S204;
0048S204, the command number remains unchanged, and the data is retransmitted; after the data is retransmitted, it returns to step S201;
0049S205, update the command number and then send the next data, and the communication timeout exits.
0050Please refer to Figure 3 for the connection device data reception response processing flow when the communication exception recovery method described above is used for communication. The connected device data receiving response processing flow includes:
0051S301, determine whether the data retransmission mechanism is supported, if yes, go to step S302, if not, go to step S305; process the response data, update the command number, that is, the command number plus 1;
0052S302, extract the command number of the data, and then go to step S303;
0053S303, determine whether the command number is repeated, that is, whether it is consistent, if yes, go to step S304, if not, go to step S305;
0054S304, the data is received repeatedly, and the repeatedly received data is discarded;
0055S305. Process the response data and update the command number, that is, the command number plus one.
0056In the above-mentioned embodiment, in the communication data sent by each bottom driver module of the password keyboard, the module number corresponding to each bottom driver module is also inserted. For example, the module number of the numeric keyboard is 1 and the module of the signature board is 2. The data sent by each bottom driver module includes the command number and the module number at the same time. In an embodiment, the format of the data sent by the underlying driver module is: protocol header+protocol length+module number+command number+specific service data of each module command+count number+check+protocol end.
0057In addition to uploading data to the connected device, the password keyboard also uploads an event instruction to the connected device. The event instruction specifically refers to sending an instruction to the connected device requesting the connected device to perform a corresponding operation. When uploading an event instruction, an event number is inserted in the event instruction, and the event number is the same as the command number in the foregoing embodiment in terms of function. Please refer to Figure 4 for the processing flow of receiving and responding to the connected device event when the communication exception recovery method described above is used for communication. The connected device event receiving response processing flow is similar to the data receiving response processing flow, including:
0058S401. Determine whether the retransmission mechanism is supported, if yes, go to S402, if not, go to S405;
0059S402, extract the event number of the event instruction; then go to step S403;
0060S403. Determine whether the event number is correct (that is, whether the event number is repeated), if it is wrong, go to S406, if it is correct, go to S404;
0061S404, return a response, save the event number, and go to 405;
0062S405: Call back the event to the upper application;
0063S406: The data corresponding to the event number is repeated data, and the repeated received data is discarded.
0064It can be seen that in the above embodiment, the command number is inserted into the communication data. When the communication is abnormal, the bottom driver modules of the password keyboard are used to determine whether the data needs to be retransmitted, and the same data is retransmitted with the same command number. , By judging the command number to identify whether the data is duplicate data, which effectively solves the problem of the password keyboard receiving and sending the same data repeatedly when the communication is interrupted for a short time, causing the communication parties to be out of synchronization or repeated operations.
0065Please refer to FIG. 5, an embodiment of a password keyboard USB communication abnormal recovery system, the password keyboard USB communication abnormal recovery system includes an inserting unit 10, a first judging unit 20, a second judging unit 30, a retransmission unit 40, and a receiving unit 50 .
0066The inserting unit 10 is used for each bottom layer driving module and connecting device of the password keyboard, and inserting the command number in the respective communication data. The password keyboard includes a numeric keyboard module, a signature board module, and a scanner module. Each module includes a hardware circuit and a corresponding underlying drive module. The numeric keyboard module is used to obtain digital information such as the entered password. The module is used to obtain information such as the user's signature, and the scanning gun is used to scan one-dimensional code or two-dimensional code to be barcode information. When each bottom driver module normally communicates with the connected device (that is, the host side), a command number is inserted into the data sent. In order to distinguish different data, the command number of different data is different. For example, the sent data can increase the command number in the order of sending.
0067The first judgment unit 20 is used to judge whether the communication between the password keyboard and the connected device is abnormal; the second judgment unit 30 is used to judge whether the communication between the password keyboard and the connected device is abnormal when the first judgment unit determines that the communication is abnormal. Whether the data needs to be retransmitted; among them, the types of communication abnormalities include data transmission failure and data reception timeout. When the password keyboard fails to send data to the connected device, or the connected device receives overtime, the password keyboard needs to resend the data to the connection; and when the connected device fails to send or receives overtime, the connected device needs to resend the data.
0068The retransmission unit 40 is used to send the original data again with the same command number when the second judgment unit determines that the data needs to be retransmitted. In this technical solution, the underlying drive modules of the numeric keyboard module, the signature board module and the scanner module all support a data retransmission mechanism, and the maximum number of retransmissions is preset. When the data response sent by the bottom-level drive modules expires, and the number of retransmissions does not exceed the maximum number of retransmissions, the data is sent again with the same command number.
0069The receiving unit 50 is used to connect the device and the underlying drive module to determine whether the command numbers of the received data are consistent. If so, the data is received repeatedly, discarding the repeated received data, and if not, the data is received.
0070In this embodiment, each bottom-level driver retransmits the data to solve the communication abnormal problem. When re-sending the data, each bottom-level driver module introduces a command number to the sent message, and the same data is sent with the same command number, thereby avoiding the same command. Repeat processing, and synchronize the command processing status of both parties in communication. The technical solution can simplify the design of the communication protocol, and use the command sequence number mechanism to prevent the repeated receiving and sending of the same command, causing the problem of out-of-synchronization or repeated operation between the two communication parties.
0071The inserting unit is also used for inserting the module number corresponding to each bottom driving module into the communication data sent by each bottom driving module of the password keyboard. For example, the module number of the numeric keyboard is 1 and the module of the signature board is 2. The data sent by each bottom driver module includes the command number and the module number at the same time. In one embodiment, the format of the data sent by the underlying driver module is: protocol header+protocol length+module number+command number+specific service data of each module command+count number+check+protocol end.
0072It should be noted that in this article, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply one of these entities or operations. There is any such actual relationship or order between. Moreover, the terms "include", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device that includes a series of elements not only includes those elements, but also includes those elements that are not explicitly listed. The other elements listed, or also include the inherent elements of this process, method, article or terminal equipment. Without more restrictions, the elements defined by the sentence "including..." or "including..." are not excluded from the process, method, article or terminal that includes the elements. There are other elements in the equipment. In addition, in this article, "greater than", "less than", "exceeds", etc. are understood as not including the number; "above", "below", "within", etc. are understood as including the number.
0073Those skilled in the art should understand that the foregoing embodiments can be provided as methods, devices, or computer program products. These embodiments may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. All or part of the steps in the methods involved in each of the above embodiments can be completed by instructing relevant hardware by a program, and the program can be stored in a storage medium readable by a computer device for executing the method described in each of the above embodiments. All or part of the steps described. The computer equipment includes, but is not limited to: personal computers, servers, general-purpose computers, special-purpose computers, network devices, embedded devices, programmable devices, smart mobile terminals, smart home devices, wearable smart devices, vehicle-mounted smart devices, etc.; The storage medium includes but not limited to: RAM, ROM, magnetic disk, magnetic tape, optical disk, flash memory, U disk, mobile hard disk, memory card, memory stick, network server storage, network cloud storage, etc.
0074The foregoing embodiments are described with reference to the flowcharts and/or block diagrams of the methods, devices (systems), and computer program products according to the embodiments. It should be understood that each process and/or block in the flowchart and/or block diagram, and the combination of processes and/or blocks in the flowchart and/or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to the processor of the computer device to generate a machine, so that the instructions executed by the processor of the computer device are generated for implementing one or more processes in the flowchart and/or one block or more in the block diagram. The device with the function specified in the box.
0075These computer program instructions can also be stored in a computer device readable memory that can guide the computer device to work in a specific manner, so that the instructions stored in the computer device readable memory produce a manufactured product that includes the instruction device, and the instruction device is implemented in the process Figure a process or multiple processes and/or a block diagram of the functions specified in a block or multiple blocks.
0076These computer program instructions can also be loaded on the computer device, so that a series of operation steps are performed on the computer device to produce computer-implemented processing, so that the instructions executed on the computer device are provided for implementing a process or multiple processes in the flowchart. And/or the steps of the functions specified in one block or multiple blocks in the block diagram.
0077Although the foregoing embodiments have been described, once those skilled in the art know the basic creative concept, they can make additional changes and modifications to these embodiments, so the foregoing is only the implementation of the present invention For example, this does not limit the scope of patent protection of the present invention. Any equivalent structure or equivalent process transformation made by using the content of the description and drawings of the present invention, or directly or indirectly applied to other related technical fields, are included in the same principle. The invention is within the scope of patent protection.
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office | Category | Cited during | Relevant claims |
|---|---|---|---|---|---|
| CN106375064A | Cites | China | PX | International search | 1-8 |
| CN106407065A | Cites | China | PX | International search | 1-8 |
| CN201111079Y | Cites | China | A | International search | 1-8 |
| US6708247B1 | Cites | United States of America | A | International search | 1-8 |
| US6721332B1 | Cites | United States of America | X | International search | 1-8 |
3 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2016107851738 | China | – | |
| 201610785173 | China | A |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| CN106375064A | China | A | |
| WO2018040879A1This record | World Intellectual Property Organization (WIPO) | A1 | |
| CN106375064B | China | B |
Numbers
- Publication
- 2018/040879
- Application
- 96824
Titles5
- English
- PASSWORD KEYBOARD USB COMMUNICATION ANOMALY RECOVERY METHOD AND SYSTEM
- French
- PROCÉDÉ ET SYSTÈME DE RÉCUPÉRATION D'ANOMALIE DE COMMUNICATION USB PAR CLAVIER DE MOT DE PASSE
- Chinese
- 一种密码键盘USB通信异常恢复方法及系统
- Unlabeled
- 一种密码键盘USB通信异常恢复方法及系统
- Unlabeled
- Method and system for recovering abnormal USB communication of cipher keyboard
Classification
- CPC, 2
- H04L1/08
- H04L1/18
- IPC, 2
- H04L1 08
- H04L1 18
Designated states151
- Regional, 80
- Albania
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Croatia
- Hungary
- Ireland
- Iceland
- Italy
- Lithuania
- Luxembourg
- Latvia
- Monaco
and 56 moreShow fewer
- North Macedonia
- Malta
- Netherlands (Kingdom of the)
- Norway
- Poland
- Portugal
- Romania
- Serbia
- Sweden
- Slovenia
- Slovakia
- San Marino
- Türkiye
- Burkina Faso
- Benin
- Central African Republic
- Congo
- Côte d’Ivoire
- Cameroon
- Gabon
- Guinea
- Equatorial Guinea
- Guinea-Bissau
- Comoros
- Mali
- Mauritania
- Niger
- Senegal
- Chad
- Togo
- Botswana
- Ghana
- Gambia
- Kenya
- Liberia
- Lesotho
- Malawi
- Mozambique
- Namibia
- Rwanda
- Sudan
- Sierra Leone
- Sao Tome and Principe
- Eswatini
- United Republic of Tanzania
- Uganda
- Zambia
- Zimbabwe
- Armenia
- Azerbaijan
- Belarus
- Kyrgyzstan
- Kazakhstan
- Russian Federation
- Tajikistan
- Turkmenistan
- National, 71
- United Arab Emirates
- Antigua and Barbuda
- Angola
- Australia
- Bosnia and Herzegovina
- Barbados
- Bahrain
- Brunei Darussalam
- Brazil
- Belize
- Canada
- Chile
- China
- Colombia
- Costa Rica
- Cuba
- Djibouti
- Dominica
- Dominican Republic
- Algeria
- Ecuador
- Egypt
- Grenada
- Georgia
and 47 moreShow fewer
- Guatemala
- Honduras
- Indonesia
- Israel
- India
- Iran (Islamic Republic of)
- Jordan
- Japan
- Cambodia
- Saint Kitts and Nevis
- Democratic People’s Republic of Korea
- Republic of Korea
- Kuwait
- Lao People’s Democratic Republic
- Saint Lucia
- Sri Lanka
- Libya
- Morocco
- Republic of Moldova
- Montenegro
- Madagascar
- Mongolia
- Mexico
- Malaysia
- Nigeria
- Nicaragua
- New Zealand
- Oman
- Panama
- Peru
- Papua New Guinea
- Philippines
- Qatar
- Saudi Arabia
- Seychelles
- Singapore
- El Salvador
- Syrian Arab Republic
- Thailand
- Tunisia
- Trinidad and Tobago
- Ukraine
- United States of America
- Uzbekistan
- Saint Vincent and the Grenadines
- Viet Nam
- South Africa