Département MC - Service A2E
Rapport de stage de fin d'études
Numérisation Industrielle
LOMBART Thierry
Master Electroniqu...
2/48
Département MC - Service A2E
Sommaire
Présentation d'ArcelorMittal 3
-Le site de Fos-Sur-Mer 3
-Service d'accueil 3
P...
3/48
Département MC - Service A2E
Présentation d'ArcelorMittal
ArcelorMittal est un groupe sidérurgique mondial, il est le...
4/48
Département MC - Service A2E
5/48
Département MC - Service A2E
Présentation du projet
L'objectif de mon stage est de concevoir une carte numérique inte...
6/48
Département MC - Service A2E
Les cartes que j’ai étudiés, TPGE (Gate Pulse Generator Circuit) et TBAA (Buffer Amplifi...
7/48
Département MC - Service A2E
Chaque bloc consiste en un intégrateur et un inverseur, deux détecteurs de zéro et deux
...
8/48
Département MC - Service A2E
Figure 4 : Circuit de commande de gâchette des thyristors
En sortie de la carte, l'impul...
9/48
Département MC - Service A2E
Cette extension est présente pour diminuer la variation de potentielle anode-cathode afi...
10/48
Département MC - Service A2E
Réalisation de la nouvelle carte
J'ai commencé par reproduire et simuler la carte TPGE,...
11/48
Département MC - Service A2E
La numérisation des deux cartes se fera par l'utilisation d'un microcontrôleur, reste m...
12/48
Département MC - Service A2E
Figure 8 : Simulation de trame sous ISIS
De plus avec l'ajout des autres acquisitions e...
13/48
Département MC - Service A2E
Choix de la carte test
Pour le choix du microcontrôleur qui devait être assez rapide po...
14/48
Département MC - Service A2E
- Une taille de 2 MB de mémoire flash et 160 KB pour la SRAM et d'un cache intégré de
2...
15/48
Département MC - Service A2E
Cortex-M4 processeur
Le processeur Cortex-M4 est un processeur de haute performance sur...
16/48
Département MC - Service A2E
Figure 11 : Architecture von Neumann et Harvard
Le cœur pipeline a trois étapes : l'ins...
17/48
Département MC - Service A2E
Carte Xplained Pro
La carte Xplained Pro figure 12 est une plateforme de développement ...
18/48
Département MC - Service A2E
PROGRAMMATION
La quasi-totalité du sujet se fera par le biais de la programmation vu qu...
19/48
Département MC - Service A2E
Voici l'organigramme simpliste du programme à réaliser figure 14.
Figure 14 : Organigra...
20/48
Département MC - Service A2E
Configuration du Buffer
Avant de commencer à faire les conversions de nos signaux, il f...
21/48
Département MC - Service A2E
Figure 16 : Théorie ZCD
Si l'ADC est dans de la zone du "zéro" (si ADC >= seuil de déte...
22/48
Département MC - Service A2E
Il faut alors configurer les registres de comparaisons TC_RA, TC_RB et TC_RC, où Ra est...
23/48
Département MC - Service A2E
Cette fonction figure 21, fait le lien entre un des canaux du Timer Counter à l'une des...
24/48
Département MC - Service A2E
Pour induire ce retard, il faut jouer sur les valeurs des registres RA et RC qui corres...
25/48
Département MC - Service A2E
Interruption
Une interruption doit être implantée afin de permettre la suppression des ...
26/48
Département MC - Service A2E
Hardware
Adaptation en aval du microcontrôleur:
Il faut en premier lieu réduire les amp...
27/48
Département MC - Service A2E
Le même circuit est réalisé pour l'adaptation de la tension de commande UC comprise ent...
28/48
Département MC - Service A2E
Adaptation en amont du microcontrôleur
Comme mentionné plus haut, le microcontrôleur SA...
29/48
Département MC - Service A2E
Figure 27 : Différentes connectibles utilisées
Comme présent sur la figure 28, les impu...
30/48
Département MC - Service A2E
Travail restant à faire
Comme précisé plus haut, la pulse n'est pas totalement "carré" ...
31/48
Département MC - Service A2E
Industrialisation futur
L'industrie avec l'émergence constante des nouvelles technologi...
32/48
Département MC - Service A2E
Consommation des microcontrôleurs
L'autonomie d'un système reste l'un des facteurs crit...
33/48
Département MC - Service A2E
Les techniques de récoltes d'énergies sont de plus en plus implantés par des grosses co...
34/48
Département MC - Service A2E
L'une des approches conventionnelles pour l'acquisition des données est d'activer le mo...
35/48
Département MC - Service A2E
On peut voir un croissement des courbes quand la première option produit de meilleurs r...
36/48
Département MC - Service A2E
Standard) ainsi que leur authentification par des algorithmes tels que MD5 (Message Dig...
37/48
Département MC - Service A2E
pour valider l'authenticité d'un client amovible, stockage de petits volumes de données...
38/48
Département MC - Service A2E
Figure 34 : Schéma fonctionnel du microcontrôleur Kinetis avec l'ajout d'un bloc dédié ...
39/48
Département MC - Service A2E
Conclusion
Les différents exemples montrent que les microcontrôleurs peuvent être spéci...
40/48
Département MC - Service A2E
Abréviations
ADC Analog to digital Converter
ALU Arithmetic logic unit
ARM Advanced RIS...
41/48
Département MC - Service A2E
TTL Transistor Transistor Logic
UART Universal Asynchronous Receiver Transmitter
UDIV U...
42/48
Département MC - Service A2E
Bibliographie
[1] An introduction to the ARM Cortex-M4 Processor, ARM, Mars 2011.
[2] E...
43/48
Département MC - Service A2E
ANNEXE
1 - Module SILCO
44/48
Département MC - Service A2E
2 - Déphasage des impulsions en fonctions de Vin
45/48
Département MC - Service A2E
3 - Bloc diagramme correspondant au SAM4SD32/SD16/SA16 100-pin
46/48
Département MC - Service A2E
4 - Entrée/sortie du Level Shifter
5 - Schéma électrique d'un circuit d'adaptation + Le...
47/48
Département MC - Service A2E
6 - Schéma électrique du SAM4S-100 broches
7 - Photo d'une carte TPGE et TBAA
48/48
Département MC - Service A2E
8 - Photo d’un moteur au finissage
Type 2 Moteurs à courant continu en série
Induits co...
Prochain SlideShare
Chargement dans…5
×

Rapport Stage

72 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
72
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
1
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport Stage

  1. 1. Département MC - Service A2E Rapport de stage de fin d'études Numérisation Industrielle LOMBART Thierry Master Electronique, Système et Télécommunication Université de Nice Sophia-Antipolis 2014-2016
  2. 2. 2/48 Département MC - Service A2E Sommaire Présentation d'ArcelorMittal 3 -Le site de Fos-Sur-Mer 3 -Service d'accueil 3 Présentation du projet 5 -Présentation des cartes étudiées 5 -Informations complémentaire sur le train à bande 5 -Fonctionnements des cartes 6 -Réalisation de la nouvelle carte 10 -Les PIC: Tests et résultats 11 -Microcontrôleur SAM4S 13 -Cortex-M4 15 -Carte Xplained Pro 17 -Programmation 18 -Buffer 20 -Configuration d'ADC 20 -Fonction Zero Crossing detector 20 -Utilisation des Timer 21 -Fonction déphasage 23 -Interruption 25 -Carte d'adaptation 26 -Adaptation en aval du microcontrôleur 26 -Adaptation en amont du microcontrôleur 28 -Travail restant à faire 30 Industrialisation futur 31 -Aspect consommation 32 -Aspect sécurité 35 Conclusion 39 Abréviations 40 Bibliographie 42 Annexe 43
  3. 3. 3/48 Département MC - Service A2E Présentation d'ArcelorMittal ArcelorMittal est un groupe sidérurgique mondial, il est le plus important producteur d'acier au monde, il produit acier, aciers plats, aciers longs, acier inoxydable, câbles et tôle forte, servant à la construction (stade de Geoffroy Guichard à Saint-Étienne), emballage alimentaire destiné à la réalisation des cannettes et des conserves, automobile (caisse en blanc, carrosserie, essuie-glaces...) et différents appareils électroménagers. Avec 98,088 millions de tonnes produites en 2014. Le groupe est présent dans 60 pays et regroupe 230 000 salariés dans le monde. Le site de Fos-sur-Mer : L’usine de Fos-sur-Mer a été créée en 1971. L’usine est bâtie sur une surface de 1600 hectares (4 km par 4 km) dont seuls 600 sont occupés par les installations industrielles Le site emploie 2500 salariés et 1500 sous-traitants, ce qui en fait le deuxième employeur industriel du département. L'usine a une capacité de production annuelle de plus de 4 millions de tonnes d'acier, dont 120 nuances sont réalisables suivant les additions chimiques, les traitements thermiques, les procédés industriels et les modes opératoires choisis pour parvenir au produit fini, destinées aux marchés de l'automobile, de la construction et des aciers pour tubes (pipelines, gazoducs). Présentation du service d'accueil A2E : Le service A2E, automatisme électronique et électrotechnique composé de 21 personnes dont (12 techniciens et 7 cadres), il fait partie du département Maintenance Centrale. Le service a pour but l'amélioration de la fiabilité des installations : éradication des pannes, élaboration des plans de maintenance (400 équipements), définition des standards d’installation, de maintenance et d’intervention ainsi que l'internalisation de projets de rénovation d’automatismes et d’électronique de puissance.
  4. 4. 4/48 Département MC - Service A2E
  5. 5. 5/48 Département MC - Service A2E Présentation du projet L'objectif de mon stage est de concevoir une carte numérique interface plus robuste et fiable dans le temps que les cartes analogiques présentent tout en conservant les paramètres. Présentation des cartes étudiées -Informations complémentaire sur le train à bande Le train à bande permet la transformation des brames d’acier de plusieurs centimètres d’épaisseur et atteignant un poids maximum de 38T en bobines de tôles de quelques millimètres d’épaisseur. Pour obtenir ce résultat, trois fours réchauffent les brames à 1200°C puis celles-ci passent entre une série de cylindres où elles sont laminées jusqu’à l’obtention de l’épaisseur désirée (1.2 à 16 millimètres). Elles sont ensuite enroulées en bobine. La vitesse maximale de laminage est de 97 Km/h. Chaque année 4 millions de tonnes d’acier sont laminées. L’ensemble de l’installation occupe 71000 m² dans un bâtiment de 900 m de long. Caractéristiques : - Capacité : 5 millions de tonnes par an. -Largeur des bobines : 650 < 2150 mm -Poids maxi brame : 38 T -Epaisseur : 1.2 > 16 mm Figure 1 : Schématisation du train à bande Une succession de cages dégrossisseuses et finisseuses permet d’atteindre l’épaisseur souhaitée en appliquant un effort de compression sur la brame.
  6. 6. 6/48 Département MC - Service A2E Les cartes que j’ai étudiés, TPGE (Gate Pulse Generator Circuit) et TBAA (Buffer Amplifier Circuit) (Photo annexe 7) se situent au niveau de la zone du finisseur, constituant les cages des finisseuses. Elles génèrent des impulsions pour qui conduisent des thyristors, qui servent à commander 2 moteurs à courant continu en série d’une puissance de 5k Watt (annexe 8). L’annexe 1 représente le synoptique de la commande d’une cage de finisseuse, où la partie encadrée en rouge représente la carte TPGE et en vert la TBAA. -Fonctionnements des cartes La première des deux cartes est donc la carte TPGE qui comme son nom l'indique a pour but la génération d'impulsions. Elle produit un set complet d'impulsions tous les 360°, ces impulsions, identiques et nommées d'une à six sont appliquées à leurs thyristors respectifs précédant les moteurs du finissage. Une grande précision est donc de rigueur car une impulsion décalée simplement d'une centaine de microsecondes peut avoir de lourdes répercussions sur le bon fonctionnement de la carte et de la zone du finissage lui-même. Cette séquence est obtenue à partir de signaux sinusoïdaux d'un transformateur hexaphasé et d'une tension continue de commande. Figure 2 : Schéma électrique d'un bloc TPGE La carte est composée de 3 blocs identiques chacun générant deux trames d'impulsions, composé de deux impulsions comme représenté sur la figure 3. Il y'aura donc 6 trames d'impulsions en sorties de la carte TPGE.
  7. 7. 7/48 Département MC - Service A2E Chaque bloc consiste en un intégrateur et un inverseur, deux détecteurs de zéro et deux amplificateurs d'impulsions Tensions d'entrées d'un bloc: -Référence de phase, un signal sinusoïdal triphasé (220 V, 50 Hz) appliqué aux trois blocs réduit à une amplitude de 29 V -Tension limite, qui est aussi un signal sinusoïdal qui est utilisé pour fournir une ligne de courant alternatif isolé du neutre, s'incrémentant de 60°, elles aussi ont une fréquence de 50 Hz pour une amplitude de 21 V. Une trame d'impulsion est composée de 2 impulsions, la première impulsion est générée lors du "Zero Crossing Detector, ZCD" de la tension limite, ainsi qu'une impulsion dite de "rappel" espacée de 3.3ms ce qui correspond à un déphasage de 60°, cette impulsion de rappel est générée de la même manière mais avec la tension limite n+1 donc déphasée elle-même de 60° par rapport à la tension limite n. Cette impulsion de rappel est une condition pour l’allumage des moteurs, car pour qu’un thyristor s’amorce il faut un ordre de gâchette et que le courant traversant le thyristor reste supérieur à un seuil pendant un certain temps. Lorsque l’on veut démarrer le moteur comme le courant est nul lorsque l’impulsion sera présente sur la gâchette du thyristor celui-ci ne pourra pas conduire puisqu’il n’y aura pas de circulation de courant. Pour pouvoir démarrer il faut donc un thyristor opposé qui s’amorce également, c’est pourquoi l’impulsion d’amorçage d’un thyristor est généré par l’impulsion qui lui est destiné ou l’impulsion du thyristor d’après. Figure 3 : Trames d’impulsion 1 et 2 Ces trois circuits partagent la même tension de commande Uc, tension continue oscillant entre -15V et +15V et entrainant un déphasage sur les impulsions en sortie jusqu'à une demi-période soit 10 ms voir, une suppression totale des impulsions pour une tension Uc inférieur à -7.5V. Le schéma de l'annexe 2 montre ce déphasage. Cette tension de commande est l’image de l’angle de retard à l’amorçage.
  8. 8. 8/48 Département MC - Service A2E Figure 4 : Circuit de commande de gâchette des thyristors En sortie de la carte, l'impulsion est d'une amplitude de 13 V pour une largeur de 200us, le but de la carte suivante TBAA, est la mise en forme des impulsions. En effet en sortie les impulsions seront directement envoyées vers les thyristors. Leurs amplitudes vont donc être réduites à 5 V, et une "extension" va être ajoutée aux impulsions qui est dédiée au thyristor présent sur la figure 6. La carte TBAA est donc une carte amplificatrice d'impulsion destinée à remettre en forme et amplifier les 6 trames provenant de la carte TPGE. Elle est donc elle aussi composée de 6 étages indépendants traitants chacun une trame différente qui sert à commander un des six thyristors. Figure 5 : Schéma électrique d'un block TBAA Chaque étage est composé d'un monostable multivibrateur et de deux transistors. Cette carte est composée de trois fonction : d'un "Pulse Stretcher", "Pulse Amplifier" et d'un "Pulse Summer". Pulse Stretcher : Le monostable multivibrateur accepte les impulsions de la carte TPGE et rajoute à l'impulsion un léger surplus. Cette extension est de l’ordre de 20 us.
  9. 9. 9/48 Département MC - Service A2E Cette extension est présente pour diminuer la variation de potentielle anode-cathode afin qu’elle ne soit pas trop importante et ainsi éviter que le thyristor s’amorce de manière accidentelle. Figure 6 : Extension des impulsions de l'ordre de 20us Pulse Amplifier: Une technologie TTL est utilisée avec un ensemble de 3 transistors qui vont diminués l'amplitude des trames pour retrouver une impulsion comprise entre 5 V et 0 V. Le Pulse Summer comme son nom l'indique va additionner les impulsions pour obtenir une septième trame, le "train d'impulsion" figure 7 qui est destiné à piloter une autre carte "Lockout". Figure 7 : Train d'impulsion La carte possède d'autres fonctions comme la suppression totale des 6 trames ainsi que du train d'impulsion, qui est commandé par la carte TFMA (The Fault Monitor), cette suppression est réalisée quand la carte TFMA envoie un 1 logique sur la base d’un transistor.
  10. 10. 10/48 Département MC - Service A2E Réalisation de la nouvelle carte J'ai commencé par reproduire et simuler la carte TPGE, génératrice d'impulsions avec le logiciel ISIS de Proteus permettant de comprendre plus facilement son fonctionnement. Le but principal étant d'arriver à reproduire/quantifier le déphasage des impulsions par rapport à la tension de commande annexe 2. Cela passe par le calcul de la fonction de transfert du circuit. Le problème que j'ai rencontré avec cette simulation est sa précision, en effet le déphasage obtenu comparé aux vraies cartes n'était pas correct et donc rendait obsolète cette méthode. Cette reproduction hasardeuse était due à la tension de seuil des différentes diodes 1N4148. Bien que ces diodes présentes dans la librairie du logiciel il m'a été impossible de modifier la valeur de la tension de seuil, ou alors de créer un nouveau composant. Avec l'avancement de le Technologie et particulièrement l’essor considérable qu’a connu la microélectronique et notamment les techniques d’intégration, on permit l'amélioration des microcontrôleurs, permettant de faire des calculs toujours plus puissants et rapides, le tout avec un composant pas plus gros qu'une pièce d'un euro, cela ouvre la voie à la numérisation des anciennes structures. Offrant par exemple une diminution de la taille d'une carte, une augmentation de sa robustesse, de sa fiabilité, supprimant quasiment toutes pannes possibles par rapport à un système analogique, réduisant ainsi l'argent alloué à ce type de structure. C'est la solution visant à sécuriser et améliorer le rendement d'une usine. Certaines entreprises comme Arcelor-Mittal possèdent encore énormément de systèmes analogiques anciens, par exemple les cartes sur lesquels j'ai travaillé date d'avant 1990 et on donc bien besoin d'un coup de neuf. Pour cela les microcontrôleurs sont l'une des solutions, un microcontrôleur (ou MCU pour microcontroller unit) peuvent être résumé comme étant un petit ordinateur avec un seul circuit intégré contenant un processeur, une mémoire et des périphériques d'entrées et de sorties programmables. Une mémoire programmable sous forme de RAM, Flash ou ROM est souvent incluse sur la puce. Les microcontrôleurs sont conçus pour les applications embarquées, contrairement aux microprocesseurs qui sont des CPU (Central Processing Unit) utilisés dans les ordinateurs personnels ou d'autres applications à usage général. Les microcontrôleurs sont utilisés dans les produits et appareils à contrôle automatique, tels que les systèmes de contrôle de moteur d'automobile, des appareils médicaux implantables, télécommandes, machines de bureau, les appareils électroménagers, les outils électriques, les jouets et autres systèmes embarqués. En réduisant la taille et le coût par rapport à une fabrication séparée qui utilise un des dispositifs à microprocesseur, une mémoire et des entrées/sorties distinctes, les microcontrôleurs permettent de commander numériquement encore plus d'appareils et de procédés.
  11. 11. 11/48 Département MC - Service A2E La numérisation des deux cartes se fera par l'utilisation d'un microcontrôleur, reste maintenant à définir les besoins pour sa sélection. Les premiers essais ont été faits à partir des microcontrôleurs PIC (Programmable Intelligent Computer), pour finalement travailler sur la carte de développement Xplained Pro, avec comme microcontrôleur un SAM4S de chez Atmel. PIC: Tests et résultats Le logiciel ISIS étant néanmoins puissant, il est un des rares logiciels à proposer la possibilité de simuler certains microcontrôleurs de première gamme, en l'occurrence des PIC du fabricant Microchip. J'ai utilisé des PIC de la famille 8-bits, particulièrement des PIC16F (F pour l'utilisation d'une mémoire Flash) tel le 16F887, pour commencer la programmation. Le 16F887 est donc un microcontrôleur 8 bits, avec 40 broches comprenant 36 entrées/sorties dont 14 peuvent être utilisées comme canaux pour l'ADC et opère dans une échelle de tension de 2 à 5.5V. Avec une vitesse d'opération maximal de 20 MHz et d'une taille de mémoire de 14KB, rajouter à cela un faible coût et un kit de debugger pickit2. J'ai utilisé le compilateur MikroC Pro pour PIC, car facilement accessible et pensé spécialement pour la programmation des PIC. La programmation se faisait en langage C, le compilateur générant un fichier .hex qui était directement implanté dans le microcontrôleur simulé avec ISIS. La facilité de prise en main, sa flexibilité au niveau de la programmation ainsi que son implantation rapide au sein du logiciel de simulation, m'a permis de programmer le microcontrôleur pour faire l'acquisition et le traitement des signaux analogiques grâce au module ADC sur 10 bits. Je me suis aidé de différents cours et exemples trouvés sur internet et particulièrement ce de BIGONOFF fortement utile pour débuter. Comme présent sur les premiers signaux figure 8, la génération d'une trame se faisait correctement tout en respectant les largeurs d'impulsions et la durée d'attente de l'impulsion de rappel de 3.3ms. On peut néanmoins s'apercevoir que l'impulsion à un retard non négligeable sur le passage en "zéro" de l'impulsion.
  12. 12. 12/48 Département MC - Service A2E Figure 8 : Simulation de trame sous ISIS De plus avec l'ajout des autres acquisitions et générations d'impulsions on peut s'apercevoir que certaines impulsions se déformaient figure 9, dues à un temps de monté important ou alors ni plus ni moins à non-génération des impulsions. Figure 9 : Absences/déformations d'impulsions Cela mais en évidence un point important de ce type de microcontrôleur, de la famille des midde-range qui est leur fréquence maximum à laquelle ils peuvent travailler. En effet cette famille peut être cadencée jusqu'à 20 MHz, ce qui certes, avec ce code pas optimisé, est une fréquence insuffisante pour l'utilisation souhaitée. Il a donc fallu voir plus "grand" avec des microcontrôleurs pouvant tourner plus rapidement. Un choix possible était les dsPIC30/dsPIC33F/dsPIC33E toujours de chez Microchip. Les dsPIC (digital signal PICs) sont adaptés aux applications de traitement du signal, permettant par exemple de faire du contrôle vectoriel de moteur, des filtres de type IIR/FIR, la possibilité d'accéder à des blocksets pour MATLAB Simulink permettant de générer du code pour tous les périphériques des dsPIC30 et dsPIC33
  13. 13. 13/48 Département MC - Service A2E Choix de la carte test Pour le choix du microcontrôleur qui devait être assez rapide pour faire l'acquisition des 6 tensions sinusoïdes, de la tension de commande et générer les impulsions par la suite. J'ai fait mes recherches à partir des deux gros constructeurs de microcontrôleur que sont Microchip et Atmel. La carte de développement associé au MCU doit être aussi prise en compte, par rapport à sa taille, sa facilité d’intégration au projet, son prix, etc... Le choix de la carte de développement c'est finalement porté sur la Xplained Pro avec comme type de microcontrôleur un SAM4S (Smart Atmel Microcontroller), doté d'une architecture Harvard ARMv7E-M, et d'un cœur Cortex-M4. Le SAM4S a été développé à partir de 2011 et fait partie de la série des SAM4 comprenant d'autres microcontrôleurs comme le SAM4E (2013) basé sur un cœur Cortex-M4F, premier MCU d'Atmel intégrant un Floating-Point Unit (FPU) qui est une part du système spécialement désigné pour réaliser des opérations comportant des nombres flottant, ou le SAM4C (2014) possédant un double cœur. La raison première de ce choix et tout simplement le prix, en effet nous avons pu par l'intermédiaire d'une connaissance au sein de l'entreprise obtenir la carte gratuitement avec un délai de livraison très rapide. Microcontrôleur SAM4S Les microcontrôleurs de la série SAM4 sont donc composés d'un processeur Cortex-M4. Il y a près d'une quinzaine de dériver du SAM4S. Le MCU que j'utilise est l'ATSAM4SD32C qui est le plus "complet" des microcontrôleurs de la série des SAM4S (La première lettre après le S correspond à la mémoire, D pour dual-bank Flash, A pour une simple Flash, suivit du nombre de bits et du nombre de broches : A pour 48, B pour 64 et C pour 100 broches). Malgré ces différences, la structure reste quasiment similaire pour les MCU, voir en annexe 3 le bloc diagramme correspondant au SAM4SD32. Les avantages du microcontrôleur du SAM4S sont -La rapidité de traitement des données avec une fréquence maximum de 120 MHz ce qui nous permettra d'assurer un temps de montée élevé pour les impulsions. - Un ADC (Analog Digital Converter) 12 bits (4095 niveaux) travaillant à une vitesse d'acquisition 1 000 000 échantillons / secondes (1 MSPS) avec 16 entrées - Six générateurs d'impulsions automatiques (durée configurable de 100 ns à plusieurs ms) grâce aux différents Timers Counter et leurs registres. - L'ADC et les générateurs d'impulsions peuvent fonctionner de manière autonome, c'est-à-dire sans aucune intervention du CPU, ce qui permet au CPU de traiter les données venant de l'ADC.
  14. 14. 14/48 Département MC - Service A2E - Une taille de 2 MB de mémoire flash et 160 KB pour la SRAM et d'un cache intégré de 2MB. Sa consommation est faible, de l'ordre de 200uA/MHz pendant son fonctionnement même si la consommation n'est pas un point critique de ce projet. -100 broches dont 79 pouvant être utilisées comme entrées/sorties, le microcontrôleur s'alimentant en 5V par USB ou par une tension externe entre 1.6V et 3.6 V. C'est d'ailleurs un défaut, car les tensions de sorties ne pourront pas être supérieur à une tension de 3.3V, il faudra donc les amplifier pour retomber sur du 5V. Périphériques SAM4S Quelques périphériques standards du SAM4S que j'ai dû utiliser tels que les Timer, ADC, expliqué dans les chapitres suivants, ainsi que : -DMA controller Direct memory access (DMA) qui est utilisé pour les transmissions de données ente les périphériques et la mémoire, ainsi que de la mémoire à la mémoire à une vitesse élevée. Les données peuvent être rapidement déplacées par le DMA sans l'action du CPU ce qui permet aux ressources du CPU de rester libre pour d'autres opérations. -DAC unit Le module DAC (Digital to Analog Converter) est sur 12 bits, il dispose de deux sorties analogiques, pouvant être conduit comme deux canaux indépendants qu'ils peuvent être utilisés conjointement avec le DMA contrôleur. -Watchdog unit Le watchdog est utilisé pour empêcher le système d'être enfermé par exemple si le programme tombe dans une deadlock. Il dispose d'un compteur 12 bits et peut générer un reset général ou uniquement pour le processeur. De plus, il peut être stoppé quand le processeur est en mode debugge ou repos. -PIO Controller Le PIO (parallel Input/Output). Chaque I/O peut être dédié comme une I/O générale ou peut être assignée à une fonction de l'un des périphériques embarqués. Ceci assure une optimisation efficace des broches du produit. -PMC Le PMC (Power Management Controller) optimise la consommation en contrôlant tout le système et utilisant les horloges périphériques. Le PMC activé/désactive l'horloge des entrées d'un grand nombre de périphériques et du processeur CM4
  15. 15. 15/48 Département MC - Service A2E Cortex-M4 processeur Le processeur Cortex-M4 est un processeur de haute performance sur 32 bits conçu pour le marché des microcontrôleurs. Il offre de très bonnes performances de traitement combiné avec une manipulation rapide des interruptions, un système de débogage renforcé à l’aide de « breakpoint », une faible consommation d’énergie avec des modes veilles intégrés, une plateforme de sécurité robuste intégrant une unité de protection de mémoire (MPU). Figure 10 : Block diagramme d’un Cortex-M4 Cœur du Cortex-M4 Le CM4Coeur est fondé sur une architecture d'Harvard figure 11 (séparant physiquement la mémoire de données et la mémoire programme). L'accès à chacune des deux mémoires s'effectue via deux bus distincts. L'avantage d'utiliser deux bus distincts, est que l'architecture dite d'Harvard permet le transfert en simultané des données et des instructions à exécuter. Par conséquent le CPU aura accès en même temps aux instructions et aux données associées. Cette structure peut être plus rapide à technologie identique que celle de von Neumann figure 11 par exemple qui utilise une structure de stockage unique pour conserver à la fois les instructions et les données demandées ou produites par le calcul. Cependant cet avantage fait que la structure Harvard est plus complexe.
  16. 16. 16/48 Département MC - Service A2E Figure 11 : Architecture von Neumann et Harvard Le cœur pipeline a trois étapes : l'instruction Fetch, l'instruction Décode et l'instruction Exécute. Le processeur va chercher l'instruction de destination de branchement lors de l'étape de décodage lui-même. Plus tard durant l'étape d'exécution, le branchement est résolu et traite l'instruction qui sera la prochaine à être exécuté. Si le branchement n'est pas fait, l'instruction suivante est déjà disponible. Si le branchement est fait alors l'instruction de branchement est mise disponible au même moment ou la décision est prise, limitant le temps de repos à un cycle [1]. Le CM4 Coeur contient un décodeur pour les instructions Thumb et Thumb-2 (extension permettant d'améliorer la densité du code et réduisant la mémoire nécessaire au programme), un ALU (Arithmetic logic unit) avec support pour des multiplications et divisions, un contrôle logique et des interfaces pour les autres composants du processeur. Le Cortex-M4 possède un registre banque et une interface pour la mémoire, 13 registres généraux, deux stacks pointeurs, un programme compteur et des registres spéciaux incluant un registre statut programmable. Le processeur Cortex-M4 est un système de mémoire mappée avec une carte à mémoire simple, fixe jusqu'à 4 gigabits d'espaces destinés à l'adressage de la mémoire, avec certaines adresses dédiées : au code (code space), SRAM (espace mémoire), aux mémoires/appareils externes et aux périphériques internes/externes. Il y a aussi une région particulière à fournir pour le fournisseur d'adressage spécifique. De plus le processeur Cortex-M4 supports des opérations de 32 bits en un seul cycle et supporte aussi des opérations signées et non signées avec les instructions SDIV (Signed divide) et UDIV (unsigned divide) qui prennent de 2 à 12 cycles, dépendant de la taille des opérandes.
  17. 17. 17/48 Département MC - Service A2E Carte Xplained Pro La carte Xplained Pro figure 12 est une plateforme de développement permettant d'accéder facilement aux fonctions du SAM4SD32C. Elle possède un debugger directement implanté ce qui nous permet de la programmer avec un simple câble micro-USB via le logiciel Segger, J-Link. Des cartes d'extensions existent offrant la possibilité d'ajouter d’autres fonctionnalités à la carte comme un écran LCD. Figure 12 : Carte Xplained Pro pour SAM4SD32C
  18. 18. 18/48 Département MC - Service A2E PROGRAMMATION La quasi-totalité du sujet se fera par le biais de la programmation vu que le MCU SAM4S peut le permettre. Pour programmer j'ai utilisé le logiciel IAR Embedded Workbench for ARM de chez IAR SYSTEMS. Le programme sera composé de plusieurs partie .c : -le main : dont la boucle testera le buffer de l'adc avant d'appeler la fonction ZCD. -tc_function : qui va identifier les sorties utilisés par le microcontrôleur via les Timer, l'initialisation du mode correspondant au Timer, ici le mode Waveform. -l'adc_function : identifiant les broches d'entrées, les paramètres d'initialisations de l'ADC lui-même. Ajout des librairies figure 13 nécessaires au fonctionnement du programme comme les drivers ASF (Atmel Software Framework) qui couvrent une large gamme de microcontrôleur (megaAVR, AVRXMEGA, AVR UC3 et la série des SAM). Figure 13 : Librairies nécessaires
  19. 19. 19/48 Département MC - Service A2E Voici l'organigramme simpliste du programme à réaliser figure 14. Figure 14 : Organigramme La première partie est d'acquérir les six signaux analogiques et la tension de commande Uc. Pour cela j'utilise l'ADC qui retourne des valeurs numériques comprises entre 0 et 4095 qui vont être stockées dans des registres. Les valeurs contenues dans les registres vont ensuite être comparé à différents seuils, c'est la fonction ZCD qui a pour but de trouver le passage en zéro sur le sens descendant de la sinusoïde. L'information sur le sens du signal est importante pour ne pas confondre la détection du "zero crossing" (durant la phase descendante du signal) et le moment où la courbe repasse par le zéro mais en dans le sens ascendant.
  20. 20. 20/48 Département MC - Service A2E Configuration du Buffer Avant de commencer à faire les conversions de nos signaux, il faut s’assurer que le buffer du DMA ne soit pas plein Figure 15 : Routine du buffer Configuration de l'ADC L'acquisition des signaux analogiques se fera par l'utilisation de l'ADC, pour cela j'ai dû configurer l'ADC_MR (Mode Register) qui regroupe les paramètres qui définissent l'ADC, je me suis aidé de la Datasheet du microcontrôleur fourni par Atmel. Quelques paramètres comme le Prescal qui permet de configurer la fréquence de l'horloge de l"adc, où 1 < fADCCKL< 22 (MHz). fADCCKL = ( (fPeripheral clock)/(Prescal +1)*2)). Avec fPeripheral clock =40MHz, il faut que Prescal prenne la valeur 0 pour avoir fADC =20MHz qui est la fréquence typique. Chaque canal possède leur propre "Statup time" qui doit être le plus faible possible, dans mon cas le startup time sera égal à 64 périodes de fADCCKL, ce qui nous donne un startup time de 3.2us. Fonction "Zero Crossing Detector" J'ai commencé par déterminer le sens de la sinusoïde pour que si l'ADC est hors de la zone du "zero crossing" on puisse extraire le sens de la pente : Si l'ADC est à une valeur très basse, 200 : alors la prochaine zone du "zéro" sera abordée de manière ascendante. Si l'ADC est à une valeur très haute, 3500 : alors la prochaine zone du "zéro" sera abordée de manière descendante.
  21. 21. 21/48 Département MC - Service A2E Figure 16 : Théorie ZCD Si l'ADC est dans de la zone du "zéro" (si ADC >= seuil de détection 1970) et que l'on se trouve sur la pente descendante, on exécute l'impulsion sur la sorties n et sur la sortie (n-1) afin de générer notre impulsion de rappel, Cas particulier : si x = 1 alors l'impulsion de rappel sera exécuté sur la sortie 6. Figure 17 : Code ZCD De manière idéale, la zone de détection est centré au milieu de la sinusoïde, la zone correspond à la valeur 2048, en tenant compte de la variation de la courbe sinusoïdale dans cette zone (sin(0)), le passage se trouve entre 48.82% et 51.18% de l'échelle de l'ADC. Les seuils de l'ADC sont les valeurs 2000 (début de l'impulsion) et 2096 (fin de l'impulsion). L’utilisation des Timer On va donc utiliser les Timer Counter d'une taille de 16 bits, ceux-ci vont s'incrémenter lors de la détection du "zéro", les six sorties associés au Timer Counter (TC) peuvent générer différents types d'impulsions. Le TIOAx (Timer Counter Chanel x Input/Output Line A) est configuré comme une sortie, il comprend six canaux qui recevront une trame chacun. Le TIOB n'étant pas utilisé.
  22. 22. 22/48 Département MC - Service A2E Il faut alors configurer les registres de comparaisons TC_RA, TC_RB et TC_RC, où Ra est utilisée pour contrôler les sorties TIOA, RB contrôle les sorties TIOB et RC contrôle les deux sorties. Lorsqu'un Timer Counter atteint le seuil RA, la sortie bascule à l'état haut et inversement lorsqu'il atteint le seuil RC, la sortie est mise à l'état bas. Figure 18 : Fonction Waveform, Fonctionnement Timer Il va falloir configurer ces registres pour obtenir une impulsion de 200us, pour cela RA sera initialisé à 2 et RC à 1002. Pour cela il faut prendre en compte la fréquence de l'horloge, ici j'ai choisi comme fréquence "TIMER_CLOCK2" qui correspond à diviser par 8 la fréquence du MCK, Master Clock Register qui est configuré à 40MHz. Avec cette fréquence de MCK, 1 cycle de comptage (ADCCLK période) est égal à 200ns. Le choix de la fréquence "TIMER_CLOCK2" est dû au retard de la tension continue Uc et est expliqué après. Figure 19 : Fonction associée au Timer
  23. 23. 23/48 Département MC - Service A2E Cette fonction figure 21, fait le lien entre un des canaux du Timer Counter à l'une des sorties, ici le Timer Counter 0, TIOA0 sera associé à la sortie PA0 du microcontrôleur, cette association configurée par le constructeur et donnée dans la datasheet. Figure 20 : Multiplexing on PIO Controller A (PIOA) Figure 21 : Code Multiplexing on PIO Controller A (PIOA) Fonction déphasage Une partie fondamentale du projet est le déphasage des impulsions par rapport à la tension de commande Uc. Le procédé est le même que pour les sinusoïdes précédentes où l'ADC va effectuer la conversion en valeur numérique qui va induire un retard ou non. Figure 22 : Seuils de basculement de tension Uc
  24. 24. 24/48 Département MC - Service A2E Pour induire ce retard, il faut jouer sur les valeurs des registres RA et RC qui correspondent aux valeurs de basculement des sorties. Nous avons vue qu'un cycle de comptage du Timer Counter est égal à 200 ns du au choix du "TIMER_CLOCK2". Ici les impulsions doivent au maximum atteindre un retard de 10 ms avant d'être supprimées, ce qui signifie que le TC doit atteindre une valeur de 50 000 cycles pour ce retard. Rappelons que les Timer Counter sont sur 16 bits soit une valeur de 65536, cela n'aurait pas été possible d'atteindre ce retard avec une fréquence plus élevée, avec le mode "TIMER_CLOCK1" où le temps d'un cycle est de 50ns (65 536 x 50 ns = 3.27 ms), d'où le choix du mode "TIMER_CLOCK2 avec certes une précision moindre, mais qui reste plus correcte avec un temps de cycle, soit une précision de 200ns soit de l'ordre 1/1000 d'une impulsion. La fonction déphasage est appelée uniquement quand la valeur de la tension de commande est inférieure à 3072. La fonction comprend une variable nommée "Delay" qui est ajouté aux valeurs contenues dans les registres RA et RC. -Si la ValeurNum est supérieurs à 1024 alors la valeur du "Delay" va être égale : Delay = ((-3072 +ValeurNum) / (-0.04096)) -si ValeurNum= 2048 => Delay =25000 cycles, multipliant cette valeur le temps de cycle de 200ns, on obtiendra alors la valeur du retard de 5ms. 3071 correspond à la valeur (max+1) que peut prendre ValeurNum 0.004096 correspond au pas, ValeurNum pouvant prendre 2048 valeurs (dans cette fonction) entre 3072 et 1024, le pas étant égal au Nombre de ValeurNum/ Nombre de cycle (2048 / 50000). -Si la valeur est maintenant inférieure ou égal à 1023, les impulsions doivent être supprimées, les valeurs contenues dans les registres RA et RC vont être forcés à 0 ne générant pas la moindre impulsion jusqu'à un changement sur la tension Uc.
  25. 25. 25/48 Département MC - Service A2E Interruption Une interruption doit être implantée afin de permettre la suppression des trames en sorties lorsqu’un niveau logique haut sera envoyé sur la broche IRQ du microcontrôleur qui est dédié à cette effet. Ci-dessous la fonction de configuration des paramètres permettant l’interruption, en plaçant la sortie souhaitée à l’état bas lorsqu’un état haut est détecté. Figure 23 : Interruption d’une sortie
  26. 26. 26/48 Département MC - Service A2E Hardware Adaptation en aval du microcontrôleur: Il faut en premier lieu réduire les amplitudes des sinusoïdes pour qu'elles soient compatibles avec le microcontrôleur. Les sinusoïdes seront comprises entre 3.3V et 0V. Pour cela j'ai utilisé un amplificateur opérationnel, le TL074 qui est un amplificateur couramment utilisé, car robuste et il a un faible coût d'achat. Le circuit comprend un montage suiveur permettant une adaptation d'impédance, d’un montage inverseur avec un gain idéal de 0.156 Vs = (R2/R1)*Ve avec R2 = 1540 ohm et R1=10K ohm, ce qui nous donne une sinusoïde de +/- 3.3V. Mais comme les tensions d’entrées du microcontrôleur ne doivent pas excéder les 3.3V et que j’ai effectué mes tests sur le banc de test des cartes TPGE et TBAA, et que les sinusoïdes sont générées par un transformateur que peut envoyer des tensions supérieurs au 21V, la résistance R2 sera plus petite afin de protéger le microcontrôleur d’une évaluation soudaine de la tension. A cela il faut rajouter une composante continue de 3.3V pour retrouver le signal souhaité, composante continue générée à partir d'une tension 15 V qui alimente les anciennes cartes TPGE et TBAA ainsi que leur banc de test, cette tension d'alimentation est gardé afin de rester compatible avec le banc de test. Un régulateur 7805 figure 24 est utilisé pour obtenir une tension de 5V suivit d'un diviseur de tension avec R1=3k9 ohm et R2=2k ohm, Vs = (R1/ (R1+R2))*Ve. La composante continue de 3.3V et la sinusoïde sont ensuite additionné l'une vis-à-vis de l'autre. Figure 24 : Schéma électrique LM7805 Ce circuit est utilisé car le microcontrôleur nécessite un signal très pur et stable pour opérer proprement. De plus si la tension de sortie chute, le LM7805 va injecter plus de courant, forçant ainsi la tension de sortie à revenir à 5V. Donc, le LM7805 contrôle la tension de sortie et la garde à 5V, car le microcontrôleur requière un signal très propre, des condensateurs entre les broches Vdd et Vss sont placées pour filtrer les distorsions causées par le circuit lui-même. Ce 5V servira aussi à alimenter la carte de développement.
  27. 27. 27/48 Département MC - Service A2E Le même circuit est réalisé pour l'adaptation de la tension de commande UC comprise entre +/- 15V pour son adaptation en 0/3.3V. Ce montage est répété six fois pour les six sinusoïdes. L'amplificateur inverseur est préféré à un amplificateur non-inverseur car plus stable. C'est la raison pour laquelle la génération d'impulsions se fait sur le sens descendant de la courbe et non ascendant. Les sinusoïdes d'entrées de la carte électronique et celle en sortie qui iront directement au microcontrôleur, sont déphasées de 180° les unes par rapport aux autres. Pour respecter la génération des impulsions, au passage du "zéro" dans le sens ascendant des premières sinusoïdes, il faudra alors générer l'impulsion non plus sur le sens ascendant mais sur le sens descendant. La figure 25 montre la simulation de cette adaptation. Figure 25 : Simulation de l’adaptation des tensions de références
  28. 28. 28/48 Département MC - Service A2E Adaptation en amont du microcontrôleur Comme mentionné plus haut, le microcontrôleur SAM4S fournit une tension de sortie de 3.3V. Il faut alors amplifier les impulsions pour une amplitude de 5V, pour cela j'utilise un Level Shifter, le 74LVC245A Low-Voltage CMOS figure 26. Ce circuit intégré possède 20 broches et permet donc de passer d'une amplitude d'1.5V au niveau TTL et vice versa suivant la configuration de deux pins, OE (Output Enable Input) et T/R (Transmit/Receive Input), 16 broches (A0-A7, B0-B7) sont utilisées comme entrées/sorties pour la mise à niveau de 8 signaux au maximum. Ce circuit a un temps de réaction très rapide, n'influant pas le temps de monté des impulsions comme on peut le voir en annexe 4. Figure 26 : Schéma des Pinout (Top View) et câblage électrique La connectible entre le banc de test (où se feront les premiers tests) et la carte électronique d'adaptation se fait par le biais de connecteurs fiches bananes directement soudés à la carte. Ce choix est du à leur robustesse et leur facilité d'intégration. Les broches de sorties où sont envoyés les trames après l'adaptation en niveau TTL par le Level Shifter sont connectées à des points test permettant la vérification des impulsions. Le schéma de la carte électronique avec un bloc d’adaptation est présent en annexe 5.
  29. 29. 29/48 Département MC - Service A2E Figure 27 : Différentes connectibles utilisées Comme présent sur la figure 28, les impulsions sont bien générées au passage du "zéro" de la sinusoïde en entrée de la carte électronique, une seule impulsion est générée car je n’avais qu’un seul GBF à ma disposition. Figure 28 : Tension de référence et impulsions
  30. 30. 30/48 Département MC - Service A2E Travail restant à faire Comme précisé plus haut, la pulse n'est pas totalement "carré" mais possède une extension comme montré sur la figure 6. Pour obtenir ce résultat il faut configurer le DAC du microcontrôleur combiné avec l'action d'un Timer Counter. Lorsque l'ADC détecte le zéro crossing, il déclenche un TC qui ne génère aucune impulsion sur sa sortie dédiée, ce sera le DAC "associé" qui générera le premier palier de l'impulsion, le 5V. Lorsque le TC atteint son premier "seuil numérique", il déclenche une interruption qui change le niveau du DAC pour sortir une tension d'un volt, on crée donc le deuxième palier de l'impulsion. Enfin lorsque le TC atteint son deuxième seuil, chaque TC pouvant avoir 2 seuils, l'interruption du timer est déclenchée une seconde fois et permet de mettre le signal de l'impulsion au niveau bas. L'un des problèmes que pose l'utilisation du DAC est qu'un microcontrôleur "généraliste" à rarement plus de 2 sorties DAC. Le SAM4S ne possède lui aussi que deux sorties DAC, il faudrait donc utiliser 3 microcontrôleurs pour pouvoir générer nos six trames. Pour lier les impulsions (dû à l'impulsion de rappel délivrée du coup par un autre microcontrôleur), il faut chaîner les 3 microcontrôleurs entre eux. Chaque microcontrôleur utilisant une sortie digitale directement connectée à une entrée digitale du microcontrôleur voisin. La carte de développement Xplained Pro deviendrait alors obsolète et il faudra développer une carte spécifique aux 3 microcontrôleurs. L’annexe 6 montre le schéma électrique du SAM4S, avec les régulateurs de tensions et la partie dédiée à l’USB.
  31. 31. 31/48 Département MC - Service A2E Industrialisation futur L'industrie avec l'émergence constante des nouvelles technologies, a beaucoup évolué. L'utilisation des technologies d'automatisations et de contrôle on eut un grand impact sur l'industrie sur les dix dernières années. Les cartes de types analogiques sont de plus en plus vouées à disparaître au profil des microcontrôleurs et autres types de numérisations. Mais qu'en sera-t-il dans 5, 10 ou 15 ans avec par exemple l'arrivée prochaine de l'Internet des Objets (IdO) dans des grandes entreprises de types automobiles ou de distributions comme ArcelorMittal possédant des milliers d'automates et autres systèmes électroniques. Pour ces entreprises une connexion de tous ou d'une grandes parties de leurs appareils serait un vrai plus, engendrerait une meilleur prévention et suivit du matériels, réduisant ainsi le coût des nombreuses pannes. L'Internet des Objets (IdO) ou Internet of Things (IoT) représente l'extension d'internet des choses et à des lieux du monde physique. C'est un "réseau de réseaux qui permet, via des systèmes d'identification électronique normalisés et sans fil, d'identifier et de communiquer numériquement avec des objets physiques afin de pouvoir mesurer et échanger des données entre les mondes physiques et virtuels". L'IoT considéré comme le Web 3.0 va peu à peu envahir nos objets du quotidien, appareils ménagers et médicaux, capteur de température, voitures connectées, les smartwatches etc... Mais aussi dans le domaine de la santé ou du transport. Avec près de 50 milliards d'objets connectés d'ici 5 ans, représentant près de 1.3 milliard de microcontrôleurs pour l'IoT pour 2020 [4], c'est un marché extrêmement lucratif qui touche un grand marché, allant des dispositifs portés sur soi (wearables), les maisons intelligentes et le monde de l'industrie. Le marché des systèmes embarqués, quand à lui devrait atteindre la somme 258.7 milliards de dollars en 2023 grâce en parti au développement massif des IoT. C'est en effet une estimation publiée par le site Gobal Market Insights en fin août 2016 montrant l'entendu du marché [2]. Dans le même temps Microchip Technology (actuel troisième vendeur de MCU) annoncé ses résultats trimestriels pour la période de fin juin, où la compagnie affiche un nouveau revenu record de l'ordre de 799.4 millions de dollars, tout en ayant fait l'acquisition d'Atmel pour la somme de 3.56 milliards de dollars un peu plutôt cette année [3]. Mais malgré ce marché en pleine effervescence des problèmes comme la consommation d'énergie déjà bien présent dans le domaine de l'embarqué et aussi la sécurité des informations transmises car la connexion d'une multitude équipements à un réseau peut être une faille au niveau sécuritaire et avoir de grave répercussion, nous verrons comment des microcontrôleurs spécialisés proposes des solutions à ces problèmes.
  32. 32. 32/48 Département MC - Service A2E Consommation des microcontrôleurs L'autonomie d'un système reste l'un des facteurs critiques pour les systèmes embarqués, comme le sont régulièrement les objets connectés. C'est d'ailleurs le but d'Atmel avec sa nouvelle gamme de microcontrôleurs SAM L21, mettant l'accent sur sa faible consommation énergétique. Certaines de ces puces pourraient fonctionner jusqu'a 10 ans avec la seule charge d'une batterie, de quoi alimenter justement le marché en plein essor de l'Internet des Objets. En effet, les microcontrôleurs 32 bits Ultra low power SAM L21 ne consomme que 35uA/MHz [7] en activité alors que les MCU faible consommation sont plus souvent situés dans une fourchette de consommation comprise entre 100 et 200 uA/MHz. La série SAM4S atteint les 200 uA/MHz en mode dynamique avec une fréquence de fonctionnement basse ; 30 mA à 120 MHz et 1uA à 1.8V en mode de secours avec l'horloge en temps réel (RTC) en fonctionnement. Pour ce faire, les MCU d'Atmel utilisent un cœur ARM Cortex M0+ cadencé à 42 MHz. En veille, les MCU SAM L21 se contentent d'une consommation inférieure à 200 nA. Cette gamme de SAM L21 s'appuie sur un système avancé de gestion des domaines d'alimentation comme le power management. Le Cortex-M0 propose des performances moins élevé, avec des tailles de mémoires moindres, mais entièrement tournée vers la frugalité énergétique, pensée pour l'Internet des Objets. Il est certes moins puissant mais il est largement capable de faire tourner des systèmes d'exploitation de type RTOS (Real Time OS) très répandus dans l'IOT. Ils peuvent être utilisés dans des détecteurs de fumée, alarmes, et d'autres systèmes dotés de capteurs. De plus la plateforme proposée par Atmel est suffisamment économe en électricité pour pouvoir s'alimenter soi-même en utilisant des techniques de récolte d’énergie (Energy Harvesting) pouvant exploiter les variations de température, les vibrations ou les rayonnement UV. Figure 29 : Anatomie d'un réseau de capteur sans fil incorporant des techniques de récoltes d'énergies [8]
  33. 33. 33/48 Département MC - Service A2E Les techniques de récoltes d'énergies sont de plus en plus implantés par des grosses compagnies de production de MCU, tels que Texas Instruments, STMicroelectronics, Silicon Labs, NXP Semiconductors et Microchip Technology. Ces microcontrôleurs incluent une très faible consommation de puissance à l'état actif, un courant de veille extrêmement faible et la capacité de changer rapidement entre ces deux modes, temps de réveil (Wake-up time) car durant cette période le CPU n'effectue pas de tâches et consomme quand même de l'énergie. Puissance totale consommé = Puissance mode actif + Puissance mode veille + Puissance due au réveil, figure 30. Puissance mode actif (ou Puissance dynamique) = C * V² * f, où C est la capacitance du circuit, V la tension appliqué et f et la vitesse de transition. Figure 30 : Low Power Design [9] L'ARM Cortex-M Energy Mode 2 (EM2) et l’instruction Wait-for-Event (WFE) sont particulièrement utiles pour réduire la consommation des microcontrôleurs sur lesquels ils sont implantés. Comme son nom l'indique cette instruction permet au CPU d'attendre pour un évènement particulier, au lieu de scruter en continu. L’EM2 qui possède un mode "deep-sleep" active le microcontrôleur pour fournir un haut degré d'autonomie de fonctionnement tout en conservant une faible consommation énergétique. Les hautes fréquences d'oscillations du cœur sont mises hors tension, mais les périphériques de faible énergie continue de fonctionner à une fréquence de 32Khz ainsi que le RTC. Sous ces conditions le CPU ne tourne pas, de sorte que le MCU procède à des opérations avancées en mode veille. La consommation en EM2 est de l'ordre de 0.9 uA. Fonctions ARM Cortex-M La partie qui va suivre montre différents exemples d'économie d'énergie rapporté à l'acquisition d'échantillons/seconde que peut faire un microcontrôleur par l'intermédiaire de son module ADC utilisé pour faire l'acquisition de données analogiques, ce qui est l'une des fonctions principales de mon projet.
  34. 34. 34/48 Département MC - Service A2E L'une des approches conventionnelles pour l'acquisition des données est d'activer le mode Capture de L'ADC avec un Timer et transférer les données vers le bus DMA. Prenons comme exemple le microcontrôleur "EFM32WG230F256-QFN64" de chez Silicon Labs qui propose une consommation de courant de 165uA pour une vitesse d'acquisition d'1 K échantillons/seconde et de 350uA pour 32K d'échantillons/seconde. Cette méthodes permet une bonne utilisation de l'interaction périphérique, elle n'utilise pas de microcontrôleur spécial ni d'instruction. Les résultats sont représentés en rouge sur la figure 31. La seconde option (en vert sur la figure 31) est donc l'utilisation du mode EM2 afin de garder le MCU en mode repos jusqu'à ce qu'une interruption le réveil. L'interruption peut être activée par de nombreux évènements, incluant un timer spécial qui opère pendant que le cœur est en mode EM2. Cette fonctionnalité active le microcontrôleur pour revenir à pleine vitesse en tout juste 2us. Le MCU tire un courant de repos de 0.9uA. Cela a pour but d'optimiser le temps passer en mode "Ultra-low-power" et réduit le courant requis pour une vitesse d'acquisition d'1 K échantillons/seconde à 60uA, ce qui est mieux que la première méthode. Cette technique est adaptée pour les applications commandées par interruptions, mais en fonction de circonstances particulières, il existe d'autres possibilités de réduire la consommation d'énergie. Pour la troisième méthode (en bleu sur la figure 31) le mode EM2 est aussi utilisé, mais cette fois au lieu d'attendre une interruption, on utilise un jeu d'instruction possédant l'instruction WFE. Cette instruction active le MCU pour répondre à un évènement externe ou interne comme ceux générés par une interruption. Au lieu de faire la transition de la boucle principale dans une interruption, cependant, le MCU est réveillé par le EM2 et exécute simplement l'instruction suivante, laquelle élimine la latence du a l'interruption. Cette approche n'est pas adaptée pour toutes les applications, cependant elle peut être utilisée pour faire chuter la consommation à 20 uA pour 1K échantillons/s de données réceptionnées. Figure 31 : Consommation de courant vs échantillonnage en fréquence [10]
  35. 35. 35/48 Département MC - Service A2E On peut voir un croissement des courbes quand la première option produit de meilleurs résultats que les deux autres méthodes respectivement proches de 4 K d'échantillons/s pour l'option 2 et de 20 K d'échantillons/s pour la troisième. De plus ces 3 applications sont utilisables avec la récupération d'énergie et le taux d'acquisition des données reste très faible. Aspect sécurité L'un des aspects tout aussi important que la consommation et la sécurité, en effet avec le développement de l'Internet des objets, des problèmes sur la manière de protéger le volume énorme de données transmises et stockées par les appareils connectés. Les microcontrôleurs qui prennent en charge des algorithmes standards de cryptage, de décryptage et d'authentification permettent d'atténuer les problèmes liés à la sécurité des données. Il devient également important de protéger les dispositifs IoT contre des instructions pouvant révéler d'importantes informations de sécurité, que ce soit dans le domaine privé comme le contenu de notre réfrigérateur, connaître nos déplacements vis à vis de la multitude d'objets connectés que nous portant au quotidien, mais aussi dans le domaine de l'industrie avec la sécurisation de code d'accès ou de projet en développement. Des microcontrôleurs prenant en charge la protection du code, la détection d'intrusion et d'autres fonctionnalités de sécurité avancées permettent de protéger les dispositifs contre ces types d'attaques. Les chapitres suivant vont traiter de différentes fonctionnalités de sécurité clefs des microcontrôleurs à envisager pour des conceptions axées sur l'IoT. Si l'on souhaite protéger ses données IoT, il existe plusieurs algorithmes et protocoles de sécurité standard qui permettent de sécuriser de manières efficaces les données pendant leur transmission et leur stockage. Certains microcontrôleurs récents intègrent ces fonctions communes sur puce. Les fonctions les plus fréquentes sont liées au cryptage des données des messages, au décryptage des données à l’aide d’une clef connue du seul destinataire, et à l'authentification des données du message afin de vérifier qu’elles ne sont pas falsifiées. Ces fonctions standard forment la base de toutes les techniques de sécurité réussies. Fonctions de cryptage standard Les microcontrôleurs modernes commencent à inclure des accélérateurs matériels, sous forme de périphériques spécialisés, pour simplifier et accélérer le traitement des données sensibles pour le stockage ou la transmission. Par exemple la gamme des PIC32MZ présente un moteur de cryptage matériel qui accélère les fonctions de cryptage fréquentes. Le schéma fonctionnel du moteur de cryptage est représenté sur la figure 32. Ce microcontrôleur possède un générateur de nombre aléatoires (obtenu en utilisant de multiples oscillateurs en anneaux et le bruit thermique du au circuit intégré [6]) pour un chiffrement/déchiffrement optimum des données via le système moderne et renforcé AES (Advanced Encryption Standard), plus anciens comme le DES et TDES (Triple Data Encryption
  36. 36. 36/48 Département MC - Service A2E Standard) ainsi que leur authentification par des algorithmes tels que MD5 (Message Digest 5) et SHA (Secure Hash Algorithm). Ils sont gérés par la machine à états finis de cryptage à l'aide du stockage de paquets en lecture et écriture et de données locales. Un contrôleur DMA et deux mémoires FIFO (First In First Out) fournissent un stockage local supplémentaire pour faciliter le traitement des données indépendant pour le processeur ce qui permet d'améliorer les performances générales du système et libère le processeur pour gérer des fonctions de plus haut niveau. Figure 32 : Fonctions de cryptographie standard du MCU PIC32MZ [5] A droite sont indiquées les performances des différents moteurs de cryptages et peuvent servir à adapter les exigences de bande passante pour une application spécifique. Le PIC32MZ atteint plus de 700 Mbps, même pour les algorithmes les plus complexes, ce qui en fait une solution idéale pour des dispositifs devant envoyer des ensembles de données volumineux en temps réel ou des dispositifs qui stockent des données. Périphériques de sécurité Dans certaines applications IoT, il peut s'avérer plus efficace d'utiliser un dispositif périphérique pour gérer des fonctions de cryptages et stocker des clefs de sécurité. Cette caractéristique est particulièrement utile si le meilleur microcontrôleur de l'application ne présente aucune fonction de cryptage intégrée. Par exemple l'ATSHA-204A-SSHDA-B d'Atmel fournit une authentification et une validation sécurisée pour les opérations au niveau de l'hôte et du client. Il implante un algorithme de hachage SHA-256 pour les normes MAC et HMAC. Un numéro de série de 72 bits unique garanti permet de suivre les unités, tandis qu'une mémoire EEPROM de 4.5 Ko peut servir de stockage pour les clefs et les données. Plusieurs options d'I/O permettent au dispositif de communiquer avec un MCU à l'aide d'une interface à un fil compatible UART ou une interface d'1 MHz compatible I²C. En mode un fil, il est possible d'alimenter le dispositif au moyen du signal de données afin de simplifier l'utilisation dans des consommables à faible coût. Les cartes de développement ATSHA204 ou ATAES132 équipée de connecteurs pour les périphériques se connecte facilement à une carte d'évaluation de microcontrôleur standard afin de créer une interface de développement efficace pouvant par exemple lutter contre la contrefaçon
  37. 37. 37/48 Département MC - Service A2E pour valider l'authenticité d'un client amovible, stockage de petits volumes de données de manière sécurisée sur puce pour la configuration, l'étalonnage et l'utilisation de données ou encore pour la vérification et la validation des mots de passe utilisateurs. Figure 33 : Plateformes de développement pour dispositifs d'authentification par cryptage ATSHA204 d'Atmel. Sécurisation du microcontrôleur à l'aide d'une mémoire FRAM Une autre méthode de sécurisation est l'utilisation d'une mémoire FRAM (Ferroelectric Random Access Memory). Cette technologie offre un accès beaucoup plus rapide en lecture et écriture à la mémoire volatile que les technologies Flash car possible de stocker toutes les données opérationnelles sur une mémoire FRAM non volatile sans altérer les performances, les données sensibles devant être sauvegardées entre les cycles d'alimentation peuvent être gérées plus facilement et de manière plus sûre. Seuls les programmes autorisés peuvent accéder à des segments de mémoire spécifiés, ce qui permet de protéger les données sensibles contre le piratage et les intrusions externes. Les microcontrôleurs MSP430FR5969 de chez Texas Instrument fournissent également un moteur d'accélération AES qui permet d'accélérer davantage le traitement des données sécurisées. Architecture et protection contre les intrusions fiables Les appareils IoT corporels risquent d'être des cibles pour les intrusions matérielles puisqu'il est plus facile d'y accéder qu’aux équipements réseaux traditionnels. Les fabricants de microcontrôleurs ont commencé à ajouter des fonctionnalités matérielles pour faciliter la détection et le signalement d'évènements d'intrusions pouvant indiquer un piratage. La gamme de MCU Kinetis de Freescale (le MK21DX128 par exemple) présente un module de détection d'intrusion dédié, il fournit un stockage de clefs sécurisé avec détection d'attaque physique et d'intrusions internes et externes comprenant 32 octets de stockages sécurisé, jusqu'à 8 broches d'intrusion externes pouvant générer des interruptions sur un événement d'intrusion, un registre chronologique d'intrusions qui enregistre le moment où un événement d'intrusion est détecté.
  38. 38. 38/48 Département MC - Service A2E Figure 34 : Schéma fonctionnel du microcontrôleur Kinetis avec l'ajout d'un bloc dédié à la sécurité
  39. 39. 39/48 Département MC - Service A2E Conclusion Les différents exemples montrent que les microcontrôleurs peuvent être spécialisés dans différents domaines pour répondre aux problèmes que l'on peut rencontrer de manières fréquentes au sein d'une installation. Que ce soit au niveau de la consommation, avec la puce développé par Atmel pouvant s'alimenter avec une seule charge pendant près de 10 ans est un grand pas en avant pour l'autonomie d'un système, couplé à cela des techniques de récupérations d'énergies comme l'utilisation de panneaux solaires, des vibrations dû à d'autres installations proches ou un changements de température, ou encore les améliorations du Cortex-M Cœur via les modes EM(1,2,3,4) permettent la aussi de réduire la consommation. Tous ces détails peuvent permettre à un système de quasiment s'auto-alimenter et donc d'augmenter sa fiabilité, coût sur le long terme. Avec l'arrivé pressenti de l'IoT, numérisant encore plus d'appareils, la demande va être encore plus forte. De plus avec le problème de sécurisation que peut entrainer la connexion des systèmes, là encore les microcontrôleurs peuvent s'adapter et par l'ajout de simples composants peuvent renforcer le niveau de sécurité d'une installation. Rendant ainsi les microcontrôleurs utiles dans de nombreux domaines. Pour conclure sur le stage en lui-même, il m'a permis d'évoluer au sein d'un grand groupe qu'est ArcelorMittal, pendant 6 mois, me faisant connaître le quotidien d'un employé, le déroulement de la fabrication de l'acier, ainsi que les infrastructures associés. Il m'a permis de travailler de façon autonome sur un projet, répondant à un cahier des charges strictes, de connaître de nouveaux équipements, microcontrôleurs PIC, Atmel, les différents softwares associés à leurs programmations. De développer mes connaissances en termes de programmation au niveau des microcontrôleurs. D'établir des schémas/cartes électriques pour l'adaptation aux exigences du microcontrôleur. J’ai aussi énormément appris en côtoyant de nombreuses personnes, de différentes professions et de différents niveaux, aussi bien au niveau technique qu’humain. J’ai travaillé avec des électriciens, des informaticiens et des techniciens de production de différents niveaux. Ceux travaillant sur le terrain ont pu apporter leur connaissance du matériel qui peut parfois manquer. De plus, le stage s’est bien déroulé grâce à la bonne ambiance dans le service et cela m’as permis d’avoir une nouvelle approche du monde du travail, univers dans lequel il faudra évoluer dès à présent.
  40. 40. 40/48 Département MC - Service A2E Abréviations ADC Analog to digital Converter ALU Arithmetic logic unit ARM Advanced RISC Machines ASF Atmel Software Framework CMOS Complementary metal oxide semi-conductor CM4 Cortex-M4 CPU Central processing unit DAC Digital to Analog Converter DMA Direct memory access dsPIC Digital signal PICs EEPROM Electrically Erasable Programmable Read Only Memory EM2 Energy Mode 2 FIFO First In First Out FPU Floating-Point Unit FRAM Ferroelectric Random Access Memory HMAC Keyed-Hash Message Authentification Code IDC Insulation-displacement connector I²C Inter-Integrated Circuit I/O Input/output JTAG Join Test Action Group MCU Microcontroller unit MCK Master Clock Register MPU Memory Protection Unit PIC Programmable Intelligent Computer PIO Parallel Input/output PMC Power Management Controller ROM Read-Only Memory RTC Real Time Clock RTOS Real Time Operating System SAM Smart Atmel Microcontroller SDIV Signed Division SRAM Static Random access memory TBAA Buffer Amplifier Circuit TC Timer Counter TFMA The Fault Monitor TIOAx Timer Counter Chanel x Input/Output Line A TPGE Gate Pulse Generator Circuit
  41. 41. 41/48 Département MC - Service A2E TTL Transistor Transistor Logic UART Universal Asynchronous Receiver Transmitter UDIV Unsigned Division USB Universal serial bus WFE Wait for Event ZCD Zero Crossing Detector
  42. 42. 42/48 Département MC - Service A2E Bibliographie [1] An introduction to the ARM Cortex-M4 Processor, ARM, Mars 2011. [2] Embedded System Market Size by application (Automotive, Industrial, Consummer Electronics, Telecommunication, Healtcare, Military & Aerospace), By Product (Software, Hardware) Industry Outlook Report, Regional Analysis, Application Development Potential, Price Trends, Competitive Market Share & Forecast, 2016-2023, publié sur Gobal Market Insights le 30 août 2016. [3] Microchip reports record revenue in recent quarter, publié sur Bizjournals le 8 août 2016. [4] IoT Market to Boost Scale of Multicore MCU Shipments by Staggering 1.3 Bilion Units by 2020 publié par ABI Research le 1 décembre 2015. [5] Datasheet PIC32MZ Embedded Connectivity (EC) Family, Microchip. [6] Datasheet Section 49. Crypto Engine and Random Number Generator (RNG), Microchip. [7] Atmel invente une puce ARM dont l’autonomie se compte en décennies, publié par Aruco le 2 Avril 2015. [8] Energy Harvesting Enables Ultra-Low Power Applications, publié par Ecnmag le 12 décembre 2011. [9] Low Power Design Basics, How to Choose the Optimal Low Power MCU for Your Embedded System, Silicon Laboratories Inc. [10] Low Power MCUs for Energy-Harvesting Applications, Digi-Key Electronics, publié le 18 Mars 2015.
  43. 43. 43/48 Département MC - Service A2E ANNEXE 1 - Module SILCO
  44. 44. 44/48 Département MC - Service A2E 2 - Déphasage des impulsions en fonctions de Vin
  45. 45. 45/48 Département MC - Service A2E 3 - Bloc diagramme correspondant au SAM4SD32/SD16/SA16 100-pin
  46. 46. 46/48 Département MC - Service A2E 4 - Entrée/sortie du Level Shifter 5 - Schéma électrique d'un circuit d'adaptation + Level Shifter et carte Xplained Pro
  47. 47. 47/48 Département MC - Service A2E 6 - Schéma électrique du SAM4S-100 broches 7 - Photo d'une carte TPGE et TBAA
  48. 48. 48/48 Département MC - Service A2E 8 - Photo d’un moteur au finissage Type 2 Moteurs à courant continu en série Induits communs, excitations indépendantes Modèle GE MCF Vitesse de base 200 RPM Vitesse maxi 460 RPM I nominal induit 7350 A*2 Tension nominale d’induit 700 V Di/dt Max 20 In/s Flux maxi courant d’excitation 114 A Flux mini courant d’excitation 35 A Surcharge 1.25 In 2 heures Surcharge 2 In 5 s Induit (E+F) R=1,42 L=40,5 H Inducteur R=1,73 Ohm L=6,5 H

×