Course Number and Title: ELC 275 Microprocessor Systems
This course introduces microprocessors as embedded devices. Emphasis is on Input/Output techniques, interrupts, real-time operation, high-level code debugging and interfacing to various types of sensors and actuators. Projects that address various embedded applications are a major part of the course.
- Describe the characteristics and application of embedded systems. (CCC 1, 2, 3, 5, 6; PGC 1, 2, 3, 4, 5)
- Explain the function of a state machine versus a datapath. (CCC 1, 2, 3, 6; PGC 1, 2, 3, 4)
- Explain processor architecture. (CCC 1, 2, 3, 6; PGC 1, 2, 3, 4)
- Describe memory, bus, and input/output (IO) systems. (CCC 1, 2, 3, 6; PGC 1, 2, 3, 4)
- Formulate assembly language into usable instruction. (CCC 1, 2, 3, 6; PGC 1, 2, 3, 4)
- Discuss interrupts and their application to a microprocessor. (CCC 1, 2, 3, 6; PGC 1, 2, 3, 4)
- Explain embedded system design concepts. (CCC 1, 2, 3, 4, 5, 6; PGC 1, 2, 3, 4, 5, 6)
- Develop embedded system applications with the C programming language. (CCC 1, 2, 3, 4, 6; PGC 1, 2, 3, 4, 6)
See Core Curriculum Competencies and Program Graduate Competencies at the end of the syllabus. CCPOs are linked to every competency they develop.
Upon completion of this course, the student will:
- Describe the characteristics and application of embedded systems.
- Explain how the term “embedded” has multiple implications with descriptions like firmware, dedicated purpose, and invisible components.
- Explain the difference between the term “systems” when combined with the term embedded as opposed to the more common use of systems when referring to personal computers (PCs), minicomputers or mainframes.
- Explain how a general purpose computer is comprised of numerous embedded systems but as a whole is not an embedded system.
- Describe the characteristics of embedded systems in terms of their constituent hardware and software components, timeliness, interconnectedness, reliability, and marketplace pervasiveness.
- Describe a real-time operating system (RTOS), and explain the meanings of hard, firm (strict), and soft real-time constraints.
- Describe specific examples of applications of embedded systems.
- Explain the function of a state machine versus a datapath.
- Diagram the input, control, and output of a clocked sequential logic circuit.
- Diagram an algorithmic state machine (ASM) comprised of a finite state machine (FSM) and a datapath unit.
- Describe important FSM characteristics and datapath characteristics.
- Describe and flowchart the key design considerations of an ASM system.
- Describe applications of ASM design, and identify the FSM and datapath components of the applications.
- Explain the differences and similarities between the Mealy machine and the Moore machine.
- Explain processor architecture.
- Describe and diagram the classic components of computer and microcontroller architectures.
- Describe the differences among von Neumann, Harvard, and modified Harvard architectures.
- Describe the difference between the reduced instruction set computer (RISC) architecture and the complex instruction set computer (CISC) architecture.
- Describe the dominant core architectures implemented by the majority of the embedded (also referred to as low-end) system market.
- Discuss the terms advanced RISC machines (ARM), microprocessor without interlocked pipeline stages (MIPS), and advanced virtual RISC (AVR).
- Discuss the microprocessor’s core registers (also called the central processing unit’s [CPU] programming model), and describe their functions.
- Identify the major elements of instruction set architecture (ISA) (registers, memory, word size, endianness, instructions, and addressing modes), and explain the purpose of the ISA.
- Describe memory, bus, and input/output (IO) systems.
- Define bits, nibbles, bytes, words, cache, main memory, and secondary memory.
- Identify and explain read-only memory (ROM), static random access memory (SRAM), dynamic random access memory (DRAM), the various types of flash memory, and magnetic memory.
- Describe volatile memory and non-volatile memory, and categorize memory systems as volatile or non-volatile.
- Explain the processor - memory performance gap.
- Describe the approximate cost per gigabyte and access speed for SRAM, DRAM, and hard drives.
- Discuss where SRAM, DRAM, and hard drives fit into the memory hierarchy, and explain the principle of locality.
- Calculate memory performance in terms of average memory access time (AMAT).
- Explain logical memory configuration versus physical memory configuration.
- Identify transistor level diagrams, design specifications, and uses of historical and modern volatile memory types.
- Identify transistor level diagrams, design specifications, and uses of historical and modern non-volatile memory types.
- Describe byte addressing and word addressing, and explain the difference between them.
- Describe addressing of bytes comprising a digital word in terms of big endian and little endian.
- Define data bus, and describe different bus architectures.
- Discuss the following design considerations master versus slave, internal versus external, bridged versus flat, memory versus peripheral, synchronous versus asynchronous, high speed versus low speed, serial versus parallel, single master versus multi-master, single layer versus multi-layer, multiplexed versus de-multiplexed, and data lines versus control lines.
- Identify timing diagram conventions, and read and write data transfer diagrams with and without wait-states.
- Describe the high-speed CPU to memory bus and the low-speed peripheral bus.
- Describe memory-mapped IO and contrast it to port-mapped IO and direct memory access.
- Formulate assembly language into usable instruction.
- Describe the levels of source or program code.
- Diagram the C code translation hierarchy comprised of static compilation and dynamic compilation.
- Describe how object modules are produced and then linked.
- Identify the instruction portion of a line of assembly, and explain its function using the microprocessor’s instruction set.
- Identify the operand portion of a line of assembly, and explain which components represent values stored in registers or memory or are immediate values.
- Identify the constituent microcontroller assembly instructions comprising each high- level language instruction making up a well-designed high-level language program.
- Interpret how the assembly code generated by a compiler relates to the high level program code.
- Discuss interrupts and their application to a microprocessor.
- Define interrupt, interrupt vector, interrupt pseudo-vector, interrupt service routine (or handler), and exception.
- Explain how the diversity of I/O devices, the ability to know when I/O is necessary, and how the I/O is implemented necessitates interrupts.
- Describe important aspects of polling and contrast to the advantages and disadvantages of interrupts.
- Describe key questions and corresponding answers that provide understanding to when, where, how, and how often an interrupt is serviced.
- Describe vectored interrupts and nested interrupts.
- Explain interrupt priority, preempt priority, and sub-priority.
- Describe the interrupt handling procedure from the occurrence of the interrupt (prologue) to resumption of the microcontroller’s initial context (epilogue).
- Explain embedded system design concepts.
- Identify processors best suited for various applications and their corresponding data requirements in context with the choice of embedded system design.
- Explain trends driving embedded system design metrics of cost, performance, power, and size.
- Describe the integrated chip (IC) manufacturing process from silicon (Si) ingot to tested package dies.
- Describe the design, verification, implementation, re-verification, prototyping, re-verification, and production processes to final embedded system application.
- Identify processes which involve the greatest cost for application specific integrated circuit (ASIC) and field programmable gate arrays (FPGA).
- Describe embedded system performance in terms of peak versus sustained, average versus worst/best-case, and throughput versus latency.
- Identify various design methodologies, and explain the flow of decision making for each.
- Define hardware design flow, platform design flow, and hardware/software co-design flow.
- Describe the different levels of integration of platform design flow.
- Identify a hardware-centric view of a platform and a software-centric view of a platform, and explain advantages and disadvantages of each.
- Describe co-design issues with emphasis on hardware/software partitioning and scheduling.
- Describe partitioning styles, and compare hardware first approach to software first approach.
- Describe partitioning costs in terms of software resources and hardware resources.
- Describe how scheduling is managed with graphically representing inputs and outputs, and identifying scheduling constraints.
- Determine the lowest cost schedule and the shortest time schedule using scheduling techniques described above.
- Describe inter-processor communication cost.
- Develop embedded system applications with the C programming language.
- Diagram program logic and flow through flowcharts of the embedded system applications.
- Identify variable types, operators, control flow structures, function prototypes, functions, and data structures.
- Develop well-designed high-level language programs.
- Develop well-documented high-level language programs.
- Perform programming tasks that involve sequence, decision, and repetition structures of programming.
- Create time delays.
- Interface I/O devices to the microcontroller.
- Write the code necessary to send/receive the data to/from these I/O devices.
- Create service routines to perform a function on the occurrence of a hardware or software interrupt.
- Predict, measure, and manipulate a program's execution time.
Students must demonstrate proficiency on all CCPOs at a minimal 75 percent level to successfully complete the course. The grade will be determined using the Delaware Tech grading system:
Students should refer to the Student Handbook for information on the Academic Standing Policy, the Academic Integrity Policy, Student Rights and Responsibilities, and other policies relevant to their academic progress.
- Apply clear and effective communication skills.
- Use critical thinking to solve problems.
- Collaborate to achieve a common goal.
- Demonstrate professional and ethical conduct.
- Use information literacy for effective vocational and/or academic research.
- Apply quantitative reasoning and/or scientific inquiry to solve practical problems.
- Integrate modern tools of the engineering discipline into the field of study.
- Apply mathematics, science, engineering, and technology theory to solve electrical and computer engineering and electronics engineering technology problems.
- Conduct, analyze, and interpret experiments using analysis tools and troubleshooting methods.
- Identify, analyze, and solve electrical and computer engineering and electronics engineering technology problems.
- Explain the importance of engaging in self-directed continuing professional development.
- Demonstrate basic management, organizational, and leadership skills that commit to quality, timeliness, and continuous improvement.
The College is committed to providing reasonable accommodations for students with disabilities. Students are encouraged to schedule an appointment with the campus Disabilities Support Counselor to request an accommodation needed due to a disability. A listing of campus Disabilities Support Counselors and contact information can be found at the disabilities services web page or visit the campus Advising Center.