|
Les intérêts
d'une telle architecture:
Un
uC 32bits puissant et compact : si votre projet nécessite
bien plus de puissance et capacité que ne peuvent le
fournir les uC 8 et 16 bits conventiels, cette architecture
vous apportera les performances d'un PocketPC à 200MHz
dans un CPU au format BGA de 1 cm de côté. L'ARM9
possède de nombreux périphériques intégrés
(USB, contrôleur NAND, contrôleur vidéo TFT,
SPI, I2C, PWM, ADC, canaux DMA, interface parallèle,
...). Il est donc très facile d'établir un lien
de communication soit sériel soit parallèle avec
un composant externe de type µC ou FPGA.
S'interfacer
avec un µC : si ce composant externe aura pour fonction
de réaliser des opérations soumises à ces
conditions complexes, qui peuvent changer avec le temps, alors
il est préférable d'utiliser un µC et de
réaliser une application en C. Si des contraintes temporelles
strictes sont attendues il est vivement conseillé d'utiliser
un RTOS (noyau temps réel), tel que PICos18, noyau temps
réel gratuit basé sur la norme automobile OSEK.
S'interfacer
avec un FPGA : si ce composant externe doit réaliser
des opérations matérielles complexes (communiquer
sur 10 liens sériels par exemple) mais sans embarqué
pour autant beaucoup d'intelligence autre que celle nécessaire
à l'extraction des données hardwares, mieux vaut
opter pour un FPGA. Si le FPGA est en charge d'effectuer des
acquisitions numériques ou analogiques et de charger
la RAM centrale avec les données acquises, il sera même
possible de connecter le FPGA et le CPU à l'aide d'un
canal DMA qui aura pour but de prendre la main sur le bus système
pour ranger périodiquement les données dans la
RAM. Un driver sous Linux aurait alors pour fonction d'initialiser
le canal DMA approprié puis de transmettre les données
nouvellement stockées à votre application.
Programmation
VHDL : lorsque nous utilisons des FPGA, nous nous orientons
vers les composants CyclonII d'Altera ou Spartan3 de Xilinx.
Les firmwares sont réalisés en VHDL, sous forme
d'entités logicielles réutilisables. Chaque développement
fait l'objet d'une phase de simulation avec Modelsim afin de
garantir les chronogrammes d'accès aux hardwares.
Puissance
et souplesse : le couple FPGA/CPU constitue sans aucun doute
la plate-forme matérielle et logicielle la plus performante
(intelligence du CPU et rigueur du FPGA) tout en assurant un
grand niveau de souplesse et de maintenabilité grâce
à la programmation "tout logiciel" de ce couple.
Il arrive en effet que le CPU soit en charge de la programmation
de la flash série du FPGA lorsque le besoin de reprogrammation
à distance se fait sentir...
|