Modern software for the car. Diagnostics of electronic control systems

Do you know the types of car repair software?

Car repair software

The two main types of car repair software are used for diagnostics or front office management. Diagnostic software for auto repairs can contain many functions, including repair procedures, troubleshooting instructions, known "correct" values \u200b\u200bfor sensors, and other invaluable information. This software is often available in selected foreign and domestic car repair services, and may cover specific brands cars. Dedicated car repair software is also available for modern diagnostic tools, some of which can be quite complex computing devices. Front panel software can include estimates, planners, and work order generators. High-quality software configuration can be performed at http://savtom.com/ where Mercedes, Audi and BMW cars are repaired.

Mechanics have historically derived most of their information from repair manuals and experience. Several publishers have created useful information and provided it in the form of a book. The two main types of these books were diagnostic manuals and fixed speed reference books. Diagnostic guides contained repair specifications and procedures, while fixed speed guides assessed how long each specific job would take to complete. With the widespread use of personal computers in the workplace, this type of information has been translated into car repair software.

Most modern auto repair facilities have some sort of computerized information system to assist with diagnosis and repair. The simplest form this is one computer terminal with a set of compact discs (CDs) or digital versatile discs (DVDs) that contain repair procedures, specifications, and other information. Technician can enter year, make and model vehicle into this type of system to find specific information. Some of these programs also include a variety of schematic, wired, and exploded diagrams.

There are several variations of this basic type of car repair software. Some service providers provide all of this information via an internet connection. Thus, a technician or store pays a monthly fee to access information that is always up to date. Services like this offer critical bulletins and repair procedures that have been compiled by real experts in the field. Software is also usually available for specialized scanners and diagnostic equipment, and some programs can even turn a laptop into a scan tool.

Another main type of car repair software is commonly used in the front of the office. A fair rate estimate is one of essential functions of this software. This kind of software allows the developer of the technology or service to enter the year, make and model of the vehicle in order to know how long any repair should take. These fixed rate numbers can then be combined with the price of the parts to create an estimate. This type of software can also offer planning functionality, generate work orders, and track sales.

It's no secret that in our high-tech age, every innovative tool based on the electronic component, starting with mobile phone and ending with satellites, it contains a lot of internal "stuffing", which controls the processes of operation of the unit.

In many respects this also applies to vehicles or, more simply, cars. Modern cars are so stuffed with electronics that sometimes you wonder why there is, in fact, a driver here.

How secure is an automatic system?

However, is everything so simple and safe, can you completely trust, whose main task is to facilitate the process of driving a car by a driver? The answer is absolutely ambiguous.

It may surprise someone that the software modern car make up lines of code, which are about 2.5 times more than in one of the most popular computer operating systems of our time - Windows 7.

What conclusion can be drawn from this? Very simple - it is obvious that with such an enormous amount of data, errors can occur, which, subsequently, will affect the malfunctioning of the entire car.

As an example, let us give a case that happened with Toyota Prius... We will not delve into all the subtleties of the system. automatic control engine, he will only note that in the event of a system error, the semiconductors built into the installation overheat, and this leads to the fact that the car may suddenly stop. To update the entire system, you will need to visit a service center.

Electric car manufacturers

The most popular manufacturer of electric cars in the world today, in practice, uses a more advanced method: you can update the system remotely using a wireless connection. But here you should carefully listen to the opinion of experts, who practically unanimously claim that this method is not as safe as it might initially seem. Why?

The fact is that in this case, a good hacker can get access to the vehicle's automation using a regular laptop. The experiment of computer specialists Charlie Miller and Chris Valasek, which they demonstrated at the Black Hat conference, was a vivid confirmation of this. The hackers simulated hacking into the car's electronics and showed what it could lead to.

It's good that this was just a scientific example and no one was hurt. After picking up speed and reaching 80 km / h, the car suddenly stopped responding to commands, the brakes completely failed, and when the accelerator pedal was pressed, the car turned sharply to the right.

The most amazing thing happened after that: the software that did the harm automatic system control of the car, with lightning speed left, so outwardly it all looked like an accident. E

that hacker experiment showed that not everything is so perfect in the world of modern car electronics and automakers still have a lot of work to do in order to provide the optimal combination of comfort and safety when using electronic onboard systems car.

