46
Les IP de la carte STM32 RÉALISÉ PAR: KASSAB KARIM HAIDRI ARIJ CHAABANE CHOUROUK MAATOUG LOBNA ANNEE UNIVERSITAIRE/ 2014/2015

Opamp,flash,crypto,sdio,igwd

Embed Size (px)

Citation preview

Page 1: Opamp,flash,crypto,sdio,igwd

Les IP de la carte STM32

RÉALISÉ PAR: KASSAB KARIM HAIDRI ARIJ CHAABANE CHOUROUK MAATOUG LOBNA

ANNEE UNIVERSITAIRE/ 2014/2015

Page 2: Opamp,flash,crypto,sdio,igwd

2PLAN Introduction Présentation de l’OP AMP Présentation du FLASH Présentation du CRYPTO Présentation de SDIO Présentation de IWDG Conclusion

Page 3: Opamp,flash,crypto,sdio,igwd

3Introduction

Dans le cadre de maitriser la programmation sur la carte STM32 nous avons choisi de vous présenter :

Un périphérique système :le FLASH Un périphérique analogique :l’OPAMP Deux périphériques digitaux: le CRYP et l’IWDG Un protocole de communication SDIO

Page 4: Opamp,flash,crypto,sdio,igwd

4OP AMP (Operational Amplifier)

C’est un amplificateur différentiel.

Il permet de modéliser les opérations mathématiques de base.

Il est utilisé dans bien d'autres applications .

Page 5: Opamp,flash,crypto,sdio,igwd

5Amplificateur inverseur

Amplificateur non inverseur

Page 6: Opamp,flash,crypto,sdio,igwd

6

Les caractéristiques

*Une consommation aussi faible que 2 µA *un courant de sortie élevé (200 mA min.), *grande produit gain-bande (130MHz) * capable de commander une charge de 25 W avec un courant de sortie de 160mA à ± 6V alimentation

La famille STM32L1 plus précisément STM32L152D dispose de trois OPAMP

Page 7: Opamp,flash,crypto,sdio,igwd

7

Page 8: Opamp,flash,crypto,sdio,igwd

8

Page 9: Opamp,flash,crypto,sdio,igwd

9Activer

l’horloge SYSCFG APB

Configurer l'entrée

d’OPAMP en mode

analogique

Configurer l’ OPAMP

Activer l’OPAMP

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,

ENABLE);

GPIO_Init()

OPAMP_Init()

OPAMP_Cmd()

Page 10: Opamp,flash,crypto,sdio,igwd

10

FLASH

Page 11: Opamp,flash,crypto,sdio,igwd

11Une mémoire est un élément de stockage de l’information.

Les bits stockes sont organisés sous forme d’une matrice.Chaque ligne de la mémoire est appelée un mot. Elle est identifiée par une adresse.

Généralement Deux operations sont possibles, toujours sur une ligne : lecture (read) et l'ecriture (write)

Page 12: Opamp,flash,crypto,sdio,igwd

12Types de mémoire FLASH

RAM(random-access memory): memoire volatile Statique (SRAM): l'information est

conservée tant que la tension d'alimentation est présente.

Dynamique (DRAM): il faut recharger (rafraichir) périodiquement les cellules de la mémoire pour conserver les données.

Il existe deux grands types de mémoires

Page 13: Opamp,flash,crypto,sdio,igwd

13ROM (read-only memory): memoire non volatile Mask: le contenu est initialisé au moment de la

fabrication . PROM (Programmable ROM): le contenu peut être

modifié une fois par l'utilisateur, à l'aide d'un équipement spécialisé.

EPROM (Erasable PROM): le contenu peut être effacé et modifié plusieurs fois.

EEPROM (Electrically EPROM): le contenu est effacé électriquement (quelques millisecondes).

Flash: le contenu est effacé électriquement et plus rapidement que sur les EEPROM.

Page 14: Opamp,flash,crypto,sdio,igwd

14Les mémoires FLASH Mémoires non volatiles rapides, à grande densité et bas prix. Le seul INCONVINIENT des mémoires Flash est que l'effacement n'est

possible que dans sa totalité ou par secteurs, mais pas byte a byte   Trois opérations sont possibles dans une mémoire Flash: • programmation: initialement, tous les bits sont a 1. Pour programmer un bit a 0, il faut lui appliquer une tension. Une fois programmée, la mémoire peut garder son contenu pendant 100 ans, sans besoin d'alimentation électrique  •lecture •effacement: la mémoire Flash doit être effacée avant d‘être reprogrammée.

Page 15: Opamp,flash,crypto,sdio,igwd

15Mémoire FLASH sur STM32

Venant compléter l’actuelle gammeSTM32 F4 de ST, les microcontrôleurs STM32 F427 et F437 confirment la domination de la Société sur le marché des produits architecturés autour d’un cœur ARM® Cortex™-M4 .

