Modularité en bloc des codes de configuration numérique
METHODE DE CONFIGURATION STRUCTUREE DU SYSTEME NUMERIQUE
Gestion et Traitement des données Le choix de la plateforme de développement a été orienté à ceux utilisant des microcontrôleurs à cœur standard. Dans ce domaine, les microcontrôleurs tournant autour d’un cœur 8051 d’INTEL, restent les plus répandus et accessibles. Ils ont surtout l’avantage d’être le pionner dans l’architecture CISC et dispose actuellement toutes les ressources nécessaires pour tout développement de système embarqué. Le microcontrôleur AN2131QC de la carte UNIO52 Sur la carte UNIO52, le système est piloté par un microcontrôleur AN2131QC, qui possède un cœur 8052, avec une capacité de mémoire interne ou RAM de 512 octets et de mémoire ROM de 8 Ko (au lieu des 128 octets de RAM et des 4Ko de ROM sur le standard 8051). Ainsi pour ménager les 512 octets d’espace mémoire interne disponible, les variables mettant en œuvre une quantité et combinaison de registres mémoires assez importante sont placées dans un espace de mémoires alloué extérieurement. Pour le compilateur RIDE, cet espace externe est défini par l’attribut XDATA. C’est le cas de la variable Params, qui est une concaténation de plusieurs variables et dont le résultat représente un « drapeau » définissant l’action demandée. at 0xA0B xdata struct { WORD LL; Chapitre 5 Modularité en bloc des codes de configuration numérique 99 WORD UL; WORD LLL; WORD Len; BYTE x1; BYTE Action; WORD Offset; WORD Factor; WORD Pretime; WORD Precount; BYTE x3; BYTE Flag; }Params; Ceci en est de même pour le stockage en bloc et traitement des données venant des convertisseurs ADC multiplexés, dans la variable Data : at 0x1B40 xdata struct { short Adc[8]; } Data; L’utilisation de l’espace de travail externe est surtout incontournable pour le traitement de données spectrométriques, nécessitant un espace de mémoires conséquente pour manipuler les 1024 valeurs de données discrètes d’une chaîne dont la résolution est de 1024 canaux. Pour une résolution de 32bits (double-mots ou DWORD) par canal, la déclaration de l’espace mémoire externe est la suivante : at 0xA20 xdata DWORD Spec[1024]; Les variables Cnt0, Cnt1, Stick, Start_stop, preset_time, clear_time sont aussi placées dans l’espace de mémoire XDATA RAM, pour permettre de passer des données afin de contrôler le fonctionnement du code à partir d’un programme informatique sur un microordinateur hôte. at 0x1B00 xdata WORD Cnt0; at 0x1B02 xdata WORD Cnt1; at 0x1B04 xdata WORD Stick; at 0x1AEB xdata WORD start_stop; at 0x1AED xdata WORD preset_time; at 0x1AEF xdata WORD clear_time; Une des puissances de ces microcontrôleurs en architecture CISC est leurs capacités à exploiter toute combinaison des ressources disponibles. Ainsi on peut étendre les possibilités pour pouvoir utiliser plus d’espace mémoires physiques exploitant toute la capacité d’adressage possible.
Le microcontrôleur CY7C68013A de la carte EFM01
Avec la carte EFM01, le microcontrôleur CY7C68013A qui y est implanté appartient à la famille Cypress EZ-USB® FX2LP™, à cœur 8051 et disposant d’un block de mémoire statique plus conséquent de 16Ko, en comparant à celui que possède le microcontrôleur AN2131Q. Le microcontrôleur EZ-USB implanté sur la carte EFM01 est un modèle CY7C68013A-56LFXC, ayant un package QFN de 56 pins à ports multiplexés. Figure-5. 3 : Caractéristiques physiques du microcontroleur CY7C68013A Chapitre 5 Modularité en bloc des codes de configuration numérique 103 Figure-5. 4 : Schéma de fonctionnement interne du microcontroleur CY7C68013A Le CY7C68013A a surtout la capacité de traiter et transférer les données en masse (paquets allant jusqu’à 512 octets à la fois) et à Haute Vitesse (« High-speed bulk transfer”) [63]. Pour que les périphériques d’entrées et de sorties puissent s’y accommoder, la transaction des données est alors effectuée à travers un block de mémoire tampon (FIFO) agencé suivant des points terminaux (EP). Figure-5. 5 : Agencement des mémoires tampons (FIFO) du microcontroleur CY7C68013A, en points terminaux (End Point) Du côté de l’ordinateur hôte, la communication s’effectue à travers le processeur d’interface série (SIE) qui y est implanté. Ce processeur SIE facilite la prise en charge du protocole de communication USB et le transfert des paquets de données utilisateur vers les points terminaux (EP) appropriés. Chaque point terminal est réalisé avec des registres tampons de 2ko, et est accessible suivant le mécanisme de transfert FIFO, contrôlé par un étage maître extérieur générant les commandes de lecture et d’écriture appropriées : “slave FIFO mode”. Chapitre 5 Modularité en bloc des codes de configuration numérique 104 Le mode d’interface est défini suivant le code de configuration écrit sur les bits [1 :0] du registre de fonction spéciale IFCONFIG.