Leader de l'offshore en Europe
Frédéric Lasnier President & Chief Executive Officer
Affichage des contenus web Affichage des contenus web

L'Offre

Conception

Conception Embedded Systems

Depuis de nombreuses années, Pentalog accompagne ses clients dans la phase de conception de leurs produits. Nos consultants, analystes, directeurs de projets et chefs de projet s'impliquent dans la compréhension des métiers et logiques de marché de nos clients, ce qui nous permet de leur proposer une architecture adaptée à leurs exigences. La valeur ajoutée produite est ainsi plus forte sur toute la durée de notre collaboration.

Nos Prestations

  • Exigences : assister les équipes de nos clients dans la définition et la rédaction des besoins. Nous accompagnons nos clients dans la conception de leurs produits en les aidant à rédiger les exigences relatives à leurs produits, en confrontant leurs idées pour en faire ressortir l'innovation.
  • Architecture : proposer des architectures matérielles et logicielles pour un module ou la totalité du produit de nos clients.

Exigences

Les exigences sont la traduction claire des besoins nouveaux ou d'amélioration. Ils nécessitent une bonne compréhension de ce que souhaitent les demandeurs. En fonction de leurs expériences, nos collaborateurs sont à même d'interroger les équipes de nos clients pour bien comprendre les besoins et ainsi rédiger les exigences concernant le produit.

Ci-dessous, voici une liste non-exhaustive des exigences sur lesquelles nous sommes déjà intervenues :

Exigences fonctionnelles

  • Traduit en cas d'utilisation

Exigences logicielle non fonctionnelles

  • Contraintes de temps réel
  • Exécution synchrone/asynchrone
  • Contraintes de performances
  • Sécurité/rentabilité
  • Contraintes de ressources (énergie, CPU, mémoire, ...)
  • contraintes d'IHM

Exigences d'architecture

  • Contraintes logicielle / Contraintes Hardware
  • Système distribué / système analogique, mécanique, réseau

Exigences physiques

  • Consommation électrique
  • Sécurité/rentabilité
  • Taille et poids
  • Protection et robustesse

Exigence du cycle de vie

  • Certifications
  • Exigences de maintenance
  • Exigences de ligne de production

Exigences Business ou industrielle

  • Robustesse / Coûts
  • Design / Couts de production
  • Temps de production

Architecture

Nos équipes accompagnent nos clients dans la définition de l'architecture des modules composant le produit. Nos ingénieurs connaissent bien les contraintes industrielles : ils doivent souvent choisir les composants/modules à implémenter qui sont "juste bon/suffisant" pour couvrir les fonctions nécessaires, réduisant les coûts au maximum tout en respectant les exigences décrites.

Voici quelques exemples d'architectures logicielles que nous pouvons mettre en oeuvre :

Boucle de régulation simple

  • Le logiciel a une boucle simple.
  • La boucle appelle des sous-programmes, dont chacun gère une partie matérielle ou logicielle.

Système contrôlé par les interruptions

  • Les tâches effectuées par le système sont générées par différents types d'événements.
  • Une interruption pourrait être générée, par exemple, par un temporisateur à une fréquence prédéfinie ou par un contrôleur de port série qui reçoit un octet.
  • Le système est utilisé quand les programmes de traitement d'événements nécessitent un temps d'attente réduit et les programmes de traitement d'événements sont courts et simples.
  • Normalement, ces types de systèmes exécutent une tâche simple dans une boucle principale, mais, en utilisant un planificateur de tâches complexe, cette méthode rapproche le système d'un noyau multitâche avec des processus discrets.

Mode multitâche coopératif (multitâche non préemptif)

  • Il est très similaire à la boucle de régulation simple, à part le fait que la boucle soit cachée dans une interface de programmation.
  • Le programmeur définit une série de tâches. Chacune a son propre environnement dans lequel elle peut "fonctionner". Lorsqu'une tâche est inactive, elle appelle un sous-programme inactif.
  • Les avantages et inconvénients sont très similaires à la boucle de régulation, sauf qu'il est plus simple d'ajouter un nouveau logiciel en écrivant une nouvelle tâche ou en faisant des ajouts à l'interpréteur de la file d'attente.

