ECE 3803 - Microprocessor System Design
D-term 2007
| Lab Assignment 1 | Lab Report 1 |
| Lab Assignment 2 | Lab Report 2 |
| Lab Assignment 3 | Lab Report 3 |
This course builds on the computer system material presented in ECE 2801. It
covers the architecture, organization and instruction set of microprocessors. The interface
to memory (RAM and EPROM) and I/O peripherals is described with reference to bus
cycles, bus timing, and address decoding. Emphasis is placed on the design,
programming and implementation of interfaces to microprocessor systems using amixture of C and assembly language.
Topics:
bus timing analysis, memory devices and systems, IO and control signaling, bi-directional bus interfaces, instruction execution cycles, interrupts and polling, addressing, programmable peripheral devices, interface design issues including analog/digital and digital/analog conversion. Mixed language (C and Assembler)
programming.
Laboratory exercises:
Use of standard buses for advanced IO design and
programming, mixed language programming, standard bus timing, and interface design and implementation. Development of a complete standalone embedded computer system.
Recommended Background:
ECE 2801 Foundations of Embedded Computer Systems or equivalent.
ECE 3801 Advanced Logic Design or at least some logic design background.
CS 2005, CS 2301 or CS 2303 or an equivalent background in C programming.
Detailed Course Description:
In ECE 2801 you learned how to write and debug software for embedded systems and how to directly interact with various peripherals in software. ECE 3803 introduces you to the hardware interfaces and the major components of a microprocessor system. A large portion is the course is laboratory exercises where you will be installing a microprocessor on a solder-less prototyping board, adding memory and peripherals to it by hand, and programming it. In lectures, we will cover the architecture and organization of the microprocessor we use in lab, the ARM7TDMI, a low-end member of a powerful 32-bit embedded microprocessor family. We will then move on to important considerations for the successful use of the various interfaces in a microprocessor system, including bus timing analysis. As the course progresses, we will examine the hardware details of several I/O peripherals, various memory system components and the most important aspects of embedded operating systems. ECE 3803 does not (currently) include any programmable logic design (covered in ECE 3810) or high performance computing topics (covered in ECE 4801). The approach we take in lab is not the most practical for designing a small embedded microprocessor system. It is an instructive approach, intended to give you a better perspective of what goes on inside a system-onchip, as well as prepare you for designing larger systems.
Topics:
bus timing analysis, memory devices and systems, IO and control signaling, bi-directional bus interfaces, instruction execution cycles, interrupts and polling, addressing, programmable peripheral devices, interface design issues including analog/digital and digital/analog conversion. Mixed language (C and Assembler)
programming.
Laboratory exercises:
Use of standard buses for advanced IO design and
programming, mixed language programming, standard bus timing, and interface design and implementation. Development of a complete standalone embedded computer system.
Recommended Background:
Detailed Course Description:
In ECE 2801 you learned how to write and debug software for embedded systems and how to directly interact with various peripherals in software. ECE 3803 introduces you to the hardware interfaces and the major components of a microprocessor system. A large portion is the course is laboratory exercises where you will be installing a microprocessor on a solder-less prototyping board, adding memory and peripherals to it by hand, and programming it. In lectures, we will cover the architecture and organization of the microprocessor we use in lab, the ARM7TDMI, a low-end member of a powerful 32-bit embedded microprocessor family. We will then move on to important considerations for the successful use of the various interfaces in a microprocessor system, including bus timing analysis. As the course progresses, we will examine the hardware details of several I/O peripherals, various memory system components and the most important aspects of embedded operating systems. ECE 3803 does not (currently) include any programmable logic design (covered in ECE 3810) or high performance computing topics (covered in ECE 4801). The approach we take in lab is not the most practical for designing a small embedded microprocessor system. It is an instructive approach, intended to give you a better perspective of what goes on inside a system-onchip, as well as prepare you for designing larger systems.