10 October 2017
protocols, device drivers, greater reliability, driver-device communication, system life cycle, protocol specification, vehicle computers, Internet of Things, cyber-physical systems, electronic devices, communication protocols, general purpose processors, hardware-dependent software, error-prone component, monitoring temporal properties, contract based specification mechanism, detect violation, virtual platforms, hardware platforms, specification language, domain-specific language, iteractive refinement, communication protocol, temporal property specifications
Vehicle computers, Internet of Things and cyber-physical systems are all examples of electronic devices in which embedded systems require greater flexibility to process different types of applications and communication protocols. High flexibility requires the use of general purpose processors as a solution for configuring and controlling several peripherals. However, this also increases the need for hardware-dependent software. Since this is a highly critical and error-prone component due to the nature of its coding and the surrounding environment, it is essential to support the development and runtime phases through methodologies that can detect violations and errors when accessing devices by monitoring the communication protocol. This approach proposes a technique for monitoring temporal properties in high-level communication protocols between devices and drivers using a contract-based specification mechanism for describing the interface and protocol. From this specification, a monitoring module is synthesised, which can detect violation during the simulation of virtual platforms or execution of hardware platforms. The proposed specification language is a domain-specific language that supports platform-based design and enables the iteractive refinement of communication protocol and temporal property specifications along with platform stepwise implementation. Some experiments have demonstrated the effectiveness of the proposed approach for detecting errors in device drivers and device access violation.