An article about what the software of a modern car is. Features of software, processes and technologies. At the end of the article - an interesting video about 5 necessary life hacks for your car!


Review content:

No modern car can be imagined without electronic filling, which requires complex software. When driving a car, we almost do not think about what processes are taking place inside it - there is no monitor like a computer, which means that the action of programs is not visualized, as if they did not exist. But they are.

Features of car software


The modern software for your vehicle is highly reliable, with an equipment failure rate of only one in a million operations over the course of a year, and then as an exception.

Now in every car there are several electronic control units (ECU) - electronic control unit, ECU, which interact with each other through the electronic network of the car.


The interaction between these blocks is carried out thanks to bus architectures, which are a set of controllers - CAN, controller area network, as well as a special network designed to transfer information from special digital equipment - MOST, media-oriented systems trans, FIexRay, as well as the Local interconnect system, (LIN).

If we compare the listed buses with Ethernet, which is intended for a PC, they work at a reduced speed, since the amount of data processed in cars is small. But this minimal amount of information should be processed literally in a matter of milliseconds.

As the number of ECUs grows, developers have to create sophisticated structures of in-car networks that require more complex structures. Let's look at the main difference between car software and digital technologies for other purposes.

  • Reliability - the system programs of a car in a rather complex ECU network must work as reliably as possible during the entire period of use;
  • Safety of the functions performed - ESC and the braking system must operate flawlessly, and this already implies quite serious requirements for software and for the very process of their development;
  • Interaction speed - instant reaction of electronic components of a car (up to milliseconds) is impossible without a special software architecture and advanced operating systems;
  • Robust architecture - vehicle software must maximize electromagnetic compatibility and resist the effects of distorted signals;
  • Communication of nodes of the electronic-mechanical cycle.
Attention: Never reboot the ECU during operation!

The main components of the ECU


The ECU is a rather complex board with hundreds of other elements besides the microcontroller. Let's take a look at the main details.
  1. Analog-to-digital converter (ADC) - this equipment is designed to take readings from certain automotive sensors, and from the oxygen sensor as well. The fact is that the processor is able to perceive only digital values, and, for example, the oxygen indicator produces only electrical signals with a voltage from 0 to 1.1V. The ADC converts this data to a ten-bit binary number so that the processor can understand it.
  2. Driver is a program designed to control digital equipment by converting signals.
  3. Digital to Analogue Converter (DAC) - Provides analog signals to start specific components of a vehicle engine.
  4. Communication Chip - These chips enable a wide variety of communication standards found in a vehicle. There are several such standards in production, but the most common of them is CAN - Controller-Area Networking. It provides a speed of 500 k / bit per second, which is extremely necessary for modules that perform up to hundreds of operations per second.

Processes and technology


Much has changed since the first car software was introduced. If initially only one manufacturer could control the software, now it has become almost impossible.

Initially, assembly language was used as software in the last century. The Xi language began to spread in the 90s. Robert Bosch and many other vendors have started developing software using Mathlab / Simulink and ASCET (control and simulation technologies).

Systems cAN bus make car software quite complex. The reason is that they do not exclude interactions between programs of different ECUs. Modern cars luxury class can contain a complex network of 80 ECUs with a total of up to 100 million lines of code.

Due to the fact that software is constantly becoming more complex, it becomes necessary to improve engineering technologies. Therefore, parallel technical and organizational processes are constantly emerging in the industry for the consciousness of new software.


Engineering solutions at the process and architecture level are also becoming one of the main conditions for outsourcing. In connection with this circumstance, Bosch began to give some developments to the side since the beginning of the 90s of the last century.

Currently, work on software for vehicles is carried out by several associations distributed around the world. And this kind of activity has become quite optimal for the business.

Engine management


International regulations on environmental issues require a reduction in fuel consumption of vehicles and a corresponding reduction in pollution environment... This means that there is incentive to improve the transmission in order to ensure optimal fuel injection and ignition timing.

For example, modern diesel engines are capable of injecting fuel in a minimum amount of seven times per stroke. And this is for a four-cylinder engine, which develops a rotational speed of up to 1800 rpm, is 420 times per second. All this requires new software functions and more sophisticated control algorithms in order to minimize any deviations.

The need to reduce harmful emissions demanded updated technologies and methods of traffic support. Therefore, supplementing conventional engines internal combustion, in the future, electric motors and mixed designs will own the lion's share of the car market. In addition, the need for alternative fuels will increase, and software will be the main lever to address these challenges.

