Embedded Systems
Embedded Systems can save your life and protect you from diseases
Embedded systems are everywhere around us, for example in homes, factories, cars or even in your bodies, embedded devices can be transplanted in your body to trace and locate Alzheimer, organize your heart rate, or to control the level of glucose in your blood.
What exactly an embedded system is?
Embedded system is a special purpose computer system that designed to perform a dedicated or one function also embedded systems have limited hardware, however you can see some embedded system devices like PDAs that perform more than one function.
Extra Examples of Embedded Systems
There are a lot of examples of embedded systems that used in many divisions for example
Automotive: Ignition system, engine control and the brake system (ABS, EBD….), auto parking system
Consumer Electronics: like TVs, Refrigerators, Toasters, Ovens, Toys, GPS
Industrial: in this domain, the concentration will be on Robotics, control systems, and Prosthetic devices
Networking: Routers, Hubs, Gateways, Modems
Office Automation: Fax Machines, Printers, Monitors, Scanners
Embedded Systems Architecture
The architecture of an embedded system is very important and it’s an abstraction of the embedded device that means you will not go deeper inside the detailed implementation like the source code or the hardware design. At this level, the hardware and software are represented as composition of interacting elements. The representation of these elements has been abstracted out.
The level of the architecture is represented physically in the form of structures. A structure is like a snapshot of the software and the hardware design at run time. The structure types can be modules which include the following:
● Layers: in that structure, modules are organized in layers or hierarchical which means that the higher layers require modules of lower layers to use
● Kernel: in this type of structure the modules here use services of your operating system kernel
● Virtual machine: the modules use the services of a virtual machine
The second type of structures is the component and connectors such as:
● Client/Server: in this type components can be like servers or like clients and the connectors will be like protocols, messages, packets and so on…
● Process: is a software structure of your system, components are the processes and the connectors here are pipes, shared data that are the interprocess communication mechanisms, this very useful for analyzing your performance
● Memory: this is the runtime representation of memory and the other data components with your memory allocation and deallocation (connector)
● Allocation: the usage of this structure is to represent of your system, for example
Static, size, dynamic, and so on …
The importance of the architecture of the embedded systems
The architecture can help you to understand your design properly and help you also to solve the following challenges
● To define and capture the design of an embedded system
● Cost limitations
● Define and determine the system integrity, like reliability and safety
● To work the functionality of the available elements,
For example (procession power, memory, the life for the battery)
● Marketing and scalability
The Embedded Systems Model
As you can see in the figure that any embedded system must have at least one layer “hardware layer” and the other two layers are optional “System Software Layer, Application Software Layer”. The hardware layer contains all of the major physical components that on an embedded board, whereas the system and the application software layers contain all of the software located on and processed by your embedded system board. This model is basically a modular representation of embedded system architecture, regardless of the device you use you can use this model to understand the architecture of the device by grouping and visualizing the components within these devices as layers
Programming languages and Standards
Some of the important components within an embedded system are derived from specific methods, this is the standard. Standards dictate how the components should be designed and what other components can be added to the system also standards can help you to find the errors or any problem like the OSI model that mainly used in networking, here is the OSI model which is consisting of seven layers
There is five generation of programming languages
● First generation: Machine code, Binary (0, 1) and the machine language is a hardware dependent
● Second generation: Assembly language, also the assembly language is hardware dependent
● Third generation: HOL or high-order language, high-level procedural languages like the English language such as C, Pascal, etc.
● Fourth generation: VHLL or very high-level languages, like object-oriented languages (C++, C#, Java…), database query languages (SQL), etc
● Fifth generation: natural languages, these languages are like conversational languages almost used in AI application (Artificial Intelligence)
In embedded you should know the difference between the host and the target as shown in the following figure
Target: this is your embedded hardware/device that will run the code
Host: is almost is the environment that you develop compile your code under it
The compilation process: after writing your program, the compiler will compile your code into the target code or machine code, and then you will run this code on the target hardware
Open System Interconnection (OSI) Model
To understand the dependencies between your internal networking components of your embedded systems architecture, the distance between connected devices, also the transmission between the devices, so you should have good understanding of the OSI model to make it easier in troubleshooting
Layer-1 Physical: The physical layer represents all of the networking from the hardware perspective including the hardware components, wires, LAN protocols, the physical layer manages the process via the hardware and the signals (0s / 1s) that coming from the devices over the communication media (wire, wireless)
Layer-2 – Data Link: the data link layer is the closest software layer to the hardware; it includes any software needed to control the hardware. Bridging this layer to allow networks interconnected with different protocols in the physical layer like Ethernet LAN protocol, the data link layer is responsible for receiving the data “bits” from the lower layer “physical layer”
Layer3-Network: this layer also implemented in the system software layer like the data link layer
This layer is hardware independent layer and just dependent on the link layer, at this layer the data divided into smaller piece of data called segments. Devices within a segment communicate through the physical address (MAC address) but in the network layer they communicate using network address (IP address)
Layer4-Transport: this layer sits on top of and is specific to the network layer protocols. The protocols in this layer are responsible for establishing communication between connected devices which is referred as point to point communication. Some of the protocols in the transport layer working to make sure of the reliability and integrity of the received data like TCP protocol unlike the UDP protocol
Layer-5 Session: when you open or connect two different network applications on two different devices this called session. As you have seen before that the transport layer is responsible for the management of the point to point connection between devices, the management of a session between these devices is handled by the layer 5 which is the session layer
Layer-6 Presentation: this layer protocols are working with formatting of the data that means they make sure if the format of the received data is correct, also provide encryption/decryption and compression/decompression
Layer-7 Application: at the application layer you will find the protocols that responsible for end user usages like browsing , sending emails, receiving emails, for example FTP, POP3, HTTP and so on…
As we said before that any computer system consists of hardware and software, so it’s time now to understand the hardware and the software that mainly used in embedded systems.
Embedded Hardware
You will find a lot of engineering drawing for the hardware like the following
● Block diagram, this diagram typically used to draw the major components of a board such as processors, buses, I/O memory or one component, the block diagram is a very basic overview of the hardware design
● Schematics, schematics are electronic circuit diagrams that have more details about the design of the hardware, schematics shows you everything from processors to resistors. In these diagrams you will find Information on the flow of the data in an electronic system.
● Wiring diagrams, these diagrams can be used to represent the bus connection between the major components on your board or within a chip. Also in wiring diagrams vertical / horizontal lines are used to show the lines of a bus.
● Timing diagrams, these diagrams are used to show the timing graphs of input and output signals of an electronic circuit
● Logic diagrams, logic print usually used to display a wide variety of circuit info by the logical symbols like AND, OR, NOT and so on
If you want to read and understand any electronic schematic you should do the following steps
1. 1) Learn the basic symbols of the diagram that you will use
2. 2) Read a lot of diagrams until it becomes very boring to read them
3. 3) Start writing your own diagrams again until it becomes very boring to write them
Examples of electronic components
The resistor
Resistor is an electronic component that implements the resistance to reduce the flow of current on an electric circuit
The Capacitor
Capacitor is made up of conductors in the form of two parallel metal plates separated by an insulator
In short, capacitor store energy in electric fields like the resistor but unlike the resistor that impede the follow of energy
The Diode
A diode is an electronic component that makes the current flow in one direction, and it has many applications like the LED “lighting emitting diode”
The Transistor
Is a semiconductor device that used as a switch, it has three terminals, there are two types of transistors
Bipolar junction transistor BJT and field effect transistor FET
Embedded Software
An operating system is a part of an embedded system device but not required and it is an optional layer as you saw before so not all of the embedded systems have the operating system. Operating systems can be run on any processor, all operating systems have something called a Kernel, the kernel is the heart of the operating system that contains the main functionality of the operating system, or the features like the following tasks
● Process Management: you will find this function in any operating system, this function handle the allocation of resources and enable to share and exchange the information in
your operating system , for example “interrupt”, interrupt is that when you open more than one application on your operating system and switch between them
● Memory Management: bear in mind that the memory space in any embedded system is always busy and shared but the operating system will determine the allocation of the data in the memory and how that will be implemented this is “Memory Management”
● I/O Management: also the input and output management is the operating system responsibility that handles the communication between different input and output devices like your keyboard, mouse and speaker and so on
If you would like to understand how operating systems manage the hardware and the software of an embedded device , so you should first know the difference between a program and the running and execution of a program , a program is just a set of instructions that represent hardware and software of a system or software resource which is a static activity, on the other hand the execution of a program is an active activity that change from time to time while the execution process performed , a task or a process is created by the operating system to include the information of that required to execute the program for example information about the source code , PC and data
In embedded systems, operating systems manage software using tasks/processes and it can be unitasking or multitasking, for their names unitasking means that the operating system just one and only one task at a time, but in multitasking the operating system can manage more than one task at any given time but this required something called task management like the process management functionality, in multitasking the operating system always divide these multiple tasks into smaller and simpler activities or task that run using multiple processes
Also operating systems provide threads; a thread is simply a lightweight task or process and threads created within tasks which means that the task can has one or more threads
Now after showing you the two lower layers of the embedded system, it’s time to know more about the last layer
As you can see in this figure the responsibility of the application software layer is to determine what type the embedded system device is, because this high level will represent the purpose of the embedded system device for example it can provide you applications like the following applications
● Video on demand, you can find this functionality in interactive digital TV
● Web server, this application almost used with IoT application and many more example as shown in the following figure
Finally we have shown the all layers of any embedded system, but you should bear in mind that not all the embedded systems / all devices have the tree layers; they can have one, two, or three layers depending on the device purpose.
Great work
ReplyDeleteI wish you all the best in your career.
Thanks! Glad you enjoyed the Blog post.. Many more to come..
Deletei read the above notes and clarify my doubts very well.in this information i observe lot of things about technology.........thanks a lot
ReplyDeletebest embedded training institute in coimbatore
embedded course in coimbatore
embedded training in coimbatore
embedded training institute in coimbatore
embedded systems training in coimbatore
best baby walker
ReplyDelete123movies
ReplyDeletephotography whatsapp groups
ReplyDelete