Universal serial bus control apparatus, system, and method, device, non-transitory computer-readable storage medium, and product

By configuring a Universal Serial Bus device controller and a shared device address register within the BMC, the problem of high hardware resource consumption in the control of multiple USB devices is solved, achieving a low-cost and convenient unified control effect.

WO2026001088A1PCT designated stage Publication Date: 2026-01-02INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/082441
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-28
Filing Date
2025-03-13
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

In the existing technology, configuring an independent UDC module for each USB device leads to a significant increase in the hardware resource cost managed by the BMC, and cannot effectively reduce hardware resource consumption and maintenance costs.

Method used

The BMC is configured with a Universal Serial Bus device controller, a hub driver unit, and multiple device driver units. By sharing the device address register and control port, it enables unified control of multiple USB devices and uses timers for address switching and interactive management.

Benefits of technology

It enables efficient and unified control of multiple USB devices under a single UDC module, reducing hardware resource costs and maintenance costs, and improving resource utilization flexibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025082441_02012026_PF_FP_ABST
    Figure CN2025082441_02012026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of computers, and provides a universal serial bus (USB) control apparatus, system, and method, a device, a non-transitory computer-readable storage medium, and a product. The apparatus comprises a universal serial bus device controller (UDC), a universal serial bus device hub driving unit, and a plurality of universal serial bus device driving units. The universal serial bus device controller comprises a device address register and a control port, and is communicatively connected to a server host. The universal serial bus device controller is configured to: on the basis of an address switching time slice corresponding to the universal serial bus device hub driving unit and an address switching time slice corresponding to each universal serial bus device driving unit, switch a device address in the device address register; and, on the basis of the switched device address and the control port, control the universal serial bus device hub driving unit and each universal serial bus device driving unit to interact with the server host, thereby achieving low-cost and convenient unified control of multiple USB devices under a single UDC module.
Need to check novelty before this filing date? Find Prior Art

Description

Universal serial bus control device, system, method, equipment, non-transitory computer readable storage medium and product

[0001] Cross-reference to Related Applications

[0002] The present application claims priority to the Chinese patent application No. 202410853004.8, filed on June 28, 2024, and entitled “Universal serial bus control device, system, method, equipment, medium and product”, the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD

[0003] The present application relates to the field of computer technology, and in particular to a universal serial bus control device, system, method, equipment, non-transitory computer readable storage medium and product. BACKGROUND

[0004] Through the keyboard video mouse (KVM) function, the baseboard management controller (BMC) can virtually output a mouse keyboard, a network card, and a virtual media device, etc., thereby realizing remote control of a server host. This function greatly improves the remote management experience of the server and improves the operation and maintenance efficiency.

[0005] The implementation of the monitoring function is closely related to the universal serial bus device controller (UDC) module of the BMC. In the traditional design, independent UDC modules need to be configured inside the BMC for different types of USB devices to control the USB devices, so as to ensure that the communication between each USB device and the server host does not interfere with each other.

[0006] However, with the increasing demand for USB device functions in data centers, if the control of the USB devices continues to be implemented by configuring independent UDC modules for each USB device, the additional UDC hardware resources need to be increased to support each type of USB device function, thereby causing the hardware resource cost of the BMC management to increase significantly. SUMMARY

[0007] The application provides a universal serial bus control device, system, method, equipment, non-transitory computer readable storage medium and product, to solve the defect that the independent UDC module is configured for each USB device in the related art to realize the control of the USB device, and the cost of the hardware resources managed by the BMC is significantly increased, and to realize the unified control of the multiple USB devices at low cost and convenience.

[0008] The first aspect of the application provides a universal serial bus control device, the device is in communication connection with a server host, and the device comprises a universal serial bus device controller, a universal serial bus device hub driving unit, and a plurality of universal serial bus device driving units.

[0009] The universal serial bus device controller comprises a device address register and a control port shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units.

[0010] The universal serial bus device controller is configured to switch the device address in the device address register according to the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit, and to control the universal serial bus device hub driving unit and each universal serial bus device driving unit to interact with the server host according to the switched device address and the control port.

[0011] According to the universal serial bus control device provided by the application, the universal serial bus device controller further comprises a timer.

[0012] The universal serial bus device controller is configured to:

[0013] For the current interaction, it is judged whether the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit are triggered according to the current running state of the timer.

[0014] Among the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units, the current driving unit to be controlled is determined when the address switching time slice is triggered.

[0015] The device address in the device address register is switched to the device address of the current driving unit to be controlled to obtain a target device address.

[0016] The current driving unit to be controlled is controlled to interact with the server host according to the target device address and the control port.

[0017] The next driving unit to be controlled is iteratively controlled to interact with the server host according to the next running state of the timer.

[0018] According to the universal serial bus control device provided by the application, the universal serial bus device controller is further configured to:

[0019] According to the current running state of the timer, it is determined whether the timer is in the timeout state;

[0020] In the case of determining that the timer is in the timeout state, the cycle period to which the timer belongs is matched with the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit, respectively;

[0021] According to the matching result, it is determined whether the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit are triggered.

[0022] According to the universal serial bus control device provided by the application, the universal serial bus device controller is further configured to:

[0023] According to the current access state of the device address register, the current access permission information of the current driving unit to be controlled is determined;

[0024] In the case of determining that the current driving unit to be controlled has the permission to access the device address register according to the current access permission information of the current driving unit to be controlled, the device address in the device address register is switched to the device address of the current driving unit to be controlled, and a locking operation is performed on the device address register.

[0025] According to the universal serial bus control device provided by the application, the universal serial bus device controller is further configured to:

[0026] In the case of determining that the locking operation of the device address register is completed, a current task processing request initiated by a server host is received;

[0027] According to the target device address, the current task processing request is transmitted to the current driving unit to be controlled;

[0028] The first response information returned by the current driving unit to be controlled according to the current task processing request is transmitted to the server host;

[0029] In the case of determining that the server host receives the first response information, the locking operation on the device address register is released.

[0030] According to the universal serial bus control device provided by the application, the universal serial bus device controller is further configured to:

[0031] According to the current task processing request, the current request device address is obtained;

[0032] matching the current request device address with the target device address;

[0033] In the case of matching that the current request device address is consistent with the target device address, transmitting the current task processing request to the current to-be-controlled drive unit according to the target device address.

[0034] According to the universal serial bus control device provided by the application, the universal serial bus device controller is further configured to:

[0035] In the case of matching that the current request device address is inconsistent with the target device address, storing the current task processing request into the cache queue;

[0036] In the case of judging that the device address in the device address register is switched to the device address of the next to-be-controlled drive unit, continuing to match the current request device address with the device address of the next to-be-controlled drive unit switched from the device address register;

[0037] In the case of matching that the current request device address matches the device address of the next to-be-controlled drive unit, taking out the current task processing request from the cache queue and transmitting it to the next to-be-controlled drive unit.

[0038] According to the universal serial bus control device provided by the application, the universal serial bus device concentrator drive unit is configured to:

[0039] receiving a first enumeration request sent by a server host; the first enumeration request is used for enumerating the universal serial bus device concentrator drive unit;

[0040] according to the first enumeration request, returning second response information to the server host;

[0041] receiving a device address allocated by the server host to the universal serial bus device concentrator drive unit according to the second response information;

[0042] modifying the device address register to the device address of the universal serial bus device concentrator drive unit;

[0043] receiving a state acquisition command of the universal serial bus device drive unit sent by the server host;

[0044] in response to the state acquisition command, reporting the device states of the universal serial bus device drive units to the server host according to the device address of the universal serial bus device concentrator drive unit;

[0045] The receiving server host assigns a device address to each USB device driver unit according to the device state of each USB device driver unit, and transmits the device address of each USB device driver unit to each USB device driver unit.

[0046] According to the USB control device provided by the application, the USB device hub driver unit is further configured to:

[0047] For the current port device enumeration, the device address register is modified to the device address of the USB device hub driver unit;

[0048] The receiving server host sends a current state acquisition command of the current USB device driver unit;

[0049] In response to the current state acquisition command, the target device state of the current USB device driver unit is sent to the server host according to the device address of the USB device hub driver unit;

[0050] The device address register is cleared, and a second enumeration request of the current USB device driver unit is received from the server host according to the target device state;

[0051] The third response information returned by the current USB device driver unit according to the second enumeration request is sent to the server host;

[0052] The device address allocated by the server host to the current USB device driver unit according to the third response information is transmitted to the current USB device driver unit;

[0053] The device address register is modified to the device address of the USB device hub driver unit, and the next port device enumeration is iteratively executed until all USB device driver units are enumerated.

[0054] According to the USB control device provided by the application, the second response information includes the device type and the port number of the USB device hub driver unit.

[0055] The device address of the USB device hub driver unit is allocated by the server host according to the device type and the port number of the USB device hub driver unit.

[0056] According to the USB control device provided by the application, the second response information further includes the query time interval of each USB device driver unit.

[0057] The status acquisition command of the USB device driver unit is periodically sent according to a query time interval.

[0058] According to the USB control device provided by the application, for the USB device hub driver unit and each driver unit in the plurality of USB device driver units, the driver unit is configured with at least one port number;

