2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Le réseau embarqué est un système de réseau utilisé pour connecter divers systèmes embarqués afin qu'ils puissent se transférer des informations et partager des ressources. Les systèmes embarqués utilisent différentes technologies de connexion dans différentes situations, telles que les réseaux d'informations domestiques dans les salles familiales, les bus de terrain dans le domaine de l'automatisation industrielle et les réseaux de communication mobiles dans les systèmes embarqués tels que les équipements d'information mobiles. utilisé pour connecter des systèmes embarqués.
Fieldbus est une technologie de contrôle informatique développée au milieu des années 1980 après les systèmes de contrôle d'instruments analogiques, les systèmes de contrôle numérique centralisés et les systèmes de contrôle distribués. C'est également l'un des points chauds du développement technologique dans le domaine du contrôle d'automatisation. souvent appelé réseau local informatique dans le domaine de l'automatisation industrielle.
Fieldbus est un réseau qui interconnecte les appareils de terrain tels que les capteurs numériques, les convertisseurs, les instruments industriels et les actionneurs de commande avec les unités de contrôle des processus industriels et les stations d'exploitation sur le terrain. Il présente les caractéristiques d'une numérisation complète, d'une décentralisation, d'une transmission bidirectionnelle et multi-branches. C'est le produit du développement du réseau de contrôle industriel au niveau du terrain.
Fieldbus est un réseau de contrôle sous-jacent à faible bande passante situé au bas des structures de contrôle de production et de réseau. Il est donc également appelé réseau sous-jacent (Infranet). Il est principalement utilisé dans les sites de production pour réaliser une communication numérique bidirectionnelle, série et multi-nœuds entre les équipements de mesure et de contrôle.
Le système de contrôle de terrain (FCS) est un système de contrôle qui utilise un bus de terrain pour connecter divers contrôleurs et équipements d'instruments. Ce système de contrôle décentralise complètement les fonctions de contrôle vers le site, réduisant ainsi les coûts d'installation et de maintenance. En fait, FCS est un système de contrôle distribué ouvert, interopérable et entièrement décentralisé.
Le système de contrôle de terrain intégré intègre un microprocesseur dédié dans un instrument de mesure et de contrôle traditionnel, lui permettant de disposer de capacités de calcul et de communication numériques. Il utilise des paires torsadées, des lignes électriques ou des fibres optiques comme bus pour connecter plusieurs instruments de mesure et de contrôle à un réseau. Selon des protocoles de communication standard, il connecte plusieurs équipements de mesure et de contrôle informatisés situés sur site et entre les instruments sur site et la surveillance à distance. La transmission de données et l'échange d'informations sont réalisés entre ordinateurs, formant divers systèmes de contrôle automatique adaptés aux besoins réels. En bref, le système de contrôle par bus de terrain transforme les appareils de mesure et de contrôle distribués individuels en nœuds de réseau, en utilisant le bus de terrain comme lien pour faire de ces appareils distribués un système de réseau capable de communiquer entre eux et d'effectuer ensemble des tâches de contrôle automatique. Grâce à la technologie des bus de terrain, les équipements de contrôle distribués traditionnels sont devenus un tout qui communique entre eux et travaille en collaboration.
Le réseau d'information domestique est un réseau local qui connecte les ordinateurs personnels, les appareils électroménagers, les compteurs d'eau, d'électricité, de gaz, les équipements d'éclairage, les équipements réseau et les équipements de sécurité au sein de la maison. Sa fonction principale est de contrôler de manière centralisée les appareils mentionnés ci-dessus et de les connecter à Internet pour partager les ressources et services du réseau. En outre, le réseau d'information domestique peut également être étendu à l'ensemble de la maison, voire à l'ensemble de la communauté, devenant ainsi la base de communautés résidentielles et de sociétés intelligentes. Dans le système de réseau d'information domestique, tous les appareils domestiques sont intelligents, y compris les appareils électroménagers, les compteurs d'eau, d'électricité, de gaz et les équipements d'éclairage. Ils peuvent communiquer entre eux et accéder à Internet via la passerelle domestique. La réalisation d'un réseau d'information domestique offre aux gens un environnement domestique plus sûr, plus pratique et plus confortable. Par exemple, lorsque le propriétaire sort, la porte sera automatiquement fermée et verrouillée, le système de surveillance sera automatiquement activé et le propriétaire sera automatiquement informé de toute anomalie dans la maison. Divers appareils de la maison peuvent être contrôlés à tout moment. à tout moment et en tout lieu, et les données de l'instrument peuvent être automatiquement téléchargées.
Le réseau d’information familiale doit résoudre deux problèmes fondamentaux :
(1) Comment connecter les appareils électroménagers, l'eau, l'électricité, les compteurs de gaz, les équipements d'éclairage, etc.
(2) Comment réaliser l'interopérabilité entre ces appareils connectés, c'est-à-dire que les appareils du réseau d'information domestique peuvent automatiquement demander des services en cas de besoin, et que les appareils associés peuvent fournir des services ou accepter des demandes et les traiter. Le réseau d'information domestique peut adopter différentes structures topologiques, telles que le type de bus, la structure en étoile, etc. Le réseau d'informations domestique peut être divisé en plusieurs sous-réseaux de contrôle et sous-réseaux de données. Le sous-réseau de contrôle est similaire à un bus de terrain. Il s'agit d'un réseau à faible bande passante et est principalement utilisé pour envoyer et recevoir des informations de contrôle. Le sous-réseau de données a des besoins en bande passante plus élevés et les appareils qui y sont connectés doivent transmettre une grande quantité d'informations de données.
Ces dernières années, avec le développement rapide des communications par téléphone mobile et la popularisation rapide des ordinateurs personnels, une variété d'ordinateurs portables, tels que les ordinateurs portables, les ordinateurs portables, les ordinateurs de poche, etc., ont rapidement augmenté. La communication de données entre ordinateurs fixes peut se développer rapidement. ne répond plus aux besoins. Les gens espèrent transmettre et échanger des informations à tout moment et en tout lieu, c'est pourquoi les moyens de transmission de données ont commencé à passer du filaire au sans fil, et la communication de données mobile sans fil a émergé. Le réseau de communication de données sans fil est un système de réseau qui transmet des données par ondes radio. Il est développé sur la base d'une communication de données filaire et peut réaliser une communication de données à l'état mobile.Grâce aux réseaux de communication de données sans fil, aux téléphones intelligents, aux PDA et
Les ordinateurs portables peuvent transférer des informations entre eux et accéder à Internet. Les réseaux de communication de données sans fil sont divisés en réseaux sans fil à courte portée et Internet sans fil. Les réseaux sans fil à courte portée comprennent principalement 802.11, Bluetooth, IrDA et HomeRF. L'Internet sans fil ou Internet mobile utilise principalement deux technologies de connexion sans fil : l'une est la technologie d'accès sans fil mobile, telle que GSM, GPRS, CDPD (Cellular Digital Packet Data), etc., l'autre est la technologie d'accès sans fil fixe, y compris les communications par micro-ondes et à spectre étalé ; , transmission optique par satellite et sans fil, etc.
Avec le développement rapide d'Internet et de la technologie intégrée, de plus en plus d'appareils d'information, tels que les visiophones Web, les décodeurs, les appareils d'information et autres produits de systèmes intégrés, doivent être connectés à Internet pour partager la commodité, vitesse et commodité offertes par Internet. Ressources et services d'information omniprésents, nommément technologie Internet intégrée. La technologie Internet embarquée offre de larges perspectives d'application dans les domaines du transport intelligent, des systèmes d'entretien ménager, de la domotique, de l'automatisation industrielle, des points de vente et du commerce électronique.
1.Méthode d'accès Internet embarquée
Les appareils intégrés intègrent la pile de protocoles TCP/IP et les logiciels associés. Ces appareils peuvent être utilisés comme nœuds sur Internet, se voir attribuer une adresse IP et être directement interconnectés à Internet. Les caractéristiques de ce mode d'accès sont :
2.Pile de protocole TCP/IP intégrée
Les fonctions remplies par la pile de protocoles TCP/IP intégrée sont les mêmes que celles de la pile de protocoles TCP/IP complète. Cependant, en raison des limitations de ressources du système intégré, certains indicateurs et interfaces de la pile de protocoles intégrée peuvent être différents de ceux ordinaires. piles de protocoles.
(1) L'interface d'appel de la pile de protocoles intégrée est différente de celle de la pile de protocoles ordinaire. L'interface socket de la pile de protocoles ordinaire est standard et le logiciel d'application a une bonne compatibilité. Cependant, la surcharge de code, de traitement et de stockage liée à la mise en œuvre de l'interface standardisée est énorme. Par conséquent, lorsque la plupart des fabricants ont transplanté des interfaces de pile de protocoles standard dans des systèmes embarqués, ils ont apporté divers degrés de modification et de simplification et ont établi des piles de protocoles dédiées efficaces. Les API qu'ils ont fournies étaient différentes des API des piles de protocoles générales. .
(2) La personnalisation de la pile de protocoles intégrée. La plupart des piles de protocoles intégrées sont modulaires. Si l'espace mémoire est limité, elles peuvent être installées dynamiquement en cas de besoin et omettent plusieurs éléments non essentiels pour les systèmes embarqués, tels que le transfert d'interface et un ensemble complet d'outils de service Internet.
(3) Compatibilité de la plate-forme de la pile de protocoles intégrée. Généralement, la pile de protocoles est étroitement intégrée au système d'exploitation et la plupart des piles de protocoles sont implémentées dans le noyau du système d'exploitation. La mise en œuvre de la pile protocolaire dépend des services fournis par le système d'exploitation et a une mauvaise portabilité. La mise en œuvre de la pile de protocoles embarquée dépend généralement peu du système d’exploitation et est facile à transplanter. De nombreuses piles de protocoles intégrées commerciales prennent en charge plusieurs plates-formes de systèmes d'exploitation.
(4) Haute efficacité de la pile de protocoles intégrée. Les implémentations de piles de protocoles intégrées occupent généralement moins d'espace, nécessitent une mémoire de données plus petite et sont efficaces en termes de code, réduisant ainsi les exigences de performances du processeur.
Avec le développement de la technologie embarquée, les bases de données embarquées évoluent progressivement vers des applications. Essentiellement, les bases de données embarquées sont développées à partir de bases de données générales et exécutées sur divers appareils embarqués ou mobiles. Elles montrent leur supériorité dans les systèmes embarqués car elles sont limitées par l'environnement d'application du système embarqué lui-même. Les bases de données embarquées ont des caractéristiques différentes des bases de données générales. .
En règle générale, un système de gestion de base de données intégré est un système de gestion de base de données utilisé sur des appareils embarqués. Étant donné que la plupart des systèmes de gestion de bases de données intégrés sont des appareils d'information mobiles, tels que des ordinateurs de poche, des PDA, des appareils montés sur véhicule et d'autres appareils de communication mobiles, les appareils intégrés à position fixe sont rarement utilisés. Par conséquent, les bases de données intégrées sont également appelées bases de données mobiles ou mobiles. bases de données. Base de données mobile intégrée.Sa fonction principale est de résoudre les problèmes de gestion des données dans un environnement informatique mobile. La base de données mobile est une partie importante de l'environnement informatique mobile.
Base de données distribuée.
L'introduction de la technologie des bases de données dans les systèmes embarqués est principalement due aux lacunes suivantes dans le développement d'applications de gestion de l'information directement sur des systèmes d'exploitation embarqués ou sur du bare metal :
(1) Toutes les applications nécessitent un travail répété de gestion des données, ce qui augmente la difficulté et le coût du développement.
(2) Le partage de données entre les applications est médiocre.
(3) Les logiciels d'application ont une faible indépendance, une faible portabilité et une faible réutilisabilité.
L'introduction de systèmes de gestion de bases de données dans les systèmes embarqués peut résoudre dans une large mesure les problèmes ci-dessus et améliorer l'efficacité du développement et la portabilité des systèmes d'application.
Le système de base de données intégré est un système complet qui comprend un système de gestion de base de données intégré et couvre les appareils de communication mobiles, les postes de travail ou les ordinateurs de bureau et les serveurs de données. Cette caractéristique du système et l'environnement d'utilisation du système ont une grande influence sur le système de gestion de base de données intégré. L'impact le plus important affecte directement la structure du système de gestion de base de données intégré. Les caractéristiques de son environnement d’utilisation peuvent être simplement résumées comme suit :
(1) L'appareil est mobile à tout moment. Les bases de données intégrées sont principalement utilisées sur les appareils d'information mobiles. L'emplacement de l'appareil évolue souvent avec l'utilisateur.
(2) Le réseau est fréquemment déconnecté et l'emplacement des appareils mobiles ou des terminaux mobiles change souvent pendant l'utilisation. Il est également affecté par des facteurs tels que les méthodes d'utilisation, l'alimentation électrique, la communication sans fil et les conditions du réseau. Par conséquent, la connexion réseau n'est généralement pas maintenue en permanence, mais est souvent déconnectée et connectée de manière active ou passive.
(3) Les conditions du réseau sont diverses. En raison des changements fréquents d'emplacement des appareils d'information mobiles, les appareils d'information mobiles et les serveurs de données peuvent être connectés via différents systèmes de réseau à des moments différents. Ces réseaux peuvent différer en termes de bande passante réseau, de coût de communication, de délai de réseau, de qualité de service, etc.
(4) Capacités de communication asymétriques En raison des contraintes de ressources des appareils mobiles, les capacités de communication réseau entre les appareils mobiles et les serveurs sont asymétriques. Les capacités d'envoi des appareils mobiles sont très limitées, ce qui rend la bande passante de communication descendante du serveur de données vers l'appareil mobile et la bande passante montante de l'appareil mobile vers le serveur de données très différentes.
Un système de gestion de base de données intégré complet se compose de plusieurs sous-systèmes, notamment le système de gestion de base de données principal, le serveur de synchronisation, le système de gestion de base de données intégré, le réseau de connexion et d'autres sous-systèmes, comme le montre la figure 12-6.
(1) Système de gestion de base de données intégré. Le système de gestion de base de données intégré est un système de gestion de base de données mono-utilisateur fonctionnellement indépendant. Il peut fonctionner indépendamment du serveur de synchronisation et du système de gestion de base de données principal pour gérer les données dans le système intégré. Il peut également être connecté au serveur principal via le serveur de synchronisation pour exploiter les données dans la base de données principale. une variété de façons de synchronisation des données.
(2) Serveur de synchronisation. Le serveur de synchronisation est le hub de connexion entre la base de données embarquée et la base de données principale, assurant la cohérence des données dans la base de données embarquée et la base de données principale.
(3) Serveur de données. La base de données principale et le système de gestion de base de données du serveur de données peuvent utiliser des systèmes de bases de données à usage général à grande échelle tels qu'Oracle ou Sybase.
(4) Connectez-vous au réseau. Le serveur de base de données principal et le serveur de synchronisation sont généralement connectés via un réseau fixe à large bande passante et à faible latence. La connexion entre l'appareil mobile et le serveur de synchronisation peut être un réseau local sans fil, une connexion infrarouge, une ligne série universelle ou un réseau public selon les conditions spécifiques de l'appareil.
1.La clé des bases de données mobiles embarquées dans les applications
Dans les applications pratiques, les bases de données mobiles intégrées doivent résoudre des problèmes tels que la cohérence des données (réplication), le traitement efficace des transactions et la sécurité des données.
(1) Cohérence des données. Une caractéristique notable de la base de données mobile intégrée est que la connexion entre les terminaux de données mobiles et le serveur de synchronisation est une connexion faible, c'est-à-dire une faible bande passante, un long délai, une instabilité et une déconnexion fréquente. Afin de prendre en charge les opérations des utilisateurs sur la base de données dans des environnements faibles, la méthode de réplication optimiste (Optimistic Replication ou Lazy Replication) est désormais couramment utilisée pour permettre aux utilisateurs d'opérer des copies de données sur le cache local. Une fois le réseau reconnecté, les informations de modification des données sont échangées avec le serveur de base de données ou d'autres terminaux de données mobiles, et la cohérence des données est restaurée grâce à la détection et à la coordination des conflits.
(2) Traitement efficace des transactions. Les transactions mobiles sont effectuées dans un environnement mobile avec des déconnexions fréquentes et prévisibles. Afin de garantir le bon déroulement des transactions actives, de nouvelles stratégies et algorithmes de gestion des transactions doivent être conçus et mis en œuvre. Déterminez la priorité du traitement des transactions en fonction des conditions de connexion réseau, et les demandes de transaction avec des vitesses de connexion réseau élevées seront traitées en premier ;
Déterminez si la transaction est migrée en fonction du temps de fonctionnement, c'est-à-dire que toutes les opérations de transaction à long terme seront migrées vers le serveur pour exécution, et il n'est pas nécessaire de garantir que le réseau est toujours fluide pour déterminer si la transaction est téléchargée ; pour l'exécution ou le téléchargement après l'exécution de la copie des données en fonction de la taille des données ; stratégie de journalisation améliorée pendant le traitement des transactions, s'il faut utiliser le mécanisme de découverte du serveur ou le mécanisme de déclaration du client lors du traitement de la déconnexion du réseau ; mouvement de transaction (comme les requêtes liées à la localisation).
(3) Sécurité des données. Dans de nombreux domaines d'application, les appareils intégrés sont des appareils clés pour la gestion ou le traitement des données dans le système, de sorte que le système de base de données sur l'appareil intégré exerce un contrôle plus strict sur les autorisations d'accès. Dans le même temps, de nombreux appareils embarqués présentent une mobilité et une portabilité élevées et des environnements de travail non fixes, qui comportent également des facteurs potentiellement dangereux. En outre, certaines données présentent un niveau élevé de confidentialité, de sorte que la sécurité des données personnelles doit être pleinement garantie en termes de prévention des collisions, des interférences du champ magnétique, de la perte et du vol. Les principales mesures visant à garantir la sécurité des données sont : l'authentification des terminaux mobiles pour empêcher tout accès frauduleux par des terminaux illégaux ; le cryptage des communications sans fil pour empêcher la fuite d'informations sur les données ; le cryptage et le stockage des copies de données téléchargées pour éviter la perte physique des terminaux mobiles.
2.Caractéristiques des systèmes de gestion de bases de données mobiles
L'environnement informatique du SGBD mobile est une extension du SGBD distribué traditionnel. Il peut être considéré comme un système distribué dans lequel les clients et les nœuds de serveur fixes sont connectés de manière dynamique. Par conséquent, le système de gestion de base de données dans l’environnement informatique mobile est un système de gestion de base de données distribué dynamique. Étant donné que le système de gestion de base de données mobile embarqué est appliqué sur un système d'exploitation embarqué dans un environnement informatique mobile, il possède ses propres caractéristiques et exigences fonctionnelles :
(1) La structure du micro-noyau facilite la réalisation de fonctions intégrées. Compte tenu des ressources limitées des appareils embarqués, les SGBD mobiles embarqués doivent être mis en œuvre à l'aide d'une technologie de miniaturisation et compacter leur structure système pour répondre aux besoins des applications embarquées.
(2) Prise en charge du SQL standard. Le SGBD mobile intégré doit prendre en charge le SQL standard. Prend en charge un sous-ensemble de la norme SQL92, prend en charge les requêtes de données (requête de jointure, sous-requête, tri, regroupement, etc.), insère, met à jour, supprime plusieurs instructions SQL standard, répondant pleinement aux besoins du développement d'applications embarquées.
(3) Fonction de gestion des transactions. Les SGBD mobiles intégrés doivent avoir des fonctions de traitement des transactions, maintenir automatiquement l'intégrité des transactions, l'atomicité et d'autres caractéristiques ; prendre en charge l'intégrité des entités et l'intégrité référentielle ;
(4) Mécanisme complet de synchronisation des données. La synchronisation des données est la fonctionnalité la plus importante des bases de données intégrées. Grâce à la réplication des données, les modifications apportées à la base de données intégrée ou à la base de données principale peuvent être appliquées les unes aux autres pour garantir la cohérence des données. Le mécanisme de synchronisation des données du système de gestion de base de données mobile intégré doit avoir les caractéristiques suivantes :
(5) Prend en charge plusieurs protocoles de connexion. Le SGBD mobile intégré doit prendre en charge plusieurs protocoles de connexion de communication. Les connexions aux appareils intégrés et aux serveurs de bases de données peuvent être réalisées via diverses méthodes de connexion telles que la communication série, TCP/IP, la transmission infrarouge et Bluetooth.
(6) Fonctions complètes de gestion de base de données intégrées. Le SGBD mobile intégré doit disposer d'une fonction de récupération automatique, qui ne nécessite fondamentalement aucune intervention manuelle pour la gestion de la base de données intégrée et peut fournir une sauvegarde et une récupération des données pour garantir la sécurité et la fiabilité des données utilisateur.
(7) Indépendance de la plate-forme et prise en charge de plusieurs systèmes d'exploitation intégrés. Le SGBD mobile intégré devrait être capable de prendre en charge une variété de systèmes d'exploitation intégrés actuellement populaires tels que Windows CE et Palm OS, de sorte que le système de gestion de base de données mobile intégré ne soit pas limité par les terminaux mobiles.
(8) Aucune fonctionnalité de gestion. La base de données intégrée dispose d'une fonction de récupération automatique. Elle peut gérer la base de données intégrée sans intervention manuelle et assurer la sauvegarde et la synchronisation des données.
De plus, un état idéal est que les utilisateurs puissent effectuer des opérations et une gestion de données sur toutes les bases de données mobiles qui y sont liées en utilisant un seul terminal mobile (tel qu'un téléphone mobile). Cela nécessite que le système frontal soit universel et que l'interface de la base de données mobile ait des normes unifiées et standardisées. Le système de gestion frontal génère automatiquement des commandes de traitement de transaction unifiées pendant le traitement des données et les soumet au serveur de données actuellement connecté pour exécution. Cela améliore efficacement la polyvalence du système de gestion de base de données mobile intégré et élargit les perspectives d'application de la base de données mobile intégrée.
En bref, dans le système de gestion de base de données mobile intégré, de nombreux problèmes qui n'ont pas besoin d'être pris en compte dans les environnements informatiques traditionnels doivent être pris en compte, tels que la prise en charge des opérations de déconnexion, la prise en charge des transactions longues entre régions, la prise en charge des requêtes liées à l'emplacement. et l'optimisation des requêtes. Considérations spéciales et considérations pour améliorer l'utilisation des ressources limitées et l'efficacité du système. Afin de résoudre efficacement les problèmes ci-dessus, des technologies telles que la technologie de réplication et de mise en cache, le traitement des transactions mobiles, la technologie de diffusion de données, le traitement et l'optimisation des requêtes mobiles, le traitement des données et la technologie de requête liées à la localisation, la technologie de publication d'informations mobiles, l'agent mobile et autres les technologies sont encore en cours de développement. Le développement et l’amélioration favoriseront davantage le développement de systèmes de gestion de bases de données mobiles intégrés.
En termes simples, un système en temps réel peut être considéré comme un système capable de répondre en temps opportun à des événements externes. La caractéristique la plus importante de ce type de système est la rapidité, c'est-à-dire l'actualité. L'exactitude d'un système en temps réel dépend non seulement des résultats logiques des calculs du système, mais également du moment où ces résultats sont générés.
À l'heure actuelle, la plupart des systèmes en temps réel sont embarqués, et les systèmes embarqués en cours d'exécution ont également des exigences en temps réel. Par conséquent, parmi de nombreux types de systèmes d'exploitation embarqués, les systèmes d'exploitation embarqués en temps réel sont les plus représentatifs. tous les types de systèmes d'exploitation embarqués. Par conséquent, cette section se concentre principalement sur les caractéristiques et les concepts des systèmes d'exploitation embarqués en temps réel et présente les concepts et caractéristiques de base, l'architecture de base et le noyau des systèmes d'exploitation embarqués. Une introduction complète au contenu de base. tels que les services, les objets du noyau et les services du noyau.
Dans le monde réel, tous les systèmes embarqués n’ont pas de caractéristiques temps réel, et tous les systèmes temps réel ne sont pas nécessairement embarqués. Cependant, ces deux systèmes ne s’excluent pas mutuellement et les systèmes qui présentent les caractéristiques des deux systèmes sont appelés systèmes embarqués temps réel. La relation entre eux est illustrée à la figure 12-7.
(1) Une logique (ou fonction) correcte signifie que le système peut produire des résultats corrects lors du traitement d'événements externes.
(2) L'heure correcte signifie que le traitement des événements externes par le système doit être terminé dans un délai prédéterminé.
(3) Délai ou délai, délai mort, délai fait référence au dernier délai pendant lequel le système doit traiter les événements externes. Le non-respect de ce délai peut avoir de graves conséquences. Habituellement, le calcul doit être terminé avant que le délai ne soit atteint.
(4) Le système en temps réel fait référence à un système qui satisfait à la fois au fonctionnement correct et à l'heure correcte. Les deux sont d'égale importance. En d’autres termes, les systèmes en temps réel sont soumis à des contraintes de temps et à des délais. Cependant, dans certains systèmes, l'exactitude temporelle peut être sacrifiée afin de garantir l'exactitude fonctionnelle.
Pour la division des systèmes temps réel, les systèmes temps réel peuvent généralement être divisés en :
(1) Système en temps réel puissant, le temps de réponse du système est très court, généralement de l'ordre de la milliseconde ou de la microseconde.
(2) Pour les systèmes temps réel généraux, le temps de réponse du système est inférieur à celui des systèmes temps réel puissants, généralement au deuxième niveau.
(3) Pour les systèmes temps réel faibles, le temps de réponse du système peut être plus long et peut également changer en fonction de la gravité de la charge du système.
Les systèmes temps réel peuvent être divisés en systèmes temps réel souples et systèmes temps réel dur en fonction de la tolérance aux délais non respectés ou de la gravité des conséquences.
(1) Un système temps réel dur fait référence à un système temps réel dont la flexibilité est proche de la limite de temps nulle.Le délai doit être respecté
Sinon, des conséquences catastrophiques se produiront et les résultats de traitement obtenus après le délai seront soit inutiles, soit fortement dévalorisés.
(2) Un système temps réel souple fait référence à un système temps réel qui doit respecter des exigences de délai mais qui présente un certain degré de flexibilité. Les délais peuvent inclure des niveaux de tolérance variables, des délais moyens ou même des distributions statistiques avec différents degrés d'acceptabilité des délais de réponse. Dans les systèmes temps réel souples, le non-respect des délais n'entraîne généralement pas de conséquences graves telles qu'une panne du système. Le tableau 12-2 est une comparaison des systèmes temps réel logiciel et temps réel dur.
En comparaison, on peut voir que, puisque les délais non respectés n'ont pas d'impact décisif sur le fonctionnement d'un système temps réel logiciel, un système temps réel logiciel n'a pas besoin de prédire s'il peut y avoir des délais non respectés. En revanche, les systèmes logiciels en temps réel peuvent lancer un processus de récupération après avoir détecté un délai non respecté.
Dans un système en temps réel, l'heure de début d'une tâche est aussi importante que l'heure limite ou l'heure d'achèvement. Étant donné que la tâche ne dispose pas des ressources requises, telles que le processeur et la mémoire, cela peut gêner le démarrage de l'exécution de la tâche et conduire directement à des erreurs. le délai d'achèvement des tâches, donc le problème de délai évolue. Cela devient un problème de planification des ressources.
Cela a un impact crucial sur les algorithmes de planification et la conception des tâches.
Le soi-disant système d'exploitation intégré fait référence à un système d'exploitation qui s'exécute sur un système informatique embarqué pour prendre en charge les applications embarquées. Il s'agit d'un ensemble de logiciels utilisés pour contrôler et gérer les ressources matérielles et logicielles dans les systèmes embarqués et fournir des services système. Le système d'exploitation embarqué est une partie importante des logiciels embarqués. Son émergence a amélioré l’efficacité du développement de logiciels embarqués, amélioré la portabilité des logiciels d’application et favorisé efficacement le développement de systèmes embarqués.
1.Caractéristiques des systèmes d'exploitation embarqués
Par rapport aux systèmes d'exploitation à usage général, les systèmes d'exploitation embarqués présentent principalement les caractéristiques suivantes :
(1) Miniaturisation : La plate-forme d'exécution du système d'exploitation embarqué n'est pas un ordinateur à usage général, mais un système informatique embarqué. Ce type de système ne dispose généralement pas de mémoire de grande capacité et quasiment pas de mémoire externe. Par conséquent, le système d'exploitation embarqué doit être rendu compact pour occuper le moins de ressources système possible. Afin d'améliorer la vitesse d'exécution et la fiabilité du système, le logiciel du système embarqué est généralement solidifié dans la puce mémoire au lieu d'être stocké sur un support tel qu'un disque.
(2) Haute qualité de code : dans la plupart des applications, l'espace de stockage reste une ressource précieuse, ce qui nécessite que le code du programme soit de haute qualité et que le code soit aussi rationalisé que possible.
(3) Spécialisation : Il existe différentes plates-formes matérielles pour les systèmes embarqués, et les processeurs sont mis à jour rapidement. Chacune d'entre elles est spécialement conçue pour différents domaines d'application. Par conséquent, le système d’exploitation embarqué doit avoir une bonne adaptabilité et portabilité, et doit également prendre en charge plusieurs plates-formes de développement.
(4) Fortes performances en temps réel : les systèmes embarqués sont largement utilisés dans le contrôle des processus, la collecte de données, les communications, le traitement des informations multimédia et d'autres situations nécessitant une réponse en temps réel. Par conséquent, les performances en temps réel sont devenues une autre caractéristique des systèmes d'exploitation embarqués. .
(5) Découpable et configurable : la diversité des applications nécessite que le système d'exploitation embarqué ait une forte adaptabilité et puisse être configuré de manière flexible et raisonnablement découpé en fonction des caractéristiques et des exigences spécifiques de l'application pour s'adapter aux exigences de miniaturisation et de spécialisation.
2.Classification des systèmes d'exploitation embarqués
Il existe de nombreux types de systèmes d’exploitation embarqués, qui peuvent être classés sous différents angles. À partir de la forme d'acquisition du système d'exploitation embarqué, il peut être divisé en deux catégories : type commercial et type gratuit :
(1) Type commercial. Les systèmes d'exploitation embarqués commerciaux disposent généralement de fonctions stables et fiables, d'un support technique complet, d'outils de développement complets et de services après-vente. Tels que VxWorks de WindRiver, pSOS et Palm OS de Palm, etc. Cependant, cela coûte cher et les utilisateurs ne peuvent généralement pas obtenir le code source du système.
(2) Type libre. L'avantage d'un système d'exploitation embarqué gratuit réside dans son prix. De plus, les développeurs de systèmes d'application peuvent obtenir le code source du système, ce qui facilite le développement. Cependant, les systèmes d'exploitation gratuits ont des fonctions simples, un support technique médiocre et une mauvaise stabilité du système. Les systèmes représentatifs typiques incluent Linux embarqué, uC/OS, etc. Compte tenu de la nature temps réel des systèmes d'exploitation embarqués, ils peuvent être divisés en deux catégories : les systèmes d'exploitation embarqués en temps réel et les systèmes d'exploitation embarqués en temps différé.
(1) Système d'exploitation embarqué en temps réel (RTEOS). Le système d'exploitation embarqué en temps réel prend en charge le travail du système en temps réel. Sa tâche principale est de planifier toutes les ressources disponibles pour respecter le délai de réponse en temps réel aux événements externes. Deuxièmement, il se concentre sur l'amélioration de l'efficacité du système. Les systèmes d'exploitation embarqués en temps réel sont principalement utilisés dans les domaines du contrôle, de la communication et dans d'autres domaines. Actuellement, la plupart des systèmes d'exploitation embarqués commerciaux sont des systèmes d'exploitation en temps réel.
(2) Système d'exploitation embarqué non temps réel. Ce type de système d'exploitation n'accorde pas une attention particulière au temps de réponse d'une seule tâche. Ses performances moyennes, son efficacité du système et son utilisation des ressources sont généralement élevées, et il convient aux produits électroniques grand public qui n'ont pas d'exigences strictes en temps réel. tels que les assistants numériques personnels, les décodeurs, etc.
Dans l'ensemble, les performances en temps réel d'un système embarqué sont déterminées par le matériel, le système d'exploitation en temps réel et les applications. Parmi eux, les performances du cœur du système d'exploitation en temps réel embarqué jouent un rôle clé. Généralement, il existe deux types de systèmes d'exploitation embarqués en temps réel : les RTEOS temps réel basés sur le noyau et les RTEOS à usage général.
RTEOS de type noyau temps réel : Ce type de système d'exploitation, les pilotes sont traditionnellement intégrés dans le noyau, et les applications et middleware sont implémentés sur des interfaces de programmation d'applications standards (API, Application Programming Interfaces).
RTEOS à usage général en temps réel : dans ce type de système d'exploitation, le pilote n'est pas profondément intégré au noyau, mais est implémenté au-dessus du noyau et ne contient que quelques pilotes nécessaires et peuvent être implémentés directement sur celui-ci. en haut du pilote, plutôt que de devoir être implémenté dans des API standard. Leurs différences sont illustrées à la figure 12-8.
Il existe de nombreuses similitudes fonctionnelles entre les systèmes d'exploitation embarqués en temps réel et les systèmes d'exploitation à usage général. Par exemple, ils prennent tous deux en charge le multitâche, prennent en charge la gestion des ressources logicielles et matérielles et fournissent tous deux des services de système d'exploitation de base pour les applications.
1.Principales fonctionnalités des systèmes d'exploitation embarqués en temps réel
Par rapport aux systèmes d'exploitation à usage général, les systèmes d'exploitation embarqués en temps réel présentent de nombreuses fonctionnalités. Les principales fonctionnalités uniques aux systèmes d'exploitation embarqués en temps réel qui diffèrent des systèmes d'exploitation à usage général comprennent :
2.Indicateurs de performance en temps réel des systèmes d'exploitation temps réel embarqués Lors de l'évaluation des performances des conceptions de systèmes d'exploitation en temps réel, les indicateurs de performance temps
L'indicateur est l'indicateur de performance le plus important. Les indicateurs de performance temporelle couramment utilisés comprennent principalement les éléments suivants :
(1) Temps de changement de tâche : fait référence au temps nécessaire pour transférer le contrôle du processeur d'une tâche en cours d'exécution à une autre tâche prête, y compris le temps passé à sauvegarder et à restaurer le contexte de la tâche et à sélectionner la prochaine tâche à exécuter lors de la planification des tâches. temps, cet indicateur est lié au nombre de registres et à la structure du système du microprocesseur. Le même système d'exploitation peut prendre des temps différents lorsqu'il est exécuté sur différents microprocesseurs. Le chronogramme correspondant à l'heure de commutation des tâches est illustré à la figure 12-9.
(2) Indicateurs de temps liés au traitement des interruptions, le chronogramme d'interruption correspondant est illustré à la figure 12-10.
Le temps de retard d'interruption fait référence au temps écoulé entre l'apparition de l'interruption et l'apprentissage par le système de l'interruption. Il est principalement affecté par le temps maximum sans interruption du système.
Plus le temps d'interruption est long, plus le délai d'interruption sera long ;
Temps d'exécution du traitement d'interruption, qui est déterminé par l'application spécifique ;
Le temps de réponse à l'interruption fait référence au temps écoulé entre l'apparition d'une interruption et le début de l'exécution de la routine de service d'interruption utilisateur ;
Le temps de récupération après interruption fait référence au temps entre la fin de la routine de service d'interruption de l'utilisateur et le retour au code interrompu ;
Le temps d'interruption maximum comprend deux aspects : l'un est le temps d'interruption maximum du noyau, c'est-à-dire que le noyau désactive les interruptions lors de l'exécution du code de section critique, l'autre est le temps d'interruption de l'application et le temps d'interruption maximum ; time est le maximum de ces deux temps d'interruption ; le temps de réponse d'une tâche fait référence au temps écoulé entre le moment où l'interruption correspondant à la tâche est générée et le moment où la tâche commence réellement à s'exécuter ;
Pour la planification préemptive, le temps de récupération après interruption est également ajouté au temps de changement de tâche et de restauration du nouveau contexte de tâche.
entre.
(3) Temps de réponse du système : fait référence au temps écoulé entre le moment où le système émet une demande de traitement et le moment où le système répond, c'est-à-dire le délai de planification. La taille de ce temps est principalement déterminée par l'algorithme de planification des tâches du noyau. En résumé, la méthode typique de calcul de l'indice de performance du noyau temps réel préemptif est présentée dans le tableau 12-3.
Jusqu'à présent, selon des statistiques incomplètes, le nombre total de systèmes d'exploitation embarqués existants dans le monde atteint des centaines. Il existe plus d'une douzaine de systèmes d'exploitation parmi les plus couramment utilisés. Ces systèmes d'exploitation jouissent d'une grande popularité et d'une large base d'utilisateurs dans leurs domaines d'application respectifs. Le tableau 12-4 sélectionne certains systèmes d'exploitation embarqués courants dans l'industrie à des fins de comparaison.
La tâche principale de la conception de systèmes embarqués est de définir les fonctions du système, de déterminer l'architecture du système et de mapper les fonctions à l'architecture de mise en œuvre du système. Ici, l’architecture système comprend à la fois l’architecture du système logiciel et l’architecture du système matériel. Une architecture peut être mappée sur une variété d’implémentations physiques différentes, chacune représentant différents compromis tout en satisfaisant certains critères de conception et en en optimisant d’autres.
La méthode de conception des systèmes embarqués est différente des méthodes générales de conception matérielle et de développement logiciel. Elle adopte la méthode de co-conception matérielle et logicielle. Le processus de développement implique non seulement des connaissances dans le domaine logiciel, mais également une connaissance approfondie du matériel. domaine, et implique même des machines, etc. aspects de la connaissance. Les concepteurs doivent être familiers et capables d'utiliser librement diverses technologies dans ces domaines afin d'optimiser le système conçu.
Bien que les solutions de conception des logiciels d'application de systèmes embarqués varient selon les différents domaines d'application, les méthodes d'analyse et de conception des systèmes embarqués suivent également les principes généraux du génie logiciel. De nombreuses méthodes d'analyse et de conception matures peuvent être appliquées dans le domaine embarqué. Le processus de développement de systèmes embarqués comprend également plusieurs étapes de base : analyse des exigences, conception du système, mise en œuvre et tests, et chaque étape a ses propres caractéristiques et objectifs.
Cette section présente principalement la technologie et les méthodes de développement et de conception de systèmes embarqués, et analyse les méthodes de conception de logiciels d'application et les principaux problèmes rencontrés dans le processus de conception du point de vue des applications de systèmes embarqués et des modèles informatiques. Enfin, les problématiques liées à la transplantation de logiciels dans le domaine de l'embarqué sont abordées.
Avant de concevoir un système embarqué, les caractéristiques de la conception du système embarqué lui-même et certains des principaux indicateurs techniques permettant de mesurer la conception du système embarqué doivent être clarifiés.
1.Caractéristiques de la conception de systèmes embarqués
Par rapport à la conception de systèmes habituelle, la conception de systèmes embarqués présente les caractéristiques suivantes :
2.Indicateurs techniques des systèmes embarqués
Les indicateurs couramment utilisés pour la conception de systèmes embarqués comprennent :
(1) Coût NRE (coût d'ingénierie non récurrent) : le coût monétaire unique qui doit être payé pour concevoir le système. Autrement dit, une fois la conception terminée, n'importe quel nombre de produits peut être fabriqué sans payer de frais de conception supplémentaires. .
(2) Coût unitaire : coût monétaire nécessaire à la fabrication d'un seul produit, hors coûts NRE.
(3) Taille : fait référence à l'espace occupé par le système, pour le logiciel, il est généralement mesuré par le nombre d'octets ; pour le matériel, il est mesuré par le nombre de portes logiques ou de transistors.
(4) Performance : le temps nécessaire au système pour accomplir les tâches spécifiées est l'indicateur de conception le plus couramment utilisé lors de la conception. Il existe deux méthodes de mesure principales. L'une est le temps de réponse, qui est le temps entre le début de l'exécution et la fin de celle-ci. la tâche. Le second est le montant d’achèvement, qui correspond au nombre de tâches terminées par unité de temps.
(5) Puissance : puissance consommée par le système, qui détermine la durée de vie de la batterie ou les exigences de dissipation thermique du circuit.
(6) Flexibilité : La capacité de modifier les fonctions du système sans augmenter les coûts NRE.
(7) Temps d'établissement du prototype : le temps nécessaire pour établir une version exécutable du système. Le prototype du système peut être plus volumineux et plus coûteux que le produit final, mais il peut vérifier l'objectif et l'exactitude du système et améliorer les fonctions du système.
(8) Délai de mise sur le marché : le temps écoulé entre le développement du système et le moment où il peut être vendu aux consommateurs. Les facteurs d'influence les plus importants comprennent le temps de conception, le temps de fabrication et le temps de test.
(9) Maintenabilité : facilité avec laquelle un système peut être modifié après son lancement ou sa commercialisation, en particulier par des développeurs non originaux.
(10) Exactitude : Si la fonction du système est correctement mise en œuvre, la fonction du système peut être vérifiée pendant tout le processus de conception et un circuit de test peut également être inséré pour vérifier s'il est correct.
(11) Sécurité : la probabilité que le système ne cause pas de dommages. Différents indicateurs de conception sont généralement en concurrence les uns avec les autres. L'amélioration d'un indicateur entraîne souvent la détérioration d'autres indicateurs. Afin de répondre au mieux aux exigences d'optimisation de la conception, les concepteurs doivent comprendre diverses technologies de mise en œuvre logicielle et matérielle et être capables d'en tirer des leçons. la technologie est transférée à un autre afin de trouver la meilleure solution sous des contraintes spécifiques.
3.Défis de conception de systèmes embarqués
Les défis rencontrés par la conception de systèmes embarqués comprennent les aspects suivants.
(1) Quelle quantité de matériel est nécessaire : les concepteurs ont un contrôle strict sur la puissance de calcul utilisée pour résoudre les problèmes. Ils peuvent non seulement choisir le processeur à utiliser, mais également la quantité de mémoire, les périphériques utilisés, etc., car la conception n'est pas seulement nécessaire. Pour répondre aux exigences de performances, il est également soumis aux contraintes de coûts de fabrication. Le choix du matériel est très important. Trop peu de matériel ne parviendra pas à répondre aux exigences fonctionnelles et de performances, et trop de matériel rendra le produit trop cher.
(2) Comment respecter le délai : il n'est pas conseillé d'utiliser la méthode consistant à augmenter la vitesse du processeur pour accélérer l'exécution du programme afin de résoudre la contrainte de temps, car cela augmenterait le prix du système. Dans le même temps, l'augmentation de la fréquence d'horloge du processeur n'améliore parfois pas la vitesse d'exécution, car la vitesse du programme peut être limitée par le système de stockage.
(3) Comment réduire la consommation électrique du système : pour les systèmes alimentés par batterie, la consommation électrique est une question très sensible. Pour les systèmes non alimentés par batterie, une puissance élevée signifie une dissipation thermique élevée. Une façon de réduire la consommation d'énergie du système consiste à réduire sa vitesse de calcul, mais la simple réduction de la vitesse de calcul entraînera évidemment des performances insatisfaisantes. Par conséquent, une conception minutieuse doit être effectuée pour réduire la consommation d'énergie tout en respectant les contraintes de performances.
(4) Comment assurer l'évolutivité du système : La plate-forme matérielle du système peut utiliser plusieurs générations, ou utiliser différents niveaux de produits de la même génération. Ceux-ci ne nécessitent que quelques modifications simples. Le concepteur doit modifier les caractéristiques du système. en changeant le logiciel. Concevoir une machine capable de fournir des capacités de performances qui ne sont pas encore disponibles dans le logiciel.
(5) Comment garantir la fiabilité du système : La fiabilité est un indicateur important lors de la vente de produits. Il s'agit d'une exigence raisonnable des consommateurs que le produit puisse bien fonctionner. La fiabilité est particulièrement importante dans certains systèmes, tels que les systèmes de contrôle de sécurité.
(6) Complexité des tests : tester un système embarqué est beaucoup plus difficile que la simple saisie de certaines données, donc la machine entière doit être exécutée pour générer des données correctes. Le moment où les données sont générées est très important, c'est-à-dire qu'il ne peut pas le faire. quitter le système embarqué. Travailler avec l’ensemble de l’environnement pour tester les systèmes embarqués.
(7) Visibilité et contrôlabilité limitées : les systèmes embarqués ne disposent généralement pas de dispositifs d'affichage ni de claviers, ce qui rend difficile pour les développeurs de comprendre ce qui se passe à l'intérieur du système et ne peuvent parfois pas répondre aux actions du système. signaux à comprendre. Dans les systèmes en temps réel, il n’est généralement pas possible d’arrêter le système à des fins d’observation.
(8) Environnement de développement limité : l'environnement de développement des systèmes embarqués, tels que les outils logiciels et matériels de développement, est généralement plus limité que l'environnement disponible sur les ordinateurs ou les postes de travail à usage général. Par conséquent, le développement croisé ne peut être utilisé que dans une large mesure. affecte les progrès du développement.
Semblable au développement de systèmes généraux, le développement de systèmes embarqués peut également adopter des modèles de développement courants en génie logiciel, notamment le modèle en cascade, le modèle en spirale, le modèle de raffinement par étapes et le modèle hiérarchique.
1.Modèles de développement communs
Un processus de conception est une série d’étapes qui doivent être suivies lors de la conception d’un système, dont certaines peuvent être réalisées par des outils automatisés, tandis que d’autres ne peuvent être réalisées que manuellement. Dans le domaine des systèmes embarqués, il existe les modèles de processus de développement suivants, couramment utilisés.
(1) Modèle cascade. Le modèle en cascade se compose de cinq étapes principales : l'étape d'analyse des exigences détermine les caractéristiques de base du système cible ; l'étape de conception de la structure du système décompose les fonctions du système en structures principales ; l'étape de codage écrit et débogue principalement les programmes ; et la dernière C'est la phase de maintenance, qui est principalement chargée de modifier le code pour s'adapter aux changements de l'environnement, de corriger les erreurs et de mettre à niveau. Le travail et les informations à chaque étape circulent toujours dans une seule direction, depuis l'abstraction de haut niveau vers des étapes de conception plus détaillées, ce qui constitue un modèle de conception descendant idéal.
(2) Modèle en spirale. Le modèle en spirale suppose que plusieurs versions du système doivent être construites. La première version est un modèle expérimental simple pour aider le concepteur à établir une intuition sur le système et à accumuler de l'expérience dans le développement de ce système. Au fur et à mesure que la conception progresse, des versions plus complexes seront créées. système créé. À chaque niveau de conception, les concepteurs passeront par trois étapes : analyse de la demande, conception structurelle et tests. Dans les étapes ultérieures, lorsque des versions plus complexes du système seront construites, davantage de travail sera effectué à chaque étape et la spirale de conception devra être élargie. Cette approche étape par étape du raffinement permet au concepteur d'approfondir sa compréhension. du système développé à travers une série de cycles de conception. La première boucle en haut de la spirale est très petite et courte, tandis que la dernière boucle en bas de la spirale ajoute des détails aux premières boucles du modèle en spirale, qui est plus réaliste que le modèle en cascade.
(3) Affinement étape par étape du modèle. Le modèle de raffinement par étapes est un système qui est construit plusieurs fois. Le premier système est utilisé comme prototype, puis le système est affiné un par un. Cette approche est logique lorsque le concepteur n'est pas très familier avec le domaine d'application du système en cours de construction. Affiner le système en construisant plusieurs systèmes de complexité croissante permet aux concepteurs de tester l'architecture et les techniques de conception. De plus, diverses techniques itératives peuvent être réalisées seulement partiellement jusqu'à ce que le système soit finalement achevé.
(4) Modèle hiérarchique. De nombreux systèmes embarqués eux-mêmes sont composés de conceptions plus petites, et un système complet peut nécessiter divers composants logiciels et matériels. Ces parties peuvent être composées de parties plus petites qui n'ont pas encore été conçues, de sorte que le processus de conception change avec le niveau d'abstraction du système, de la conception initiale du système complet à la conception de parties individuelles, de la conception globale au niveau niveau d'abstraction le plus élevé jusqu'au niveau intermédiaire. La conception détaillée au niveau abstrait puis la conception de chaque module spécifique sont développées couche par couche. Chaque processus peut être entrepris par un seul concepteur ou une seule équipe de conception. Chaque groupe s'appuie sur les résultats des autres groupes. , et chaque groupe apprend des supérieurs. Les groupes obtiennent des exigences tandis que les groupes de parents s'appuient sur la qualité et les performances des conceptions de groupe individuelles. De plus, chaque étape de mise en œuvre du processus est un processus complet depuis la spécification jusqu'aux tests.
2.Méthodes de conception de systèmes embarqués
Une bonne méthode de conception de systèmes embarqués est très importante car :
(1) Une bonne méthode de conception permet aux concepteurs de comprendre clairement l'avancement du travail qu'ils effectuent, afin de s'assurer qu'aucun d'entre eux n'est oublié.
(2) Autoriser l'utilisation d'outils assistés par ordinateur pour aider les concepteurs à travailler et diviser l'ensemble du processus en plusieurs étapes contrôlables.
(3) De bonnes méthodes de conception facilitent la communication entre les membres de l'équipe de conception. En définissant un processus de conception complet, chaque membre de l'équipe peut avoir une bonne compréhension du travail qu'il doit effectuer et des étapes nécessaires pour accomplir les tâches qui lui sont assignées. .objectifs atteints.
Le processus de développement d'un logiciel système embarqué peut être divisé en plusieurs étapes telles que la planification du projet, l'analyse de faisabilité, l'analyse des exigences, la conception générale, la conception détaillée, la création du programme, le téléchargement, le débogage, la solidification, les tests et l'exploitation.
Les étapes de planification du projet, d'analyse de faisabilité, d'analyse des besoins, de conception générale et de conception détaillée sont fondamentalement les mêmes que le processus de développement de logiciels généraux et peuvent toutes être réalisées selon des méthodes d'ingénierie logicielle, telles que des méthodes de prototypage, des méthodes structurées, etc. .
Les environnements d'exécution et de développement des logiciels embarqués étant différents, le travail de développement est effectué de manière transversale, ce qui doit donc être pris en compte à chaque étape. Le travail lors de la phase d’établissement du programme s’appuie sur les documents générés lors de la phase de conception détaillée. Le travail à ce stade comprend principalement plusieurs sous-processus tels que l'écriture du code source, la compilation et la liaison. Ces tâches sont toutes effectuées sur la machine hôte et ne nécessitent pas l'utilisation de la machine cible. Après avoir généré le fichier exécutable de l'application, vous devez utiliser l'environnement de développement croisé pour le débogage. Vous pouvez choisir en fonction de la situation réelle.
Faites-le en utilisant l'une des nombreuses méthodes de débogage disponibles, ou une combinaison valide de celles-ci. La conception de systèmes embarqués est différente de la conception de logiciels traditionnels, comme le montre la figure 12-11. Implique souvent la conception matérielle et la conception logicielle, où les activités frontales, telles que les spécifications et l'architecture système, nécessitent la prise en compte des aspects matériels et logiciels.
De même, la conception back-end telle que l’intégration et les tests du système prend en compte l’ensemble du système. Au stade intermédiaire, les composants logiciels et matériels sont développés indépendamment les uns des autres, et la plupart des travaux matériels et logiciels peuvent être effectués de manière relativement indépendante. Enfin, le programme exécutable correct après le débogage doit être solidifié sur la machine cible.Selon la configuration du matériel du système embarqué, il existe plusieurs méthodes de guérison. Il peut être guéri dans des mémoires telles que EPROM et FLASH, ou dans des appareils électroniques tels que DOC et DOM.
sous-plaque. Cela se fait généralement avec l’aide de programmeurs spéciaux.
Étant donné que les systèmes embarqués ont des exigences de sécurité et de fiabilité plus élevées que les systèmes informatiques à usage général, une couverture de code plus élevée est requise lors des tests en boîte blanche des systèmes embarqués. À chaque étape du processus de développement du système, la confirmation du système et l'évaluation des performances, l'évaluation de la sécurité et l'évaluation des risques doivent être effectuées, et la mise en œuvre du système doit être testée et vérifiée.
Le développement de systèmes embarqués est un développement complet de logiciels et de matériel, qui est très différent du développement de systèmes généraux, d'une part, chaque système embarqué est une combinaison de logiciels et de matériel, d'autre part, une fois le système embarqué ; est développé, le logiciel est solidifié dans le produit avec le matériel et a une forte spécificité. Sous l'influence de ces caractéristiques, il doit exister une méthodologie d'ingénierie différente du processus général de développement logiciel pour prendre en charge le processus de développement de systèmes embarqués. Dans le même temps, ces caractéristiques déterminent également les technologies de base uniques utilisées dans le développement de systèmes embarqués.
De manière générale, dans le domaine du développement embarqué, il existe trois technologies de base principales : la technologie des processeurs, la technologie des circuits intégrés et la technologie de conception/vérification.
1. Technologie du processeur
La technologie des processeurs est liée à la structure du moteur informatique qui implémente les fonctions du système. De nombreux systèmes numériques non programmables peuvent également être considérés comme des processeurs. La différence entre ces processeurs réside dans leur degré de spécialisation pour des fonctions spécifiques, ce qui entraîne des spécifications de conception différentes de celles des autres processeurs. .
(1) Processeur à usage général. Ce type de processeur peut être utilisé pour différents types d'applications. Une caractéristique importante est la possibilité de stocker des programmes. Le concepteur ne sachant pas quelles opérations le processeur effectuera, il est impossible de créer un programme à l'aide de circuits numériques. Une autre caractéristique est le chemin de données universel. Afin de gérer divers calculs, le chemin de données est universel. Il comporte généralement un grand nombre de registres et une ou plusieurs unités logiques arithmétiques à usage général. Le concepteur n'a qu'à programmer la mémoire du processeur pour exécuter les fonctions requises, c'est-à-dire le logiciel lié à la conception.
L'utilisation de processeurs à usage général dans les systèmes embarqués présente plusieurs avantages en termes de métriques de conception. Le délai de mise sur le marché et le coût du NRE sont faibles car le concepteur n'a qu'à écrire le programme sans effectuer de conception numérique. Il est très flexible et des changements fonctionnels peuvent être apportés en modifiant le programme. Par rapport à la conception du processeur en interne, le coût unitaire est inférieur lorsque la quantité est faible.
Bien entendu, cette méthode présente également certains défauts dans les indicateurs de conception. Lorsque la quantité est importante, le coût unitaire est relativement élevé, car lorsque la quantité est importante, le coût du NRE auto-conçu est amorti, ce qui peut réduire le coût unitaire. Dans le même temps, pour certaines applications, les performances peuvent être médiocres. La taille du système et la consommation d'énergie peuvent augmenter en raison de l'inclusion de matériel processeur inutile.
(2) Processeur à usage unique. Un processeur à usage unique est un circuit numérique conçu pour exécuter un programme spécifique. Il fait également référence aux coprocesseurs, accélérateurs, périphériques, etc. Les codecs tels que JPEG exécutent un seul processus pour compresser ou décompresser les informations vidéo. Les concepteurs de systèmes embarqués peuvent créer des processeurs à usage unique en concevant des circuits numériques spécifiques. Les concepteurs peuvent également utiliser des processeurs commerciaux préconçus à usage unique.
L'utilisation de processeurs à usage unique dans les systèmes embarqués présente certains avantages et inconvénients en termes de métriques. Ces avantages et inconvénients sont fondamentalement opposés à ceux des processeurs à usage général. Les performances peuvent être meilleures, la taille et la puissance peuvent être plus petites, le coût unitaire peut être inférieur lorsque la quantité est importante, et le temps de conception et le coût NRE peuvent être élevés. la flexibilité est médiocre et le coût unitaire par heure est plus élevé, pour certaines applications, les performances ne sont pas aussi bonnes que celles des processeurs à usage général.
(3) Processeur dédié. Un processeur de jeu d’instructions spécial est un processeur programmable optimisé pour un type d’application spécifique. Ces applications spécifiques ont les mêmes caractéristiques, comme le contrôle embarqué, le traitement du signal numérique, etc. L'utilisation de processeurs dédiés dans les systèmes embarqués peut offrir une plus grande flexibilité tout en garantissant de bonnes performances, puissance et taille, mais ces processeurs nécessitent toujours des coûts élevés pour construire le processeur lui-même et le compilateur. Les microcontrôleurs et les processeurs de signaux numériques sont deux types de processeurs spécialisés largement utilisés. Les processeurs de signaux numériques sont des microprocesseurs qui effectuent des opérations courantes sur les signaux numériques, tandis que les microcontrôleurs sont des microprocesseurs optimisés pour les applications de contrôle embarquées.
2. Technologie IC
La technologie de mise en œuvre qui obtient le processus de mappage physique de la puce réelle à partir de la description de la conception du circuit intégré du système est la technologie IC (circuits intégrés, circuit intégré). Actuellement, il existe trois types de technologies de mise en œuvre dans le domaine des semi-conducteurs, à savoir la personnalisation complète. , semi-personnalisation et technologie programmable. Peut être appliqué à la conception matérielle des systèmes embarqués.
(1) Entièrement personnalisé/VLSI (Very Large Scale Integrated Circuits, circuits intégrés à très grande échelle). Dans une technologie de circuits intégrés entièrement personnalisée, les concepteurs de chaque couche doivent optimiser la mise en œuvre numérique d'un système embarqué spécifique. Ils commencent par la taille, la position et le câblage des transistors pour obtenir une utilisation élevée de la surface de la puce, une vitesse rapide et une faible consommation d'énergie. .Optimiser les performances. Utilisant des masques pour produire de véritables puces dans l'usine de fabrication, les conceptions de circuits intégrés entièrement personnalisés, également souvent appelées VLSI, présentent des coûts NRE élevés, des délais de fabrication longs et conviennent aux applications à volume élevé ou critiques en termes de performances.
(2) Semi-personnalisé/ASIC (Application Specific Integrated Circuit, circuit intégré spécifique à une application). L'ASIC semi-personnalisé est une méthode de conception contrainte, comprenant une méthode de conception de réseau de portes et une méthode de conception de cellules standard. Il s'agit d'un matériel semi-fini avec quelques composants unitaires universels et groupes de composants réalisés sur la puce. Le concepteur n'a qu'à prendre en compte les fonctions logiques du circuit et les connexions raisonnables entre les modules fonctionnels. Cette méthode de conception est flexible, pratique et rentable, raccourcit le cycle de conception et améliore le rendement.
(3) Programmable/ASIC. Toutes les couches du dispositif programmable existent déjà. Une fois la conception terminée, la puce conçue peut être cuite en laboratoire sans la participation des fabricants de circuits intégrés, et le cycle de développement est considérablement raccourci. L'ASIC programmable a un coût NRE inférieur, un coût unitaire plus élevé, une consommation d'énergie plus élevée et une vitesse plus lente.
3.Technologie de conception/vérification
La technologie de conception de systèmes embarqués comprend principalement deux catégories : la technologie de conception matérielle et la technologie de conception logicielle. Parmi eux, la technologie dans le domaine de la conception matérielle comprend principalement la technologie de conception au niveau des puces et la technologie de conception au niveau des cartes de circuits imprimés.
Le cœur de la technologie de conception au niveau des puces est la compilation/synthèse, la bibliothèque/IP (propriété intellectuelle, propriété intellectuelle) et les tests/vérifications. La technologie de compilation/synthèse permet aux concepteurs de décrire les fonctionnalités requises de manière abstraite et d'analyser et d'insérer automatiquement les détails de mise en œuvre. La technologie Library/IP utilise des implémentations d'abstraction de bas niveau préconçues pour les abstractions de haut niveau. La technologie de test/vérification garantit que chaque niveau fonctionne correctement, réduisant ainsi le coût de la conception itérative entre les niveaux.
Le langage logiciel est au cœur de la technologie de conception de logiciels. Les langages logiciels ont connu le processus de développement depuis les langages de bas niveau (langage machine, langage assembleur) jusqu'aux langages de haut niveau (par exemple, les langages de conception structurés, les langages de conception orientés objet). technologie d'assemblage, technologie d'analyse, technologie de compilation/interprétation, etc. de nombreuses technologies connexes. Les niveaux de langages logiciels passent également progressivement du niveau de mise en œuvre, du niveau de conception et du niveau fonctionnel au développement de langages au niveau de la demande.
Au début, avec la formation progressive du concept de processeurs à usage général, la technologie logicielle s'est développée rapidement, la complexité des logiciels a également commencé à augmenter et les technologies et domaines de la conception logicielle et de la conception matérielle ont été complètement séparés. Les techniques et outils de conception se sont développés simultanément dans ces deux domaines, permettant d'effectuer la description du comportement à des niveaux de plus en plus abstraits pour s'adapter aux besoins croissants de complexité de conception. Ce développement simultané fait désormais que les deux champs utilisent le même modèle temporel pour décrire le comportement, il est donc possible que les deux champs soient à nouveau unifiés en un seul champ.
Étant donné que la plupart des systèmes embarqués sont des systèmes réactifs en temps réel, les systèmes réactifs présentent les caractéristiques d'une concurrence multitâche, de contraintes de temps strictes et d'une grande fiabilité. Pour la conception et la description des systèmes réactifs, les gens ont successivement proposé une variété de systèmes réactifs. langages de description et méthodologie de validation. Par exemple, la logique séquentielle est utilisée pour décrire la nature des systèmes réactifs et raisonner sur le comportement des systèmes réactifs, et la technologie de vérification de modèle est utilisée pour vérifier l'exactitude des conceptions de systèmes réactifs. Ces technologies ont progressivement joué un rôle important dans le développement embarqué. processus. .
Il existe de nombreux types d'environnements de développement pour les systèmes embarqués, qui peuvent généralement être répartis dans les catégories suivantes :
(1) Environnements de développement prenant en charge les systèmes d'exploitation embarqués. Il existe de nombreux environnements de développement dans cette catégorie, tels que PalmOS, THOS, VxWorks, Windows CE et d'autres systèmes d'exploitation embarqués commerciaux qui disposent d'environnements de développement entièrement fonctionnels les prenant en charge.
(2) Environnement de développement prenant en charge la puce du processeur. Ce type d'environnement de développement est généralement fourni par les fabricants de processeurs. Par exemple, un kit d'outils lancé par EPSON spécifiquement pour le développement de systèmes embarqués basés sur la série S1C33 de puces de microcontrôleur constitue ce type d'environnement de développement.
(3) Un environnement de développement correspondant à la plate-forme d'application spécifique. Ce type d'environnement de développement est très ciblé, comme le SDK Brew de Qualcomm.
(4) Autres types d'environnements de développement. Ce type d'environnement de développement fait principalement référence à un environnement de développement plus général développé ou personnalisé par certains fournisseurs de systèmes embarqués sur la base des outils open source GNU. Ce type d'outil est disponible gratuitement, prend en charge un large éventail de types de processeurs et possède des fonctions complètes, mais son support technique est légèrement inférieur aux outils commerciaux professionnels.
À mesure que les fonctions des systèmes embarqués deviennent de plus en plus complexes, il devient de plus en plus difficile de décrire le comportement de ces systèmes fonctionnellement complexes. La pratique a prouvé que la description et l'analyse des systèmes à l'aide de modèles informatiques sont une méthode ayant une valeur technique.
Cette section présente plusieurs modèles informatiques couramment utilisés dans le domaine de l'embarqué, et analyse et explique les problèmes liés à la conception et au développement d'applications embarquées du point de vue des modèles informatiques. Les modèles informatiques fournissent un ensemble de méthodes permettant de combiner des comportements complexes avec des objets simples, ce qui peut aider les concepteurs à comprendre et à décrire le comportement du système. Les modèles informatiques couramment utilisés dans les systèmes embarqués sont les suivants : modèle informatique séquentiel, modèle de processus de communication, modèle de machine à états, modèle de flux de données, modèle orienté objet et modèle de processus simultané. Ces modèles sont utilisés dans différents domaines d'application. Par exemple, le modèle de machine à états est particulièrement adapté à la description de systèmes orientés contrôle, et le modèle de flux de données peut bien décrire les problèmes de traitement et de conversion des données. Actuellement, le modèle de processus simultanés est le plus largement utilisé.
1.Modèle de machine à états
La machine à états finis (FSM) est un modèle d'état de base qui peut utiliser un ensemble d'états possibles pour décrire le comportement du système. Le système ne peut être que dans l'un des états à tout moment, ou il peut également décrire l'état déterminé. par l'entrée, enfin, peut décrire les opérations qui peuvent se produire dans un certain état ou lors d'une transition d'état.
La machine à états finis FSM est un six-tuple F<S,I,O,F,H,S0> , où S est un ensemble d'états {s0, s1,…,sl}, I est un ensemble d'entrées {I0, I1,…,Im}, O est un ensemble de sorties {o0, o1,…,on} et F est une fonction de sous-état. Ou fonction de transition, qui mappe l'état et l'entrée à l'état (S × I → S), H est la fonction de sortie, qui mappe l'état à la sortie (S → O) et S0 est l'état initial. .
La figure 12-12 est la description de la machine d'état de l'unité de commande d'ascenseur. Dans l'état initial « inactif », configurez la montée et la descente à 0 et ouvrez à 1. La machine à états reste à l'état « inactif » jusqu'à ce que l'étage demandé soit différent de l'étage actuel. Si le plancher demandé est supérieur au plancher actuel, la machine à états passe à l'état « up » et se met à 1. Si l'étage demandé est plus petit que l'étage actuel, la machine à états passe à l'état "down" et down est mis à 1. La machine à états reste dans l'état "down" ou "up" jusqu'à ce que l'étage actuel soit égal à l'étage demandé, puis l'état passe à l'état "ouvert" avec open défini sur 1. Habituellement, le système dispose d'un temporisateur. Par conséquent, lorsque la machine d'état passe à l'état « porte ouverte », la minuterie est également démarrée. La machine d'état reste dans l'état « porte ouverte » jusqu'à ce que le temporisateur expire, et passe finalement à l'état « porte ouverte ». l'état "inactif".
Lorsque FSM est utilisé dans la conception de systèmes embarqués, les types de données de son entrée et de sa sortie sont tous deux de type booléen, et la fonction représente une fonction booléenne contenant des opérations booléennes. Ce modèle a été utilisé pour de nombreux systèmes de contrôle purs sans suffisamment d'entrée ou de sortie de données. . Si vous souhaitez traiter des données, étendez le FSM à une machine à états avec chemin de données (FSM avec Datapath, FSMD). De plus, le modèle de machine à états peut être étendu pour prendre en charge la hiérarchie et la concurrence. Ce modèle est appelé modèle FSM hiérarchique/concurrent (HCFSM).
2.modèle de flux de données
Le modèle de flux de données est un modèle dérivé du modèle multitâche concurrent. Ce modèle décrit le comportement du système comme un ensemble de nœuds et d'arêtes, où les nœuds représentent les transformations et les arêtes représentent le flux de données d'un nœud à un autre nœud. . Chaque nœud utilise les données de ses bords d'entrée, effectue des transformations et produit des données sur ses bords de sortie.
Chaque bord peut contenir ou non des données. Les données apparaissant sur le bord sont appelées un jeton. Lorsque tous les bords d'entrée d'un nœud ont au moins un jeton, le nœud peut être déclenché. Une fois le nœud déclenché, un jeton de chaque front d'entrée sera utilisé, la transformation des données sera effectuée sur tous les jetons utilisés et un jeton sera généré sur le bord de sortie. Le déclenchement du nœud dépend uniquement de l'occurrence du jeton. .
La figure 12-13 montre le modèle de flux de données pour calculer z=(a+b)×(cd). Actuellement, il existe plusieurs outils commerciaux prenant en charge l'expression de modèles de flux de données dans des langages graphiques. Ces outils peuvent automatiquement convertir les modèles de flux de données en modèles multitâches simultanés pour une implémentation sur des microprocesseurs. La méthode de conversion consiste à convertir chaque nœud en tâche et chaque bord en canal. La méthode de mise en œuvre du modèle multitâche simultané consiste à utiliser un système d'exploitation en temps réel pour mapper les tâches simultanées.
La figure 12-14 est un modèle de flux de données synchrone. Dans ce modèle, chaque front d'entrée et chaque front de sortie du nœud sont marqués du nombre de jetons utilisés et générés pour chaque déclencheur. L'avantage de ce modèle est qu'il n'est pas nécessaire de le convertir en un modèle multitâche simultané lors de la mise en œuvre. Au lieu de cela, les nœuds sont planifiés de manière statique pour générer un modèle de programme séquentiel. Le modèle peut être exprimé à l'aide d'un langage de programmation séquentiel (tel que le langage C) et peut être exécuté sans système d'exploitation en temps réel, son efficacité d'exécution est donc plus élevée.
3. Modèle de processus simultané
Le modèle de processus simultané est composé d'un groupe de processus. Chaque processus est un processus d'exécution séquentielle et chaque processus peut être exécuté simultanément. Le modèle de processus simultanés fournit des opérations pour créer, terminer, suspendre, reprendre et connecter des processus. Les processus peuvent communiquer entre eux et échanger des données pendant l'exécution. La communication inter-processus peut prendre deux formes : les variables partagées et la transmission de messages. Des sémaphores, des sections critiques, des tubes, des expressions de chemin, etc. sont utilisés pour synchroniser les opérations des processus concurrents.
En général, un système temps réel peut être considéré comme un système composé de nombreux processus s’exécutant simultanément, chacun ayant des exigences de temps. De cette manière, de nombreux systèmes embarqués sont plus facilement décrits par un ensemble de tâches exécutées simultanément, car ces systèmes eux-mêmes sont des systèmes multitâches, et le modèle de processus simultanés peut naturellement être implémenté par le multitâche d'un système d'exploitation en temps réel.
4.modèle orienté objet
Le modèle de processus concurrent traditionnel est conçu autour du concept de processus. Il s'agit d'un concept au niveau de la mise en œuvre. Il est donc extrêmement difficile d'utiliser le modèle de processus pour résoudre des problèmes de concurrence. monde objectif. Ce n’est pas naturel et cela rend également les programmes concurrents difficiles à concevoir et à comprendre.
Le modèle orienté objet décrit les activités dans le monde objectif de manière plus directe et il existe une capacité potentielle d'exécution simultanée dans le modèle. Après qu'un objet envoie un message à un autre objet, si le résultat du traitement du message n'est pas nécessaire ou n'est pas nécessaire immédiatement, le premier n'a pas besoin d'attendre que le second traite le message, et l'expéditeur et le destinataire du message peuvent exécuter simultanément.Les objets ne sont pas tous dans un état de prestation de services passif. En plus de fournir des services en recevant des messages, certains d'entre eux peuvent également disposer de leur propre traitement de transaction.
raison. Un objet peut souvent gérer plusieurs messages en même temps.
Un objet est une encapsulation de données et d'opérations. Les données sont stockées dans les variables locales de l'objet. L'état de l'objet est représenté par les valeurs de toutes les variables locales de l'objet à un moment donné. Dans un environnement concurrent, la description de l'état concurrent de l'objet doit également être prise en compte, car le contrôle de concurrence de l'objet est basé sur l'état concurrent de l'objet. La combinaison de la concurrence et de l'orientation objet peut se résumer de deux manières :
(1) Introduire un mécanisme de concurrence dans le modèle orienté objet, utiliser pleinement la technologie orientée objet pour décrire la bonne capacité de modélisation du monde objectif et diverses caractéristiques importantes de l'orientation objet, et en même temps décrire ses capacités de concurrence potentielles, ce qui le rend approprié pour décrire le calcul simultané.
(2) Introduire la pensée orientée objet dans le modèle de concurrence traditionnel. Les modèles de concurrence orientés objet peuvent être divisés en deux types : les modèles de concurrence implicite et les modèles de concurrence explicite.
(1) Modèle de concurrence implicite. Ce modèle se caractérise par le report de la conception concurrente et l'utilisation de la modélisation objet comme base de modélisation. Avant d'entrer dans la phase d'exécution, traitez les objets comme des unités autonomes et les activités de divers objets comme des tâches spécifiques accomplies de manière simultanée idéale. Tout comme chaque objet possède son propre processeur, ce processeur peut fournir un thread d'exécution pour l'objet. Les événements externes entrant dans le système sont considérés comme une demande de traitement et sont diffusés à certains objets. Ces objets envoient ensuite des demandes de traitement supplémentaires à d'autres objets. Théoriquement, correspondant à une requête, n'importe quel nombre d'objets peut effectuer le traitement correspondant. Lors de l'implémentation, le planificateur détermine finalement l'ordre des opérations sur ses objets, comme le montre la figure 12-15.
(2) Modèle de concurrence explicite. La caractéristique de ce modèle est que la concurrence doit être considérée en premier, et le concept de concurrence et le concept d'objets doivent être séparés en premier. Une fois l'objet établi, le concept de processus pris en charge par le système d'exploitation en temps réel est utilisé pour représenter la concurrence, formant deux niveaux abstraits d'objet et de processus, c'est-à-dire en décomposant d'abord le système en processus quasi simultanés comme point de départ, et en utilisant la technologie orientée objet dans chaque processus. Les interactions entre les objets sont exprimées sous forme d'appels de fonctions imbriqués et des mécanismes de synchronisation explicites tels que des verrous, des moniteurs et des sémaphores sont ajoutés pour garantir l'intégrité des objets. Ce modèle place les processus au-dessus des objets, et il n'est pas nécessaire de prendre en compte la concurrence ou la sérialisation des objets dans les objets, comme le montre la figure 12-16.
Au début, la méthode de conception des systèmes temps réel était principalement une méthode de conception structurée. Les systèmes utilisant des méthodes structurées présentaient de grandes limites en termes de réutilisabilité et de modifiabilité. La méthode de conception de systèmes temps réel orientée objet présente évidemment des avantages évidents dans ces problèmes. La méthode de conception orientée objet la plus pratique est la méthode OCTOPUS de Nokia. Cette méthode est basée sur l'OMT et la méthode de fusion et propose des méthodes pour traiter le temps de réponse du système en temps réel, le domaine temporel et la concurrence, et propose spécifiquement des méthodes pour gérer le temps réel. temps de réponse du système, domaine temporel et concurrence. Gestion des aspects de concurrence, de synchronisation, de communications, de gestion des interruptions, d'ASIC, d'interfaces matérielles, de temps de réponse de bout en bout, etc. L'approche OCTOPUS combine bien les principales phases du développement logiciel, offre une transition étroite et naturelle de la spécification au modèle en cours d'exécution et prend en charge le développement incrémentiel. La méthode OCTOPUS est une méthode de conception typique qui combine la technologie actuelle orientée objet et les systèmes temps réel. De plus, des techniques formelles de développement orientées objet et des langages de modélisation sont progressivement appliqués au stade initial de la modélisation du système en temps réel.
Avant de concevoir, le designer doit savoir quoi concevoir. Les exigences et les spécifications sont souvent utilisées pour décrire ces deux étapes liées mais distinctes du processus de conception. Les exigences sont des descriptions informelles de ce que veulent les utilisateurs, tandis que les spécifications sont des descriptions plus détaillées, précises et cohérentes qui peuvent être utilisées pour créer une architecture système. Bien entendu, les exigences et les spécifications sont des représentations externes du système de guidage et non des représentations internes. Il existe deux types d'exigences : les exigences fonctionnelles et les exigences non fonctionnelles décrivent ce que le système doit faire, tandis que les exigences non fonctionnelles décrivent d'autres attributs du système, tels que la taille physique, le prix, la consommation électrique, le temps de conception et la fiabilité. attendez.
L'analyse des exigences d'un grand système est une tâche complexe et longue, mais obtenir une petite quantité d'informations dans un format clair et simple est un bon début pour comprendre les exigences du système. Le tableau 12-5 est un formulaire d'exigences qui est rempli au début d'un projet et peut être utilisé comme liste de contrôle lors de l'examen des caractéristiques de base du système.
Le contenu de ce formulaire de besoin est préparé en utilisant le GPS (Global Position System, système de cartographie mobile) comme exemple. Le système de cartographie mobile est un appareil portable conçu pour les utilisateurs qui conduisent sur des autoroutes ou pour des utilisateurs similaires. L'appareil peut obtenir des informations de localisation à partir du GPS et afficher l'emplacement actuel et les cartes du terrain environnant pour l'utilisateur. Le contenu de la carte change avec l'utilisateur. Change en fonction de l'emplacement de l'utilisateur et de l'appareil.
Le document le plus important au cours de la phase d’analyse des exigences est la spécification du système.
Une spécification est un document technique qui reflète fidèlement les besoins du client et constitue les exigences qui doivent être respectées lors de la conception. Dans le processus de développement logiciel, les spécifications sont très importantes. Les analystes système acceptent les exigences des utilisateurs et génèrent des spécifications pour le système logiciel cible. Les concepteurs et les codeurs conçoivent les modules conformément aux spécifications et génèrent enfin les codes de programme pour vérifier si le logiciel final répond aux spécifications. Les spécifications doivent être claires et sans ambiguïté, sinon le système construit à partir des spécifications risque de ne pas répondre aux exigences réelles.
Actuellement, la méthode la plus populaire dans l’industrie consiste à utiliser UML pour décrire les spécifications. UML est un langage de modélisation standard universel capable de modéliser n'importe quel système avec une structure statique et un comportement dynamique. UML convient à différentes étapes du processus de développement du système, depuis la spécification des exigences jusqu'aux tests une fois le système terminé. La figure 12-17 est un exemple de spécification de machine à états montrant que les opérations de début et de fin sont des états spéciaux et que les états de la machine à états représentent différentes opérations conceptuelles.
Lors de la phase d'analyse des besoins, les besoins des utilisateurs sont capturés via des cas d'utilisation. Grâce à la modélisation de cas d'utilisation, décrivez les acteurs externes intéressés par le système et leurs exigences fonctionnelles pour le système (cas d'utilisation). La phase d'analyse concerne principalement les principaux concepts (tels que les abstractions, les classes et les objets, etc.) et les mécanismes du domaine problématique. Il est nécessaire d'identifier ces classes et leurs relations et de les décrire avec des diagrammes de classes UML. Pendant la phase d'analyse, seuls les objets du domaine problématique (concepts du monde réel) sont modélisés, sans tenir compte des classes qui définissent les détails techniques du système logiciel (telles que les classes qui gèrent des problèmes tels que les interfaces utilisateur, les bases de données, la communication, et parallélisme).
Actuellement, les outils de conception de systèmes embarqués peuvent être divisés en deux catégories : les outils de synthèse collaborative et les outils de simulation collaborative.
(1) Outils de synthèse collaboratifs. Actuellement, les principaux outils de synthèse collaborative utilisés pour le développement embarqué sont POLIS, COSYMA et Chinook.
POLIS : POLIS est un cadre de co-conception logicielle et matérielle pour les systèmes embarqués interactifs développé par UC-Berkeley. Il convient à la conception de petits systèmes de contrôle. La description du système prend en charge le langage basé sur FSM (Finite State Machine). Étant donné que le logiciel et le matériel peuvent être obtenus de manière transparente à partir de la même description CFSM, la flexibilité de l'espace de conception est également augmentée en conséquence. La simulation collaborative utilisant PTOLEMY est prise en charge à la fois au niveau de la description et de la mise en œuvre. est limité, c'est-à-dire que les CFSM matériels sont entourés d'un seul processeur et ne prennent pas en charge la mémoire partagée.
COSYMA : COSYMA est une plate-forme développée par la société allemande IDA pour explorer le processus de synthèse de la co-conception matérielle et logicielle. Elle a une description relativement simple des systèmes logiciels, prend en charge la segmentation automatique et la synthèse des coprocesseurs et peut explorer l'espace de conception. Pendant la période de synthèse, la synthèse du système dépend des limitations matérielles et ne prend pas en charge les modules de concurrence, c'est-à-dire qu'un seul thread peut s'exécuter à la fois. L'architecture est également limitée et ne prend pas en charge la vérification formelle. dépend du partitionnement et des techniques d'estimation des coûts.
Chinook : Chinook est conçu pour les systèmes de contrôle. La description de l'ensemble du système est fournie à Chinook en entrée. Son modèle interne est basé sur un modèle de type état hiérarchique. Il ne segmente pas le code. la conception entière. Chinook prend en charge une variété d'architectures système, en particulier les architectures multiprocesseurs. Il prend également en charge la description des contraintes de synchronisation. Il peut synthétiser diverses interfaces, y compris les interfaces logicielles et matérielles entre les systèmes. Il peut synthétiser les pilotes de périphériques directement à partir des chronogrammes et contrôler la communication entre les processeurs.
(2) Outils de simulation collaborative. La simulation collaborative est un aspect crucial de la conception de systèmes embarqués. Une fois la conception complète du système terminée, il est nécessaire de simuler différents types de composants dans un cadre unifié. La simulation collaborative fournit non seulement une vérification, mais fournit également aux utilisateurs des informations sur les performances de chaque système. , ce qui permet de proposer des changements dès les premiers stades du système sans causer de pertes majeures. Il existe actuellement deux principaux outils de simulation collaborative :
PTOLEMY : L'idée clé de PTOLEMY est de mélanger des modèles informatiques avec des noyaux orientés objet. Il peut être utilisé pour simuler une variété de systèmes et est largement utilisé dans diverses applications, mais il n'est pas adapté à la synthèse matérielle. aussi une de ses fonctions. TSS : TSS (Tool for System Simulation) est un outil de simulation de matériel complexe. Il est écrit en langage C. L'extraction de modules individuels peut être contrôlée par l'utilisateur et des modules peuvent être facilement ajoutés et supprimés. Cependant, les modules hiérarchiques ne sont pas pris en charge et il n'existe aucun mécanisme pour synchroniser l'accès aux structures de données partagées par chaque processeur. La communication entre les modules s'effectue via des ports et des bus. De plus, TSS prend en charge la simulation de systèmes multicœurs.
1.Conception d'architecture système
Décrire comment le système implémente les fonctions définies dans la spécification est l'objectif principal de la conception de l'architecture du système. Cependant, lors de la conception de la structure d’un système embarqué, il est difficile de séparer complètement le logiciel et le matériel. L’approche habituelle consiste à considérer d’abord l’architecture logicielle du système, puis à considérer sa mise en œuvre matérielle. La description de l'architecture du système doit répondre aux exigences fonctionnelles et non fonctionnelles. Non seulement les fonctionnalités requises doivent être implémentées, mais des contraintes non fonctionnelles telles que le coût, la vitesse, la consommation électrique, etc. doivent également être respectées. Il s'agit d'une méthode pratique permettant de considérer et d'affiner les éléments fonctionnels du schéma fonctionnel d'origine du système un par un, et de convertir le schéma fonctionnel d'origine en une structure de système logiciel et matériel tout en prenant en compte les contraintes non fonctionnelles. Ce qui suit prend comme exemple la conception architecturale du système de cartographie mobile GPS.
(1) Schéma fonctionnel original. Comme le montre la figure 12-18, ce schéma fonctionnel original représente le fonctionnement principal et le flux de données du système de cartographie mobile.
(2) Architecture du système logiciel. Comme le montre la figure 12-19, le système logiciel se compose principalement d'une interface utilisateur, d'un moteur de recherche de base de données et d'un convertisseur de données.
(3) Architecture du système matériel. Comme le montre la figure 12-20, le système matériel se compose d'un microprocesseur à usage général, d'une mémoire et de périphériques d'E/S. Ce système sélectionne deux types de mémoire : les données générales, la mémoire de programme et la mémoire tampon d'image pour l'affichage des pixels.
2.Conception du sous-système matériel
L'environnement de développement des systèmes embarqués se compose de 4 parties : la plate-forme matérielle cible, le système d'exploitation embarqué, le langage de programmation et les outils de développement. Parmi eux, la sélection du processeur et du système d'exploitation doit prendre en compte davantage de facteurs pour éviter les mauvaises décisions qui affectent l'avancement du projet. .
(1) Sélectionnez la technologie du processeur. Un défi majeur dans la conception de systèmes embarqués est de savoir comment optimiser simultanément les spécifications de conception concurrentes. Les concepteurs doivent faire des compromis entre les différentes technologies de processeur et les technologies de circuits intégrés. D'une manière générale, la technologie des processeurs n'a rien à voir avec la technologie des circuits intégrés, c'est-à-dire que toute technologie de processeur peut être mise en œuvre à l'aide de n'importe quelle technologie des circuits intégrés, mais les performances, le coût NRE, la consommation d'énergie, la taille et d'autres indicateurs du dispositif final seront très différent, comme le montre la figure 12-21.
Une technologie programmable plus polyvalente offre une plus grande flexibilité, réduit les coûts NRE et permet des délais de prototype et de lancement de produits plus rapides. Une technologie personnalisée peut offrir une consommation d’énergie inférieure, de meilleures performances, une taille plus petite et un coût inférieur pour une production en grand volume.
Habituellement, lorsqu'une entreprise souhaite lancer un produit, tel qu'un décodeur, un routeur domestique ou un processeur à usage général, elle peut d'abord lancer un produit semi-personnalisé pour conquérir le marché le plus rapidement possible, puis lancer un produit semi-personnalisé. produit entièrement personnalisé. Vous pouvez également d'abord utiliser une ancienne technologie plus fiable pour implémenter le processeur, puis utiliser une nouvelle technologie de processus pour implémenter la prochaine génération. De même, les concepteurs de systèmes embarqués peuvent utiliser des appareils programmables pour créer des prototypes afin d'accélérer la mise sur le marché, puis utiliser des appareils personnalisés pour la production en volume. Sur la base de ces principes, les concepteurs peuvent faire des choix raisonnables concernant la technologie du processeur et le processeur utilisé. En règle générale, un « logiciel de processeur universel » entièrement personnalisable et disponible dans le commerce constitue une option adaptée à la plupart des situations.
(2) Sélection du processeur embarqué général. Choisissez un processeur intégré à usage général approprié en fonction des besoins de l'utilisateur et du projet. Les indicateurs suivants doivent être pris en compte lors de la sélection.
La vitesse du processeur. Les performances d'un processeur dépendent de nombreux facteurs : fréquence d'horloge, taille des registres internes, si les instructions traitent tous les registres de la même manière, etc. Pour de nombreuses conceptions de systèmes embarqués nécessitant un processeur, l’objectif n’est pas de choisir le processeur le plus rapide, mais de choisir le processeur et le sous-système d’E/S capables d’accomplir le travail. Les performances du processeur répondent aux besoins du système et disposent d'une certaine marge, mais il n'est pas nécessaire de la choisir trop élevée. Indicateurs techniques. Actuellement, de nombreux processeurs embarqués intègrent les fonctions de périphériques, réduisant ainsi le nombre de puces et réduisant ainsi le coût de développement de l'ensemble du système. La première chose que les développeurs se demandent est de savoir si une partie du matériel requis par le système peut être connectée au processeur sans logique combinatoire excessive. Deuxièmement, considérez certaines puces de support du processeur, telles que le contrôleur DMA, le gestionnaire de mémoire, le contrôleur d'interruption, le périphérique série, l'horloge, etc. La familiarité du développeur avec le processeur signifie que le développeur du projet doit faire un compromis entre le coût du processeur lui-même et le coût de développement.
Si la fonction d'E/S du processeur répond aux besoins du système, c'est-à-dire que de nombreux processeurs fournissent des périphériques externes intégrés pour réduire le nombre de puces et réduire les coûts. Cette solution doit être envisagée autant que possible. Outils de support logiciel pertinents pour le processeur, c'est-à-dire si le processeur dispose d'un support complet pour les systèmes d'exploitation embarqués, les langages de programmation et les outils de développement, etc.
Le débogage du processeur indique si le processeur intègre des fonctions de débogage, par exemple s'il prend en charge JTAG, BDM et d'autres méthodes de débogage. Le fabricant du processeur soutient la crédibilité. Lors de la sélection d'un certain processeur pendant le cycle de vie du produit, les concepteurs doivent confirmer qu'il dispose d'un approvisionnement suffisant, d'un support technique, etc. ainsi que de la faible consommation d'énergie du processeur.
Le marché le plus important et celui qui connaît la croissance la plus rapide pour les microprocesseurs intégrés est celui des produits électroniques grand public tels que les appareils portables, les blocs-notes électroniques, les PDA, les téléphones mobiles, les navigateurs GPS et les appareils électroménagers intelligents. Les microprocesseurs achetés dans ces produits se caractérisent généralement par des exigences élevées en matière de performances. Basse consommation énergétique. De nombreux fabricants de processeurs se sont déjà lancés dans ce domaine.
(3) Précautions pour la conception du matériel. Tout d’abord, divisez le matériel en composants ou modules et dessinez un schéma fonctionnel des connexions des composants ou des modules. Deuxièmement, affinez chaque module et divisez le système en éléments plus gérables qui peuvent être mis en œuvre indépendamment. Habituellement, certaines fonctions du système peuvent être implémentées à la fois dans le logiciel et dans le matériel. Il n'existe pas de méthode unifiée pour guider les concepteurs dans la décision de l'attribution des fonctions au logiciel et au matériel, mais un compromis entre performances et coût peut être fait sur la base de la liste. de contraintes. Lors de la conception de l'interface entre le logiciel et le matériel, les concepteurs de matériel et les concepteurs de logiciels doivent travailler ensemble pour la réaliser. Une bonne conception d'interface peut garantir que le matériel est simple et facile à programmer. Les points suivants doivent être pris en compte lors de la conception.
En bref, les concepteurs de matériel devraient fournir aux concepteurs de logiciels des informations de plus en plus détaillées pour faciliter la conception et le développement de logiciels.
3.Conception de sous-systèmes logiciels
Selon le document de spécification, au stade de l'analyse des exigences, déterminez le modèle de calcul du système et effectuez une conception raisonnable de la partie logicielle.
(1) Sélection du système d'exploitation. Lors du choix d’un système d’exploitation embarqué, vous devez prendre en compte de nombreux aspects :
Fonctions du système d'exploitation. Sélectionnez les produits du système d'exploitation en fonction des fonctions du système d'exploitation requises par le projet. Déterminez si le système prend en charge tout ou partie des fonctions du système d'exploitation, s'il prend en charge les systèmes de fichiers, les interfaces homme-machine, s'il s'agit d'un système en temps réel. ou un système de partage de temps, et si le système peut être supprimé.
Sélection d'outils de développement de support. Certains systèmes d'exploitation en temps réel (rtos) ne prennent en charge que les outils de développement du fournisseur du système. En d’autres termes, vous devez également vous procurer un compilateur, un débogueur, etc. auprès du fournisseur du système d’exploitation. Certains systèmes d'exploitation sont largement utilisés et des outils tiers sont disponibles, le choix est donc plus large. Comme il est facile de porter le système d’exploitation. Le portage du système d’exploitation vers le matériel est une question importante. Il s'agit d'un facteur clé pour déterminer si l'ensemble du système peut être achevé dans les délais. Par conséquent, des systèmes d'exploitation avec un degré élevé de portabilité doivent être sélectionnés pour éviter diverses difficultés causées par la difficulté de porter le système d'exploitation sur le matériel et accélérer la progression du développement. du système. Quels sont les besoins en mémoire du système d'exploitation. Déterminez si une RAM ou une eeprom supplémentaire est nécessaire pour répondre aux besoins de mémoire plus importants du système d'exploitation. Certains systèmes d'exploitation ont des exigences de mémoire spécifiques à la cible. Comme tornado/vxworks, les développeurs peuvent allouer les ressources requises en fonction des besoins de l'application au lieu d'allouer des ressources au système d'exploitation. Les développeurs peuvent choisir parmi jusqu'à 80 configurations différentes, allant des conceptions embarquées nécessitant plusieurs kilo-octets de mémoire aux applications complexes haut de gamme en temps réel nécessitant davantage de fonctionnalités du système d'exploitation.
Packages complémentaires du système d’exploitation. Qu'il contienne les composants logiciels requis, tels que les piles de protocoles réseau, les systèmes de fichiers, les pilotes pour divers périphériques couramment utilisés, etc. Dans quelle mesure le système d'exploitation est-il en temps réel ? Le temps réel est divisé en temps réel doux et temps réel dur. Certains systèmes d'exploitation intégrés ne peuvent fournir que des performances en temps réel souples. Par exemple, Microsoft Windows CE 2.0 est un système d'exploitation en temps réel évolutif à micronoyau 32 bits, compatible avec Windows, qui peut répondre aux besoins de la plupart des systèmes intégrés et non intégrés. applications.Cependant, les performances en temps réel ne sont pas assez fortes et il s’agit d’une opération intégrée en temps réel douce.
système opérateur. Quelle est la flexibilité du système d’exploitation ? Si le système d'exploitation peut être personnalisé, c'est-à-dire si les fonctions du système peuvent être adaptées en fonction des besoins réels. Certains systèmes d'exploitation ont une forte personnalisation, comme Linux intégré, tornado/vxworks, etc.
(2) Choix du langage de programmation. Lors du choix d’un langage de programmation, vous devez également prendre en compte de nombreux aspects :
Polyvalence. Avec le développement continu de la technologie des microprocesseurs, ses fonctions deviennent de plus en plus spécialisées et il existe de plus en plus de types. Cependant, différents types de microprocesseurs possèdent leur propre langage d'assemblage dédié. Cela constitue un énorme obstacle pour les développeurs de systèmes, rendant la programmation système plus difficile et la réutilisation des logiciels impossible à réaliser. Les langages de haut niveau ont généralement moins de contact avec la structure matérielle de machines spécifiques. sont disponibles pour la plupart des microprocesseurs. Bon support et bonne polyvalence.
portabilité. Étant donné que le langage assembleur est étroitement lié à un microprocesseur spécifique, un programme conçu pour un certain microprocesseur ne peut pas être directement transplanté sur un autre microprocesseur d'un type différent. Par conséquent, la portabilité est médiocre. Les langages de haut niveau sont communs à tous les microprocesseurs, de sorte que les programmes peuvent s'exécuter sur différents microprocesseurs et sont plus portables. C'est la base de la réutilisation des logiciels. efficacité. De manière générale, plus le langage est de haut niveau, plus le compilateur et la surcharge sont importants, et plus l'application est volumineuse et lente. Cependant, s'appuyer uniquement sur des langages de bas niveau, tels que le langage assembleur, pour développer des applications entraîne des problèmes tels qu'une programmation complexe et de longs cycles de développement. Il existe donc un compromis entre le temps de développement et les performances d’exécution.
Maintenabilité. Les langages de bas niveau tels que le langage assembleur ne sont pas maintenables. Les programmes linguistiques de haut niveau sont souvent de conception modulaire et les interfaces entre chaque module sont fixes. Par conséquent, lorsqu'un problème survient dans le système, le problème peut être rapidement localisé dans un certain module et résolu dès que possible. De plus, la conception modulaire facilite également l'extension et la mise à niveau des fonctions du système.
Performances de base. Il existe de nombreux types de langages utilisés dans le processus de développement de systèmes embarqués. Les langages de haut niveau les plus largement utilisés incluent Ada, C/C++, Modula-2 et Java, etc. Le langage Ada est strictement défini, facile à lire et à comprendre, et dispose d'un riche support de programmes de bibliothèque. Actuellement, il est largement utilisé dans les domaines de la défense, de l'aviation, de l'aérospatiale et d'autres domaines connexes, et occupera toujours une place importante dans ces domaines à l'avenir. . Le langage C dispose d'un support étendu pour les programmes de bibliothèque et constitue le langage de programmation le plus largement utilisé dans les systèmes embarqués. Il occupera encore longtemps une place importante dans le domaine des applications de systèmes embarqués. C++ est un langage de programmation orienté objet qui est également largement utilisé dans la conception de systèmes embarqués, tels que GNU C++. Visual C++ est un environnement de développement intégré qui prend en charge la programmation visuelle et est largement utilisé dans le développement de programmes GUI. Cependant, par rapport au C++, le code cible du C++ est souvent plus volumineux et plus complexe. Ce facteur doit être pleinement pris en compte dans les applications de systèmes embarqués.
(3) Processus de développement de logiciels. Le processus de développement de logiciels embarqués est différent du processus de développement de logiciels généraux. Il comprend principalement les étapes suivantes :
(4) Documents de développement de logiciels. Dans le processus de développement et de conception des produits embarqués, la phase de développement complète la mise en œuvre des produits système. Cette étape nécessite également la réalisation d'une série de documents. Ces documents sont très importants pour finaliser la conception et la maintenance des produits. , tâches techniques, etc. documents, rapports de plans techniques, spécifications de produits, conditions techniques, instructions de conception, rapports de tests, rapports de synthèse, etc.
Les tests de systèmes embarqués comprennent généralement trois parties : les tests logiciels, les tests matériels et les tests unitaires. Les tests généraux du matériel du système comprennent les tests de fiabilité et les tests de compatibilité électromagnétique. Il existe actuellement des normes nationales et internationales obligatoires en matière de compatibilité électromagnétique.
Les méthodes et principes de test des logiciels système embarqués sont fondamentalement les mêmes que ceux des logiciels généraux. Lors du test d'un logiciel, des instances de test ou des séquences de test sont généralement requises. Il existe deux sources de séquences : l'une est conçue par l'utilisateur et l'autre. est une séquence de test standard. Quel que soit le type d'instance de test, l'instance doit être capable de trouver plus d'erreurs avec une probabilité élevée, mais il existe certaines différences dans le contenu du test :
(1) Les logiciels embarqués doivent fonctionner de manière stable pendant une longue période.
(2) Les logiciels embarqués ne font généralement pas l’objet de mises à jour fréquentes de version.
(3) Les logiciels embarqués sont généralement utilisés dans les applications critiques.
(4) Les logiciels embarqués doivent être responsables de la défaillance et de la fiabilité du produit, ainsi que du matériel embarqué.
(5) Les conditions du monde réel sont asynchrones et imprévisibles, ce qui rend les tests de simulation très difficiles.
En raison de ces différences, les tests de logiciels système embarqués se concentrent principalement sur les quatre aspects suivants :
(1) Parce que le temps réel et la simultanéité sont difficiles à satisfaire en même temps, la plupart des tests se concentrent sur les tests en temps réel.
(2) La plupart des systèmes temps réel ont des contraintes de ressources et nécessitent donc davantage de tests de performances et d'utilisabilité.
(3) La couverture du code peut être testée à l'aide d'outils de suivi en temps réel dédiés.
(4) Le niveau de test de fiabilité est bien supérieur à celui des logiciels généraux.
En outre, les tests de performances constituent également l'une des activités de test les plus importantes à réaliser lors de la conception de systèmes embarqués et ont un impact décisif sur les systèmes embarqués.
En raison de la nature particulière des systèmes embarqués, le système dispose de diverses plates-formes matérielles et logicielles, chacune étant spécialement conçue pour différentes applications. Par conséquent, les logiciels d'application sont rarement universels entre les différentes plates-formes et les systèmes embarqués ont une vitesse de mise à jour relativement rapide. Afin de protéger les investissements existants, d'utiliser pleinement les ressources logicielles existantes et d'accélérer le développement des produits, la transplantation de logiciels est devenue très fréquente dans le domaine de l'embarqué.