# US 10,482,045 B2 · Data communication interface for processing data in low power systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,045 B2
- Document ID: US10482045B2
- Status: Granted
- Kind: B2
- Application number: 15/187,763
- Filed: 2016-06-20
- Published: 2017-08-17
- Granted: 2019-11-19
- Earliest claimed: 2016-02-17
- Assignees: Analog Devices Global Unlimited Company
- Applicants: Analog Devices Global Unlimited Company
- Inventors: Mohamed Farook Basheer Ahamed; Michael Martin McCarthy; Aravind K. Navada
- Web page: https://patentgrep.com/patent/US10482045B2

## CPC

- G06F 13/32: using combination of interrupt and burst mode transfer
- G06F 1/3215: Monitoring of peripheral devices
- G06F 1/3243: {Power saving in microcontroller unit}
- G06F 1/325: {Power saving in peripheral device}
- G06F 1/3287: by switching off individual functional units in the computer system
- G06F 9/3005: {to perform operations for flow control}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- H04Q 9/00: Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
- H04Q 2209/30: using a wired architecture
- H04Q 2209/75: by polling or interrogating the sub-stations
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- Y02D 30/50: in wire-line communication networks, e.g. low power modes or reduced link rate
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04Q: SELECTING (switches, relays, selectors H01H; wireless communication networks H04W)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Improvements over existing data collection interfaces disclosed herein include, among other things, additional logic blocks (and associated timers, state machines, and registers) to off-load data collection and data processing prior to waking a microprocessor from a sleep mode. For example, an improved data collection interface collects a predetermined number of sensor values from a sensor while maintaining active a single communication session with the sensor over a pin of the interface. The microprocessor remains in the sleep mode for an entire duration of the single communication session. The data collection interface can reduce the likelihood of false starts of the microprocessor by using the logic blocks to verify that data meet preconditions prior to interrupting the microprocessor. The data collection interface can reduce the overall power consumption of a chip in which the microprocessor is integrated by a factor of at least about 2× (i.e., 50% reduction in power consumption).

## Claims

### Claim 1

A data communication interface for transferring data between a microprocessor and one or more sensors, the data communication interface comprising:
at least one pin of one or more pins operably coupled to the microprocessor and the one or more sensors;
a sensor register storing a value identifying which of the one or more sensors is a selected sensor for communication over the at least one pin;
a state machine configured to generate a read command based on the sensor register, and transmit the read command to the selected sensor; and
a flow control logic block configured to, upon detection of a trigger condition, transmit an instruction to the state machine, wherein the state machine is configured to receive, based at least in part on the instruction, a predetermined number of sensor values from the selected sensor while maintaining active a single communication session with the selected sensor over the at least one pin, and wherein the flow control logic block is operable to transmit processed data to an on-chip memory accessible by the microprocessor, the processed data being generated based at least in part on the sensor values.

### Claim 2 (depends on 1)

The data communication interface of claim 1, wherein the receiving the predetermined number of the sensor values from the selected sensor while maintaining active the single communication session with the selected sensor over the at least one pin comprises:
repeatedly reading, from a register, ones of the sensor values based on the read command until the predetermined number of the sensor values is reached, wherein at least one position in the register is repeatedly read to retrieve updated values for adding to the sensor values, the updated values being successively placed into the at least one position by the selected sensor.

### Claim 3 (depends on 1)

The data communication interface of claim 1, further comprising:
one or more data processing logic blocks coupled to the flow control logic block, each of the one or more data processing logic blocks being operable to generate the processed data by executing a function on the sensor values.

### Claim 4 (depends on 3)

The data communication interface of claim 3, wherein at least one of the one or more data processing logic blocks is associated with a register for storing a criteria value and the function comprises a comparator to compare at least a portion of the sensor values to the criteria value.

### Claim 5 (depends on 3)

The data communication interface of claim 3, further comprising:
an interrupt request (IRQ) generator operably coupled to the microprocessor and the one or more data processing logic blocks;
wherein each of the one or more data processing logic blocks is operable to transmit the processed data to the IRQ generator; and
wherein the IRQ generator is operable to generate an interrupt request and transmit the interrupt request to the microprocessor based on the receipt of the processed data from any of the one or more data processing logic blocks.

### Claim 6 (depends on 1)

The data communication interface of claim 1, further comprising:
a flow control register operable to store a mode value corresponding to one or more operational modes of data transfer over the at least one pin, the one or more operational modes comprising a timer mode and an interrupt mode for receiving the sensor values from the selected sensor, wherein the trigger condition corresponds to a selected one of the one or more operational modes.

### Claim 7 (depends on 1)

The data communication interface of claim 1, wherein the data communication interface is a serial interface.

### Claim 8 (depends on 7)

The data communication interface of claim 7, further comprising:
a local timer configured to generate clock signals; and
wherein the serial interface is a serial peripheral interface (SPI), and the at least one pin of the one or more pins comprises three or more pins, the three or more pins comprising:
at least one chip select pin operable to identify, based on a low signal or a high signal, the selected sensor,
at least one data transfer pin operable to transmit data to and/or receive data from the selected sensor, and
a clock pin operable to transmit the clock signals to the selected sensor; and
wherein the maintaining active the single communication session with the selected sensor over the at least one pin comprises maintaining the at least one chip select pin at an active level.