[0059] The driver unit is configured to:

[0060] In the case of receiving a task processing request initiated by the server host, according to the task type and the data transmission mode corresponding to the task processing request, the target port number is acquired in the at least one port number;

[0061] According to the task operation mode corresponding to the target port number, the task processing request is processed, and the task processing result is returned to the server host.

[0062] According to the USB control device provided by the application, the port number of the driver unit is configured according to the device type of the driver unit.

[0063] According to the USB control device provided by the application, the port number of the input end of any driver unit is the same as the port number of the output port of any other driver unit except the any driver unit.

[0064] According to the USB control device provided by the application, the plurality of USB device driver units includes a human-computer interface driver unit, a network controller driver unit and a memory driver unit;

[0065] The human-computer interface driver unit is configured to drive a virtual human-computer interface device;

[0066] The network controller driver unit is configured to drive a virtual network device;

[0067] The memory driver unit is configured to drive a virtual memory.

[0068] The second aspect of the application further provides a USB control system, comprising any of the USB control devices and a server host as described above;

[0069] The USB control device and the server host are in communication connection.

[0070] The third aspect of the application further provides a USB control method, the method comprising:

[0071] According to the address switching time slice corresponding to the USB hub driving unit and the address switching time slice corresponding to each USB device driving unit, the device address in the device address register is switched;

[0072] According to the switched device address and the control port, the USB hub driving unit and each USB device driving unit are controlled to interact with the server host;

[0073] The device address register is a register shared between the USB hub driving unit and the plurality of USB device driving units in the USB device controller, and the control port is a port shared between the USB hub driving unit and the plurality of USB device driving units in the USB device controller.

[0074] According to the USB control method provided in the present application, according to the address switching time slice corresponding to the USB hub driving unit and the address switching time slice corresponding to each USB device driving unit, the device address in the device address register is switched, which includes:

[0075] For the current interaction, according to the current running state of the timer, it is judged whether the address switching time slice corresponding to the USB hub driving unit and the address switching time slice corresponding to each USB device driving unit are triggered;

[0076] Among the USB hub driving unit and the plurality of USB device driving units, the current driving unit to be controlled is determined when the address switching time slice is triggered;

[0077] The device address in the device address register is switched to the device address of the current driving unit to be controlled.

[0078] The fourth aspect of the present application further provides an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the USB control method as described above when executing the program.

[0079] The fifth aspect of the present application further provides a non-transitory computer readable storage medium, which stores a computer program, and the computer program is executed by the processor to implement the USB control method as described above.

[0080] The sixth aspect of the present application further provides a computer program product, which includes a computer program, and the computer program is executed by the processor to implement the USB control method as described above.

[0081] The universal serial bus control device, system, method, equipment, non-transitory computer readable storage medium and product provided by the application can effectively avoid allocating independent hardware resources for each USB device, even if there is only one UDC module, the unified control of multiple USB devices can be realized, the hardware resource cost consumed by one-to-one configuration of the UDC module is reduced, and the flexibility of resource utilization is improved, thereby realizing the unified control of multiple USB devices at low cost and conveniently. BRIEF DESCRIPTION OF DRAWINGS

[0082] In order to more clearly illustrate the technical solutions in the application or the related art, the drawings needed to be used in the embodiments or the related art description will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the application, and other drawings can be obtained by those skilled in the art without creative labor.

[0083] Fig. 1 is a structural schematic diagram of a USB software architecture provided by the related art.

[0084] Fig. 2 is a structural schematic diagram of a universal serial bus control device provided by the application.

[0085] Fig. 3 is a structural schematic diagram of a USB software architecture provided by the application.

[0086] Fig. 4 is a structural schematic diagram of a universal serial bus control device provided by the application.

[0087] Fig. 5 is a flowchart of address switching provided by the application.

[0088] Fig. 6 is a flowchart of address switching provided by the application.

[0089] Fig. 7 is a flowchart of device enumeration provided by the application.

[0090] Fig. 8 is a flowchart of a universal serial bus control method provided by the application.

[0091] FIG. 9 is a structural schematic diagram of an electronic device provided by the present application.

[0092] Ref No. 210: baseboard management controller; 211: universal serial bus device controller; 212: universal serial bus device hub driving unit; 213: universal serial bus device driving unit; 220: server host. DETAILED DESCRIPTION

[0093] For the purposes of the present application, the technical solutions and advantages will be more apparent, the technical solutions in the present application will be clearly and completely described below in conjunction with the drawings in the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative labor fall within the scope of the present application.

[0094] With the rapid development of cloud computing and big data technology, data centers, as the key infrastructure supporting these technologies, are increasing in size and complexity. Data centers are not only the hub of information processing and storage, but also the strong engine driving the development of modern information society. However, with the surge in data center traffic, it is particularly critical to ensure the high reliability, stability and availability of data centers. In this context, the core out-of-band management unit BMC of each server node in the data center plays a crucial role. BMC is responsible for temperature monitoring, firmware upgrade, fault diagnosis and remote monitoring through KVM, and has an irreplaceable role in ensuring the stable operation of servers, so it has received widespread attention from the server industry.

[0095] In particular, through the KVM function, BMC can virtually output a mouse keyboard, network card and virtual media device, etc., thereby realizing remote control of the server host. This function greatly improves the remote management experience of the server and improves the operation and maintenance efficiency.

[0096] The implementation of the monitoring function is closely related to the UDC module of the BMC. FIG. 1 is a structural schematic diagram of a USB software architecture provided by the related art; as shown in FIG. 1, in the conventional design, independent UDC modules need to be configured inside the BMC for different types of USB devices to control the USB devices, and independent USB software architectures need to be configured for different types of USB devices to ensure that the communication between each USB device and the server host does not interfere with each other. For example, for a USB software architecture configured for a single USB device, the USB software architecture is composed of three layers of a multi-USB (MUSB) driving unit, a gadget driving unit (a driving unit for a single USB device), i.e., a driving unit for the USB device, and an upper layer application.

[0097] The above design is functionally feasible, but as the data center's demand for USB device functions increases, this design will significantly increase the hardware resource cost of BMC management, as follows: on the one hand, as the data center's demand for USB device functions increases, if the control of USB devices continues to be implemented by configuring an independent UDC module for each USB device, then each increase in the number of types of USB device functions will require additional UDC hardware resources to support, thereby significantly increasing the hardware resource cost of BMC management; on the other hand, when the number of required USB devices exceeds the number of existing UDC modules, the BMC management unit will face greater challenges in implementing more USB device extensions. The traditional solution is to redesign a BMC management chip with higher specifications, but this not only requires a large amount of manpower and material resources, but also carries the risk of chip tape-out failure and the resulting time cost, so this way is also to support the BMC management unit to implement the management of more USB devices through additional hardware resources, which will also significantly increase the hardware resource cost of BMC management.

[0098] In summary, the industry urgently needs to explore more effective USB device expansion solutions from the server software architecture design level. Such a solution should be able to improve device expansion flexibility while minimizing the investment in manpower, material resources, and time costs resulting from hardware design changes.

[0099] To this end, the present embodiment proposes a universal serial bus control device, which is configured with a universal serial bus device controller, a universal serial bus device hub driving unit, and a plurality of universal serial bus device driving units configured to implement different types of virtual USB device functions inside the BMC management unit, to build a multi-universal serial bus control architecture, and under this architecture, the UDC module is interconnected with the server host, while the various USB device driving units are implemented to communicate with the Host by sharing the UDC device address register and the control port, thereby implementing the interaction between different USB device driving units and the server host by a single UDC module according to the device address register and control port shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units, no longer relying on multiple independent UDC modules, but even with only one UDC module, the unified control of multiple USB devices can be achieved, which not only reduces the hardware resource cost of BMC management, but also reduces the frequent chip specification iteration and upgrade due to hardware design changes, effectively reducing the overall operation and maintenance cost and time cost of BMC, thereby improving the hardware cost, operation and maintenance efficiency of the data center, and providing strong technical support for the sustainable development of the data center.

[0100] To more clearly illustrate the content of the universal serial bus control device proposed in the embodiment, the universal serial bus control device provided in the embodiment is described in detail from aspects of device structure, software architecture, enumeration process and device address switching process.

[0101] It should be noted that the universal serial bus control device can be applied to scenarios such as data centers and computer clusters. In the following, the device is applied to a data center as an example to describe the universal serial bus control device provided in the embodiment. For other scenarios, the device can be adaptively replaced according to the scenarios.

[0102] FIG. 2 is a structural schematic diagram of the universal serial bus control device provided in the application. As shown in FIG. 2, the device can be a baseboard management controller 210 configured in a data center and in communication connection with a server host. The device includes a universal serial bus device controller 211, a universal serial bus device hub driving unit 212, and a plurality of universal serial bus device driving units 213, to ensure efficient and stable communication between the multiple USB devices and the server host 220 (also referred to as Host) through the cooperative work of the units.

