An asynchronous first device in communication with an asynchronous second device; wherein the time for the first device to complete a processing cycle is a first device major frame; wherein the first device major frame (3, 3') comprises a first device dedicated processing time slot at the end of the first device major frame (3, 3'), wherein the first device is configured to send a rescheduling signal to the second device when it has completed a first device major frame (3, 3'); and wherein the first device is configured, during every first device dedicated processing slot of every first device major frame (3, 3'), to: monitor for a rescheduling signal sent from the second device to the first device; and if a rescheduling signal from the second device is received: shift the end of the current first device major frame to end earlier by a set duration to result in a rescheduled first device major frame so that the end of the rescheduled first device major frame can be closer in phase to the end of a major frame of the second device that sent the rescheduling signal; reschedule the subsequent first device major frames such that each subsequent rescheduled first device major frame starts as soon as the previous rescheduled first device major frame has ended. wherein the time for the first device to complete a processing cycle is a first device major frame; wherein the first device major frame (3, 3') comprises a first device dedicated processing time slot at the end of the first device major frame (3, 3'), wherein the first device is configured to send a rescheduling signal to the second device when it has completed a first device major frame (3, 3'); and wherein the first device is configured, during every first device dedicated processing slot of every first device major frame (3, 3'), to: monitor for a rescheduling signal sent from the second device to the first device; and if a rescheduling signal from the second device is received: shift the end of the current first device major frame to end earlier by a set duration to result in a rescheduled first device major frame so that the end of the rescheduled first device major frame can be closer in phase to the end of a major frame of the second device that sent the rescheduling signal; reschedule the subsequent first device major frames such that each subsequent rescheduled first device major frame starts as soon as the previous rescheduled first device major frame has ended. monitor for a rescheduling signal sent from the second device to the first device; and if a rescheduling signal from the second device is received: shift the end of the current first device major frame to end earlier by a set duration to result in a rescheduled first device major frame so that the end of the rescheduled first device major frame can be closer in phase to the end of a major frame of the second device that sent the rescheduling signal; reschedule the subsequent first device major frames such that each subsequent rescheduled first device major frame starts as soon as the previous rescheduled first device major frame has ended. shift the end of the current first device major frame to end earlier by a set duration to result in a rescheduled first device major frame so that the end of the rescheduled first device major frame can be closer in phase to the end of a major frame of the second device that sent the rescheduling signal; reschedule the subsequent first device major frames such that each subsequent rescheduled first device major frame starts as soon as the previous rescheduled first device major frame has ended.