Design and Code Generation for heterogeneous distributed embedded systems
Project type: Scope can be tailored to an SE/CS project or CS honours project.
Orientation: design and implementation
Research Area: embedded realtime systems, software engineering, software design tools
Related courses / recommended experience: Concurrent and Distributed Systems (comp2310), Realtime and Embedded Systems (comp4330), Algorithms, Software Engineering
Supervisor: Dr. Felix Schill, Dept. Engineering (E215)
(<firstname>.<lastname>@anu.edu.au)
Project Description:
Embedded system design in robotics, automation and control often requires complex communication structures between a range of different embedded computers with vastly different capabilities (small microcontrollers, medium level embedded processors, high-level user terminals, etc.). Communication links can be high level, high speed links (ethernet, WiFi), but very often also low level, low speed links (RS232, CANbus, I2C, etc.) on which the prohibitive overhead prevents the use of complex OSI compliant communication protocols. Additionally there can be tight real time constraints on some of the communication.
This project aims to design a tool for software developers, that provides an intuitive user interface to design a heterogeneous communication structure for an embedded distributed system, and assists the developer with analysis tools and automatic code generation utilities for the various nodes. The developer should be able to specify communication links (type, throughput, etc.), the network topology (nodes and links), and the data structures that have to be transported (data types, source, destination, timing requirements). Examples for
analysis tools are bandwidth requirements, topological analysis, or schedulability test. Examples for code generation are generation of stubs for various communication links, efficient and application-specific data transport, access methods for the specified data types, data serialisation and error checking, etc. Analysis tools and code generation tools should be modular, and can be easily added or extended at any time by the developer.
The scope of this initial project is the design of a proof of concept framework. The design (presented in a detailed design document) should concentrate on flexible model specification and model representation for heterogeneous distributed systems, and extendability of analysis and code generation modules. A prototype framework and user interface should be implemented in a language of choice (possibly embedded into an existing IDE framework), together with a simple example of code generation and analysis for demonstration and proof of concept purposes.