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 2025 is available in the Archives.
Credit points: 6 cp
Subject level:
Undergraduate
Result type: Grade and marksRequisite(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:
- Embedded Systems and Microcontroller Architecture
- Embedded C
- Interrupts
- General purpose I/O
- General purpose timers
- Direct Memory Access (DMA)
- Analog-to-digital converter (ADC)
- Digital-to-analog converter (DAC)
- Serial communications protocols
- Multitasking
- Digital signal processing (DSP)
- 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.