[0103] Among them, the Host plays the role of a USB host, is a user of a USB device, and is an initiator of USB communication. The Host is usually responsible for USB device enumeration, configuration, power management, data transmission control, error detection and recovery, device addition and removal management, and the like. As shown in FIG. 2, the Host can complete the above functions by interacting with the UDC in the BMC.

[0104] The BMC is mainly responsible for the implementation of functional devices such as the universal serial bus device hub driving unit 212 (also referred to as USB Hub driving unit) and the plurality of universal serial bus device driving units 213 (also referred to as USB device driving units), involving the loading and unloading of the driving units.

[0105] In the conventional technology, based on the hardware design rule of BMC, each USB device driving unit needs to be bound to the UDC module in BMC. For the multi-UDC scenario, each USB device driving unit needs to be bound to an independent UDC module for processing. Based on the scenario of one UDC module in the embodiment, all USB device driving units use the same UDC module, and the sharing of the UDC module is realized through a software design method. Therefore, for the UDC module, the embodiment designs it to include a device address register and a control port, the device address register is shared by the USB Hub driving unit and the plurality of USB device driving units, and the control port is multiplexed by the USB Hub driving unit and the plurality of USB device driving units; the UDC module is in communication connection with the Host, and is connected between the USB Hub driving unit and the plurality of USB device driving units, and controls the USB Hub driving unit and each USB device driving unit through the device address register and the control port, so that the USB Hub driving unit and each USB device driving unit effectively and stably interact with the Host.

[0106] FIG. 3 is a structural schematic diagram of the USB software architecture provided by the application. As shown in FIG. 3, for the USB Hub driving unit and the plurality of USB device driving units, since the embodiment focuses on the application scenario of the UDC module in the BMC management chip with high hardware cost, the traditional design method of configuring a single USB software architecture for each UDC module is no longer applicable. To cope with the challenge of increasing hardware cost due to the increasing functional requirements of USB devices in data centers, the embodiment modifies and increases the USB Hub driving unit and the plurality of USB device driving units on the basis of the traditional USB software architecture inside the BMC. On the basis of the MUSB driving unit, a driving layer of the USB Hub driving unit is added, and on the basis of the single USB device driving unit, a plurality of USB device driving units configured for a plurality of different types of USB devices are expanded, that is, the USB Hub driving unit is located at a level between the level of the MUSB driving unit and the level of the plurality of USB device driving units, and the plurality of USB device driving units are located at a level between the level of the USB Hub driving unit and the level of the application layer.

[0107] Through the above software architecture design, the control of a single UDC module on a plurality of USB devices can be effectively realized, the technical difficulties encountered in the traditional hardware implementation method can be effectively solved, the implementation of the multi-USB device no longer depends on independent UDC hardware resources, the design investment for the hardware UDC module is significantly reduced, the human and time costs in the hardware development process are effectively saved, and the development efficiency is improved.

[0108] The MUSB driver unit is part of the Linux system kernel and is responsible for handling various requests and transactions defined in the USB specification, including device enumeration, data transfer, power management, etc. The USB Hub driver unit is mainly responsible for managing the interaction process between each USB device driver unit and the Host, such as device enumeration and data transfer. Each USB device driver unit is usually implemented based on the MUSB driver unit, and above each USB device driver unit, there is an application program for using the USB device, which is set to drive the corresponding analog USB device to realize the function of the corresponding USB device. It allows the Linux device to play the role of a USB device such as a mouse or keyboard when connected to the Host to respond to the Host's request for data transfer and communication, so that the administrator can realize remote control of the server host 220 through the analog USB device.

[0109] The plurality of USB device driver units here can include USB device driver units of multiple different device types, and can be configured according to the functions required for Host monitoring, such as including multiple items of human-computer interface driver units, network controller driver units, and memory driver units, and can also include other types of USB device driver units, which are not limited in the present embodiment.

[0110] Figure 4 is a schematic diagram of the structure of a universal serial bus control device provided by the present application; as shown in Figures 3 and 4, in some embodiments, the plurality of universal serial bus device driver units 213 includes human-computer interface driver units, network controller driver units, and memory driver units;

[0111] The human-computer interface driver unit is set to drive a virtual human-computer interface device;

[0112] The network controller driver unit is set to drive a virtual network device;

[0113] The memory driver unit is set to drive a virtual memory.

[0114] The human-computer interface (HID) driver unit is set to support human-computer interface devices such as mice, keyboards, and joysticks. The HID driver unit is responsible for handling USB requests related to human-computer interface devices, such as key events and mouse movements, and passing these events to upper-layer applications.

[0115] The memory drive unit (also referred to as a Mass Storage drive unit) is configured to support large storage devices such as U disks, hard disks, etc. The drive unit is responsible for processing USB requests related to storage devices such as reading, writing, formatting, etc., and provides a standard file system interface to the upper layer application, so that the application can access the storage device as if it is operating a local file system.

[0116] The network controller (Ethernet Control Model, ECM) drive unit is configured to support USB network devices. The drive unit is responsible for processing USB requests related to the network such as IP address configuration, data packet sending and receiving, etc., and provides a standard network interface to the upper layer application, so that the application can be connected to the network through the USB interface.

[0117] In summary, the device provided in the embodiment can realize the virtual USB hub function under a single UDC module, support multiple types of USB device functions such as virtual human-computer interface devices (e.g. mouse and keyboard), virtual storage devices (e.g. U disk), and virtual network devices (e.g. network card), and realize parallel access of multiple USB function devices under a single UDC module on the Host side. Thus, the multiple USB devices can be conveniently and cost-effectively controlled in unison, and the hardware resource cost and maintenance cost required for Host monitoring can be reduced.

[0118] For simplicity of description, the universal serial bus control device provided in the embodiment is described below by taking the example of multiple universal serial bus device drive units 213 including a HID drive unit, a Mass Storage drive unit, and an ECM drive unit.

[0119] As shown in FIG. 2, the universal serial bus device controller 211 includes a device address register and a control port shared between the universal serial bus device hub drive unit 212 and the multiple universal serial bus device drive units 213.

[0120] Optionally, the USB device controller 211 comprises a device address register and a control port. The device address register is a device address register shared by the USB hub driving unit and the plurality of USB device driving units, which is configured to store the device address of the driving device currently interacting with the Host, wherein the device address can be cyclically switched according to the device address of the driving unit required to interact with the Host, so as to ensure that each driving device can obtain corresponding communication time and bandwidth when a plurality of driving devices share one Host resource, thereby realizing effective communication management between the USB hub driving unit, the plurality of USB device driving units and the Host. The control port is multiplexed by the USB hub driving unit and the plurality of USB device driving units, so that the USB device controller 211 realizes unified control of the USB hub driving unit and the plurality of USB device driving units through the control port.

[0121] The USB device controller 211 is in communication connection with the server Host 220, and is configured to switch the device address in the device address register according to the address switching time slice corresponding to the USB hub driving unit 212 and the address switching time slice corresponding to each USB device driving unit 213, and control the USB hub driving unit 212 and each USB device driving unit 213 to interact with the server Host 220 according to the switched device address and the control port.

[0122] Optionally, since the BMC management unit has only one UDC module, the hardware only supports one device address register (Function Address Register, FADDR), and when the Host accesses the USB hub driving unit and the downstream port device (i.e. each USB device driving unit) of the USB hub driving unit, it is required to ensure that the device address of the FADDR is consistent with the corresponding address of the device requested by the Host. Therefore, in order to ensure normal communication between the Host and each driving unit, it is necessary to solve the problem of insufficient address registers when the same FADDR realizes communication of different driving units. For this purpose, the USB hub working time of the BMC is divided into an address switching time slice corresponding to the USB hub driving unit and an address switching time slice corresponding to each USB device driving unit, so as to realize time-division multiplexing address switching based on each time slice, so as to realize normal communication between each driving unit and the Host.

[0123] Optionally, for each interaction, the UDC module can determine whether the address switching time slice corresponding to the USB Hub driving unit and the address switching time slice corresponding to each USB device driving unit are triggered, and according to the triggering determination result, determine the target driving unit required for the interaction with the Host in the USB Hub driving unit and the plurality of USB device driving units, switch the device address in FADDR in real time according to the device address of the target driving unit, establish a communication connection between the target driving unit and the Host through the switched device address, and in the address switching time slice corresponding to the target driving unit, transmit the interaction request sent by the Host to the target driving unit through the communication connection, and transmit the response information returned by the target driving unit according to the interaction request to the Host, thereby realizing the interaction between the target driving unit and the Host. After the current interaction ends, the UDC module continues to determine whether the address switching time slice corresponding to the USB Hub driving unit and the address switching time slice corresponding to each USB device driving unit are triggered based on the above interaction steps, and according to the triggering determination result, determines the target driving unit required for the next interaction with the Host in the USB Hub driving unit and the plurality of USB device driving units, and iteratively executes the next interaction step based on the target driving unit required for the next interaction with the Host, until the BMC is closed or the BMC configuration is updated.

[0124] The time slice division of the address switching time slice corresponding to the USB Hub driving unit and the address switching time slice corresponding to each USB device driving unit here can be periodic division according to a certain time interval, or periodic division according to the processing performance, data packet transmission mode, etc. of each driving unit, so that each driving unit can communicate with the Host in order and efficiently. The present embodiment does not limit the division method.

