BSSE320
BSSE320
Mr. J.Mdaopa
Scope of this course
By the end of this course, assuming it will end, you
should be able to :
Discuss embedded systems, their hardware and software
Explain devices and buses used for embedded networking
Explain programming concepts and embedded programming in C and C++
Explain real time operating systems and inter-task communication.
Introduction to Embedded System
Embedded systems are specialized computing systems designed to perform
specific functions within larger systems or devices. Unlike general-purpose
computers, which are designed to run a wide range of applications,
embedded systems are tailored to execute predefined tasks efficiently and
reliably.
Aspects Of Embedded Systems:
Purpose-Built: Embedded systems are purpose-built for particular
applications or tasks. They are often found in everyday devices such as
smartphones, digital cameras, household appliances, automobiles, medical
devices, industrial machinery, and more. Each embedded system is optimized
to meet the specific requirements of its intended use case.
Hardware and Software Integration: Embedded systems consist of both
hardware and software components tightly integrated to perform their
designated functions. The hardware typically includes a microcontroller or
microprocessor, memory, input/output (I/O) interfaces, and other peripheral
devices. The software encompasses the embedded firmware or operating
system (OS) responsible for controlling the hardware and executing the
desired tasks.
Aspects cont’
Real-Time Operation: Many embedded systems require real-time operation,
where they must respond to input stimuli within strict timing constraints.
Real-time embedded systems are commonly used in applications such as
automotive control systems, industrial automation, medical devices, and
aerospace systems, where timely and accurate responses are critical for
proper functionality and safety.
Resource Constraints: Embedded systems often operate under resource
constraints, including limited processing power, memory, storage, and energy.
Designing efficient algorithms and optimizing code size and execution speed
are essential to meet these constraints while maintaining satisfactory
performance and reliability.
Aspects cont’
Low Power Consumption: Power efficiency is crucial for many embedded
systems, especially those powered by batteries or operating in environments
where power consumption must be minimized. Techniques such as power
management, low-power hardware design, and energy-efficient software
algorithms are employed to prolong battery life and reduce overall power
consumption.
Customization and Scalability: Embedded systems are highly customizable
and scalable to accommodate diverse application requirements. Developers
can tailor the hardware and software components to meet specific
performance, cost, and size constraints. Additionally, embedded systems can
often be scaled up or down in terms of processing power, memory, and I/O
capabilities to address varying needs.
Aspects cont’
Security Considerations: Security is increasingly important in embedded
systems, particularly as they become more interconnected and vulnerable to
cyber threats. Implementing robust security mechanisms, including
encryption, authentication, secure boot, and secure communication
protocols, is essential to protect embedded systems from unauthorized
access, data breaches, and malicious attacks.
Lifecycle Management: Embedded systems often have long lifecycles and
may operate for years or even decades without significant hardware or
software changes. Proper lifecycle management, including maintenance,
updates, and end-of-life considerations, is essential to ensure the continued
reliability, security, and functionality of embedded systems throughout their
operational lifespan.
Features of Embedded Systems
Embedded systems are versatile and can incorporate a wide range of features
depending on their intended application. Here are some further features
commonly found in embedded systems:
Sensor interfaces: Embedded systems often interact with the physical world
through sensors. They may include interfaces for various types of sensors such
as temperature sensors, motion sensors, pressure sensors, and more,
depending on the specific application requirements.
Features cont’
User interfaces: Depending on the application, embedded systems may have
various user interface components such as LCD displays, touchscreens,
keypads, buttons, LEDs, and audio interfaces to provide feedback to users or
allow for user interaction.
Definition:
A microprocessor is a central processing unit (CPU) fabricated on a single
integrated circuit (IC) or chip. It serves as the brain of a computer or electronic
device, executing instructions and performing arithmetic and logic operations to
process data
Architecture:
Microprocessors consist of various components, including an arithmetic logic unit
(ALU) for mathematical operations, registers for temporary data storage, a
control unit for instruction interpretation and execution, and an instruction set
architecture (ISA) defining the set of instructions the microprocessor can
execute.
Functionality:
Microprocessors fetch instructions from memory, decode them, and execute
them sequentially. They interact with memory and peripheral devices through
input/output (I/O) interfaces, enabling communication with external
components. Microprocessors can execute a wide range of tasks, from simple
calculations to complex computations, depending on their architecture and
capabilities.
Types:
Microprocessors come in different types and architectures, including
general-purpose microprocessors used in personal computers, servers, and
embedded systems.
Specialized microprocessors optimized for specific applications such as
graphics processing units (GPUs), digital signal processors (DSPs), and system-
on-chip (SoC) designs for mobile devices and embedded systems.
Microprocessors
Microprocessors come in many different levels of complexity; they are
usually classified by their word size.
An 8-bit microcontroller - designed for low-cost applications and
includes on-board memory and I/O devices.
16-bit microcontroller is often used for more complicated
applications that may require either longer word lengths or off-
chip I/O and memory.
32-bit microprocessor offers very high performance for
computation-intensive applications.
Why Use Microprocessors?
Cost-effectiveness
Designing a digital system using other means require significant time and
resources, including specialized knowledge in hardware design. On the other
hand, microprocessors are mass-produced, leading to lower per-unit costs.
Scalability
Microprocessors offer scalability in terms of performance and features. As
technology advances, newer and more powerful microprocessors become
available, allowing for upgrades to existing systems without changing the
underlying architecture
Why Use Microprocessors?
Integration
Microprocessors often come with built-in peripherals and support for various
communication protocols, making it easier to integrate them into complex
systems.
Ease of development
Microprocessors have well-established development tools, such as compilers,
debuggers, and simulation environments, which simplify the design process.
Challenges in Embedded Computing System
Design
How do we minimize power consumption?
One way to make a digital system consume less power is to make it run more
slowly, but naively slowing down the system can obviously lead to missed
deadlines. Careful design is required to slow down the noncritical parts of the
machine for power consumption while still meeting necessary performance goals.