FR 2603410 A3 19880304 FR 8612402 A 19860902 î'ctuellement, sur le marché, il n'existe aucun appareil prévu pour enseigner l'aspect matériel des microprocesseurs. Les écoles se trouvant confrontées à ce problème réalisent généralement elles-mêmes une maquette et, à l'aide d'un analyseur logique ou d'un système de développement, effectuent la mise au point. L'invention concerne un système complet permettant, à la fois, de développer des logiciels et d'étudier le matériel d'un système à microprocesseurs. L'avantage essentiel de l'invention est un coût très nettement inférieur à celui d'un système de développement conventionnel (d'un rapport de 1 a 5) permettant ainsi sa diffusion dans de nombreuses écoles ayant un budget restreint. Pour cela, il a fallu repenser complètement la structure de la configuration. L'invention comprend 3 parties qui sont compatibles entre elles - une maquette pré-cablee (1) sur laquelle l'étudiant peut réaliser une application. - une sonde d'émulation (2) ayant des caractéristiques originales - un système de developpement de logiciels (3) permettant de faire fonc tionner l'application. Ces trois modules forment un système cohérent et indissociable, et résolvent le problème pose. Ces trois éléments sont décrits ci-dessous - La maquette I1 s'agit d'un circuit imprimé comprenant le microprocesseur, une RAM, un support de REPROM, une interface parallèle, une interface série et un générateur de signaux (TffMER). Il s'agit d'une configuration classique qui pourra être modifiee à volonté. Au niveau de l'interface parallèle il est possible de réaliser une application, par exemple la liaison d'interrupteurs et la commande de diodes électro luminescentes D.E.L. Tous les élements, microprocesseurs, memoires t interfaces, sont relies entre eux par des BUS de données, des BUS d'adresses, ainsi que par des signaux RW (lecture, écriture), RAZ (remise à zéro) et d'horloges. Toutes les autres cosses de ces différents circuits intégrés ne sont pas connec tées et sortent par des douilles standard de 1 à 2 mm. Quelques supports de circuits integrés ayant des entrées-sorties connectées également à des douilles sont prévus. De la sorte, l'étudiant peut faire des experiences sur n'importe quel circuit. L'étudiant utilisera cette maquette de la façon suivante I1 établittout d'abord son cahier des charges, etudie sa carte mémoire, effectue les connexions correspondantes par des ficelles de 1 à 2 mm, développe son programme sur un autre module decrit ultérieurement et l'intègre sur la présente carte. Un point très important doit être souligné ; les BUS de données, d'adresses et quelques signaux élémentaires sont pré-cablés car la connexion par fils volants n'apporte rien à l'étudiant au niveau pédagogique. De plus, si ces signaux étaient connectes de cette manière, l'application aurait de sérieux problèmes de diaphonie. Par contre, tous les signaux strategiques (OE, CE, etc...) sont disponibles et doivent être connectés correctement par le stagiaire. C'est donc à celui-ci de choisir son propre type de décodage de la carte mémoire (généralement un 74 LS 138) et de réaliser en conséquence les connexions nécessaires. Il en est de même avec les interruptions de programme qui peuvent être utilisées ou non. Cette carte (1) disposera en outre de deux connecteurs - 1 connecteur extérieur pour additionner des interfaces supplémentaires pour, par exemple, une commande-clavier d'affichage, un simulateur d'as censeur, etc ..... - l'autre connecteur est prévu pour faire la liaison avec le système qui permettra de développer le logiciel (2). Enfin, sur cette maquette pré-cablee, il sera prévu un système permet tant de réaliser l'accès direct mémoire (DMA) (4) De cette façon, la sonde d'émulation (2) pourra se substituer au micro processeur et effectuera un dialogue avec la memoire ou les interfaces D'une façon plus précise, il sera possible de télecharger la RAM et, de ce fait, de mettre le programme en mémoire vive. C'est d'ailleurs pour cette raison que la REPROM n'a pas été soudee sur le circuit mais mise sur support. L'étudiant a la faculté de remplacer la REPROM par une RAM et de travailler avec un logiciel téléchargeable et facilement mo difiable en système central (3). Dans cette procédure de DMA, la vali dation de la REPROM (ou RAM de substitution) peut être réalisée par un multiplexeur (5).Ainsi, le système de DMA commandé par la sonde d'émulation est entièrement transparent a l'utilisateur. Le multiplexeur tantôt donne le contrôle à l'utilisateur, tantôt donne le contrôle à la sonde et est, bien entendu, commandé par la sonde elle-même. Tous les autres signaux pouvant être mis en DMA le sont, et c'est notamment le cas des BUS d'adresses, de donnees et du signal RW. Les autres signaux élémentaires, comme par exemple l'horloge ou le RESET, passeront égale ment par le multiplexeur. Le but de ce système DMA est donc de permettre à l'extension d'accéder facilement aux différentes resssources de la carte pré-cablée. Au ni veau logiciel cette carte sera livrée avec un petit programme élémentai- re permettant de dialoguer avec le terminal. Ce programme pourra être utilise ou non par l'étudiant. Dans la majeure partie des cas, ce der nier developpera une application totalement autonome ayant son propre logiciel. - La sonde d'émulation Cette sonde est un système intermédiaire entré la maquette d'étude (1) et le système de développement (3). La sonde d'émulation (2) comprendra une petite logique et deux connec teurs entree-sortie (6) et (7). Le premier connecteur assure la liaison avec le système de développe ment. D'autres types de communication peuvent être envisagés (liaison RS 232, etc...) mais la solution la plus simple consiste à choisir une liaison parallèle. Les huit bits de données seront soit des codes, soit des informations, et la liaison sera bi-directionnelle. L'autre connecteur assure la liaison avec la carte pré-cablée. Pour cela, tous les signaux DMA étudiés précédemment sont présents. Cette carte com prend, en outre, une petite mémoire connectée sur le BUS de données(8), ayant son propre compteur d'adresses (d'autres mémoires connectées sur le BUS d'adresses peuvent être également envisagees). Les opérations réalisées par cette sonde d'émulation sont directement commandées du système central (3) et sont les suivantes - lecture en DMA dans différents éléments de la carte pre-cablée - écriture en DMA dans les mêmes éléments - execution des programmes à l'aide de la cosse HALT ou MRDY - exécution des programmes avec NMI - téléchargement des programmes en RAM La lecture et l'écriture en DMA s'effectuent en mettant les BUS de la carte pre-cablée en haute impedance et en commutant le multiplexeur en position sonde. L'exécution des programmes se fait tout simplement par la broche HALT du microprocesseur qui sera désactivée. L'exécution d'un programme pas à pas avec NMI consiste à exécuter une instruction suivie d'une interruption non masquable. Après chaque instruc tion il y a une interruption. De la sorte, les registres du microproces seur peuvent être captures au vol car l'on sait que toutes les interrup tions de programmes sont ainsi sauvegardées automatiquement dans la pile. Le but de cette interruption de programme est donc, tout simplement, de faire ressortir tous les registres du microprocesseur et, du même coup, de les enregistrer dans la mémoire de la sonde d'émulation puisque celle ci est connectée au BUS de données. Le téléchargement du programme s'effectue en remplaçant d'abord la REPROM de la carte pré-cablée par une RAM. Ainsi, le programme sera mis en mé moire non permanente. La procédure fait appel, la aussi, au DMA et les instructions sont chargees dans ses mémoires octet par octet. Il s'agit d'une variante de l'écriture DMA. Cette sonde pourra être dotée d'un comparateur d'adresses appelé plus communement "point d'arrêt". Toutefois, cela n'est pas strictement indis pensable car, lors des NMI, le compteur ordinal est poussé dans la pile. De ce fait, il est egalement enregistré dans la mémoire de la sonde et peut être reçu par le système central. Ce dernier a ainsi toute faculte de s'arrêter, s'il le souhaite, sur une adresse donnée. L'inconvénient de ne pas disposer de points d'arrêt matériels est de ne pouvoir faire un déroulement en temps réel. Il ne faut pas oublier, alors, que le système a une orientation pédagogique et qu'une telle fonction n'est pas strictement nécessaire. - Le système de développement Le système de développement (3) est moins original que les deux autres modules décrits précédemment car il s'agit d'un système soit conventionnel, soit sous forme de kit. Cette technique, étant connue en soi, ne sera pas développée ici. Par contre, pour que le système global fonctionne correc tement, il faut un minimum de logiciels dont certains sont spécialisés. On notera, plus précisément - un logiciel qui envoie les commandes à la sonde (lecture DMA, écriture DMA, téléchargement du programme, etc,..) - un logiciel qui, après l'exécution des instructions avec NMI, vient lire la 2AM de la sonde d'émulation ; le rôle de ce logiciel étant de récupé- rer les registres qui ont eté capturés au vol et de les afficher sur l'écran. - un logiciel de modification de registres s'apparentant au précédent qui, en fonctionnant en NMI, modifie le contenu de la pile. De cette façon, l'instruction de retour d'interruption ne remettra pas dans le micropro cesseur les registres précédemment poussés dans la pile, mais des regis tres modifiés. - un logiciel de test préliminaire ; le but de ce logiciel étant de télé charger la RAM de l'application avec des programmes extrêmement simples composés, si possible, de moins de 10 instructions. Ce programme a pour fonction de vérifier que le produit complet et la carte pré-cablée foc- tionnent correctement. En effet, 1 'étudiant effectuant lui-même ses con nexions, on a de fortes chances pour que le système ne fonctionne pas. Le rôle de ce logiciel est de fournir une aide sur l'aspect matériel du microprocesseur. Il sera particulièrement axé sur la création de signaux de type CE. Par exemple, si la RAM de l'application est implantée à l'adresse 1000, le programme téléchargé pourra être constitue d'une instruction de type STA 1000, suivie d'une deuxieme instruction du type JUMP. Ces deux instructions seront exécutées indéfiniment puisque la deuxie me reboucle sur la première, et permettent ainsi de tester le CE de la RAM ainsi que la ligne RW (un simple oscilloscope est suffisant). - Un logiciel permettant l'affichage dynamique de certaines variables du système de développement. Ce logiciel est basé sur les interruptions de programmes et, toutes les 10 millisecondes par exemple, accède soit aux ressources de la car te pre-cablée, soit aux variables en RAM. Un certain nombre de variables peuvent donc être affichées dynamique ment, la lecture desdîtes variables s'effectuant pendant les inter ruptions de programme. - Un logiciel semblable au précédent mais qui permet d'accéder aux res sources du système sur simple demande de l'utilisateur. A cet effet, certaines touches du clavier (notamment les touches du type CONTROL) sont affectées à des zones mémoires ou à des ressources bien precises. Lors de la mise au point, une simple pression sur l'une de ces touches fait alors ressortir sur l'écran les variables ou les ressources con cernées. - Un logiciel d'appliction. Ce sont des logiciels d'exemples de travaux pratiques qui sont teléchar gés directement dans la carte pré-cablée. Le listing de ces logiciels sera fourni à l'utilisateur ainsi que les connexions a realiser sur la carte pré-cablée. On lui proposera des exemples de travaux pratiques qui fonctionnent rapidement. Parmi les exemples simples, on pourra citer la commande d'un chenil lard, la simulation d'ascenseur, etc.... R E V E N D I C A T I O N S 1) Une maquette comprenant tous les éléments d'un système conventionnel a microprocesseur reliés entre eux uniquement par les bus d'adresses de données et les lignes élémentaires de contrôle, les autres signaux logiques pouvant être connectes au moyen de ficelles de câblage. 2) Dispositif selon la revendication 1, permettant la mise en accès direct mémoire du microprocesseur de façon à lire ou écrire, par voie extérieure, sur les bus d'adresses, de données, et de contrôle. 3) dispositif selon l'une des revendications 1 et 2 assurant le téléchargement de la mémoire vive à partir d'un système de developpement ou appareil similaire, le téléchargement s'effectuant par voie d'accès direct mémoire. 4) Dispositif selon l'une des revendications 1 a 3 constitué par un multiplexeur implante sur la maquette pré-câblée permettant de valider les composants de ladite maquette de deux façons différentes : a) soit par voie extérieure préprogrammée en provenance d'un mini émulateur, b) soit par filsvolants, l'utilisateur effectuant lui-même ses sélections. 5) Dispositif selon l'une des revendications 1 a 4, d'interfaçage entre les bus de la maquette pré-câblée et un système de développement ou appareil similaire, comprenant notamment des amplificateurs 3 états ainsi que des bascules de verrouillage. 6) Dispositif selon l'une des revendications de 1 à 5 permettant la capture au vol des instructions lors d'une entrée en interruption, et d'interfaçage avec un système de développement ou appareil similaire. 7) Dispositif selon l'une des revendications de 1 a 6 constitué par un logiciel ou une logique câblée destiné a faire fonctionner l'ensemble en modes pas à pas, modification de registre, lecture écriture en accès direct mémoire, téléchargement d'un programme, affichage dynamique des variables, et tests. 8) Dispositif selon l'une des revendications de 1 a 7 dans lequel l'affichage dynamique des variables s'effectue par voie d'interruption, à chaque interruption les variables étant lues et affichées immédiatement.