Opamp,flash,crypto,sdio,igwd

Preview:

Citation preview

Les IP de la carte STM32

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

ANNEE UNIVERSITAIRE/ 2014/2015

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

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

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 .

5Amplificateur inverseur

Amplificateur non inverseur

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

7

8

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()

10

FLASH

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)

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

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.

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.

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.

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.

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.

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>

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

communication.

20

CRYPTOGRAPHIE

21

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

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

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.

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

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 

26

DES library functions

27

28

SDIO

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

30

31

32

33

34

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.

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)

37

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);

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); 

40

IWDG

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

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.

43Principales Caractéristiques de IWDG

Décompteur Libre

cadencé par un oscillateur RC indépendant

Reset lorsque la valeur de décomptage est

atteint

44Description Fonctionnelle

Ecriture de 0xCCCC

Ecriture de 0xAAAArechargé

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.

46Conclusion

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