0% found this document useful (0 votes)
23 views24 pages

BSSE320

Uploaded by

Edward Chirwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views24 pages

BSSE320

Uploaded by

Edward Chirwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

BSSE3204

Real Time & Embedded Systems

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:

 Dedicated functionality: embedded systems are designed for specific


functions or applications.

 Specialized hardware and software: embedded systems often use


specialized hardware components such as microcontrollers tailored to the
specific requirements of the application. Similarly, they employ specialized
software including real time operating systems or firmware optimized for
embedded environment.
Features cont’
 Small size and compact design: embedded systems are typically compact and
lightweight, making them suitable for integration into various devices and
systems without taking up much space

 Real-time operation: Many embedded systems require real-time operation,


meaning they must respond to inputs within a specified time frame. This is
crucial in applications such as automotive systems, industrial automation, and
medical devices.

 Security features: With the increasing connectivity of embedded systems to


networks and the internet (Internet of Things), security features are
becoming more important. Embedded systems may include encryption,
authentication mechanisms, secure boot, and secure update mechanisms to
protect against unauthorized access and tampering.
Features cont’
 Networking capabilities: Many embedded systems are now designed to
communicate with other devices or systems over networks, either locally or
over the internet. This could include support for Ethernet, Wi-Fi, Bluetooth or
other communication protocols.

 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.

 Remote management and monitoring: For embedded systems deployed in


remote locations or as part of a larger network, remote management and
monitoring capabilities are essential. This could include features for remote
configuration, firmware updates, and monitoring of system health and
performance.
Skills of Embedded System Designer

Embedded system designers require a diverse set of skills to effectively design


and develop embedded systems tailored to specific applications. Here are some
key skills:

 Embedded programming: Proficiency in low-level programming languages


such as C, C++, or assembly language is essential for writing efficient code
that directly interacts with hardware components and peripherals.

 Understanding of microcontrollers/microprocessors: Knowledge of various


microcontroller architectures (e.g., ARM Cortex-M, AVR, PIC) and
microprocessor families (e.g., ARM Cortex-A, Intel x86) is crucial for selecting
the appropriate hardware platform based on performance, power
requirements, and I/O capabilities.
Skills cont’
 Hardware design: Familiarity with digital and analog circuit design principles,
including schematic capture, PCB layout, signal integrity, and power
management, is necessary for integrating components, sensors, and
peripherals into the embedded system design.

 Real-time operating systems (RTOS): Understanding of RTOS concepts such as


task scheduling, inter-task communication, synchronization mechanisms, and
memory management is important for developing real-time embedded
applications requiring deterministic behaviour.

 Embedded system debugging and troubleshooting: Strong problem-solving


skills and familiarity with debugging techniques, such as code
instrumentation, hardware debugging tools (e.g., JTAG debuggers), and
software tracing, are essential for identifying and resolving issues in
embedded systems.
Skills cont’
 Documentation and version control: Proficiency in documenting system
architecture, design specifications, hardware schematics, and software
source code, as well as using version control systems (e.g., Git), is crucial for
maintaining project traceability, collaboration, and code management.

 Communication skills: Effective communication skills are necessary for


collaborating with cross-functional teams, understanding customer
requirements, presenting design proposals, and providing technical support
throughout the embedded system development lifecycle.

 Continuous learning and adaptation: Embedded systems technology is


constantly evolving, so a willingness to learn new technologies, tools, and
methodologies, and adapt to emerging trends is essential for staying current
in the field.
COMPLEX SYSTEMS AND MICROPROCESSOR

Complex systems and microprocessors are interconnected concepts in the realm


of computing, where microprocessors serve as the fundamental building blocks of
complex systems.
Microprocessors:

 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.

 How do we design for upgradability?


The hardware platform may be used over several product generations, or for
several different versions of a product in the same generation, with few or no
changes. However, we want to be able to add features by changing software.
Challenges cont’
 How much hardware do we need?
The choice of hardware is important. Too little hardware and the system fails to
meet its deadlines, too much hardware and it becomes too expensive.

 How do we meet deadlines?


To meet the deadline, you can speed up the hardware so that the program runs
faster

You might also like