[0125] The address switching time slice corresponding to each driving unit here can be periodically triggered in time, or adaptively triggered according to the request sent by the Host in each interaction process. The present embodiment does not limit this.

[0126] The device provided by the embodiment can effectively avoid allocating independent hardware resources for each USB device, and can realize unified control of multiple USB devices even if there is only one UDC module, reduce the hardware resource cost required for one-to-one configuration of the UDC module, and improve the flexibility of resource utilization, thereby realizing low-cost and convenient unified control of multiple USB devices.

[0127] In some embodiments, the USB device controller 211 further comprises a timer;

[0128] The USB device controller 211 is configured to:

[0129] For the current interaction, according to the current running state of the timer, determine whether the address switching time slice corresponding to the USB hub driving unit 212 and the address switching time slice corresponding to each of the plurality of USB device driving units 213 are triggered;

[0130] Among the USB hub driving unit 212 and the plurality of USB device driving units 213, determine the current to-be-controlled driving unit for which the address switching time slice is triggered;

[0131] Switch the device address in the device address register to the device address of the current to-be-controlled driving unit to obtain a target device address;

[0132] According to the target device address and the control port, control the current to-be-controlled driving unit to interact with the server host 220;

[0133] Continue to control the next to-be-controlled driving unit to interact with the server host 220 according to the next running state of the timer.

[0134] Optionally, the UDC module can perform the following steps to realize the interactive control of each driving unit:

[0135] When the BMC is started, the UDC module is initialized, including the configuration of the device address register, the control port, the timer, and the initialization of the USB hardware and the registration of the drive units in the MUSB drive unit. The timer can be set to trigger an interrupt at a predetermined time interval to control different USB device drive units in sequence.

[0136] During the initialization process, the UDC module allocates address switching time slices to the USB Hub drive unit and each USB device drive unit. These time slices define the time period during which each drive unit can occupy the device address register and the control port.

[0137] During the current interaction process, the UDC module determines whether the timer is currently triggering the address switching time slice of any drive unit according to the current running state of the timer.

[0138] After determining that the timer is currently triggering the address switching time slice of any drive unit, the UDC module marks the drive unit as the currently required control drive unit, i.e., the current control drive unit.

[0139] Subsequently, the UDC module switches the device address in the device address register to the device address of the current control drive unit, so that only the current control drive unit and the Host can interact during the current interaction process.

[0140] Subsequently, the UDC module uses the switched target device address and the control port to start controlling the current control drive unit to interact with the Host, and the interaction includes data transmission, command execution, and other operations.

[0141] After learning that the Host has completed the interaction with the current control drive unit, the UDC module iteratively controls the next control drive unit to interact with the Host according to the next running state of the timer, until all drive units have completed the interaction within their address switching time slices.

[0142] It should be noted that, in order to cope with the dynamic changes of the USB device connection state, such as device plugging and unplugging, device type changing, etc., the UDC module periodically updates the settings of the address switching time slices to ensure that all connected USB device drive units can be accurately controlled.

[0143] The device provided in the embodiment uses the timer to trigger the interrupt of the address switching time slice, and the UDC module can efficiently control multiple USB device drive units to interact with the Host, thereby meeting the increasing functional requirements of different USB devices in the data center, while reducing the cost of hardware resources.

[0144] In some embodiments, the USB device controller 211 is further configured to:

[0145] determine whether the timer is in a timeout state according to a current running state of the timer;

[0146] match the cycle period to which the timer belongs with the address switching time slice corresponding to the USB device hub driving unit 212 and the address switching time slice corresponding to each of the USB device driving units 213, respectively, in a case where it is determined that the timer is in the timeout state;

[0147] determine whether the address switching time slice corresponding to the USB device hub driving unit 212 and the address switching time slice corresponding to each of the USB device driving units 213 are triggered according to a matching result.

[0148] FIG. 5 is a flowchart of address switching according to an embodiment of the present application; as shown in FIG. 5, the UDC module can further perform the following steps to realize device address switching:

[0149] In step 510, it is determined whether the timer is in a timeout state according to a current running state of the timer, and if so, step 520 is performed.

[0150] In step 520, it is determined whether the device address is allowed to be modified, and if so, step 530 is performed, otherwise, step 510 is performed.

[0151] In step 530, the cycle period to which the timer belongs is matched with the address switching time slice corresponding to the USB device hub driving unit 212 and the address switching time slice corresponding to each of the USB device driving units 213, respectively, so as to take the matched address switching time slice as a triggered address switching time slice, and thus, the device address of a current driving unit to be controlled is obtained from the device address list according to the triggered address switching time slice.

[0152] In step 540, the device address in the device address register is switched according to the obtained device address of the current driving unit to be controlled, and the current driving unit to be controlled is controlled to interact with the server host 220, and then, the process returns to step 510.

[0153] The device provided in the embodiment can trigger the corresponding address switching time slice according to the timeout state of the timer, so as to ensure that the multiple driving units can interact with the server host in a predetermined time sequence, and thus, the single UDC module can support multiple USB devices to communicate with the server host simultaneously, which greatly reduces the hardware resource cost of USB device control and improves the management efficiency of multiple USB devices.

[0154] In some embodiments, the USB device controller 211 is further configured to:

[0155] determine current access permission information of the current to-be-controlled drive unit according to the current access state of the device address register;

[0156] in a case where it is determined that the current to-be-controlled drive unit has the permission to access the device address register, switch the device address in the device address register to the device address of the current to-be-controlled drive unit, and perform a lock operation on the device address register.

[0157] Optionally, in order to avoid FADDR access conflicts, the UDC module can further perform the following steps to realize the device address switching:

[0158] First, the current access state of the FADDR is detected, such as whether the FADDR is being accessed by other drive units, whether there is an unfinished read / write operation, and the like, to determine whether the FADDR is in an unoccupied state.

[0159] In a case where it is determined that the FADDR is in the unoccupied state, it is determined that the current to-be-controlled drive unit has the permission to access the device address register, and in a case where it is determined that the FADDR is in the occupied state, it is determined that the current to-be-controlled drive unit does not have the permission to access the device address register.

[0160] If it is determined that the current to-be-controlled drive unit has the permission to access the device address register, the device address in the device address register is switched to the device address of the current to-be-controlled drive unit, and in order to ensure that the device address register is not accessed or modified by other unauthorized drive units after the switching, a lock operation needs to be performed on the device address register. The lock can be realized by setting a specific register flag bit, using a mutual exclusion lock or other synchronization mechanism.

[0161] The device provided in the embodiment can ensure that only the drive unit with the corresponding permission can access the device address register through the access permission control, which helps to prevent unauthorized access and potential security risks, and through the lock operation after the switching of the device address register, it can be ensured that only one drive unit can access and modify the register at the same time, which helps to reduce resource conflicts and potential data inconsistency problems, and thus ensures that each drive unit can effectively use the device address register to interact with the Host, and improves the effectiveness of the multi-USB device control.

[0162] In some embodiments, the USB device controller 211 is further configured to:

[0163] In the case of judging that the device address register locking operation is completed, the receiving server host 220 initiates a current task processing request;

[0164] According to the target device address, the current task processing request is transmitted to the current to-be-controlled drive unit;

[0165] The first response information returned by the current to-be-controlled drive unit according to the current task processing request is transmitted to the server host 220;

[0166] In the case of judging that the server host 220 receives the first response information, the locking operation on the device address register is released.

[0167] Optionally, in order to improve the resource utilization, the UDC module can further perform the following steps to realize the device address switching:

[0168] After the device address register completes the locking operation, the UDC module detects and confirms that the locking operation has been completed, so as to ensure that the device address register is in a safe and exclusive state before the task processing request is transmitted. Once it is confirmed that the locking operation is completed, the UDC module starts to listen to and receive the current task processing request initiated by the server host 220; the request includes data transmission, device control, etc.

[0169] After the UDC module receives the current task processing request, the UDC module parses the task processing request, and according to the target device address, accurately transmits the request to the current to-be-controlled drive unit.

[0170] After the current to-be-controlled drive unit processes the task and generates the response information, the UDC module receives the first response information and transmits it back to the server host 220; after learning that the server host 220 has received the first response information, the UDC module releases the locking operation on the device address register, so that it returns to an accessible state for use by other drive units, thereby improving the resource utilization.

[0171] In some embodiments, the universal serial bus device controller 211 is further configured to:

[0172] According to the current task processing request, the current request device address is obtained;

[0173] The current request device address is matched with the target device address;

[0174] In the case of matching that the current request device address is consistent with the target device address, according to the target device address, the current task processing request is transmitted to the current to-be-controlled drive unit.

[0175] Optionally, in order to ensure the correctness of the request transmission, the UDC module can perform the following steps to realize the request transmission:

[0176] When the UDC module receives the current task processing request from the server host 220, the current task processing request is first parsed, and the device address pointed to by the request, i.e., the current request device address, is extracted. The current request device address is matched with the target device address to ensure that the task processing request is sent to the correct target device, preventing data transmission errors or device control abnormalities caused by device address errors.