L’exécution d’applications plus riches, que complètent des ports de communications supplémentaires,

Accélérer la conception logicielle en utulisant des languages de programmation évolué Java™, Microsoft® .Net ou uClinux™

Un niveau de sécurité accru. Une consommation d’énergie optimisée.

Page 16: Opamp,flash,crypto,sdio,igwd

16Programmeur de FLASHST-LINK Le ST-LINK, est limitée que pour une

utilisation avec STM8 et STM32 des familles microcontrôleurs.

Forte augmentation dans le temps de développement et les frustrations de débogage.

Page 17: Opamp,flash,crypto,sdio,igwd

17Jlink la J-Link est le plus rapide émulateur de

débogage disponibles : programmer 1 Mo de mémoire en 4 secondes,

la haute performance : la sonde soutenant un débit élevé de 256 Ko/s.

la fiabilité : Le chargement du code intègre une vérification de chaque bloc en écriture, et une vérification finale (checksum)

la compatibilité : Keil, IAR, Atmel, Atollic, Freescale, Tasking et Mentor Graphics.

Page 18: Opamp,flash,crypto,sdio,igwd

18J-Link Commander

J-Link Commander permet également des téléchargements dans la mémoire flash des systèmes cibles.  J-Link to the PC. Connect target system to J-Link Start J-Link Commander. Type the following commands:

  J-Link> device <devicename> // For a list of known devices, please refer to here  J-Link> speed <speed_khz>  J-Link> r  J-Link> h  J-Link> loadbin <PathToBinFile>, <programmingaddress>

Page 19: Opamp,flash,crypto,sdio,igwd

19J-Flash Lite Connect J-Link sur le PC Sélectionnez l'appareil, l'interface de débogage et la vitesse de

communication.

Page 20: Opamp,flash,crypto,sdio,igwd

20

CRYPTOGRAPHIE

Page 21: Opamp,flash,crypto,sdio,igwd

21

La cryptographie conversion des données lisible en des données illisibles dans le but de la rendre sécuritaire.

Page 22: Opamp,flash,crypto,sdio,igwd

22STM32 package bibliothèque cryptographique

Le HAL contrôle les registres et les fonctions du périphérique STM32 basé sur deux principaux bibliothèques: - Couche de CMSIS:Noyau couche

d'accès périphérique. - STM32 bibliothèque

cryptographique : basé sur une architecture modulaire dont on peut ajouter des nouveaux algorithmes peuvent être ajoutés

RNG RSA HCC AES HASH DES

Page 23: Opamp,flash,crypto,sdio,igwd

23DES (Data Encryption Standard)

Un algorithme de chiffrement symétrique

traite des données des blocs de 64 bits sous le contrôle d'une clé de 64 bits.

Page 24: Opamp,flash,crypto,sdio,igwd

24

ECB :  Electronic codebook 

Le cryptage et le décryptage en utilisant les modes suivants:

Le message à chiffrer est subdivisé en plusieurs blocs qui sont chiffrés séparément les uns après les autres

Page 25: Opamp,flash,crypto,sdio,igwd

25

Dans on applique sur chaque bloc un ‘OU exclusif’ avec le chiffrement du bloc précédent avant qu’il soit lui-même chiffré.

CBC :Cipher Block Chaining 

Page 26: Opamp,flash,crypto,sdio,igwd

26

DES library functions

Page 27: Opamp,flash,crypto,sdio,igwd

27

Page 28: Opamp,flash,crypto,sdio,igwd

28

SDIO

Page 29: Opamp,flash,crypto,sdio,igwd

29Qu’est ce que un SDIO ?

Sécurisé Digital Input / Output (SDIO) est une norme importante pour les appareils qui disposent d'options de mémoire interchangeables

C’est une interface qui étend les fonctionnalités des appareils en utilisant un emplacement de carte SD standard pour donner des dispositifs de nouvelles capacités. Une liste partielle des nouvelles fonctionnalités comprennent: GPS Camera Wi-Fi FM radio Ethernet

Page 30: Opamp,flash,crypto,sdio,igwd

30

Page 31: Opamp,flash,crypto,sdio,igwd

31

Page 32: Opamp,flash,crypto,sdio,igwd

32

Page 33: Opamp,flash,crypto,sdio,igwd

33

Page 34: Opamp,flash,crypto,sdio,igwd

34

Page 35: Opamp,flash,crypto,sdio,igwd

35Pour suspendre une fonction, l'hôte local doit:

Sauvegarder MMC_CMD valeur [DDIR]. Ensemble MMC_IOSR [SUSP] à 1. Envoyer la commande de suspendre (CMD52) et vérifier l'état de la

carte SDIO pour l'acquittement. Répétez la commande aussi longtemps que nécessaire.

