Comprehensive Guide to Embedded System Design and Development

Produced by 21ic China Electronics Network, organized by Fu Bin

Website: 21ic.com

01

Background of Changes in Embedded System Design Methods

The evolution of embedded system design methods is generally driven by application demands and IT technology advancements. With the continuous innovation and development of microelectronics technology, the integration level and process level of large-scale integrated circuits have been continuously improved. The combination of silicon materials and human intelligence has produced a large number of low-cost, high-reliability, and high-precision microelectronic structure modules, promoting the development of a brand new technology field and industry.
Based on this, the idea of programmable devices and microprocessor technology has developed, allowing software to change and implement hardware functions. The extensive application of microprocessors and various programmable large-scale integrated circuits and semi-custom devices has created a brand new application world, widely influencing and gradually changing human production, life, and learning activities.
The significant improvement in computer hardware platform performance has enabled many complex algorithms and user-friendly interfaces to be realized, greatly improving work efficiency and providing the physical foundation for complex embedded system auxiliary design.
High-performance EDA integrated development tools (platforms) have made significant progress, and their automation and intelligence levels continue to rise, providing an integrated and easy-to-learn development environment for complex embedded system design, covering various uses and levels of editing, layout, wiring, compilation, integration, simulation, testing, verification, and device programming.
The development of Hardware Description Language (HDL) has provided a working medium for establishing various hardware models in complex electronic system design. Its strong descriptive and abstract capabilities have brought significant changes to hardware circuits, especially in semi-custom large-scale integrated circuit design. Currently, commonly used languages include VHDL, which has become the IEEE STD1076 standard, Verilog HDL under IEEE STD 1364 standard, and AHDL, which is the corporate standard of Altera.
Due to the development and standardization of HDL, a number of companies specializing in the design of various integrated circuit functional modules using HDL have emerged worldwide. Their task is to describe the functions and structures of integrated circuits using HDL according to common or specific functions, and to form various levels of IP core modules through different levels of verification for chip designers to assemble or integrate.
IP (Intellectual Property) core modules are pre-designed and even validated integrated circuits, devices, or components with a specific function. They come in several different forms. IP core modules have three levels of design: behavior, structure, and physical, corresponding to the main descriptions of functional behavior as “soft IP core,” structural descriptions as “firm IP core,” and physical descriptions verified by process as “hard IP core.” This is equivalent to the design technology of integrated circuits (devices or components) in rough, semi-finished, and finished states.
Soft IP cores are usually submitted to users in some HDL text. They have undergone behavioral design optimization and functional verification, but do not contain any specific physical information. Based on this, users can synthesize correct gate-level netlists and proceed with subsequent structural designs, offering maximum flexibility. They can easily integrate with other external logic circuits through EDA synthesis tools, designed to have different performances based on various semiconductor processes. Commercial soft IP cores generally have a total gate number of over 5000 gates. However, improper subsequent design may lead to overall failure. Soft IP cores are also known as virtual devices.
Hard IP cores are based on a specific semiconductor process with a fixed topology layout and specific process, verified by process, and have guaranteed performance. The form provided to users is a circuit physical structure mask layout and a complete set of process documentation, which can be used directly.
The design depth of firm IP cores is between soft and hard IP cores. In addition to completing all designs of hard IP cores, it also completes gate-level synthesis and timing simulation design steps. Generally, they are submitted to users in the form of gate-level netlists.
Manufacturers such as TI, Philips, and Atmel have developed unique microcontrollers compatible with Intel’s MCS51 IP core modules by leveraging Intel’s authorization.
Commonly used IP core modules include various CPUs (32/64-bit CISC/RISC structured CPUs or 8/16-bit microcontrollers), 32/64-bit DSP, DRAM, SRAM, MRAM, EEPROM, Flash memory, A/D, D/A, MPEG/JPEG, USB, PCIe, MIPI, standard interfaces, network units, compilers, encoders/decoders, and analog device modules. A rich library of IP core modules provides a fundamental guarantee for rapidly designing dedicated integrated circuits and single-chip systems and quickly occupying the market.
The advancement of software technology, especially the introduction of Embedded Operating Systems (EOS) and Real-Time Operating Systems (RTOS), provides underlying support and a high-efficiency development platform for developing complex embedded system application software.

