Programming Atomic Multicasts in CAN
Ref: HURRAY-TR-0014 Publication Date: 1, Oct, 2000
Programming Atomic Multicasts in CANRef: HURRAY-TR-0014 Publication Date: 1, Oct, 2000
In Distributed Computer-Controlled Systems (DCCS), both real-time and dependability (reliability and availability) requirements are of major concern. In such systems, a special emphasis must be given to the underlying communication infrastructure, which must provide timely and dependable communication services. CAN networks are usually considered suitable to support small-scale DCCS. However, they are also known to present some reliability problems, which can lead to an unreliable behaviour of the supported applications. In this paper, an atomic multicast protocol for CAN networks is presented that prevents the occurrence of such unreliable behaviour. The protocol explores the CAN synchronous properties to minimise its run-time overhead, and thus to provide a timely service to the supported applications. The implementation of such protocol in Ada, on top of the Ada version of Real-Time Linux is presented, which is used to demonstrate the suitability of the platform for reliable communications in DCCS. However, some impairments to the use of this platform exist, since multitasking must be implemented directly on top of low-level mechanisms, which are error prone and complex to use. There is also a lack of a complete interface with the Real-Time Linux kernel, which precludes, for instance, the correct use of Ada interrupt handling.
Notes: Also published in ACM Ada Letters, Vol XXI, N. 1, pp. 79-84, ACM Press, March 2001.