Title | Winter | Spring | Summer | Fall |
Embedded Systems Engineering |
Logic Design and Analysis using Verilog (3.00 Units)
EECS X494.92
Expand your knowledge of gate level modeling, data flow modeling, behavior modeling, advanced modeling techniques, test benches, and logic synthesis. Learn the essentials of the Verilog hardware description language, syntax, and practical design scenarios. Participants learn fundamental and advanced usage of Verilog as a design capture and simulation development tool, and the use of the Programming Language Interface (PLI). The course will emphasize how Verilog is used in each step of the design automation process.
|
|
|
|
|
FPGA Design and Implementation (3.00 Units)
EECS X494.95
The goal of this course is to provide students material to gain a working understanding of FPGA architectures, design methodologies, FPGA development tools, prototyping hardware, FPGA synthesis, place and route, Static Timing Analysis, and FPGA image generation. This course’s approach involves learning new material via a series of lectures and then practicing that knowledge in labs, which build on top of one another. These labs are meant to provide practical design scenarios for students to apply what they have learned in a hands on setting. This course will focus exclusively on VHDL for RTL design and students will have the opportunity to create, modify, and debug designs through the labs. In lab, students will be asked to modify existing projects to accommodate more IP, add timing constraints so a design can pass timing, and physically validate models by programming your own FPGA board. The guided labs will provide enough context for the student to complete the final project. The final project has student’s create their own FPGA design, which needs to meet a set of given design specifications.
The objective of this class is to allow all students the opportunity to learn high-level FPGA design issues, the FPGA implementation flow and to debug FPGA hardware.
|
|
|
|
|
Motor Control Algorithms and Application (4.00 Units)
EECS X497.6
Although the topic of motor control has been around for decades, there are more development activities in motor drives and control technologies today than ever in the past. This is because of the increasing use and demanding requirements in applications ranging from (Hybrid) Electric Vehicles, aircraft flight controls, ultra-fast computer servos, to adjustable-speed pumps, and many others. On the other hand, thanks to the rapid development of both power electronic switching devices and Digital Signal Controllers (DSC), motor drive technologies have been developed with great emphasis on performance, cost, efficiency, and controllability. From this effort the permanent magnet synchronous motor (PMSM) drive has emerged as a top competitor because of its high efficiency, low torque ripple, superior dynamic performance, and high power density. To realize such complex technologies, a group of resources including motor control experts and software engineers are indispensable. However, there is often a knowledge gap between these two disciplines. It is for the purpose of bridging this gap, that this course was created. Starting from a review of motor types and motor control techniques, this course will focus on the theory and applications of Field Oriented Control (FOC) algorithms and embedded programming techniques. The project sessions will demonstrate how to create a DSC-based motor controller project from scratch step-by-step, write control blocks in C programming language, and finally, complete a sensorless motor speed controller solution for PMSM through ten incremental lab exercises. Each lecture is supplied with narrated PowerPoint presentation, and each lab is provided with recorded lab demonstration. Students are required to study the lesson materials, watch the lecture videos, and program the lab projects with the reference of lab instructions, and accomplish a fully functional sensorless PMSM speed controller with FOC technology by the end of the course.
|
|
|
|
to be scheduled
|
Designing Embedded Software Using Real-Time Operating Systems (3.00 Units)
EECS X497.31
Learn how to develop critical embedded software utilizing a real-time operating system (RTOS). Participants will learn how to use an RTOS to accomplish the design goals of a real-time system. Understand how to satisfy hard and soft real-time constraints. Gain expertise with memory management, task management, queue management, and timer management. Practical hands-on lab exercises are used to reinforce the concepts learned. FreeRTOS and a Texas Instruments development kit are used for the labs. The course includes a project. Students are required to design a solution to a real-world problem. The solution is to be implemented both with an RTOS and without an RTOS.
|
|
|
Online
|
|
Fundamentals of Embedded Linux (3.00 Units)
EECS X497.10
Further your understanding of Linux and its adoption as an embedded OS platform. Gain an overview of methods and techniques to design and create embedded systems based on the Linux kernel. The essentials of the Linux operating system are discussed from the embedded system point of view including selecting, configuring, cross-compiling, installing a target-specific kernel; licenses; drivers and subsystems; the GNU development toolchain; and tools used to build embedded Linux systems.
|
to be scheduled
|
|
|
|
Linux Driver Primer (3.00 Units)
EECS X497.12
Gain a competitive edge by learning how to write Linux Device Drivers. Participants will gain practical knowledge of what constitutes a device driver in Linux, basic Linux device driver building blocks, and how to build and grow a framework that can be used to develop a Linux device driver from scratch. Increase your knowledge of timing, interrupt handling, memory access, how to avoid pitfalls, and other critical issues fundamental to writing Linux device drivers. Hands-on lab exercises reinforce code-writing skills.
|
|
|
|
|
Applied Control Theory for Embedded Systems (3.00 Units)
EECS X497.4
Apply modern control theory to optimize embedded system designs using microcontrollers or DSP devices. The majority of embedded designs are closed loop control systems, as opposed to open loop control. Gain practical how-to knowledge in deriving and applying practical control theory algorithms. Z Transforms are introduced as a practical way of developing the needed difference equations for optimal designs. Learn to evaluate and select the best control algorithm for desired control applications such as proportional-integral-derivative (PID), fuzzy logic or Z Transform-derived difference equations.
|
|
Online
|
|
|
Designing and Integrating IoT Devices (3.00 Units)
I&C SCI X481
The Internet of Things (IoT) is being used to sense, connect, and automate our world. This course covers IoT devices and how they interact with the physical world and the IoT. It explores current design trends and requirements for embedded IoT devices, emphasizing specific IoT requirements for communication and security. Course participants study examples of smart IoT devices. They study a tear down of a device and explore the components used to sense, take actions, and connect to the IoT. Participants explore advanced IoT concepts and technologies with easy-to-use Arduino and Raspberry Pi boards. They gain hands-on experience with programming, communication protocols, and analog and digital interfaces. Course participants are introduced to sensors and actuators, and they learn to program the Arduino and Raspberry Pi to sense and control the environment using these components. Participants install and configure Linux on the Raspberry Pi and write Python programs. They explore how application programming interfaces (APIs) and software development kits (SDKs) are used to integrate IoT devices with applications. They explore IoT applications that use voice control of the Raspberry Pi.
|
to be scheduled
|
|
|
|
E-Learning Instructional Design |
Data and Decision Analysis for Engineering (3.00 Units)
EECS X420.1
Business and engineering management decisions are made with limited data set and partial information in uncertain environments. Therefore, statistical data and decision analysis is required to translate raw data into meaningful information that is relevant to business and/or engineering decision-making (e.g., quality control, product sampling, profit maximization, cost minimization, optimal decision strategy, etc.). The objectives of this course are first to give students a practical and an intuitive understanding of probability and statistics. And then to illustrate how to apply probabilistic methods and decision analysis to make rational and statistically optimal management decisions in the face of uncertainty and based on partial information. In order to achieve the objectives in this course we first develop a foundation of probability and statistics and then utilize Microsoft Excel to master some fundamentals of data visualization, decision analysis, statistical inference, estimation, prediction, confidence interval, and hypothesis testing. The focus will always be on intuition rather than mathematical notation. Topics will also be applied in management settings and practical examples will be discussed to build the bridge between theoretical models and the real world
|
|
Online
|
|
|