Analysis of the advantages and disadvantages of embedded technology
The benefits of engaging in embedded software development are:
1 Currently, there is a shortage of people in this field both at home and abroad.
On the one hand, this field has a high entry threshold. Not only do you need to understand the lower-level software (such as operating system-level and driver-level software), you also need to have a high level of software expertise (embedded systems require high time and space efficiency in software design), and you must also understand the working principles of hardware (recommended: network engineer training), so it is difficult for non-professional IT personnel to enter this field;
On the other hand, because this field is relatively new and is developing too fast, many software and hardware technologies have not been around for long or are just emerging (such as ARM processors, embedded operating systems, MPEG technology, wireless communication protocols, etc.), and people who master these new technologies are of course hard to find (embedded technology training: ARM development training, FPGA training, DSP training, etc.). Embedded talents are scarce, so their value is naturally high. The more experienced they are, the higher their price. In fact, the fundamental reason why embedded talents are scarce may be that most people have no conditions to contact them, which requires corresponding embedded development boards and software, and experienced people to guide the development process.
Unlike application software such as enterprise computing, the work intensity of talents in the embedded field is usually lower (but the income is not low).
IT companies that develop enterprise application software have to work on the next user's system after they finish developing the system for one user. Moreover, the needs and completion time of each user have to change according to the customer's requirements, which often makes them exhausted and repeating work. In contrast, companies that develop embedded systems have their own product plans and act at their own pace. The products they develop are usually universal and will not be modified for different customers. After a product model is developed, there is often a long period of idle time (or just some minor repairs to the software), which gives them time to recharge and rest.
In addition, the scope of work for everyone engaged in embedded software is relatively narrow, and the professional technology involved is the same (ARM, RTOS, MPEG, 802.11, etc.). Over time, you will become more and more experienced in these things, and a few words of guidance will be enough for those who are new to the field to ponder for half a year. If you work on application software, the next customer may want to switch to a completely different software development platform, which will be a pain.
For those who want to enter the embedded development industry, the recommended training courses include: embedded Linux development training, embedded WinCE development training, 3G mobile phone development training, Android embedded development training, etc.
The disadvantages of working in embedded software development are:
(1) The entry entry point is relatively high, and the technologies used are often difficult. If you do not have a good foundation in hardware and software, especially if you do not have a deep foundation in operating system-level software, you may not be suitable for this line of work.
(2) The number of companies in this field is far less than that of enterprise computing companies. In particular, there are more small companies engaged in embedded systems (small companies want to start their own products), and fewer well-known large companies (large companies engaged in embedded systems mainly include Intel, Motorola, TI , Philips, Samsung, Sony, Futjtum, Bell-Alcatel, STMicroelectronics, Microtek, Advantech, Huawei, ZTE, Shanghai Media Group and other manufacturing companies). The habitual way of thinking of these companies is to look for people in relatively hard majors such as electronics and communications. Since our college’s previous graduates were mainly in enterprise computing, our college has relatively few contacts with these companies. Our college is actively working hard and has established contacts with some of these companies. We hope that our students can intern or work in these companies in the future.
(3) A few companies often require people with a master's degree or above to work on embedded systems, mainly due to the difficulty of embedded systems. However, most companies do not have this requirement, as long as they have experience.
If students in our college study embedded systems, they should obviously focus on embedded software, especially embedded operating systems, which should be our strong point. For people who engage in embedded software, the most important technology is obviously (in fact, this is what is written in the recruitment advertisements of many companies):
(1) Master the structure and principles of mainstream embedded microprocessors
(2) You must master an embedded operating system
(3) Must be familiar with the embedded software development process and have worked on at least one embedded software project.
Embedded entry learning method
1. Definition of Embedded System
Based on the definition of embedded systems found on the Internet and combined with my own understanding of embedded systems, I define embedded systems as follows:
1. Simply put, an embedded system is a special-purpose computer system designed for a specific application;
2. Embedded systems are different from ordinary PCs or notebooks. The size, power consumption, external adapters and other characteristics of embedded systems must meet the requirements and limitations of the application;
3. The software of the embedded system, including the operating system, is burned onto a circuit board;
4. It uses a low-power X86-level CPU, a modular design, and is equipped with the most basic computer peripherals. This type of computer usually uses the Windows operating system;
5. The CPU of the embedded system can be: 4-bit, 8-bit, 16-bit, 32-bit;
6. Embedded systems are widely used, such as:
1) Small appliances
2) Automobile
3) Elevator
4) Television
5) Video recorder or VCD, DVD
6) mp3, mp4
7) Industrial Control
8) Medical equipment
9) Satellite
10) Telephone
11) PDA
12) Flight system, etc.
13) …
7. Architecture of embedded systems:
1) CPU
2) RAM
3) ROM or flash ram
4) AD
5) DA
6) Human-machine interface (e.g. buttons + LED/LCD/color LCD/)
7) I/O
8) Usart
9) USB
10) CAN
11) Ethernet
12) Embedded operating systems, such as uc/os, linux, vxworks, wince, dos. . .
8. Embedded systems are more characterized by SoC, that is, the entire system is integrated on one chip, such as ATMEL's arm7 chip 91sam7x128/256, etc.; users can get cheap and powerful embedded systems;
2. The most correct learning path - from 8-bit MCU to CANbus to ARM7
Step 1: Get familiar with 8-bit MCU
My personal opinion is that there is a pattern for learning embedded technology: 8-bit mcu (51 or avr...) + can2.0B + arm7 + arm9. You can follow this pattern when learning.
As a low-end embedded system, it is more appropriate to choose an 8-bit MCU as an entry point. Among 8-bit MCUs, compared with PIC, AVR, Freescale and other 8-bit microcontrollers, it is more appropriate to choose a 51-core microcontroller as the first choice for learning 8-bit MCU. Of course, this view is a matter of opinion; if you need a reason, then perhaps the following reasons can be used as a reference:
1. 51 has accumulated a large number of excellent codes and other resources; there are too many such resources on the Internet, and they are almost free;
2. There are many manufacturers that produce 51 core microcontrollers, such as: ATMEL, Winbond, LG, Philips, STC (Macrochip Technology), TI , ...
3. In the low-end market segment, manufacturers of 51 MCUs have launched different products for different industry applications, such as the LPC900 series and STC's 12CXXXX series; they meet the needs of industry users in terms of function, price, power consumption, size, packaging, anti-interference, etc. For example, more and more 51 MCUs now integrate A/D, D/A, SPI, I2C, PWM, internal clock, watchdog, eeprom, ISP/IAP, etc., which are very different from the traditional ATMEL 89C51/52! The functions are becoming more and more powerful while the cost is getting lower and lower, and there is no need to worry about a certain manufacturer's shortage of stock. . .
4. . . . (still increasing)
Step 2: Be familiar with can2.0A/B. Be familiar with can2.0A/B on the basis of mastering 51
Why is it CANBU instead of MODBUS bus or BITBU?
CAN is a CAN (Controller Area Network) field bus communication structure developed by Bosch of Germany to solve many control and data exchange problems in modern vehicles. Its main features are:
1. 8-byte short frame transmission, so the transmission time is short and the anti-interference ability is strong;
2. High speed, the maximum speed can reach 1Mbit/s;
3. Multi-master mode, multiple masters can be divided into master nodes and slave nodes; each node can actively send information to other nodes on the network at any time, regardless of master or slave, and the communication is flexible; when sending, the bus automatically arbitrates the master and the slave; the master node has priority;
4. It can realize full-area broadcast, zone broadcast and point-to-point communication;
5. The CAN controller automatically filters frames with inconsistent frame numbers, greatly reducing the burden on the CPU;
6. With multiple error checking methods such as CRC and other checking measures, the data error rate is extremely low; and in the case of serious errors, the node will automatically go offline to avoid affecting other nodes on the bus; RS485 often affects all nodes on the bus due to one node;
Previous article:C language programming program optimization solution, how to choose ARM core processor operating system
Next article:Introduction to embedded development environment, analysis of embedded file system requirements
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- How to design an RC oscillator circuit with an output frequency of 1k to 3.2MHz
- Some experience on DSP parallel FLASH booting
- Where can I find the meaning of TI chip suffixes?
- What is the minimum power consumption of the Zigbee module?
- Summary of EMC principles for PCB design
- TI UCC28782 makes a miniaturized adapter
- What does N/A mean in TI chip manuals?
- How non-isolated switching power supplies work
- Design and simulation of inout port circuit in Verilog
- Industrial RTU: Remote 4-20mA current acquisition (4G version)