“The importance of embedded systems is self-evident. With the progress of the times, embedded systems are becoming more and more important. In order to enhance the understanding of embedded systems in the team, this article will introduce the knowledge system of embedded systems and some misunderstandings of embedded system learning. If you are interested in embedded systems, you might as well continue reading.
The importance of embedded systems is self-evident. With the progress of the times, embedded systems are becoming more and more important. In order to enhance the understanding of embedded systems in the team, this article will introduce the knowledge system of embedded systems and some misunderstandings of embedded system learning. If you are interested in embedded systems, you might as well continue reading.
1. The knowledge system of embedded systems
The application range of embedded systems can be roughly divided into two categories: the intelligentization of Electronic systems (industrial control, modern agriculture, household appliances, automotive electronics, measurement and control systems, data acquisition, etc.), and the extension of computer applications (MP3, mobile phones, communications, etc.) , Network, computer peripherals, etc.). It can be seen from these applications that to complete the design of an embedded system application product centered on the MCU, hardware, software, and industry-related knowledge are required. The hardware mainly includes MCU hardware minimum system, input/output peripheral circuit, and man-machine interface design. The software design includes the design of the firmware, and may also include the design of the PC software. Industry knowledge needs to be obtained through collaboration, communication and summarization.
In a nutshell, learning an embedded system with MCU as the core requires the following basic knowledge of software and hardware and practical training:
①Minimum hardware system (power supply, crystal oscillator, reset, write debugging interface);
②General I/O (switch input/output, involving detection and control of various binary quantities);
③Analog/digital conversion (collection and processing of various sensor signals, such as infrared, temperature, photosensitive, ultrasonic, direction, etc.);
④Digital/analog conversion (use digital control for analog equipment);
⑤Communication (serial communication interface SCI, serial peripheral interface SPI, integrated circuit interconnection bus I2C, CAN, USB, embedded Ethernet, ZigBee technology, etc.);
⑥Display (LED, LCD, etc.);
⑦Control (control various equipment, including PWM and other control technologies);
⑧Data processing (processing or recognition of graphics, images, voice, video, etc.);
⑨Various specific applications.
Invariably, any application can be classified into these categories. The hardware design, software design, testing, etc. in the application must follow the methods, principles and basic principles of embedded software engineering. Therefore, embedded software engineering is also an organic part of the embedded system knowledge system, but it is integrated into the development process of specific projects.
The above practical training involves hardware foundation, software foundation and related field knowledge. Computer languages, operating systems, development environments, etc. are all tools to achieve these goals. For some beginners, it is easy to confuse the use of tools with the real purpose they are trying to achieve. For example, some learners have learned the transplantation of embedded operating systems for a long time, instead of developing the actual embedded system products. In the end, they cannot make a small embedded system product, deviating from the learning goal, or even giving up embedding. Type system field. This is to enter the embedded system learning misunderstanding, the following will make some analysis on this.
Second, the learning misunderstandings of embedded systems
Regarding the learning methods of embedded systems, due to differences in learning experience, learning environment, learning objectives, existing knowledge base, etc., there may be differences in learning sequence, content selection, and practice methods. However, it should be clear which are the necessary basic knowledge, which should be learned first, and which should be learned later; which must be obtained through practice; which are general knowledge that has nothing to do with specific chips, and which are knowledge related to specific chips or development environments .
Due to the wide variety of microprocessors and microcontrollers, it is also possible that different companies and institutions may give some misleading propaganda out of their own interests, especially the backward manufacturing technology of embedded microcontrollers in my country, which makes people think about the development of microcontrollers. , There are differences in cognition and understanding, causing some beginners to enter the learning misunderstanding of embedded systems, wasting valuable learning time. The following analyzes several possible misunderstandings.
2.1 The confusion of the operating system
If we say that learning embedded systems is not for developing its application products, then there are no specific goals, and there is no need to talk about issues such as learning methods. In fact, this is the key problem that many people want to learn, but don’t know where to start, and don’t know the specific goal of their learning. So, after reading some training advertisements, reading a wide range of embedded system books in bookstores, or searching on the Internet with “embedded system” as the key word, I participated in training or read books and started to “learn”. For those with computer experience, they often choose an embedded operating system and start learning. This is a bit like “the blind man touches the elephant”, only one aspect is understood. So how can we have a comprehensive understanding of the development process of embedded products? For many beginners choose the “XXX embedded operating system + XXX processor” embedded system introductory learning mode, the author thinks it is inappropriate. The author’s suggestion is: first lay the foundation of embedded system software and hardware, and then choose a real-time operating system (RTOS) for learning and practice according to actual needs. Remember: RTOS is an auxiliary tool for the development of certain types of embedded products, it is a means, not an end; for many types of embedded products, RTOS is not required. Therefore, learning RTOS from the beginning does not conform to the learning law of “from the shallower to the deeper, step by step”.
Due to the wide variety of RTOS itself, the actual RTOS used generally needs to be determined by the work unit. The basic stage is mainly to learn the basic principles of RTOS and software development methods on RTOS, rather than learning how to design RTOS. Learners who aim to develop actual embedded products should not spend too much energy on designing or porting RTOS. Just as many people use the Windows operating system, only Microsoft designed the Windows operating system. Many people “study” Linux, but do not use it, wasting time. Human energy is limited, and learning must have choices.