Modules

Embedded Systems

 

Interfacing Systems Computers

  • The computer as a controlling element for electro-mechanical devices.
  • Interfacing between control system and the real world.
  • Hardware/software trade-off, communication between devices, multiplexing.

Digital and Analogue circuits

  • Concepts of ADC and DAC; CMOS and TTL logic interfacing, A/D and D/A conversion, Phase-locked loops, Pseudo-random bit sequences and noise generation, input/output, and data communications.
  • Input and output impedance loading. Driving inductive loads. Isolated operational amplifiers. Bridge circuits.
  • Practical applications and designs of DC and AC circuits.

Actuators and sensors

  • Characteristics, interfacing techniques and applications for common actuators and sensors.
  • Instrumentation classification and characteristics, measurement systems, errors, calibration, processing and signal conditioning elements, common sensor used in mechanical systems and data converters.
  • Algorithmic development and implementation of computer programs.
  • Sensors; Sensed quantities, Sensor types, principles and uses, measurement of position, velocity, acceleration and force using analogue and digital circuits.
  • Actuators; Basic principles; Hydraulic systems; Pneumatic systems; Electrical systems.

Controller Design

1. Introduction to the Design Process and Servomechanism feedback control principle introducing actuators, sensors and physical limitations.

2. Root-locus Design and Relative Degree (or System Type) and their use in actuation subsystem selection.

3. P, PI, PI+D and PID controller design with Root Locus and their relationship with Zeigler-Nichols tuning methods.

4. Introduction to State-Space Controller design methods, including full-state and partial state feedback, stability, relationship to root-locus design and inverse dynamics for single-input and single-output systems.

5. Final Value Theorem in State-Space and Disturbances in State-Space Design.

6. Introduction to Digital Controller Design using Discrete-time State Space Methods.

7. Introduction to Z Transforms, Discrete-time transfer functions, discrete-time poles and zeros, stability and sampling rate selection.

8. Introduction to Frequency Response Methods, Nyquist and Bode plots and Gain and Phase Margins.

9. Time Delay modelling and compensation (e.g. Smith’s Predictor) and its implementation in discrete-time control.

10. Consideration of Actuator Power Saturation and use of anti-windup algorithms with all types of digital controller (e.g. Hanus Algorithm)

Computer Simulation

Computer workshops will be provided for hands-on experience in design of control systems and computer interfaces using an industry standard National Instruments Labview & MATLAB and Simulink packages. Essential features of the software will be introduced through a series of example applications.

Embedded Systems Design with Non-Configurable Processors

  • Definition and classification of embedded systems.
  • Embedded systems basics: tools, resources and real time issues.
  • The processing units of embedded systems.
  • Architectures and instruction sets of microprocessors.                       
  • Use of assembly language for embedded applications.
  • Digital signal processors (DSP) implemented with embedded systems.
  • Advanced serial communications: serial communication protocols, Bluetooth, Universal Serial Bus (USB) and Ethernet.
  • Control systems and communicating control data over the controller area network (CAN).           

Configurable Processor Design in Embedded System-on-Chip (SOC)

  • Advanced architecture of field programmable gate array (FPGA).
  • Very High Speed Integrated Circuit Hardware Description Language (VHDL) programming techniques, simulation and test-bench design.
  • Concept of a finite state machine (FSM) with data path (FSMD) and the introduction of stored program control to design a simple reduced instruction set computing (RISC) processor.
  • Design technology of a soft core RISC processor with hardware description language (HDL).
    • Identification of behavioural and Register Transfer Level (RTL) descriptions.
    • De-coupling of data and control paths.
    • Data path and control unit design.
    • Hierarchical design: libraries, Generics, Generate and instantiation.
    • Design and construction of re-useable modules Evaluation of the simple processor and its comparison with existing commercial soft cores processors such as ARM, MIPS and NIOSII.
    • Concept of intellectual property (IP) in embedded processor design.
    • Features of the Altera NIOSII 32-bit RISC processor incluiding its architecture, insruction set, assembly language and VHDL implementation.
    • Implementation, testing and evaluation of a multi-core NIOSII embedded system on an Alterra DE1-SOC FPGA evaluation board.
    • Use of signed, fixed point and floating point arithmetic in applications including a digital signal processing system.

