mika-baumeister-conteneur-navire-unsplash.jpg
Accueil » Actualités » 4 conseils pour concevoir avec succès les problèmes de chaîne d’approvisionnement

4 conseils pour concevoir avec succès les problèmes de chaîne d’approvisionnement



Voici votre feuille de route pour concevoir des systèmes résistants aux interruptions de la chaîne d’approvisionnement.

Les entreprises technologiques aux États-Unis sont aujourd’hui confrontées à deux grands problèmes ; chaînes d’approvisionnement de microprocesseurs et trouver des ingénieurs pour faire le travail. Dans mon dernier article, 5 conseils pour gérer avec succès les pénuries d’ingénierie, nous avons discuté du dernier problème. Dans l’article d’aujourd’hui, nous allons discuter de la façon de concevoir des systèmes embarqués afin qu’ils soient suffisamment flexibles pour gérer les problèmes de chaîne d’approvisionnement.

En ce qui concerne la chaîne d’approvisionnement, le plus gros problème auquel sont confrontées les équipes aujourd’hui est qu’elles ne peuvent pas trouver de stock de leur microprocesseur. Les équipes ont conçu leurs produits avec des produits de stock commun, et puis tout à coup, il n’y en a plus de disponibles. Les délais de livraison de ces pièces peuvent être longs, parfois un an ou plus.

Évidemment, personne ne veut attendre aussi longtemps. Le résultat est que le matériel et les logiciels doivent être modifiés. Vous trouverez ci-dessous quelques conseils pour concevoir et/ou reconcevoir votre produit afin qu’il soit suffisamment flexible pour gérer les problèmes de chaîne d’approvisionnement comme le remplacement d’un microcontrôleur.

Astuce n°1 – Séparez le logiciel dépendant du matériel de la logique métier

Ma première suggestion est que vous conceviez votre logiciel embarqué en deux architectures distinctes ; la logique métier et l’architecture dépendante du matériel. La logique métier contiendra toute la sauce spéciale pour le produit.

Les fonctionnalités, les interactions des utilisateurs, les algorithmes, etc. La logique métier ne dépend pas du matériel. Au lieu de cela, la logique métier dépend d’une interface qui interagit avec le matériel sous-jacent.

L’avantage de l’architecture du logiciel embarqué de cette manière est qu’elle permet aux fonctionnalités du produit d’être facilement portées sur n’importe quel microprocesseur ou microcontrôleur. Les développeurs n’ont pas besoin de se frayer un chemin à travers des appels spécifiques au microcontrôleur ou de s’inscrire dans le code de l’application. Au lieu de cela, ils ne mettent à jour que le code dépendant du matériel derrière l’interface, laissant la logique métier intacte.

L’interface utilisée pour interagir avec le logiciel est une couche d’abstraction matérielle, souvent appelée HAL. De nombreux fournisseurs de microcontrôleurs fournissent des pilotes et des interfaces pour simplifier et accélérer le développement, mais les développeurs ne vont souvent pas assez loin en ajoutant la couche d’abstraction matérielle. Ils considèrent les pilotes comme la couche d’abstraction, ce qui n’est pas correct.

Le résultat est que le code d’application est couplé au code du pilote matériel, ce qui à son tour ajoute plus de temps et d’efforts lorsqu’un produit doit passer à un nouveau microcontrôleur. Des exemples de couches d’abstraction matérielle peuvent être trouvés dans le CMSIS d’Arms.

Astuce #2 – Utilisez les outils de génération de code

Une autre technique que vous pouvez utiliser pour créer des logiciels plus flexibles consiste à tirer parti des outils de génération de code. Un générateur prendra souvent une construction logicielle de haut niveau comme un composant architectural ou même un fichier de configuration, puis générera du code utilisable. Le composant de haut niveau ou le fichier de configuration peut être modifié puis le code régénéré très rapidement.

En général, deux types d’outils de génération de code viennent à l’esprit ; générateurs de pilotes et générateurs « full stack ». Les générateurs de pilotes sont généralement fournis par les fournisseurs de silicium. Le générateur prend la configuration pour différents périphériques, puis génère le code nécessaire pour contrôler le périphérique et interagir avec lui. Les générateurs de pile complète sont des outils de conception comme Matlab qui peuvent être utilisés pour développer l’architecture logicielle, puis générer du code spécifique à la cible.

