Logiciel moderne pour la voiture. Diagnostic des systèmes de contrôle électronique

Connaissez-vous les types de logiciels de réparation automobile ?

Logiciel de réparation automobile

Les deux principaux types de logiciels de réparation automobile sont utilisés pour le diagnostic ou pour la gestion du front office. Diagnostique Logiciel pour la réparation automobile peut contenir de nombreuses fonctionnalités, notamment des procédures de réparation, des instructions de dépannage, des valeurs de capteur "correctes" connues et d'autres informations précieuses. Ce logiciel est souvent disponible dans certains services de réparation automobile étrangers et nationaux, et peut couvrir marques spécifiques voitures. Des logiciels de réparation automobile spécialisés sont également disponibles pour les outils de diagnostic avancés, dont certains peuvent être des appareils informatiques assez complexes. Le logiciel du panneau avant peut inclure des estimations, des planificateurs et des générateurs de bons de travail. Un réglage logiciel de haute qualité peut être effectué sur http://savtom.com/ où les voitures Mercedes, Audi et BMW sont réparées.

Les mécaniciens ont historiquement obtenu la plupart de leurs informations des manuels de réparation et de leur expérience. Plusieurs éditeurs ont créé informations utiles et l'a fourni sous forme de livre. Les deux principaux types de ces manuels étaient les manuels de diagnostic et les manuels de référence à vitesse fixe. Les manuels de diagnostic contenaient les spécifications et les procédures de réparation, tandis que les manuels à vitesse fixe estimaient combien de temps chaque travail particulier devait être effectué. Avec l'utilisation généralisée des ordinateurs personnels sur le lieu de travail, ce type d'informations a été traduit en logiciels de réparation automobile.

La plupart des ateliers de réparation automobile modernes disposent d'une certaine forme de système d'information informatisé pour aider au diagnostic et à la réparation. La forme la plus simple Il s'agit d'un terminal informatique unique avec un ensemble de disques compacts (CD) ou de disques numériques polyvalents (DVD) contenant des procédures de réparation, des spécifications et d'autres informations. Le technicien peut entrer l'année, la marque et le modèle véhicule dans ce type de système pour trouver des informations spécifiques. Certains de ces programmes incluent également de nombreux schémas de circuits, de fils et éclatés.

Il existe plusieurs variantes de ce type de logiciel de réparation automobile de base. Certains fournisseurs de services fournissent toutes ces informations via une connexion Internet. Ainsi, le technicien ou l'atelier paie une redevance mensuelle pour accéder à des informations toujours à jour. Des services similaires proposent des bulletins critiques et des procédures de réparation qui ont été compilés par de vrais experts dans le domaine. Des logiciels sont également couramment disponibles pour les scanners spécialisés et les équipements de diagnostic, et certains programmes peuvent même transformer un ordinateur portable en outil de numérisation.

L'autre type principal de logiciel de réparation automobile est couramment utilisé à l'avant du bureau. L'estimation équitable des taux est l'une des caractéristiques les plus importantes de ce logiciel. Ce type de logiciel permet au développeur d'une technologie ou d'un service d'entrer l'année, la marque et le modèle de la voiture pour savoir combien de temps les réparations devraient prendre. Ces numéros de taux fixes peuvent ensuite être combinés avec le prix des pièces pour créer une estimation. Ce type de logiciel peut également offrir des fonctionnalités de planification, générer des ordres de travail et suivre les ventes.

Ce n'est un secret pour personne qu'à notre époque de haute technologie, chaque outil innovant basé sur le composant électronique, à commencer par téléphone mobile et se terminant par des satellites, il contient beaucoup de "farce" interne qui contrôle le fonctionnement de l'unité.

À bien des égards, cela s'applique également aux véhicules ou, plus simplement, aux voitures. Les voitures modernes sont tellement bourrées d'électronique que parfois on se demande pourquoi le conducteur est là, en fait.

Dans quelle mesure le système automatique est-il sécurisé ?

Cependant, tout est-il si simple et sûr, est-il possible de faire entièrement confiance, dont la tâche principale est de faciliter le processus de conduite d'une voiture par un conducteur? La réponse est absolument ambiguë.