02

Changes in Embedded System Design Methods

In the past, programming personnel skilled in software design generally kept a distance from hardware circuit design, considering hardware and software design to be completely different technical fields.
With the development of electronic information technology, designers with an electronic engineering background gradually began to engage in software programming as well. This mainly occurred through the application of microcontrollers (commonly referred to as single-chip microcontrollers in China), learning corresponding assembly language programming. When designing larger distributed control systems, it is inevitable to use popular PCs as the upper machine, further learning to use high-level programming languages such as C, C++, and Python to develop system programs, design system interfaces, and establish multi-machine communication with the front-end machine controlled by the single-chip microcontroller to form a centralized distributed control system.
Designers with a background in software programming are rarely interested in learning circuit design applications. However, with the rapid development of computer technology, especially the invention of Hardware Description Language (HDL), the hardware design methods of systems have changed. The hardware composition and behavior of digital systems can be completely described and simulated using HDL. In this case, designing hardware circuits is no longer the exclusive domain of hardware design engineers; designers proficient in software programming can use HDL tools to describe the behavior, function, structure, data flow, signal connection relationships, and timing relationships of hardware circuits, designing hardware systems that meet various requirements.
EDA tools allow for two types of design input tools, catering to the needs of hardware circuit designers and software programming personnel from different backgrounds. They enable designers with a hardware background to use familiar schematic input methods while allowing designers with a software background to use hardware description language input methods. Because input using HDL descriptions is closer to system behavior descriptions, it is easier to synthesize, transmit in time domains, and modify, and can establish design files independent of the process. Therefore, once software programming experts master HDL and some necessary hardware knowledge, they often can design better hardware circuits and systems than engineers accustomed to traditional design. Thus, engineers accustomed to traditional designs should learn to use HDL for description and programming.

Why do most graduates believe that only embedded systems, single-chip microcontrollers, ARM, and FPGA are technology? Almost all universities now offer majors in this area. While there are many high-level talents and high-paying jobs in this field, it is not suitable for everyone. Most of those with lower starting points or older ages should not engage in these areas. Currently, embedded systems are like fast food; with a continuous influx of college students, their value is decreasing, and most of these groups can produce results, but they are often unstable, resulting in products that cannot be sold even at low prices. The root issue lies in a lack of foundation in production, quality, after-sales, testing, and simulation. After so many years of development in China, it can be said that those who truly make money are those engaged in production, focusing on quality and understanding sales, not R&D personnel. However, technical personnel always elevate technology, while the links that support technology to become products and be sold are largely overlooked, leading them to a lifetime of working for others. In contrast, if one focuses on the other links, they can develop into a boss and hire technical personnel themselves. Up to today, the collapse of a company is rarely due to technical issues; most are due to other reasons such as market, production, quality, etc. Making money is a system, and R&D is just one part of it. It can be said that for most companies in China today, the trade, industry, and technology route is far easier to succeed than the technology, industry, and trade route.

21ic cites a standard technician’s words: now what I teach my colleagues is mostly factory-related knowledge: look, think, do, check. Secondly, it is based on facts, using common sense for reasoning and analysis, letting them abandon so-called high technology and utilize common sense effectively. By doing these two points, various tasks can be accomplished, and not just limited to technology. At the same time, try to avoid doing what everyone else is doing. Since everyone likes to work on embedded systems, we will do supporting devices for embedded systems or devices that the embedded groups cannot produce; only in this way can we obtain high profits.

03

Three Levels of Embedded System Design