Les générateurs de code ne génèrent souvent pas le code le plus propre ou le plus efficace, mais ils offrent un niveau de portabilité et d’évolutivité bien au-delà du codage manuel. Si vous concevez et générez automatiquement, puis découvrez que vous ne trouvez pas le microcontrôleur, il peut y avoir une option pour sélectionner une bibliothèque cible différente, puis générer du code pour le nouveau microcontrôleur. La génération de code élimine le besoin de réécrire les pilotes de bas niveau, de supprimer et d’intégrer des packages logiciels et de traiter tous les défis de bas niveau liés au portage de logiciels.

Astuce #3 – Concevoir avec des pièces compatibles

Une autre technique que j’utilise souvent lors de la conception de systèmes embarqués consiste à concevoir avec plus d’une partie à l’esprit. Au début de ma carrière, j’ai travaillé dans l’industrie automobile, ce qui m’a marqué que vous concevez toujours avec une deuxième partie dans l’esprit. Les chaînes d’approvisionnement sont imprévisibles et vous ne voulez pas vous retrouver sans composants critiques.

Lors de la conception d’un système matériel, il est utile d’identifier plusieurs pièces de différents fournisseurs et du même fournisseur qui sont compatibles avec les broches ou presque. Maintenant, vous pensez peut-être qu’il est presque impossible de trouver des pièces compatibles, ce qui peut être vrai.

Cependant, si vous comprenez les différences, l’illustration du PCB peut être conçue de manière à pouvoir gérer l’une ou l’autre partie. De nombreux microcontrôleurs ont des schémas de multiplexage de broches très flexibles. Les plus grands défis peuvent être d’aligner les broches d’alimentation et les broches de programmation.

Dans certains systèmes, il peut même être judicieux de supprimer le souci de compatibilité et de créer à la place des modules de processeur. Il existe de nombreuses solutions existantes pour les processeurs d’application qui sont construits comme un système sur un module (SOM).

Ces modules contiennent généralement toute l’alimentation et fournissent leurs E/S de manière compatible avec les broches. La réplication de ce type de conception peut ajouter de la flexibilité matérielle et même permettre à une gamme de produits de fournir divers degrés de puissance de traitement. L’inconvénient est que cela ajoute des coûts de nomenclature (BOM) pour les connecteurs.

Astuce #4 – Laissez de l’espace sur votre PCB

Les ingénieurs optimisent parfois les machines. Nous voulons construire le système le plus efficace, le plus petit et le plus rationalisé possible. Cependant, lorsque nous construisons un système de cette manière, nous supprimons parfois également la possibilité de mettre à l’échelle et de faire pivoter la conception.

Une technique que j’ai souvent utilisée lorsque je conçois du matériel consiste à laisser un espace supplémentaire sur le PCB autour des composants. Par exemple, je pourrais avoir un microcontrôleur au milieu d’une carte. Je ne mettrai pas d’autres circuits intégrés ou composants aussi près que possible de celui-ci. Au lieu de cela, je creuse un petit espace autour du microcontrôleur pour lui donner de la place.

Si jamais je dois remplacer les microcontrôleurs et reconcevoir le PCB, en laissant l’espace supplémentaire, j’augmente les chances d’avoir l’espace nécessaire pour ne pas avoir à reconcevoir complètement la carte entière. Si je ne laissais pas cet espace et que je devais déménager dans une pièce plus grande, je dois maintenant déplacer presque tous les composants, ce qui prend plus de temps et est plus risqué.

Le microcontrôleur n’est pas la seule partie avec laquelle cela peut être fait. Cela ne fait pas de mal de faire la même chose avec les modules radio, la mémoire, les capteurs et autres composants. Maintenant, vous ne voulez pas devenir fou et augmenter trop la taille de la planche. Certains systèmes ont juste des contraintes mécaniques très strictes et laisser de l’espace ne sera tout simplement pas une option. Cependant, si vous avez de l’espace, mettez-le à profit et protégez la portabilité de votre produit.

Conclusion

Lors de la conception du matériel et des logiciels d’un système embarqué, les concepteurs peuvent supposer que tout ira bien. En fait, les concepteurs doivent faire le contraire et supposer que tout ira mal. Le logiciel sera utilisé dans plusieurs applications et sera porté et mis à l’échelle. Le microcontrôleur que nous avons sélectionné pourrait arriver en fin de vie de manière inattendue ou tomber soudainement à zéro disponible avec de longs délais.

Un peu de prévoyance dans la conception peut aider à garantir que des mesures drastiques ne sont pas nécessaires lorsque l’inattendu se produit dans la chaîne d’approvisionnement. Être proactif, et non réactif, garantira que vous êtes en mesure de fournir des produits à vos clients sans interruption, même si d’autres dans l’industrie peuvent se démener.

A lire également