MCU (Micro Controller Unit), also known as single chip microcomputer, refers to a chip-level computer that integrates the computer's CPU, RAM, ROM, timer and multiple I/O interfaces on a single chip with the emergence and development of large-scale integrated circuits. At present, each MCU embedded system is developed in a closed manner, and there is a lot of duplication between different systems, which greatly increases the cost and cycle of software development. At the same time, the reliability of the system cannot be guaranteed. MCU embedded development faces the problems of rapid expansion of software scale and complexity, tight development time, and ensuring development quality. Therefore, new embedded software development technology is urgently needed. In
1968, Mellroy first proposed the idea of software reuse in his paper "Mass Production of Software Components", which aims to explore the process of producing software using "software components designed for reuse purposes", which has attracted great attention. Among various software reuse methods, component-based software development technology (CBSD) is also a hot topic of research, and has also achieved good results in practice.
The componentized software process can be divided into two independent sub-processes: domain engineering (developing components) and application process (developing applications using components). Domain engineering is the main technical means for producing reusable software assets. It includes three stages: domain analysis, domain design, and domain implementation. In the entire software reuse process, domain analysis is the key. Only through domain analysis can reusable assets (domain models, software architecture, reusable components, etc.) in similar systems be obtained to further support the reuse of new system development in the domain. Therefore, it is extremely important to form an effective domain analysis method in MCU embedded systems.
2 MCU embedded system development model and current status
2. 1 MCU embedded system development model
At present, the software process of MCU embedded systems is basically centered on the main process including human-machine interface processing (slow processing), external asynchronous interrupt processing (urgent processing), and timing input, plus various other control components such as movement control processing (processing according to certain rules). Every time the MCU completes a function, its processing process follows the IPO model (Input, Process, Output), as shown in Figure 1.
Figure 1 IPO Status
For each model, its input parameters and output results are in fixed formats, so for a mature model, its behavior is determined and its constraints are clear. Because of these characteristics, the cohesion and stability of the MCU embedded system field can be clearly observed.
Because of the cohesion of the field, we can use relatively few and limited reusable information to reflect the needs and applications of the entire field. Because of the stability of the field, the results we obtain through field engineering can compensate for the manpower and material resources spent on field engineering in future work.
2.2 Status of MCU Embedded System Development
The application of MCU can penetrate into all aspects of human life. The key reason is that it can achieve different functions and target different applications through flexible customization of software. With the increasing number of functions, the difficulty of MCU embedded system development has also increased. If the built-in ROM capacity is within 8K bytes, an experienced technician can spend 2-3 months alone to develop software in assembly language, but it will be more difficult to complete the ROM of more than 16K alone. Especially in the field of consumer electronics, product replacement has changed from years to months or even weeks, which has led to the frequent recall of products due to quality problems in enterprises that rely on product quality. It is worth noting that in development, experienced developers usually selectively reuse previous work results (code, software system, tools, documents), but this reuse is generally personal, and the source of reuse is also the previous experience of individuals. In a specific field, such as an enterprise, such reuse is frequent, and they have the following characteristics:
· There are many reusable resources and opportunities for reuse in a field, but it is usually impossible to manage reusable resources, decide when to reuse and how to reuse, and thus effectively control the quality of products.
· In a field, individuals often control certain reusable resources, and reusable resources cannot be shared, resulting in waste of resources and failure to further improve productivity.
· The departure of individuals who control resources leads to resource loss; new individuals cannot systematically obtain these resources, resulting in reduced work efficiency.
This type of reuse is called ad-hoc reuse. If the resources in the domain can be effectively integrated and managed and reused in a more effective way, the production efficiency of software products can be further improved, production costs can be reduced, and product quality can be improved. This method is called systematic reuse. Domain engineering is proposing solutions to this series of problems.
3 Domain Engineering and Domain Analysis
3.1 The meaning of domain A domain
refers to the functions, problems, problem solutions or knowledge areas covered by a group of application systems with similar or similar software requirements. Domains can be divided into horizontal domains and vertical domains: horizontal domains refer to similar problem spaces obtained by functional classification of modules within the application system, such as database systems, workflow systems, etc.; vertical domains refer to business areas covered by a group of similar application systems with similar business requirements, and our MCU embedded system domain belongs to the vertical domain.
3.2 Domain Engineering
Domain engineering is the process of establishing basic capabilities and necessary foundations for the application engineering of a group of similar or similar systems. It covers all activities to establish reusable software components. Domain engineering analyzes the systems in the domain, identifies the common features and variable features of these applications, selects and abstracts the objects and operations that characterize these features, forms a domain model, and generates the architecture common to the applications in the domain based on the domain model, namely the domain-specific software architecture (DSSA), and on this basis, identifies, develops and organizes reusable components. [page]
In the activities of domain engineering, a series of standards can be formed by systematically cross-comparing domain-related knowledge. These standards form regulations for the selection of components and the generation of new components, thereby guiding and regulating the development of new products. At the same time, since these choices have been demonstrated over a long period of time and practice, these standards are also scientific. When we want to develop a new system in the same domain, we only need to determine the new requirements based on the domain model, and then form a new system design based on the software architecture of the specific domain, and select, construct components based on relevant standards, and assemble them into the new system. In this way, the quality and development efficiency of the new system will be reliably guaranteed, and the company can also manage and monitor the entire development process through behavioral norms.
3.3 The meaning and method of domain analysis
In systematic software reuse, the existence of sufficient reusable information is very important. This information needs to be explicitly represented so that it can be reused during the development process. This reusable information, together with some auxiliary information for convenient location and operation, constitutes the reuse infrastructure. The purpose of domain analysis is to establish this reusable infrastructure, which means "the process of identifying, capturing and organizing reusable information such as objects and operations in a class of similar systems in a specific domain". The
three key processes of domain analysis are: ① Establishment of domain boundaries: By analyzing existing technical materials and typical systems, and integrating the opinions of domain experts, define the scope and boundaries of domain analysis, and collect necessary information for conducting domain analysis; ② Domain modeling stage: Based on the domain boundaries obtained in the domain boundary establishment stage and the relevant information collected in the domain, use the corresponding modeling knowledge and tools to establish a domain model with the commonality and variability characteristics of the data and capabilities of the application systems in the domain; ③ Software architecture modeling stage: Establish a software architecture model (DSSA) that describes solutions to specific problems in the domain through the domain model that has been obtained and the relevant standards designed in the domain.
4 MCU Embedded System Domain Analysis Method
4.1 Determination of Domain Boundary of MCU Embedded System Domain
Here, we do not intend to choose a domain that is suitable for all MCU system development, but a relatively narrow domain, such as the air conditioning industry in the home appliance manufacturing industry. In such an industry, since the basic functions of the product to be implemented are basically fixed for a long time, the needs of customers are relatively stable, so that in the domains for similar products, there are many functions that are the same and the software architecture is the same. This provides very favorable conditions for domain analysis. When analyzing these domains, the data mainly comes from typical systems in this field, the advice of domain experts, the experience of engineers, customer needs, development kits provided by hardware manufacturers, control theory, the development history and development trends of this field, etc. After collecting these resources, it will form the context of domain analysis, that is, the boundary of the domain.
4.2 Domain Modeling of MCU Embedded System Domain
The significance of the domain model is to organize the information of the domain in a more acceptable way. It includes formal models and informal information. The former is a description of the solution, and the latter is a supplement to the domain knowledge. For the domain we have chosen, the software architecture of a specific industry is relatively stable. For each specific product, there will be some minor differences in the functions implemented. It is common that after a prototype appears, many modifications will be made to the prototype to meet the different needs of market customers. Therefore, in view of such domain characteristics, we have the following suggestions for the process at this stage:
· Formal model: adopt a feature-oriented domain model. The definition of a feature is generally a system feature that can be perceived by users or customers. However, each organization can also organize and select a domain model based on its own characteristics.
· Domain dictionary: The domain dictionary is obtained through dialogue with domain experts and analysis of relevant standards. The role of the domain dictionary is to provide an accurate and convenient communication environment for participants in the field.
· Unified identification: Use a standardized, universal symbol system to describe concepts in the domain.
4.3 Software Architecture in the MCU Embedded System Domain
DSSA (Domain-Specific Software Architecture) is not a representation of a single system, but a high-level design that can adapt to the needs of multiple systems in the domain. It contains components and rules for component interconnection. When developing a new system in this field, these components can be used, and according to these rules, a specific system structure that meets the current system requirements can be constructed8. A relatively important concept in DSSA is the reference architecture, which aims to achieve architecture reuse. Figure 2 shows a reference architecture (partial) in the field of air-conditioning controllers.
Figure 2 Reference architecture in the field of air conditioning controllers (partial)
In the figure above, each box represents a component. Its subordinates represent sub-components derived from the decomposition of the previous component. Multiple sub-components can form a larger component, which can support more efficient reuse.
DSSA also includes some requirements specifications, as well as descriptions and standards for interfaces. For the MCU embedded system field, since there are industry standards for the interfaces of many peripherals, how to make the software that controls these hardware also be written according to a unified industry standard is a necessary and feasible solution. Software written according to the standard can be easily extracted into components and used in our system. In practice, we found that it is feasible to agree on this standard from the following aspects:
· Scope of application of software: such as MCU type, application scheme, etc.;
· Hardware characteristics and usage of peripherals;
· Standardization of peripheral control process: including algorithms and flow charts;
· Standardization of interface parameters: naming rules, types, lengths, etc.;
· Some relevant precautions: such as some restrictions made to comply with national regulations, relevant security requirements;
5 Summary
Innovation of this article: The author introduces the concept and method of domain analysis, and introduces a domain analysis method suitable for the field of MCU embedded systems based on the characteristics of the field of MCU embedded systems. This method has been applied to the author's current project. Practice has proved that this is a feasible path with great potential. How to combine more means to achieve our goals will be the focus of future work.
Previous article:Design and application of SED1335 in single chip microcomputer system
Next article:Design of Freescale+HC08+MCU Integrated Development Environment
Recommended ReadingLatest update time:2024-11-16 22:37
- Popular Resources
- Popular amplifiers
- Wireless Sensor Network Technology and Applications (Edited by Mou Si, Yin Hong, and Su Xing)
- Modern Electronic Technology Training Course (Edited by Yao Youfeng)
- Modern arc welding power supply and its control
- Small AC Servo Motor Control Circuit Design (by Masaru Ishijima; translated by Xue Liang and Zhu Jianjun, by Masaru Ishijima, Xue Liang, and Zhu Jianjun)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- W806 Lighting
- Analysis of the role of terminal resistance in CAN bus
- Download the information and watch the video to win a prize | Tektronix HDMI 2.1 test solution is now available for download, and you can also watch the supporting video
- Things to note when using C/C++ to write programs based on TMS320 series DSP
- Generate sine wave data using microcontroller DAC and C language
- RISC-V RVB2601 First Experience--Section 4--Sensor Module Interface
- Easy to use, LiChuang EDA. Haha!
- [Start at 10:30] Interpretation of TI's latest smart lock, visual doorbell, and network camera solutions, and recommendations for its core components
- C6678 multi-core DSP development - connected domain marking of vlib application
- Nanjing MIIT certified enterprise [urgently hiring IC engineers with high salary]