Anda di halaman 1dari 4

BIOSCIENCE

COURSES AND CERTIFICATE


Embedded
Systems
ENGINEERING AND TECHNOLOGY
KNOWLEDGE YOU PUT TO WORK
Gain Knowledge Tailored to Working Professionals in These Key Fields
Hardware designsystem architecture, board design, FPGA, protocols and components
Software developmentreal-time embedded programming, Linux-based systems, device programming
Firmware and network programming
Digital signal processing (DSP and DV) and image processing
Mobile device design and programming
Program Summary
Embedded Systems refer to a
growing range of function-specic
computers and communication
systems, including smartphones,
set-top boxes, networking equipment,
industrial controllers and military
electronics. UCSC Extension Silicon
Valley offers a comprehensive
certicate program in Embedded
Systems that will help new engineers
gain experience in the eld, and
benet practitioners who want to
keep up with the changing technology.
Our rich curriculum will spur the
growth of your career in the vast
marketplace of embedded systems.
Our courses are structured to multiple
levels of professional expertise. Many
courses offer students hands-on board
projects to implement the theories
learned in lectures.
ucsc-extension.edu/engineering
Join us for a
FREE Open House
to learn more.
Details inside
Curriculum
*Choose one of four core courses Units Course
System Design
* Embedded Systems
Hardware Architectures, Introduction .......1.5 ......21319
Mobile Device Hardware Overview........... 1.5 ......30176
IO Concepts and Protocols:
PCI Express, Ethernet, and Fibre Channel .3.0 ......22177
IO Design Fundamentals ...........................3.0 ......30170
Printed Circuit Board Design for
Signal Integrity and EMC Compliance ......1.5 ......21943
Jitter Essentials .........................................1.5 ......21321
Comprehensive Signal and Power Integrity
for High-Speed Digital Systems.................3.0 ......22874
Design Overview of High Efciency
Switch-Mode Power Supply ......................3.0 ......23590
Designing Xilinx CPLDs and FPGAs,
Introduction ..............................................3.0 ........6346
Designing with Xilinx FPGAs,
Comprehensive .........................................3.0 ......22179
Digital Design with FPGA .........................3.0 ......30207
SystemVerilog for ASIC & FPGA Design ....3.0 ......20095
Embedded Linux
* Embedded Linux Design and
Programming ............................................3.0 ........3364
Linux Device Drivers .................................3.0 ........2470
Linux Device Drivers, Advanced ................3.0 ........1016
Real-Time Systems
Real-Time Embedded Systems
Programming, Introduction .......................3.0 ........5381
Embedded Systems I/O Programming-
USB, R232, SPI, I2C and Analog ................3.0 ......30028
Embedded Software
* Embedded Firmware Essentials ................2.0 ........4357
Embedded Boot Loaders: BIOS and UEFI ..3.0 ......23092
TCP/IP Network Programming on Linux ...3.0 ......30235
USB Device Interface: Architecture,
Protocols and Programming .....................3.0 ........2179
Software Testing: Techniques, Tools
and Practices ...........................................3.0 ......20501
Developing Applications for
iPhone and iPad, Introduction ...................1.5 ......21938
Developing Applications for
Android Mobile Devices ............................2.0 ......21956
C Programming for Beginners...................3.0 ........5208
DSP and DV
* Digital Signal Processing, Fundamentals ...2.0 ........5758
DSP Applications in Audio, Imaging,
and Communications Systems ..................3.0 ........0516
Computer Vision and Image Processing .... 3.0 ........4926
Digital Video Interfaces and Protocols ...... 3.0 ......30093
Digital Video Compression and Codec ...... 3.0 ......19025
Certicate Requirements
To obtain the Certicate in Embedded Systems,
you must successfully complete a total of 14 units,
including one of the four core courses. Each core
course is focused on one of three major specialties:
Hardware Design, Embedded Software, and Digital
Signal Processing and Digital Video. Since the embed-
ded eld is diverse, only one core course is required in
the area of the students interest or specialization.
Prerequisites
Technical aptitude, a background in science and
technology, an engineering degree, programming
experience, or equivalent knowledge acquired through
training and experience in the eld. Prospective
students are advised to review prerequisites that
apply to individual courses.
Recommended Course Sequence
Beginners should take the core courses rst.
After that, courses may be taken in any order
provided the prerequisites are met.
Note: Some courses may be listed in more than one
program, however, only one course may be shared
between two Engineering and Technology certicate
programs unless otherwise noted.
Program Contact
Engineering and Technology Department,
(408) 861-3860 or e-mail
extensionprogram@ucsc.edu
C Programming for Beginners
This course is for individuals who want to learn C
programming language but have little or no program-
ming background. The course begins with an overview
of programming and tools. It introduces functions,
data types, input/output, strings, operators,
precedence, and expressions. It also demonstrates
the use of control statements, arrays, and pointers
for problem solving. You will receive assignments
to write non-trivial programs and learn to create
modular programs with efciency and readability.
Course 5208
Comprehensive Signal and Power Integrity
for High-Speed Digital Systems
This course covers signal and power integrity analysis
of high-speed digital systems, and the modeling and
design techniques used in high-speed links (in board,
package, and connector). The instructor introduces IO
modeling including IBIS, behavioral, functional, and
ESD. Also explained are signaling techniques such
as differential, NRZ, pulse, and multi-level, as well
as simulation methods. You will learn the fundamental
concepts in equalization design. At the system level,
topics include clocking schemes such as PLL, DLL and
CDR; timing jitter analysis; and power analysis topics
such as IR drop, AC noise, simultaneous switching
noise and decoupling capacitor.
Course 22874
Computer Vision and Image Processing
Computer vision is widely used in the industrial,
medical, document and security elds. This course
begins with vision and image fundamentals, including
image formation and display, digital camera and
image capture, the human visual system and visual
perception. You will learn the basics of digital image
processing, including spatial and frequency domain
ltering techniques and compression. The course
covers practical image analysis and inference methods,
including feature detection, image segmentation,
matching and stitching. There will also be a discussion
of emerging technologies, applications, and trends.
Course 4926
Design Overview of High Efciency
Switch-Mode Power Supply
In this course, youll gain a hands-on understanding of
high efciency analog and digital switch-mode power
supplies that can meet system needs and regulatory
requirements. The course covers the concepts, opera-
tions, and design considerations related to efciency,
Embedded System Certicate
Copyright 2013 The Regents of the University of California. All rights reserved.
Enrollment Information
Visit ucsc-extension.edu/engineering for
the most up-to-date information about our
courses and programs, including textbooks,
instructors, schedules and locations.
Enroll online at ucsc-extension.edu.
EMI, thermal and safety. The lectures will be supple-
mented with hardware demonstrations and waveform
observations of power supply behaviors. The course
will equip you with the modern integrated solutions
needed to achieve high efciency and high power
density, and includes the topics of digitally controlled
power supplies.
Course 23590
Designing with Xilinx FPGAs, Comprehensive
This course covers how to use FPGA resources,
manage constraints and debug methods for real
world designs. Embedded design combining soft
processors with fabric is discussed at length, followed
by high performance, low-power design and multiple
clock domain techniques. Identifying bottlenecks
and hot-spots is discussed along with the trade-offs
of fabric versus code-based solutions. Advanced
debugging techniques are also covered. In-class
demonstrations occur weekly, and you will must
complete a hands-on design project using the
Xilinx Spartan 3A or 3AN Starter Kit.
Course 22179
Designing Xilinx CPLDs and FPGAs,
Introduction
This course is a practical introduction to programmable
logic design with Xilinx FPGAs and CPLDs. Using sev-
eral examples and design techniques, you will be taken
through a complete PLD design. Upon completion of
the course, you will be able to complete a design with
Xilinx CPLDs and FPGAs, and understand the design
and timing reports. The course will include two student
projects. Topics include a logic design process review,
design software, Xilinx CPLDs and FPGA architecture,
design techniques and optimization, JTAG, power
optimization and large design techniques.
Course 6346
Developing Applications
for Android Mobile Devices
Android is an open source platform for smartphones,
tablets and many other Internet-enabled mobile
devices. This course begins with an overview of the
Android development platform. You will learn from
a simple application that demonstrates how to build
applications for the new platform. The course explains
the platform architecture and basic mobile building
blocks. You will complete programming assignments
to learn how to program the platform with Java code,
debug it, implement the UI, and use optional APIs
and Google libraries to enrich the application.
Course 21956
Developing Applications for iPhone and
iPad, Introduction
This course provides an overview of using the iOS
SDK to develop iPhone and iPad applications.
It begins with discussion of Xcode and Objective-C.
You will learn various iOS programming frameworks,
user interface development, memory management
and program design. The App Store submission
process and guidelines are covered. Discussions
also delve into special considerations for the iPad.
Upon completing the course, you will have a solid
understanding of the iOS SDK and know how to
develop applications.
Course 21938
Digital Design with FPGA
This course provides the knowledge and hands-on
experience needed to design digital logic blocks in
FPGA. The course introduces how to build designs in
FPGA and covers specic designs of various digital
blocks. Starting from combinational logic, look-up
tables, carry chains, and multiplexers, you will
learn to design arithmetic and comparator functions
using FPGA and test them. The instructor then
explains various sequential ops, fast counters and
shift register look-up. The course also explores the
embedded RAM, ROM and nite state machine
designs using Xilinx architecture.
Course 30207
Digital Signal Processing, Fundamentals
This course introduces students to the basic concepts,
fundamental theory and implementation of DSP tech-
nology. Topics include digital signals, digital systems,
Fourier transform, Z-transform, sampling, digitaliza-
tion, transform analysis of LTI systems, structures for
discrete-time systems, digital lter design, discrete
Fourier transform, Hilbert transform, and fast Fourier
transform algorithms. MATLAB will be introduced and
used to demonstrate concepts and principles of DSP.
The course features expert guidance and interactive
instructions to help you understand the fundamentals
of DSP technologies and design considerations.
MATLAB and Simulink Suite software are required.
Course 5758
Digital Video Interface and Protocols
This course covers the major DV protocols in use
today, and the architecture and design consideration
for each one. The course begins with an overview of
the basic video concepts and video system architecture
in real applications. Several common interface
standards will be covered in detail: DVI (Digital Visual
Interface), HDMI (High-Denition Multimedia Interface),
DisplayPort and USB video class. The discussions
address architectures, comparisons, operations, and
design considerations. You will learn the important
features of each interface. The course concludes with
a discussion of emerging trends in digital video.
Course 30093
DSP Applications in Audio, Imaging,
and Communications Systems
This course introduces the basics of audio-speech,
image processing and digital communication systems
and encompasses theory, algorithms and practical
techniques used in these three popular DSP applica-
tions. You will learn C/C++, Assembly, or MATLAB
using standard DSP libraries.
Course 0516
Embedded Boot Loaders: BIOS and UEFI
In this course, youll learn about Basic Input/Output
System (BIOS) and Unied Extensible Firmware
Interface (UEFI). The course starts with BIOS history
and architecture. You will learn BIOS device
enumeration and conguration, BIOS interfaces
including software interrupts, option ROM interface,
and boot mechanism. Following an overview of UEFI
history, architecture and services, youll learn the
UEFI driver architecture and how to write UEFI drivers
and applications. The course concludes with UEFI
debugging methodologies, briey addresses U-BOOT
and includes some hands-on programming.
Course 23092
Embedded Firmware Essentials
This course provides practical knowledge and training
in rmware development. It begins with the RISC
instruction set (ARM and MIPS), pipelines, system
memory hierarchy, and SSD interface. You will learn
to congure the clock and program the interrupts
and IOs. The course covers the rmware coding
environment and practices. It also covers common
rmware topics and techniques such as button
debounce and LEDs, circular buffers, and debugging
with JTAG and GDB. You will learn to program I2C
bus and power-on sequence. A board project
provides hands-on experience.
Course 4357
Embedded Linux Design and Programming
This course covers the fundamentals of building and
installing an embedded Linux operating system version
2.6 on an ARM 9 processor platform, and provides
hands-on experience for creating cross-platform
Embedded Systems and VLSI Open House
Join us for a FREE Open House to learn about two of our most popular certicate programs. The VLSI Engineering Certicate Program is for
professionals working in the integrated circuit, ASIC, semiconductor, EDA, device and system industries in Silicon Valley. The Embedded Systems
Certicate Program is for professionals working in the hardware and system design elds, with courses in system design, embedded programming,
real-time systems, and DSP/DV. Ask presenters about new developments in both areas and how these courses can help you break into a new eld
or advance your career.
Course 20544 and 22403
For information and to register, visit ucsc-extension.edu/events.
F
R
E
E

