SoC Hamdi -chap4

800 vues

Publié le

IMI5-IIA5
Chapitre 4 :
Systèmes sur puces : NoC, NVIC, Timers, ADC, DAC

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

Aucune remarque pour cette diapositive

SoC Hamdi -chap4

  1. 1. Chap 4 : Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Mustapha Hamdi mfhamdi@gmail.com IMI5 Trimestre1 2013-2014
  2. 2. Page  2 Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Réseaux sur puce « NoC » Exynos 5 dual de samsung
  3. 3. Page  3 Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Réseaux sur puce Efficacité accrue au niveau des communications => solutions à base de réseaux sur puce (Networks on Chip, NoC) *  Infrastructures de communication configurables  Caractéristiques proches de celles des réseaux : topologie, technique de commutation, algorithme de routage,…  Mais avec des spécificités : taille, consommation, fiabilité, …
  4. 4. YOUR LOGO Page  4 Qu'est-ce qu'un NoC ? • Un réseau d'interconnexion relie des routeurs ou switches, auxquels sont connectées les IP • Diverses topologies peuvent être utilisées, souvent régulières • On retrouve classiquement une partie des couches du modèle OSI (surtout au niveau des couches basses) Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers
  5. 5. Page  5 Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers
  6. 6. Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Page  6 Bus : ligne de communication reliant les différents composants, ou le SoC et ses périphériques mustapha.hamdi@insat.rnu.tn
  7. 7. YOUR LOGO Page  7 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SOC: BCM2835 Block Diagram ARM1176JZ Réseaux sur puce :Network On chip NoC:
  8. 8. Page  8 Bus pour systèmes embarqués: Bus AMBA: Advanced Microcontroller Bus Architecture Conçu par ARM Permet de simplifier l’integration au niveau système. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers mustapha.hamdi@insat.rnu.tn
  9. 9. Page  9 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Advanced High-performance Bus (AHB) : Bus système rapide, synchrone, multimaître.. Advanced System Bus (ASB) : AMBA ASB une alternative au système AHB , utilisé dans les cas ou les hautes performances du bus AHB ne sont pas nécessaires. Advanced Peripheral Bus (APB) APB (Advanced Peripheral Bus) : bus périphérique, plus lent et de plus faible consommation (pour périphériques lents), synchrone, maître unique.. mustapha.hamdi@insat.rnu.tn
  10. 10. Page  10 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Exemple : mustapha.hamdi@insat.rnu.tn
  11. 11. Page  11 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC AHB1ENR 32b OSPEEDER 32b MODER 32b IDR/ODR 16 GPIOx mustapha.hamdi@insat.rnu.tn
  12. 12. Page  12 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Ports GPIO et Bus ARM: RM0090, chapter 6.3, Fig 13 mustapha.hamdi@insat.rnu.tn
  13. 13. Page  13 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC 1<<00 *~(3<<2*00) *~(3<<2*00) Data=GPIOA&(1<<0) GPIOA pin0 pin15 Mode input pour pin0 Frequ = 2 Mhz Masque , data:(0/1) DM00031020.pdf
  14. 14. Page  14 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=(1<<3) |=(2<<2*15) |=(1<<2*15) |=(1<<15) GPIOD pin0 pin15 Mode output Fréq=50MHz Pin 15=1
  15. 15. Page  15 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=(1<<3) ….. ….. …. GPIOD pin0 Pin15,14 Mode output fpin15=50MHz,Fpin14=100 Pin 15=1, pin14=0
  16. 16. Page  16 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=(1<<3) |=(2<<15*2)+(3<<14*2) |=(1<<15*2)+(1<<14*2) |=(1<<15)+(0<<14) GPIOD pin0 Pin15,14 Mode output fpin15=50MHz,Fpin14=100 Pin 15=1, pin14=0
  17. 17. Page  17 DAC Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Fig. 64, RM0090, page 431
  18. 18. Page  18 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC APB1ENR MODER CR DHR12R1/R2 GPIOD pin0Pin 5, 4 DAC control reg Port/pin pour sortie Data holding register 1 et 2 DM00031020.pdf p172
  19. 19. Page  19 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=0x20000000 |=111100000000 |=0x10001 DHR12R1/R2 GPIOD pin0Pin 5, 4 both channels ON; activation Port4/pin5 pour sortie (3<<2*4)+(3<<2*5) 3: analog output Données à convertir
  20. 20. Page  20 DAC Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers
  21. 21. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers
  22. 22. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Groupe Timer Fmax 84 mhz via APB1 Groupe Timer Fmax 168 mhz via APB2
  23. 23. Page  23 Bus pour systèmes embarqués: Bus AMBA: Advanced Microcontroller Bus Architecture Conçu par ARM Permet de simplifier l’integration au niveau système. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers
  24. 24. Page  24 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Advanced High-performance Bus (AHB) : Bus système rapide, synchrone, multimaître.. Advanced System Bus (ASB) : AMBA ASB une alternative au système AHB , utilisé dans les cas ou les hautes performances du bus AHB ne sont pas nécessaires. Advanced Peripheral Bus (APB) APB (Advanced Peripheral Bus) : bus périphérique, plus lent et de plus faible consommation (pour périphériques lents), synchrone, maître unique.. mustapha.hamdi@insat.rnu.tn
  25. 25. Page  25 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Exemple : mustapha.hamdi@insat.rnu.tn
  26. 26. Page  26 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Exemple : mustapha.hamdi@insat.rnu.tn
  27. 27. Page  27 Etude de cas : BUS AHB1 pour GPIOA Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC AHB1ENR 32b OSPEEDER 32b MODER 32b IDR/ODR 16 GPIOx mustapha.hamdi@insat.rnu.tn
  28. 28. Page  28 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Page 178, DM00031020.pdf Etude de cas : BUS AHB1 pour GPIOA mustapha.hamdi@insat.rnu.tn
  29. 29. Page  29 Etude de cas : BUS AHB1 pour GPIOA Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC 1<<00 *~(3<<2*00) *~(3<<2*00) Data=GPIOA&(1<<0) GPIOA pin0 pin15 Mode input pour pin0 Frequ = 2 Mhz Masque , data:(0/1) DM00031020.pdf
  30. 30. Page  30 Etude de cas: Bus APB1 pour Timer2 BUS ARM SoC stm32f407vg: Bus AHB, GPIO, DAC APB1ENR MODER CR DHR12R1/R2 GPIOD pin0Pin 5, 4 DAC control reg Port/pin pour sortie Data holding register 1 et 2 DM00031020.pdf p172
  31. 31. Page  31 BUS ARM TIMER2: RCC->APB1ENR |= 0x01; // Clock for Timer2 Page 172, DM00031020.pdf
  32. 32. Page  32 Etude de cas: Bus APB1 pour Timer2 BUS ARM SoC stm32f407vg: Bus AHB, GPIO, DAC RCC->APB1ENR |= 0x01; MODER CR DHR12R1/R2 GPIOD pin0Pin 5, 4 DAC control reg Port/pin pour sortie Data holding register 1 et 2 DM00031020.pdf p172 mustapha.hamdi@insat.rnu.tn
  33. 33. Page  33 Les TIMERS Les TIMERS 8 Timers DM00037051.pdf, Table 3, p.29 Groupe Timer Fmax 84 mhz via APB1 Groupe Timer Fmax 168 mhz via APB2 mustapha.hamdi@insat.rnu.tn
  34. 34. Page  34 Les TIMERS Les TIMERS 8 Timers DM00037051.pdf, Table 3, p.29 4 sorties MLI Quels PIN ? AF mustapha.hamdi@insat.rnu.tn
  35. 35. Page  35 Les TIMERS Alternates functions RM0090, chapter 6.3, Fig 13 mustapha.hamdi@insat.rnu.tn
  36. 36. Page  36 Les TIMERS Alternates functions: AF1: TIM1/TIM2, AF2 TIM3..5, AF9: can … 16 AF sur chaque pin, la configuration par 4 bits via aux reg AFRL et AFRH
  37. 37. Page  37 Les TIMERS Alternates functions AFRL TIM3..5 0x2 pour configure le TIM3 et TIM4 Guide DM00031020.pdf P283
  38. 38. Page  38 Les TIMERS Alternates functions AFRL pour configurer les pins de 0 à 7 AFRH pour configurer les pins de 8 à 15 Les Timer 3 et 4 à utiliser ici, sont connectés à quel pin ? TIM3: PC6 ..9 TIM4: PD12..15 mustapha.hamdi@insat.rnu.tn
  39. 39. Page  39 Les TIMERS Alternates functions Registre AFR[1]: AFH, pin 0->7 Registre AFR[0]: AFL, pin 8->15 Exemple 4 sorties de TIM3 comme AF via au port C : GPIOC->AFR[0] |=(2<<4*6)+(2<<4*7); // en hexa 0x22000000 GPIOC->AFR[1] [=(2<<4*0)+;(2<<4*1); //pin 8et9 : les 2 premiers bits de AFH en hexa : 0x00000022 Comment configure les 4 Sorties de TIM4 comme AF via au port D: GPIOD->AFR[0] |= ?? Chaque pin est configurable par 4 bits mustapha.hamdi@insat.rnu.tn
  40. 40. Page  40 Les TIMERS Alternates functions TIME R TIM3 (4 chaines) TIM4 (4 chaines) ADC1 input DAC GPIO PC6->PC9 PD12->15 PA0-> PA7 PA4, PA5 “Voir outil Cube MX” Registre AFR[1]: AFH, pin 0->7 Registre AFR[0]: AFL, pin 8->15 Exemple 4 sorties de TIM3 comme AF via au port C : GPIOC->AFR[0] |=0x22000000; GPIOC->AFR[1] [=0x00000022; Exemple 4 Sorties de TIM4 comme AF via au port D: GPIOD->AFR[0] |= ?? Chaque pin est configurable par 4 bits mustapha.hamdi@insat.rnu.tn
  41. 41. Page  41 Les TIMERS Etude de cas: MLI via TIMER 3 mustapha.hamdi@insat.rnu.tn
  42. 42. Page  42 Les TIMERS Etude de cas: MLI via TIMER 3 Mustapha.hamdi@insat.rnu.tn
  43. 43. Page  43 Les TIMERS Etude de cas: MLI via TIMER 3 ccr1 ccr3
  44. 44. Page  44 Les TIMERS Etude de cas: MLI via TIMER 4 TIM4 connecté aux pins PD12…PD15 : LEDS Timer4 en mode PWM à largeur d’impulsion variable Proposer une solution pour rendre la L.I variable
  45. 45. Page  45 Les interruptions Fonctionnement des interruptions • NVIC : Nested Vectored Interrupt Controller • Gère les priorités entre interruptions • Gère la sauvegarde/restauration des registres • Le tout de façon optimisée (tail chaining, stack pop pre-emption, late arrival) • Le fabriquant du micro-contrôleur peut y greffer ses interruptions (ex : UART, DMA, EXTI), le cœur ayant aussi ses propres interruptions (ex : Hard Fault) Mustapha.hamdi@insat.rnu.tn
  46. 46. Page  46 Les interruptions Sources d’interruptions • GPIO • Périphériques autres pour réveiller le cœur • Ethernet • USB OTG • Horloge RTC Mustapha.hamdi@insat.rnu.tn
  47. 47. Page  47 Les interruptions Etude de cas: Interruption par Timer 5 Le processeur genere deux impulsions dans le port E pedant chaque interruption.
  48. 48. Page  48 Les interruptions Etude de cas: Interruption par Timer 5 But : Interruption periodique chaque 1 ms pour générer deux impulsions Solution? Mustapha.hamdi@insat.rnu.tn
  49. 49. Page  49 Les interruptions Mustapha.hamdi@insat.rnu.tn
  50. 50. Page  50 Les interruptions Deux impulsions chaque 1 ms, l’interruption prend ~3.5us. Chaque impulsion sur le port PE08 prend ~0.5 us Mustapha.hamdi@insat.rnu.tn ~3.5us ~0.5 us
  51. 51. Page  51 Les interruptions Clignotement de la led Chaque 100ms Mustapha.hamdi@insat.rnu.tn
  52. 52. Page  52 Les interruptions Mustapha.hamdi@insat.rnu.tn Implémentation d'un régulateur PID IRQ Conversion+PID Autres taches sur le uc: Paramétrage de kp,ki, kd
  53. 53. Page  53 Les interruptions Implémentation d'un régulateur PID Etapes : 1)Activation ADC, TIMER, DAC 2)NVIC 3)Fonction principale 4)Fonction d’interruption L ’ADC effectue une conv chaque 100 us. Le NVIC(ADC_IRQn) interrompe Le prog principale chaque 100 us. Mustapha.hamdi@insat.rnu.tn
  54. 54. Page  54 Les interruptions Activation GPIO ADC Timer DAC: ADC 1,2 Chaines Cr1 et cr2 Pin: PA02 et PA03 analog input Le timer2 comme source de synchronisation TIMER 2: Comme source périodique d’interruption Periode = 1us, f=10 kHz, TIM2->ARR = 8400; DAC : PA04, PA05 are analog outputs TIMER3: Source MLI largeur d’impulsion=sortie de regulateur Freq à choisir Mustapha.hamdi@insat.rnu.tn
  55. 55. Page  55 Les interruptions DAC->CR |=(1<<0)+(1<<16) = 0x00010001; Activation de deux chaines de sortie Mustapha.hamdi@insat.rnu.tn
  56. 56. Page  56 Les interruptions DAC->SQ3 |=(1<<0)+(1<<16) = 0x00010001; Activation de deux entrées PA2 et PA3 SQ1= 10 et SQ1=11, ADC1->SQ3|=0X2 ADC2->SQ3|=0X3 Mustapha.hamdi@insat.rnu.tn
  57. 57. Page  57 Les interruptions Programme principale , Notes et indications : While(1) { Ajustement de Kp : si PE0 et PE05 sont activés au même temps Alors Kp++ : if ((GPIOE->IDR & 0x003f) == (0x01 + 0x20)) Kp++; // manually set Kp Rq 0x003f=111111: masque, 0x01 + 0x20= 100001 : PE0 et PE05 si PE0 et PE04 sont activés au même temps Alors Kp-- if ((GPIOE->IDR & 0x003f) == (0x01 + 0x10)) Kp--; Ajuste de kd via PE01 et PE05 : Kd+0.001 , PE01 et PE04 kd -0.001 Ajustement de Ki via PE02 et PE05, ki+0.0001, PE02 et PE04 ki -0.0001 } Mustapha.hamdi@insat.rnu.tn
  58. 58. Page  58 Les interruptions Fonction d’interruption : indications Conversion ADC1et2 Error[Ptr] = Ref[Ptr] - x[Ptr]; // calculate error Prop = Kp * (float)Error[Ptr]; // proportional part Dif = Kd * (float)(Error[Ptr] - Error[(Ptr-1) & 63]) / Ts; // diff. part Int += Ki * (float)Error[Ptr]; // integral part Reg[Ptr] = (int)(Prop + Dif + Int); // summ all three Sorties : Reg et Error via au DAC1et2 Le DAC est limité entre 0 et 4095 Mustapha.hamdi@insat.rnu.tn
  59. 59. Page  59 Les interruptions Code: Mustapha.hamdi@insat.rnu.tn
  60. 60. Page  60 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  61. 61. Page  61 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  62. 62. Page  62 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  63. 63. Page  63 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  64. 64. Page  64 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn

×