[0177] If it is determined in the matching process that the current request device address is consistent with the target device address, it is determined that the current task processing request is valid, and at this time, the current task processing request can be accurately transmitted to the corresponding current to-be-controlled drive unit according to the matched target device address, so that the current to-be-controlled drive unit performs current task processing request response, and effective interaction between the current to-be-controlled drive unit and the Host is realized.

[0178] The device provided in the embodiment can ensure that the request is sent to the correct drive unit by matching the device address before task processing, avoid task processing failure or data transmission errors caused by device address errors, improve the task processing accuracy of the entire system, prevent illegal requests or incorrect requests from being sent to the drive unit, thereby enhancing the security of the drive unit and reducing potential security risks and vulnerabilities.

[0179] Optionally, to ensure the correctness of the request transmission, the UDC module can also perform the following steps to realize the request transmission:

[0180] When the UDC module finds that the current request device address is inconsistent with the target device address in the matching process, the current task processing request can be stored in a cache queue. The cache queue temporarily stores the requests waiting for processing, so as to perform matching and transmission again at an appropriate time.

[0181] The UDC module continuously monitors the change of the device address register, and when the device address in the device address register is switched to the device address of the next to-be-controlled drive unit, the current request device address of the current task processing request stored in the cache queue is matched with the device address of the next to-be-controlled drive unit switched from the device address register again.

[0182] If it is learned in the re-matching process that the current request device address is consistent with the device address of the next to-be-controlled drive unit, the current task processing request is taken out from the cache queue and transmitted to the corresponding next to-be-controlled drive unit, so that the next to-be-controlled drive unit processes the current task processing request.

[0183] The device provided by the embodiment can ensure that each request can be processed in time and will not be discarded or delayed due to address mismatch, and greatly improves the efficiency and performance of task processing.

[0184] The address switching process provided by the embodiment is described below as an optional example.

[0185] FIG. 6 is a second flowchart of the address switching process provided by the present application; as shown in FIG. 6, the address switching process can be implemented by the UDC module performing the following steps:

[0186] In step 610, if it is determined according to the running state of the timer that the address switching time slice corresponding to the USB Hub driving unit is entered, the FADDR operation is locked in the time slice to prevent other processes from accessing FADDR and causing access conflict, FADDR is set as the device address of the USB Hub driving unit;

[0187] In step 620, a task processing request initiated by the Host to the USB Hub driving unit, i.e., a Hub class request such as a request for obtaining the port state, is waited for; after the USB Hub driving unit receives the request and responds to the request of the Host, the lock operation on FADDR is released, and the next address switching state is waited for according to the timer;

[0188] In step 630, if it is determined according to the running state of the timer that the address switching time slice corresponding to the Mass Storage driving unit is entered, the FADDR register operation is locked in the time slice to prevent other processes from accessing FADDR and causing access conflict, and FADDR is set as the device address of the Mass Storage driving unit;

[0189] In step 640, a request initiated by the Host to the Mass Storage driving unit is waited for; when the Mass Storage driving unit receives the request and responds to the request of the Host, the lock operation on FADDR is released, and the next address switching state is waited for according to the timer;

[0190] In step 650, if it is determined according to the running state of the timer that the address switching time slice corresponding to the HID driving unit is entered, the FADDR register operation is locked in the time slice to prevent other processes from accessing FADDR and causing access conflict, and FADDR is set as the device address of the HID driving unit;

[0191] Step 660, waiting for the Host to initiate a request to the HID drive unit, and when the HID drive unit receives the request and responds to the request of the Host, releasing the lock operation on the FADDR, and waiting for the timing to enter the next address switching state;

[0192] Step 670, if it is judged according to the timer running state that the address switching time slice corresponding to the ECM drive unit is entered, then the FADDR register operation is locked in the time slice to prevent other processes from accessing the FADDR and causing access conflicts, and the FADDR is set to the device address of the ECM drive unit;

[0193] Step 680, waiting for the Host to initiate a request to the ECM drive unit, and when the ECM drive unit receives the request and responds to the request of the Host, releasing the lock operation on the FADDR, and waiting for the timing to enter the next address switching state;

[0194] Step 690, according to the timer running state, jump to step 610.

[0195] It should be noted that the operation of the timer in the above steps is mainly used to set the address switching time of different devices, and the operation is consistent with the process of FIG. 5.

[0196] In summary, the timer-based multi-USB device address switching scheme proposed in the embodiment can better realize the interaction between the multi-USB device and the Host, provide greater flexibility and expandability for the system, and can be easily extended to more USB device access, meet the different demand scenarios of the BMC when multiple USB devices are accessed, and enhance the adaptability and universality of the system. Secondly, it avoids the need for frequent hardware upgrades or replacements due to insufficient number of hardware UDC modules, thereby reducing the related hardware costs. At the same time, since the software implementation method has higher flexibility, it can quickly adapt to market changes and customer demands, reduce the additional costs caused by technology iteration, and improve the overall economic benefits.

[0197] In some embodiments, the universal serial bus device hub drive unit 212 is configured to:

[0198] receive a first enumeration request sent by the server host 220; the first enumeration request is used to enumerate the universal serial bus device hub drive unit 212;

[0199] According to the first enumeration request, return second response information to the server host 220;

[0200] receive the device address allocated by the server host 220 to the universal serial bus device hub drive unit 212 according to the second response information;

[0201] modify the device address register to the device address of the USB hub driver unit 212;

[0202] receive the status acquisition command of the USB device driver unit 213 sent by the server host 220;

[0203] in response to the status acquisition command, report the device status of each USB device driver unit 213 to the server host 220 according to the device address of the USB hub driver unit 212;

[0204] receive the device address of each USB device driver unit 213 allocated by the server host 220 according to the device status of each USB device driver unit 213, and transmit the device address of each USB device driver unit 213 to each USB device driver unit 213.

[0205] It should be noted that the enumeration of the USB device of the Host BMC is the basis of USB communication, which involves the process of identifying and configuring the USB device by the Host, and only after successful enumeration can data communication between the Host and the USB device be realized. Since only one UDC module is configured in the embodiment, i.e., there is only one FADDR, when the Host enumerates the USB device, the USB Hub driver unit and the plurality of USB device driver units need to share this FADDR, and a register sharing scheme must be designed to realize the enumeration of all USB devices. In view of this, the embodiment realizes the enumeration of each USB device driver unit by controlling the USB Hub driver unit to report the status of each USB device driver unit.

[0206] Alternatively, the USB Hub driver unit can interact with the Host to perform the following steps to realize enumeration:

[0207] After the USB Hub driver unit accesses the Host, it first receives the first enumeration request sent from the Host. The so-called first enumeration request is used to enumerate the USB Hub driver unit to obtain its device information and configuration.

[0208] After receiving the first enumeration request, the USB Hub driver unit returns second response information to the Host according to the content of the request. The so-called second response information includes but is not limited to device type, port number, and query time interval of each downstream port connected, etc.

[0209] The Host allocates a device address for the USB Hub driver unit according to the returned second response information.

[0210] The USB Hub driver unit receives the device address and stores it in the device address register.

[0211] Subsequently, the Host can send a state acquisition command of the USB device driving unit to query the state of each USB device driving unit connected to the USB Hub driving unit.

[0212] The USB Hub driving unit reports the device state of each USB device driving unit connected thereto to the Host according to the device address of itself in response to the state acquisition command. The device state includes but is not limited to the connection state of the device, the device type, the running state, etc.

[0213] The Host allocates a device address for each USB device driving unit according to the received device state information. The USB Hub driving unit receives the device address enumerated by the Host and transmits it to the corresponding USB device driving unit respectively, thereby realizing the enumeration of each driving unit so that each driving unit can interact with the Host according to the device address generated by the enumeration in the subsequent process.

[0214] The device provided in the embodiment can ensure the correct connection and communication between the Host and each USB device driving unit through enumeration and address allocation, which helps to reduce the problems such as system crash or data loss caused by device connection error or communication failure, thereby enhancing the stability and reliability of the system.

[0215] In some embodiments, the second response information includes the device type and the port number of the USB device Hub driving unit 212;

[0216] The device address of the USB device Hub driving unit 212 is allocated by the server Host 220 according to the device type and the port number of the USB device Hub driving unit 212.

[0217] Optionally, when the USB Hub driving unit receives the enumeration request of the local end, it can report the device type and the port number of itself to the Host, so that the Host can more accurately identify the characteristics and functions of the USB Hub driving unit, and then can reasonably and efficiently allocate a corresponding unique device address to the USB Hub driving unit according to the device type and the port number, so as to guarantee the stability and compatibility of the BMC.

[0218] In some embodiments, the second response information further includes the query time interval of each USB device driving unit 213.

[0219] The state acquisition command of the USB device driving unit 213 is periodically sent according to the query time interval.

[0220] Optionally, the USB Hub driving unit, upon receiving the enumeration request of the local end, can also report the query time interval of each USB device driving unit to the Host, so that the Host can periodically send the state acquisition command of the USB device driving unit to the USB Hub driving unit according to the query time interval of each USB device driving unit, to ensure that the USB Hub driving unit can successfully send each USB device driving unit to the Host, thereby improving the response efficiency to the Host.

