Embedded Systems Design: Functionality and Processes
Key Takeaways
-
Learn about the types of embedded systems.
-
Gain a greater understanding of embedded systems design.
-
Gain a better understanding of the processes and functionality of embedded systems.
Embedded systems technology is common in computers.
Whether it is precious gems or SerDes technology, the term embedded is synonymous with implanting an object in a surrounding mass. This also holds true for systems we call embedded systems.
What Are Embedded Systems?
A system whose design incorporates the embedding of both software and hardware collectively for a particular function within a larger area is called embedded systems design. Within this area of design, the microcontroller, which derives from the Harvard computer architecture, fills a critical role in an embedded system.
The Harvard architecture utilizes distinct signal and storage pathways for its data and instructions. The term Harvard architecture originates from the Harvard Mark I computer (relay-based), which stores its data in electro-mechanical counters and instructions on 24 bit wide punched tape.
In summary, an embedded system is a component of engineering that involves computations that are subject to physical constraints. These physical constraints arise via two types of interactions involving computational procedures with the physical world:
-
The reaction to our physical environment
-
The execution on a physical platform
We refer to these physical restrictions as:
-
Reaction constraints
-
Execution constraints
Embedded Systems Functionality
Common reaction constraints identify jitter, deadlines, and throughput. The origin of these specific constraints is from the behavioral requirements of a system. However, typical execution constraints place bounds on the available processor power, speed, and failure rates of hardware. The origin of these specific constrictions is from the implementation requirements of a system.
We study execution constraints in computer engineering and reaction constraints in control theory. Obtaining control of the interaction of computation with both types of constrictions affords the ability to meet set requirements, which is the key to embedded systems design.
At its core, system design is a process of deriving (from requirements) a model from which a system generates more or less automatically. We define a model as an abstract depiction of a particular system. For example, take software design, which is the process of deriving a program for compilation. Another example is hardware design, which is the process of deriving a hardware description for synthesizing a specific circuit.
The Processes of Embedded Systems
In summary, an embedded system controls various other electronic devices, which makes it a controller. As I am sure you are aware, it consists of embedded software, embedded hardware, and an environment. Overall, there are two categories of embedded systems: microcontrollers and microprocessors. We discussed the basics of the origin of the microcontroller earlier. However, the basis for the microprocessor derives from the von Neumann architecture.
The von Neumann architecture’s primary elements are as follows:
-
Storing instructions and data as binary digits.
-
Storing instructions and data in primary storage.
-
Retrieves instructions from memory serially, i.e., in order and one at a time.
The Steps in the Embedded System Design Process
The various steps in the embedded system design process are as follows:
-
Abstraction: During this step, we abstract issues related to the system.
-
Software + hardware architecture: In this stage, we obtain a complete understanding of the software and hardware before initializing the design process.
-
Extra functional properties: During this stage, we assess the main design to gain a total understanding of the additional functions we need to implement.
-
System-related family of design: When you design a system, it is necessary to refer to any previous system-related designs within the same family of designs.
-
Modular design: One should make separate module designs so that you can utilize them later when needed.
-
Mapping: Here is where we conduct software mapping; for example, we map program flow and data flow into one.
-
User interface design: As its name implies, this correlates to the requirements of the user. Therefore, we are considering user requirements, the function of the system, and environmental analysis.
-
Refinement: At this stage, we will refine each module and every component to ensure that the software team fully understands the requirements to meet.
The Computational Tasks of Embedded Systems
As you may know, an embedded system is a crucial component that performs computational tasks. Typically, this is a microcontroller; however, it can just as likely be a digital signal processor, an FPGA, or even a microprocessor.
Keeping that in mind, every designer of embedded systems also needs to comprehensively familiarize themselves with firmware development. Firmware development involves the following aspects:
-
Writing code: You should have assembly language knowledge. Although you do not write code in assembly, it is necessary to comprehend it.
-
Configuring peripherals: Since the majority of embedded systems utilize peripherals, you must understand how they work.
-
Testing code: Here is where you systematically test functionality while simultaneously subjecting the device to environmental factors typical of its operating environment.
-
Refining code: Here, we refine the code with possible adjustments and corrections to ensure the code is at a functional state.
-
Debugging code: Here is where we look for additional errors within a functional code.
-
Verifying code: At this stage, we confirm that the code performs correctly by providing code with continuous random inputs, thus ensuring the device functions properly and without malfunctioning.
The Types of Embedded Systems
-
Mobile devices
-
Networked appliances
-
Stand-alone embedded system
-
Real-time embedded system
Elements or Components of Embedded Systems
-
Microcontroller
-
Digital signal processor
-
Microprocessor
-
Processor
The Challenges of Embedded Systems Design
The following are the typical challenges a designer faces when designing embedded systems:
-
Security
-
Environment adaptability
-
Area occupied
-
Power consumption
-
Updating in hardware and software
-
Packaging and integration
There are other challenges a designer encounters, and these primarily involve testing, such as:
-
Validation maintainability
-
Embedded hardware testing
-
Verification stage
Embedded systems design necessitates persistence in recognizing, determining, and meeting requirements. For example, there may be a device in which the need is longer battery life. In this case, the embedded system aims to meet this specific functional requirement. However, it is the responsibility of the embedded systems designer to recognize the vital characteristics and capabilities and then appropriately design the device.
The CPU chip on the computer motherboard uses an embedded system to provide PC functionality.
Thankfully, with our PCB Design and Analysis overview page, you’ll be sure to have your company armed with the necessary knowledge to accurately design embedded systems for all of its applicable designs. Designing circuits that use embedded systems design requires using a PCB design and analysis software, like OrCAD by Cadence, to be sure your designs are done right and done well the first time.
If you’re looking to learn more about how Cadence has the solution for you, talk to our team of experts and us.