Modules

This module introduces students to developing applications for mobile devices on a major platform such as Android or iOS. This includes mobile device specific aspects such as working with location services, SDKs and libraries, making network requests, concurrency and dealing with resource limitations.

From a programming theory and application perspective, the module will consider, working with and further developing existing code, including the refactoring process, design patterns, the SOLID principles andwill  introduce students to the fundamentals of functional programming. Students will also consider the differing features of programming languages (such as type systems)

The module offers a comprehensive exploration of design thinking and its integration with human-centred design principles and practices to realise highly usable interactive systems. By the end of the module, students will be equipped to design innovative and user-friendly digital products and services, balancing business objectives with user satisfaction. This is supported by a focus on collaboration and teamwork, ensuring that the practices and processes of the industry are reflected. Over its duration, the module will engage with topics including, but not limited to, the following:

  • Human-centred design and ISO 9241-210
  • Balancing business goals with user needs
  • UX research
  • Experience mapping
  • Design thinking
  • Information architecture
  • Progressive enhancement
  • User interface design techniques
  • Defining inclusive design and accessibility
  • Style-guides and specifications for developers
  • Design sprints for software innovation
  • User testing and evaluation

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.