- 1 Embedded system | What is it?
- 2 What is a Microprocessor Unit or MPU?
- 3 What is a Microcontroller Unit or MCU?
- 4 Development kit
- 5 What is Arduino? What is it useful for?
- 6 What is Raspberry Pi and how to use it
- 7 What is an FPGA – Field Programmable Gate Arrays
- 8 What is Soc – System on a Chip?
- 9 What is DSP – Digital Signal Processor
- 10 What are Real-Time Systems?
- 11 Embedded system software developers
Embedded system | What is it?
An embedded system – also known as an “integrated system” – is a computer system designed to perform specific functions, and whose components are integrated into a motherboard. The central processing of the system is carried out thanks to a microcontroller, that is, a microprocessor that also includes input/output interfaces, as well as a small memory on the same chip.
An embedded system is usually designed to carry out tasks that involve real-time computing. Nevertheless, there are other cases of use such as Arduino and Raspberry Pi whose purpose is more oriented to the design and development of applications and prototypes with embedded systems from graphic environments.
So far, we have already come across terms such as Microprocessor, Microcontroller, C / C ++, Arduino, Raspberry, or Real-time systems. These concepts are crucial to understanding the “world” that resides within an embedded system. Therefore, today we are going to talk about these and other terms to get more detailed knowledge about embedded systems and their fundamental characteristics.
What is a Microprocessor Unit or MPU?
When we speak of a microprocessor, we must take into account the evolution of the term. Initially, the processor consisted of independent elements interconnected with each other through buses. For example, the registers, the oscillator that gives the clock signal, the ALU, were all separate components.
As the technology and the scale of integration developed, these different components were merging within the same circuit. Thus, we went from having a processor made up of many interconnected integrated circuits, to having what we now call a microprocessor, which incorporated all these elements into a single integrated circuit.
Today, the use of the terms microprocessor and processor is practically interchangeable, since the term microprocessor is more frequently used.
The processor is the core of the computer, also known as the CPU (Central Processing Unit). Inside the processor is the ALU (Arithmetic Logic Unit) – in charge of performing mathematical operations – the registers that temporarily save data, the control unit that synchronizes the operation of the rest of the components, a small ROM memory where the instructions get stored, and other components.
It is important to mention that microprocessors are not used alone. They do not have a use by themselves but are integrated into other systems that give them a specific use, such as microcontrollers or SBCs.
What is a Microcontroller Unit or MCU?
We can think of a microcontroller as a dedicated computer. When we say that they are “dedicated”, we refer to the limited capacity that they usually have. They are small, with relatively low speed and a simple design. Inside our everyday computers, we’ll find the processor, on the one hand, the RAM on the other, etc. Besides, a microcontroller is a single chip in which a processor, RAM, ROM memory, and another series of components are put together to help programmers such as ADC and DAC converters or input/output converters in different formats are put together.
That is why they are not designed to maintain a huge software infrastructure. The majority of times microcontrollers are programmed directly, regardless of an embedded operating system.
Due to this limited capacity, there is a wide range of microcontrollers formed by many elements (different sizes of RAM, different processors, different input/output modules) depending on the use that they will be given. The existence of this diversity allows us to use the microcontroller that best suits the needs of our project, and is one of the reasons why they are so popular in embedded systems.
A development kit is a hardware element that facilitates the testing and programming of another hardware component – be it a microcontroller, a microprocessor, an FPGA, and so on. Normally they are boards with the component in question that you want to use together with several extra elements that simplify programming and prototyping.
Its main utility is to serve as a practice and learning scenario for engineers who will later have to work with the microcontroller or microprocessor similarly. Examples of dev boards are Arduino (microcontroller-based), Raspberry Pi (microprocessor-based), or FPGA development boards.
What is Arduino? What is it useful for?
Arduino is a prototyping platform. Arduino as hardware is a microcontroller development board, that is, a microcontroller integrated into the same chip with all the electronic components that it needs to work correctly (resistors, capacitors, a crystal oscillator if the micro does not already have it, strips of pins to be able to connect things to it, etc.). In addition, Arduino produces a development environment that avoids almost all the problems when uploading the code to the microcontrollers, which by themselves used to have very different methods of flashing and compiling with a long and tedious process.
The Arduino development environment shortens and facilitates this process, hence the great popularity Arduino has gained over the years in.
What is Raspberry Pi and how to use it
A Raspberry Pi is an SBC, that is, a Single-Board Computer. The concept is very similar to that of a development board, but with more robust features. If an Arduino helps us to program microcontrollers that will have only one program loaded (no operating systems), little memory, little speed, etc., a Raspberry Pi is a complete computer on a single board. It has an operating system called Raspbian, based on the Debian Linux distribution, and offers more RAM and storage. It is usually used to carry out applications that need more computing capacity or simply an operating system that guarantees certain libraries or packages.
Arduino vs Raspberry Pi | How to choose?
With all that being said, surely you are wondering: which is the best option? When should I use Arduino? When Raspberry Pi? …Don’t worry. Check this post about Arduino vs Raspberry Pi and we’ll help you choose.
What is an FPGA – Field Programmable Gate Arrays
FPGAs are one of the latest gains in the evolution of reconfigurable hardware. Designing and testing hardware components was a very time-consuming and costly process. There weren’t many ways to prove that your design worked until you printed it on a plate, and the printing process is slow and expensive.
FPGAs came to change this. In essence, they are hardware components interconnected with each other (from logic gates to slightly more complex elements), but in a way that the interconnections are configurable. This allows you to choose the components you want and connect them without the need to print on hardware. You simply do the design in a specific language – the “hardware description language”, HDL – and a tool provided by the manufacturer of the FPGA will convert that language into open or closed connections in the thousands of internal components of the FPGA. The result is that inside the FPGA your hardware circuit can be found as it is, and it will produce the same function that it would if you had printed it on a chip.
This made the design and build process much easier by allowing each design change to be tested quickly. Originally, FPGAs were used for prototyping and design, not as a final product (the FPGA is not used in production), but today some solutions incorporate FPGAs in the final product (FPGAs for example that emulate the behavior of a certain processor). In the image above, we can see a development board for a Digilent FPGA. The FPGA itself is the little black square above “Basys-3” (Basys-3 is the name of the board). The rest of the components of the board are used to test different functionalities and add input/output, among other things.
What is Soc – System on a Chip?
The term SoC is quite generic and is used more often from a marketing perspective. A set of elements that were previously separate but are now integrated into a single chip can be called SoC. It is common to find SoCs formed by a CPU together with components such as FPGAs, or microcontroller SoCs such as ESP32, etc. It is a very broad term that refers to almost any technology that is integrated within a single chip or board.
What is DSP – Digital Signal Processor
A DSP – a Digital Signal Processor – is a hardware component optimized to deal with digital signals. It is widely used wherever we need to treat audio, video, or telecommunications. Its use is very widespread, and almost all the technology that we handle daily contains one or more DSP chips. Our mobile phones, for example, use them to process input and output audio, for communication via Wi-Fi or data networks (4G, 5G), for GPS, Bluetooth, etc.
What are Real-Time Systems?
Real-Time Systems are capable of maintaining strict and exact time measurements, useful for all those environments in which reaction time is critical and the validity of the results obtained also depends on whether the expected time limits have been met. For example, the control systems that almost all modern cars have are based on real-time systems. The airbag has very specific time frames to activate or stop being useful. Same as ABS calibration, automatic brakes when detecting a possible collision, or heading correction when detecting a deviation. For this reason, real-time systems are designed to ensure that these temporary conditions are respected and met with accuracy.
Embedded system software developers
Are you looking for embedded system software developers? You just found them.