The vehicle transmission control center is the engine control module. Modern modules have a volume of more than 2 megabytes of digital memory and operate at a clock frequency of up to 160 MHz. This involves programs up to 300 thousand lines of code.

Standardization


When developing modern digital programs for cars, the specificity of the required ECU is uniquely taken into account: the software directly interacts with certain equipment. With the ever-increasing number of automotive ECUs, software recycling is becoming a priority. Therefore, in such a situation, it is appropriate to talk about standardization.

In 2003, the Automotive Open System Architecture (Autosar) was formed by suppliers and manufacturers. The purpose of the organization is to fulfill a common standard and uniform technologies. Today this association includes over 150 organizations, which together develop the new ECU structure, basic software and everything needed to create working software.

This kind of interaction involves the creation of nodes that are independent of the hardware. This allows suppliers and manufacturers to exchange designs and reuse them on a wide variety of ECUs.

Autosar's design consists of several abstract layers, in which software is separated from hardware. At the very top is the application software that implements all applied activities. Below is the basic, nominal software. It guarantees the desired abstraction from the hardware, just as it happens, for example, in a personal computer. The Autosar Runtime Environment handles communications within the ECU.

The Autosar technology contains all the necessary exchange formats and templates that are used both for generating and configuring the infrastructure, and for describing it.

The most common in modern automotive industry are (high-speed) Ethernet buses. They reliably support communication between ECUs as well as new options, including with regard to safety.


The most diverse information is qualitatively analyzed in order to create an objective model of the environment, which makes it possible to form new options that support the driver in extreme cases.

For example, a driver was distracted by a passenger while driving. In this case, the application detects the braking of the vehicle in front, then warns the driver or activates the braking on its own. By the way, the driver may not even immediately know about the presence of such software until he finds himself in a dangerous position.

Conclusion

In the modern automotive industry today there are prerequisites for the next scientific and technological revolution in the field of software development, because digital technologies and the capabilities of consumer electronics are beginning to be used more widely. The time is not far off when cars will begin to connect to the Internet through all landlines and mobile devices... And at the same time, the role of free software for solving practical problems will increase.

5 necessary life hacks for a car - in the video:

09.04.2010 Jurgen Messinger

When will you buy your next car, there will already be 100 million lines of code in it, and you should probably think about the difficulties associated with creating such on-board software systems and the new opportunities that they open in the automotive industry.

The first electronic systems appeared in cars back in the 60s, and thanks to this, the industry has changed dramatically - today electronics, and especially software, are the main sources of innovation. The software enhances reliability with active and passive safetysuch as anti-lock brake system and electronic stability control (ESC). In addition, there is a gradual integration of consumer electronics into cars today.

Automotive software is highly reliable with a failure rate of no more than one failure per million operations per year. Most people do not even realize how many automotive functions are controlled by software today, however, you have hardly ever heard of a blue screen in a car, although this is common on a PC.

Nowadays, every car has several electronic control units (ECUs), interconnected by an in-machine network. These blocks communicate via standard bus architectures such as controller area network (CAN), data network multimedia systems (media-oriented systems transport, MOST), FlexRay and local interconnect (local interconnect network, LIN). Compared to Ethernet, which is widely used for PC communication, these buses are slower - in cars, the amount of information sent is small, but it must be processed in a few milliseconds. The increase in the number of ECUs connected leads to the need to create more complex structures of intra-machine networks, requiring a special electrical and electronic architecture. The main differences between automotive software and other types of software are:

  • reliability: automotive software systems must work extremely reliably in a complex ECU network throughout the entire life of the vehicle;
  • functional safety:functions such as anti-lock braking system and ESC require trouble-free operation, which places high demands on software development processes and on the programs themselves;
  • work in real time: fast response (from microseconds to milliseconds) to external events requires optimized operating systems and a special software architecture;
  • minimum resource consumption: any addition of computing resources or memory increases the cost of products, which, with millions of copies, translates into a lot of money;
  • robust architecture: automotive software must be able to withstand signal distortion and maintain electromagnetic compatibility;
  • closed loop electronic mechanical control.

It should be borne in mind that rebooting during operation is unacceptable for most ECUs.

Processes and technology