[0221] In some embodiments, the USB device hub driving unit 212 is also configured to:

[0222] For the current next port device enumeration, the device address register is modified to the device address of the USB device hub driving unit 212;

[0223] Receive the current state acquisition command of the current USB device driving unit 213 sent by the server Host 220;

[0224] In response to the current state acquisition command, the target device state of the current USB device driving unit 213 is sent to the server Host 220 according to the device address of the USB device hub driving unit 212;

[0225] The device address register is cleared, and the second enumeration request of the current USB device driving unit 213 sent by the server Host 220 according to the target device state is received according to the target device state;

[0226] The third response information returned by the current USB device driving unit 213 according to the second enumeration request is sent to the server Host 220;

[0227] The device address allocated by the server Host 220 for the current USB device driving unit 213 according to the third response information is transmitted to the current USB device driving unit 213;

[0228] Return to modify the device address register to the device address of the USB device hub driving unit 212, and iteratively perform the next port device enumeration until all USB device driving units 213 are enumerated.

[0229] Optionally, the USB Hub driving unit can also interact with the Host to perform the following steps to realize enumeration:

[0230] For the current port device enumeration, the USB Hub driving unit modifies the device address register to the device address of the USB Hub driving unit, and receives the current state acquisition command, such as GetPortStatus (Get Port Status) command, periodically sent by the Host according to the query time interval of each port reported in the second response information returned by the USB Hub driving unit, to report the device status of the downstream port of the USB Hub driving unit to the Host.

[0231] The USB Hub driving unit checks all its downstream ports and sends the target device status of the current USB device driving unit to the Host.

[0232] After the status report of the device of the current USB device driving unit, the USB Hub driving unit clears the FADDR address and sets it to 0, and waits for the Host to start enumerating the downstream port device.

[0233] The Host sends a second enumeration request to the current USB device driving unit downstream of the USB Hub driving unit according to the target device status, to enumerate the current USB device driving unit downstream of the USB Hub driving unit.

[0234] The current USB device driving unit returns a third response information to the Host in response to the enumeration request of the Host, and records the device address allocated by the Host according to the third response information.

[0235] After the enumeration of the current USB device driving unit is completed, the USB Hub driving unit returns to the step of modifying the device address register to the device address of the USB Hub driving unit, and continues to wait for the Host to continue to initiate the state acquisition request of the next USB device driving unit, to iteratively perform the next port device enumeration, until all USB device driving units are enumerated.

[0236] The device provided by the embodiment can identify and manage all downstream port devices connected to the USB Hub driving unit one by one through iterative port device enumeration. The ordered enumeration process ensures that each downstream port device can be correctly enumerated, avoids performance problems caused by device conflicts or identification errors, and further improves the correctness of multi-USB device management.

[0237] The following describes the device enumeration process provided by the embodiment by way of optional examples.

[0238] FIG. 7 is a flowchart of the device enumeration process provided by the present application; as shown in FIG. 7, the device enumeration process can be achieved by the following interaction steps between the USB Hub driving unit and the Host:

[0239] Step 710, after the USB Hub driving unit accesses the Host, the Host sends an enumeration request to the USB Hub driving unit, and the Hub responds to the enumeration request and reports response information including the device type and port number of the Hub itself and the query time interval of each downstream port of the Hub;

[0240] Step 720, after the Host receives the response information of the USB Hub driving unit, the Host allocs a device address for the USB Hub driving unit, and the USB Hub driving unit records the address and writes it into FADDR;

[0241] Step 730, the Host periodically sends a GetPortStatus (port status acquisition) command according to the query time interval of each port reported by the USB Hub driving unit to request the device status of the downstream ports of the USB Hub driving unit;

[0242] Step 740, the USB Hub driving unit judges whether the device status reporting of all downstream ports is completed, if the USB Hub driving unit has completed the device status reporting of all downstream ports, the process ends, otherwise, step 750 is executed;

[0243] Step 750, the USB Hub driving unit reports the device status of the current downstream port device (the current USB device driving unit), and reports the device status of one device at a time;

[0244] Step 760, the USB Hub driving unit clears the FADDR address and sets it to 0, and waits for the Host to enumerate the current downstream port device of the USB Hub driving unit;

[0245] Step 770, the Host initiates an enumeration request to the current downstream port device of the USB Hub driving unit;

[0246] Step 780, the current downstream port device responds to the enumeration request of the Host, acquires the device address allocated by the Host and records it;

[0247] Step 790, the USB Hub driving unit modifies the FADDR to the device address of the USB Hub driving unit itself, and waits for the Host to continue to initiate a GetPortStatus request, and jumps to step 730.

[0248] Through the above steps, each USB device driving unit under the USB Hub acquires its own device address, and subsequent precise and effective interaction between different USB device driving units and the Host can be realized according to the device address.

[0249] In some embodiments, for each of the universal serial bus device hub driving unit 212 and the plurality of universal serial bus device driving units 213, the driving unit is configured with at least one port number;

[0250] The driving unit is configured to:

[0251] In the case of receiving a task processing request initiated by the server host 220, according to the task type and the data transmission mode corresponding to the task processing request, a target port number is obtained in the at least one port number;

[0252] According to the task operation mode corresponding to the target port number, the task processing request is processed, and the task processing result is returned to the server host 220.

[0253] As shown in FIG. 4, the UDC module supports one device address and one control port, which can be coded as 0. In order to complete the support of multiple USB devices, for each driving unit endpoint configuration of the USB Hub driving unit and the plurality of USB device driving units, one or more port numbers can be configured.

[0254] The endpoint configuration of each driving unit can be sequentially numbered according to the port position of each driving unit, or adaptively numbered according to the device type of different driving units, which is not limited in the present embodiment.

[0255] In some embodiments, the port number of the driving unit is configured according to the device type of the driving unit.

[0256] Optionally, since the data operation modes of driving units of different device types are different, the corresponding port numbers and port types are also different. Therefore, in order to effectively realize the functions of driving units of different device types, the corresponding port numbers and port types can be determined according to the device type of the driving unit, and different port numbers can be configured according to the corresponding port numbers and port types. The port type includes an input port and an output port, or includes more types of ports refined for input ports and output ports.

[0257] Table 1 Endpoint Configuration Table

[0258] As shown in Table 1 and Fig. 4, for an exemplary endpoint configuration mode, the USB Hub drive unit, the HID drive unit, the Mass Storage drive unit and the ECM drive unit share the control endpoint 0. The USB Hub drive unit can be configured with an input (also referred to as IN) endpoint, and numbered as endpoint 1, and set the transmission type as interrupt transmission; the HID drive unit is configured with an IN endpoint, and numbered as endpoint 2, and set the transmission type as interrupt transmission; the Mass Storage drive unit is configured with two endpoints, one is an IN endpoint, and numbered as endpoint 3, and set the transmission type as bulk transmission; the other is an output (OUT) endpoint, and numbered as endpoint 1, and set the transmission type as bulk transmission; the ECM drive unit is configured with three endpoints, two are IN endpoints, and numbered as endpoints 4 and 5, and set the transmission type as bulk transmission, and one is an OUT endpoint, and numbered as endpoint 2, and set the transmission type as bulk transmission.

[0259] It should be noted that the numbers of different types of ports of different drive units can be the same or different.

[0260] In some embodiments, the port number of the input end of any drive unit is the same as the port number of the output port of any other drive unit except the any drive unit.

[0261] Optionally, the numbers of different types of ports of different drive units can be the same, optimizing the allocation and use of system resources, without the need to design and manage the number of each port individually, reducing development cost and complexity. For example, the number of the input port of the HID drive unit is the same as the number of the output port of the ECM drive unit, and for example, the number of the output port of the Mass Storage drive unit is the same as the number of the input port of the USB Hub drive unit.

[0262] Optionally, after the port number configuration of each drive unit is completed, each drive unit can complete different task processing initiated by the Host according to different port numbers. For each drive unit, the following steps can be performed to implement task processing:

[0263] Upon receiving a task processing request initiated by the Host, the task processing request can be parsed to obtain the task type and data transmission mode corresponding to the task processing request; the task type includes but is not limited to reading and writing, and the data transmission mode includes but is not limited to interrupt transmission and bulk transmission.

[0264] Subsequently, according to the corresponding task type and data transmission mode, the target port number corresponding to the task type and data transmission mode is found in the port numbers managed by the device, so as to call the task operation mode corresponding to the target port number to process the task, and return the processing result to the Host. For example, if the task request is to send data to the HID device, the drive unit will use the interrupt transmission mode configured on the endpoint 2 to send data; if the task request is to read data from the Mass Storage device, the drive unit will use the bulk transmission mode configured on the endpoint 3 to read data, and send the data back to the server host 220 through the endpoint 1.

[0265] The device provided by the embodiment, the USB Hub drive unit and the plurality of USB device drive units cooperate together to ensure that the Host can communicate with various USB devices efficiently and reliably, and different USB devices are managed through port numbers, and the appropriate processing mode is selected according to the task type and the data transmission mode, thereby realizing the function of supporting multiple USB devices, and further realizing efficient and reliable management of multiple USB devices.

