400-727-0801
Welcome to hugecore smart agriculture!
SI
System Integration
2024年10月30日 09:53|Read 312

First, embedded software features

(1) Real-time: specific environment; Quick start

(2) Concurrent processing of asynchronous events: multitasking; randomness

(3) Application/operating system integration: VxWorks; Linux

(4) Application solidification: immutability

(5) Practicability: industry-oriented; Directed development

(6) Applicability: It can be cut down to adapt to the application

(7) Robustness: fault tolerance

(8) enough: cost, resources

(9) Credibility: safety, safety, reliability, etc

Two, embedded software development process of each stage of the task division

Embedded development should have the following eight processes and task division:

(1) Determine the requirements of embedded software:

Confirm functional requirements: basic functions/extended functions, hardware corresponding to software functions

Identify non-functional requirements: appearance, size, power consumption, cost, real-time, security, reliability and other developer-oriented requirements

(2) Microprocessor and related hardware equipment

Determine the embedded processor: application scale, domain

Determine the functional hardware: processor-dependent, application function can be determined

Determine the target board design requirements: supporting chip, appearance, size, power consumption, cost

Choose an operating system

Identify the source: Write your own, use an off-the-shelf system

Identify choices: application domain, real-time CPU support, features, cost, resource footprint, language support

(4) Determine the software architecture: the core factors

(5) Select the development platform

Determine the development platform: consider the operating system, coding tools, simulation tools, debugging tools

(6) Embedded software design

Determine software design: task partitioning, constraint (real-time, security, etc.) assurance

7.Code tests

Code, cross-compile, download and debug, test

Software testing

Basic approach: Similar to general software testing

Consider specificity, reliability testing, real-time testing, concurrency testing, and resource occupancy testing

Iii. Embedded software development method

Embedded software development methods include:

(1) Language description

(2) Formal description

(3) Flow chart

(4) Structure diagram

Pseudo-code

(6) Finite state machine

Iv. Basic concepts of finite state machine

(1) Basic concept: Finite state machine (FSM) is a mathematical model to describe the control state and state transition of a system driven by action/event behaviors of finite states. FSM realizes the following two basic functions: determining the internal state transition of the state machine according to the current state and input conditions; The output signal sequence is generated according to the current state and the input condition.

(2) The specific implementation method

At any given time, the system can only be in one of a given number of states. When it receives an input event (action), the state machine produces an output, possibly accompanied by a state transition.

Fifth, embedded software and hardware co-design process

Embedded software and hardware co-design process is as follows:

(1) Requirements acquisition and analysis of embedded systems

(2) software and hardware function division, design system architecture: selection of processor and related peripheral equipment, operating system, development platform and hardware and software division and overall system integration

(3) Hardware structure design, software system design

(4) Detailed design of software and hardware

(5) Software code development, software testing and debugging

(6) Software and hardware joint tuning and system integration

(7) Simulation verification and test of the system

8.Implement the final system

Vi. Hardware reliability design of embedded system

In the design of hardware system, should first according to the system performance indicators and functional requirements to determine the structure of the system form, division of software and hardware division of labor, determine the specific circuit form and component selection design work. The following factors should be considered:

(1) Simplify the scheme

(2) Avoid one-sided pursuit of high performance indicators and too many features

(3) Reasonable division of software/hardware functions

(4) Replace analog circuits with digital circuits whenever possible

(5) Turn passive into active

Seven, embedded system software reliability design types

Generally, there are four types of software reliability design for embedded systems: fault-avoiding design, fault-checking design, fault-correcting design and fault-tolerant design

Viii. Hardware test process and software test process of embedded system

Hardware debugging

(1) Hardware detection before power on: whether the connection is correct, whether the power supply is short circuit and the installation of components.

(2) Power detection: Observe whether the circuit has abnormal conditions (such as smoke phenomenon), static debugging, dynamic debugging.

(3) Static debugging: generally refers to the test without input signal, or only add a fixed level signal under the condition of the test, the multimeter can be used to measure the potential of each point, compared with the theoretical value, to determine whether the voltage and current in the circuit is normal.

(4) Dynamic debugging: add the appropriate signal to the circuit, according to the direction of the signal, sequentially detect the output signal of each point, if abnormal phenomenon is found, the reason should be analyzed, and troubleshooting, and then debugging, until the requirements are met.

(5) Environment test, vibration test, product appearance test, etc.

Software debugging:

(1) Module testing (unit testing) : to complete the verification of the smallest software design unit, only on this basis can the subsequent testing work be guaranteed. White-box testing is mainly used to ensure maximum coverage of units and to find errors in coding and detailed design.

(2) Integration testing: is the unit tested modules according to the structure of the software together as a system or a subsystem to test. It is mainly used to find errors in the architecture and architectural design of the program.

(3) System test and validation test: the system test software system and other resources (hardware, human-computer interaction information resources and databases, etc.) are integrated to form a complete computer application system for testing.

Nine, electromagnetic compatibility

Electromagnetic compatibility refers to the state in which the performance of equipment or system is not degraded in the electromagnetic environment. Electromagnetic compatibility, on the one hand, requires that there is no serious interference source in the system, on the other hand, requires that the equipment or system itself has better anti-electromagnetic interference.