Brigham Young University Homepage

IT

Information Technology

IT 441

Catalog Data: (3:2:3) F Prerequisite: IT 344.
Real-time embedded systems development using microprocessors and microcontrollers. Multitasking, hardware/software interfacing, operating systems, and various CPU architectures.

Textbook(s):

  • Data books for Microchip PIC 18xxx microcontrollers including User’s manual for chip, User’s manual for MPLAB development environment, User’s and reference manuals for C compiler.
    Online and manufacturer’s documentation for PC104 systems

Reference Book(s):

  • On-line reference materials for Linux.
  • Documentation (online or CD-ROM) for current Lab version of Linux installed in lab.

Recommended Book(s):

  • Peatman, John B. Embedded Design with the FPIC18F452 Microcontroller Prentice Hall, 2003

Class website: http://www.et.byu.edu/groups/it441/start.html

Class Coordinator: RH

Goals:

  • Students will gain an understanding of the role of embedded systems as part of the overall structure of computing systems and ubiquitous computing.
  • Design an embedded computer for a multi-part application. Be able to do this for more than one type of embedded computer. Be able to generalize this to multiple embedded system architectures.
  • Evaluate the trade-offs between commercial, custom and no operating system approaches to embedded computing
  • Understand and be able to design within real-time constraints.
  • Learn to use commercially available resources rather than a textbook for designing new systems (Professional design practice and also life-long learning)

Prerequisites by topic:

  • Programming in a modern high-level language, which supports structured programming, such as C, C++ or Java.
  • Design background sufficient to interface digital peripherals to computers with consideration for protocols, signal types, timing, voltage, current and power levels.

Outcomes

  1. Describe the characteristics that define embedded systems. Be able to identify embedded systems in various applications.
  2. Describe the relative market penetration of embedded vs. desktop computer systems. Describe the variety of microcontroller architectures, operating systems and development environments
  3. Define real-time and IO concepts for embedded systems
  4. Describe Microcontroller (uC) architectures. Justify the use of architecture features for specific applications. (eg with/without memory management architecture)
  5. Analyze and describe at least one CPU, suitable for embedded systems, which includes memory management features.
  6. Read and write ASM and C code for at least one leading microcontroller.
  7. Use software development tools for embedded systems
  8. Describe and use A/D systems and Sampling principles for A/D. Apply these principles on at least one embedded platform.
  9. Describe and use interrupts (1)
  10. Describe and use serial control (1)
  11. Be able to use Linux1 (desktop) for normal applications including file-structure, launching applications, coding and network communications
  12. Apply an embedded platform with OS to solving embedded applications (lab/project)
  13. Use basic networking on an embedded platform (with an OS)
  14. Explain the necessity, and structure of device drivers for embedded systems with OS. Obtain and install at least one device driver.
  15. Build a system in which multiple different types of embedded system are communicating with each other. Use the system to control and monitor IO devices remotely.
  16. Be able to analyze and categorize multiple embedded architectures such as: PC104, Intel 8051, StrongARM, Motorola M68HC11, ATMEL RISC, etc.
Note 1: An alternative OS can be substituted for Linux provided it has similar capabilities and is well accepted for embedded systems applications

Laboratory projects: Build embedded Microcontroller system (no operating system and a second embedded system which uses a common operating system (Linux) with real-time I/O constraints.
Use commercially available design documentation (datasheets) rather than a textbook to solve design problems.

Laboratory topics (topics do not necessarily correspond to individual lab exercises):

  1. Minimal microcontroller. Build a functioning microcontroller with just power, oscillator, reset and one input (switch) and one output (LED). Learn to use all the standard development tools.
  2. Program a “hello real world” (switch operates LED through software)
  3. Program digital I/O using Assembly and/or C language. Produce simple patterns on LEDs using switches as inputs.
  4. Digital I/O using C language. Control a stepper motor.
  5. Analog inputs.
  6. Interrupts
  7. Serial Communications
  8. Linux embedded system. (PC 104) Hello PC 104 World / NFS
  9. (PC 104) Digital Input/Output
  10. (PC 104) Analog Interface Design
  11. (PC 104) Ethernet Communications
  12. Multi-System Data Acquisition (DAQ) Design (3 week exercise)

Laboratory Equipment:
Microchip microcontroller PICDEM2 Development board (2 students per)
CPUs for development board obtained by donation from Microchip.
Oscilloscope, DMM, PSU (5+12V)
PC104 modules with Linux OS, analog and digital IO, Serial and Ethernet comms.

Computer Equipment:
Desktop development platform with
Microchip MPLAB IDE and
Microchip C18 compiler. (runs under Windows)
Linux OS:
Desktop development system running Linux with software development tools (compiler debugger etc.) and libraries appropriate for the PC104 systems.

Written and oral communication requirements:
Written lab reports for each lab experience.
Reports on development environments used

Math Analysis: None

Library or other Research Projects: Students are required to find the technical documentation they need from professionally available sources. This is used and reported on in their labs. They are also required to develop an instruction sheet for developing code on each embedded system they use in labs.

Life-long learning experiences: This class requires the students to use commercially available documentation rather than a conventional textbook. This is part of the course objectives and is intended to educate them both to the wealth of technical information available to the practicing professional and also to the techniques to extract useful information from documentation prepared by those who mostly wish to sell something.

Prepared By: R. Helps

Date Revised: Dec 2004

Brigham Young University, Provo, UT 84602 - (801)422-4636 - Copyright 2007, All Rights Reserved XHTML CSS 508