Ensemble MMC_IOSR [STOP] pour 1 et lire MMC_IOSR [STOP] jusqu'à 0. Désactiver canal DMA si activé. Enregistrer MMC_NBLK registre. Set MMC_IOSR [SAVE] bit à 1 et vider le FIFO par la lecture MMC_DATA

inscrire jusqu'au vide (signalé par MMC_STAT [AF] = 0. Effacer MMC_IOSR [SUSP] et MMC_IOSR [Enregistrer] bits à 0.

Page 36: Opamp,flash,crypto,sdio,igwd

36Une nouvelle commande peut être envoyée à une autre fonction à ce stade. Pour reprendre la fonction suspendu, l'hôte local doit: Restaurer le contenu FIFO en écrivant dans le registre de

MMC_DATA. Restaurer registre de MMC_NBLK avec la valeur enregistrée. Réactivation canal DMA si en mode DMA. Ensemble MMC_IOSR [RESU] bit à 1. Envoyer la commande de CV (CMD52) avec MMC_CMD [DDIR]

réglé selon la fonction suspendu (nécessaire pour reprendre la fonction

que un multiple-lecture de bloc ou un multiple-écriture de bloc)

Page 37: Opamp,flash,crypto,sdio,igwd

37

Page 38: Opamp,flash,crypto,sdio,igwd

38 Configurer les pérepheriques de SDIO SDIO_InitStructure.SDIO_ClockDiv = 120; //SDIO_INIT_CLK_DIV;

SDIO_InitStructure.SDIO_ClockEdge = SDIO_ClockEdge_Rising;

SDIO_InitStructure.SDIO_ClockBypass = SDIO_ClockBypass_Disable;

SDIO_InitStructure.SDIO_ClockPowerSave=SDIO_ClockPowerSave_ Disable;

SDIO_InitStructure.SDIO_BusWide = SDIO_BusWide_4b;SDIO_InitStructure.SDIO_HardwareFlowControl =

SDIO_HardwareFlowControl_Disable;SDIO_Init(&SDIO_InitStructure); Activer la tension

SDIO_SetPowerState(SDIO_PowerState_ON);

Page 39: Opamp,flash,crypto,sdio,igwd

39 Activer SDIO Clock

SDIO_ClockCmd(ENABLE);

CMD0: mettre à l’etat veille: No CMD response required

SDIO_CmdInitStructure.SDIO_Argument = 0x0;

SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_GO_IDLE_STATE;

SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_No;

SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;

SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;

SDIO_SendCommand(&SDIO_CmdInitStructure); 

Page 40: Opamp,flash,crypto,sdio,igwd

40

IWDG

Page 41: Opamp,flash,crypto,sdio,igwd

41 Le STM32 a deux périphériques de surveillance intégrées qui offrent une combinaison de haut niveau de sécurité, précision de la synchronisation et de la souplesse d'utilisation. Ce sont IWDG( Independant WatchDog) et WWDG( Window WatchDog).

IWDG/WWDG

Détecter et résoudre les

dysfonctionnements

déclencher la réinitialisation du système ou une

interruption

Page 42: Opamp,flash,crypto,sdio,igwd

42

IWDG est cadencé par sa propre horloge basse vitesse dédié (LSI) et reste donc actif même si l'horloge principale échoue.

IWDG est configuré pour s’activer après 2 secondes . LED PB15 indique que le IWDG n’est plus rechargé et va maintenant réinitialiser la carte . LED PB12 s’allume lorsque le redémarrage a été provoqué par le IWDG .

Le IWDG est le mieux adapté pour les applications qui nécessitent le Watchdog afin de fonctionner comme un tout processus indépendant dehors de l'application principale, mais avoir une précision de synchronisation inférieure de contraintes.

Page 43: Opamp,flash,crypto,sdio,igwd

43Principales Caractéristiques de IWDG

Décompteur Libre

cadencé par un oscillateur RC indépendant

Reset lorsque la valeur de décomptage est

atteint

Page 44: Opamp,flash,crypto,sdio,igwd

44Description Fonctionnelle

Ecriture de 0xCCCC

Ecriture de 0xAAAArechargé

Page 45: Opamp,flash,crypto,sdio,igwd

45

Si la fonction "watchdog" est activée via les bits d'option de l'appareil, le watchdog est automatiquement activé à la mise sous tension, et va générer une réinitialisation si le registre clé est écrit par le logiciel avant que le compteur atteint fin de compte.

Le mode de débogageLorsque le microcontrôleur entre en mode débogage (core Cortex®-M3 arrêté), le compteur IWDG soit continue de travailler normalement ou s’arrête, selon la configuration DBG_IWDG_STOP bits dans le module DBG.

Page 46: Opamp,flash,crypto,sdio,igwd

46Conclusion

Cette présentation nous a permis de se familiariser avec les différentes IP de la carte STM, comme connaitre leur configuration.