21ic has learned that embedded system design has three different levels:
Level 1: Design methods primarily using PCB CAD software and ICE as main tools
This method has been used by embedded application system designers in China from the past to the present, and its steps are to abstract first and then specify.
Abstract design mainly involves refining the functional requirements of the embedded application system into several functional modules, drawing the system function block diagram, and then allocating hardware and software functions to the functional modules.
Specific design includes hardware design and software design. Hardware design mainly involves selecting and combining components needed for each functional module based on performance parameter requirements. The basic principle for selection is to choose the most cost-effective general-purpose components available on the market. If necessary, tests for functionality and performance should be conducted on parts that are uncertain, finding relatively optimized solutions from modules to systems and drawing circuit schematics. A key step in hardware design is using PCB computer-aided design (CAD) software to layout and route the system’s components, followed by PCB processing, assembly, and hardware debugging.
The largest workload is in software design. Software design runs through the entire design process and mainly includes task analysis, resource allocation, module division, flow design and refinement, coding, and debugging. The workload of software design is mainly concentrated on program debugging, making debugging tools critical. The most commonly used and effective tool is the in-circuit emulator (ICE).
Level 2: Design methods based on EDA tool software and EOS as a development platform
With the advancement of microelectronic process technology, various general-purpose programmable semi-custom logic devices have emerged. During hardware design, designers can use these semi-custom devices to gradually replace several standard logic devices that originally needed to be interconnected through PCB wiring with dedicated integrated circuits (ASICs), thus converting the complexity of PCB layout and wiring into the complexity of configurations within semi-custom devices.
However, the design of semi-custom devices does not require designers to have knowledge and experience in semiconductor processes and on-chip integrated circuit layout and wiring. As the scale of semi-custom devices increases and the number of devices that can be integrated grows, the costs of interconnecting devices on the PCB, assembly, and debugging decrease significantly, not only greatly reducing the area of the PCB and the number of connectors but also lowering overall system costs, increasing the flexibility of programmable applications, and more importantly, reducing system power consumption and improving system speed, significantly enhancing system reliability and safety.
Thus, hardware designers have shifted from selecting and using standard general-purpose integrated circuit devices to designing and producing some dedicated integrated circuit devices, supported by various EDA tool software.
Semi-custom logic devices have undergone a development process from Programmable Logic Arrays (PLA), Programmable Array Logic (PAL), Generic Array Logic (GAL), Complex Programmable Logic Devices (CPLD), to Field Programmable Gate Arrays (FPGA). The trend is towards increasing integration and speed, enhancing functionality, more rational structures, and more flexible and convenient usage.
Designers can utilize various EDA tools and standard CPLDs and FPGAs to design and manufacture user-specific large-scale integrated circuits. Then, using a bottom-up design approach, they can layout and wire the integrated circuits designed with semi-custom devices, programmable peripheral devices, and selected ASICs with embedded microprocessors or microcontrollers on the PCB to form a system.
Level 3: Design methods based on IP core libraries using hardware-software co-design technology
After the 1990s, there was a further shift from “integrated circuit” level design to “integrated system” level design. Currently, we have entered the single-chip system (SoC) design stage, which has begun to enter the practical stage. This design method does not simply integrate all integrated circuits needed by the system onto one chip. If this were the case, it would be impossible to meet the high density, high speed, high performance, small size, low voltage, and low power consumption requirements of single-chip systems, especially the low power consumption requirement.
Single-chip system design must start from the overall system performance requirements, closely integrating the microprocessor, model algorithms, chip structure, and peripheral device circuit designs, and completing the entire system’s functionality on a single chip through a new concept-based co-design of system software and hardware. Sometimes the system may also be implemented across several chips because not all systems can be implemented on a single chip; it may also be that the process cost of implementing a certain single-chip system is too high, losing its commercial value. Currently, practical single-chip systems are still simple single-chip systems, such as smart IC cards. However, several well-known semiconductor manufacturers are intensively developing complex single-chip systems such as single-chip PCs.
If the design of a single-chip system starts from scratch, it is neither realistic nor necessary. Because apart from being immature and untested over time, its system performance and quality cannot be guaranteed, it may also lose commercial value due to a long design cycle.
To accelerate the design cycle of single-chip systems and improve system reliability, the most effective approach currently is to use authorized, mature, optimized IP core modules for design integration and secondary development, utilizing Glue Logic Technology (GLT) to embed these IP core modules into SoCs. IP core modules are the foundation of single-chip system design, and the choice of which level of IP core module to purchase should be weighed based on existing foundations, time, funds, and other conditions.
Purchasing hard IP core modules carries the least risk but incurs the highest cost, which is inevitable. However, overall, purchasing IP core modules can not only reduce development risks but also save development costs, as the fees for purchasing IP core modules are generally lower than those for designing and verifying them independently. Of course, not all required IP core modules can be purchased from the market. To monopolize the market, some companies are unwilling to license or transfer the use of key IP core modules they have developed (at least temporarily). In such cases, one has to organize efforts to develop them independently.
These three levels each have their application ranges. From the perspective of application development, for a considerable period, the first two methods will be adopted. The third level design method can only be used by general application personnel for designing simple single-chip systems. Complex single-chip systems can only be designed and implemented by certain large semiconductor manufacturers, and single-chip systems realized using this method are only worth investing in for widely used, large-scale application systems. Some application systems may not be suitable for single-chip implementation due to technical issues or commercial value problems. When they are launched as products, application personnel only need to know how to select them.
Thus, the three levels of design methods will coexist and will not simply replace one another. Junior application designers will mainly use the first method; experienced designers will primarily use the second method; and very specialized designers will use the third method for designing and applying simple single-chip systems. However, all designers can apply dedicated single-chip systems designed using the third method released by major semiconductor manufacturers.

