EP4174668B1 - Communication interface adapter, method for dynamic pid assignment, and method for automatically diagnosing peripheral device and recovering peripheral device found to be in abnormal operation - Google Patents
Communication interface adapter, method for dynamic pid assignment, and method for automatically diagnosing peripheral device and recovering peripheral device found to be in abnormal operation Download PDFInfo
- Publication number
- EP4174668B1 EP4174668B1 EP22168197.6A EP22168197A EP4174668B1 EP 4174668 B1 EP4174668 B1 EP 4174668B1 EP 22168197 A EP22168197 A EP 22168197A EP 4174668 B1 EP4174668 B1 EP 4174668B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- communication interface
- peripheral device
- pid
- adapters
- adapter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/266—Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Definitions
- the disclosure relates to an adapter, and more particularly to a communication interface adapter that is electrically connected between a computer device and a peripheral device for controlling signal transmission between the computer device and the peripheral device.
- US2019/235593 A1 discloses an earphone connected to the USB-C downstream port connector, wherein the user can use the charger on another USB-C downstream port connector to charge the smart phone. This is implemented by using multiple power switches and a data signal switch which is controller by a microprocessor to dynamically establish connections with the upstream USB-C port.
- US2007/299650 A1 discloses a method for changing operation of a device comprising: sending target device descriptors to the device's device emulator, which processes and stores the descriptors as the current descriptors in memory, and the device emulator responding to a query from a host simulating operation of the target device.
- Computer systems that are used in retail, transportation and public areas are usually composed of a terminal computer and one or more peripheral devices, such as a printer, a barcode scanner, a webcam, a programmable keyboard, etc. Most of these peripheral devices are connected to the terminal computer using communication interfaces, for example but not limited to, the universal serial bus (USB).
- the terminal computer is usually installed with various application programs that are self-developed by a manufacturer of the terminal computer or developed by independent software developers for commercial or industrial applications.
- the application program needs an application programming interface (API) provided by a supplier of the peripheral device to command the peripheral device to perform power on, power off, restart, or other actions.
- API application programming interface
- an object of the disclosure is to provide a communication interface adapter (for example but not limited to, a USB adapter) that can control signal transmission from a computer device to a peripheral device, so a software program of the computer device can control, through the communication interface adapter, any peripheral device that adopts the same communication interface as the communication interface adapter, without being limited to whether a supplier of the peripheral device has provided a corresponding API for use by a developer of the software program.
- a communication interface adapter for example but not limited to, a USB adapter
- the communication interface adapter includes a first communication interface to be electrically connected to the computer device, a second communication interface to be electrically connected to the peripheral device, a microcontroller, a communication interface hub electrically connected to the first communication interface and the microcontroller, and a switch unit electrically connected between the communication interface hub and the second communication interface.
- the switch unit is controlled by the microcontroller to make or break connection between the communication interface hub and the second communication interface.
- a further object of the invention is to provide a method of dynamic product identification (PID) assignment, which is applicable when a computer device is connected to multiple communication interface adapters.
- the method can solve a problem that may occur when the communication interface adapters have the same default PID that are assigned during production. The problem may cause an application program executed by the computer device to submit instructions to wrong peripheral devices.
- each of the communication interface adapters includes a first communication interface electrically connected to the computer device, a second communication interface electrically connected to a peripheral device, a microcontroller storing a PID of the communication interface adapter, a communication interface hub electrically connected to the first communication interface and the microcontroller, and a switch unit electrically connected between the communication interface hub and the second communication interface.
- the switch unit is controlled by the microcontroller to make or break connection between the communication interface hub and the second communication interface.
- the method includes steps of: by the computer device, reading a peripheral device list that is stored in the computer device, the peripheral device list containing the PID of each of the communication interface adapters; by an identification module of the computer device, obtaining the PIDs of the communication interface adapters based on the peripheral device list, and, upon determining that the PIDs of at least two of the communication interface adapters are identical, assigning a replacement PID which is different from the PIDs of said the communication interface adapters, to one of the at least two of the communication interface adapters through a control module executed by the computer device, so as to replace the PID stored in said one of the at least two of the communication interface adapters with the replacement PID; by the computer device, updating the peripheral device list by using the replacement PID to replace the PID of said one of the at least two of the communication interface adapters contained in the peripheral device list; and by the identification module, recording, based on the peripheral device list thus updated and with respect to each peripheral device among those of the peripheral devices that are each connected to one
- a communication interface adapter 1 according to this disclosure is shown to be adapted to control signal transmission between a computer device 2 and a peripheral device 3.
- the communication interface adapter 1 is exemplified as a universal serial bus (USB) adapter whose communication interface is a USB interface (i.e., an interface compliant with the USB standard), but this disclosure is not limited in this respect.
- USB universal serial bus
- the communication interface adapter 1 is adapted to be connected to a computer device 2 and a peripheral device 3 (e.g., a USB device whose communication interface is the USB interface), and includes a first communication interface 11 (e.g., a USB connector) that is electrically connected to the computer device 2, a second communication interface 12 (e.g., a USB connector) that is electrically connected to the peripheral device 3, a microcontroller 13, a communication interface hub 14 (e.g., a USB hub) that is electrically connected to the first connector 11 and the microcontroller 13, and a switch unit 15 that is electrically connected between the communication interface hub 14 and the second communication interface 12.
- the switch unit 15 is electrically connected to the microcontroller 13, and is controlled by the microcontroller 13 to make or break some electrical connections between the communication interface hub 14 and the second communication interface 12.
- the microcontroller 13 stores a product identification (PID) (referred to as “controller-stored PID”) of the communication interface adapter 1.
- PID product identification
- the communication interface hub 14 receives, from the computer device 2, a first communication interface control signal (referred to as “first control signal” hereinafter) that contains a PID (referred to as “computer-provided PID”) and a reset instruction, and transmits the first control signal to the microcontroller 13.
- the microcontroller 13 Upon receipt of the first control signal and upon determining that the computer-provided PID is identical to the controller-stored PID (which confirms that the communication interface adapter 1 is the intended recipient of the first control signal), the microcontroller 13 controls operation of the switch unit 15 based on the reset instruction included in the first control signal, so as to break at least one of the electrical connections between the communication interface hub 14 and second communication interface 12 and then re-establish the same in order to restart the peripheral device 3 that is electrically connected to the communication interface adapter 1.
- the first communication interface 11 includes a power terminal VCC1, a ground terminal GND1 and at least one data signal terminal.
- the second communication interface 12 includes a power terminal VCC2, a ground terminal GND2 and at least one data signal terminal.
- each of the first communication interface 11 and the second communication interface 12 is exemplified as a USB connector, and thus includes two data signal terminals (referred to as a first signal terminal D1+ and a second signal terminal D1- for the first communication interface 11, and as a first signal terminal D2+ and a second signal terminal D2- for the second communication interface 12), but this disclosure is not limited in this respect.
- the communication interface hub 14 is electrically connected to the power terminal VCC2, the first signal terminal D2+, the second signal terminal D2- and the ground terminal GND2 respectively through a power signal path L0, a first signal path L1, a second signal path L2 and a ground signal path L3.
- the switch unit 15 includes a power switch SW0, a first signal switch SW1 and a second signal switch SW2.
- the power switch SW0 is disposed on the power signal path L0, and is controlled by the microcontroller 13 to make or break signal transmission on the power signal path L0.
- the first signal switch SW1 is disposed on the first signal path L1, and is controlled by the microcontroller 13 to make or break signal transmission on the first signal path L1.
- the second signal switch SW2 is disposed on the second signal path L2, and is controlled by the microcontroller 13 to make or break signal transmission on the second signal path L2.
- a power signal outputted by the computer device 2 will be supplied to the peripheral device 3 through the first communication interface 11, the communication interface hub 14, the power signal path L0 and the second communication interface 12 when the power switch SW0 is in a conducting state
- a communication interface signal (e.g., a USB signal) outputted by the computer device 2 will be provided to the peripheral device 3 through the first communication interface 11, the communication interface hub 14, the first and second signal paths L1, L2, and the second communication interface 12 when the first and second signal switches SW1, SW2 are in the conducting state, so operation of the peripheral device 3 can be controlled by the computer device 2.
- the power signal and the communication interface signal are also transmitted to the microcontroller 13 through the communication interface hub 14 and signal lines between the communication interface hub 14 and the microcontroller 13, as shown in FIG. 1 .
- a processor e.g., a central processing unit (CPU), not shown
- a control module 21 e.g., a software program installed in the computer device 2
- the control module 21 generates the first control signal
- the reset instruction contained in the first control signal requests that a reset action be performed with respect to the power signal (i.e., stopping supply of the power signal and then resupplying the power signal to the peripheral device 3).
- the control module 21 employs a driver program (e.g., a USB driver) that is installed or built in an operating system of the computer device 2 to transmit the first control signal to the microcontroller 13 through the first communication interface 11 and the communication interface hub 14 of the communication interface adapter 1.
- a driver program e.g., a USB driver
- the microcontroller 13 Upon determining that the reset instruction contained in the first control signal requests that the reset action be performed with respect to the power signal and that the computer-provided PID is identical to the controller-stored PID, the microcontroller 13 turns the power switch SW0 off and then on, so the power signal supplied to the peripheral device 3 is temporarily interrupted and then recovered, so as to restart the peripheral device 3. As a result, the peripheral device 3 is reset after restarting.
- the reset instruction of the first control signal generated by the control module 21 may request that a reset action be performed with respect to the communication interface signal transmitted to the peripheral device 3 (i.e., stopping transmission of the communication interface signal and then retransmitting the same to the peripheral device 3).
- the microcontroller 13 Upon receipt of the first control signal and upon determining that the reset instruction included in the first control signal requests that the reset action be performed with respect to the communication interface signal transmitted to the peripheral device 3 and that the computer-provided PID is identical to the controller-stored PID, the microcontroller 13 turns the first signal switch SW1 and the second signal switch SW2 off simultaneously and then on simultaneously, so as to restart the peripheral device 3, making the peripheral device 3 receive the communication interface signal through the first signal path L1 and the second signal path L2 again.
- the first signal switch SW1 and the second signal switch SW2 may be omitted from the communication interface adapter 1 that is electrically connected to the peripheral device 3 because restarting the peripheral device 3 can be done by controlling only the power switch SW0; if the power of the peripheral device 3 is not supplied by the computer device 2, the power switch SW0 may be omitted from the communication interface adapter 1 that is electrically connected to peripheral device 3 because restarting the peripheral device 3 can be done by controlling only the first signal switch SW1 and the second signal switch SW2.
- the application program may be configured to include the control module 21, so the computer device 2 can execute the control module 21 to enable the application program to restart the peripheral device 3 through the communication interface adapter 1 that interconnects the computer device 2 and the peripheral device 3.
- the microcontroller 13 when the microcontroller 13 detects that the communication interface adapter 1 is being electrically connected to the computer device 2 (e.g., detecting receipt of the power signal from the computer device 2), the microcontroller 13 automatically controls the power switch SW0, the first signal switch SW1 and the second signal switch SW2 to be in the conducting state, so as to ensure that the peripheral device 3 is electrically connected to the computer device 2 through the communication interface adapter 1 when the peripheral device 3 is electrically connected to the communication interface adapter 1.
- the microcontroller 13 supports a monitoring mechanism, such as a watchdog mechanism (e.g., including a watchdog timer), the monitoring mechanism may issue a restart signal to the microcontroller 13 upon detecting that a main program that is being executed by the microcontroller 13 has an error, so as to restart the microcontroller 13 to recover the microcontroller 13 to a normal operation state.
- the microcontroller 13 is configured to automatically control the power switch SW0, the first signal switch SW1 and the second signal switch SW2 to be in the conducting state when the microcontroller 13 restarts.
- FIG. 2 exemplarily illustrates a case where multiple peripheral devices 3 are electrically connected to the computer device 2 respectively through multiple communication interface adapters 1 of this embodiment. It is noted that the first and second communication interfaces 11, 12 of each of the communication interface adapters 1 are not shown in FIGS. 2 and 4 to 7 for the sake of clarity.
- the peripheral devices 3 are exemplified as a peripheral device 3A and a peripheral device 3B
- the communication interface adapters 1 are exemplified as a communication interface adapter 1A and a communication interface adapter 1B.
- Each of the peripheral devices 3A, 3B is electrically connected to the corresponding one of the communication interface adapters 1A, 1B that are electrically and respectively connected to a first communication interface hub (e.g., a first USB hub) and a second communication interface hub (e.g., a second USB hub).
- the first and second communication interface hubs are electrically connected to a root communication interface hub which is controlled by the control module 21.
- the first communication interface hub, the second communication interface hub and the root communication interface hub are built in the computer device 2, but this disclosure is not limited in this respect.
- the computer device 2 may classify the peripheral device 3A and the microcontroller 13 of the communication interface adapter 1A as devices pertaining to the communication interface hub 14 of the communication interface adapter 1A, and classify the peripheral device 3B and the microcontroller 13 of the communication interface adapter 1B as devices pertaining to the communication interface hub 14 of the communication interface adapter 1B. Since the microcontrollers 13 of the communication interface adapters 1A, 1B are devices pertaining to the communication interface hubs 14 of the communication interface adapters 1A, 1B, which are USB hubs in this embodiment, each of the microcontrollers 13 is assigned a PID (i.e., the controller-stored PID) according to the USB standard.
- PID i.e., the controller-stored PID
- the first control signal generated by the control module 21 should include the reset instruction and the computer-provided PID that is identical to the PID "002" stored in the microcontroller 13 of the communication interface adapter 1B.
- the microcontroller 13 of the communication interface adapter 1B Upon receipt of the first control signal and upon determining that the computer-provided PID is identical to the controller-stored PID of the communication interface adapter 1B, the microcontroller 13 of the communication interface adapter 1B controls operation of the switch unit 15 of the communication interface adapter 1B based on the reset instruction included in the first control signal to restart the peripheral device 3B.
- the communication interface adapters 1 may be assigned the same PID (e.g., a default PID) during production, so the microcontrollers 13 of the communication interface adapters 1 that are electrically connected to the computer device 2 may have identical PIDs.
- each of the controller-stored PIDs of the communication interface adapters 1 should be unique (i.e., the PIDs of devices that are electrically connected to the computer device 2 should be different from each other) .
- the application program may further include an identification module 22 that, when being executed by the computer device 2, causes the computer device 2 to implement a method of dynamic PID assignment.
- an embodiment of the method of dynamic PID assignment according to this disclosure is illustrated to be adapted for application on the communication interface adapters 1 that have identical PIDs.
- a device that is connected to the computer device 2 will automatically transmit various descriptors that describe its characteristics and required configurations (e.g., device descriptor, configuration descriptor, string descriptor, interface descriptor, endpoint descriptor, device qualifier, other speed configuration, interface power, etc.) to the computer device 2.
- the descriptors include a device descriptor that contains a PID of the device. As exemplified in FIG.
- each of the communication interface adapters 1A, 1B, 1C will transmit a respective device descriptor to the computer device 2, and the respective device descriptor includes the controller-stored PID of the corresponding one of the communication interface adapters 1A, 1B, 1C.
- the computer device 2 establishes a peripheral device list according to the descriptors received from all of the devices that are directly (e.g., the communication interface adapters 1A, 1B, 1C) or indirectly (e.g., the peripheral devices 3A, 3B, 3C that are respectively connected to the communication interface adapters 1A, 1B, 1C) connected to the computer device 2.
- the peripheral device list may contain information of all the devices and their descriptors (including the device descriptors).
- the computer device 2 further establishes a topology (e.g., a USB topology) that is related to the communication interface and that defines connection relationship among all the devices connected to the computer device 2.
- a topology e.g., a USB topology
- step S31 after the computer device 2 is powered on and establishes the peripheral device list, the identification module 22 automatically reads the peripheral device list stored in the computer device 2, and thus obtains the PIDs (i.e., the controller-stored PIDs) of the communication interface adapters 1A, 1B, 1C based on the peripheral device list.
- the PIDs i.e., the controller-stored PIDs
- step S32 the identification module 22 determines whether some of the PIDs of the communication interface adapters 1A, 1B, 1C are identical. The flow goes to step S33 when the identification module 22 determines that the PIDs of at least two of the communication interface adapters 1 are identical, and ends when otherwise. In FIG.
- each of the PIDs of the communication interface adapters 1A, 1B, 1C is exemplified to be "123" (i.e., the "at least two of the communication interface adapters 1" include the communication interface adapters 1A, 1B, 1C), so two of the communication interface adapters 1A, 1B, 1C (which are exemplified as the communication interface adapters 1B, 1C in the following descriptions) each need to be assigned a different and unique PID.
- step S33 the identification module 22 assigns replacement PIDs respectively to the communication interface adapters 1B, 1C, so that each of the communication interface adapters 1B, 1C uses the respective replacement PID to replace the original controller-stored PID, thereby making each of the communication interface adapters 1A, 1B, 1C have a unique PID.
- the identification module 22 first assigns a replacement PID, which is different from the PIDs of the communication interface adapters 1A, 1B, 1C, to the communication interface adapter 1B, so as to replace the PID stored in the communication interface adapter 1B with the replacement PID, as shown in FIG. 5 .
- the identification module 22 disables the communication interface adapters 1A, 1C (i.e., disabling the communication interface adapters 1 except for the communication interface adapter 1B), so the communication interface adapters 1A, 1C are unable to receive any signal from the computer device 2.
- the identification module 22 generates a replacement PID for the communication interface adapter 1B having at most a predetermined maximum number of bits by either a random manner (e.g., randomly generating the replacement PID that is different from the PIDs of the communication interface adapters 1A, 1C) or a predetermined manner (e.g., generating the replacement PID that is different from the PIDs of the communication interface adapters 1A, 1C based on a predetermined rule, such as selecting a smallest or greatest one of unoccupied PIDs from a series of PIDs starting from "001", or generating the replacement PID as "124" that is immediately next to the PIDs "123" of the communication interface adapters 1A, 1C).
- a random manner e.g., randomly generating the replacement PID that is different from the PIDs of the communication interface adapters 1A, 1C
- a predetermined manner e.g., generating the replacement PID that is different from the PIDs of the communication interface adapters 1A, 1
- the identification module 22 further determines whether the replacement PID thus generated is identical to any one of the PIDs that have been recorded in the peripheral device list. The identification module 22 may discard the replacement PID when it is determined that the replacement PID thus generated is identical to any one of the PIDs recorded in the peripheral device list, and regenerate another replacement PID until the replacement PID is different from all of the PIDs recorded in the peripheral device list.
- the replacement PID for the communication interface adapter 1B is exemplified as "001", and the identification module 22 transmits, through the control module 21, a second communication interface control signal (referred to as "second control signal” hereinafter) that includes a PID of a target device (i.e., the computer-provided PID, which is identical to the PID "123" of the communication interface adapter 1B herein), a control instruction, and computer-provided data that contains the replacement PID "001", to the microcontroller 13 of the communication interface adapter 1B.
- a target device i.e., the computer-provided PID, which is identical to the PID "123" of the communication interface adapter 1B herein
- control instruction i.e., the computer-provided PID
- the microcontroller 13 of the communication interface adapter 1B Upon receiving the second control signal and determining that the computer-provided PID is identical to the controller-stored PID of the communication interface adapter 1B (i.e., both being "123" in this case), the microcontroller 13 of the communication interface adapter 1B reads the control instruction and the computer-provided data that contains the replacement PID "001", and, after confirming that the control instruction requests that a replacement action be performed to replace the controller-stored PID "123" with the replacement PID "001", the microcontroller 13 of the communication interface adapter 1B stores the replacement PID "001" as the controller-stored PID (i.e., using the replacement PID "001" to replace the controller-stored PID "123") .
- the identification module 22 notifies the control module 21 to disable the microcontrollers 13 of the communication interface adapters 1A, 1B (i.e., disabling the communication interface adapters 1 except for the communication interface adapter 1C), so the communication interface adapters 1A, 1B are unable to receive any signal from the computer device 2. Then, the identification module 22 generates a replacement PID for the communication interface adapter 1C having at most the predetermined maximum number of bits by either the random manner or the predetermined manner.
- the replacement PID for the communication interface adapter 1C is exemplified as "002"
- the identification module 22 transmits, through the control module 21, the second control signal that includes a PID of a target device (i.e., the computer-provided PID, which is the same as the PID "123" of the communication interface adapter 1C herein), the control instruction, and computer-provided data that contains the replacement PID "002", to the microcontroller 13 of the communication interface adapter 1C.
- the microcontroller 13 of the communication interface adapter 1C Upon receiving the second control signal and determining that the computer-provided PID is identical to the controller-stored PID of the communication interface adapter 1C (i.e., both being "123” in this case), the microcontroller 13 of the communication interface adapter 1C stores the replacement PID "002" as the controller-stored PID (i.e., using the replacement PID "002" to replace the controller-stored PID "123"), as shown in FIG. 6 .
- the dynamic PID assignment for the communication interface adapters 1 is completed without breaking physical connections between the communication interface adapters 1 and the computer device 2, and each of the communication interface adapters 1A, 1B, 1C thus has a unique PID, and the computer device 2 can thus correctly provide instructions to the microcontroller 13 of a specified one of the communication interface adapters 1 based on the unique PID stored in the communication interface adapter 1.
- the operating system of the computer device 2 will find that the controller-stored PIDs of the communication interface adapters 1B, 1C have been changed, and then update the peripheral device list by using the replacement PIDs for the communication interface adapters 1B, 1C to replace the PIDs of the communication interface adapters 1B, 1C contained in the peripheral device list.
- step S34 the identification module 22 records, based on the peripheral device list thus updated and with respect to each peripheral device 3 that is connected to one of the communication interface adapters 1 (as opposed to a peripheral device 3 that is connected to the computer device 2 without a connection through a communication interface adapter 1), a correspondence between the peripheral device 3 and the communication interface adapter 1 in a correspondence table of the computer device 2.
- Table 1 illustrates an exemplary correspondence table for a case as shown in FIG.
- the microcontroller 13 of the communication interface adapter 1A corresponds to the peripheral device 3A that is electrically connected to the communication interface adapter 1A
- the microcontroller 13 of the communication interface adapter 1B corresponds to the peripheral device 3B that is electrically connected to the communication interface adapter 1B
- the microcontroller 13 of the communication interface adapter 1C corresponds to the peripheral device 3C that is electrically connected to the communication interface adapter 1C.
- peripheral devices 3D, 3E that are directly connected (i.e., without a connection through a communication interface adapter 1) to the computer device 2 (referred to as directly-connected peripheral devices 3D, 3E)
- the application program also records, based on the peripheral device list thus updated, each directly-connected peripheral device 3 in the correspondence table.
- the application program may further include a diagnosis module 23 that can, when executed by the computer device 2, use the correspondence table (or generate the correspondence table as described above) to perform automatic diagnosis on the peripheral devices 3A, 3B, 3C, 3D, 3E that are directly or indirectly connected to the computer device 2.
- a diagnosis module 23 that can, when executed by the computer device 2, use the correspondence table (or generate the correspondence table as described above) to perform automatic diagnosis on the peripheral devices 3A, 3B, 3C, 3D, 3E that are directly or indirectly connected to the computer device 2.
- FIG. 8 which is not within the scope of protection, an embodiment of a method for automatically diagnosing a peripheral device according to this disclosure is provided. The embodiment of the method is also adapted for recovering the peripheral device when the peripheral device is found to be in abnormal operation.
- step S81 the diagnosis module 23 periodically monitors a status of each of the peripheral devices 3 that is recorded in the correspondence table.
- the diagnosis module 23 may read and detect operation information of the peripheral devices 3 through the operating system of the computer device 2.
- the diagnosis module 23 determines whether the peripheral device 3 is operating abnormally. For example, the diagnosis module 23 may determine whether the peripheral device 3 cannot be detected, whether the peripheral device 3 cannot be identified, whether an error related to a driver program of the peripheral devices 3 has been detected, whether the peripheral device 3 is operating intermittently, etc. If any one of the abovementioned determinations is affirmative, the diagnosis module 23 determines that the peripheral device 3 is operating abnormally, and the flow goes to step S83 for the peripheral device 3.
- step S83 the diagnosis module 23 determines, based on the correspondence table, whether the peripheral device 3 that is operating abnormally has a corresponding communication interface adapter 1.
- the flow goes to step S84 when the determination of step S83 is affirmative (e.g., the peripheral device 3 that is operating abnormally is the peripheral device 3B, which has a corresponding communication interface adapter 1B), and goes to step S85 when otherwise, which means that the peripheral device 3 that is operating abnormally is a directly-connected peripheral device, which is exemplified as the peripheral device 3D hereinafter.
- step S84 the diagnosis module 23 finds out, based on the correspondence table, the communication interface adapter 1 that is connected to the peripheral device 3 which is operating abnormally.
- the peripheral device 3 that is operating abnormally is exemplified as the peripheral device 3B
- the corresponding one of the communication interface adapters 1 is the communication interface adapters 1B.
- the diagnosis module 23 obtains the controller-stored PID of the communication interface adapter 1B from the peripheral device list, and transmits, through the control module 21 to the microcontroller 13 of the communication interface adapter 1B, the first control signal that contains the reset instruction and a computer-provided PID identical to the PID of the communication interface adapter 1B as recorded in the peripheral device list.
- the microcontroller 13 of the communication interface adapter 1B controls, based on the reset instruction, the peripheral device 3B that is connected to the communication interface adapter 1B and that is operating abnormally to restart, so as to recover the peripheral device 3B.
- step S85 the diagnosis module 23 notifies the operating system of the computer device 2 to use a built-in reset function to reset the directly-connected peripheral device 3D that is operating abnormally, so as to recover the peripheral device 3D to the normal operation state.
- the communication interface adapter 1 that is electrically connected between the computer device 2 and the peripheral device 3 enables the computer device 2 that executes the application program to submit instructions to the microcontroller 13 of the communication interface adapter 1, so as to control operation of the switch unit 15 to restart the peripheral device 3.
- the ability of the application program to control the peripheral device 3 is not limited to whether the supplier of the peripheral device 3 has provided a corresponding API for use by the developer of the application program.
- the embodiment of this disclosure further provides a method for automatically diagnosing the peripheral device 3, and, when the peripheral device 3 is found to be operating abnormally, the computer device 2 can make the peripheral device 3 perform hardware reset by restarting the peripheral device 3, thereby recovering the peripheral device 3 to the normal operation state.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
- Power Sources (AREA)
- Communication Control (AREA)
Description
- The disclosure relates to an adapter, and more particularly to a communication interface adapter that is electrically connected between a computer device and a peripheral device for controlling signal transmission between the computer device and the peripheral device.
-
US2019/235593 A1 , discloses an earphone connected to the USB-C downstream port connector, wherein the user can use the charger on another USB-C downstream port connector to charge the smart phone. This is implemented by using multiple power switches and a data signal switch which is controller by a microprocessor to dynamically establish connections with the upstream USB-C port. -
US2007/299650 A1 , discloses a method for changing operation of a device comprising: sending target device descriptors to the device's device emulator, which processes and stores the descriptors as the current descriptors in memory, and the device emulator responding to a query from a host simulating operation of the target device. - The application note from Future Technology Devices International Limited " Application Note AN_124 User Guide for FTDI FT_PROG utility, Version 1.6", explains how to use the FT_Prog utility software on a host computer, which provides a user interface to access any EEPROM used with an external FTDI USB to serial adapter devices. In particular how to reprogram arbitrary product identifier, PID and vendor identifier, VID fields.
- Computer systems that are used in retail, transportation and public areas are usually composed of a terminal computer and one or more peripheral devices, such as a printer, a barcode scanner, a webcam, a programmable keyboard, etc. Most of these peripheral devices are connected to the terminal computer using communication interfaces, for example but not limited to, the universal serial bus (USB). The terminal computer is usually installed with various application programs that are self-developed by a manufacturer of the terminal computer or developed by independent software developers for commercial or industrial applications. When an application program executed by the terminal computer needs to control one of the peripheral devices, the application program needs an application programming interface (API) provided by a supplier of the peripheral device to command the peripheral device to perform power on, power off, restart, or other actions.
- However, the above practice will make the program application unable to support some relevant peripheral devices on the market because supportability of the program application depends on whether the suppliers of the peripheral devices have provided corresponding APIs to the developer of the application program. An application program can only command those of the peripheral devices, the suppliers of which have provided corresponding APIs to the developer of the application program, to perform desired actions such as power on, power off or restart.
- Therefore, an object of the disclosure is to provide a communication interface adapter (for example but not limited to, a USB adapter) that can control signal transmission from a computer device to a peripheral device, so a software program of the computer device can control, through the communication interface adapter, any peripheral device that adopts the same communication interface as the communication interface adapter, without being limited to whether a supplier of the peripheral device has provided a corresponding API for use by a developer of the software program.
- According to the invention, the communication interface adapter includes a first communication interface to be electrically connected to the computer device, a second communication interface to be electrically connected to the peripheral device, a microcontroller, a communication interface hub electrically connected to the first communication interface and the microcontroller, and a switch unit electrically connected between the communication interface hub and the second communication interface. The switch unit is controlled by the microcontroller to make or break connection between the communication interface hub and the second communication interface.
- A further object of the invention is to provide a method of dynamic product identification (PID) assignment, which is applicable when a computer device is connected to multiple communication interface adapters. The method can solve a problem that may occur when the communication interface adapters have the same default PID that are assigned during production. The problem may cause an application program executed by the computer device to submit instructions to wrong peripheral devices. In the method, each of the communication interface adapters includes a first communication interface electrically connected to the computer device, a second communication interface electrically connected to a peripheral device, a microcontroller storing a PID of the communication interface adapter, a communication interface hub electrically connected to the first communication interface and the microcontroller, and a switch unit electrically connected between the communication interface hub and the second communication interface. The switch unit is controlled by the microcontroller to make or break connection between the communication interface hub and the second communication interface.
- As further object of the invention, the method includes steps of: by the computer device, reading a peripheral device list that is stored in the computer device, the peripheral device list containing the PID of each of the communication interface adapters; by an identification module of the computer device, obtaining the PIDs of the communication interface adapters based on the peripheral device list, and, upon determining that the PIDs of at least two of the communication interface adapters are identical, assigning a replacement PID which is different from the PIDs of said the communication interface adapters, to one of the at least two of the communication interface adapters through a control module executed by the computer device, so as to replace the PID stored in said one of the at least two of the communication interface adapters with the replacement PID; by the computer device, updating the peripheral device list by using the replacement PID to replace the PID of said one of the at least two of the communication interface adapters contained in the peripheral device list; and by the identification module, recording, based on the peripheral device list thus updated and with respect to each peripheral device among those of the peripheral devices that are each connected to one of the communication interface adapters, a correspondence between the peripheral device and the communication interface adapter in a correspondence table of the computer device.
- Other features and advantages of the disclosure will become apparent in the following detailed description of the embodiment(s) with reference to the accompanying drawings, of which:
-
FIG. 1 is a block diagram illustrating an embodiment of a communication interface adapter according to the disclosure; -
FIG. 2 is a block diagram illustrating that a computer device is electrically connected to two peripheral devices respectively through two communication interface adapters of this embodiment; -
FIG. 3 is a flow chart illustrating steps of an embodiment of a method of dynamic product identification (PID) assignment; -
FIG. 4 is a block diagram illustrating that the computer device is connected to three communication interface adapters having the same PID; -
FIG. 5 is a block diagram illustrating that one of the communication interface adapters is assigned a new PID; -
FIG. 6 is a block diagram illustrating that another one of the communication interface adapters is assigned another new PID; -
FIG. 7 , which is not within the scope of protection, is block diagram illustrating that three peripheral devices are connected to the computer device through the communication interface adapters, and two peripheral devices are connected to the computer device without a communication interface adapter in between; and -
FIG. 8 , which is not within the scope of protection, is a flow chart illustrating steps of an embodiment of a method for automatically diagnosing a peripheral device, and recovering the peripheral device when the peripheral device is found to be in abnormal operation. - Before the disclosure is described in greater detail, it should be noted that where considered appropriate, reference numerals or terminal portions of reference numerals have been repeated among the figures to indicate corresponding or analogous elements, which may optionally have similar characteristics.
- Referring to
FIG. 1 , an embodiment of acommunication interface adapter 1 according to this disclosure is shown to be adapted to control signal transmission between acomputer device 2 and aperipheral device 3. In this embodiment, thecommunication interface adapter 1 is exemplified as a universal serial bus (USB) adapter whose communication interface is a USB interface (i.e., an interface compliant with the USB standard), but this disclosure is not limited in this respect. Thecommunication interface adapter 1 is adapted to be connected to acomputer device 2 and a peripheral device 3 (e.g., a USB device whose communication interface is the USB interface), and includes a first communication interface 11 (e.g., a USB connector) that is electrically connected to thecomputer device 2, a second communication interface 12 (e.g., a USB connector) that is electrically connected to theperipheral device 3, amicrocontroller 13, a communication interface hub 14 (e.g., a USB hub) that is electrically connected to thefirst connector 11 and themicrocontroller 13, and aswitch unit 15 that is electrically connected between thecommunication interface hub 14 and thesecond communication interface 12. Theswitch unit 15 is electrically connected to themicrocontroller 13, and is controlled by themicrocontroller 13 to make or break some electrical connections between thecommunication interface hub 14 and thesecond communication interface 12. - The
microcontroller 13 stores a product identification (PID) (referred to as "controller-stored PID") of thecommunication interface adapter 1. Thecommunication interface hub 14 receives, from thecomputer device 2, a first communication interface control signal (referred to as "first control signal" hereinafter) that contains a PID (referred to as "computer-provided PID") and a reset instruction, and transmits the first control signal to themicrocontroller 13. Upon receipt of the first control signal and upon determining that the computer-provided PID is identical to the controller-stored PID (which confirms that thecommunication interface adapter 1 is the intended recipient of the first control signal), themicrocontroller 13 controls operation of theswitch unit 15 based on the reset instruction included in the first control signal, so as to break at least one of the electrical connections between thecommunication interface hub 14 andsecond communication interface 12 and then re-establish the same in order to restart theperipheral device 3 that is electrically connected to thecommunication interface adapter 1. - The
first communication interface 11 includes a power terminal VCC1, a ground terminal GND1 and at least one data signal terminal. Thesecond communication interface 12 includes a power terminal VCC2, a ground terminal GND2 and at least one data signal terminal. In this embodiment, each of thefirst communication interface 11 and thesecond communication interface 12 is exemplified as a USB connector, and thus includes two data signal terminals (referred to as a first signal terminal D1+ and a second signal terminal D1- for thefirst communication interface 11, and as a first signal terminal D2+ and a second signal terminal D2- for the second communication interface 12), but this disclosure is not limited in this respect. Thecommunication interface hub 14 is electrically connected to the power terminal VCC2, the first signal terminal D2+, the second signal terminal D2- and the ground terminal GND2 respectively through a power signal path L0, a first signal path L1, a second signal path L2 and a ground signal path L3. Theswitch unit 15 includes a power switch SW0, a first signal switch SW1 and a second signal switch SW2. The power switch SW0 is disposed on the power signal path L0, and is controlled by themicrocontroller 13 to make or break signal transmission on the power signal path L0. The first signal switch SW1 is disposed on the first signal path L1, and is controlled by themicrocontroller 13 to make or break signal transmission on the first signal path L1. The second signal switch SW2 is disposed on the second signal path L2, and is controlled by themicrocontroller 13 to make or break signal transmission on the second signal path L2. - Based on the above-mentioned configuration, a power signal outputted by the
computer device 2 will be supplied to theperipheral device 3 through thefirst communication interface 11, thecommunication interface hub 14, the power signal path L0 and thesecond communication interface 12 when the power switch SW0 is in a conducting state, and a communication interface signal (e.g., a USB signal) outputted by thecomputer device 2 will be provided to theperipheral device 3 through thefirst communication interface 11, thecommunication interface hub 14, the first and second signal paths L1, L2, and thesecond communication interface 12 when the first and second signal switches SW1, SW2 are in the conducting state, so operation of theperipheral device 3 can be controlled by thecomputer device 2. In addition, the power signal and the communication interface signal are also transmitted to themicrocontroller 13 through thecommunication interface hub 14 and signal lines between thecommunication interface hub 14 and themicrocontroller 13, as shown inFIG. 1 . - When a processor (e.g., a central processing unit (CPU), not shown) of the
computer device 2 executes a control module 21 (e.g., a software program installed in the computer device 2) to reset theperipheral device 3 that is electrically connected to thecommunication interface adapter 1, thecontrol module 21 generates the first control signal, and the reset instruction contained in the first control signal requests that a reset action be performed with respect to the power signal (i.e., stopping supply of the power signal and then resupplying the power signal to the peripheral device 3). Then, thecontrol module 21 employs a driver program (e.g., a USB driver) that is installed or built in an operating system of thecomputer device 2 to transmit the first control signal to themicrocontroller 13 through thefirst communication interface 11 and thecommunication interface hub 14 of thecommunication interface adapter 1. Upon determining that the reset instruction contained in the first control signal requests that the reset action be performed with respect to the power signal and that the computer-provided PID is identical to the controller-stored PID, themicrocontroller 13 turns the power switch SW0 off and then on, so the power signal supplied to theperipheral device 3 is temporarily interrupted and then recovered, so as to restart theperipheral device 3. As a result, theperipheral device 3 is reset after restarting. - In another case where the
peripheral device 3 that is electrically connected to thecommunication interface adapter 1 is powered by another power source instead of by the computer device 2 (for example, voltages required by some devices, such as a printer, may be higher than a voltage that can be provided through an USB interface), when thecomputer device 2 executes thecontrol module 21 to reset theperipheral device 3, the reset instruction of the first control signal generated by thecontrol module 21 may request that a reset action be performed with respect to the communication interface signal transmitted to the peripheral device 3 (i.e., stopping transmission of the communication interface signal and then retransmitting the same to the peripheral device 3). Upon receipt of the first control signal and upon determining that the reset instruction included in the first control signal requests that the reset action be performed with respect to the communication interface signal transmitted to theperipheral device 3 and that the computer-provided PID is identical to the controller-stored PID, themicrocontroller 13 turns the first signal switch SW1 and the second signal switch SW2 off simultaneously and then on simultaneously, so as to restart theperipheral device 3, making theperipheral device 3 receive the communication interface signal through the first signal path L1 and the second signal path L2 again. - In this embodiment, if the
peripheral device 3 is powered by thecomputer device 2, the first signal switch SW1 and the second signal switch SW2 may be omitted from thecommunication interface adapter 1 that is electrically connected to theperipheral device 3 because restarting theperipheral device 3 can be done by controlling only the power switch SW0; if the power of theperipheral device 3 is not supplied by thecomputer device 2, the power switch SW0 may be omitted from thecommunication interface adapter 1 that is electrically connected toperipheral device 3 because restarting theperipheral device 3 can be done by controlling only the first signal switch SW1 and the second signal switch SW2. - Therefore, when an application program developed by an independent software developer demands to restart a
peripheral device 3 but the supplier of theperipheral device 3 did not provide an API to the software developer, the application program may be configured to include thecontrol module 21, so thecomputer device 2 can execute thecontrol module 21 to enable the application program to restart theperipheral device 3 through thecommunication interface adapter 1 that interconnects thecomputer device 2 and theperipheral device 3. - In this embodiment, when the
microcontroller 13 detects that thecommunication interface adapter 1 is being electrically connected to the computer device 2 (e.g., detecting receipt of the power signal from the computer device 2), themicrocontroller 13 automatically controls the power switch SW0, the first signal switch SW1 and the second signal switch SW2 to be in the conducting state, so as to ensure that theperipheral device 3 is electrically connected to thecomputer device 2 through thecommunication interface adapter 1 when theperipheral device 3 is electrically connected to thecommunication interface adapter 1. - In a case that the
microcontroller 13 supports a monitoring mechanism, such as a watchdog mechanism (e.g., including a watchdog timer), the monitoring mechanism may issue a restart signal to themicrocontroller 13 upon detecting that a main program that is being executed by themicrocontroller 13 has an error, so as to restart themicrocontroller 13 to recover themicrocontroller 13 to a normal operation state. In order to ensure that theperipheral device 3 is electrically connected to thecomputer device 2 after themicrocontroller 13 of thecommunication interface adapter 1 restarts, themicrocontroller 13 is configured to automatically control the power switch SW0, the first signal switch SW1 and the second signal switch SW2 to be in the conducting state when themicrocontroller 13 restarts. -
FIG. 2 exemplarily illustrates a case where multipleperipheral devices 3 are electrically connected to thecomputer device 2 respectively through multiplecommunication interface adapters 1 of this embodiment. It is noted that the first and 11, 12 of each of thesecond communication interfaces communication interface adapters 1 are not shown inFIGS. 2 and4 to 7 for the sake of clarity. InFIG. 2 , theperipheral devices 3 are exemplified as aperipheral device 3A and aperipheral device 3B, and thecommunication interface adapters 1 are exemplified as acommunication interface adapter 1A and acommunication interface adapter 1B. Each of the 3A, 3B is electrically connected to the corresponding one of theperipheral devices 1A, 1B that are electrically and respectively connected to a first communication interface hub (e.g., a first USB hub) and a second communication interface hub (e.g., a second USB hub). The first and second communication interface hubs are electrically connected to a root communication interface hub which is controlled by thecommunication interface adapters control module 21. In this embodiment, the first communication interface hub, the second communication interface hub and the root communication interface hub are built in thecomputer device 2, but this disclosure is not limited in this respect. In this case, thecomputer device 2 may classify theperipheral device 3A and themicrocontroller 13 of thecommunication interface adapter 1A as devices pertaining to thecommunication interface hub 14 of thecommunication interface adapter 1A, and classify theperipheral device 3B and themicrocontroller 13 of thecommunication interface adapter 1B as devices pertaining to thecommunication interface hub 14 of thecommunication interface adapter 1B. Since themicrocontrollers 13 of the 1A, 1B are devices pertaining to thecommunication interface adapters communication interface hubs 14 of the 1A, 1B, which are USB hubs in this embodiment, each of thecommunication interface adapters microcontrollers 13 is assigned a PID (i.e., the controller-stored PID) according to the USB standard. - Assuming that the PIDs stored in the
microcontrollers 13 of the 1A, 1B are "001" and "002", respectively, when thecommunication interface adapters control module 21 that is included in the application program is operated to control, for example, theperipheral device 3B that is connected to thecommunication interface adapter 1B to restart, the first control signal generated by thecontrol module 21 should include the reset instruction and the computer-provided PID that is identical to the PID "002" stored in themicrocontroller 13 of thecommunication interface adapter 1B. Upon receipt of the first control signal and upon determining that the computer-provided PID is identical to the controller-stored PID of thecommunication interface adapter 1B, themicrocontroller 13 of thecommunication interface adapter 1B controls operation of theswitch unit 15 of thecommunication interface adapter 1B based on the reset instruction included in the first control signal to restart theperipheral device 3B. - In practice, the
communication interface adapters 1 may be assigned the same PID (e.g., a default PID) during production, so themicrocontrollers 13 of thecommunication interface adapters 1 that are electrically connected to thecomputer device 2 may have identical PIDs. However, in order to correctly control operation of a specified one of thecommunication interface adapters 1 that is electrically connected to thecomputer device 2, each of the controller-stored PIDs of thecommunication interface adapters 1 should be unique (i.e., the PIDs of devices that are electrically connected to thecomputer device 2 should be different from each other) . - Referring to
FIG. 4 , in order to ensure that, for each of thecommunication interface adapters 1 electrically connected to thecomputer device 2, the PID stored in themicrocontroller 13 thereof is unique, the application program may further include anidentification module 22 that, when being executed by thecomputer device 2, causes thecomputer device 2 to implement a method of dynamic PID assignment. Further referring toFIG. 3 , an embodiment of the method of dynamic PID assignment according to this disclosure is illustrated to be adapted for application on thecommunication interface adapters 1 that have identical PIDs. Usually, when thecomputer device 2 is powered on, a device that is connected to thecomputer device 2 will automatically transmit various descriptors that describe its characteristics and required configurations (e.g., device descriptor, configuration descriptor, string descriptor, interface descriptor, endpoint descriptor, device qualifier, other speed configuration, interface power, etc.) to thecomputer device 2. Specifically, the descriptors include a device descriptor that contains a PID of the device. As exemplified inFIG. 4 , after being electrically connected to thecomputer device 2, each of the 1A, 1B, 1C will transmit a respective device descriptor to thecommunication interface adapters computer device 2, and the respective device descriptor includes the controller-stored PID of the corresponding one of the 1A, 1B, 1C. Subsequently, thecommunication interface adapters computer device 2 establishes a peripheral device list according to the descriptors received from all of the devices that are directly (e.g., the 1A, 1B, 1C) or indirectly (e.g., thecommunication interface adapters 3A, 3B, 3C that are respectively connected to theperipheral devices 1A, 1B, 1C) connected to thecommunication interface adapters computer device 2. The peripheral device list may contain information of all the devices and their descriptors (including the device descriptors). Thecomputer device 2 further establishes a topology (e.g., a USB topology) that is related to the communication interface and that defines connection relationship among all the devices connected to thecomputer device 2. Hereinafter, the embodiment of the method of dynamic PID assignment as illustrated inFIG. 3 will be described with reference to the case illustrated inFIG. 4 . - In step S31, after the
computer device 2 is powered on and establishes the peripheral device list, theidentification module 22 automatically reads the peripheral device list stored in thecomputer device 2, and thus obtains the PIDs (i.e., the controller-stored PIDs) of the 1A, 1B, 1C based on the peripheral device list.communication interface adapters - In step S32, the
identification module 22 determines whether some of the PIDs of the 1A, 1B, 1C are identical. The flow goes to step S33 when thecommunication interface adapters identification module 22 determines that the PIDs of at least two of thecommunication interface adapters 1 are identical, and ends when otherwise. InFIG. 4 , each of the PIDs of the 1A, 1B, 1C is exemplified to be "123" (i.e., the "at least two of thecommunication interface adapters communication interface adapters 1" include the 1A, 1B, 1C), so two of thecommunication interface adapters 1A, 1B, 1C (which are exemplified as thecommunication interface adapters 1B, 1C in the following descriptions) each need to be assigned a different and unique PID.communication interface adapters - In step S33, the
identification module 22 assigns replacement PIDs respectively to the 1B, 1C, so that each of thecommunication interface adapters 1B, 1C uses the respective replacement PID to replace the original controller-stored PID, thereby making each of thecommunication interface adapters 1A, 1B, 1C have a unique PID. In this embodiment, thecommunication interface adapters identification module 22 first assigns a replacement PID, which is different from the PIDs of the 1A, 1B, 1C, to thecommunication interface adapters communication interface adapter 1B, so as to replace the PID stored in thecommunication interface adapter 1B with the replacement PID, as shown inFIG. 5 . In detail, theidentification module 22 disables the 1A, 1C (i.e., disabling thecommunication interface adapters communication interface adapters 1 except for thecommunication interface adapter 1B), so the 1A, 1C are unable to receive any signal from thecommunication interface adapters computer device 2. Then, theidentification module 22 generates a replacement PID for thecommunication interface adapter 1B having at most a predetermined maximum number of bits by either a random manner (e.g., randomly generating the replacement PID that is different from the PIDs of the 1A, 1C) or a predetermined manner (e.g., generating the replacement PID that is different from the PIDs of thecommunication interface adapters 1A, 1C based on a predetermined rule, such as selecting a smallest or greatest one of unoccupied PIDs from a series of PIDs starting from "001", or generating the replacement PID as "124" that is immediately next to the PIDs "123" of thecommunication interface adapters 1A, 1C). Thecommunication interface adapters identification module 22 further determines whether the replacement PID thus generated is identical to any one of the PIDs that have been recorded in the peripheral device list. Theidentification module 22 may discard the replacement PID when it is determined that the replacement PID thus generated is identical to any one of the PIDs recorded in the peripheral device list, and regenerate another replacement PID until the replacement PID is different from all of the PIDs recorded in the peripheral device list. Herein, the replacement PID for thecommunication interface adapter 1B is exemplified as "001", and theidentification module 22 transmits, through thecontrol module 21, a second communication interface control signal (referred to as "second control signal" hereinafter) that includes a PID of a target device (i.e., the computer-provided PID, which is identical to the PID "123" of thecommunication interface adapter 1B herein), a control instruction, and computer-provided data that contains the replacement PID "001", to themicrocontroller 13 of thecommunication interface adapter 1B. Upon receiving the second control signal and determining that the computer-provided PID is identical to the controller-stored PID of thecommunication interface adapter 1B (i.e., both being "123" in this case), themicrocontroller 13 of thecommunication interface adapter 1B reads the control instruction and the computer-provided data that contains the replacement PID "001", and, after confirming that the control instruction requests that a replacement action be performed to replace the controller-stored PID "123" with the replacement PID "001", themicrocontroller 13 of thecommunication interface adapter 1B stores the replacement PID "001" as the controller-stored PID (i.e., using the replacement PID "001" to replace the controller-stored PID "123") . - Subsequently, the
identification module 22 notifies thecontrol module 21 to disable themicrocontrollers 13 of the 1A, 1B (i.e., disabling thecommunication interface adapters communication interface adapters 1 except for thecommunication interface adapter 1C), so the 1A, 1B are unable to receive any signal from thecommunication interface adapters computer device 2. Then, theidentification module 22 generates a replacement PID for thecommunication interface adapter 1C having at most the predetermined maximum number of bits by either the random manner or the predetermined manner. Herein, the replacement PID for thecommunication interface adapter 1C is exemplified as "002", and theidentification module 22 transmits, through thecontrol module 21, the second control signal that includes a PID of a target device (i.e., the computer-provided PID, which is the same as the PID "123" of thecommunication interface adapter 1C herein), the control instruction, and computer-provided data that contains the replacement PID "002", to themicrocontroller 13 of thecommunication interface adapter 1C. Upon receiving the second control signal and determining that the computer-provided PID is identical to the controller-stored PID of thecommunication interface adapter 1C (i.e., both being "123" in this case), themicrocontroller 13 of thecommunication interface adapter 1C stores the replacement PID "002" as the controller-stored PID (i.e., using the replacement PID "002" to replace the controller-stored PID "123"), as shown inFIG. 6 . As a result, the dynamic PID assignment for thecommunication interface adapters 1 is completed without breaking physical connections between thecommunication interface adapters 1 and thecomputer device 2, and each of the 1A, 1B, 1C thus has a unique PID, and thecommunication interface adapters computer device 2 can thus correctly provide instructions to themicrocontroller 13 of a specified one of thecommunication interface adapters 1 based on the unique PID stored in thecommunication interface adapter 1. - After the dynamic PID assignment, the operating system of the
computer device 2 will find that the controller-stored PIDs of the 1B, 1C have been changed, and then update the peripheral device list by using the replacement PIDs for thecommunication interface adapters 1B, 1C to replace the PIDs of thecommunication interface adapters 1B, 1C contained in the peripheral device list.communication interface adapters - In step S34, the
identification module 22 records, based on the peripheral device list thus updated and with respect to eachperipheral device 3 that is connected to one of the communication interface adapters 1 (as opposed to aperipheral device 3 that is connected to thecomputer device 2 without a connection through a communication interface adapter 1), a correspondence between theperipheral device 3 and thecommunication interface adapter 1 in a correspondence table of thecomputer device 2. Table 1 illustrates an exemplary correspondence table for a case as shown inFIG. 7 , where themicrocontroller 13 of thecommunication interface adapter 1A corresponds to theperipheral device 3A that is electrically connected to thecommunication interface adapter 1A, themicrocontroller 13 of thecommunication interface adapter 1B corresponds to theperipheral device 3B that is electrically connected to thecommunication interface adapter 1B, and themicrocontroller 13 of thecommunication interface adapter 1C corresponds to theperipheral device 3C that is electrically connected to thecommunication interface adapter 1C. In addition, for some other 3D, 3E that are directly connected (i.e., without a connection through a communication interface adapter 1) to the computer device 2 (referred to as directly-connectedperipheral devices 3D, 3E), the application program also records, based on the peripheral device list thus updated, each directly-connectedperipheral devices peripheral device 3 in the correspondence table.Table 1 Adapter Control target Microcontroller of adapter 1APeripheral device 3AMicrocontroller of adapter 1BPeripheral device 3BMicrocontroller of adapter 1CPeripheral device 3CN/A Peripheral device 3DN/A Peripheral device 3E - Furthermore, as illustrated in
FIG. 7 , which is not within the scope of protection, the application program may further include adiagnosis module 23 that can, when executed by thecomputer device 2, use the correspondence table (or generate the correspondence table as described above) to perform automatic diagnosis on the 3A, 3B, 3C, 3D, 3E that are directly or indirectly connected to theperipheral devices computer device 2. Further referring toFIG. 8 , which is not within the scope of protection, an embodiment of a method for automatically diagnosing a peripheral device according to this disclosure is provided. The embodiment of the method is also adapted for recovering the peripheral device when the peripheral device is found to be in abnormal operation. - In step S81, the
diagnosis module 23 periodically monitors a status of each of theperipheral devices 3 that is recorded in the correspondence table. For example, thediagnosis module 23 may read and detect operation information of theperipheral devices 3 through the operating system of thecomputer device 2. - In step S82, with respect to each of the
peripheral devices 3, thediagnosis module 23 determines whether theperipheral device 3 is operating abnormally. For example, thediagnosis module 23 may determine whether theperipheral device 3 cannot be detected, whether theperipheral device 3 cannot be identified, whether an error related to a driver program of theperipheral devices 3 has been detected, whether theperipheral device 3 is operating intermittently, etc. If any one of the abovementioned determinations is affirmative, thediagnosis module 23 determines that theperipheral device 3 is operating abnormally, and the flow goes to step S83 for theperipheral device 3. - In step S83, the
diagnosis module 23 determines, based on the correspondence table, whether theperipheral device 3 that is operating abnormally has a correspondingcommunication interface adapter 1. The flow goes to step S84 when the determination of step S83 is affirmative (e.g., theperipheral device 3 that is operating abnormally is theperipheral device 3B, which has a correspondingcommunication interface adapter 1B), and goes to step S85 when otherwise, which means that theperipheral device 3 that is operating abnormally is a directly-connected peripheral device, which is exemplified as theperipheral device 3D hereinafter. - In step S84, the
diagnosis module 23 finds out, based on the correspondence table, thecommunication interface adapter 1 that is connected to theperipheral device 3 which is operating abnormally. Hereinafter, theperipheral device 3 that is operating abnormally is exemplified as theperipheral device 3B, and the corresponding one of thecommunication interface adapters 1 is thecommunication interface adapters 1B. Thediagnosis module 23 obtains the controller-stored PID of thecommunication interface adapter 1B from the peripheral device list, and transmits, through thecontrol module 21 to themicrocontroller 13 of thecommunication interface adapter 1B, the first control signal that contains the reset instruction and a computer-provided PID identical to the PID of thecommunication interface adapter 1B as recorded in the peripheral device list. - Upon receiving the first control signal and determining that the computer-provided PID is identical to the controller-stored PID of the
communication interface adapter 1B, themicrocontroller 13 of thecommunication interface adapter 1B controls, based on the reset instruction, theperipheral device 3B that is connected to thecommunication interface adapter 1B and that is operating abnormally to restart, so as to recover theperipheral device 3B. - In step S85, the
diagnosis module 23 notifies the operating system of thecomputer device 2 to use a built-in reset function to reset the directly-connectedperipheral device 3D that is operating abnormally, so as to recover theperipheral device 3D to the normal operation state. - In summary, the
communication interface adapter 1 that is electrically connected between thecomputer device 2 and theperipheral device 3 enables thecomputer device 2 that executes the application program to submit instructions to themicrocontroller 13 of thecommunication interface adapter 1, so as to control operation of theswitch unit 15 to restart theperipheral device 3. As a result, the ability of the application program to control theperipheral device 3 is not limited to whether the supplier of theperipheral device 3 has provided a corresponding API for use by the developer of the application program. In addition, the embodiment of this disclosure further provides a method for automatically diagnosing theperipheral device 3, and, when theperipheral device 3 is found to be operating abnormally, thecomputer device 2 can make theperipheral device 3 perform hardware reset by restarting theperipheral device 3, thereby recovering theperipheral device 3 to the normal operation state. - In the description above, for the purposes of explanation, numerous specific details have been set forth in order to provide a thorough understanding of the embodiment(s). It will be apparent, however, to one skilled in the art, that one or more other embodiments may be practiced without some of these specific details. It should also be appreciated that reference throughout this specification to "one embodiment," "an embodiment," an embodiment with an indication of an ordinal number and so forth means that a particular feature, structure, or characteristic may be included in the practice of the disclosure.
Claims (4)
- A method of dynamic product identification, PID, assignment, including a step of:providing a plurality of communication interface adapters (1) connected to a computer device (2), each of the communication interface adapters (1) including:a first communication interface (11) electrically connected to the computer device (2);a second communication interface (12) electrically connected to a peripheral device (3);a microcontroller (13);a communication interface hub (14) electrically connected to the first communication interface (11) and the microcontroller (13); anda switch unit (15) electrically connected between the communication interface hub (14) and the second communication interface (12), the switch unit (15) being controlled by the microcontroller (13) to make or break connection between the communication interface hub (14) and the second communication interface (12);the method being characterized in that the microcontroller (13) of each of the communication interface adapters (1) stores a PID of the communication interface adapter (1), and that the method further includes steps of:by the computer device (2), reading (S31) a peripheral device list that is stored in the computer device (2), the peripheral device list containing the PID of each of the communication interface adapters (1);by an identification module (22) of the computer device (2), obtaining the PIDs of the communication interface adapters (1) based on the peripheral device list, and, upon determining (S32) that the PIDs of at least two of the communication interface adapters (1) are identical, assigning (S33) a replacement PID which is different from the PIDs of said the communication interface adapters (1), to one of the at least two of the communication interface adapters (1) through a control module (21) executed by the computer device (2), so as to replace the PID stored in said one of the at least two of the communication interface adapters (1) with the replacement PID;by the computer device (2), updating the peripheral device list by using the replacement PID to replace the PID of said one of the at least two of the communication interface adapters (1) contained in the peripheral device list; andby the identification module (22), recording (S34), based on the peripheral device list thus updated and with respect to each peripheral device (3) among those of the peripheral devices (3) that are each connected to one of the communication interface adapters (1), a correspondence between the peripheral device (3) and the communication interface adapter (1) in a correspondence table of the computer device (2).
- The method of claim 1, wherein the at least two of the communication interface adapters (1) include a first communication interface adapter (1A), a second communication interface adapter (1B) and a third communication interface adapter (1C), and the step of assigning (S33) the replacement PID includes:disabling the at least two of the communication interface adapters (1) except for the first communication interface adapter (1A);generating the replacement PID;providing the replacement PID to the first communication interface adapter (1A), so that the PID stored in the first communication interface adapter (1A) is replaced by the replacement PID;disabling the at least two of the communication interface adapters (1) except for the second communication interface adapter (1B);generating another replacement PID that is different from the PIDs of the communication interface adapters (1); andproviding said another replacement PID to the second communication interface adapter (1B), so that the PID stored in the second communication interface adapter (1B) is replaced by said another replacement PID.
- The method of claim 1 or 2, further including a step of, by the identification module (22), recording, based on the peripheral device list thus updated, each directly-connected peripheral device that is connected to the computer device (2) without connection through a communication interface adapter (1) in the correspondence table.
- The method of claim 1, 2 or 3, wherein the step of updating the peripheral device list is performed upon the computer device (2) finding that the PID of said one of the at least two of the communication interface adapters (1) is changed.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110140288A TWI802065B (en) | 2021-10-29 | 2021-10-29 | Communication interface adapter capable of controlling power and signals of peripheral devices, method for dynamically assigning identification codes of communication interface adapter, and method for automatically diagnosing peripheral devices and repairing problems |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| EP4174668A1 EP4174668A1 (en) | 2023-05-03 |
| EP4174668C0 EP4174668C0 (en) | 2024-09-25 |
| EP4174668B1 true EP4174668B1 (en) | 2024-09-25 |
Family
ID=81580594
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP22168197.6A Active EP4174668B1 (en) | 2021-10-29 | 2022-04-13 | Communication interface adapter, method for dynamic pid assignment, and method for automatically diagnosing peripheral device and recovering peripheral device found to be in abnormal operation |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20230138408A1 (en) |
| EP (1) | EP4174668B1 (en) |
| TW (1) | TWI802065B (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP4478204A1 (en) * | 2023-04-28 | 2024-12-18 | Suzhou Metabrain Intelligent Technology Co., Ltd. | Hardware interface signal generation method and apparatus and electronic device |
| JP7559159B1 (en) * | 2023-08-01 | 2024-10-01 | レノボ・シンガポール・プライベート・リミテッド | Information processing device |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100444141C (en) * | 2003-05-13 | 2008-12-17 | 先进微装置公司 | System and method for connecting host to memory module through serial memory interconnect |
| US20080005262A1 (en) * | 2006-06-16 | 2008-01-03 | Henry Wurzburg | Peripheral Sharing USB Hub for a Wireless Host |
| US7752029B2 (en) * | 2006-06-23 | 2010-07-06 | Kyocera Mita Corporation | Method to change USB device descriptors from host to emulate a new device |
| US8417930B2 (en) * | 2010-04-26 | 2013-04-09 | Broadcom Corporation | Modular integrated circuit with uniform address mapping |
| US8386688B2 (en) * | 2010-04-29 | 2013-02-26 | Broadcom Corporation | Modular integrated circuit with common interface |
| US8799532B2 (en) * | 2011-07-07 | 2014-08-05 | Smsc Holdings S.A.R.L. | High speed USB hub with full speed to high speed transaction translator |
| US9804977B2 (en) * | 2015-04-28 | 2017-10-31 | Microchip Technology Incorporated | Universal serial bus smart hub |
| KR102391487B1 (en) * | 2015-12-15 | 2022-04-28 | 삼성전자주식회사 | Method for controlling path of charge and data communication and electronic device for the same |
| US10955888B2 (en) * | 2018-01-29 | 2021-03-23 | Via Labs, Inc. | Universal serial bus device and method for dynamically defining a power source or sink status for downstream facing ports |
| CN208782785U (en) * | 2018-05-31 | 2019-04-23 | 歌尔股份有限公司 | circuit board |
| US11513808B2 (en) * | 2019-06-28 | 2022-11-29 | Intel Corporation | Automatic switching and deployment of software or firmware based USB4 connection managers |
-
2021
- 2021-10-29 TW TW110140288A patent/TWI802065B/en active
-
2022
- 2022-03-31 US US17/710,590 patent/US20230138408A1/en not_active Abandoned
- 2022-04-13 EP EP22168197.6A patent/EP4174668B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| TW202318219A (en) | 2023-05-01 |
| US20230138408A1 (en) | 2023-05-04 |
| TWI802065B (en) | 2023-05-11 |
| EP4174668A1 (en) | 2023-05-03 |
| EP4174668C0 (en) | 2024-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20220365683A1 (en) | Method for using bmc as proxy nvmeof discovery controller to provide nvm subsystems to host | |
| US9182998B2 (en) | Remote bios update in system having multiple computers | |
| RU2155376C2 (en) | Method and device for initialization of data processing system | |
| CN103748569B (en) | System and method for driverless operation of USB devices | |
| CN105700901B (en) | A startup method, device and computer system | |
| US11314665B2 (en) | Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device | |
| CN102272723A (en) | System, apparatus, and method for fast startup of USB devices | |
| CN101373433A (en) | Method for updating BIOS and computer and system using the method | |
| RU2614569C2 (en) | Rack with automatic recovery function and method of automatic recovery for this rack | |
| US20180210783A1 (en) | Information processing apparatus, control method of the same, and storage medium | |
| EP4174668A1 (en) | Communication interface adapter, method for dynamic pid assignment, and method for automatically diagnosing peripheral device and recovering peripheral device found to be in abnormal operation | |
| EP3709149A1 (en) | Off-board flash memory | |
| CN117251333A (en) | A hard disk information acquisition method, device, equipment and storage medium | |
| CN119718996A (en) | Hot plug control method, hot plug system, medium and program product | |
| CN103634388A (en) | Method for processing restarting of controllers in storage server, related equipment and communication system | |
| CN114296995A (en) | Method, system, equipment and storage medium for autonomously repairing BMC by server | |
| CN117971272A (en) | Program upgrading method and electronic equipment | |
| CN108983695A (en) | A kind of master-slave switching method and device based on Complex Programmable Logic Devices | |
| US20190303329A1 (en) | Electronic device and operating method thereof | |
| US11768529B2 (en) | System and method for enabling power sharing in a multiport power sourcing device | |
| US11669399B2 (en) | System and method for fault identification and fault handling in a multiport power sourcing device | |
| CN109271191B (en) | Information processing method and electronic device | |
| CN115756648A (en) | Active recovery method and terminal for double-substrate management controller chip | |
| CN102760064A (en) | Network card updating device and method | |
| CN121029475B (en) | Server storage controller recovery methods, electronic devices |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20230329 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 43/0817 20220101ALI20240410BHEP Ipc: G06F 11/26 20060101ALI20240410BHEP Ipc: G06F 13/10 20060101ALI20240410BHEP Ipc: H04L 41/0806 20220101ALI20240410BHEP Ipc: G06F 9/4401 20180101ALI20240410BHEP Ipc: G06F 11/273 20060101ALI20240410BHEP Ipc: G06F 11/22 20060101ALI20240410BHEP Ipc: G06F 13/42 20060101ALI20240410BHEP Ipc: G06F 1/26 20060101ALI20240410BHEP Ipc: H04L 12/40 20060101ALI20240410BHEP Ipc: H04L 12/10 20060101ALI20240410BHEP Ipc: G06F 13/40 20060101ALI20240410BHEP Ipc: G06F 13/38 20060101AFI20240410BHEP |
|
| INTG | Intention to grant announced |
Effective date: 20240503 |
|
| GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602022006294 Country of ref document: DE |
|
| REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
| U01 | Request for unitary effect filed |
Effective date: 20241018 |
|
| U07 | Unitary effect registered |
Designated state(s): AT BE BG DE DK EE FI FR IT LT LU LV MT NL PT RO SE SI Effective date: 20241104 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20241225 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20241226 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20241225 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20241225 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20241225 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20241226 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20250125 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| U20 | Renewal fee for the european patent with unitary effect paid |
Year of fee payment: 4 Effective date: 20250428 |
|
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| 26N | No opposition filed |
Effective date: 20250626 |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: H13 Free format text: ST27 STATUS EVENT CODE: U-0-0-H10-H13 (AS PROVIDED BY THE NATIONAL OFFICE) Effective date: 20251125 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20250430 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20250413 |
|
| U20 | Renewal fee for the european patent with unitary effect paid |
Year of fee payment: 5 Effective date: 20260427 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20240925 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20260427 Year of fee payment: 5 |