# US 8,751,715 B1 · System and method for controlling device access

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

- Number: US 8,751,715 B1
- Document ID: US8751715B1
- Status: Granted
- Kind: B1
- Application number: 12/751,799
- Filed: 2010-03-31
- Granted: 2014-06-10
- Earliest claimed: 2010-03-31
- Assignees: ENC Corporation
- Applicants: Paul Anton Shubel
- Inventors: Paul Anton Shubel
- Web page: https://patentgrep.com/patent/US8751715B1

## CPC

- G06F 13/4291: {using a clocked protocol}
- G06F 13/372: using a time-dependent priority, e.g. individually loaded time counters or time slot
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system, computer-implemented method, and a computer program product for regulating control of a slave device on a communications bus includes monitoring for a request for control of the slave device by a master device. Control of the slave device is granted to the master device. Control of the slave device is relinquished by the master device after the occurrence of a relinquishment event.

## Claims

### Claim 1

A method of regulating control of a slave device on a communications bus comprising:
monitoring for requests for control of the slave device by a plurality of master devices;
granting control of the slave device to one of the plurality of master devices; and
relinquishing control of the slave device by the one of the plurality of master devices after the occurrence of a relinquishment event, wherein the relinquishment event is an expiry of a control timer during which time the one of the plurality of master devices has control of the slave device, wherein the control timer prevents a failed master device from indefinitely retaining control of the slave driver, wherein the failed master device is unable to relinquish control of the slave device if the failed master suffered a failure while in control of the slave device.

### Claim 2 (depends on 1)

The method of claim 1 further comprising one or more of:
setting the control timer to a defined initial value and repeatedly decrementing the control timer until zero; and
setting the control timer to zero and repeatedly incrementing the control timer up to a defined final value.

### Claim 3 (depends on 1)

The method of claim 1 wherein the relinquishment event is a return of a control semaphore.

### Claim 4 (depends on 1)

The method of claim 1 wherein granting control of the slave device to the one of the plurality of master devices includes the granting of a control semaphore.

### Claim 5 (depends on 1)

The method of claim 1 wherein the communications bus is an I2C bus.

### Claim 6 (depends on 1)

The method of claim 1 wherein the slave device and the one of the plurality of master devices are I2C devices.

### Claim 7

A computer program product residing on a computer readable medium having a plurality of instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
monitoring for requests for control of the slave device by a plurality of master devices;
granting control of the slave device to one of the plurality of master devices; and
relinquishing control of the slave device by the one of the plurality of master devices after the occurrence of a relinquishment event, wherein the relinquishment event is an expiry of a control timer during which time the one of the plurality of master devices has control of the slave device, wherein the control timer prevents a failed master device from indefinitely retaining control of the slave driver, wherein the failed master device is unable to relinquish control of the slave device if the failed master suffered a failure while in control of the slave device.

### Claim 8 (depends on 7)

The computer program product of claim 7 further comprising instructions for one or more of:
setting the control timer to a defined initial value and repeatedly decrementing the control timer until zero; and
setting the control timer to zero and repeatedly incrementing the control timer up to a defined final value.

### Claim 9 (depends on 7)

The computer program product of claim 7 wherein the relinquishment event is a return of a control semaphore.

### Claim 10 (depends on 7)

The computer program product of claim 7 wherein the instructions for granting control of the slave device to the one of the plurality of master devices include instructions for the granting of a control semaphore.

### Claim 11 (depends on 7)

The computer program product of claim 7 wherein the communications bus is an I2C bus.

### Claim 12 (depends on 7)

The computer program product of claim 7 wherein the slave device and the one of the plurality of master devices are I2C devices.

### Claim 13

A computing system comprising:
at least one processor;
at least one memory architecture coupled with the at least one processor;
a first software module executed on the at least one processor and the at least one memory architecture, wherein the first software module is configured to monitor for requests for control of a slave device on a communications bus by a plurality of master devices;
a second software module executed on the at least one processor and the at least one memory architecture, wherein the second software module is configured to grant control of the slave device to one of the plurality of master devices; and
a third software module executed on the at least one processor and the at least one memory architecture, wherein the third software module is configured to relinquish control of the slave device by the one of the plurality of master devices after the occurrence of a relinquishment event, wherein the relinquishment event is an expiry of a control timer during which time the one of the plurality of master devices has control of the slave device, wherein the control timer prevents a failed master device from indefinitely retaining control of the slave driver, wherein the failed master device is unable to relinquish control of the slave device if the failed master suffered a failure while in control of the slave device.

### Claim 14 (depends on 13)

The computing system of claim 13 further comprising a fourth software module executed on the at least one processor and the at least one memory architecture, wherein the fourth software module is configured for one or more of:
setting the control timer to a defined initial value and repeatedly decrementing the control timer until zero; and
setting the control timer to zero and repeatedly incrementing the control timer up to a defined final value.

### Claim 15 (depends on 13)

The computing system of claim 13 wherein the relinquishment event is a return of a control semaphore.

### Claim 16 (depends on 13)

The computing system of claim 13 wherein granting control of the slave device to the one of the plurality of master devices includes the granting of a control semaphore.

### Claim 17 (depends on 13)

The computing system of claim 13 wherein the communications bus is an I2C bus.

### Claim 18 (depends on 13)

The computing system of claim 13 wherein the slave device and the one of the plurality of master devices are I2C devices.