04

Embedded Hardware System Design

Embedded design is a massive project. In terms of software, embedded ARM has been introduced multiple times, which can be viewed in the article “In-depth: Software Architecture Design of Embedded Systems!” Regarding hardware circuit design, 21ic has learned several considerations. First, let’s understand the hardware structure of embedded systems.
We know that the CPU is the soul of this system, and all peripheral configurations are associated with it. This also highlights a characteristic of embedded design: hardware can be trimmed. In designing embedded hardware, the following points need attention.

First, Determine the Power Supply
Comprehensive Guide to Embedded System Design and Development
The role of power supply in embedded systems can be seen as the role of air to the human body, or even more important: the air we breathe contains oxygen, carbon dioxide, and nitrogen, but the content is stable, which is equivalent to various noise in the power supply system. We hope to obtain a pure and stable power supply that meets requirements, but due to various constraints, it remains just a dream. This requires attention in two aspects:
a. Voltage
Embedded systems require various levels of power supplies, such as the common 5V, 3.3V, 1.8V, etc. To minimize ripple in the power supply, LDO devices are used in embedded systems. If using DCDC, not only is the size larger, but its ripple is also a significant issue.
b. Current
For normal operation of embedded systems, a stable and sufficient power supply is required, as well as adequate current. Therefore, when selecting power supply devices, their load should be considered; I generally leave a 30% margin in design.
If it is a multilayer board, the power supply part needs to be split during layout, paying attention to split paths, and attempting to place a certain amount of power supply together. If it is a double-sided board, the line width needs to be considered, and it should be widened as much as possible within the board’s allowance. Suitable decoupling capacitors should be placed as close to the power pins as possible.

Second, Determine the Crystal Oscillator
Comprehensive Guide to Embedded System Design and Development
The crystal oscillator is equivalent to the heart of the embedded system, and its stability directly affects its operational state and communication performance. The common oscillators include passive and active crystal oscillators. First, the oscillation frequency must be determined, and then the type of crystal oscillator must be identified.
a. Passive Crystal Oscillator
The selection of matching capacitors and resistors is generally based on the reference manual. In microcontroller design, plug-in crystal oscillators are often used in conjunction with ceramic capacitors. In ARM, to save space and facilitate wiring, four-corner passive crystal oscillators are often used together with surface-mounted capacitors. Although we are familiar with the matching circuit for fixed crystal oscillators, to ensure everything is in order, we still need to refer to the reference manual to determine capacitor sizes and whether matching resistors are needed, etc.
b. Active Crystal Oscillator
It has better and more accurate clock signals, but compared to passive crystal oscillators, it is more expensive, so cost is another factor to consider in hardware circuit design.
When designing the circuit board, the layout of the crystal oscillator traces should be as close to the chip as possible, with critical signals kept away from clock traces. If conditions permit, grounding protection rings should be added. If it is a multilayer board, critical signals should also be kept away from the traces of the crystal oscillator.