Reliability

  •  Input/Output (I/O) synchronisation, bi-stable timing violations and meta-stability.
  • Limitations of conventional synchronous system design.
  • Asynchronous systems, critical and non-critical hazards.
  • State assignments and asynchronous design using one-hot codes.

Students will undertake a large self-directed software project in a specialist topic of their choice with guidance and support from a dedicated academic supervisor.

The project will begin with an appraisal of said topic, usually through a literature review and/or a commercial assessment of viability. This will be followed by planning and creation of a practical software artefact covering an implementation lifecycle, making use of project management techniques.

Ethical issues will be explored, leading to required approval for quantitative and/or qualitative testing, with results then analysed and used to inform futher development and to draw conclusions against a hypothesis.

This module is introduces the theory and practice of network protocol design, maintenance and evalutation. We will build from first principles towards a professional, research and development approach to the subject. This will include topics such as:

  • Routing
  • Traffic engineering
  • Distributed protocol design
  • Use of discrete event simulation tools
  • Evaluation and analysis of protocols
  • Mobile and wireless networking
  • Graph theory
  • Network optimisation
  • Computational complexity
  • Software defined networking
  • Information centric networking

The module combines relevant theoretical abstractions with essential practical networking approaches to build a strong profile of skills, abilities and knowledge for the successful student.

This module offers an in-depth exploration of artificial intelligence (AI) and its transformative role in the development of advanced software systems. It introduces key theoretical approaches and practical techniques for designing and deploying intelligent technologies, empowering you with the skills to build AI-driven solutions.

Key topics covered include:

  • Introduction to Artificial Intelligence: Understanding the foundations of AI and its significance in modern software development.
  • Theoretical Approaches to AI: Exploring algorithms and models that underpin intelligent systems, such as decision trees, neural networks, and reinforcement learning.
  • Practical AI Implementation: Gaining hands-on experience with AI techniques, including machine learning, natural language processing, and computer vision, through coding exercises and projects.
  • Designing and Deploying Intelligent Systems: Examining methods for building robust, scalable, and ethically sound AI technologies.
  • AI in Various Domains: Critically evaluating how AI is applied across industries such as business, healthcare, education, law, government, and scientific research, along with the ethical and societal implications of these applications.

This module blends theory with practical application, equipping you to develop intelligent systems and critically assess their impact in a wide range of real-world contexts.

The Robotics module provides an introduction to the foundational principles of robotics, exploring the theoretical aspects that underpin the design, application, and ethical considerations of robotic systems.

You will begin by examining the fundamental question: What is a robot? This includes understanding the diverse applications of robots across industries and their role in society. The module also delves into the ethical implications of robotics, such as their impact on employment, privacy, and safety.

Key technical topics include an overview of mechatronics, which integrates mechanical, electronic, and computer engineering; sensors, which enable robots to perceive their environment; and control systems, which ensure robots can perform tasks accurately and autonomously.

The module is assessed in a practical project where you will design a simulated robot, applying the concepts learned to demonstrate your understanding of robotic systems.

The module covers a range of topics that include:

  • Basic cloud computing concepts, advantages, and service delivery models.
  • Identity and Access Management (IAM) for centrally managing access to cloud resources.
  • Secure networking practices within the cloud environments.
  • Design and implementation of highly available, and secure cloud architecture.
  • Design and implementation of cloud resources such as Virtual servers, Databases, and storage solutions.
  • Introduction to serverless architecture within the cloud environments.
  • Application Data protection, both in transit and at rest, with in the cloud environments.
  • Logging and Monitoring within the cloud.
  • Incident Response Management within the cloud environments.

Recognition of the need to apply data science applications in organisations.

Establishment of correct selection and application of data science techniques (i.e. data shaping, model type selection, testing and application) in various organisational contexts. 

Application of common machine learning tools (e.g. logistic regression, non-linear model estimation, neural network) in a common development environment (e.g. R, Python, Scala) in preparation for the real world context.

Evaluation of the role of ethics in the application of data science techniques.