Cela peut surprendre certains que le logiciel machine moderne composent environ 2,5 fois plus de lignes de code que dans l'un des systèmes d'exploitation informatiques les plus populaires de notre époque - Windows 7.

Quelle conclusion peut-on en tirer ? Très simple - il est évident qu'avec une telle quantité de données, des erreurs peuvent se produire, ce qui affectera par la suite le mauvais fonctionnement de l'ensemble de la voiture.

A titre d'exemple, considérons le cas qui est arrivé à Toyota Prius. Nous n'entrerons pas dans toutes les subtilités du système. contrôle automatique moteur, notera seulement qu'en cas d'erreur système, les semi-conducteurs intégrés à l'installation surchauffent, ce qui conduit au fait que la voiture peut s'arrêter soudainement. Pour mettre à jour l'ensemble du système, vous devrez vous rendre dans un centre de service.

Constructeurs de voitures électriques

Le constructeur de voitures électriques le plus populaire au monde utilise aujourd'hui, dans la pratique, une méthode plus avancée : vous pouvez mettre à jour le système à distance, en utilisant une connexion sans fil. Mais ici, vous devez écouter attentivement l'opinion des experts qui affirment presque à l'unanimité que cette méthode n'est pas aussi sûre qu'elle pourrait le sembler au départ. Pourquoi?

Le fait est que dans ce cas, un bon pirate informatique peut accéder à l'automatisation du véhicule à l'aide d'un ordinateur portable ordinaire. L'expérience des informaticiens Charlie Miller et Chris Valasek, dont ils ont fait la démonstration lors de la conférence Black Hat, en est une confirmation éclatante. Les pirates ont modélisé un piratage d'électronique automobile et ont montré à quoi cela pouvait mener.

C'est bien que ce ne soit qu'un exemple scientifique et que personne n'ait été blessé. Après avoir pris de la vitesse et atteint 80 km / h, la voiture a soudainement cessé de répondre aux commandes, les freins ont complètement échoué et lorsque vous appuyez sur la pédale d'accélérateur, la voiture a tourné brusquement vers la droite.

La chose la plus étonnante s'est produite après cela : le logiciel qui a fait les dégâts système automatique contrôle de la voiture, à gauche avec une vitesse fulgurante, si extérieurement tout cela ressemblait à un accident. E

cette expérience de pirates a montré que tout n'est pas si parfait dans le monde de l'électronique automobile moderne et que les constructeurs automobiles doivent encore travailler dur pour présenter la combinaison optimale de confort et de sécurité lors de l'utilisation de l'électronique systèmes embarqués auto.

Un article sur ce qu'est le logiciel d'une voiture moderne. Fonctionnalités, processus et technologies du logiciel. A la fin de l'article - vidéo intéressante environ 5 hacks de vie nécessaires pour votre voiture !


Contenu de l'avis :

Pas une seule voiture moderne n'est concevable sans un remplissage électronique, qui implique un logiciel complexe. Lorsque nous conduisons une voiture, nous ne pensons presque jamais aux processus qui s'y déroulent - c'est comme si un ordinateur n'avait pas de moniteur, ce qui signifie que les actions des programmes ne sont pas visualisées, comme si elles n'existaient pas. Mais ils sont.

Fonctionnalités du logiciel automobile


Les logiciels modernes pour votre voiture sont très fiables : le taux de défaillance du matériel n'est que d'une opération sur un million au cours de l'année, et ce, à titre exceptionnel.

Désormais, dans chaque voiture, il y a plusieurs unités de commande électronique (ECU) - unité de commande électronique, ECU, qui interagissent les unes avec les autres via le réseau électronique de la voiture.


L'interaction entre ces blocs est réalisée grâce à des architectures de bus, qui sont une combinaison de contrôleurs - CAN, réseau de zone de contrôleur, ainsi qu'un réseau spécial conçu pour transférer des informations à partir d'équipements numériques spéciaux - MOST, systèmes orientés médias trans, FIexRay , ainsi que le système d'interconnexion local (LIN).

