Brevet FR2715238A1 — publié le 19950721

La présente invention concerne une carte électronique d'émulation et un procédé de conversion de norme pour traduire des signaux émis dans une norme en signaux d'une norme différente. Plus particulièrement, la carte électronique d'émulation traduit les commandes issues d'un contrôleur de dérouleur de bande en commandes SCSI (interface pour petits ordinateurs) pour une unité de sauvegarde, et vice-versa. Il est connu, pour la sauvegarde de données issues de calculateurs, d'utiliser des dérouleurs de bandes. Ces dérouleurs de bandes présentent cependant l'inconvénient d'être relativement lents. En outre, la capacité de stockage de telles bandes est limitée et leurs dimensions sont assez importantes, ce qui entraîne une augmentation rapide des stocks de bandes et une complication de leur gestion. D'autre part, il existe sur le marché d'autres unités de sauvegarde, tels que des lecteurs de cartouches, offrant une grande capacité de sauvegarde, une excellente fiabilité et un débit de lecture et d'écriture élevée. On peut citer par exemple le lecteur Exabyte qui utilise la technologie hélicoïdale et permet d'enregistrer les données en deux densités. Le problème qui se pose alors est de connecter un tel lecteur en lieu et place d'un dérouleur de bande en utilisant le même jeu de commande. Ce lecteur doit être vu par le calculateur comme un dérouleur de bande. Pour ce faire, il est donc nécessaire de traduire les signaux issus du contrôleur de dérouleur de bande du calculateur en signaux lisibles par ledit lecteur. Plus particulièrement, le lecteur, dont il sera fait mention par la suite, fonctionne avec des signaux de norme SCSI, alors que le contrôleur de dérouleur de bande fonctionne avec des signaux de norme différente. Dans la description qui va suivre, il sera question, à titre d'exemple, d'un dérouleur de bande de type MTC-G connecté à un calculateur du type DPS 7000 développé par la socitété Bull et fonctionnant avec des signaux de norme STK spécifique à ces produits. La traduction de signaux susmentionnés se fait donc à l'aide d'une carte électronique d'émulation qui se branche entre ledit contrôleur MTC-G et ledit lecteur Exabyte. La présente invention a donc pour objet une carte électronique d'émulation pour traduire des signaux émis par un contrôleur de dérouleur de bande en signaux SCSI lisibles par une unité de sauvegarde, et vice-versa, caractérisée en ce qu'elle comprend un bus destiné à être relié au contrôleur de dérouleur de bande, un bus SCSI destiné à être relié à l'unité de sauvegarde, un contrôleur de bus SCSI, un microcontrôleur (CPU), une EPROM, une RAM, une FIFO et un séquenceur, ledit séquenceur comprenant: a) des moyens pour transférer les signaux de données du bus relié au contrôleur de dérouleur de bande dans la FIFO, et vice-versa b) des moyens pour signaler au microcontrôleur (CPU) d'effectuer un transfert de type DMA (accès direct mémoire) desdits signaux de données de la FIFO à la RAM, et vice-versa. D'autre part, la présente invention définit également un procédé qui est mis en oeuvre par la carte précitée. Dans un sens, ledit procédé a pour objet un procédé de conversion de norme pour traduire des signaux d'entrée émis par un contrôleur de dérouleur de bande en des signaux de sortie SCSI lisible par une unité de sauvegarde, ledit procédé comprenant les étapes suivantes: a) convertir les signaux d'entrée au moyen d'un comparateur pour obtenir des signaux numériques de niveau TII, b) stocker les signaux de commande dans les registres appropriés, c) stocker les signaux de données dans une FIFO au moyen d'un séquenceur, d) transférer lesdits signaux de données de la FIFO dans une RAM au moyen d'un microcontrôleur (CPU) par un transfert de type DMA (accès direct mémoire), la demande dudit transfert de type DMA étant activée par le séquenceur, e) transférer lesdits signaux de données de la RAM dans un contrôleur de bus SCSI. Avantageusement, lors de l'étape de stockage dans la FIFO, lors de l'étape de stockage dans la FIFO, le séquenceur ouvre une porte bidirectionnelle, transfere les signaux de données octet par octet au travers de celle-ci dans une mémoire tampon de type bascule, puis de cette mémoire tampon dans la FIFO. Dans l'autre sens, ledit procédé a pour objet un procédé de conversion de norme pour traduire des signaux d'entrée SCSI en des signaux de sortie lisible par un contrôleur de dérouleur de bande, ledit procédé comprenant les étapes suivantes: b) transférer les signaux de données du contrôleur de bus SCSI dans une RAM, c) stocker lesdits signaux de données dans une FIFO au moyen d'un microcontrôleur (CPU) par un transfert de type DMA (accès direct mémoire), ladite demande de transfert de type DMA étant activée par un séquenceur, d) transférer au moyen du séquenceur lesdits signaux de données de la FIFO dans un convertisseur qui convertit ces signaux numériques de niveau TII en des signaux de sortie lisibles par le contrôleur de dérouleur de bande. Avantageusement, lors de l'étape de transfert de la FIFO au convertisseur, le séquenceur transfere octet par octet les signaux de données de la FIFO dans une mémoire tampon de type bascule, ouvre une porte bidirectionnelle puis transfère les signaux de données de la mémoire tampon au travers de ladite porte en direction du convertisseur. D'autres caractéristiques et avantages de l'invention apparaîtront au cours de la description suivante d'une forme de réalisation particulière de l'invention donnée à titre d'exemple non limitatif en regard des dessins joints. Sur les dessins - la figure 1 est un schéma de la carte selon la présente invention, - la figure 2 est une représentation de l'architecture matérielle de la carte selon la présente invention, - la figure 3 est une représentation du schéma bloc du contrôleur de bus STK selon la présente invention, - la figure 4 est un schéma synoptique du contrôleur de bus STK selon la présente invennon, - les figures 5a et 5b sont de schémas synoptiques représentant le transfert des signaux de données dans les deux sens, selon la présente invention, - la figure 6 est une représentation schématique de la conversion des signaux de données à travers la carte dans le sens bus STK-bus SCSI, selon la présente invention. En se référant à la figure 1, la carte d'émulation selon un mode de réalisation de l'invention comprend un bus STK destiné à être relié à un contrôleur de dérouleur de bande, un bus SCSI destiné à être relié à une unité de sauvegarde, un contrôleur de bus SCSI et un contrôleur de bus STK. La carte comporte en outre un microcontrôleur (CPU), une EPROM, une RAM, une mémoire FLASH, une alimentation, un connecteur destiné à être relié à l'affichage, un connecteur destiné à être relié à un ordinateur personnel et un contrôleur de liaison UART. Sur la figure 2, on a représenté schématiquement les différents blocs constitutifs de la carte reliés au bus du microcontrôleur. Mis à part le contrôleur de bus STK, les autres composants précédemment évoqués existent déjà sur le marché. C'est pourquoi ils ne feront pas l'objet d'une description approfondie, seul un modèle de chaque composant particulièrement adapté à la présente forme de réalisation sera donné à titre de référence. Ainsi, la CPU peut être du type 80C188-16MHz. Le contrôleur SCSI peut être du type Western Digital WD33C90-16MHz, I'afficheur LCD peut être du type PC56, le contrôleur de liaison peut être du type INTEL 82050. On utilise de préférence une EPROM de 128 Ko, une FLASH de 64 Ko et une RAM de 1 Mo. Une grande partie du développement matériel de la carte a été consacrée à l'élaboration du contôleur de bus STK. Ce contrôleur a été conçu avec des composants logiques programmables du type PAL22V10 et d'autres circuits discrets. Par la suite, les différentes fonctions que remplit ledit contrôleur de bus STK vont être explicitées. Ce contrôleur de bus STK est construit autour: - d'un séquenceur qui pilote l'ensemble des différentes opérations nécessaires pour mener à bien un transfert de bloc de données, - d'une mémoire tampon FIFO accessible par le séquenceur et par la CPU, - d'un ensemble de registres de configurations, de sorties et d'état. La FIFO utilisée par l'invention est du type asynchrone. En entrée, elle est accessible par la CPU, en utilisant un transfert du type DMA (accès direct mémoire), pour mémoriser l'octet venant du bus SCSI, et par le séquenceur pour mémoriser l'octet en cours de réception venant du bus STK. En sortie, la FIFO peut être vidée, soit par la CPU pour envoyer un octet vers le bus SCSI, soit par le séquenceur pour envoyer un octet vers le bus STK. La FIFO fournit au séquenceur deux signaux permettant de lui signaler dans quel état elle se trouve : le signal FE (FIFO empty) pour signifier que la FIFO est vide, et le signal FF (FIFO full) pour signifier que la FIFO est pleine, c'est-à-dire comporte 512 octets. Les signaux de lecture (RD) et d'écriture (WR) sont donc pilotés par le séquenceur et la CPU. Le séquenceur assure l'ensemble des opérations nécessaires pour le transfert d'un bloc de données venant du ou allant vers le bus STK. Il reçoit deux informations, via deux registres, venant de la CPU, I'un pour indiquer la direction du transfert et l'autre pour recevoir l'autorisation de démarrer. Le schéma bloc du contrôleur de bus STK représenté sur la figure 3 montre les différentes commandes reçues et/ou issues dudit contrôleur. Le schéma synoptique de la figure 4 détaille plus particulièrement les fonctions relatives au séquenceur. La carte, objet de la présente invention, étant bidirectionnelle, I'explication de son fonctionnement sera scindée en deux parties, chacune d'entre elles correspondant au transfert du signal dans un sens donné au travers de la carte. Nous étudierons en premier lieu le transfert d'un signal issu du contrôleur de dérouleur de bande en direction de l'unité de sauvegarde. Lorsque le contrôleur de dérouleur de bande envoie une commande à exécuter via le bus STK à l'unité de sauvegarde, il commence par envoyer l'adresse du périphérique carte + unité de sauvegarde, étant donné que jusqu'à quatre de ces périphériques peuvent être connectés en cascade au bus STK. Pour ce faire, le contrôleur de dérouleur de bande active les signaux AD() et ADI, puis envoie le code de la commande à exécuter en activant les signaux CMDO-3 qui seront validés sur le front descendant du signal START. La carte répondra en activant le signal BUSY. Le tableau I ci-dessous montre la liste des commandes STK possibles dont les intitulés ont été laissé en anglais, car d'usage courant. TABLEAU 1 CMD0 CMD1 CMD2 CMD3 Mnemonic Description 0 0 0 0 NOP No eration 0 0 0 1 CLR DriveClear 0 0 1 0 DMS Diagnostic Mode Set o o 1 1 SNS Sense Drive Status 0 1 0 O RDF Read Forward a Block 0 1 O 1 RDB Read Backward a Block 0 1 1 O WRT Write a Data Block O 1 1 1 LWR Loop Write to Read 1 0 0 0 BSF Backspact a File 1 0 0 1 BSB Bac a Block 1 0 1 O FSF Forward Space a Flle 1 0 1 1 FSB Forward Space a Block 1 1 0 O WTM Writc Gap Mark 1 1 0 1 ERG Erase Gap 1 1 1 0 REW Rewind Tapc to BOT 1 1 1 1 RUN Rewind and Unload tape Une fois la commande reconnue par la CPU, la CPU autorise le démarrage d'un séquenceur de transfert qui fait une demande de transfert d'un octet en activant le signal REQ, le contrôleur de dérouleur de bande acquittant en activant le signal ACK via le bus STK. Dès réception de ce dernier, le séquenceur mémorise l'octet reçu dans la FIFO et fait une demande de transfert (signal DREQ) au contrôleur DMA de la CPU pour transférer ledit octet de ladite FIFO dans la RAM. Le dialogue en protocole "poignée de main" entre le contrôleur de dérouleur de bande et le séquenceur continue jusqu'au dernier octet échangé après quoi le contrôleur de dérouleur de bande répond, via le bus STK, en activant le signal STOP et non plus ACK. D'autre part, tant que la FIFO n'est pas vide, le séquenceur envoie une demande de transfert du type DMA à la CPU, qui vide la FIFO à son rythme. Donc, le séquenceur réactive le signal REQ jusqu a ce qu'une des conditions énumérées ci-dessous soit satisfaite: la FIFO est pleine (signal FF est reçu), le transfert est terminé (signal STOP est reçu), l'autorisation de transmettre (signal GO du CPU) fait défaut. La figure Sa montre le cheminement de l'octet à travers le contrôleur de bus STK de la carte, lors du transfert d'un signal de données issu du contrôleur de dérouleur de bande (via le bus STK) en direction de l'unité de sauvegarde (via le bus SCSI). La CPU initialise le signal DIR à la valeur 1 via un registre de configuration, ce qui détermine la direction dans laquelle l'octet va passer au travers de la carte. Le séquenceur ouvre alors la porte directionnelle et transfère l'octet dans une mémoire tampon de type bascule en activant les signaux DIR-IN et LDATAIN. Cette mémoire tampon ne peut recevoir qu'un octet à la fois et est destinée à assurer une transmission sans faille vers la FIFO. Le séquenceur active alors le signal FIFOWR (écriture) pour transférer l'octet de la mémoire tampon dans la FIFO. C'est également le séquenceur qui, une fois l'octet stocké dans la FIFO, fait une demande de transfert du type DMA à la CPU en activant le signal DREQ. La CPU acquitte en activant le signal DACK et l'octet est transféré de la FIFO dans la RAM par la CPU qui active le signal FIFORD (lecture). Les octets arrivant dans la RAM sont stockés sous forme de blocs, comme le montre la figure 6, et sont ensuite transmis au contrôleur de bus SCSI, lorsque ce dernier est prêt à les recevoir pour les transmettre à l'unité de sauvegarde via le bus SCSI. La vitesse de transfert entre le bus STK et la FIFO est modulée en fonction du transfert des bloc de la RAM au bus SCSI du moyen d'un logiciel, pour assurer un flux continu de transfert de signaux et pour s'adapter à la vitesse de fonctionnement de l'unité de sauvegarde. La CPU écrit donc dans des registres de commande du contrôleur de bus STK pour configurer la direction du transfert de données (signal DIR = 1), autoriser le séquenceur à transmettre les données (signal GO = 1) et configurer la vitesse de transfert. Une fois que la FIFO est vide, le transfert s'arrête. Dans le cas du transfert d'un signal de données issu de l'unité de sauvegarde en direction du contrôleur de dérouleur de bande, représenté sur la figure 5b, le signal de données SCSI est transféré dans la RAM. Dès que le séquenceur reçoit l'autorisation de transmettre, au moyen du signal GO activé par la CPU (GO=1), et la direction du transfert au moyen du signal DIR activé par la CPU (DIR=()), il fait une demande de transfert type DMA à la CPU pour transférer les octets de la RAM dans la FIFO au moyen du signal FIFOWR (écriture). Pour ce faire, le séquenceur active le signal DREQ. Une fois que l'octet est stocké dans la FIFO, le séquenceur active le signal FIFORD (lecture) pour transférer ledit octet de la FIFO dans le bus STK via une mémoire tampon de type bascule. Le séquenceur active alors le signal REQ pour entamer un dialogue en protocole "poignée de main" avec le contrôleur de dérouleur de bande qui répond en activant le signal ACK. Tant que la FIFO n'est pas pleine, c'est-à-dire tant que le séquenceur ne reçoit pas le signal FF (FIFO pleine), il continue d'activer le signal DREQ jusqu'à ce que la CPU signale la fin du transfert en activant le signal de fin de transfert (GO = O). D'autre part, le séquenceur active le signal REQ tant que les conditions suivantes sont satisfaites simultanément: la FIFO n'est pas vide [pas de réception du signal FE (FIFO vide)l et l'autorisation de transmettre (GO=1) est toujours valide. Une fois que la FIFO est vidée, le transfert s'arrête. Pendant que se déroule l'opération de transmission de signaux du bus STK vers le bus SCSI ou vice-versa, le contrôleur de bus STK signale l'état du transfert et son déroulement au contrôleur de dérouleur de bande au moyen des registres de sorties STK STATUS. Ainsi, toute erreur est immédiatement signalée et le contrôleur de dérouleur de bande peut activer le signal STK-RESET ce qui provoque l'arrêt immédiat de l'exécution de la commande en cours ainsi que la remise à zéro des registres de sorties STK STATUS. Le contrôleur de bus STK peut alors fournir une information sur l'erreur en activant les signaux ERRMX-0-7. Les informations relatives aux registres STK STATUS et ERRMX sont susceptibles d'être affichées au moyen d'un afficheur LCD relié au bus correspondant prévu sur la carte. Avantageusement, on peut également prévoir sur la carte une UART qui permet, au moyen d'un connecteur correspondant, de relier un ordinateur personnel à ladite carte pour effectuer des opérations de maintenance. Revendications 1.- Carte électronique d'émulation pour traduire des signaux émis par un contrôleur de dérouleur de bande en signaux SCSI lisibles par une unité de sauvegarde, et viceversa, caractérisée en ce qu'elle comprend un bus destiné à être relié au contrôleur de dérouleur de bande, un bus SCSI destiné à être relié à l'unité de sauvegarde, un contrôleur de bus SCSI, un microcontrôleur (CPU), une EPROM, une RAM, une FIFO et un séquenceur, ledit séquenceur comprenant: a) des moyens pour transférer les signaux de données du bus relié au contrôleur de dérouleur de bande dans la FIFO, et vice-versa b) des moyens pour signaler au microcontrôleur (CPU) d'effectuer un transfert de type DMA (accès direct mémoire) desdits signaux de données de la FIFO à la RAM, et vice-versa. 2.- Procédé de conversion de norme pour traduire des signaux d'entrée émis par un contrôleur de dérouleur de bande en des signaux de sortie SCSI lisible par une unité de sauvegarde, ledit procédé comprenant les étapes suivantes: a) convertir les signaux d'entrée au moyen d'un comparateur pour obtenir des signaux numériques de niveau TII, b) stocker les signaux de commande dans les registres appropriés, c) stocker les signaux de données dans une FIFO au moyen d'un séquenceur, d) transférer lesdits signaux de données de la FIFO dans une RAM au moyen d'un microcontrôleur (CPU) par un transfert de type DMA (accès direct mémoire), la demande dudit transfert de type DMA étant activée par le séquenceur, e) transférer lesdits signaux de données de la RAM dans un contrôleur de bus SCSI. 3.- Procédé de conversion de norme selon la revendication 2, dans lequel, lors de l'étape de stockage dans la FIFO, le séquenceur ouvre une porte bidirectionnelle, transfere les signaux de données octet par octet au travers de celle-ci dans une mémoire tampon de type bascule, puis de cette mémoire tampon dans la FIFO. 4.- Procédé de conversion de norme pour traduire des signaux d'entrée SCSI en des signaux de sortie lisible par un contrôleur de dérouleur de bande, ledit procédé comprenant les étapes suivantes: b) transférer les signaux de données du contrôleur de bus SCSI dans une RAM, c) stocker lesdits signaux de données dans une FIFO au moyen d'un microcontrôleur (CPU) par un transfert de type DMA (accès direct mémoire), ladite demande de transfert de type DMA étant activée par un séquenceur, d) transférer au moyen du séquenceur lesdits signaux de données de la FIFO dans un convertisseur qui convertit ces signaux numériques de niveau TTL en des signaux de sortie lisibles par le contrôleur de dérouleur de bande. 5.- Procédé de conversion de norme selon la revendication 4, dans lequel, lors de l'étape de transfert de la FIFO au convertisseur, le séquenceur transfere octet par octet les signaux de données de la FIFO dans une mémoire tampon de type bascule, ouvre une porte bidirectionnelle puis transfère les signaux de données de la mémoire tampon au travers de ladite porte en direction du convertisseur.