[0266] In some embodiments, the embodiment also provides a universal serial bus control system, which can be a computer system, a cloud computing system, etc., and the embodiment does not limit this.

[0267] As shown in FIG. 2, the universal serial bus control device in the system can be in communication connection with the server host 220 to realize the interaction between the USB device drive units under the control of the device and the server host 220, thereby realizing the remote monitoring of the server host 220.

[0268] The system provided by the embodiment realizes the unified control of multiple USB devices by configuring the universal serial bus device controller, the universal serial bus device hub drive unit, and the plurality of universal serial bus device drive units realizing the functions of different types of virtual USB devices inside the BMC, and by the universal serial bus device controller, switching the device address register configured inside the universal serial bus device controller in real time according to the address switching time slice corresponding to the universal serial bus device hub drive unit and the address switching time slice corresponding to each universal serial bus device drive unit, so as to control different universal serial bus device drive units to interact with the server host in different time slices according to the switched device address and the control port multiplexed by the multiple drive units and configured inside the universal serial bus device controller. The independent hardware resources allocated for each USB device can be effectively avoided, even if there is only one UDC module, the unified control of multiple USB devices can be realized, the hardware resource cost consumed by one-to-one configuration of the UDC module is reduced, and the flexibility of resource utilization is improved, thereby realizing the unified control of multiple USB devices at low cost and convenience.

[0269] In some embodiments, the present embodiment also provides a universal serial bus control method, which is implemented on the basis of the universal serial bus control device provided in the above embodiments. FIG. 8 is a flowchart of the universal serial bus control method provided in the present application; as shown in FIG. 8, the method comprises steps 810 and 820.

[0270] In step 810, the device address in the device address register is switched according to the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit.

[0271] In step 820, the universal serial bus device hub driving unit and each universal serial bus device driving unit are controlled to interact with the server host according to the switched device address and the control port; the device address register is a register shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units in the universal serial bus device controller, and the control port is a port shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units in the universal serial bus device controller.

[0272] Optionally, for each interaction, the UDC module can determine the target driving unit required to interact with the Host this time among the USB Hub driving unit and the plurality of USB device driving units by judging whether the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit are triggered, and switch the device address in FADDR in real time according to the device address of the target driving unit, so as to establish a communication connection between the target driving unit and the Host through the switched device address, and transmit the interaction request sent by the Host to the target driving unit through the communication connection in the address switching time slice corresponding to the target driving unit, and transmit the response information returned by the target driving unit according to the interaction request to the Host, thereby realizing the interaction between the target driving unit and the Host.

[0273] After the current interaction ends, the UDC module continues to determine the target driving unit required to interact with the Host next time among the USB Hub driving unit and the plurality of USB device driving units according to the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit, so as to iteratively execute the interaction step until the BMC system is closed or the BMC configuration is updated.

[0274] The method provided by the embodiment can switch the device address register configured in the USB device controller in real time according to the address switching time slice corresponding to the USB hub driving unit and the address switching time slice corresponding to each USB device driving unit, so as to control different USB device driving units to interact with the server host in different time slices according to the switched device address and the control port configured in the USB device controller and multiplexed by the driving units. The method can effectively avoid allocating independent hardware resources for each USB device, and can realize unified control of multiple USB devices even if there is only one UDC module, thereby reducing the hardware resource cost consumed by one-to-one configuration of the UDC module and improving the flexibility of resource utilization, and thus realizing unified control of multiple USB devices at low cost and conveniently.

[0275] In some embodiments, switching the device address in the device address register according to the address switching time slice corresponding to the USB hub driving unit and the address switching time slice corresponding to each USB device driving unit comprises:

[0276] For the current interaction, according to the current running state of the timer, it is judged whether the address switching time slice corresponding to the USB hub driving unit and the address switching time slice corresponding to each USB device driving unit are triggered.

[0277] In the USB hub driving unit and the plurality of USB device driving units, the current driving unit to be controlled is determined when the address switching time slice is triggered.

[0278] The device address in the device address register is switched to the device address of the current driving unit to be controlled.

[0279] Optionally, when the BMC is started, the UDC module is initialized, which includes configuration of the device address register, the control port and the timer, and initialization of the USB hardware and registration of each driving unit in the MUSB driving unit. The timer is set to trigger an interrupt at a predetermined time interval, so as to control different USB device driving units in sequence.

[0280] In the initialization process, the UDC module allocates address switching time slices for the USB Hub driving unit and each USB device driving unit. These time slices define the time period during which each driving unit can occupy the device address register and the control port.

[0281] In the current interaction process, according to the current running state of the timer, the UDC module judges whether the timer is currently triggered to switch the address switching time slice of any driving unit.

[0282] When the timer triggers the address switching time slice of any drive unit, the UDC module marks the drive unit as the current drive unit to be controlled, i.e., the current drive unit to be controlled.

[0283] The UDC module switches the device address in the device address register to the device address of the current drive unit to be controlled, so that only the current drive unit to be controlled and the Host are allowed to interact in the current interaction process.

[0284] The UDC module starts to control the current drive unit to be controlled to interact with the Host using the switched target device address and the control port. The interaction includes data transmission, command execution, and other operations.

[0285] After learning that the Host completes the interaction with the current drive unit to be controlled, the UDC module iteratively controls the next drive unit to be controlled to interact with the server Host according to the next running state of the timer, until all the drive units complete the interaction in the address switching time slice.

[0286] The method provided in the embodiment triggers the interruption of the address switching time slice by using the timer, so that the USB device controller can efficiently control multiple USB device drive units to interact with the server Host, thereby meeting the increasing functional requirements of the data center on different USB devices and reducing the cost of hardware resources.

[0287] The method provided in the present application is executed based on the above-mentioned device embodiments, and the execution flow and detailed content are referred to the above-mentioned embodiments, which will not be described herein.

[0288] Fig. 9 shows a schematic diagram of an electronic device, as shown in Fig. 9, which can include a processor 910, a communications interface 920, a memory 930 and a communications bus 940, wherein the processor 910, the communications interface 920 and the memory 930 communicate with each other through the communications bus 940. The processor 910 can invoke the logic instructions in the memory 930 to execute the universal serial bus control method, which includes switching the device address in the device address register according to the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit; and controlling the universal serial bus device hub driving unit and each universal serial bus device driving unit to interact with the server host according to the switched device address and the control port; wherein the device address register is a register shared between the universal serial bus device controller, the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units, and the control port is a port shared between the universal serial bus device controller, the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units.

[0289] In addition, the logic instructions in the memory 930 described above can be implemented in the form of a software functional unit and sold or used as an independent product, which can be stored in a computer readable storage medium. Based on such understanding, the technical solutions of the present application essentially or the part that contributes to the related art or part of the technical solutions can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a plurality of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the embodiments of the present application. The foregoing storage medium includes a U disk, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and various media that can store program codes.

[0290] In another aspect, the present application also provides a computer program product, which comprises a computer program, the computer program being stored in a non-transitory computer readable storage medium, and the computer program being executed by a processor, so that the computer can execute the universal serial bus control method provided by the above-mentioned methods, and the method comprises: switching the device address in the device address register according to the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit; and controlling the universal serial bus device hub driving unit and each universal serial bus device driving unit to interact with the server host according to the switched device address and the control port; wherein the device address register is a register shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units in the universal serial bus device controller, and the control port is a port shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units in the universal serial bus device controller.

[0291] In another aspect, the present application also provides a non-transitory computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the universal serial bus control method provided by the above-mentioned methods, and the method comprises: switching the device address in the device address register according to the address switching time slice corresponding to the universal serial bus device hub driving unit and the address switching time slice corresponding to each universal serial bus device driving unit; and controlling the universal serial bus device hub driving unit and each universal serial bus device driving unit to interact with the server host according to the switched device address and the control port; wherein the device address register is a register shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units in the universal serial bus device controller, and the control port is a port shared between the universal serial bus device hub driving unit and the plurality of universal serial bus device driving units in the universal serial bus device controller.

[0292] The device embodiments described above are only schematic, wherein the units shown as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e., can be located in one place, or can be distributed on a plurality of network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the present embodiment scheme. Those skilled in the art can understand and implement without creative labor.

[0293] Those skilled in the art can clearly understand the implementation of the various embodiments by means of software and the necessary general hardware platform from the above description of the embodiments, and of course, the embodiments can also be implemented by hardware. Based on such understanding, the above technical solutions or the part that contributes to the related art can be embodied in the form of a software product, which can be stored in a computer readable storage medium, such as a ROM / RAM, a magnetic disk, an optical disk, and the like, and includes a plurality of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the methods of the various embodiments or some parts of the embodiments.

