Use of microcontroller-based embedded systems as a tool to address digital control and sensing in engineering applications. Modern methodologies for programming microcontrollers including programming under real-time and resource design constraints. Finite-state machine modeling and software implementation. Event-driven programming including polling-based and interrupt-driven input/output. Integration of sensors and actuators, use of standard digital and analog interfaces, and use of hardware peripherals in microcontroller architectures. Design of hardware abstraction layers and software architectures for embedded systems. Integration of hardware peripherals into real-time, software applications. Software toolchains for embedded systems, use of debugger and development and testing methodologies. Professional project management and version control.
Microcontroller-based embedded system software and hardware is pervasive in modern electrical and computer engineering applications. This course introduces students to microcontroller-based embedded systems as a tool to address digital control and sensing in engineering applications. Embedded systems and software are extensively used in electrical and computer engineering capstone design projects and junior and senior level technical electives.
Percentage of Course
|1. Embedded computing systems for digital control and sensing||10%|
|2. Microcontroller programming methodologies for real-time and resource design constraints||10%|
|3. Finite state machines and their software implementations||10%|
|4. Event-driven programming||10%|
|5. Hardware peripherals, digital and analog interfaces||20%|
|6. Analog to digital converters||10%|
|7. Hardware abstraction layers||5%|
|8. Microcontroller architectures||10%|
|9. Software toolchains, debugging, and testing||10%|
|10. Project management and version control||5%|