Si vous comparez les bus répertoriés avec Ethernet, qui est conçu pour les PC, ils fonctionnent à une vitesse réduite, car la quantité de données traitées dans les voitures est faible. Mais cette quantité minimale d'informations devrait être traitée littéralement en quelques millisecondes.

À mesure que le nombre d'ECU augmente, les concepteurs doivent créer des structures de réseau intra-véhicule plus complexes qui nécessitent une conception plus complexe. Considérez la principale différence entre les logiciels de voiture et les technologies numériques à d'autres fins.

  • Fiabilité - les programmes système de la voiture dans un réseau d'ECU assez complexe doivent fonctionner de manière aussi fiable que possible pendant toute la durée d'utilisation;
  • Sécurité des fonctions exécutées - L'ESC et le système de freinage doivent fonctionner sans faute, ce qui implique déjà des exigences assez sérieuses pour le logiciel et le processus même de leur développement ;
  • La vitesse d'interaction - la réaction instantanée des composants électroniques de la voiture (jusqu'à quelques millisecondes) est impossible sans une architecture logicielle spéciale et des systèmes d'exploitation avancés;
  • Architecture robuste - Le logiciel du véhicule doit mettre en œuvre une compatibilité électromagnétique maximale et ne pas être influencé par des signaux déformés ;
  • Connexion des nœuds du cycle électromécanique.
Attention: Ne réinitialisez jamais l'ECU pendant le fonctionnement !

Principaux composants de l'ECU


L'ECU est une carte assez complexe qui, en plus du microcontrôleur, comporte des centaines d'autres éléments. Voyons les principaux détails.
  1. Convertisseur analogique-numérique (ADC) - cet équipement est conçu pour prendre des indicateurs de certains capteurs automobiles, ainsi que du capteur d'oxygène. Le fait est que le processeur ne peut percevoir que des valeurs numériques et, par exemple, l'indicateur d'oxygène ne produit que des signaux électriques avec une tension de 0 à 1,1 V. L'ADC convertit ces données en un nombre binaire de dix bits, et cela devient compréhensible pour le processeur.
  2. Driver - un programme conçu pour contrôler les équipements numériques en convertissant les signaux.
  3. Convertisseur numérique-analogique (DAC) - Fournit des signaux analogiques pour faire fonctionner certains composants du moteur d'une voiture.
  4. Puce de communication - Ces puces permettent la mise en œuvre d'une grande variété de normes de communication disponibles dans le véhicule. Il existe plusieurs normes de ce type en production, mais la plus courante d'entre elles est CAN - Controller-Area Networking. Il fournit une vitesse de 500 k/bps, ce qui est essentiel pour les modules qui effectuent jusqu'à des centaines d'opérations par seconde.

Processus et technologie


Beaucoup de choses ont changé depuis le premier logiciel automobile. Si au départ un seul fabricant pouvait contrôler le logiciel, maintenant c'est devenu presque impossible.

Initialement, au siècle dernier, l'assembleur était utilisé comme logiciel. Le langage C a commencé à se répandre dans les années 90. Robert Bosch et de nombreux autres fournisseurs ont commencé à développer des logiciels en utilisant Mathlab/Simulink et ASCET (Control and Simulation Technology).

Systèmes Bus CAN rendre le logiciel de la voiture assez compliqué. La raison en est qu'elles n'excluent pas l'interaction entre les programmes de différents écus. Voitures modernes luxe peut contenir un réseau complexe de 80 ECU avec jusqu'à 100 millions de lignes de code au total.

En raison du fait que les logiciels deviennent de plus en plus complexes, il est nécessaire d'améliorer les technologies d'ingénierie. Par conséquent, des processus techniques et organisationnels parallèles émergent constamment dans l'industrie pour la prise de conscience de nouveaux logiciels.


Les solutions d'ingénierie au niveau des processus et de l'architecture deviennent également l'une des principales conditions de l'externalisation. En relation avec cette circonstance, Bosch a commencé à donner quelques développements sur le côté depuis le début des années 90 du siècle dernier.

Actuellement, les travaux sur les logiciels pour voitures sont menés par plusieurs associations réparties dans le monde. Et ce type d'activité est devenu tout à fait optimal pour les entreprises.

Gestion du moteur