Third, Reserve Test IO Ports
Comprehensive Guide to Embedded System Design and Development
During the debugging phase of embedded systems, when pin resources are abundant, I usually reserve an IO port to connect to an LED or buzzer, laying the groundwork for subsequent software programming. During the operation of the embedded system, the IO interface can be controlled appropriately to determine whether the system is functioning correctly.

Fourth, External Storage Devices
Comprehensive Guide to Embedded System Design and Development
If an embedded system has a power supply, crystal oscillator, and CPU, then this is our familiar minimum system. If the embedded system needs to run a larger operating system, the CPU must have MMU capabilities, and it also needs to connect to external SDRAM and NAND Flash. If the CPU has SDRAM and NAND Flash controllers, then hardware design does not require extensive consideration of address line usage. If there are no relevant controllers, then attention must be paid to address line usage.
This part is a key focus during layout since it is essential to keep relevant signal lines of equal length to ensure equal signal delay, with clock and DQS differential signal lines routed accordingly. Various wiring techniques need to be comprehensively applied during wiring, such as symmetrical distribution with the CPU, daisy chain wiring, T-type wiring, etc., which need to be selected based on the number of memory units; generally, the more units, the more complex the wiring becomes, but knowing the critical points makes everything easier.
Fifth, Functional Interfaces
Comprehensive Guide to Embedded System Design and Development
The most important aspect of an embedded system is controlling peripheral modules through various interfaces to achieve the designer’s intended goals. Common interfaces include serial ports (which can connect to Bluetooth, WiFi, and 3G modules), USB interfaces, network interfaces, JTAG interfaces, audio and video interfaces, HDMI interfaces, etc. Since these interfaces connect with external modules, ensuring electromagnetic compatibility design is a critical task. In addition, during layout, attention should be paid to using differential pairs.

Sixth, Display Screens
Comprehensive Guide to Embedded System Design and Development
This function is listed separately because it is optional. If an embedded system only serves as a connector to peripheral devices, connecting to a computer host or directly to a network, then a screen is unnecessary. However, if the product is a consumer product with frequent user interactions, this must be mentioned.
Capacitive screens are the first choice for embedded screens. In circuit design, attention should be paid to the layout of the touch screen connection lines and display screen connection lines. During wiring, they should be kept as short as possible and close to the main control CPU. At the same time, paired signals should be routed as differential pairs, and RGB control signal lines should be of equal length. The spacing between various signal lines should follow the 3W rule to avoid mutual interference. In screen design, it is essential to ensure power and prevent interference to avoid screen flickering and artifacts.

06

Embedded Product Development Process