If in the early years of the emergence of automotive software it could be controlled by one developer, now this is no longer possible.

In the 70s, car software developers started using assembler, and C became the mainstream language in the 90s. Over the past decade, Robert Bosch and other automotive suppliers have begun to develop model-based software using ASCET (Advanced Modeling and Control Engineering Toolkit) and Mathlab / Simulink.

Bus systems such as CAN add serious software complexity as they allow interactions between programs on different ECUs. In luxury cars, a complex network now links up to 80 ECUs, with a combined total of up to 100 million lines of code. As software becomes more complex, there is a need to improve engineering methods, and accordingly, the industry today offers parallel organizational and technical processes for software development. Bosch has a long history of CMMI Level 3 engineering and management process development, and its engineering division in India has already achieved Level 5.

Process and architecture-driven development is also a prerequisite for effective outsourcing - Bosch began outsourcing some of its development back in the early 1990s. Today, work on software is carried out by several geographically distributed divisions, which turned out to be very useful for business, for example, now more than 6 thousand engineers work in a branch located in India.

Engine management

The goal of reducing fuel consumption and emissions of harmful substances stimulates activities to improve the transmission, for example, meeting the requirements of international legislation on emissions of harmful substances requires compliance with the guaranteed fuel injection and ignition timing. In addition, the injection frequency has increased significantly - modern diesel systems can inject fuel droplets less than a pinhead up to seven times per stroke, which is 420 times per second for a four-cylinder engine rotating at 1800 rpm. This requires very sophisticated control algorithms and software functions to minimize deviations.

The need to reduce CO2 emissions has led to a variety of propulsion technologies - in addition to traditional combustion engines, over time, a significant market share will belong to hybrid systems and electric motors. The consumption of alternative fuels will also increase, and software will be the key to realizing these technologies.

The engine control module is the basis for the transmission control of passenger cars. Modern modules contain over 2 MB of built-in flash memory, operate at a clock frequency of up to 160 MHz, executing programs up to 300 thousand lines of code.

Suppliers automotive systems often sell more products than any single automaker. In 2008, one of the largest auto makers sold about 9 million vehicles with a global production volume of 65 million, while sales of software systems vendors are much higher. This gives system providers more room to generate savings through mass productionrequired for large-scale software development.

Standardization

As a rule, software systems for cars are developed taking into account the specifics of a particular ECU - the software is closely related to the corresponding equipment. With the growing number of automotive ECUs, software reuse is becoming increasingly important, and this requires standardization.

In 2003, leading automakers and suppliers formed the Automotive Open System Architecture community (Autosar, www.autosar.org) to develop a single global standard and related technologies. Today, Autosar has over 150 companies and is developing the ECU architecture, underlying software, methodology and standardized interfaces for application software through this partnership. The partnership promotes the development of hardware independent components, allowing automakers and suppliers to share and reuse software across different ECUs.

The Autosar ECU architecture has several levels of abstraction that separate software from hardware (see figure). The upper level contains the application software that implements all application functions. Next comes the basic software, which provides the necessary abstraction from hardware, much like a PC operating system. The Autosar Runtime Environment (RTE) provides all interactions both within the ECU and between them. The Autosar methodology includes templates and exchange formats used to describe, configure and generate infrastructure.

Electronics today accounts for about 80% of functional innovation in the automotive industry, and software is the key to most of it. As software becomes an increasingly significant part of the cost of hardware, business models are beginning to take into account the need to reuse and exchange software.

High speed buses such as Ethernet are increasingly used today in the automotive industry to support communication between ECUs and develop new functions, especially in the area of \u200b\u200bsafety. Information from various sources is analyzed and consolidated to form a complete model of the environment, allowing the development of new functions that support the driver in critical situations... For example, if the driver's attention is distracted by a passenger, then the application can determine that the vehicle in front is braking and warn the driver about this, or activate braking autonomously. The driver will never know about the existence of such software until a dangerous situation arises.

In the automotive industry, the next software revolution is ripe today - multimedia and consumer electronics are increasingly being used. Cars will connect to the Internet and all kinds of mobile and home-installed devices, with the share of free software solutions growing steadily.