Les réglementations environnementales internationales exigent une réduction de la consommation de carburant des véhicules et une réduction correspondante de la pollution environnement. Cela signifie qu'il existe une incitation à améliorer la transmission afin de garantir un calage d'injection de carburant et une réponse d'allumage optimaux.

Par exemple, moderne moteurs diesel capable d'injecter du carburant au moins sept fois par cycle. Et cela pour un moteur quatre cylindres qui développe une vitesse de rotation jusqu'à 1800 tr/min, soit 420 fois par seconde. Tout cela nécessite de nouvelles fonctionnalités logicielles et des algorithmes de contrôle plus réfléchis pour minimiser les écarts.

La nécessité de réduire les émissions nocives nécessitait des technologies et des méthodes mises à jour pour assurer le trafic. Par conséquent, en ajoutant moteurs conventionnels combustion interne, à l'avenir, la part du lion du marché automobile sera détenue par les moteurs électriques et les développements mixtes. De plus, les besoins en carburants alternatifs vont augmenter, et les logiciels seront le principal levier pour résoudre ces problèmes.

Le module de commande du moteur est le centre de commande de la transmission du véhicule. Les modules modernes ont plus de 2 mégaoctets de mémoire numérique et fonctionnent à des fréquences d'horloge allant jusqu'à 160 MHz. Dans le même temps, des programmes jusqu'à 300 000 lignes de code sont impliqués.

Standardisation


Lors du développement de programmes numériques modernes pour les voitures, les spécificités de l'ECU requis sont clairement prises en compte : le logiciel interagit directement avec certains équipements. Avec le nombre toujours croissant de calculateurs automobiles, le recyclage des logiciels devient une priorité. Par conséquent, dans une telle situation, il convient de parler de standardisation.

En 2003, Automotive Open System Architecture (Autosar) a été formé par des fournisseurs et des fabricants. La création d'une organisation a pour but la mise en place d'un standard commun et de technologies communes. Aujourd'hui, cette association comprend plus de 150 organisations qui développent ensemble une nouvelle structure d'ECU, un logiciel de base et tout le nécessaire pour créer un logiciel fonctionnel.

Ce type d'interaction implique la création de nœuds indépendants du matériel. Cela permet aux fournisseurs et aux fabricants de partager des conceptions et de les réutiliser sur une grande variété de calculateurs.

La structure d'Autosar se compose de plusieurs couches abstraites dans lesquelles le logiciel est séparé du matériel. Tout en haut se trouve le logiciel d'application qui implémente toutes les activités d'application. Vous trouverez ci-dessous le logiciel nominal de base. Il garantit l'abstraction nécessaire du matériel de la même manière qu'il le fait, par exemple, dans un ordinateur personnel. L'environnement d'exécution Autosar (environnement d'exécution en temps réel) communique au sein de l'ECU.

La technologie Autosar contient tous les formats et modèles d'échange nécessaires qui sont utilisés à la fois pour générer et configurer l'infrastructure, et pour la décrire.

Le plus courant dans industrie automobile moderne sont les bus Ethernet (haut débit). Ils prennent en charge de manière fiable les communications entre les calculateurs, ainsi que de nouvelles options, y compris celles concernant la sécurité.


Les informations les plus diverses sont analysées qualitativement afin de créer un modèle objectif de l'environnement, qui permet la formation de nouvelles options qui soutiennent le conducteur dans les cas extrêmes.

Par exemple, le conducteur a été distrait par un passager alors qu'il conduisait. Dans ce cas, l'application détecte le freinage du véhicule qui précède, puis avertit le conducteur ou applique automatiquement les freins. Soit dit en passant, le conducteur peut même ne pas être immédiatement au courant de la présence d'un tel logiciel jusqu'à ce qu'il se trouve dans une position dangereuse.

Conclusion

Dans l'industrie automobile d'aujourd'hui, les conditions préalables à la prochaine révolution scientifique et technologique dans le domaine du développement de logiciels émergent, car les technologies numériques et les possibilités de l'électronique grand public commencent à être utilisées plus largement. Le moment est proche où les voitures commenceront à se connecter à Internet via tous les appareils fixes et appareils mobiles. Et en même temps, le rôle des logiciels libres dans la résolution de problèmes pratiques augmentera.