[0294] Finally, it should be noted that: the above examples are only used to illustrate the technical solutions of the present application, and not to limit them; although the present application has been described in detail with reference to the foregoing examples, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing examples, or make equivalent replacement for some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A universal serial bus control device, characterized in that, The device is communicatively connected to the server host, and the device includes a Universal Serial Bus device controller, a Universal Serial Bus device hub driver unit, and multiple Universal Serial Bus device driver units. The Universal Serial Bus (USB) device controller includes the USB device hub driver unit and a device address register and control port shared among the multiple USB device driver units. The Universal Serial Bus (USB) device controller is configured to switch the device address in the device address register according to the address switching time slice corresponding to the USB hub driver unit and the address switching time slice corresponding to each USB driver unit, and to control the USB hub driver unit and each USB driver unit to interact with the server host according to the switched device address and the control port.

2. The universal serial bus control device according to claim 1, characterized in that, The Universal Serial Bus device controller also includes a timer; The Universal Serial Bus device controller is configured as follows: For the current interaction, based on the current running state of the timer, it is determined whether the address switching time slice corresponding to the Universal Serial Bus device hub driver unit and the address switching time slice corresponding to each Universal Serial Bus device driver unit have been triggered. Among the Universal Serial Bus device hub driver unit and the plurality of Universal Serial Bus device driver units, determine the current driver unit to be controlled when the address switching time slice is triggered; The device address in the device address register is switched to the device address of the current driver unit to be controlled, and the target device address is obtained; Based on the target device address and the control port, control the current driver unit to be controlled to interact with the server host; The system continues to iteratively control the next controllable drive unit to interact with the server host based on the next running state of the timer.

3. The universal serial bus control device according to claim 2, characterized in that, The Universal Serial Bus device controller is further configured to: Based on the current running status of the timer, determine whether the timer is in a timeout state; If it is determined that the timer is in a timeout state, the cycle period of the timer is matched with the address switching time slice corresponding to the Universal Serial Bus device hub driver unit and the address switching time slice corresponding to each Universal Serial Bus device driver unit. Based on the matching results, it is determined whether the address switching time slice corresponding to the Universal Serial Bus device hub driver unit and the address switching time slice corresponding to each Universal Serial Bus device driver unit are triggered.

4. The universal serial bus control device according to claim 2, characterized in that, The Universal Serial Bus device controller is further configured to: Based on the current access status of the device address register, determine the current access permission information of the currently controlled driver unit; If, based on the current access permission information of the current driver unit to be controlled, it is determined that the current driver unit to be controlled has the permission to access the device address register, the device address in the device address register is switched to the device address of the current driver unit to be controlled, and the device address register is locked.

5. The universal serial bus control device according to claim 4, characterized in that, The Universal Serial Bus device controller is further configured to: If it is determined that the locking operation of the device address register is completed, the current task processing request initiated by the server host is received; Based on the target device address, the current task processing request is transmitted to the current driver unit to be controlled; The first response information returned by the currently controlled driving unit according to the current task processing request is transmitted to the server host. If it is determined that the server host has received the first response information, the locking operation on the device address register is released.

6. The universal serial bus control device according to claim 5, characterized in that, The Universal Serial Bus device controller is further configured to: Based on the current task processing request, obtain the address of the currently requesting device; Match the current requesting device address with the target device address; If the current requesting device address is found to be consistent with the target device address, the current task processing request is transmitted to the current controllable driver unit according to the target device address.

7. The universal serial bus control device according to claim 6, characterized in that, The Universal Serial Bus device controller is further configured to: If the current requesting device address is found to be inconsistent with the target device address, the current task processing request is stored in the cache queue; If it is determined that the device address in the device address register has been switched to the device address of the next driver unit to be controlled, the current requested device address is matched with the device address of the next driver unit to be controlled obtained from the switch in the device address register. If the current requesting device address matches the device address of the next driver unit to be controlled, the current task processing request is retrieved from the cache queue and transmitted to the next driver unit to be controlled.

8. The universal serial bus control device according to any one of claims 1-7, characterized in that, The Universal Serial Bus device hub driver unit is configured as follows: Receive a first enumeration request sent by the server host; the first enumeration request is used to enumerate the Universal Serial Bus device hub driver unit. Based on the first enumeration request, a second response message is returned to the server host; The server host receives the device address allocated to the Universal Serial Bus device hub driver unit based on the second response information. Modify the device address register to the device address of the Universal Serial Bus device hub driver unit; Receive the status acquisition command of the Universal Serial Bus device driver unit sent by the server host; In response to the status acquisition command, the device status of each Universal Serial Bus device driver unit is reported to the server host according to the device address of the Universal Serial Bus device hub driver unit; The server host receives the device addresses allocated to each Universal Serial Bus (USB) device driver unit based on the device status of each USB device driver unit, and transmits the device addresses of each USB device driver unit to each USB device driver unit.

9. The universal serial bus control device according to claim 8, characterized in that, The Universal Serial Bus device hub driver unit is further configured as follows: For the current subport device enumeration, modify the device address register to the device address of the Universal Serial Bus device hub driver unit; Receive the current status acquisition command of the current general serial bus device driver unit sent by the server host; In response to the current status acquisition command, the target device status of the current Universal Serial Bus device driver unit is sent to the server host according to the device address of the Universal Serial Bus device hub driver unit; The device address register is cleared, and according to the target device status, the server host receives the second enumeration request of the current Universal Serial Bus device driver unit sent according to the target device status; The current Universal Serial Bus device driver unit sends the third response information returned by the second enumeration request to the server host; The server host transmits the device address allocated to the current Universal Serial Bus device driver unit based on the third response information to the current Universal Serial Bus device driver unit. Return to the point where the device address register is modified to the device address of the Universal Serial Bus device hub driver unit, and iterate through the next port device enumeration until all Universal Serial Bus device driver units have been enumerated.

10. The universal serial bus control device according to claim 8, characterized in that, The second response information includes the device type and port number of the Universal Serial Bus device hub driver unit; The device address of the Universal Serial Bus (USB) device hub driver unit is assigned by the server host based on the device type and port number of the USB device hub driver unit.

11. The universal serial bus control device according to claim 10, characterized in that, The second response information also includes the query time interval of each of the general serial bus device driver units; The status acquisition command of the Universal Serial Bus device driver unit is sent periodically according to the query time interval.

12. The universal serial bus control device according to any one of claims 1-7, characterized in that, For each of the Universal Serial Bus device hub driver unit and the plurality of Universal Serial Bus device driver units, the driver unit is configured with at least one port number; The driving unit is configured as follows: Upon receiving a task processing request initiated by the server host, the target port number is obtained from at least one of the port numbers according to the task type and data transmission mode corresponding to the task processing request. The task processing request is processed according to the task operation mode corresponding to the target port number, and the task processing result is returned to the server host.

13. The universal serial bus control device according to claim 12, characterized in that, The port number of the driving unit is configured according to the device type of the driving unit.

14. The universal serial bus control device according to claim 12, characterized in that, The port number of the input terminal of any driving unit is the same as the port number of the output port of any other driving unit besides the aforementioned driving unit.

15. The universal serial bus control device according to any one of claims 1-7, characterized in that, The plurality of general serial bus device driver units include a human-machine interface driver unit, a network controller driver unit, and a memory driver unit; The human-machine interface driving unit is configured to drive the virtual human-machine interface device; The network controller driver unit is configured to drive virtual network devices; The memory driver unit is configured to drive the virtual memory.

16. A universal serial bus control system, characterized in that, Includes the universal serial bus control device and server host as described in any one of claims 1 to 15; The universal serial bus control device is connected to the server host for communication.

17. A universal serial bus control method, characterized in that, The method includes: Based on the address switching time slice corresponding to the Universal Serial Bus device hub driver unit and the address switching time slice corresponding to each Universal Serial Bus device driver unit, the device address in the device address register is switched; Based on the switched device address and control port, the Universal Serial Bus (USB) device hub driver unit and each USB device driver unit are controlled to interact with the server host. Wherein, the device address register is a register shared by the Universal Serial Bus (USB) device hub driver unit and multiple USB device driver units in the USB device controller, and the control port is a port shared by the USB device hub driver unit and multiple USB device driver units in the USB device controller.

18. The universal serial bus control method according to claim 17, characterized in that, The step of switching the device address in the device address register according to the address switching time slice corresponding to the Universal Serial Bus (USB) device hub driver unit and the address switching time slice corresponding to each USB device driver unit includes: For the current interaction, based on the current running state of the timer, it is determined whether the address switching time slice corresponding to the Universal Serial Bus device hub driver unit and the address switching time slice corresponding to each Universal Serial Bus device driver unit have been triggered. Among the Universal Serial Bus device hub driver unit and the plurality of Universal Serial Bus device driver units, determine the current driver unit to be controlled when the address switching time slice is triggered; Switch the device address in the device address register to the device address of the currently controlled driver unit.

19. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the universal serial bus control method as described in any one of claims 17 to 18.

20. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the universal serial bus control method as described in any one of claims 17 to 18.

21. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the universal serial bus control method as described in any one of claims 17 to 18.

Citation Information

Patent Citations

  • Interface configurable universal series bus controller

    CN101071406A

  • Serial bus device, transmission method and USB device

    CN101308484A

  • Universal serial bus device and method for processing data with universal serial bus device

    CN104035905A

  • USB hub

    CN109522257A

  • Universal serial bus control device, system, method, equipment, medium and product

    CN118394695A