System and methods for avoiding data collisions over a data bus
First Claim
1. A method for scheduling operations on a data bus used to exchange data throughout a system having a plurality of motors and a plurality of sensors, the method comprising:
- determining respective bus access frequencies for a plurality of motors and a plurality of sensors, each bus access frequency being indicative of a frequency with which a respective one of the plurality of motors or a respective one of the plurality of sensors requires access to a data bus;
providing a plurality of repeating input/output (IO) cycles, wherein at least one of the plurality of motors or at least one of the plurality of sensors accesses the data bus during each of the plurality of IO cycles;
defining a respective cycle period, for each of the plurality of IO cycles, between respective recurrences of each of the plurality of IO cycles; and
assigning at least one of the plurality of motors and at least one of the plurality of sensors to at least one of the plurality of IO cycles according to respective bus access frequencies determined for the at least one of the plurality of motors and the at least one of the plurality of sensors;
wherein access to the data bus by motors and sensors assigned to one of the plurality of IO cycles excludes access to the data bus by motors and sensors assigned to each other IO cycle of the plurality of IO cycles;
wherein a priority of each of the plurality of IO cycles is determined by the respective cycle periods of each of the plurality of IO cycles and an IO cycle having a lower priority is blocked from accessing the data bus while an IO cycle having a higher priority is accessing the data bus; and
wherein access is granted to an IO cycle with a higher priority when two or more IO cycles request access to the data bus at substantially the same time.
1 Assignment
0 Petitions
Accused Products
Abstract
The disclosed system and methods involve controlling the timing and order in which numerous motors and sensors exchange data over a data bus. The method can be used with, for example, motion control, automotive, industrial automation, and medical equipment applications using data buses. As an example of one possible medical equipment application, the method of exchanging data on a bus can be used with a remote catheter guidance system. The disclosed system and methods help optimize data exchange over a bus and avoid collisions by grouping the transmission of sensor readings, by grouping the transmission of motor commands, and by predetermining the order of these groups. Further, the method provides a way of ensuring that incomplete data sets are not exchanged over the bus. The method also provides a way of synchronizing motor actuation based on data transmitted to the data bus.
-
Citations
22 Claims
-
1. A method for scheduling operations on a data bus used to exchange data throughout a system having a plurality of motors and a plurality of sensors, the method comprising:
-
determining respective bus access frequencies for a plurality of motors and a plurality of sensors, each bus access frequency being indicative of a frequency with which a respective one of the plurality of motors or a respective one of the plurality of sensors requires access to a data bus; providing a plurality of repeating input/output (IO) cycles, wherein at least one of the plurality of motors or at least one of the plurality of sensors accesses the data bus during each of the plurality of IO cycles; defining a respective cycle period, for each of the plurality of IO cycles, between respective recurrences of each of the plurality of IO cycles; and assigning at least one of the plurality of motors and at least one of the plurality of sensors to at least one of the plurality of IO cycles according to respective bus access frequencies determined for the at least one of the plurality of motors and the at least one of the plurality of sensors; wherein access to the data bus by motors and sensors assigned to one of the plurality of IO cycles excludes access to the data bus by motors and sensors assigned to each other IO cycle of the plurality of IO cycles; wherein a priority of each of the plurality of IO cycles is determined by the respective cycle periods of each of the plurality of IO cycles and an IO cycle having a lower priority is blocked from accessing the data bus while an IO cycle having a higher priority is accessing the data bus; and wherein access is granted to an IO cycle with a higher priority when two or more IO cycles request access to the data bus at substantially the same time. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for operating a system using a data bus to exchange data throughout a plurality of motors and a plurality of sensors, the method comprising:
-
receiving at least one motor command transmitted to a data bus, the at least one motor command used to control at least two of a plurality of motors; distributing the at least one motor command to the at least two motors during one of a plurality of IO cycles, each IO cycle defining a repeating duration of time with a defined frequency during which one or more of at least one of the at least two motors and at least one of the plurality of sensors accesses said data bus; actuating the at least two motors in response to a synchronization signal that is different from the at least one motor command, the synchronization signal received during the one IO cycle, the at least two motors actuating based on the at least one motor command; and receiving at least one sensor reading from at least one of a plurality of sensors. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system of sensors and motors using a data bus to exchange data throughout the system, the system comprising:
-
an electronic control system for computing at least one motor command; a bus controller configured to allow the at least one motor command to be distributed during one of a plurality of IO cycles, each IO cycle defining a repeating duration of time with a defined frequency during which one or more of a sensor and a motor accesses said data bus; a plurality of motors capable of actuating based on the at least one motor command; a plurality of sensors for measuring at least one sensor reading from a system, wherein the electronic control system is configured to receive the at least one sensor reading; and a data bus for exchanging data between the electronic control system, the plurality of motors, and the plurality of sensors, wherein the plurality of motors actuate based on the at least one motor command in response to a synchronization signal received during the one IO cycle that is different from the at least one motor command. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
Specification