E
V
E
N
T
Courses continue on reverse
environments using the GNU tools. Basic concepts for
designing, testing, and customizing embedded Linux
will be covered, including how the Linux scheduler is
implemented, and how to write Linux kernel modules
and remotely debug the embedded Linux applications.
Course 3364
Embedded Systems Hardware Architectures,
Introduction
This course covers the hardware components and
interfaces in a typical embedded system. The course
begins with an inside look at some typical embedded
systems and the functional blocks within those systems.
The course addresses design considerations and
several approaches to system building. Also covered
are the various types of memory commonly used in
embedded systems, basic concepts in microprocessors,
microcontrollers and DSP, and an introduction to the
typical buses used at the system level.
Course 21319
Embedded Systems I/O Programming:
USB, RS232, SPI, I2C and Analog
This course examines common external IO architec-
tures for embedded systems and provides hands-on
instruction in designing and developing IO sub-
systems under real-time constraints. A variety of IO
architectures are addressed, including USB, RS232,
SPI, I2C, and Analog IO. Discussions cover physical
interfaces, input/output protocols, and the design and
implementation of the IO subsystems that interact
with real-time applications. Issues of bandwidth,
latency and real-time are also discussed. Youll gain
practical experience designing and coding embedded
systems on an ARM microcontroller based SDK.
Course 30028
IO Concepts and Protocols: PCI Express,
Ethernet, and Fibre Channel
This course focuses on IO technologies and walks
you through the complexities of IO subsystems in
modern computers, and the networking and storage
subsystems to which they are attached. After an
introduction to the basic concepts of IO, the course
covers PCI Express, Ethernet and Fibre Channel.
Discussion will include operation and protocols and
exploration of how these technologies work. You will
follow an applications IO request all the way from
the system call to when the data actually makes
it out of the wire.
Course 22177
IO Design Fundamentals
This course is an introduction to IO interfacing at chip
and board levels. It covers the advantages and disad-
vantages of TTL, CMOS, low-voltage CMOS, LVDS and
optical interfaces. The course emphasizes fundamental
concepts such as transmission line analysis, slew rate,
termination, etc. You will also learn basic IO logic, timing
analysis and package models. The course also covers
bit error rate, bi-directional IO and decision feedback
lters. Because most solutions are silicon-based, ESD
concepts and techniques will also be discussed.
Course 30170
Jitter Essentials
Learn the denitions of various types of jitter (includ-
ing phase noise), understand which type of jitter is
important to your application and why, plus learn how
to propagate jitter through a system, create jitter bud-
gets, measure and minimize jitter, and more. Emphasis
will be placed on developing a working knowledge of
jitter, such as establishing a common language, under-
standing jitter beyond the denitions, gaining insight
by making simplifying assumptions, and visualizing
relationships between different types of jitter.
Course 21321
Linux Device Drivers
This course covers the design and implementation
of device drivers for the Linux operating system, and
the interfaces to the Linux kernel for writing them.
Topics include compiling the kernel; building and
running; character and block device driver concepts;
PCI, I/O, and timer routines; hardware management
and interrupt han dling; networking drivers; PROC
le system and IOCTL interface; and kernel
mechanisms and advanced topics.
Course 2470
Linux Device Drivers, Advanced
This course will enhance your understanding of the
art of writing Linux device drivers. You will explore
the framework that can be used to develop a
commercial grade driver. The course includes detailed
discussion of the USB and PCI family (PCI-E, PCIe)
subsystems, as well as Linux kernel services and
facilities. The course includes a board project, and code
review of real-world drivers. Additional discussions
cover live debugging with Kprobes, proling with
Oprole, and a survey of industry trends including
virtualized drivers, iSCSI and serial IO buses.
Course 1016
Mobile Device Hardware Overview
This course gives an overview of typical mobile device
hardware, including architecture, components and
system management considerations. The course begins
with an inside look at a typical mobile device such as
an iPhone or iPad. It covers the functions of applica-
tion processor, memory and system interconnects.
You will learn the mobile-specic IO subsystem and
components which create the unique and attrac-
tive features of mobile devices, including the various
sensors (GPS, accelerometer, Gyroscope), the touch
display, and the camera. Also covered are power
management and other mobile system considerations.
Course 30176
Printed Circuit Board Design for
Signal Integrity and EMC Compliance
This course presents simplied design techniques
for the design and layout of printed circuit boards
to achieve both signal integrity and electromag-
netic compatibility (EMC) for both experienced and
entry-level engineers. Design and layout techniques
are introduced in a simple, step-by-step presentation
that allows plenty of opportunities to address specic
questions. Emphasis is placed on real-life examples
that demonstrate good layout practices that can
be incorporated immediately for high-performance
designs and products.
Course 21943
Real-time Embedded Systems
Programming, Introduction
This introductory course reviews embedded system
hardware, interfaces, and the requirements of real-time
operations. It discusses timing analysis and real-time
programming techniques and architectures, and covers
the use of RTOS to effectively structure large programs
and design tasks and device drivers to meet real-time
requirements. You will learn common topics in real-
time systems, such as interrupt handling, polling,
using timers, and detecting and preventing deadlocks.
There will also be discussions of multi-threading,
cooperative vs. preemptive multi-tasking and inter-
process communications.
Course 5381
SystemVerilog for ASIC and FPGA Design
This course prepares hardware engineers, ASIC and
FPGA designers, and design-support staff to use the
high-level syntax of SystemVerilog to design, debug, and
synthesize digital logic for ASICs, FPGAs, and IP cores.
You will learn SystemVerilogs basic building blocks and
language constructs, including synthesizable data types
and operators, structures and unions, 2-D arrays and
loops, and the bus interface unit. In lab sessions, they
will write code and synthesize it into digital logic and
bus fabric, using both ASIC and FPGA tools.
Course 20095
TCP/IP Network Programming on Linux
This course covers the fundamentals of designing and
programming applications or devices on the TCP/IP
based distributed computing systems under Linux. C/
Linux based socket network programming will be
used to implement applications based on the TCP/
IP client/server architecture. You will learn to design
network applications and share data across hetero-
geneous systems on the Internet. Additional topics
include effective programming for real-world network
conditions, network performance, diagnostics and
debugging tools. You will learn to do projects for net-
work applications such as the HTTP server, WiFi-based
sensor clients and Web-based controller systems.
Course 30235
USB Device InterfaceArchitecture,
Protocols and Programming
This course covers USB architecture, protocols and
features. Communication, control, and application
layer protocols for generic USB devices are covered.
You will learn how to pick the optimal USB protocols
to meet performance and bandwidth requirements.
The course introduces the basic USB programming
model, USB libraries and the higher level USB software
required to implement specic device functionality.
The course emphasizes effective design and test
techniques and the use of USB debugging tools.
The course focuses on the device side USB interface,
and includes a class project based on a PIC USB kit.
Course 2179
Not printed or mailed at state expense. 611795-1303-1634 (08/09/13)

Anda mungkin juga menyukai