When faced with the realities of the mechanical engineering industry, most software developers fail - there are very highly specialized products that they have to work with. This is not for you to create programs for Internet users, computers or even mobile applications, so newcomers feel like Thomas from the Maze Runner movie. Watch about 50 seconds of the trailer and you will understand the shock experienced by those who are dealing with the development of software for cars for the first time.

All you have is a variety of terms and tools that you have no idea about. When during an interview in one car company I asked what IDE they use, the interviewer didn't like my question, to put it mildly. I'm used to Visual Studio, and naively hoped that something similar would be needed here for embedded software development. I had no idea what awaited me! It's just a sea of \u200b\u200bsmall and serious (in terms of complexity) tools that needed another victim.

And when it comes to software development for cars, tools are by no means the only problem. It is almost impossible to find literature for beginners or simply teaching materials regarding libraries or the architecture of the corresponding programs. The term " tutorial”Sounds completely inappropriate, because the automotive industry is a very closed community. And you can hardly call it a community, because with such competition, no one should guess how you create this or that program. To learn at least something about the individual tools and mechanisms of this programming segment, you can enroll in prohibitively expensive courses, but your company must be ready to shell out a considerable sum and it will take at least several weeks to get the experience you need right now. It's a pity that it is so difficult to understand the specifics of programming for the automotive industry, and therefore I decided to devote my article to this particular topic.

Since I have repeatedly had to switch from creating applications for Internet users / computers to developing embedded software and vice versa, I know firsthand about the problems faced by newbies dealing mainly with the first block of products. Similar difficulties arise for programmers who have never encountered the specifics of the automotive industry.

In this and the next article, I would like to talk about how embedded software for cars works, as well as look into the depths of the exotic architecture of embedded applications.

What topics will we cover?

  • How does embedded software improve vehicle performance?
  • How do built-in apps allow you to drive a car?
  • What are the typical CPU limitations?
  • How does the built-in software process the sensor data continuously?
  • How is this software structured and how do the individual applications interact to drive the vehicle?
I will answer these questions by looking at a specific example, and at the same time give an overview on the development of an embedded software architecture. As an example, we will take a fully electronic steering system. This is not a real model, but in structure it is, in principle, similar to what you most likely saw in your car. We will talk in more detail about the architecture, and then move on to a simplified diagram that reveals the essence of the system's functionality.

You can watch a video on the development of an electronic steering system. By the way, I also worked on this team.

This model is partially software driven. Partially means that specialized software only helps the driver, but it is he who has full control over the system.

Let's say we want to create a fully electronic steering system in which the steering wheel is not directly connected to the wheels. Instead, the sensor measures the steering angle and sends this data to our program. In automotive terminology, this is a servo. Believe it or not, Nissan has already hit the market with a servo model.

The software is powered by a tiny processor or, more precisely, a microcontroller connected to a sensor over a network.

When the driver turns the steering wheel, thanks to a sensor that constantly transmits information about the current steering angle, the software receives a corresponding signal. For example, if the driver turns the steering wheel 90 ° to the right, within a second the sensor signal is processed according to the following principle:

In addition, the software also manages the work electric motor, which moves the gear rack from left to right and in the opposite direction, which means that the angle of rotation of the front wheels of the car changes. Accordingly, the software can steer the car left or right. Communication between the microcontroller running the software and the electric motor is provided by electronic unit control unit (ECU), which includes the microcontroller itself and the power amplifier that regulates the engine power supply system. Thus, our program varies the current flow to the motor and the position of the rack changes in the desired direction.


Electronic control unit (ECU)

Provided the firmware is working correctly, the rack position changes almost instantly when the steering wheel is turned.


The steering wheel is blue steering rack - pink (approx.)

It becomes clear that even information processing here does not obey either the logic of event-driven programming, as is the case with the usual graphical user interface applications, or the laws of batch files. Instead, it requires continuous, timely processing of incoming data. If the program takes too long to analyze the sensor readings, the steering rack and the front wheels of the car will move with a delay, and the driver will notice this. Most likely in an extreme situation this will result in loss of vehicle controlfor example, when you turn the steering wheel to avoid an obstacle, the machine will not immediately react to the maneuver. This specificity increases the requirements for timing indicators for car programs, especially given the limited processor performance of standard electronic control units.

In continuation of the series, we will look at the software architecture that allows you to eliminate these problems, and, hopefully, with the help of these materials, novice developers of embedded applications for cars will learn the basic principles of this area much faster.