### Claim 9 (depends on 8)

The data communication interface of claim 8, further comprising:
an interval timer configured to count a wait interval of the clock signals of the local timer, wherein the flow control logic block detecting the trigger condition comprises the flow control logic block detecting an expiration of the wait interval of the local timer based on the interval timer.

### Claim 10

A method for transferring data between a microprocessor and one or more sensors, the method comprising:
retrieving, from a sensor register, a value identifying which of the one or more sensors is a selected sensor for communication over at least one pin, the at least one pin being operably coupled to the microprocessor and the one or more sensors;
generating a read command based on the sensor register and transmitting the read command to the selected sensor;
upon detection of a trigger condition, receiving, from the selected sensor, a predetermined number of sensor values, wherein the predetermined number of the sensor values is received while maintaining active a single communication session with the selected sensor over the at least one pin; and
transmitting processed data to an on-chip memory, the processed data being generated based at least in part on the sensor values, wherein the on-chip memory is accessible by the microprocessor.

### Claim 11 (depends on 10)

The method of claim 10, wherein the receiving the predetermined number of the sensor values from the selected sensor while maintaining active the single communication session with the selected sensor over the at least one pin comprises:
repeatedly reading, from a register, ones of the sensor values based on the read command until the predetermined number of the sensor values is reached, wherein at least one position in the register is repeatedly read to retrieve updated values for adding to the sensor values, the updated values being successively placed into the at least one position by the selected sensor.

### Claim 12 (depends on 10)

The method of claim 10, further comprising generating the processed data by executing a function on the sensor values.

### Claim 13 (depends on 12)

The method of claim 12, further comprising storing a criteria value in a register, and wherein the function comprises a comparator to compare at least a portion of the sensor values to the criteria value.

### Claim 14 (depends on 12)

The method of claim 12, further comprising:
transferring the processed data to an interrupt request (IRQ) generator, wherein the IRQ generator is operably coupled to the microprocessor and one or more data processing logic blocks and,
generating, by the IRQ generator, an interrupt request and transmitting the interrupt request to the microprocessor based on receipt of the processed data from any of the one or more data processing logic blocks.

### Claim 15 (depends on 10)

The method of claim 10, further comprising:
storing a mode value corresponding to one or more operational modes of data transfer over the at least one pin, the one or more operational modes comprising a timer mode and an interrupt mode for receiving the sensor values from the selected sensor, wherein the trigger condition corresponds to a selected one of the one or more operational modes.

### Claim 16 (depends on 10)

The method of claim 10, further comprising:
generating clock signals;
identifying the selected sensor based on a low signal or a high signal received over at least one chip select pin;
transmitting data to and/or receive data from the selected sensor; and
transmitting the clock signals to the selected sensor,
wherein the maintaining active the single communication session with the selected sensor over the at least one pin comprises maintaining the at least one chip select pin at an active level.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
comparing a wait interval to the clock signals, wherein the detection of the trigger condition comprises detecting an expiration of the wait interval based on the comparing.

### Claim 18

An apparatus for transferring data between a microprocessor and one or more sensors, the apparatus comprising:
means for retrieving, from a sensor register, a value identifying which of the one or more sensors is a selected sensor for communication over at least one pin, the at least one pin being operably coupled to the microprocessor and the one or more sensors;
means for generating a read command based on the sensor register, and transmitting the read command to the selected sensor;
means for detecting a trigger condition;
means for, upon detecting the trigger condition, receiving, from the selected sensor, a predetermined number of sensor values, wherein the predetermined number of the sensor values is received while maintaining active a single communication session with the selected sensor; and
means for transmitting processed data to an on-chip memory, the processed data being generated based at least in part on the sensor values, wherein the on-chip memory is accessible by the microprocessor.

### Claim 19

A method for transferring data between a microprocessor and one or more sensors, the method comprising:
retrieving, from a sensor register, a value identifying which of the one or more sensors is a selected sensor for communication over at least one pin, the at least one pin being operably coupled to the microprocessor and the one or more sensors;
generating a read command based on the sensor register and transmitting the read command to the selected sensor;
upon detection of a trigger condition, receiving, from the selected sensor, a predetermined number of sensor values, wherein the predetermined number of the sensor values is received while maintaining active a single communication session with the selected sensor over the at least one pin;
generating clock signals;
identifying the selected sensor based on a low signal or a high signal received over at least one chip select pin, wherein the maintaining active the single communication session with the selected sensor over the at least one pin comprises maintaining the at least one chip select pin at an active level;
transmitting data to and/or receive data from the selected sensor;
transmitting the clock signals to the selected sensor; and
comparing a wait interval to the clock signals, wherein the detection of the trigger condition comprises detecting an expiration of the wait interval based on the comparing.

### Claim 20 (depends on 19)

The method according to claim 19, further comprising:
transmitting processed data to an on-chip memory, the processed data being generated based at least in part on the sensor values, wherein the on-chip memory is accessible by the microprocessor.
