University of Technology Sydney

48434 Introductory Embedded Systems

Warning: The information on this page is indicative. The subject outline for a particular session, location and mode of offering is the authoritative source of all information about the subject for that offering. Required texts, recommended texts and references in particular are likely to change. Students will be provided with a subject outline once they enrol in the subject.

Subject handbook information prior to 2024 is available in the Archives.

UTS: Engineering: Electrical and Data Engineering
Credit points: 6 cp

Subject level:

Undergraduate

Result type: Grade and marks

Requisite(s): 48430 Fundamentals of C Programming

Recommended studies:

Knowledge of the C language and digital systems is essential for this subject.

Description

Embedded systems play indispensable roles in our life. They can be as simple as an electronic desk clock or as complicated as an aircraft. They can follow fixed routines, such as a standard 45-min wash in your washing machine, or they can also be smart by adapting to changing environments, such as smart traffic lights changing based on real-time traffic flows. Regardless, all embedded systems come with a unified system structure: having one or more microcontrollers communicating with peripherals to react effectively to external inputs by performing predefined functions.

This subject introduces the most fundamental concepts of an embedded system, including microcontroller architectures, Boolean number systems, logic and arithmetic, memory addressing, interrupts, system timers, and peripheral inputs/outputs. Lab sessions accompanying lectures help students gain hands-on experiences and better understand the key concepts. Students also work in groups to develop small yet complete embedded systems to systematically practice the learned knowledge and skills in system design, embedded programming, system implementation, functionality testing, and embedded software debugging.

Students develop their ability to interpret and evaluate a set of software specifications and work in small groups to write software modules and applications for an embedded system. Students are introduced to abstracting hardware functionality into software modules and researching and implementing software data structures.

Students develop their ability to test and modify their software to ensure compliance with the application specifications and be introduced to reviewing and evaluating their own and others software.

The technical content is contextualised in a project in which students analyse the requirements of an embedded system and design the software to meet those requirements. Skills in debugging software are also developed through the practice-based nature of the subject. Students demonstrate their learning outcomes through quizzes, lab tasks, project works and exams.

Subject learning objectives (SLOs)

Upon successful completion of this subject students should be able to:

1. Design, write and test a variety of software modules found in modern embedded systems, such as: hardware abstraction layers; data structures; and interrupt service routines. (C.1)
2. Design, write and test an embedded application that is modular, hierarchical, responsive to real-time requirements, and tightly constrained by time, size and cost. (C.1)
3. Utilise a variety of software tools to write, execute and test embedded software applications. (D.1)
4. Test software performance in an embedded system by selecting and using appropriate laboratory equipment. (D.1)
5. Research and evaluate knowledge from many sources. (D.1)

Course intended learning outcomes (CILOs)

This subject also contributes specifically to the development of the following Course Intended Learning Outcomes (CILOs):

  • Design Oriented: FEIT graduates apply problem solving, design and decision-making methodologies to develop components, systems and processes to meet specified requirements. (C.1)
  • Technically Proficient: FEIT graduates apply abstraction, mathematics and discipline fundamentals, software, tools and techniques to evaluate, implement and operate systems. (D.1)

Contribution to the development of graduate attributes

Engineers Australia Stage 1 Competencies

This subject contributes to the development of the following Engineers Australia Stage 1 Competencies:

  • 1.3. In-depth understanding of specialist bodies of knowledge within the engineering discipline.
  • 2.1. Application of established engineering methods to complex engineering problem solving.
  • 2.2. Fluent application of engineering techniques, tools and resources.

Teaching and learning strategies

Normal class contact time is three hours weekly: lecture (1 hour) and tutorial/lab (2 hours).

The subject is designed to engage students closely in the learning process by encouraging active learning and providing students with sufficient opportunities for hands-on experiments. Students will have extensive interactive activities in class and using Canvas with their fellow students and teachers.

In lectures, students will learn the essential components of embedded systems. They are required to read the textbook before lecture classes and solve exercise problems afterwards. In-class feedback will also be given on the quizzes, labs and projects.

The tutorial may include quizzes, followed by group discussions on key concepts, as well as Q&A on critical/difficult concepts. Students are expected to conduct the self-directed study by reading supplementary material, solving exercise problems, and preparing for project work.

The lab sessions adopt workshop approaches that combine learning by doing, group discussion, designing, simulating, and developing activities. Teamwork that is predominant in actual engineering workspace is strongly encouraged and supported to promote effective communication and efficient collaboration.

Content (topics)

The content covered is divided into the following sections:

  1. Embedded Systems and Microcontroller Architecture
  2. Embedded C
  3. Interrupts
  4. General purpose I/O
  5. General purpose timers
  6. Direct Memory Access (DMA)
  7. Analog-to-digital converter (ADC)
  8. Digital-to-analog converter (DAC)
  9. Serial communications protocols
  10. Multitasking
  11. Digital signal processing (DSP)
  12. A review and extension Systemic view of embedded systems

Assessment

Assessment task 1: Labs

Intent:

Students develop skills in microcontroller modules, serial I/O, non-volatile memory, interrupt handling, analog interfacing and PC connectivity.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Laboratory/practical
Groupwork: Group, group assessed
Weight: 20%

Assessment task 2: Quiz

Intent:

Students test their conceptual understanding, problem-solving skills and enable self-assessment.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3 and 5

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Quiz/test
Groupwork: Individual
Weight: 10%

Assessment task 3: Project

Intent:

Students demonstrate their integrated knowledge of embedded systems through delivery of a small project.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Project
Groupwork: Group, individually assessed
Weight: 40%

Assessment task 4: Final Written Exam

Intent:

Tests concept understanding, system analysis and design skills, and overall assessment.

Objective(s):

This assessment task addresses the following subject learning objectives (SLOs):

1, 2, 3, 4 and 5

This assessment task contributes to the development of the following Course Intended Learning Outcomes (CILOs):

C.1 and D.1

Type: Examination
Groupwork: Individual
Weight: 30%

Minimum requirements

In order to pass the subject, a student must achieve an overall mark of 50% or more.

Required texts

Sepehr Naimi, Sarmad Naimi, and Muhammad Ali Mazidi. "The AVR Microcontroller and Embedded Systems Using Assembly and C (Second Edition)." (2017), http://www.NicerLand.com, ISBN-13: 978-0997925968.

Recommended texts

Dr Yifeng Zhu, Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C (Third Edition) ISBN-13: 978-0-9826926-6-0, Publisher: E-Man Press LLC; 3rd edition (July 2017).

Make: AVR Programming, 2014, ISBN: 9781449355784, available on O'Reilly, https://www.oreilly.com

References

O'Reilly Arduino Cookbook: recipes to begin, expand, and enhance your projects (3rd Edition) (you may have educational access to the book on O'Reilly, https://www.oreilly.com; check on UTS website or with UTS librarian)

E. A. Lee and S. A. Seshia, Introduction to Embedded Systems - A Cyber-Physical Systems Approach, Second Edition, MIT.

James M. Fiore, Embedded Controllers Using C and Arduino 2E, e-copy available online for free

Sepehr Naimi, Sarmad Naimi, and Muhammad Ali Mazidi. "The AVR Microcontroller and Embedded Systems Using Assembly and C (1st Edition)," e-copy available online for free.