Embedded products, like ordinary electronic products, require adherence to some basic processes during development, which is a process from demand analysis to overall design, detailed design to final product completion. However, compared to ordinary electronic products, the development process of embedded products has its particularities. It includes two main parts: embedded software and embedded hardware development, which are not typically involved in the development process of ordinary electronic products. 21ic has learned that the specific R&D process for embedded products is as follows:
Comprehensive Guide to Embedded System Design and Development
Next, we will discuss each stage of the embedded product development process in detail.
Stage 1: Product Requirements
In this stage, we need to clarify where the product requirements come from. For a successful product, we need to meet certain demands. Only when the requirements are clear can our product development goals be defined. In the product requirements analysis stage, we can obtain product requirements through the following channels:
1) Market analysis and research, mainly looking at market demands and the cutting-edge technologies available (from the perspective of developing a product);
2) Customer research and user positioning, obtaining the most accurate product requirements from a wide range of market customers (it is essential to analyze the market, product lifecycle, and upgrade convenience);
3) Profit orientation (cost budgeting);
4) If it is an outsourced project, our client needs to provide the product requirements (obtaining directly from the client, having them sign an agreement);
When a project is completed, if the client suddenly adds requirements or features, it will severely delay the project cycle, significantly increase costs, and may require retesting of all previously tested products, as the original design may not meet current requirements. Therefore, before starting a project, it is best to confirm the requirements with the client and sign an agreement; otherwise, after countless days and nights of hard work, the result will be a mess that cannot be cleaned up!
Stage 2: Product Specification
In the previous stage, we collected all product requirements. In the product specification stage, our task is to refine all the requirements into specific product specifications. For example, for a simple USB to serial cable, we need to determine the product specifications, including:
1) Product appearance;
2) Supported operating systems;
3) Interface forms and supported specifications;
And so on. It is crucial that once the product specifications are formed, we must strictly adhere to them during subsequent development processes. Without a 200% reason, product requirements cannot be changed arbitrarily; otherwise, the development process will inevitably become endless.
The “Product Specification” should consider the following aspects:
1) What hardware interfaces the product requires;
2) What environments the product will be used in, its size, and power consumption. If it is a consumer product, considerations of aesthetics and portability are also essential to determine the board size and whether it is waterproof;
3) Product cost requirements;
4) Explanation of product performance parameters (for example, for switches, if it is a hundred-megabit speed for home and general company use; if it is for a provincial switch, the design speed will certainly be above several tens of gigabits); thus, different performance parameters will impact the design considerations, and the product specifications will naturally differ;
5) National standards, international standards, or industry standards that need to be adapted and complied with;
Stage 3: Overall Product Design Plan
After completing the product specification, we need to understand what feasible plans are available for the product and compare several plans, considering cost, performance, development cycle, development difficulty, and other aspects to ultimately select the most suitable overall design plan for our product.
In this stage, in addition to determining the specific implementation plan, we also need to comprehensively consider the product development cycle, the workload in person-months, what resources or external assistance are required, and the potential risks and countermeasures that may be encountered during development, forming the entire project’s project plan to guide our overall development process.
Stage 4: Product Outline Design
The product outline design mainly further refines the overall design plan, focusing specifically on hardware and software:
Hardware Module Outline Design
The hardware module outline design, primarily from the hardware perspective, confirms the overall system architecture, divides various modules by function, and determines the rough implementation of each module. First, we need to determine which peripheral functions are needed and what work the product must accomplish to select the CPU (note: once the CPU is determined, the surrounding hardware circuit must refer to the solution circuit provided by the CPU manufacturer). Then, based on product functionality, we choose chips, such as whether to use external AD or internal AD, what communication methods to adopt, and what external interfaces are required, with the most critical consideration being electromagnetic compatibility.
In general, the survival cycle of a CPU is 5-8 years. When considering the selection, be cautious not to choose CPUs that are about to be discontinued; otherwise, you might end up in a situation where the product takes 1-2 years to develop, and just when it is completed, the CPU is no longer available, necessitating a complete redesign. Many companies have failed due to this issue.
Software Module Outline Design
The software module outline design stage primarily involves dividing the entire system into functional modules based on system requirements, defining the interfaces between each functional module, and outlining the main data structures within the modules.
Stage 5: Product Detailed Design
Hardware Module Detailed Design
This primarily involves specific circuit diagrams and some specific requirements, including the interaction between PCB and casing, dimensions, and other parameters. Next, we need to complete the entire hardware design based on the hardware module detailed design documentation, including schematic diagrams and PCB layouts.
Software Module Detailed Design
Defining functional function interface, which completes functionality, data structure, global variables, and the calling process of various functional function interfaces during task execution. After completing the software module detailed design, we proceed to the coding stage, completing the entire system’s software coding under the guidance of the software module detailed design.
It is essential to complete the detailed design documentation before entering the actual coding stage for software and the PCB implementation phase for hardware. This way, we can consider everything thoroughly from the design’s inception and avoid repeated modifications during the design process, improving development efficiency. Do not rush to begin actual design steps without completing the detailed design.
Stage 6&7: Product Debugging and Verification
This stage primarily involves adjusting hardware or code, correcting existing issues and bugs to ensure normal operation, and striving to meet the product’s functional requirements as specified in the product specification.
Hardware Part:
1) Visually inspect the PCB for short circuits, component misplacement, or soldering issues;
2) Test whether the resistance of each power supply to ground is normal;
3) Power on and test whether the power supply is functioning correctly;
4) Debug hardware modules in sections, using oscilloscopes, logic analyzers, etc., as necessary.
Software Part:
Verify whether individual software functions are implemented and whether the entire product functionality is achieved.
Stage 8: Testing
Functional testing (if tests fail, there may be bugs);
Stress testing (if tests fail, there may be bugs or unreasonable parameter designs);
Performance testing (extracting product performance parameters for future customer reference, which is part of your product’s features);
Other specialized tests: including industrial-grade tests, such as anti-interference tests, product lifespan tests, moisture resistance tests, high and low-temperature tests (some products may not function properly or may even stop working at very high or low temperatures). Some electronic components may exhibit abnormal parameters under special temperatures, leading to failures or malfunctions. For some devices, they may not start at all in extremely low temperatures, while others may experience physical changes in capacitance or resistance at high temperatures, affecting product quality. This raises a question: what is the difference between industrial-grade products and consumer products? Industrial-grade products must avoid these anomalies and special issues; some products work in deep seas, frigid caves, or hot deserts, or are mounted on bumpy equipment like cars; or need to prevent lightning strikes. This is the distinction between industrial-grade and consumer-grade products, where the latter does not require such extensive testing.
Stage 9: Product
After complete testing and verification in the previous stage, we arrive at the product we have developed successfully. At this stage, we can compare the actual product with the initially formed product specifications to see whether the product fully meets the original specifications after a complete development process or what modifications were made along the way.
Appendix: Embedded Hardware Development Process
Previously, we detailed the R&D process for embedded products. In this section, we will specifically take the hardware portion of embedded products as an example to explain its development process again, hoping that through this section, everyone can gain a deeper understanding of the embedded hardware development process and improve development skills in a more standardized manner in future studies and work. The embedded hardware development process generally follows the diagram below, divided into 8 stages:
Comprehensive Guide to Embedded System Design and Development
The hardware forms of embedded products vary widely, from simple 4-bit/8-bit microcontrollers to 32-bit ARM processors and other dedicated ICs. Additionally, depending on the product’s different requirements, peripheral circuits also differ. Each hardware development process must consider multiple factors based on actual needs to choose the most suitable solution.
Hardware Stage 1: Hardware Product Requirements
Similar to ordinary embedded product requirements. Stage 1: Product Requirements.
Hardware Stage 2: Overall Hardware Design Plan
In a hardware development project, requirements may come from many aspects, such as market product needs or performance enhancement requirements. Therefore, as hardware designers, we need to proactively understand and analyze various needs and select the most suitable hardware plan based on the system’s intended functionality.
In this stage, we need to analyze the feasibility of the overall system design, including the availability of major components in the plan, investment in product development, estimated project development cycle, and risk assessments. We should also proactively select countermeasures for potential problems during development to ensure the smooth completion of hardware.
Hardware Stage 3: Hardware Circuit Schematic Design
Once the system plan is confirmed, we can begin related design work. The schematic design includes both overall system design and detailed design, ultimately producing detailed design documentation and hardware schematics.
The schematic design and PCB design are among the two main tasks for designers. During the schematic design process, we need to plan the internal resources of the hardware, such as system storage space, and implement various peripheral circuit modules. Additionally, we need to carefully consider major peripheral circuits such as power supply and reset circuits. In high-speed designs or special application scenarios, EMC/EMI considerations must also be taken into account.
The power supply is the foundation for ensuring the normal operation of the hardware system, and the design must thoroughly analyze the following: the power supply input that the system can provide; the power outputs needed by the board; the current requirements for each power supply; the efficiency of the power supply circuit; the allowable fluctuation range for each power supply; and the required power-up sequence for the entire power system, etc.
For the stable and reliable operation of the system, the design of the reset circuit is also very important. How to ensure that the system does not reset abnormally under external interference, how to ensure that the system can reset in a timely manner when it runs abnormally, and how to design the reset circuit reasonably to guarantee a complete reset of the system are all considerations we must address during schematic design.
Similarly, the design of the clock circuit is a critical aspect; a poorly designed clock circuit may cause data loss in communication products, generate significant EMI, and even lead to system instability.
Schematic design should embody the principle of “borrowing”! Nowadays, chip manufacturers generally provide reference design schematics, so we should leverage these resources as much as possible, applying our own insights based on a thorough understanding of the reference designs.
Hardware Stage 4: PCB Design
The PCB design stage involves converting schematic designs into actual manufacturable PCB layouts. The mainstream PCB design software includes PADS, Cadence, and Protel.
PCB design, especially high-speed PCB design, requires consideration of EMC/EMI, impedance control, signal quality, etc., placing higher demands on PCB designers. To verify whether the designed PCB meets requirements, PCB simulations may be necessary. Based on simulation results, adjustments to PCB layout and wiring can be made to complete the entire design.
Hardware Stage 5: PCB Fabrication Files and Prototyping
Once PCB layout is complete, in this stage, we need to generate fabrication files that can be recognized by manufacturers, commonly referred to as photoplotter files, and submit these to manufacturers for PCB prototyping. Generally, 1-4 layer boards can be prototyped within a week.
Hardware Stage 6: Hardware Product Soldering and Debugging
Upon receiving the prototype PCB from the manufacturer, we need to check whether the PCB matches our design expectations, whether there are visible short circuits or broken traces, and whether it passes inspection. If so, we will hand over the components purchased earlier to the manufacturer for soldering (if the PCB circuit is not complex, components can also be soldered manually for speed).
Once the PCB is soldered, before debugging it, we must carefully check for visible short circuits and soldering issues, verify that component models are placed correctly, and use a multimeter to measure the resistance from each power supply to ground to check for short circuits. This can prevent damage to the board from powering it on prematurely. A calm mindset is essential during debugging; encountering problems is entirely normal. The task is to compare and analyze to progressively eliminate potential causes until successful debugging is achieved.
Commonly used debugging tools during hardware debugging include multimeters, oscilloscopes, logic analyzers, etc., to test and observe signal voltages and signal quality, ensuring that signal timing meets requirements.
Hardware Stage 7: Hardware Product Testing
Once the hardware product passes debugging, we need to test each requirement against the product requirements document to confirm compliance with the expected specifications. If requirements are not met, the hardware product must be debugged and modified until it meets the product requirements documentation (generally judged against the requirements specification document, except for obvious errors in the requirements specification).
Hardware Stage 8: Hardware Product Completion
The hardware we have developed successfully is complete. A complete hardware product that meets product requirements does not indicate a successful development process; we must also complete the project on time and with high quality according to the established plan to achieve a successful product development process.

-END-

| Article organized to spread related technologies; copyright belongs to the original author |

| If there is any infringement, please contact for deletion |

Previous Good Articles Collection

Heavyweight: Nanjing Integrated Circuit University Established!
90s Malaysian Girl Breaks into Huawei

Very Interesting Electronic Sculpture

Finally

If you find the article good,please share it, which is our motivation to continue updating.
5T Resources Giveaway!Including but not limited to:C/C++, Linux, Python, Java, PHP, Artificial Intelligence, PCB, FPGA, DSP, LabVIEW, Microcontrollers, etc.!
Reply “More Resources” in the public account to get them for free, looking forward to your attention~
Comprehensive Guide to Embedded System Design and DevelopmentComprehensive Guide to Embedded System Design and Development

Leave a Comment