Dynamic expansion control method, device and storage medium for motherboard interface device
By detecting external devices on the Intel platform motherboard and switching to dual-channel communication mode, the problem of the device quantity being unable to be adjusted due to the fixed ESPI interface firmware is solved, and stable startup and efficient data transmission of the motherboard under dynamic expansion are achieved.
Patent Information
- Application Number
- CN202510765365.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-10
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2045-06-10
AI Technical Summary
The number of devices supported by the ESPI interface of Intel platform motherboards is fixed in the firmware and cannot be dynamically adjusted. As a result, it cannot adapt to situations where the number of external devices is uncertain, affecting boot stability and system adaptability.
By starting the motherboard in single-channel communication mode, detecting external devices, using the soft jumper area rewrite function to switch to dual-channel communication mode, and restarting to complete the handshake, the dual-channel communication driver is loaded to achieve collaborative work between onboard devices and external devices.
It improves the system's adaptability to different device configurations, avoids startup failures and system instability, and improves data transmission efficiency and system flexibility.
Smart Images

Figure CN120277016B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of electronic digital data processing, and in particular to a dynamic expansion control method, device and storage medium for a motherboard interface device. Background Art
[0002] In current Intel motherboard designs, the number of devices supported by the Enhanced Serial Peripheral Interface (ESPI) is set in the motherboard firmware. Once the motherboard firmware is flashed, the ESPI configuration parameters are fixed, and the number of supported devices cannot be modified dynamically. Furthermore, motherboard bootup relies on the ESPI handshake, requiring the motherboard to complete communication handshakes with the specified number of devices and confirm that the firmware has loaded before booting can proceed. This approach is insufficient for addressing dynamic expansion needs, as it cannot dynamically adjust based on the number of connected devices during operation, making it difficult to adapt to situations where the number of external devices is uncertain.
[0003] The above content is only used to assist in understanding the technical solution of this application and does not constitute an admission that the above content is prior art. Summary of the Invention
[0004] The main purpose of this application is to provide a dynamic expansion control method, device and storage medium for a motherboard interface device, aiming to solve the technical problem of how to dynamically adjust the communication mode of the motherboard to adapt to changes in external devices.
[0005] To achieve the above objectives, the present application proposes a method for dynamically expanding a motherboard interface device, the method comprising:
[0006] In response to a mainboard power-on operation, controlling the mainboard to start up in a single-channel communication mode as an initial mode, and completing handshake communication with an onboard device, the onboard device being fixedly mounted on the mainboard;
[0007] Detecting all communication interfaces on the mainboard through predefined general purpose input and output pins to determine whether an external device exists;
[0008] If the external device is detected on the communication interface, the single-channel communication mode is switched to the dual-channel communication mode through the soft jumper area rewriting function in the basic input and output system flash memory, and the mainboard is triggered to power off to a preset state;
[0009] The mainboard is controlled to restart in the two-way communication mode, and a communication handshake is completed with the onboard device and the external device in sequence, and a two-way communication driver is loaded to realize dual-device startup.
[0010] In one embodiment, in response to a mainboard power-on operation, controlling the mainboard to start up in a single-channel communication mode as an initial mode to complete handshake communication with an onboard device, wherein the onboard device is fixedly mounted on the mainboard, comprises:
[0011] In response to the mainboard power-on operation, loading a pre-configured one-way communication driver from a basic input and output system;
[0012] Initializing registers and interrupt settings of a communication interface based on the one-way communication driver, and controlling the mainboard to start in the one-way communication mode;
[0013] In the single-channel communication mode, a handshake request signal is sent to the onboard device through the communication interface, and a response signal from the onboard device is received to complete the handshake communication.
[0014] In one embodiment, the step of detecting all communication interfaces on the mainboard through predefined general purpose input / output pins to determine whether an external device exists includes:
[0015] Determining whether the external device exists on the communication interface by reading the pin voltage of the general input / output pin;
[0016] If the pin voltage jumps from a low level state to a high level state, it is determined that the external device exists;
[0017] If the level of the pin voltage remains unchanged, it is determined that the external device does not exist.
[0018] In one embodiment, the step of detecting all communication interfaces on the mainboard through predefined general purpose input / output pins to determine whether an external device exists further includes:
[0019] If it is detected that the external device exists on the communication interface, a handshake signal is sent to the communication interface via the general input and output pin;
[0020] receiving and analyzing a response signal returned by the external device to obtain characteristics of the response signal;
[0021] Judging the characteristics of the response signal according to the handshake success condition specified in the ESPI protocol specification to determine whether the external device is an ESPI device;
[0022] If the characteristics of the response signal meet the handshake success condition, it is determined that the handshake with the external device is successful, that is, the external device is an ESPI device.
[0023] In one embodiment, if the external device is detected on the communication interface, the steps of switching from the single-channel communication mode to the dual-channel communication mode by rewriting the soft jumper area in the basic input / output system flash memory and triggering the motherboard to power off to a preset state include:
[0024] Accessing the soft jumper area through the flash memory management function of the basic input and output system, and reading and verifying the soft jumper area to ensure that the soft jumper area is in a writable state;
[0025] generating configuration information for switching the communication mode from the single-channel communication mode to the dual-channel communication mode, and writing the configuration information into the soft jumper area;
[0026] A deep sleep power-off instruction is sent to the mainboard through register operation of an embedded controller or a south bridge chip to trigger the mainboard to be powered off to a preset state.
[0027] In one embodiment, the steps of controlling the mainboard to restart in the two-way communication mode, completing communication handshakes with the onboard device and the external device in sequence, and loading a two-way communication driver to implement dual-device startup include:
[0028] Sending a restart instruction to the power control unit of the mainboard through the embedded controller to control the mainboard to restart in the two-way communication mode;
[0029] Based on the two-way communication mode, completing a communication handshake with the onboard device and the external device in sequence according to a predefined order;
[0030] Loading a dual-channel communication driver in a basic input / output system to allocate independent communication channels and interrupt resources for the onboard device and the external device;
[0031] The data transmission requests of the onboard device and the external device are synchronously processed through a polling mechanism or an event triggering mechanism to realize dual-device startup.
[0032] In one embodiment, after the steps of controlling the mainboard to restart in the two-way communication mode, completing communication handshakes with the onboard device and the external device in sequence, and loading a two-way communication driver to implement dual-device startup, the steps include:
[0033] Monitoring the real-time load conditions of the onboard device and the external device;
[0034] Dynamically adjusting the communication bandwidth allocated to the onboard device and the external device according to the real-time load condition;
[0035] The access requests of the onboard device and the external device to the communication channel are managed by a hardware interrupt controller, and the access right to the communication channel is determined according to a device priority rule.
[0036] In one embodiment, the dynamic expansion control method of the motherboard interface device further includes:
[0037] If a hot plug event is detected, a control signal is sent to the corresponding communication interface to freeze the current communication link of the communication interface to prevent data loss or damage;
[0038] Allocating an independent buffer for a new device connected to the communication interface, and dynamically updating a corresponding driver based on the type of the new device;
[0039] The single-channel communication mode is switched to the dual-channel communication mode. If the communication mode switching fails, a rollback mechanism is triggered to restore to the single-channel communication mode, and the reason for the mode switching failure is notified to the user end.
[0040] In addition, to achieve the above-mentioned purpose, the present application also proposes a dynamic expansion control device for a motherboard interface device, the device comprising: a memory, a processor, and a computer program stored on the memory and runnable on the processor, the computer program being configured to implement the steps of the dynamic expansion control method for the motherboard interface device as described above.
[0041] In addition, to achieve the above-mentioned purpose, the present application also proposes a storage medium, which is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by the processor, the steps of the dynamic expansion control method of the motherboard interface device as described above are implemented.
[0042] The present application provides a method for dynamically expanding and controlling a motherboard interface device. The present application controls the motherboard to start up in a single-channel communication mode as the initial mode in response to a motherboard power-on operation, completes handshake communication with an onboard device, and the onboard device is fixed to the motherboard; detects all communication interfaces on the motherboard through predefined general-purpose input / output pins to determine whether an external device exists; if an external device is detected on the communication interface, switches from a single-channel communication mode to a dual-channel communication mode through a soft jumper area rewrite function in a basic input / output system flash memory, and triggers the motherboard to power off to a preset state; controls the motherboard to restart in a dual-channel communication mode, completes communication handshakes with the onboard device and the external device in turn, and loads a dual-channel communication driver to achieve dual-device startup. The present application first simplifies the communication configuration and management during startup by starting in a single-channel communication mode, ensures that the system can complete the startup process quickly and stably, and avoids startup failure or system instability caused by communication mode mismatch or device conflict. By detecting the connection status of the external device on the communication interface in real time, it is determined whether the communication mode needs to be switched, thereby improving the system's adaptability to different device configurations. The soft jumper area rewrite function enables dynamic adjustment of the communication mode, improving the flexibility of the control system. By loading a dual-channel communication driver, the motherboard can simultaneously support the coordinated operation of onboard devices and external devices, improving data transmission efficiency. This application achieves the technical effect of dynamically adjusting the motherboard's communication mode to adapt to changes in external devices. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.
[0044] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0045] Figure 1 A flowchart of the first embodiment of the method for dynamic expansion control of a motherboard interface device of the present application is provided;
[0046] Figure 2 A flowchart of the second embodiment of the method for dynamically expanding the control of the motherboard interface device of the present application is provided;
[0047] Figure 3 A flowchart of the third embodiment of the method for dynamic expansion control of a motherboard interface device of the present application is provided;
[0048] Figure 4A flowchart of a fourth embodiment of a method for dynamically expanding a motherboard interface device according to the present invention is provided;
[0049] Figure 5 A brief flowchart of the dynamic expansion control method for the motherboard interface device of this application is provided;
[0050] Figure 6 This is a schematic diagram of the device structure of the hardware operating environment involved in the dynamic expansion control method of the motherboard interface device in the embodiment of the present application.
[0051] The purpose, features and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0052] It should be understood that the specific embodiments described herein are merely used to explain the technical solutions of the present application and are not intended to limit the present application.
[0053] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.
[0054] The main solutions of the embodiments of this application are:
[0055] Currently, in Intel motherboard designs, the number of devices supported by the Enhanced Serial Peripheral Interface (ESPI) is set in the motherboard firmware. Once the motherboard firmware is flashed, the ESPI configuration parameters are fixed, and the number of supported devices cannot be modified dynamically. Furthermore, motherboard bootup relies on an ESPI handshake, requiring the motherboard to complete communication handshakes with the specified number of devices and confirm that the firmware has loaded before booting can proceed. This approach is insufficient for addressing dynamic expansion needs, as it cannot dynamically adjust based on the number of connected devices during operation, making it difficult to adapt to situations where the number of connected devices is uncertain.
[0056] This application simplifies the communication configuration and management at startup by starting in single-channel communication mode, ensuring that the system can complete the startup process quickly and stably, avoiding startup failure or system instability caused by communication mode mismatch or device conflict. By detecting the connection status of external devices on the communication interface in real time, it is determined whether the communication mode needs to be switched, thereby improving the system's adaptability to different device configurations. The soft jumper area rewrite function enables dynamic adjustment of the communication mode, improving the flexibility of the control system. By loading the dual-channel communication driver, the motherboard can simultaneously support the collaborative work of onboard devices and external devices, adapt to changes in external devices, and improve data transmission efficiency.
[0057] It should be noted that the execution subject of this embodiment can be a dynamically expandable control system for a motherboard interface device, a computing service device with data processing, network communication, and program execution functions, such as a tablet computer, personal computer, or mobile phone, or a control device for a dynamically expandable control system for a motherboard interface device capable of implementing the aforementioned functions, etc. This embodiment does not specifically limit this. The following uses the dynamically expandable control system for a motherboard interface device as an example to illustrate this embodiment and the following embodiments.
[0058] Example 1
[0059] Based on this, this application proposes a first embodiment of a dynamic expansion control method for a motherboard interface device, please refer to Figure 1 , the dynamic expansion control method of the motherboard interface device includes:
[0060] Step S10 , in response to the mainboard power-on operation, controlling the mainboard to start up in a single-channel communication mode as an initial mode, and completing handshake communication with an onboard device, wherein the onboard device is fixedly mounted on the mainboard.
[0061] By using single-channel communication mode as the initial startup mode, the communication configuration at startup is simplified, avoiding startup failures caused by communication conflicts among multiple devices or complex configurations, and ensuring that the motherboard can successfully establish a reliable communication connection with onboard devices.
[0062] In this embodiment, the motherboard startup operation is a user-triggered motherboard startup operation. Pressing the power button on the computer sends a startup command to the motherboard, causing it to enter the startup process from a shutdown state. The motherboard is a core component in a computer system, serving as the hub connecting the various hardware components of the computer. It is responsible for coordinating the operations between these components and transmitting data and instructions. Single-channel communication mode means that the motherboard uses only a single communication channel to communicate with onboard devices during the initial startup phase. Compared to multi-channel communication mode, single-channel communication mode has a relatively simple structure and communication logic, which can reduce the probability of errors or conflicts during communication and ensure communication stability. Onboard devices are hardware devices directly integrated into the motherboard. The motherboard is equipped with an onboard device and communicates and exchanges data with the motherboard through the motherboard's ESPI communication interface. The ESPI communication interface is a computer hardware interface used to provide communication between the motherboard's central processing unit (CPU) and other hardware devices. Handshake communication is a communication protocol or process used to establish a reliable communication connection between the motherboard and onboard devices. During the handshake process, the two devices will exchange signals or data packets according to predefined rules and sequences to confirm each other's existence, the consistency of communication parameters, and the availability of the communication channel.
[0063] As an optional embodiment, receiving a power-on signal from a user pressing the power button triggers the motherboard's power management module to begin operation. The power management module then sends a startup signal to the power control chip on the motherboard. Upon receiving the startup signal, the power control chip begins powering the various hardware components on the motherboard. Upon receiving the power-on signal, the motherboard's Basic Input / Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) begins operation. Register parameters of the ESPI communication interface are set to configure the ESPI communication interface to single-channel communication mode. A handshake request signal is sent to an onboard device via the predefined ESPI communication interface. Based on the response signal returned by the onboard device after receiving the handshake request, the device's operating parameters, such as the communication rate, buffer size, and interrupt priority, are configured to establish the communication link and enter the power-on state.
[0064] Optionally, for motherboards that support remote wake-up function, the network interface chip receives the wake-up command sent by the user through the network and passes it to the power management chip of the motherboard. The power management chip parses and verifies the command, and after confirming that it is correct, it starts the motherboard's power-on initialization process to achieve remote power-on.
[0065] Optionally, if the mainboard does not receive a response signal from the onboard device within the specified timeout period after sending a handshake request signal, it will automatically resend the handshake request signal. If the handshake communication cannot be completed after the number of retries reaches a predetermined number, an error message will be reported to prompt the user that there may be a hardware failure.
[0066] Optionally, step S10 includes:
[0067] Step S11 , in response to the mainboard power-on operation, loading a pre-configured one-way communication driver from a basic input / output system.
[0068] The pre-configured single-channel communication driver is loaded from the basic input and output system to provide necessary software support for the subsequent initialization of the communication interface and the startup of the single-channel communication mode based on the driver.
[0069] It's important to note that the Basic Input / Output System (BIOS) is a program stored in a read-only memory chip on a computer's motherboard. It stores the computer's most important basic input / output programs, system settings, post-boot self-test programs, and system startup routines. Its primary function is to provide the lowest-level, most direct hardware configuration and control for the computer. It runs first when the computer boots up and is responsible for initializing hardware devices and checking system configurations. A single-channel communication driver is a driver program stored on the motherboard that contains initialization code.
[0070] Optionally, pre-written single-channel communication driver code is compiled and stored in a specific memory area of the motherboard's BIOS chip. When the motherboard responds to a power-on operation, the BIOS sequentially executes the internally stored program modules according to a pre-set startup process. When the BIOS reaches the communication initialization module, it locates the address area storing the single-channel communication driver and loads the driver code into memory.
[0071] As an optional implementation, according to the hardware configuration of the mainboard and the startup mode of the single-channel communication mode, a suitable single-channel communication driver is selected from a stored driver list for loading.
[0072] Optionally, during the loading process, the BIOS performs an integrity check on the driver to ensure that the code is not corrupted or erroneous.
[0073] Step S12: Initializing registers and interrupt settings of the communication interface based on the one-way communication driver, and controlling the mainboard to start in the one-way communication mode.
[0074] Based on the loaded single-channel communication driver, the registers and interrupts of the communication interface are initialized and set so that the communication interface can work normally according to the requirements of the single-channel communication mode, thereby controlling the mainboard to start in the single-channel communication mode and making hardware preparations for subsequent communication with onboard devices.
[0075] It should be noted that the communication interface is the ESPI communication interface, which implements the physical and logical data transmission between the motherboard and onboard devices on the motherboard. It includes hardware circuitry and software-defined communication protocols. Registers are fast storage units within the central processing unit (CPU) or other chips for storing data and instructions. Registers are used to store communication-related configuration information, status information, and control commands. Interrupts are a hardware mechanism that, when an event such as data reception or data transmission completion occurs on the ESPI communication interface, sends an interrupt request signal to the CPU, instructing the CPU to pause the currently executing program and instead execute the corresponding interrupt handler. Interrupt settings include setting the interrupt triggering method, interrupt priority, and interrupt vector table to ensure that the CPU responds promptly and accurately to interrupt requests from the ESPI communication interface.
[0076] As an optional implementation, a single-channel communication driver provides corresponding functions or instructions based on the requirements of the single-channel communication mode. The central processing unit calls these functions or instructions to read and write various registers of the ESPI communication interface to initialize the configuration. The single-channel communication driver also sets interrupt trigger conditions and interrupt handlers based on the functions and requirements of the communication interface.
[0077] Exemplarily, based on the functions or instructions provided by a single-channel communication driver, the central processing unit (CPU) performs read and write operations on various registers of the communication interface, setting the communication mode register to single-channel communication mode, configuring the communication rate register to a set transmission rate, and setting the data bit width register to a set bit width. The single-channel communication driver registers the corresponding interrupt handler address in an interrupt vector table. When the communication interface receives data from an onboard device, a receive interrupt is triggered. The CPU then jumps to the corresponding interrupt handler according to the interrupt vector table, allowing the interrupt handler to process the received data. Processing the received data includes verifying the integrity of the data and storing the data in a designated memory area.
[0078] Step S13 , in the one-way communication mode, sending a handshake request signal to the onboard device through the communication interface, and receiving a response signal from the onboard device, thereby completing the handshake communication.
[0079] In the single-channel communication mode, the system performs handshake communication with the onboard device through the initialized ESPI communication interface to confirm the existence and normal communication of the devices on both sides, thereby entering the power-on state and preparing for further startup and operation of the system.
[0080] It should be noted that the handshake request signal is sent by the motherboard to the onboard device to initiate the handshake communication process. The handshake request signal contains the motherboard's device information, communication parameters, and other information. After receiving the handshake request signal, the onboard device returns a response signal based on its own status and configuration. It contains relevant information such as the device type and supported communication parameters. By receiving and analyzing the response signal, the motherboard can confirm the presence and communication status of the onboard device.
[0081] As an optional implementation, after the ESPI communication interface is initialized, a single-channel communication driver controls the ESPI communication interface to send a handshake request signal to the onboard device according to a predefined communication protocol and format. The ESPI communication interface continuously monitors signals on the bus. When a response signal from the onboard device is detected, the single-channel communication driver parses the response signal according to the communication protocol, extracts key information from the response signal, and compares and verifies it with pre-stored information. If verification succeeds, the handshake communication between the motherboard and the onboard device is successfully completed. The bus is the common communication trunk line that transmits information between various functional components on the motherboard. It serves as the data channel connecting components such as the central processing unit, memory, cache, and external control chips.
[0082] Step S20: detecting all communication interfaces on the mainboard through predefined general purpose input and output pins to determine whether an external device exists.
[0083] When the motherboard is powered on, the connection status of external devices on all communication interfaces on the motherboard is detected, the connection status between the motherboard and external devices is understood in real time, and whether there are external devices is determined, thereby providing a basis for subsequent communication mode switching and device management.
[0084] In this embodiment, General Purpose Input / Output (GPIO) pins are flexible and configurable pins on the motherboard. They can be set to input or output mode according to system requirements. As input pins, they can detect the high and low levels of external signals; as output pins, they can send control signals to external devices. The motherboard's communication interfaces include the motherboard ESPI interface and the motherboard M.2 slot. The motherboard ESPI interface is designed for customized devices developed by third parties and supports flexible expansion. The interface design is non-standard, and different motherboard ESPI interfaces can accommodate ESPI devices with different functions and specifications. The motherboard M.2 slot is a standardized high-speed expansion interface for connecting M.2-interface ESPI peripheral cards.
[0085] As an optional implementation, predefined GPIO pins are configured in input mode by setting GPIO pin registers to read electrical signals from all ESPI communication interfaces on the motherboard. The GPIO pin levels are periodically polled to detect the voltage levels of all GPIO pins used to detect external device connection status. The values read are then stored in memory. The currently read GPIO pin voltage level is compared with the previously read value in memory to determine whether a voltage level change has occurred. If the voltage level of the GPIO pin corresponding to the ESPI communication interface changes, it is determined that an external device is connected to that ESPI communication interface.
[0086] As an optional implementation method for detecting the communication interface, all ESPI communication interfaces are traversed and detected, and the level status of the general input and output pins corresponding to each ESPI communication interface is read in sequence according to a preset order. After each pin is detected, it is recorded whether the ESPI communication interface corresponding to the pin is connected to an external device.
[0087] As an optional implementation method for detecting the communication interface, all ESPI communication interfaces are fully detected, and the level status of all general input and output pins used to detect external devices of the ESPI communication interface are read at the same time. The read level status is uniformly judged to determine whether each ESPI communication interface has an external device connected.
[0088] Exemplarily, the general input and output pin is connected to the power pin of the M.2 slot on the motherboard. Through the basic input and output system, the general input and output pin is configured as input mode, and the internal pull-up resistor is enabled. The level status of the general input and output pin is read regularly to determine whether an external device is connected to the M.2 slot.
[0089] Optionally, due to mechanical contact and other reasons, the voltage level of the general-purpose input and output pins may fluctuate when a device is plugged in or unplugged. Use an RC filter circuit for hardware de-jittering. Simultaneously, perform software de-jittering to continuously test the voltage level multiple times. If the test results are consistent, the voltage level is considered stable.
[0090] Optionally, step S20 includes:
[0091] Step S21 , determining whether the external device exists on the communication interface by reading the pin voltage of the general input / output pin.
[0092] It should be noted that the pin voltage is the potential difference carried by the general input and output pins. By measuring the pin voltage, the status of the external circuit connected to the pin can be determined, and then whether there is an external device on the communication interface.
[0093] As an optional implementation, the general input and output pins are configured as input mode, and the microcontroller periodically polls and reads the analog voltage value of the pin, converts it into a digital signal, and compares it with the historical level status to determine whether there is an external device on the communication interface.
[0094] Optionally, each pin voltage value read is recorded, and the current pin level state is saved so as to be compared with the historical records later to determine whether the level state has changed.
[0095] Step S22: If the pin voltage changes from a low level state to a high level state, it is determined that the external device exists.
[0096] Exemplarily, based on preset high and low thresholds, the currently read pin voltage value is converted to a voltage state and compared with the historical voltage state. If the current voltage state is high and the historical voltage state is low, it indicates that the pin voltage has transitioned from a low state to a high state. According to hardware design specifications, when the voltage on a general-purpose input / output pin transitions from a low level to a high level, it indicates that an external device is plugged into the corresponding communication interface. Therefore, it is determined that an external device is connected to the communication interface corresponding to the input / output pin.
[0097] Optionally, if in the hardware design specifications of the motherboard, when the communication interface is not connected to an external device, the voltage of the corresponding general input / output pin is high, at this time, when the general input / output pin voltage jumps from high to low, it indicates that an external device is inserted into the corresponding communication interface, and it is determined that there is an external device in the communication interface corresponding to the input / output pin.
[0098] Step S23: If the level of the pin voltage remains unchanged, it is determined that the external device does not exist.
[0099] Exemplarily, the currently read pin voltage value is converted into a level state and compared with the level state recorded last time. If the two level states are the same, that is, the level state of the pin voltage has not changed, it is determined that there is no external device on the communication interface.
[0100] Step S30: If it is detected that the external device exists on the communication interface, the single-channel communication mode is switched to the dual-channel communication mode through the soft jumper area rewriting function in the basic input and output system flash memory, and the mainboard is triggered to power off to a preset state.
[0101] When an external device is detected connected to the communication interface, the communication mode of the motherboard is dynamically adjusted to adapt to the new device configuration requirements. By switching from single-channel communication mode to dual-channel communication mode and triggering a power-off restart of the motherboard, the system is ensured to run stably in the new communication mode, while avoiding device malfunction or system instability caused by communication mode mismatch.
[0102] In this embodiment, the Basic Input / Output System (BIOS) flash memory is a flash memory chip that stores BIOS programs. It is rewritable and allows the user or system to update and modify the BIOS programs. The soft jumper area is a specific area within the BIOS flash memory that stores parameters that can be configured and modified by software. By modifying the contents of the soft jumper area, the motherboard hardware configuration can be dynamically adjusted without changing the physical jumpers. The rewrite function allows the contents of the soft jumper area to be modified through software. The dual-channel communication mode uses two independent communication channels for simultaneous data transmission. The two channels can transmit different data in parallel, thereby increasing the data transmission rate and supporting the coordinated operation of more devices. The preset states include a power-off state or a low-power state. The power-off state is the zero-power state entered after the motherboard is completely powered off and all hardware components stop operating. This is the G3 state in the Advanced Configuration and Power Interface (ACPI) power management specification. In this state, the motherboard is completely shut down. Except for the real-time clock, which is powered by the internal battery, all other hardware is powered off. This is a state in which power is completely cut off mechanically. The low-power state is a state in which the motherboard enters a low-power sleep mode and some hardware retains power to maintain basic functions, including the S3 state in the power management specification, in which the motherboard saves the system state to the memory, turns off the power to most hardware devices, and only retains power to the memory; and the S4 state in the power management specification, in which the motherboard saves the system state to the disk and turns off the power to all hardware devices, including the memory; as well as other low-power states specified in the power management specification.
[0103] As an optional implementation, upon detecting the presence of an external device, the BIOS accesses the corresponding BIOS flash memory and, based on the soft jumper parameters for switching communication modes, writes code to the soft jumper area of the BIOS flash memory chip, writing new parameter values to switch from single-channel communication mode to dual-channel communication mode. After completing the communication mode switch, the BIOS triggers the motherboard to enter the G3 state, a completely powered-off state, by sending a power-off command to the motherboard's power management controller.
[0104] As another optional implementation method for entering the preset state, after completing the communication mode switching, the low-power state that the motherboard needs to enter is determined. If it is determined that the motherboard enters the S3 state, the basic input and output system triggers the motherboard to enter the low-power S3 state by sending an S3 instruction to the power management controller of the motherboard.
[0105] Optionally, the dual-channel communication mode of the present application is switched when only one external device is connected, but if the motherboard detects multiple external devices, it can switch to a multi-channel communication mode with a number of communication channels corresponding to the number of external devices. The switching method is the same as the dual-channel communication mode switching method.
[0106] Optionally, step S30 includes:
[0107] Step S31 : Accessing the soft jumper area through the flash memory management function of the basic input / output system, and reading and verifying the soft jumper area to ensure that the soft jumper area is in a writable state.
[0108] Before modifying the soft jumper area, ensure that the area is in a writable state to avoid configuration information writing failure caused by the area not being writable, and ensure the smooth switching of subsequent communication modes.
[0109] For example, a read command is sent to the flash memory chip via the basic input / output system to obtain the current status information of the soft jumper area, including the write protection flag. If the write protection flag is 0, the write protection state is not activated, and the area is determined to be in a writable state. If the write protection flag is 1, the area is in a write-protected state, and a write-protection release command is sent. After the write protection is released, the status verification is performed again.
[0110] Step S32: generating configuration information for switching the communication mode from the single-channel communication mode to the dual-channel communication mode, and writing the configuration information into the soft jumper area.
[0111] The configuration information for switching the communication mode from single-channel to dual-channel is accurately written into the soft jumper area, so that the motherboard can perform hardware initialization according to the new communication mode when it is started next time, thereby realizing the switching of the communication mode.
[0112] It should be noted that configuration information refers to a set of data used to define the working status and parameters of the motherboard hardware, including all parameters and settings required to switch the communication mode from single-channel to dual-channel, such as the register configuration, interrupt allocation, memory mapping, etc. of the communication interface.
[0113] Optionally, the configuration information required to switch the communication mode from single-channel to dual-channel is determined based on the motherboard hardware design documentation and the communication interface specification. A corresponding data structure is generated according to the determined configuration information using a program written in a programming language. The code for writing the configuration information is integrated into the basic input / output system.
[0114] Exemplarily, when it is detected that the communication mode needs to be switched, the soft jumper area is accessed through the basic input and output system, the code for writing the configuration information is executed, and the configuration information is written into the soft jumper area through the hardware interface.
[0115] Step S33: Sending a deep sleep power-off instruction to the mainboard through register operation of the embedded controller or the south bridge chip to trigger the mainboard to power off to a preset state.
[0116] By sending a deep sleep power-off command, the mainboard is powered off to a preset state so that it can start in a new communication mode after powering on again. This ensures that the communication mode switch is effective and avoids hardware conflicts or data loss caused by switching under power.
[0117] It's important to note that an embedded controller (ECC) is an independent microcontroller on the motherboard. It manages low-speed devices like the power supply and communicates with the basic input / output system (BIOS) to implement power management. The southbridge chip is a crucial component of the motherboard chipset, responsible for hardware functions like power management. It is a key component for data exchange and control between the motherboard and external devices. Registers are internal memory cells used to store control and status information. The deep sleep power-off command is a power management command that instructs the motherboard to enter the G3 state and cut off power. This command ensures that all motherboard hardware components completely cease operation and saves the system state to non-volatile memory, allowing for recovery upon restart.
[0118] As an optional implementation, the embedded controller's data sheet determines the relevant register addresses for controlling the motherboard's power management, as well as the command value for triggering a deep sleep power-off. The basic input / output system communicates with the embedded controller and writes the deep sleep power-off command value to the target register address, thereby powering down the motherboard to a predetermined state.
[0119] As another optional implementation, the register address and deep sleep power-off instruction value of the south bridge chip used to control the motherboard power state are obtained. A power management specification table written in the basic input and output system defines a method for triggering deep sleep power-off by operating the south bridge chip's registers. The operating system loads the power management specification table at startup and calls the corresponding method to implement power management functions. When it is necessary to trigger a motherboard power-off, this method is called to write the deep sleep power-off instruction value to the designated register of the south bridge chip through the hardware abstraction layer interface provided by the power management specification, thereby powering off the motherboard to a preset state.
[0120] Optionally, after switching from the single-channel communication mode to the dual-channel communication mode, the mainboard can be controlled to enter the low-power G3 state through the embedded controller or the edge baseboard management controller.
[0121] Step S40 , controlling the mainboard to restart in the two-way communication mode, completing communication handshakes with the onboard device and the external device in sequence, and loading a two-way communication driver to realize dual-device startup.
[0122] The motherboard completes the startup process according to the newly configured two-way communication mode, establishes stable and efficient communication connections with onboard devices and external devices, and loads drivers adapted to two-way communication to achieve collaborative work between onboard devices and external devices in the two-way communication mode, giving full play to the performance advantages of the two-way communication mode, improving data transmission efficiency and system performance, and meeting the needs of efficient collaboration between devices in complex application scenarios.
[0123] In this embodiment, the two-way communication driver is a software program designed for the two-way communication mode, and is used to manage and control data transmission between the mainboard and onboard devices and external devices in the two-way communication mode.
[0124] As an optional implementation, the mainboard is immediately powered on after power failure, and power is supplied to the various hardware components on the mainboard through the power management module. The basic input and output system reads the configuration information of the soft jumper area, and initializes the registers and interrupt settings of the communication interface according to the configuration information of the two-way communication mode to ensure that the communication interface can support two-way communication. Enumerate onboard devices and external devices, identify the type, model, unique identifier and connected communication interface of each device, and perform communication handshakes with the onboard devices and external devices in a predefined order. After the device communication handshake is completed, the corresponding two-way communication driver is automatically found and loaded from the driver library according to the hardware ID and device type of the device. The two-way communication driver is used to manage data transmission between the mainboard and onboard devices and external devices to achieve dual-device startup.
[0125] Optionally, during the handshake process, communication parameters are dynamically adjusted to suit the characteristics of different devices, and the communication rate and buffer size are automatically adjusted according to the response time and data transmission capability of the device.
[0126] Optionally, step S40 includes:
[0127] Step S41: sending a restart instruction to the power control unit of the mainboard via the embedded controller to control the mainboard to restart in the two-way communication mode.
[0128] A restart instruction is sent to the power control unit of the mainboard through the embedded controller, so that the mainboard is restarted in the dual-channel communication mode, ensuring that the system can operate normally according to the new communication mode, completing the restart preparation after the system configuration is changed, and enabling the system to start in the dual-channel communication mode after restart.
[0129] It should be noted that the power control unit is the component on the motherboard that is responsible for managing the power distribution and control of the entire motherboard.
[0130] Exemplarily, an embedded controller sends a restart command to the power control unit. Upon receiving the restart command from the embedded controller, the power control unit restarts the mainboard according to a predetermined power-on sequence, sequentially providing power to each component on the mainboard and monitoring the power-on status of each component to ensure normal startup. After the mainboard power is restarted, initial configuration is performed based on the dual-way communication mode to which it has switched.
[0131] Step S42 : Based on the two-way communication mode, the communication handshake is completed with the onboard device and the external device in sequence according to a predefined order.
[0132] It should be noted that the predefined order refers to the order of communication handshakes with devices that is formulated during system design based on factors such as the type, importance, and connection location of the devices.
[0133] Optionally, define the order of handshaking with onboard devices and external devices based on the hardware design document and device priority, placing the handshake sequence for onboard devices before that for external devices.
[0134] For example, after starting in the two-way communication mode, handshake request signals are sent to the onboard device and the external device in turn according to a predefined order, the identity and communication capability of the device are verified according to the response signals of the onboard device and the external device, and the handshake is completed to enter the normal communication state.
[0135] Step S43 , loading a two-way communication driver in the basic input / output system, and allocating independent communication channels and interrupt resources for the onboard device and the external device.
[0136] It should be noted that the interrupt resource is a mechanism used to notify the central processing unit that there are external events that need to be handled. An independent interrupt request line is allocated to each device. When the device generates an event, an interrupt signal is sent to the central processing unit through the interrupt request line. The central processing unit responds to the interrupt and executes the corresponding interrupt handler.
[0137] For example, based on the device information of the onboard device and the external device and the resource information of the basic input and output system, a two-way communication driver is loaded. Based on the two-way communication driver, independent communication channels are allocated to the onboard device and the external device according to the type of device, communication requirements and system resource conditions, and independent interrupt resources are allocated to each device through the interrupt management interface.
[0138] Optionally, during the basic input and output system startup process, communication channels and interrupt resources are reserved for onboard devices and external devices according to hardware design information and predefined device configurations.
[0139] Step S44 , synchronously processing the data transmission requests of the onboard device and the external device through a polling mechanism or an event triggering mechanism to realize dual-device startup.
[0140] It should be noted that the polling mechanism checks onboard and external devices at regular intervals for data transfer requests. If a request is received, it is immediately processed. If not, the next device is checked, and the cycle repeats. The event-triggered mechanism is that when a device receives a data transfer request, it sends an event notification to the motherboard via an interrupt. The motherboard responds to the event notification and processes the data transfer request.
[0141] As an optional implementation, under the polling mechanism, data transmission requests from the onboard device and the external device are checked and processed in sequence according to a preset polling cycle and sequence. After processing is completed, the next round of polling is continued, achieving efficient collaborative operation of the two devices.
[0142] As another optional implementation, under an event-triggered mechanism, onboard and external devices send interrupt signals to the CPU via the interrupt request line when data transfer requests are made. The CPU responds to the interrupt and calls the corresponding interrupt handler to process the data transfer request. After processing the data transfer request, the interrupt handler executes an interrupt return instruction, restoring the CPU to its pre-interrupt state and continuing normal program execution, completing the dual-device startup process and enabling dual-device startup.
[0143] Optionally, data transfer requests from onboard and external devices can be prioritized based on the importance and urgency of the task. When processing requests, they are scheduled in order of priority to ensure that critical tasks are handled promptly.
[0144] The present embodiment provides a method for dynamic expansion control of a motherboard interface device. The present embodiment first simplifies the communication configuration and management at startup by starting in a single-channel communication mode, ensuring that the system can complete the startup process quickly and stably, and avoiding startup failure or system instability caused by communication mode mismatch or device conflict. By detecting the connection status of external devices on the communication interface in real time, it is determined whether the communication mode needs to be switched, thereby improving the system's adaptability to different device configurations. The soft jumper area rewrite function realizes dynamic adjustment of the communication mode, thereby improving the flexibility of the control system. By loading a dual-channel communication driver, the motherboard can simultaneously support the collaborative work of onboard devices and external devices, adapt to changes in external devices, and improve data transmission efficiency.
[0145] Based on the first embodiment, the second embodiment of the present application proposes a dynamic expansion control method for a motherboard interface device, referring to Figure 2 , step S20 further includes:
[0146] Step A10: If it is detected that the external device exists on the communication interface, a handshake signal is sent to the communication interface through the general input and output pin.
[0147] When the presence of the external device is detected on the ESPI communication interface, the system actively establishes contact with the external device, obtains device information, and prepares for subsequent device identification and communication.
[0148] It should be noted that handshake signals are generated based on the ESPI protocol specification and are used for handshake communication with ESPI devices. These signals consist of a series of pulses with specific timing and level changes. Sending handshake signals to the ESPI communication interface triggers a response from the connected ESPI device. The ESPI protocol specification specifies the format, sequence, and timing of device communication, including the signal characteristics and judgment criteria during the handshake process.
[0149] As an optional implementation, when a device is detected to be connected, a general purpose input / output pin control function is called to configure the general purpose input / output pin to output mode and set the output level, thereby sending a handshake signal to the ESPI communication interface via the general purpose input / output pin.
[0150] Step A20: Receive and analyze the response signal returned by the external device to obtain the characteristics of the response signal.
[0151] Receiving and parsing the response signal can verify whether the communication link between the mainboard and the external device is normally established, and determine the characteristics of the response signal so as to accurately identify the device type of the external device.
[0152] It should be noted that the characteristics of the response signal are representative characteristic information of the response signal, including signal timing, level changes, data encoding format, etc., which are used to determine whether the device complies with the ESPI protocol.
[0153] As an optional implementation, the response signal is monitored in real time by polling the status of the general purpose input and output pins, and the received response signal is parsed according to the ESPI communication protocol and the signal feature template to determine the characteristics of the response signal.
[0154] Step A30: judging the characteristics of the response signal according to the handshake success condition specified in the ESPI protocol specification to determine whether the external device is an ESPI device.
[0155] The handshake process confirms whether the external device complies with the ESPI protocol specifications, ensuring that the motherboard can effectively communicate with compatible ESPI devices, avoiding system malfunction or communication failure caused by connecting incompatible devices, and ensuring stable system operation and accurate data transmission.
[0156] It should be noted that the handshake success conditions are specific conditions defined in the ESPI protocol, including signal level changes, timing requirements, data format, etc. When the response signal returned by the external device meets these conditions, it indicates that the handshake is successful.
[0157] As an optional implementation, the response signal characteristics obtained by analysis are compared one by one with the handshake success conditions specified in the ESPI protocol specification, including checking whether the starting level of the signal meets the requirements, whether the pulse timing matches, and whether the data encoding complies with the format specified in the ESPI protocol.
[0158] Step A40: If the characteristics of the response signal meet the handshake success condition, it is determined that the handshake with the external device is successful, that is, the external device is an ESPI device.
[0159] As an optional implementation, if all comparison items of the handshake success condition meet the handshake success condition specified in the ESPI protocol, it is determined that the handshake with the external device is successful, that is, the external device is considered to be an ESPI device.
[0160] This embodiment provides a dynamic expansion control method for motherboard interface devices. This embodiment first identifies the type of external device and quickly determines its compatibility when the device is connected, ensuring that communication is established only with compatible devices, avoiding system failures or performance degradation caused by device incompatibility, and improving system stability.
[0161] Based on the first embodiment, the third embodiment of the present application proposes a dynamic expansion control method for a motherboard interface device, referring to Figure 3 , after step S40, including:
[0162] Step S50: monitoring the real-time load conditions of the onboard device and the external device.
[0163] Real-time understanding of the load conditions of onboard and external devices provides a basis for dynamic adjustment of communication resources to ensure efficient system operation.
[0164] It should be noted that the real-time load situation refers to indicators such as data transmission rate, processor utilization, and memory occupancy during the operation of the device, reflecting the current working intensity of the device and the demand for communication resources.
[0165] As an optional implementation, performance counters built into the motherboard and onboard device chips can be used to directly collect operating data from onboard devices. Sensors installed in key locations on the onboard devices can monitor parameters such as temperature and power consumption to comprehensively assess the onboard device's load. Load information for external devices can be obtained in the same manner as for onboard devices.
[0166] As another optional implementation, based on the onboard device driver, the internal status information of the onboard device is obtained, and the load data of the onboard device is transmitted to the system monitoring module through the driver interface. The load status of the external device is obtained in the same way as the onboard device.
[0167] Step S60: Dynamically adjust the communication bandwidth allocated to the onboard device and the external device according to the real-time load condition.
[0168] According to the actual load of the equipment, the communication bandwidth is reasonably allocated to ensure that high-load equipment obtains sufficient communication resources, while preventing low-load equipment from occupying too much bandwidth, thereby improving communication efficiency.
[0169] It should be noted that communication bandwidth is the amount of data transmitted through the communication channel per unit time. Communication bandwidth determines the data transmission speed. The larger the bandwidth, the more data is transmitted per unit time.
[0170] As an optional implementation, a ratio-based algorithm is used to allocate bandwidth according to the ratio of the device load to the total system load.
[0171] For example, if the onboard device load accounts for 60% of the total load and the external device load accounts for 40%, 60% of the communication bandwidth is allocated to the onboard device and 40% of the communication bandwidth is allocated to the external device.
[0172] Optionally, you can set weights for onboard devices and external devices and allocate initial bandwidth based on the weights. The initial bandwidth can be adjusted based on real-time load conditions.
[0173] Step S70: managing the access requests of the onboard device and the external device to the communication channel through the hardware interrupt controller, and determining the access right to the communication channel according to the device priority rule.
[0174] Different devices have different importance and task urgency. By setting device priority rules, we can ensure that key devices have priority access to communication channels, transmit key data in a timely manner, and avoid task delays due to channel occupation.
[0175] It's important to note that the hardware interrupt controller is the component on the motherboard responsible for managing interrupt requests. It receives interrupt request signals from devices, processes them according to preset rules, and transmits the interrupt signal to the central processing unit. A communication channel is the path for data transmission between devices. Multiple devices can share the same communication channel, but access is coordinated through a management mechanism. Device priority rules determine device access to communication channels based on a predefined priority order based on factors such as device type, purpose, and real-time load.
[0176] As an optional implementation, the hardware interrupt controller receives interrupt requests from onboard devices and external devices, and queues and arbitrates the interrupt requests according to device priority rules, allowing high-priority devices to obtain access to the communication channel to ensure that high-priority devices can transmit data in a timely manner.
[0177] Optionally, in the hardware interrupt controller, interrupt priorities are set for different devices by configuring registers, with the interrupt priority of the onboard device that processes real-time tasks being set to the highest, and different priorities being set for external devices according to the importance of their functions.
[0178] Optionally, an interrupt vector table is established to associate interrupt requests from different devices with corresponding interrupt handlers. When the hardware interrupt controller receives an interrupt request, it quickly locates and executes the corresponding handler according to the interrupt vector table.
[0179] This embodiment provides a method for dynamically expanding and controlling motherboard interface devices. This method monitors the real-time load of devices and allocates communication bandwidth based on their actual load requirements, ensuring that high-load devices have access to more communication resources, thereby improving data transmission rates. A hardware interrupt controller manages and arbitrates device access requests, ensuring orderly access to communication channels, avoiding communication conflicts and data loss, and enhancing system stability.
[0180] Based on the first embodiment, the third embodiment of the present application proposes a dynamic expansion control method for a motherboard interface device, referring to Figure 3 , the dynamic expansion control method of the motherboard interface device further includes:
[0181] Step B10: If a hot plug event is detected, a control signal is sent to the corresponding communication interface to freeze the current communication link of the communication interface to prevent data loss or damage.
[0182] When a hot-swap event occurs, the connection of a new device or the removal of an old one can cause the communication link to become unstable. If the communication link is not frozen promptly, data transmission may be interrupted due to the sudden change in interface status, resulting in data loss or corruption. Freezing the communication link can prevent system errors caused by hot-swap events.
[0183] It should be noted that a hot-swap event occurs when a hardware device is directly inserted into the system while it is running, without shutting down the system power. A control signal is an electrical signal or data packet sent to the communication interface to freeze the current communication link of the ESPI communication interface and suspend data transmission. The communication link is the data transmission channel established between the motherboard and the device through the ESPI communication interface, including both physical and logical connections.
[0184] As an optional implementation, a hot-plug detection pin on the communication interface chip generates a hardware interrupt signal when a device is detected to be plugged in. Upon receiving the interrupt signal, a control signal is sent to the ESPI communication interface via a hardware register, causing the ESPI communication interface to enter a frozen state.
[0185] Optionally, the hot plug event also includes an operation event of directly unplugging a hardware device without shutting down the system power supply during system operation.
[0186] As another optional implementation of hot plug event detection, the status register of the communication interface is polled periodically to check whether a hot plug event occurs.
[0187] Step B20: Allocate an independent buffer for the new device connected to the communication interface, and dynamically update the corresponding driver based on the type of the new device.
[0188] Provide independent memory space for data buffering for newly connected devices to ensure the stability of data transmission, and dynamically update drivers according to device types to achieve compatibility and function support.
[0189] It should be noted that the independent buffer is a dedicated memory space allocated to the new device for temporarily storing data to avoid data confusion and conflict and ensure the stability of data transmission.
[0190] For example, when a new device is detected, a continuous memory space is allocated from the memory pool as an independent buffer for the new device. By reading the identification information of the new device, a matching driver is searched in the driver database and loaded, and the driver list in the memory is dynamically updated.
[0191] Optionally, the size of the independent buffer is dynamically adjusted based on the type of device and the expected amount of data transfer.
[0192] Optionally, for a new device for which the driver database does not have a pre-installed corresponding driver, connect to the server of the driver vendor through the network to download and install the latest driver.
[0193] Step B30: Switch the single-channel communication mode to the dual-channel communication mode. If the communication mode switching fails, trigger a rollback mechanism to restore to the single-channel communication mode, and notify the user end of the reason for the mode switching failure.
[0194] After a hot-swap event, the communication mode is switched from single-channel to dual-channel to support the communication needs of the new device. If the switch fails, a rollback mechanism is triggered to ensure stable system operation.
[0195] It should be noted that the rollback mechanism is a mechanism for restoring the system state to the state before the operation when the system operation fails.
[0196] For example, a control command is sent to the mainboard to modify the register value of the mainboard, switching from single-channel communication mode to dual-channel communication mode. During the communication mode switching process, the execution of the switching operation is monitored in real time. If the switch fails based on preset error judgment conditions, a rollback mechanism is triggered to restore the configuration parameters of the communication interface to the single-channel communication mode state before the switch. The reason for the communication mode switch failure is recorded in the system log, and a corresponding error message is displayed on the user interface.
[0197] This embodiment provides a method for dynamically controlling the expansion of motherboard interface devices. This embodiment first freezes the communication link to effectively prevent data loss or corruption caused by hot-plugging, ensuring data integrity. By allocating a separate buffer for the new device, data transmission conflicts are avoided, improving system resource utilization. Dynamic driver updates ensure compatibility between the new device and the motherboard. A rollback mechanism is triggered when a communication mode switch fails, ensuring stable system operation. The user is promptly notified of the failure, enabling rapid response and resolution.
[0198] For example, in order to help understand the implementation process of the dynamic expansion control method of the motherboard interface device obtained by combining this embodiment with the above embodiment 1, please refer to Figure 5 , Figure 5 A brief flow chart of a method for dynamically expanding and controlling a motherboard interface device is provided, specifically:
[0199] When the user triggers the power button, the power management circuit receives the signal and begins supplying power to the motherboard. This activates the motherboard's startup circuits and initializes the hardware. During this process, the motherboard defaults to single-channel communication mode as the initial startup mode and enters the power-on state.
[0200] Furthermore, during the boot process, all M.2 slots on the motherboard are detected through predefined general-purpose input and output pins, detection signals are sent to these M.2 slots, and the returned response signals are listened to to check whether there is a second ESPI (Enhanced Serial Peripheral Interface) device connected to the motherboard through the M.2 slot.
[0201] If the second ESPI device is not detected, the system will continue to follow the preset normal startup process, loading the hardware device drivers on the motherboard, initializing the system memory, detecting and configuring the storage device, and finally booting the operating system.
[0202] If a second ESPI device is detected, the normal startup process is suspended and the configuration phase is entered instead. The setting information of the soft jumper area is read from the basic input and output system flash memory. The read soft jumper settings are compared one by one with the configuration requirements of the dual communication device to check whether there is any mismatch, so as to detect whether the soft jumper area is adapted to the dual communication device.
[0203] If the soft jumper area is detected to be suitable for dual communication devices, continue with the normal startup process to load the operating system and other necessary drivers to ensure that the system can start normally and use all connected communication devices.
[0204] When it is detected that the soft jumper area is not suitable for the dual communication device, a new soft jumper setting is generated according to the configuration requirements of the dual communication device, and the soft jumper area is rewritten through the basic input and output system to adapt to the dual communication device.
[0205] Furthermore, based on the system configuration and current status, the embedded controller controls the mainboard to enter the G3 state;
[0206] After entering the G3 state, immediately restart the motherboard and perform the device detection steps again to ensure that the soft jumper settings have taken effect and all communication devices can work normally.
[0207] It should be noted that the above examples are only used to understand this application and do not constitute a limitation on the dynamic expansion control method of the motherboard interface device of this application. More simple transformations based on this technical concept are all within the scope of protection of this application.
[0208] The present application provides a dynamic expansion control device for a motherboard interface device, the dynamic expansion control device for the motherboard interface device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the dynamic expansion control method for the motherboard interface device in the above-mentioned embodiment 1.
[0209] Reference below Figure 6 , which shows a schematic diagram of the structure of a dynamic expansion control device for a motherboard interface device suitable for implementing an embodiment of the present application. The dynamic expansion control device for a motherboard interface device in an embodiment of the present application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, personal digital assistants (PDAs), tablet computers (PADs), and the like, as well as fixed terminals such as desktop computers. Figure 6The dynamic expansion control device of the motherboard interface device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0210] like Figure 6 As shown, the dynamic expansion control device for the motherboard interface device may include a processing device 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes based on programs stored in a read-only memory (ROM) 1002 or programs loaded from a storage device 1003 into a random access memory (RAM) 1004. RAM 1004 also stores various programs and data required for the operation of the dynamic expansion control device for the motherboard interface device. Processing device 1001, ROM 1002, and RAM 1004 are interconnected via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to I / O interface 1006: input devices 1007 including, for example, a touch screen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output devices 1008 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 1003 including, for example, a magnetic tape, hard disk, etc.; and communication devices 1009. Communication devices 1009 can allow the dynamic expansion control device of the motherboard interface device to communicate with other devices wirelessly or wired to exchange data. Although the figure shows the dynamic expansion control device of the motherboard interface device with various systems, it should be understood that implementation or presence of all the illustrated systems is not required. More or fewer systems may alternatively be implemented or present.
[0211] In particular, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program comprising program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via a communication device, or installed from a storage device 1003, or installed from a read-only memory 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment disclosed in the present application are performed.
[0212] The dynamic expansion control device for a motherboard interface device provided in this application utilizes the dynamic expansion control method for a motherboard interface device described in the aforementioned embodiment, solving the technical problem of dynamically adjusting the motherboard's communication mode to accommodate changes in external devices. Compared to the prior art, the dynamic expansion control device for a motherboard interface device provided in this application achieves the same beneficial effects as the dynamic expansion control method for a motherboard interface device described in the aforementioned embodiment. Other technical features of the dynamic expansion control device for a motherboard interface device are the same as those disclosed in the aforementioned embodiment and are not further elaborated upon here.
[0213] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any one or more embodiments or examples in a suitable manner.
[0214] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
[0215] The present application provides a computer-readable storage medium having computer-readable program instructions (ie, a computer program) stored thereon, the computer-readable program instructions being used to execute the dynamic expansion control method for the motherboard interface device in the above-mentioned embodiment.
[0216] The computer-readable storage medium provided herein may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems, or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, system, or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including, but not limited to, wires, optical cables, radio frequency (RF), etc., or any suitable combination thereof.
[0217] The computer-readable storage medium may be included in the dynamic expansion control device of the motherboard interface device; or may exist independently without being assembled into the dynamic expansion control device of the motherboard interface device.
[0218] The above-mentioned computer-readable storage medium carries one or more programs. When the above-mentioned one or more programs are executed by the dynamic expansion control device of the motherboard interface device, the dynamic expansion control device of the motherboard interface device can be used to write computer program codes for performing the operations of the present application in one or more programming languages or a combination thereof. The above-mentioned programming languages include conventional procedural programming languages, such as "C" language or similar programming languages. The program code can be executed entirely on the user computer, partially on the user computer, as an independent software package, partially on the user computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer can be connected to the user computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider to connect through the Internet).
[0219] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, program segment or a part of code, and the module, program segment or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions.
[0220] The modules described in the embodiments of the present application may be implemented in software or hardware, wherein the name of a module does not necessarily limit the unit itself.
[0221] The computer-readable storage medium provided in this application stores computer-readable program instructions (i.e., a computer program) for executing the aforementioned method for dynamically controlling the expansion of a motherboard interface device. This computer-readable storage medium addresses the technical problem of dynamically adjusting a motherboard's communication mode to accommodate changes in external devices. Compared to the prior art, the beneficial effects of the computer-readable storage medium provided in this application are similar to those of the method for dynamically controlling the expansion of a motherboard interface device provided in the aforementioned embodiments, and are not further elaborated here.
[0222] The above description is only part of the embodiments of the present application and does not limit the patent scope of the present application. All equivalent structural transformations made by using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect application in other related technical fields are included in the patent protection scope of the present application.
Claims
1. A dynamic expansion control method for a motherboard interface device, characterized in that: The dynamic expansion control method of the motherboard interface device includes: In response to a mainboard power-on operation, controlling the mainboard to start up in a single-channel communication mode as an initial mode, and completing handshake communication with an onboard device, the onboard device being fixedly mounted on the mainboard; Detecting all communication interfaces on the mainboard through predefined general purpose input and output pins to determine whether an external device exists; If the external device is detected on the communication interface, access the soft jumper area through the flash memory management function of the basic input and output system, and read and verify the soft jumper area to ensure that the soft jumper area is in a writable state; generating configuration information for switching the communication mode from the single-channel communication mode to the dual-channel communication mode, and writing the configuration information into the soft jumper area to implement a soft jumper area rewriting function in the basic input and output system flash memory, switching from the single-channel communication mode to the dual-channel communication mode, and triggering the mainboard to power off to a preset state; The mainboard is controlled to restart in the two-way communication mode, and a communication handshake is completed with the onboard device and the external device in sequence, and a two-way communication driver is loaded to realize dual-device startup.
2. The dynamic expansion control method of the motherboard interface device according to claim 1, characterized in that: In response to the mainboard power-on operation, the mainboard is controlled to start in a single-channel communication mode as an initial mode to complete handshake communication with an onboard device, wherein the onboard device is fixedly mounted on the mainboard, including: In response to the mainboard power-on operation, loading a pre-configured one-way communication driver from a basic input and output system; Initializing registers and interrupt settings of a communication interface based on the one-way communication driver, and controlling the mainboard to start in the one-way communication mode; In the single-channel communication mode, a handshake request signal is sent to the onboard device through the communication interface, and a response signal from the onboard device is received to complete the handshake communication.
3. The dynamic expansion control method of the motherboard interface device according to claim 1, characterized in that: The step of detecting all communication interfaces on the mainboard through predefined general purpose input and output pins to determine whether an external device exists includes: Determining whether the external device exists on the communication interface by reading the pin voltage of the general input / output pin; If the pin voltage changes from a low level state to a high level state, it is determined that the external device exists; If the level state of the pin voltage remains unchanged, it is determined that the external device does not exist.
4. The dynamic expansion control method of a motherboard interface device according to claim 1, wherein: The step of detecting all communication interfaces on the mainboard through predefined general purpose input and output pins to determine whether an external device exists further includes: If it is detected that the external device exists on the communication interface, a handshake signal is sent to the communication interface via the general input and output pin; receiving and analyzing a response signal returned by the external device to obtain characteristics of the response signal; Judging the characteristics of the response signal according to the handshake success condition specified in the ESPI protocol specification to determine whether the external device is an ESPI device; If the characteristics of the response signal meet the handshake success condition, it is determined that the handshake with the external device is successful, that is, the external device is an ESPI device.
5. The dynamic expansion control method of a motherboard interface device according to claim 1, wherein: The step of triggering the mainboard to power off to a preset state includes: A deep sleep power-off instruction is sent to the mainboard through register operation of an embedded controller or a south bridge chip to trigger the mainboard to be powered off to a preset state.
6. The dynamic expansion control method of a motherboard interface device according to claim 1, wherein: The steps of controlling the mainboard to restart in the two-way communication mode, completing communication handshakes with the onboard device and the external device in sequence, and loading the two-way communication driver to realize dual-device startup include: Sending a restart instruction to the power control unit of the mainboard through the embedded controller to control the mainboard to restart in the two-way communication mode; Based on the two-way communication mode, completing a communication handshake with the onboard device and the external device in sequence according to a predefined order; Loading a dual-channel communication driver in a basic input / output system to allocate independent communication channels and interrupt resources for the onboard device and the external device; The data transmission requests of the onboard device and the external device are synchronously processed through a polling mechanism or an event triggering mechanism to realize dual-device startup.
7. The dynamic expansion control method of a motherboard interface device according to claim 1, wherein: After the steps of controlling the mainboard to restart in the two-way communication mode, completing communication handshakes with the onboard device and the external device in sequence, and loading a two-way communication driver to realize dual-device startup, the method includes: Monitoring the real-time load conditions of the onboard device and the external device; Dynamically adjusting the communication bandwidth allocated to the onboard device and the external device according to the real-time load condition; The access requests of the onboard device and the external device to the communication channel are managed by a hardware interrupt controller, and the access right to the communication channel is determined according to a device priority rule.
8. The dynamic expansion control method of a motherboard interface device according to claim 1, wherein: The dynamic expansion control method of the motherboard interface device further includes: If a hot plug event is detected, a control signal is sent to the corresponding communication interface to freeze the current communication link of the communication interface to prevent data loss or damage; Allocating an independent buffer for a new device connected to the communication interface, and dynamically updating a corresponding driver based on the type of the new device; The single-channel communication mode is switched to the dual-channel communication mode. If the communication mode switching fails, a rollback mechanism is triggered to restore to the single-channel communication mode, and the reason for the mode switching failure is notified to the user end.
9. A dynamic expansion control device for a motherboard interface device, characterized in that: The device includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the dynamic expansion control method for a motherboard interface device according to any one of claims 1 to 8.
10. A storage medium, characterized in that: The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the dynamic expansion control method of the motherboard interface device according to any one of claims 1 to 8 are implemented.
Citation Information
Patent Citations
Enhanced SPI device and method for data transmission by using device
CN107436857A
Mainboard hardware fault diagnosis circuit and device
CN117851106A