MECHENG 313 - Real Time Software Design

advertisement
Department of Mechanical Engineering
MECHENG 313 - Real Time Software Design
Course Outline
Learning Objectives
At the end of the course, students will be expected to understand:
 the basic concepts of real time control systems
 how data are represented in a computer
 the principles of computer architecture
 programming in assembly language
 principles of programming in the Microsoft MFC environment
 the relationship between an assembly language and higher level languages such as C and C++
 the use of assembly language and C++ for programming stand alone microcomputer real time control
systems and computer data acquisition systems
 how software systems for real time industrial control are designed.
These principles will be taught using the following platforms:
 the AVR microprocessor and development system
 the Microsoft Visual C++ program development system, using the Microsoft Windows operating
system
 software/hardware co-design, such as interfaces with analogue to digital converters, timers, motors,
sensors etc.
Organization
Lectures
3
per week
Lecture times and rooms (as of 12 July 2010)
Tuesday
12-13
Engineering 301-1060
Wednesday
12-13
Engineering 3.401
Thursday
12-13
Engineering 105-018
Tutorials
tutorial time location 1 per week, starting week 2
Friday 12-13
201N- 370
Laboratories
5
Weeks 3, 5, 6, 10, 11;
two hour laboratory sessions
Schedule to be advised.
Assessment
40% coursework,
60% examination
Coursework
Assignment 1
15 marks
(due week 7, Friday, 5:00pm)
Assignment 2
15 marks
(due week 11, Friday 5:00pm)
Lab exercises and reports
10 marks
Total
40 marks
Lecturers
A/P. Shane Q Xie
Prof G D Mallinson (to be confirmed)
1.1004
1.910
s.xie@auckland.ac.nz
g.mallinson@auckland.ac.nz
Overview
Concepts
Introduction to the concepts of real time systems, industrial examples, system and software design principles
Computer Mathematics and Operations
Data representations in computers, binary arithmetic, twos complement numbers, hexadecimal arithmetic,
logical operations
Components of a microcomputer and elementary operations
Overview of the operations of a computer, The Arithmetic-Logic Unit, the Control Unit, memory, system buses,
execution of a simple routine, introduction to programming.
The AVR Microcomputer
Introduction to AVR, hardware configuration, pin functions and modes, memory cycles and timing, memory
interface, RESET, interrupts and polling.
Basic Assembly programming
Registers, The Instruction Set, Instruction modes, Index Register Instructions and the Condition Code Register,
Compare instructions and JUMP and BRANCH instructions, transfer instructions, addition instructions,
subtraction instructions, multiplication and division instructions, shift, rotate and logic instructions, decimal
arithmetic, the stack, subroutines, time of day subroutines, simulators and assemblers.
Advanced Assembly programming
Basic input output Ports, parallel input/output, handshaking. Timing systems, input capture registers, output
compare registers, the pulse accumulator, Analogue-to Digital Converter, serial communication interface, Using
AVR for Real Time Control.
Programming C/C++ in windows environment
Object oriented programming, Visual C++ basics, User interface design, complex data types, functions,
parameter passing, control structures, libraries.
Programming interfaces and environments, program testing and fault finding.
Essential elements of C++
Real Time Software
Real time operating systems, C data types for hardware interfacing, real time memory management, functions for
hardware handling, Real time I/O control, mixed C and assembler code, timer control for real time task handling.
Real-time applications in Industry.
Hardware/ Software co-design, tools such as multimeters, oscilloscopes, logic analyzers, and software
simulators. Performance tuning, system reliability.
Download