Data communication system and control method thereof
The data communication system corrects noise-induced errors in I2C communication by sampling and adjusting bit values, ensuring data stability in noisy conditions.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-04
- Publication Date
- 2026-03-26
AI Technical Summary
Data signals transmitted through I2C communication lines in home appliances are prone to distortion due to noise generated by operating components, leading to data corruption and errors.
A data communication system and control method that involves a master device storing bit values in a first buffer and sampling data signals in a second buffer, correcting bit values based on monitoring values in the second buffer to mitigate noise-induced errors.
Ensures stable I2C communication by correcting bit values, maintaining data integrity even in noisy environments.
Smart Images

Figure KR2025013638_26032026_PF_FP_ABST
Abstract
Description
Data communication system and control method thereof
[0001] The disclosed invention relates to a data communication system using the I2C communication method and a control method thereof.
[0002] Various electronic devices, such as home appliances, contain various electronic components. The I2C (Inter-Integrated Circuit) communication method is used to transmit or receive data between these various electronic components. For example, I2C communication can be used for electronic components such as processors, memory, input devices, output devices, and sensors. I2C communication enables data transmission between a master device and a slave device using two signal lines. The master device and the slave device can perform bidirectional synchronous communication through the clock line (SCL) and the data line (SDA).
[0003] However, data signals transmitted through I2C communication data lines can be distorted by the influence of noise. When various electronic components included in home appliances (e.g., AC loads, relays, etc.) operate, noise that affects I2C communication can be generated. Distortion of data signals can cause data corruption or errors.
[0004] The disclosed invention provides a data communication system and a control method thereof capable of correcting data errors caused by noise in I2C (Inter-Integrated Circuit) communication.
[0005] A data communication system according to one embodiment includes: a slave device; and a master device that performs data communication with the slave device through a clock line that transmits a clock signal and a data line that transmits a data signal. The master device may store a bit value corresponding to a data signal received through the data line at each clock of the clock signal in a first buffer. The master device may sample the received data signal at each clock and store a plurality of monitoring values in a second buffer. The master device may correct the bit value stored in the first buffer based on the plurality of monitoring values stored in the second buffer at each clock.
[0006] A control method for a data communication system according to one embodiment may include: a master device that performs data communication with a slave device through a data line and a clock line, storing a bit value corresponding to a data signal received through the data line in a first buffer for every clock of a clock signal transmitted through the clock line; the master device sampling the received data signal for every clock and storing a plurality of monitoring values in a second buffer; and the master device correcting the bit value stored in the first buffer for every clock based on the plurality of monitoring values stored in the second buffer.
[0007] The disclosed data communication system and its control method can correct data errors caused by noise in I2C (Inter-Integrated Circuit) communication.
[0008] The disclosed data communication system and its control method can ensure the stability of I2C communication even in environments with high noise levels.
[0009] Figure 1 illustrates a network system implemented by various electronic devices.
[0010] FIG. 2 illustrates a data communication system according to one embodiment.
[0011] FIG. 3 is a block diagram illustrating the configuration of a master device and a slave device of a data communication system according to one embodiment.
[0012] FIG. 4 illustrates a clock signal and a data signal for transmitting data between a master device and a slave device of a data communication system according to one embodiment.
[0013] Figures 5 and 6 illustrate cases where data errors may occur due to noise.
[0014] FIG. 7 is a diagram illustrating the sampling of a data signal performed by a data communication system according to one embodiment.
[0015] FIG. 8 shows an example of data correction performed by a data communication system according to one embodiment.
[0016] FIG. 9 illustrates an example of data correction performed by a data communication system according to one embodiment.
[0017] FIG. 10 shows an example of data correction performed by a data communication system according to one embodiment.
[0018] FIG. 11 illustrates a case where data correction is not performed in a data communication system according to one embodiment.
[0019] FIG. 12 is a flowchart briefly illustrating a control method of a data communication system according to one embodiment.
[0020] FIG. 13 is a flowchart that details the method for correcting bit values stored in the first buffer described in FIG. 12.
[0021] FIG. 14 illustrates an embodiment that modifies the control method of a data communication system described in FIG. 12.
[0022] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said embodiments.
[0023] In relation to the description of the drawings, similar reference numerals may be used for similar or related components.
[0024] The singular form of the noun corresponding to an item may include one or plural items, unless the relevant context clearly indicates otherwise.
[0025] In this document, each of the phrases such as "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and "at least one of A, B, or C" may include any one of the items listed together in the corresponding phrase, or all possible combinations thereof.
[0026] Terms such as "first," "second," or "first" or "second" may be used simply to distinguish a component from another component and do not limit the components in other aspects (e.g., importance or order).
[0027] Where any (e.g., 1st) component is referred to as "coupled" or "connected" to another (e.g., 2nd) component, with or without the terms "functionally" or "communicationly," it means that the component may be connected to the other component directly (e.g., via a wire), wirelessly, or through a third component.
[0028] Terms such as “include” or “have” are intended to specify the existence of the features, numbers, steps, actions, components, parts, or combinations thereof described in this document, and do not preclude the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.
[0029] When it is said that a component is "connected," "combined," "supported," or "in contact" with another component, this includes not only cases where the components are directly connected, combined, supported, or in contact, but also cases where they are indirectly connected, combined, supported, or in contact through a third component.
[0030] When it is said that a component is located "on" another component, this includes not only cases where one component is in contact with the other, but also cases where another component exists between the two components.
[0031] The term “and / or” includes a combination of multiple related described components or any of the multiple related described components.
[0032] The operating principle and embodiments of the present invention will be described below with reference to the attached drawings.
[0033] Figure 1 illustrates a network system implemented by various electronic devices.
[0034] Referring to FIG. 1, the home appliance (10) may include a communication module capable of communicating with another home appliance, a user device (2) or a server (3), a user interface that receives user input or outputs information to the user, at least one processor that controls the operation of the home appliance (10), and at least one memory in which a program for controlling the operation of the home appliance (10) is stored.
[0035] The home appliance (10) may be at least one of various types of home appliances. For example, the home appliance (10) may include at least one of a refrigerator (11), a dishwasher (12), an electric range (13), an electric oven (14), an air conditioner (15), a garment care machine (16), a washing machine (17), a dryer (18), and a microwave oven (19), as illustrated.
[0036] The home appliance (10) is not limited to that exemplified in FIG. 1. For example, the home appliance (10) may include various home appliances such as a cleaning robot, a vacuum cleaner, and a television that are not illustrated in the drawing. In addition, the aforementioned home appliances are merely examples, and in addition to the aforementioned home appliances, other home appliances, user devices (2), or devices that can be connected to a server (3) to perform the operations described below may be included in the home appliance (10) according to one embodiment.
[0037] The server (3) may include a communication module capable of communicating with another server, a home appliance (10), or a user device (2), at least one processor capable of processing data received from another server, a home appliance (10), or a user device (2), and at least one memory capable of storing a program for processing data or processed data. This server (3) may be implemented as various computing devices such as a workstation, a cloud, a data drive, or a data station. The server (3) may be implemented as one or more servers physically or logically separated based on functions, detailed configurations of functions, or data, and may transmit and receive data and process the transmitted and received data through communication between each server.
[0038] The server (3) can perform functions such as managing user accounts, registering home appliances (10) associated with user accounts, and managing or controlling the registered home appliances (10). For example, a user can create a user account by accessing the server (3) through a user device (2). A user account can be identified by an ID and password set by the user. The server (3) can register home appliances (10) to the user account according to a set procedure. For example, the server (3) can register, manage, and control home appliances (10) by linking identification information of the home appliance (10) (e.g., serial number or MAC address, etc.) to the user account. The user device (2) may include a communication module capable of communicating with the home appliance (10) or the server (3), a user interface that receives user input or outputs information to the user, at least one processor that controls the operation of the user device (2), and at least one memory in which a program for controlling the operation of the user device (2) is stored.
[0039] The user device (2) may be carried by the user or placed in the user's home or office, etc. The user device (2) may include, but is not limited to, a personal computer, terminal, portable telephone, smartphone, handheld device, wearable device, etc.
[0040] A program, i.e., an application, for controlling a home appliance (10) can be stored in the memory of the user device (2). The application may be sold with the application installed on the user device (2) or may be downloaded and installed from an external server. By running the application installed on the user device (2), the user can connect to the server (3) to create a user account, and register the home appliance (10) by communicating with the server (3) based on the logged-in user account.
[0041] For example, if the home appliance (10) is operated in accordance with the procedure guided by the application installed on the user device (2) so that the home appliance (10) can be connected to the server (3), the home appliance (10) can be registered to the user account by registering the identification information of the home appliance (10) (e.g., serial number or MAC address, etc.) to the user account on the server (3).
[0042] The user can control the home appliance (10) using an application installed on the user device (2). For example, when the user logs into the user account using an application installed on the user device (2), the home appliance (10) registered to the user account appears, and when the user inputs a control command for the home appliance (10), the control command can be transmitted to the home appliance (10) through the server (3).
[0043] A network may include both wired and wireless networks. Wired networks include cable networks or telephone networks, etc., and wireless networks may include all networks that transmit and receive signals via radio waves. Wired and wireless networks may be connected to each other.
[0044] The network may include a wide area network (WAN) such as the Internet, a local area network (LAN) formed around an access point (AP), and / or a short-range wireless network that does not pass through an access point (AP). The short-range wireless network may include, for example, Bluetooth (IEEE 802.15.1), Zigbee (IEEE 802.15.4), Wi-Fi Direct, Near Field Communication (NFC), Z-Wave, etc., but is not limited to those exemplified.
[0045] An access point (AP) can connect a home appliance (10) or a user device (2) to a wide area network (WAN) to which a server (3) is connected. The home appliance (10) or the user device (2) can be connected to the server (3) via the wide area network (WAN). The access point (AP) can communicate with the home appliance (10) or the user device (2) using wireless communication such as Wi-Fi (IEEE 802.11), Bluetooth (IEEE 802.15.1), or Zigbee (IEEE 802.15.4), and can connect to the wide area network (WAN) using wired communication, but is not limited thereto. According to various embodiments, the home appliance (10) may be directly connected to the user device (2) or the server (3) without going through the access point (AP).
[0046] The home appliance (10) can be connected to a user device (2) or a server (3) via a long-range wireless network or a short-range wireless network. For example, the home appliance (10) can be connected to a user device (2) via a short-range wireless network (e.g., Wi-Fi Direct). As another example, the home appliance (10) can be connected to a user device (2) or a server (3) via a wide area network (WAN) using a long-range wireless network (e.g., a cellular communication module). As yet another example, the home appliance (10) can be connected to a wide area network (WAN) using wired communication and connected to a user device (2) or a server (3) via the wide area network (WAN).
[0047] If the home appliance (10) can connect to a wide area network (WAN) using wired communication, it may operate as a connection relay. Accordingly, the home appliance (10) can connect other home appliances to the wide area network (WAN) to which the server (3) is connected. Additionally, other home appliances can connect the home appliance (10) to the wide area network (WAN) to which the server (3) is connected.
[0048] The home appliance (10) can transmit information regarding operation or status to other home appliances, user devices (2), or servers (3) via a network. For example, the home appliance (10) can transmit information regarding operation or status to other home appliances, user devices (2), or servers (3) when a request is received from the server (3), when a specific event occurs in the home appliance (10), or periodically or in real time. When the server (3) receives information regarding operation or status from the home appliance (10), it can update the stored information regarding operation or status of the home appliance (10) and transmit the updated information regarding operation and status of the home appliance (10) to the user devices (2) via a network. Here, updating information may include various operations that change existing information, such as adding new information to existing information or replacing existing information with new information.
[0049] The home appliance (10) can obtain various information from other home appliances, user devices (2), or servers (3) and provide the obtained information to the user. For example, the home appliance (10) can obtain information related to the functions of the home appliance (10) (e.g., recipes, laundry methods, etc.) and various environmental information (e.g., weather, temperature, humidity, etc.) from the server (3), and can output the obtained information through a user interface.
[0050] The home appliance (10) may operate according to control commands received from other home appliances, user devices (2), or servers (3). For example, if the home appliance (10) has obtained prior approval from a user to operate according to control commands from servers (3) even without user input, the home appliance (10) may operate according to control commands received from servers (3). Here, the control commands received from servers (3) may include, but are not limited to, control commands entered by the user through user devices (2) or control commands based on pre-set conditions.
[0051] The user device (2) can transmit information about the user to the home appliance (10) or server (3) through a communication module. For example, the user device (2) can transmit information about the user's location, health status, preferences, schedule, etc. to the server (3). The user device (2) can transmit information about the user to the server (3) upon the user's prior approval.
[0052] The home appliance (10), user device (2), or server (3) may determine control commands using technology such as artificial intelligence. For example, the server (3) may receive information regarding the operation or status of the home appliance (10) or information regarding the user of the user device (2), process it using technology such as artificial intelligence, and transmit the processing result or control command to the home appliance (10) or user device (2) based on the processing result.
[0053] FIG. 2 illustrates a data communication system according to one embodiment. FIG. 3 is a block diagram illustrating the configuration of a master device and a slave device of a data communication system according to one embodiment.
[0054] The home appliance (10) described in FIG. 1 may include a data communication system (100) that uses an I2C (Inter-Integrated Circuit) communication method. Referring to FIG. 2, the data communication system (100) may include a master device (200) and one or more slave devices (310, 320, 330). The master device (200) may be connected to one or more slave devices (310, 320, 330). In FIG. 2, three slave devices (310, 320, 330) are exemplified, but the number of slave devices is not limited to that exemplified.
[0055] Each of the first slave device (310), the second slave device (320), and the third slave device (330) can be connected to the master device (200) via a clock line (SCL) and a data line (SDA). A first resistor (R1) can be connected between the clock line (SCL) and the power supply (VDD). A second resistor (R2) can be connected between the data line (SDA) and the power supply (VDD). The first resistor (R1) and the second resistor (R2) correspond to pull-up resistors. Voltage can be supplied to the clock line (SCL) and the data line (SDA), respectively, through the first resistor (R1) and the second resistor (R2).
[0056] The master device (200) can generate a clock signal and transmit the clock signal to one or more slave devices (310, 320, 330) through the clock line (SCL). The master device (200) can transmit a data signal or receive a data signal through the data line (SDA) in accordance with the clock signal.
[0057] Each of the multiple slave devices (310, 320, 330) may have an individual address. The master device (200) may transmit the address value of a target slave device (310, 320, 330) to the multiple slave devices (310, 320, 330) in order to write data to the slave devices (310, 320, 330) or read data from the slave devices (310, 320, 330). Among the multiple slave devices (310, 320, 330), the slave device having the address value transmitted by the master device (200) may receive data or transmit data.
[0058] Additionally, the data communication system (100) may include a plurality of branched data lines (ML) that branch off from a data line (SDA) and are connected to a master device (200) and one or more slave devices (310, 320, 330), respectively. The master device (200) may include a clock port connected to a clock line (SCL), a data port connected to a data line (SDA), and a monitoring port connected to a branched data line (ML). Each of the first slave device (310), the second slave device (320), and the third slave device (330) may also include a clock port, a data port, and a monitoring port.
[0059] Although the branch data line (ML) is exemplified as branching from the data line (SDA), it is not limited thereto. Multiple branch data lines (ML) may be provided to directly connect the monitoring port of the master device (200) and the monitoring port of each slave device (310, 320, 330). For example, the branch data line (ML) may be provided to directly connect the monitoring port of the master device (200) and the monitoring port of the first slave device (310).
[0060] Referring to FIG. 3, the master device (200) may include a clock generator (210), a first buffer (220), a second buffer (240), and a processor (250). The processor (250) may be electrically connected to the clock generator (210), the first buffer (220), and the second buffer (240). The processor (250) may control each of the clock generator (210), the first buffer (220), and the second buffer (240).
[0061] The first slave device (310) may include a configuration identical to or different from that of the master device (200). For example, the first slave device (310) may include a first buffer (220), a second buffer (240), and a processor (250), excluding the clock generator (210). If the first slave device (310) also includes the clock generator (210), the first slave device (310) may perform the role of the master device.
[0062] For convenience of explanation, the first slave device (310) was used as an example, but each of the multiple slave devices (310, 320, 330) may have the same configuration as the master device (200) or a different configuration.
[0063] The first buffer (220) and the second buffer (240) may include volatile memory (e.g., S-RAM, D-RAM) and / or non-volatile memory (e.g., ROM, EEPROM). The processor (250), the first buffer (220), and the second buffer (240) may be implemented as separate chips or as a single chip. Additionally, multiple processors and multiple memories may be provided. The processor (250) may include one core or multiple cores.
[0064] The processor (250) may be configured to perform various operations of the master device (200). The processor (250) may include various types of circuits. For example, the processor (250) may include one or more of a CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerated Processing Unit), MIC (Many Integrated Core), DSP (Digital Signal Processor), NPU (Neural Processing Unit), hardware accelerator, or machine learning accelerator.
[0065] A clock generator (210) can generate a clock signal. A processor (250) can control the clock generator (210) to generate a clock signal. The clock signal generated by the clock generator (210) can be transmitted to a first slave device (310) via a clock line (SCL). The clock signal can appear as high or low. The clock signal can be maintained high for a pulse interval and then switched to low. During one clock cycle, the clock signal can be switched from high to low. A time interval during which the clock signal appears high can be defined as one clock, and the clock signal can include multiple clocks. The clock signal corresponds to a pulse signal. One clock can have a rising edge and a falling edge.
[0066] The first buffer (220) can store data. The first buffer (220) can be connected to a data line (SDA). Data stored in the first buffer (220) can be transmitted to the first slave device (310) via the data line (SDA). Data transmitted from the first slave device (310) may also be stored in the first buffer (220). The first buffer (220) can store multiple bit values corresponding to the data. For example, the data signal may be a voltage signal. Depending on whether the voltage level of the data signal is high (e.g., 5V) or low (e.g., 0V) for each clock of the clock signal, a bit value of 1 or 0 may be stored in the first buffer (220). The processor (250) can store a bit value corresponding to the data signal received via the data line (SDA) for each clock of the clock signal in the first buffer (220).
[0067] The second buffer (240) can store a sample value of a data signal. The second buffer (240) can be connected to a branch data line (ML) branched from a data line (SDA). The master device (200) can receive a data signal from the first slave device (310) through the data line (SDA) and the branch data line (ML). The processor (250) can convert the data signal into a digital value of a predetermined number of bits (e.g., 10 bits). The processor (250) can sample the data signal at sampling time intervals and store multiple sample values in the second buffer (240).
[0068] The first buffer (220) is exemplified as being connected to the data line (SDA) and the second buffer (240) is connected to the branch data line (ML), but is not limited thereto. For example, the first buffer (220) and the second buffer (240) may be combined and both connected to the data line (SDA). If the first buffer (220) and the second buffer (240) are both directly connected to the data line (SDA), the monitoring port of the master device (200), the monitoring port of the first slave device (310), and the branch data line (ML) may be removed.
[0069] As another example, the data line (SDA), the first buffer (220), and the second buffer (240) may be connected in series. The processor (250) may store a bit value corresponding to a data signal received through the data line (SDA) in the first buffer (220) and store a sample value of the data signal in the second buffer (240).
[0070] The processor (250) can perform sampling of a data signal for obtaining multiple sampling values at every clock of a clock signal. The processor (250) can convert the data signal into multiple sampling values at every clock of a clock signal. The processor (250) can convert the data signal sampled at every sampling time interval into a digital value of a predetermined number of bits (e.g., 10 bits) and store the converted digital value as a sampling value.
[0071] Converting a data signal into a digital value with a predetermined number of bits can be referred to as quantizing the data signal. Therefore, the sampling value may be referred to as a 'quantized value'. For example, the voltage level of the data signal may vary within a range from 0V to 5V. When the voltage level of the sampled data signal is converted into a 10-bit digital value at each sampling time interval, the second buffer (240) may store a sampling value within a range from 0 to 1024 corresponding to the voltage level of the sampled data signal.
[0072] Additionally, the processor (250) can correct the bit value stored in the first buffer (220) using a plurality of sampling values stored in the second buffer (240) for each clock of the clock signal. The processor (250) can determine the sampling values acquired within a predetermined time range based on the falling edge of the clock among the plurality of sampling values stored in the second buffer (240) as a plurality of monitoring values. The processor (250) can determine the sampling values acquired within the data setup time before the falling edge of the clock and the data validity time after the falling edge of the clock as a plurality of monitoring values.
[0073] The processor (250) can determine each of the multiple monitoring values as a result value corresponding to a high value, a low value, or noise by comparing each of the multiple monitoring values with a reference value. For example, the processor (250) can determine each of the multiple monitoring values as a high value based on each of the multiple monitoring values being greater than or equal to a first reference value. The processor (250) can determine each of the multiple monitoring values as a low value based on each of the multiple monitoring values being less than or equal to a second reference value. The processor (250) can determine each of the multiple monitoring values as noise based on each of the multiple monitoring values being less than the first reference value and greater than the second reference value. The first reference value can be set to be greater than the second reference value.
[0074] The processor (250) can correct the bit value stored in the first buffer (220) using a plurality of result values. For example, the processor (250) can correct the bit value stored in the first buffer (220) to a high value or a low value based on whether the first ratio of the high value or the second ratio of the low value among the plurality of monitoring values is greater than or equal to a threshold value. If the first ratio of the high value or the second ratio of the low value among the plurality of monitoring values is less than a threshold value, the processor (250) may not correct the bit value stored in the first buffer (220).
[0075] The processor (250) can determine a first ratio of high values and a second ratio of low values among a plurality of monitoring values. The processor (250) can determine the ratio of the number of high values to the number of multiple monitoring values as the first ratio of high values. The processor (250) can determine the ratio of the number of low values to the number of multiple monitoring values as the second ratio of low values.
[0076] In this way, the disclosed data communication system (100) can ensure the stability of I2C communication even in an environment where data errors may occur due to noise by correcting the bit value stored in the first buffer (220) using the sampling value stored in the second buffer (240).
[0077] The processor (250) can perform correction of the bit value stored in the first buffer (220) based on identifying that noise is included in the multiple monitoring values. If the multiple monitoring values are not included in noise, the correction of the bit value stored in the first buffer (220) may not be performed. In other words, if the multiple monitoring values are not included in noise, the bit value stored in the first buffer (220) may be output as is.
[0078] The operations described as being performed by the master device (200) may also be performed by the slave devices (310, 320, 330).
[0079] FIG. 4 illustrates a clock signal and a data signal for transmitting data between a master device and a slave device of a data communication system according to one embodiment.
[0080] The master device (200) can transmit a clock signal to the slave devices (310, 320, 330) through the clock line (SCL). When the master device (200) writes data to the slave devices (310, 320, 330), the data signal of the data line (SDA) can be transmitted from the master device (200) to the slave devices (310, 320, 330). When the master device (200) reads data from the slave devices (310, 320, 330), the data signal of the data line (SDA) can be transmitted from the slave devices (310, 320, 330) to the master device (200). An example of data stored in the first buffer (220) of the master device (200) when the master device (200) reads data from the slave devices (310, 320, 330) is described below.
[0081] Data transmission may begin when the data signal of the data line (SDA) changes from high to low while the clock signal of the clock line (SCL) is maintained at high. When the clock signal is low, the data signal may change to high or low. When the clock signal is high, the master device (200) determines the data signal to high or low and stores the bit value corresponding to the data signal in the first buffer (220). One bit value may be stored per clock. Data transmission may end when the data signal changes from low to high while the clock signal is maintained at high. As exemplified in FIG. 4, 8 bits, or 1 byte of data, may be transmitted. The 8 bit values corresponding to the data signal may be exemplified as 10101010.
[0082] Figures 5 and 6 illustrate cases where data errors may occur due to noise.
[0083] When the clock signal is high, the data signal must stably maintain a high or low state to prevent data errors. To ensure data validity, the data signal must be stably maintained within a predetermined time range based on the falling edge (FE) of the clock. In other words, it is desirable that no fluctuation or / or distortion of the data signal occurs within the data setup time (dst) before the falling edge (FE) of the clock and the data validity time (dvt) after the falling edge (FE).
[0084] However, data signals transmitted through the I2C communication data line (SDA) can be distorted by noise. When various electronic components included in home appliances (e.g., AC loads, relays, etc.) operate, noise that affects I2C communication can be generated.
[0085] FIG. 5 illustrates a case where the data signal is distorted by noise during the data setup time (dst). FIG. 6 illustrates a case where the data signal is distorted by noise during the data validity time (dvt). If the data signal is shaken by noise in this way, the bit value may be determined differently from the actual data. In other words, if the data signal is distorted by noise, the data received by the master device (200) may contain errors. For example, in FIG. 5 and FIG. 6, the bit value should be stored as 1, but due to the distortion of the data signal, the bit value may be stored as 0.
[0086] Therefore, data correction is necessary to ensure data validity in environments where noise affecting I2C communication occurs.
[0087] FIG. 7 is a diagram illustrating the sampling of a data signal performed by a data communication system according to one embodiment.
[0088] Referring to FIG. 7, the master device (200) can obtain multiple sampling values by sampling a data signal at every clock of the clock signal. The master device (200) can sample a data signal received through a branch data line (ML) branched from a data line (SDA). The entire data signal received within one clock cycle can be sampled. The master device (200) can sample the data signal at a predetermined sampling time interval (e.g., 1 µs).
[0089] The master device (200) can convert a data signal sampled at each sampling time interval into a digital value of a predetermined number of bits (e.g., 10 bits). The master device (200) can store the converted digital value as a sampling value. Multiple sampling values may be stored in the second buffer (240) of the master device (200). The sampling value may correspond to a numeric value within the range from 0 to 1024, corresponding to the voltage level of the data signal at each sampling time.
[0090] The master device (200) can determine the sampling values acquired within a predetermined time range based on the falling edge (FE) of the clock among the sampling values stored in the second buffer (240) as the plurality of monitoring values. For example, the master device (200) can determine the sampling values (S1, ..., S12) acquired within the data setup time (dst) before the falling edge (FE) of the clock and the data validity time (dvt) after the falling edge (FE) of the clock as the plurality of monitoring values.
[0091] The master device (200) can correct the bit value stored in the first buffer (220) using the acquired multiple monitoring values.
[0092] Although it has been described that sampling of the data signal is performed by the master device (200), it is not limited thereto. When data is written to the slave devices (310, 320, 330), sampling of the data signal may also be performed by the slave devices (310, 320, 330).
[0093] FIG. 8 shows an example of data correction performed by a data communication system according to one embodiment.
[0094] Referring to FIG. 8, an example is provided in which a portion of a data signal representing a high value is distorted due to noise during the data setup time (dst) prior to the falling edge (FE) of the clock. As distortion of the data signal occurs during the data setup time (dst), a bit that should be stored as a high value in the first buffer (220) may be stored as a low value.
[0095] As described above, a plurality of sampling values stored in the second buffer (240) through sampling of the data signal represent digital values of a predetermined number of bits (e.g., 10 bits). The sampling values may correspond to numerical values within the range from 0 to 1024 corresponding to the voltage level of the data signal at each sampling point.
[0096] Additionally, the sampling values obtained during the data setup time (dst) and the data validity time (dvt) may be referred to as multiple monitoring values. For example, among the multiple sampling values stored in the second buffer (240), 12 sampling values (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12) may be determined as monitoring values. The 12 sampling values (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12) extracted as monitoring targets may represent 212, 51, 784, 1009, 1000, 997, 1015, 1001, 994, 991, 998, and 1004.
[0097] The master device (200) can determine each of the multiple monitoring values as a result value corresponding to a high value, a low value, or noise by comparing each of the multiple monitoring values with a reference value.
[0098] For example, the master device (200) may determine each of the multiple monitoring values as a high value based on whether each of the multiple monitoring values is greater than or equal to a first reference value (e.g., 920). Since the monitoring values from S4 to S12 among the 12 monitoring values are greater than the first reference value, the monitoring values from S4 to S12 may be determined as a high value (i.e., 1).
[0099] The master device (200) can determine each of the multiple monitoring values as a low value based on whether each of the multiple monitoring values is less than or equal to a second reference value (e.g., 100). The second reference value may be set to be smaller than the first reference value. Since the monitoring value of S2 among the 12 monitoring values is smaller than the second reference value, the monitoring value of S2 may be determined as a low value (i.e., 0).
[0100] The master device (200) can determine each of the multiple monitoring values as noise based on the fact that each of the multiple monitoring values is smaller than a first reference value and larger than a second reference value. Among the 12 monitoring values, the monitoring values of S1 and S3 are smaller than a first reference value and larger than a second reference value, so the monitoring values of S1 and S3 can be determined as noise.
[0101] The master device (200) can determine a first ratio of high values and a second ratio of low values among a plurality of monitoring values. The ratio of the number of high values to the number of multiple monitoring values can be determined as the first ratio of high values. The ratio of the number of low values to the number of multiple monitoring values can be determined as the second ratio of low values. In FIG. 8, 12 monitoring values are exemplified as including 9 high values, 1 low value, and 2 noise values. In FIG. 8, the first ratio of high values can be determined as 75 percent, and the second ratio of low values can be determined as 8 percent.
[0102] The master device (200) can correct the bit value stored in the first buffer (220) to a high value or a low value based on whether the first ratio of the high value or the second ratio of the low value among the multiple monitoring values is greater than or equal to a threshold value (e.g., 60 percent). In FIG. 8, since the ratio of the high value among the 12 monitoring values is 75 percent, which is greater than the threshold value (e.g., 60 percent), the bit value stored in the first buffer (220) can be corrected to a high value (i.e., 1).
[0103] In this way, the disclosed data communication system (100) can prevent data errors and ensure the stability of I2C communication even in an environment with a lot of noise by correcting the bit value stored in the first buffer (220).
[0104] FIG. 9 illustrates an example of data correction performed by a data communication system according to one embodiment.
[0105] Referring to FIG. 9, an example is provided in which a portion of a data signal representing a high value is distorted due to noise during the data setup time (dst) before the falling edge (FE) of the clock and the data validity time (dvt) after the falling edge (FE) of the clock. As distortion of the data signal occurs during the data setup time (dst) and the data validity time (dvt), a bit that should be stored as a high value in the first buffer (220) may be stored as a low value.
[0106] In FIG. 9, among the plurality of sampling values stored in the second buffer (240), the 12 sampling values (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12) extracted as monitoring targets may represent 1010, 1001, 999, 1009, 212, 784, 51, 810, 994, 991, 998, 1004.
[0107] Among the 12 monitoring values, the monitoring values from S1 to S4 and from S9 to S12 are greater than the first reference value (e.g., 920), so the monitoring values from S1 to S4 and from S9 to S12 can be determined as high values (i.e., 1). Since the monitoring value of S7 is less than the second reference value (e.g., 100), the monitoring value of S7 can be determined as low values (i.e., 0). Additionally, since the monitoring values of S5, S6, and S8 are less than the first reference value and greater than the second reference value, the monitoring values of S5, S6, and S8 can be determined as noise.
[0108] In other words, the 12 monitoring values in FIG. 9 are exemplified as including 8 high values, 1 low value, and 3 noise values. In FIG. 9, the first ratio of high values can be determined to be 66.7 percent, and the second ratio of low values can be determined to be 8 percent. Since the ratio of high values among the 12 monitoring values is 66.7 percent, which is greater than the threshold value (e.g., 60 percent), the bit value stored in the first buffer (220) can be corrected to a high value (i.e., 1).
[0109] FIG. 10 shows an example of data correction performed by a data communication system according to one embodiment.
[0110] Referring to FIG. 10, an example is provided in which a portion of a data signal representing a low value is distorted due to noise during the data validity time (dvt) following the falling edge (FE) of the clock. As distortion of the data signal occurs during the data validity time (dvt), a bit that should be stored as a low value may be stored as a high value.
[0111] Among the plurality of sampling values stored in the second buffer (240) in FIG. 10, the 12 sampling values (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12) extracted as monitoring targets can represent 10, 8, 9, 8, 10, 20, 30, 310, 51, 330, 410, 520.
[0112] Among the 12 monitoring values, the monitoring values from S1 to S7 and S9 are smaller than the second reference value (e.g., 100), so the monitoring values from S1 to S7 and S9 can be determined as low values (i.e., 0). Since the monitoring values from S8 and S10 to S12 are smaller than the first reference value and larger than the second reference value, the monitoring values from S8 and S10 to S12 can be determined as noise.
[0113] In other words, the 12 monitoring values in FIG. 10 are exemplified as including 8 low values and 4 noise values. In FIG. 10, the proportion of low values can be determined to be 66.7 percent. Since the proportion of low values among the 12 monitoring values is 66.7 percent, which is greater than the threshold value (e.g., 60 percent), the bit value stored in the first buffer (220) can be corrected to a low value (i.e., 0).
[0114] FIG. 11 illustrates a case where data correction is not performed in a data communication system according to one embodiment.
[0115] Referring to FIG. 11, an example is provided in which most of the data signal representing a high value is distorted due to noise during the data setup time (dst) before the falling edge (FE) of the clock and the data validity time (dvt) after the falling edge (FE) of the clock. As distortion of the data signal occurs during the data setup time (dst) and the data validity time (dvt), bits that should be stored as high values may be stored as low values.
[0116] Among the plurality of sampling values stored in the second buffer (240) in FIG. 11, the 12 sampling values (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12) extracted as monitoring targets may represent 1010, 1001, 999, 800, 212, 784, 51, 810, 994, 850, 998, 1004.
[0117] Among the 12 monitoring values, the monitoring values from S1 to S3, S9, S11, and S12 are greater than the first reference value (e.g., 920), so the monitoring values from S1 to S3, S9, S11, and S12 can be determined as high values (i.e., 1). Since the monitoring value of S7 is less than the second reference value (e.g., 100), the monitoring value of S7 can be determined as low values (i.e., 0). Since the monitoring values from S4 to S6, S8, and S10 are less than the first reference value and greater than the second reference value, the monitoring values from S4 to S6, S8, and S10 can be determined as noise.
[0118] In other words, the 12 monitoring values in FIG. 11 are exemplified as including 6 high values, 1 low value, and 5 noise values. In FIG. 11, the first ratio of high values may be determined to be 50 percent, and the second ratio of low values may be determined to be 8 percent. Since both the first ratio of high values and the second ratio of low values among the 12 monitoring values are smaller than a threshold value (e.g., 60 percent), the bit value stored in the first buffer (220) may not be corrected.
[0119] FIG. 12 is a flowchart briefly illustrating a control method of a data communication system according to one embodiment.
[0120] As described above, the disclosed data communication system (100) includes a master device (200) and slave devices (310, 320, 330). The master device (200) can perform data communication with the slave devices (310, 320, 330) through a data line (SDA) and a clock line (SCL).
[0121] Referring to FIG. 12, a master device (200) of a data communication system (100) can store a bit value corresponding to a data signal received through a data line (SDA) in a first buffer (220) for each clock of a clock signal transmitted through a clock line (SCL) (1210). The first buffer (220) can store multiple bit values corresponding to data. For example, the data signal may be a voltage signal. For each clock of the clock signal, a bit value of 1 or 0 may be stored in the first buffer (220) depending on whether the voltage level of the data signal is high (e.g., 5V) or low (e.g., 0V). The master device (200) can store a bit value corresponding to a data signal received through a data line (SDA) in the first buffer (220) for each clock of the clock signal.
[0122] The master device (200) can sample a data signal at every clock of the clock signal and store multiple sampled values in a second buffer (240) (1220). The master device (200) can sample a data signal received through a branched data line (ML) branched from a data line (SDA). The entire data signal received within one clock cycle can be sampled. The master device (200) can sample the data signal at a predetermined sampling time interval (e.g., 1us).
[0123] The master device (200) can convert a data signal sampled at each sampling time interval into a digital value of a predetermined number of bits (e.g., 10 bits). The master device (200) can store the converted digital value as a sampling value. Multiple sampling values may be stored in the second buffer (240) of the master device (200). The sampling value may correspond to a numeric value within the range from 0 to 1024, corresponding to the voltage level of the data signal at each sampling time.
[0124] The master device (200) can perform correction of the bit value stored in the first buffer (220) using a plurality of sampling values stored in the second buffer (240) for each clock of the clock signal (1230).
[0125] In this way, the disclosed data communication system (100) can ensure the stability of I2C communication even in an environment where data errors may occur due to noise by correcting the bit value stored in the first buffer (220) using the sampling value stored in the second buffer (240).
[0126] The operations described as being performed by the master device (200) may also be performed by the slave devices (310, 320, 330).
[0127] FIG. 13 is a flowchart that details the method for correcting bit values stored in the first buffer described in FIG. 12.
[0128] Referring to FIG. 13, a master device (200) of a data communication system (100) can obtain a plurality of monitoring values from a plurality of sampling values stored in a second buffer (240) (1301). The master device (200) can determine the sampling values obtained within a predetermined time range based on the falling edge (FE) of the clock among the plurality of sampling values stored in the second buffer (240) as the plurality of monitoring values. For example, the master device (200) can determine the sampling values obtained within the data setup time (dst) before the falling edge (FE) of the clock and the data validity time (dvt) after the falling edge (FE) of the clock as the plurality of monitoring values.
[0129] The master device (200) can compare each of the multiple monitoring values with a reference value and determine each of the multiple monitoring values as a result value corresponding to a high value, a low value, or noise. In other words, the multiple monitoring values can be identified as a high value, a low value, or noise.
[0130] For example, the master device (200) may determine each of the plurality of monitoring values as a high value (1303) based on each of the plurality of monitoring values being greater than or equal to a first reference value (1302). The master device (200) may determine each of the plurality of monitoring values as a low value (1305) based on each of the plurality of monitoring values being less than or equal to a second reference value (1304). The first reference value may be set to be greater than the second reference value. The master device (200) may determine each of the plurality of monitoring values as noise based on each of the plurality of monitoring values being less than the first reference value and greater than the second reference value (1302, 1304, 1306).
[0131] The master device (200) can determine a first ratio of high values and a second ratio of low values among a plurality of monitoring values (1307). For example, the master device (200) can determine the ratio of the number of high values to the number of a plurality of monitoring values as the first ratio of high values. The master device (200) can determine the ratio of the number of low values to the number of a plurality of monitoring values as the second ratio of low values.
[0132] The master device (200) can identify whether the first ratio of high values or the second ratio of low values among the plurality of monitoring values is greater than or equal to a threshold value (1308). The master device (200) can correct the bit value stored in the first buffer (220) to a high value or a low value based on whether the first ratio of high values or the second ratio of low values among the plurality of monitoring values is greater than or equal to a threshold value (1309).
[0133] If the first ratio of high values or the second ratio of low values among multiple monitoring values is smaller than the threshold value, the master device (200) may not correct the bit value stored in the first buffer (220) (1310).
[0134] FIG. 14 illustrates an embodiment that modifies the control method of a data communication system described in FIG. 12.
[0135] Referring to FIG. 14, the master device (200) of the data communication system (100) can store a bit value corresponding to a data signal received through the data line (SDA) in the first buffer (220) for every clock of the clock signal transmitted through the clock line (SCL) (1410). The master device (200) can sample the data signal for every clock of the clock signal and store a plurality of sampled values in the second buffer (240) (1420).
[0136] The master device (200) can identify whether noise is included in a plurality of sampling values (1430). The master device (200) can perform correction of the bit value stored in the first buffer (220) based on whether noise is included in the plurality of sampling values (1440). The master device (200) can determine whether to perform correction of the bit value stored in the first buffer (220) depending on whether noise is included in the monitoring value extracted from the plurality of sampling values.
[0137] Steps 1410, 1420, and 1440 correspond to 1210, 1220, and 1230 described in Fig. 12.
[0138] If the multiple sampling values do not contain noise, the master device (200) may not perform correction on the bit values stored in the first buffer (220). In other words, if the multiple monitoring values do not contain noise, the master device (200) may output the bit values stored in the first buffer (220) as they are.
[0139] A data communication system according to one embodiment includes: a slave device; and a master device that performs data communication with the slave device through a clock line that transmits a clock signal and a data line that transmits a data signal. The master device may store a bit value corresponding to a data signal received through the data line at each clock of the clock signal in a first buffer. The master device may sample the received data signal at each clock and store a plurality of monitoring values in a second buffer. The master device may correct the bit value stored in the first buffer based on the plurality of monitoring values stored in the second buffer at each clock.
[0140] The master device can acquire the plurality of monitoring values within a predetermined time range including the falling edge of each clock.
[0141] The master device can determine each of the plurality of monitoring values as a result value corresponding to a high value, a low value, or noise by comparing each of the plurality of monitoring values with at least one reference value. The master device can correct the bit value stored in the first buffer using the plurality of result values.
[0142] The master device can acquire the plurality of monitoring values within the predetermined time range between the data setup time before the falling edge of each clock and the data validity time after the falling edge of each clock.
[0143] The master device can identify a first number of high values and a second number of low values among the plurality of monitoring values for each clock. The master device can correct the bit value stored in the first buffer to the high value or the low value based on the first number of high values or the second number of low values.
[0144] The master device can identify the ratio of the first number of high values to the number of the plurality of monitoring values as the first ratio of the high values. The master device can identify the ratio of the second number of low values to the number of the plurality of monitoring values as the second ratio of the low values. The master device can correct the bit value stored in the first buffer to the high value or the low value based on whether the first ratio of the high value or the second ratio of the low value is greater than or equal to a threshold value for each of the first ratio and the second ratio.
[0145] The master device may determine each of the plurality of monitoring values as the high value based on the fact that each of the plurality of monitoring values is greater than or equal to a first reference value. The master device may determine each of the plurality of monitoring values as the low value based on the fact that each of the plurality of monitoring values is less than or equal to a second reference value. The master device may determine each of the plurality of monitoring values as the noise based on the fact that each of the plurality of monitoring values is less than the first reference value and greater than the second reference value. The first reference value may be greater than the second reference value.
[0146] The master device can determine the correction of the bit value stored in the first buffer based on identifying that the noise is included in the plurality of monitoring values.
[0147] The master device can convert the data signal sampled at each sampling time interval into a digital value with a predetermined number of bits and store the converted digital value as a plurality of monitoring values.
[0148] The master device may include a clock port connected to the clock line; a data port connected to the data line; and a monitoring port connected to a branch data line branched from the data line.
[0149] A control method for a data communication system according to one embodiment may include: a master device that performs data communication with a slave device through a data line and a clock line, storing a bit value corresponding to a data signal received through the data line in a first buffer for every clock of a clock signal transmitted through the clock line; the master device sampling the received data signal for every clock and storing a plurality of monitoring values in a second buffer; and the master device correcting the bit value stored in the first buffer for every clock based on the plurality of monitoring values stored in the second buffer.
[0150] Storing the plurality of monitoring values may include acquiring the plurality of monitoring values within a predetermined time range based on the falling edge of each clock.
[0151] Correcting the bit value may include comparing each of the plurality of monitoring values with at least one reference value to determine each of the plurality of monitoring values as a result value corresponding to a high value, a low value, or noise; and correcting the bit value stored in the first buffer using the plurality of result values.
[0152] Storing the plurality of monitoring values may include acquiring the plurality of monitoring values within the predetermined time range between the data setup time prior to the falling edge of each clock and the data validity time after the falling edge of each clock.
[0153] Correcting the bit value may include identifying a first number of high values and a second number of low values among the plurality of monitoring values for each clock; and correcting the bit value stored in the first buffer to the high value or the low value based on the first number of high values or the second number of low values.
[0154] Correcting the bit value may include identifying a ratio of a first number of high values to the number of a plurality of monitoring values as a first ratio of high values; identifying a ratio of a second number of low values to the number of a plurality of monitoring values as a second ratio of low values; and correcting the bit value stored in the first buffer to the high value or the low value based on the fact that the first ratio of high values or the second ratio of low values is greater than or equal to a threshold value for each of the first ratio and the second ratio.
[0155] Comparing each of the plurality of monitoring values with a reference value may include determining each of the plurality of monitoring values as the high value based on the fact that each of the plurality of monitoring values is greater than or equal to the first reference value; determining each of the plurality of monitoring values as the low value based on the fact that each of the plurality of monitoring values is less than or equal to the second reference value; and determining each of the plurality of monitoring values as the noise based on the fact that each of the plurality of monitoring values is less than the first reference value and greater than the second reference value. The first reference value may be greater than the second reference value.
[0156] Correcting the above bit value can be performed based on identifying that the noise is included in the plurality of monitoring values.
[0157] Storing the plurality of monitoring values in the second buffer may include converting the data signal sampled at each sampling time interval into a digital value with a predetermined number of bits; and storing the converted digital value as the plurality of monitoring values.
[0158] The disclosed data communication system and its control method can correct data errors caused by noise in I2C (Inter-Integrated Circuit) communication.
[0159] The disclosed data communication system and its control method can ensure the stability of I2C communication even in environments with high noise levels.
[0160] Meanwhile, the disclosed embodiments may be implemented in the form of a storage medium that stores instructions executable by a computer. The instructions may be stored in the form of program code, and when executed by a processor, they may generate a program module to perform the operation of the disclosed embodiments.
[0161] A device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory storage medium' simply means that it is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily. For example, a 'non-transitory storage medium' may include a buffer in which data is stored temporarily.
[0162] Methods according to the various embodiments disclosed in this document may be provided as part of a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product (e.g., downloadable app) may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
[0163] As described above, the disclosed embodiments have been explained with reference to the attached drawings. Those skilled in the art will understand that the present invention may be practiced in forms different from the disclosed embodiments without changing the technical spirit or essential features of the invention. The disclosed embodiments are illustrative and should not be interpreted restrictively.
Claims
1. Slave device; and A master device that performs data communication with the slave device through a clock line that transmits a clock signal and a data line that transmits a data signal; The above master device For every clock of the above clock signal, a bit value corresponding to the data signal received through the data line is stored in the first buffer, and For each of the above clocks, the received data signal is sampled and a plurality of monitoring values are stored in a second buffer, and A data communication system that corrects the bit value stored in the first buffer based on the plurality of monitoring values stored in the second buffer for each clock cycle.
2. In Paragraph 1, The above master device A data communication system that acquires a plurality of monitoring values within a predetermined time range including the falling edge of each clock.
3. In Paragraph 1, Each of the above plurality of monitoring values is compared with at least one reference value to determine each of the above plurality of monitoring values as a result value corresponding to a high value, a low value, or noise, and A data communication system that corrects the bit value stored in the first buffer using multiple result values.
4. In Paragraph 3, The above master device For each of the above clocks, identify the first number of high values and the second number of low values among the plurality of monitoring values, and A data communication system that corrects the bit value stored in the first buffer to the high value or the low value based on the first number of the high value or the second number of the low value.
5. In Paragraph 4, The above master device The ratio of the first number of high values to the number of the plurality of monitoring values is identified as the first ratio of the high values, and Identifying the ratio of the second number of the row values to the number of the plurality of monitoring values as the second ratio of the row values, A data communication system that corrects the bit value stored in the first buffer to the high value or the low value based on the fact that the first ratio of the high value or the second ratio of the low value is greater than or equal to a threshold value for each of the first ratio and the second ratio.
6. In Paragraph 3, The above master device Each of the above plurality of monitoring values is determined as the high value based on the fact that each of the above plurality of monitoring values is greater than or equal to the first reference value, and Based on the fact that each of the plurality of monitoring values is less than or equal to the second reference value, each of the plurality of monitoring values is determined as the row value, and Each of the plurality of monitoring values is determined as the noise based on the fact that each of the above-mentioned plurality of monitoring values is smaller than the first reference value and larger than the second reference value, and A data communication system in which the first reference value is greater than the second reference value.
7. In Paragraph 3, The above master device A data communication system that determines the correction of the bit value stored in the first buffer based on identifying that the noise is included in the plurality of monitoring values.
8. In Paragraph 1, The above master device The above data signal sampled at each sampling time interval is converted into a digital value with a predetermined number of bits, and A data communication system that stores the above converted digital value as the above plurality of monitoring values.
9. In Paragraph 1, The above master device A clock port connected to the above clock line; A data port connected to the above data line; and A data communication system comprising: a monitoring port connected to a branch data line branched from the above data line.
10. A master device that performs data communication with a slave device through a data line and a clock line stores a bit value corresponding to a data signal received through the data line in a first buffer for every clock of the clock signal transmitted through the clock line; A control method for a data communication system comprising: sampling the received data signal at each clock by the master device and storing a plurality of monitoring values in a second buffer; and correcting the bit value stored in the first buffer at each clock by the master device based on the plurality of monitoring values stored in the second buffer.
11. In Paragraph 10, Storing the above multiple monitoring values is, A data communication system comprising acquiring a plurality of monitoring values within a predetermined time range based on the falling edge of each clock.
12. In Paragraph 10, Correcting the above bit value is, Each of the above plurality of monitoring values is compared with at least one reference value to determine the plurality of monitoring values as result values corresponding to high values, low values, or noise; A data communication system comprising: correcting the bit value stored in the first buffer using a plurality of result values.
13. In Paragraph 12, Correcting the above bit value is, For each of the above clocks, identify the first number of high values and the second number of low values among the plurality of monitoring values; A control method for a data communication system comprising: correcting the bit value stored in the first buffer to the high value or the low value based on the first number of the high value or the second number of the low value.
14. In Paragraph 13, Correcting the above bit value is, Identifying the ratio of the first number of high values to the number of the plurality of monitoring values as the first ratio of the high values; Identifying the ratio of the second number of the row values to the number of the plurality of monitoring values as the second ratio of the row values; A control method for a data communication system comprising: correcting the bit value stored in the first buffer to the high value or the low value based on the fact that the first ratio of the high value or the second ratio of the low value is greater than or equal to a threshold value for each of the first ratio and the second ratio.
15. In Paragraph 12, Comparing each of the above multiple monitoring values with a reference value is, Each of the plurality of monitoring values is determined as the high value based on the fact that each of the plurality of monitoring values is greater than or equal to the first reference value; Based on the fact that each of the plurality of monitoring values is less than or equal to a second reference value, each of the plurality of monitoring values is determined as the row value; Determining each of the plurality of monitoring values as noise based on the fact that each of the plurality of monitoring values is smaller than the first reference value and larger than the second reference value; A control method for a data communication system in which the first reference value is greater than the second reference value.
Citation Information
Patent Citations
Data receiver and data receiving method
JP2002171249A
Load control unit
JP2009164998A
Relay device and connector
JP2012238984A
Adaptive transaction processing node and method for blockchain
KR1020220142210A
KR20210115278A