Mode multitâche préemptif ou multifil

  • Un morceau de code bas niveau change de tâche ou de fil sur la base d'un temporisateur (connecté à une interruption, on considère généralement qu'il a un noyau «système d'exploitation»).
  • Il introduit plus ou moins de complexité liée à la gestion des tâches multiples qui fonctionnent de manière conceptuelle en parallèle.
  • L'accès aux données partagées doit être contrôlé par une stratégie de synchronisation, comme les listes des messages en attente, les sémaphores ou un système de synchronisation non bloquant.
  • Les sociétés utilisent en général un système d'exploitation temps réel (RTOS), ce qui permet aux programmeurs de logiciels de se concentrer sur la fonctionnalité du dispositif plutôt que sur les services du système d'exploitation, au moins pour les grands systèmes.

Micro-noyaux et exo-noyaux

  • Un micro-noyau est une évolution logique depuis un système d'exploitation temps réel. D'habitude, le noyau du système d'exploitation alloue de la mémoire et change l'unité centrale en différents fils d'exécution. Les processus en mode utilisateur implémentent des fonctions importantes comme les systèmes de fichiers, interfaces réseau etc.
  • En général, les micro-noyaux réussissent lorsque le changement de tâches et la communication entre tâches est rapide et échouent lorsqu'ils sont lents.
  • Les exo-noyaux communiquent efficacement par des appels normaux aux sous-programmes. Les équipements matériels et toute la partie logicielle du système sont disponibles et extensibles par les programmeurs d'applications.

Noyaux monolithiques

  • Un noyau relativement grand avec des capacités sophistiquées est adapté à l'environnement embarqué (par ex.: Embedded Linux et Windows CE).
  • Par conséquent, il est très productif pour le développement; par contre, il a besoin de ressources matérielles beaucoup plus importantes, il est souvent plus cher et, à cause de la complexité de ces noyaux, il peut être moins prévisible et fiable.
  • Des ports vers les jeux de puces embarquées sont disponibles.
  • Ils permettent de réutiliser le code disponible publiquement pour les pilotes d'unités, serveurs Web, barrières de sécurité etc.
  • Les systèmes de développement peuvent commencer par des séries larges de fonctionnalités. La distribution peut être paramétrée pour exclure les fonctionnalités inutiles afin d'économiser sur la mémoire.
  • Beaucoup d'ingénieurs considèrent que l'exécution du code d'application en mode utilisateur est plus fiable, plus facile à déboguer et, par conséquent, le processus de développement est plus facile et le code plus facilement portable.
  • Les caractéristiques qui nécessitent une réponse plus rapide que celle qu'on peut garantir peuvent souvent être ajoutées aux équipements matériels.

Systèmes d'exploitation personnalisables exotiques

  • Une petite partie des systèmes embarqués nécessite un comportement sans danger, opportun, fiable et efficace qui ne peut pas être obtenu avec l'une des architectures ci-dessus.
  • Dans ce cas, une organisation construit un système convenable. Dans certains cas, le système peut être partitionné en "contrôleur de mécanisme" à l'aide de techniques spéciales et en "contrôleur d'affichage" avec un système d'exploitation conventionnel. Un système de communication passe les données entre les deux.

Composants logiciels additionnels

  • Beaucoup de systèmes embarqués ont des composants logiciels de couche supérieure additionnels.
  • Ces composants se composent de :
    • Piles de protocoles réseaux comme CAN, TCP/IP, FTP, HTTP et HTTPS
    • Capacités de stockage incluses comme FAT et systèmes de gestion de mémoire flash
    • Si les dispositifs embarqués ont des capacités audio et vidéo, alors les pilotes et codecs adéquats seront présents dans le système.
  • Pour les noyaux monolithiques, beaucoup de ces couches logicielles sont incluses. Dans la catégorie RTOS, la disponibilité des composants logiciels additionnels dépend de l'offre commerciale.

Domaines Concernés

  • Energie / Domotique : acquérir l'idée et la transformer en exigences fonctionnelles, et proposer l'architecture la plus adaptée pour y répondre.
  • Industrie : analyser les exigences fonctionnelles fournies par notre client pour produire une architecture et la développer.
  • Telecoms : analyser les demandes d'évolution pour définir une architecture et la mettre en oeuvre.












 

Contacts

Mickael Hiver
Responsable de la Business Line Embedded Systems
Centre d'Innovation, Bâtiment C
16 rue Léonard de Vinci
45100 Orléans
Tél. : +33 2 38 25 30 30
Fax : +33 2 38 25 30 31
Photos tous droits réservés