What is the difference between embedded and microcontroller?
[Copy link]
There is actually no standard definition to distinguish between MCU and embedded system. Developers who have developed MCU and embedded system have their own definitions. Next, let’s talk about the in-depth understanding of these two concepts.
What is a microcontroller
First of all, let's clarify the concept of what a single-chip microcomputer is. A single-chip microcomputer is an integrated circuit chip that uses very large-scale integrated circuit technology to integrate a central processing unit CPU with data processing capabilities, random access memory RAM, read-only memory ROM, multiple I/O ports and interrupt systems, timer/counters and other functions (may also include display driver circuits, pulse width modulation circuits, analog multiplexers, A/D converters and other circuits) onto a silicon chip to form a small and complete microcomputer system. It is widely used in the field of industrial control.
For a single-chip microcomputer, one chip is actually everything. Other components, such as the single-chip microcomputer minimum system, are added for the normal operation of the single-chip microcomputer, such as crystal oscillator, 5v power supply, inductor resistor, etc. Of course, the minimum system can only ensure the normal operation of the single-chip microcomputer, and it is almost impossible to realize any application based on the single-chip microcomputer.
In order to realize the application of single-chip microcomputer, other peripherals must be added, such as buttons, LED lights, LED screens, buzzers, and various sensors. This is the single-chip microcomputer development board that many companies on the market are making.
In summary, a single-chip microcomputer is a single module that completes functions such as calculation, logic control, and communication. That is, the single-chip microcomputer is really "single". DSP chips can also be considered as single-chip microcomputers. Of course, their performance is very powerful, but their functions are still very simple, in short, they process data and logic.
What is Embedded
So what is embedded? Generally speaking, embedded refers to embedded systems. The IEEE (InsTItute of Electrical and Electronics Engineers) defines embedded systems as "devices used to control, monitor or assist in the operation of machines and equipment."
An embedded system is a dedicated computer system that is part of a device or equipment. Typically, an embedded system is an embedded processor control board with a control program stored in ROM.
An embedded system is a system that combines application programs, operating systems, and computer hardware. It is an application-centric, computer technology-based, customizable hardware and software system that targets user applications with special requirements for functionality, reliability, cost, size, power consumption, and usage environment.
What kind of hardware should embedded systems run on?
When talking about embedded hardware or development boards, I think many people's first impression is Raspberry Pi, a microcomputer the size of a credit card. Although it looks "small", it is very powerful inside, with video, audio and other functions. After the launch of Raspberry Pi, many manufacturers rushed to launch similar products, such as Banana Pi.
Another advantage of ARMv7 over ARMv6 instruction set is that the actual performance of processors using ARMv7 is more powerful. ARMv7 has many advantages over ARMv6, such as some significant improvements: implementation of superscalar architecture, inclusion of SIMD operation instructions, and improved branch prediction algorithms, which greatly improve certain performance.
The difference between embedded and single chip microcomputer
The above are the performance parameters of a basic embedded core board. Compared with the performance parameters of the MCU mentioned above, the processing power of the MCU is relatively low, and the main frequency is mostly around tens of M, which is quite different from the processing speed of hundreds or thousands of M of embedded systems. In addition, the MCU does not have the processing capability of the graphical interface, that is, the lack of GPU makes it almost impossible for the MCU to drive the graphical interface.
The storage space of the MCU is not at the same level as that of the embedded processor. The MCU usually has only a few KB of on-chip storage, and due to the limitation of peripherals, it is unlikely to increase the peripheral eMMC on a large scale. The embedded processor usually has hundreds of megabytes of RAM. Such a huge difference makes it almost impossible for the MCU to run the operating system like the embedded processor, and even the TCP/IP protocol stack and USB protocol stack cannot run. Some high-end MCUs, such as ST's STM32 series, may be able to run some lightweight system OS and embedded network protocol stacks, such as the IwIP protocol stack.
The rich and powerful performance of the embedded processor determines that it can complete more applications that the single-chip microcomputer cannot complete, such as network communication functions, video transmission processing functions, etc. When the peripheral storage is increased, the embedded processor can easily run various Linux systems and graphical GUI interfaces.
There is also a big difference between MCU and embedded system in the development method, that is, the difference in the compilation process. MCU is mainly developed under graphical interface such as Windows. There are many mature IDE tools such as Keil, IAR, and TI's CCS. These tools integrate compilation, assembly, linking and simulation. And because they are developed under Windows, they have a friendly user interface. Developers only need to write C code and then click the compile and link button. If errors occur, they can also debug or simulate. It is very quick to get started.
Embedded development is usually carried out under Linux. The C code must be compiled on the host, and then the compiled file must be burned into the development board through the system image or uboot boot. Since the host processor is of x86 architecture, and the code is written to run on the arm architecture or sparc architecture processor, there is a cross-compilation chain installation. In addition, there is no IDE like Windows under Linux, that is, the compilation and linking of source code need to be done by the developer himself, which is generally done by using GNUmake script to write Makefile and configure files. The Makefile file writes how to compile C or H files, that is, the compilation rules and what the dependent files are. All of these need to be done by the developer himself. And the above process is completed in the terminal under Linux, that is, the command line, which also increases the difficulty of embedded development.
Starting from scratch is not as difficult as you think!
|