5 astuces de vie nécessaires pour une voiture - dans la vidéo :

09.04.2010 Jürgen Messinger

Lorsque vous achetez votre prochaine voiture, il contiendra déjà 100 millions de lignes de code, et il faut sans doute penser aux difficultés liées à la création de tels systèmes logiciels embarqués et aux nouvelles opportunités qu'ils ouvrent dans l'industrie automobile.

Les premiers systèmes électroniques sont apparus dans les voitures dans les années 60, et grâce à cela, l'industrie a sérieusement changé - aujourd'hui, l'électronique, et en particulier les logiciels, sont les principales sources d'innovation. Le logiciel améliore la fiabilité avec des sécurité passive comme l'anti-blocage système de freinage et le contrôle électronique de la stabilité (ESC). De plus, on assiste aujourd'hui à une intégration progressive de l'électronique grand public dans les voitures.

Les logiciels automobiles sont très fiables, avec un taux d'échec inférieur à un échec par million d'opérations par an. La plupart des gens ne réalisent même pas à quel point caractéristiques automobiles sont contrôlés par un logiciel aujourd'hui, cependant, il est peu probable que vous ayez déjà entendu parler d'un écran bleu dans une voiture, bien que ce soit une chose courante pour un PC.

Désormais chaque voiture dispose de plusieurs calculateurs électroniques (unité de commande électronique, calculateur), interconnectés par un réseau intra-machine. Ces blocs communiquent via des architectures de bus standard telles que le réseau de zone de contrôleur (CAN), le réseau de communication de données systèmes multimédias(transport de systèmes orientés médias, MOST), FlexRay et interconnexion locale (réseau d'interconnexion local, LIN). Par rapport à Ethernet, largement utilisé pour la communication PC, ces bus sont plus lents - dans les voitures, la quantité d'informations envoyées est faible, mais elle doit être traitée en quelques millisecondes. L'augmentation du nombre de calculateurs pouvant être reliés entraîne le besoin de structures de réseau intra-machine plus complexes nécessitant des architectures électriques et électroniques spécifiques. Les principales différences entre les logiciels automobiles et les autres types de logiciels :

  • fiabilité: les systèmes logiciels automobiles doivent fonctionner de manière exceptionnellement fiable dans un réseau complexe d'ECU pendant toute la durée de vie du véhicule ;
  • sécurité fonctionnelle : des fonctions telles que le système de freinage antiblocage et l'ESC nécessitent un fonctionnement sans problème, ce qui impose des exigences élevées aux processus de développement de logiciels et aux programmes eux-mêmes ;
  • fonctionnement en temps réel : une réponse rapide (de la microseconde à la milliseconde) aux événements externes nécessite des systèmes d'exploitation optimisés et une architecture logicielle spéciale ;
  • consommation minimale de ressources : tout ajout de ressources informatiques ou de mémoire augmente le coût des produits, ce qui, avec des millions d'exemplaires, se traduit par beaucoup d'argent ;
  • architecture robuste : les logiciels automobiles doivent résister à la distorsion du signal et maintenir la compatibilité électromagnétique ;
  • contrôle électromécanique en boucle fermée.

Il faut tenir compte du fait qu'un redémarrage en cours de fonctionnement est inacceptable pour la plupart des calculateurs.

Processus et technologie

Alors qu'au début des logiciels automobiles, un seul développeur pouvait le contrôler, cela n'est plus possible.

Dans les années 70, les développeurs de logiciels automobiles ont commencé à utiliser l'assembleur, et C est devenu le langage principal dans les années 90. Au cours de la dernière décennie, Robert Bosch et d'autres fournisseurs automobiles ont commencé à développer des logiciels basés sur des modèles en utilisant ASCET (Advanced Simulation and Control Engineering Toolkit) et Mathlab/Simulink.

Les systèmes de bus tels que CAN ajoutent beaucoup de complexité logicielle car ils permettent des interactions entre les programmes de différents calculateurs. Dans les voitures de luxe, un réseau complexe relie désormais jusqu'à 80 calculateurs, avec un total pouvant atteindre 100 millions de lignes de code. À mesure que les logiciels deviennent plus complexes, il est nécessaire d'améliorer les méthodes d'ingénierie et, par conséquent, l'industrie propose aujourd'hui des processus organisationnels et techniques parallèles pour le développement de logiciels. Bosch a une longue histoire de développement basé sur des processus d'ingénierie et de contrôle conformes au niveau CMMI 3, et sa division d'ingénierie en Inde a déjà atteint le niveau 5.

Le développement basé sur les processus et sur l'architecture est également une condition préalable à une externalisation efficace - Bosch a commencé à externaliser certains développements dès le début des années 1990. Aujourd'hui, le travail sur les logiciels est effectué par plusieurs divisions géographiquement dispersées, ce qui s'est avéré très bénéfique pour les entreprises, par exemple, plus de 6 000 ingénieurs travaillent désormais dans une succursale située en Inde.

Gestion du moteur

Le défi de réduire la consommation de carburant et les émissions substances dangereuses stimule les activités d'amélioration de la transmission, par exemple le respect des réglementations internationales sur les émissions nécessite le respect des temps d'injection et d'allumage garantis. De plus, la fréquence des injections a considérablement augmenté - moderne systèmes diesel peut injecter des gouttelettes de carburant plus petites qu'une tête d'épingle jusqu'à sept fois par course, soit 420 fois par seconde pour un moteur à quatre cylindres tournant à 1800 tr/min. Cela nécessite des algorithmes de contrôle très sophistiqués et des fonctions logicielles pour minimiser les écarts.

La nécessité de réduire les émissions de CO2 a conduit à une diversité de technologies de propulsion - en plus des moteurs à combustion interne traditionnels, les systèmes hybrides et la propulsion électrique auront à terme une part de marché importante. La consommation de carburants alternatifs augmentera également et les logiciels seront la clé de la mise en œuvre de ces technologies.

Module de commande du moteur - la base du contrôle de la transmission voitures. Les modules modernes contiennent plus de 2 Mo de mémoire flash intégrée, fonctionnent à des vitesses d'horloge allant jusqu'à 160 MHz, exécutant des programmes jusqu'à 300 000 lignes de code.

Fournisseurs systèmes automobiles vendent souvent plus de produits que n'importe quel constructeur automobile individuel. En 2008, l'un des plus grands constructeurs automobiles a vendu environ 9 millions de véhicules pour une production mondiale de 65 millions, tandis que les ventes des fournisseurs de systèmes logiciels sont beaucoup plus élevées. Cela donne aux fournisseurs de systèmes plus de marge pour réaliser des économies de coûts production de masse requis pour le développement de logiciels à grande échelle.

Standardisation

En règle générale, les systèmes logiciels pour voitures sont développés en tenant compte des spécificités d'un ECU particulier - le logiciel est étroitement lié au matériel correspondant. Avec l'augmentation du nombre de calculateurs automobiles, la réutilisation des logiciels devient de plus en plus importante, ce qui nécessite une normalisation.

En 2003, les principaux constructeurs et fournisseurs automobiles ont créé la communauté Automotive Open System Architecture (Autosar, www.autosar.org) pour développer une norme mondiale unique et les technologies associées. Aujourd'hui, Autosar compte plus de 150 membres, et ce partenariat développe l'architecture du calculateur, le logiciel sous-jacent, la méthodologie et les interfaces standardisées pour les logiciels d'application. Le partenariat promeut le développement de composants indépendants du matériel, permettant aux constructeurs automobiles et aux fournisseurs de partager et de réutiliser des logiciels sur différents calculateurs.

L'architecture du calculateur Autosar comporte plusieurs niveaux d'abstraction qui séparent le logiciel du matériel (voir figure). Au niveau supérieur se trouve le logiciel d'application qui implémente toutes les fonctions de l'application. Vient ensuite le logiciel sous-jacent, qui fournit l'abstraction nécessaire du matériel, similaire à un système d'exploitation pour PC. L'environnement d'exécution en temps réel (Autosar Runtime Environment, RTE) fournit toutes les interactions à la fois au sein de l'ECU et entre eux. La méthodologie Autosar comprend des modèles et des formats d'échange utilisés pour décrire, configurer et générer l'infrastructure.

Aujourd'hui, l'électronique représente environ 80 % des innovations fonctionnelles dans l'industrie automobile, et le logiciel est la clé de la plupart d'entre elles. Alors que les logiciels représentent une part de plus en plus importante du coût du matériel, les modèles commerciaux commencent à prendre en compte la nécessité de réutiliser et de partager les logiciels.

Les bus à grande vitesse tels qu'Ethernet sont de plus en plus utilisés dans l'industrie automobile aujourd'hui pour prendre en charge la communication entre les calculateurs et le développement de nouvelles fonctions, en particulier dans le domaine de la sécurité. Les informations provenant de diverses sources sont analysées et consolidées pour former un modèle complet de l'environnement, permettant le développement de nouvelles fonctionnalités qui assistent le conducteur dans situations critiques. Par exemple, si l'attention du conducteur est distraite par un passager, l'application peut détecter que la voiture qui précède ralentit et en avertir le conducteur, ou appliquer indépendamment le freinage. Le conducteur ne sera jamais au courant de l'existence d'un tel logiciel jusqu'à ce qu'une situation dangereuse se présente.

Dans l'industrie automobile d'aujourd'hui, une autre révolution logicielle est mûre - le multimédia et l'électronique grand public commencent à être utilisés de plus en plus largement. Les voitures seront connectées à Internet et à toutes sortes d'appareils mobiles et domestiques, avec une part de plus en plus importante de solutions logicielles gratuites.



Confrontés aux réalités de l'industrie de l'ingénierie, la plupart des développeurs de logiciels ne peuvent pas faire face - les produits avec lesquels ils doivent travailler sont trop étroitement spécialisés. Ce n'est pas pour vous la création de programmes pour les internautes, les ordinateurs, et même Applications mobiles, et donc les débutants se sentent comme Thomas du film "The Maze Runner". Regardez environ 50 secondes de la bande-annonce et vous comprendrez le choc que subissent ceux qui s'occupent pour la première fois du développement de logiciels pour voitures.

Tout ce que vous avez, c'est beaucoup de termes et d'outils dont vous n'avez aucune idée. Lorsque lors d'un entretien dans un companie automobile J'ai demandé quel IDE ils utilisent, l'intervieweur, pour le moins, n'a pas aimé ma question. Je suis habitué à Visual Studio et j'espérais naïvement que quelque chose de similaire serait nécessaire ici pour le développement de logiciels embarqués. Je n'avais aucune idée de ce qui m'attendait ! Juste une mer d'outils petits et sérieux (en termes de complexité) qui avaient besoin d'une autre victime.

Et lorsqu'il s'agit de développement de logiciels pour voitures, les outils ne sont en aucun cas le seul problème. Il est presque impossible de trouver de la littérature pour débutants ou simplement du matériel pédagogique concernant les bibliothèques ou l'architecture des programmes correspondants. Le terme " Didacticiel” et ne semble pas approprié du tout, car l'industrie automobile est une communauté très fermée. Et vous pouvez difficilement appeler cela une communauté, car avec une telle concurrence, personne ne devrait deviner comment vous créez tel ou tel programme. Pour apprendre au moins quelque chose sur les outils et mécanismes individuels de ce segment de programmation, vous pouvez vous inscrire à des cours d'un coût prohibitif, mais votre entreprise doit être prête à débourser une somme considérable et il faudra au moins plusieurs semaines pour acquérir l'expérience que vous avez besoin maintenant. Dommage qu'il soit si difficile de comprendre les spécificités de la programmation pour l'industrie automobile, j'ai donc décidé de consacrer mon article à ce sujet.

Parce que j'ai dû alterner entre les applications Web/de bureau et le développement intégré, j'ai eu une connaissance directe des défis auxquels sont confrontés les débutants traitant principalement du premier bloc de produits. Des difficultés similaires se posent aux programmeurs qui n'ont jamais rencontré les spécificités de l'industrie automobile.

Dans cet article et le suivant, j'aimerais parler du fonctionnement du micrologiciel de la voiture, ainsi que des profondeurs de l'architecture exotique des applications embarquées.

Quels sujets allons-nous aborder ?

  • Comment le micrologiciel améliore-t-il les performances du véhicule ?
  • Comment les applications intégrées vous permettent-elles de conduire une voiture ?
  • Quelles sont les limites typiques du processeur ?
  • Comment se déroule le processus de traitement continu des données des capteurs grâce aux programmes intégrés ?
  • Comment ce logiciel est-il structuré et comment les applications individuelles interagissent-elles entre elles pour contrôler la voiture ?
Je répondrai à ces questions par une étude de cas, ainsi qu'un aperçu de la conception de l'architecture logicielle embarquée. Nous prendrons comme exemple un système de direction entièrement électronique. Ce n'est pas un vrai modèle, mais en termes de structure, il est, en principe, similaire à ce que vous avez probablement vu dans votre voiture. Nous parlerons davantage de l'architecture, puis passerons à un schéma simplifié qui révèle l'essence de la fonctionnalité du système.

Vous pouvez regarder une vidéo sur le développement d'un système de direction électronique. D'ailleurs, j'ai aussi travaillé dans cette équipe.

Ce modèle est partiellement contrôlé par logiciel. Partiellement signifie qu'un logiciel spécialisé n'aide que le conducteur, mais c'est lui qui a le contrôle total du système.

Supposons que nous voulions créer un système de direction entièrement électronique dans lequel le volant n'est pas directement relié aux roues. Au lieu de cela, le capteur mesure l'angle de braquage et envoie les données résultantes à notre programme. Dans la terminologie automobile, il s'agit d'un servo. Vous ne le croirez pas, mais grâce à Nissan, un modèle à servocommande est déjà apparu sur le marché.

Le logiciel est alimenté par un petit processeur ou, pour être plus précis, un microcontrôleur connecté au capteur via un réseau.

Lorsque le conducteur tourne le volant, grâce à un capteur qui transmet en permanence des informations sur l'angle de rotation actuel, le logiciel reçoit un signal correspondant. Par exemple, si le conducteur tourne le volant de 90° vers la droite, pendant une seconde le signal du capteur est traité selon le principe suivant :

De plus, le logiciel gère également le travail moteur électrique, qui déplace la crémaillère de gauche à droite et dans le sens opposé, ce qui signifie que l'angle de rotation des roues avant de la voiture change. En conséquence, le logiciel peut diriger la machine vers la gauche ou vers la droite. La communication entre le microcontrôleur exécutant le logiciel et le moteur est assurée par unité électronique unité de commande (ECU), qui comprend le microcontrôleur lui-même et un amplificateur de puissance qui régule le système d'alimentation du moteur. Ainsi, notre programme fait varier l'alimentation en courant dans le moteur et la position de la crémaillère change dans le sens souhaité.


Unité de commande électronique (ECU)

À condition que le firmware fonctionne correctement, lorsque vous tournez le volant, la position de la crémaillère change presque instantanément.


Volant - bleu, crémaillère de direction- rose (env.)

Il devient clair que même le traitement de l'information ici n'obéit ni à la logique de la programmation événementielle, comme c'est le cas avec les applications usuelles de l'interface utilisateur graphique, ni aux lois des fichiers batch. Au lieu de cela, un traitement continu et rapide des données entrantes est requis. Si le programme prend trop de temps pour analyser les données du capteur, la crémaillère de direction et les roues avant de la voiture se déplaceront avec un retard, et le conducteur le remarquera. Probablement en cas d'urgence cela vous fera perdre le contrôle du véhicule., par exemple, en tournant le volant pour éviter un obstacle, la machine ne répondra pas immédiatement à la manœuvre. Cette spécificité augmente les exigences de synchronisation des programmes pour les voitures, en particulier si l'on tient compte des performances limitées du processeur des unités de commande électroniques standard.

Au fur et à mesure que nous poursuivrons cette série, nous examinerons les architectures logicielles qui résolvent ces problèmes, et nous espérons que ce matériel aidera les aspirants développeurs embarqués automobiles à apprendre les bases de ce domaine beaucoup plus rapidement.