Forward
Computers are digital electronic devices that interface to the real world. This module aims to give you an introduction to how computers interface to the real word in real-time, including both digital and analogue signals.
This course is designed for stage-2 undergraduate students in Electronics and/or Robotics, who have prior experience in both electronics and C programming. Most electronic devices contain at least one microcontroller (MCU), but that microcontroller will typically be interfaced to multiple peripherals, such as sensors, motors and communication interfaces. Such devices produce or consume data in real time.
MCUs typically work with real-world signals, many of which are asynchronous in nature. To avoid missing an event or losing data, they are required to respond to inputs and generate outputs in a timely and predictable manner. Often, response times are bounded, making it critical to guarantee responsiveness under all conditions.
The MCU is often required to service its inputs and outputs simultaneously (“concurrently”). Unlike an FPGA, a single core MCU can only perform one task at a time. In addition, most external input/output devices are much slower than the MCU, meaning the MCU often must wait for operations to complete, while still servicing other devices. This module is concerned with understanding the strategies, risks and limitations to overcome these problems in a safe and scalable way.
We will be using the mbed-os® framework from ARM, which can be thought of as a superset of the popular mbed classic. Both are object orientated frameworks. A key feature of mbed-os is the ability to multi-task in a way that allows the engineer to safely manage real-time signals.
Intended Learning Outcomes
This practical course is part of a wider module (which includes system design using FPGAs). It contributes to a module with the following learning outcomes
1. Design, critically evaluate and implement scalable, reliable and testable embedded systems that interface to real-world signals in real-time.
2. Capture, process and generate real world signals using appropriate techniques in hardware and firmware.
3. Apply appropriate strategies and techniques for verification, validation and documentation of both hardware and firmware elements of an embedded system.
4. Demonstrate and reflect on current best practice in both individual and group management of firmware and hardware development.
These set of notes are relevant to the software aspects only.
Scope
For level 5, the scope of this course is as follows:
- Understanding blocking behaviour
- Rapid polling strategies
- State machines
- Safe application of Interrupts
- Serial Interfacing
Setting the Right Pace
To complete all tasks will require self study and working in your own time. There may be additional tasks for those that finish early or want to do further self study. You can take your kits home.