External Info

This course provides an in-depth exploration of hardware/software interfacing for microprocessor-based systems, including microcontrollers, with the aim of imparting sufficient knowledge to enable students to design and implement systems of their own, particularly for embedded applications. The practical aspects of the course are illustrated with the 32-bit Altera Nios II instruction set architecture and soft processor for implementation with other components within field-programmable logic chips, but the principles that are conveyed using this example are largely applicable to any embedded microcontroller or general-purpose microprocessor. The philosophy of the course is to progress from low-level internal interconnections and input/output interfaces, through software issues and interrupt processing, to high-level considerations for embedded and system-on-chip applications. In this manner, the course seeks to develop an appreciation of attention to technical details while also maintaining an overall system perspective. Laboratory activity provides opportunities for practical application of the hardware and software concepts. Technical case studies are also employed to illustrate the application of the relevant concepts. This course builds on and supplements knowledge from other courses on digital logic, computer architecture, circuits and electronics, and software/programming.

Course Learning Outcomes (CLOs)
  • Design and implement address decoding for memory components and input/output devices in a microprocessor-based system.
  • Understand bus and memory interface timing and how it relates to cycle-by-cycle processor operation.
  • Design and implement logic for parallel input/output ports.
  • Understand the operational principles of, and hardware support for, processor interrupts.
  • Design and implement software in assembly language and in the C language for interrupt-capable hardware interfaces such as parallel ports and timers.
  • Understand microcontroller architectures and implementations, system-on-chip design in field-programmable logic chips, and related design considerations for embedded applications.
  • Understand the application of interfacing and embedded-system concepts as exemplified by representative systems.
Credit Breakdown

Lecture: 3
Lab: 0.5
Tutorial: 0.5

Academic Unit Breakdown

Mathematics 0
Natural Sciences 0
Complementary Studies 0
Engineering Science 36
Engineering Design 12