What is the difference between MCU, ARM, FPGA, embedded

To learn embedded, you need to understand hardware knowledge, including single-chip microcomputer, ARM, FPGA, etc. Different hardware has different characteristics, and you need to understand their corresponding characteristics to be beneficial to operating applications. So what are the differences and characteristics of MCU, ARM, FPGA, and embedded?
 
Features of MCU:
 
1. Due to the limitation of integration, the capacity of on-chip memory is small, generally internal ROM: less than 8KB;
 
2. Internal RAM: within 256KB;
 
3. High reliability;
 
4. Easy to expand;
 
5. Strong control function;
 
6. Easy to develop.
 
Features of ARM:
 
1. Comes with cheap program memory (FLASH) and non-volatile data memory (EEPROM). These memories can be electrically erased and written many times, making program development and experimentation more convenient and work more reliable;
 
2. High speed and low power consumption. Under the same condition of external crystal oscillator as M51 single-chip microcomputer, the working speed of AVR single-chip microcomputer is 30-40 times that of M51 single-chip microcomputer; and the addition of sleep function and CMOS technology makes its power consumption far lower than M51 single-chip microcomputer;
 
3. Industrial grade products. It has a large current output that can directly drive SSR and relays, and has a watchdog timer to prevent the program from flying, thereby improving the product's anti-interference ability. ;
 
4. Super-functional condensed instructions, with 32 general-purpose working registers, which are equivalent to 32 accumulators in M51 single-chip microcomputer! So as to overcome the bottleneck effect of a single accumulator;
 
5. Program modification and burning on the circuit board;
 
6. It has the functions of analog comparator, pulse width modulator and analog-to-digital conversion. Make the analog signal processing in industrial control easier and more convenient;
 
7. The functions of important internal resources of the single-chip microcomputer such as parallel port, timer counter, interrupt system, etc. have been greatly improved, making it more suitable for real-time control of industrial production processes;
 
8. The clock frequency can be connected externally or the internal oscillator of the microcontroller can be used. The frequency can be set within 1MHz-8MHz, making the hardware development and production more concise;
 
9. Powerful communication function, built-in synchronous serial interface SPI, universal serial interface UAST, two-wire serial bus interface TWI (I2C), making network control and data transmission more convenient;
 
10. Super security function, the application can adopt multiple protection lock functions. Can quickly complete the commercialization of manufacturers' products at low prices and so on. In addition to the above features, "zero peripherals" is also an important feature of AVR embedded microcontrollers. Because the chip has built-in program memory, crystal oscillator and added online assembly function. Therefore, the AVR microcontroller chip is connected to a DC power supply and can work independently by downloading a program. No need for additional external equipment, no need to use expensive programmers and emulators. This brings us convenient conditions for learning and development.
 
Features of FPGA:
 
1. Using FPGA to design ASIC circuit (application-specific integrated circuit), users can get a suitable chip without casting production;
 
2. FPGA can be used as a sample piece of other fully customized or semi-customized ASIC circuits;
 
3. There are abundant flip-flops and I/O pins inside the FPGA;
 
4. FPGA is one of the devices with the shortest design cycle, the lowest development cost, and the lowest risk in ASIC circuits;
 
5. FPGA adopts high-speed CMOS technology, low power consumption, and compatible with CMOS and TTL levels. It can be said that FPGA chips are one of the best choices for small batch systems to improve system integration and reliability. FPGA is set up its working state by the procedure stored in on-chip RAM, therefore, need to carry on programming to on-chip RAM while working. Users can adopt different programming methods according to different configuration modes. When powering up, the FPGA chip reads the data in EPROM into the on-chip programming RAM. After the configuration is completed, the FPGA enters the working state. After a power failure, the FPGA is restored to a blank, and the internal logic relationship disappears. Therefore, the FPGA can be used repeatedly. The programming of FPGA does not need a dedicated FPGA programmer, only general EPROM and PROM programmers. When you need to modify the FPGA function, you only need to change a piece of EPROM. In this way, the same piece of FPGA, different programming data, can produce different circuit functions. Therefore, the use of FPGA is very flexible.
 
Features of embedded system:
 
1. The system kernel is small. Since embedded systems are generally applied to small electronic devices and system resources are relatively limited, the kernel is much smaller than traditional operating systems. For example, Enea’s OSE distributed system has only 5K kernels, but the Windows kernel? It is simply not comparable;
 
2. Strong specificity. Embedded systems are highly personalized, and the software system and hardware are very closely integrated. Generally, the system must be transplanted to the hardware. Even in the same brand and series of products, it needs to be constantly increased and decreased according to the changes and additions of the system hardware. Make changes. At the same time, for different tasks, it is often necessary to make major changes to the system. The compilation and download of programs must be combined with the system. This modification and the "upgrade" of general software are completely two concepts;
 
3. The system is streamlined. Embedded systems generally do not have a clear distinction between system software and application software, and do not require their functional design and implementation to be too complicated. This will help control system costs on the one hand, and also help achieve system safety;
 
4. High real-time system software (OS) is the basic requirement of embedded software. And software requires solid-state storage to increase speed; software code requires high quality and high reliability;
 
5. If embedded software development wants to move towards standardization, it must use a multi-tasking operating system. Embedded system applications can run directly on the chip without an operating system; but in order to rationally schedule multiple tasks, utilize system resources, system functions, and interface with expert library functions, users must choose RTOS (Real-Time Operating System) by themselves Development platform, so as to ensure the real-time and reliability of program execution, reduce development time, and ensure software quality;
 
6. Embedded system development requires development tools and environment. Since it does not have the capability of bootstrapping development, users usually cannot modify the program functions even after the design is completed. A set of development tools and environments can be used for development. These tools and environments are generally based on software on general-purpose computers. Hardware equipment and various logic analyzers, mixed signal oscilloscopes, etc. There is often the concept of a host and a target machine during development. The host is used for program development, and the target machine is the final execution machine. The development needs to be combined alternately.