Brevet FR2508677A1 — publié le 19821231

DISPOSITIF DE TEST D'UN COUPLEUR POUR PERIPIIERIQUE D'ORDINATEUR La présente invention a pour objet un dispositif de test d'un coupleur pour périphérique d'ordinateur. Tout périphérique d'ordinateur réalisant des opérations d'écriture et/ou de lecture est pourvu d'un dispositif de commande destiné à réaliser ces opérations. Par exemple, dans le cas où le terminal est un enregistreur à ruban, ce dispositif de commande est un dérouleur de bande. Le dispositif de commande, d'une part reçoit de l'ordre nateur des ordres sous forme numérique, et d'autre part, il reçoit de l'ordinateur et restitue à celui-ci des signaux d'écriture et/ou de lecture. Les informations reçues par le dispositif de commande transitent par un formateur ou circuit de commande d'interface normalisé, qui fait partie du dispositif de commande, et qui réalise la mise en forme des informations.Côté ordinateur, l'unité centrale envoie une commande globale à un coupleur (appelé également contrôleur ou unité de liaison), lequel est chargé de la gestion du dialogue avec le dispositif de commande ainsi que de la vérification de la validité des informations. Par conséquent, un coupleur envoie uniquement des informations certifiées. En fin de fabrication, chaque coupleur subit une série de tests destinés à vérifier son fonctionnement et plus particulièrement celui de ses circuits de contrôle d'erreur. La série de tests d'un coupleur est habituellement réalisée en connectant celui-ci sur un périphérique. Ce procédé présente un certain nombre d'inconvénients coût élevé, temps de test élevé lié aux caractéristiques électro-meca- niques des périphériques, nécessité de disposer de plusieurs types de périphériques, difficulté de diagnostiquer certains défauts ainsi que de simuler des défauts ou des séquences anormales. La présente invention a pour objet un dispositif de test qui ne présente pas les défauts mentionnés ci-dessus. L'invention a ainsi pour objet un dispositif de test d'un coupleur pour périphérique d'ordinateur à partir d'un programme de test mis en oeuvre par l'ordinateur et impliquant au moins une opération d'inscription de données dans le périphérique selon une séquence correspondant à une configuration de test donnée. Ce dispositif est caractérisé en ce qu'il comporte un simulateur du périphérique comprenant un microprocesseur auquel sont associées une mémoire programme et une mémoire vive, un circuit de commande d'interface avec le coupleur, une mémoire des données comportant les données à inscrire dans l'ordre du test, et un circuit logique de validation recevant et comparant séquentiellement les données à inscrire reçues du coupleur et les données contenues dans la mémoire des données. Selon un mode de réalisation, le circuit logique de validation comporte un circuit de calcul des signaux de contrôle, recevant les données contenues dans la mémoire des données, et un circuit de multiplexage recevant les données contenues dans la mémoire des données, les signaux de contrôle calculés et les données à inscrire reçues du coupleur. Selon une variante, il comporte un circuit logique de dialogue permettant l'introduction de données extérieures. L'invention sera mieux comprise dans la description qui va suivre donnée à titre non limitatif, en se reportant aux dessins ciannexés où: - la figure I représente un dispositif selon l'invention, - la figure 2 représente un dispositif correspondant à la figure 1 et adapté au test d'un coupleur pour dérouleur de bande magnétique, - la figure 3 représente un détail de la figure 2. A la figure 1, un microprocesseur 1, auquel sont associées une mémoire programme 2 et une mémoire vive 3, dialogue par l'intermédiaire d'une ligne bus 9 avec un circuit de commande d'interface 4 recevant les ordres émis par le coupleur à tester, et commande L'accès aux données contenues dans une mémoire des données 5, par le circuit d'accès aux données en mémoire 6. Un circuit logique de validation 7 reçoit d'une part les données que lui communique le circuit 6 d'accès aux données en mémoire, et d'autre part les données à inscrire dans le périphérique, que lui transmet le coupleur 10. Le circuit logique de validation 7 effectue la comparaison entre les données à inscrire fournies par le coupleur 10 sur ordre du circuit 4 et les données mémorisées communiquées par le circuit 6, de manière à produire le cas échéant un signal d'erreur.La comparaison est rendue possible par le fait que, selon l'invention, la mémoire des données 5 comporte au préalable les données à inscrire dans l'ordre du test. Lorsqu'un ordre d'inscription de données dans le dispositif est communiqué par le circuit de commande d'interface 4, les données à inscrire parviennent au circuit logique de validation 7 où elles sont simplement comparées aux données mémorisées au préalable et dans le bon ordre dans la mémoire 5, ce qui implique qu'il n'y a en réalité aucune opération physique d'inscription. Le dispositif selon l'invention qui est ainsi un simulateur, est capable de recevoir et de traiter toutes les données que lui envoie le coupleur à tester. Lors d'un ordre de lecture, les données correspondantes sont transmises au coupleur par le circuit logique de validation 7. La figure 2 représente l'adaptation du dispositif de la figure 1 à un dérouleur de bande. Ce terminal constitue le cas pratique d'adaptation le plus délicat étant donné que d'une part les bandes présentent un grand volume de stockage, et d'autre part les blocs de données à inscrire sont de longueur variable. Enfin, la plupart des codages employés présentent en fin de mot un bit de parité et en fin de bloc au moins un mot de contrôle. La figure 2 traite le cas d'un code couramment utilisé, le code NRZ, qui constitue le code le plus élaboré de ce point de vue. On rappellera que le code NRZ (non retour à zéro) met en oeuvre des mots de 9 bits (1 octet de données + 1 bit de parité de telle sorte que la somme soit impaire). Chaque bloc se compose d'un nombre variable de mots et se termine par un groupe de deux caractères de contrôle espacés de trois bits.Le premier est le CRC (ou contrôle de redondance cyclique) qui résulte d'un code auto-correcteur. Le second est le LRC (contrôle de redondance longitudinale) qui dépend lui-même de la parité et du CRC. Les éléments communs entre la figure 2 et la figure 1 conservent les mêmes numéros. La mémoire programme 2 est à titre d'exemple une mémoire reprogrammable REPROM et la mémoire vive 3, une mémoire à accès aléatoire RAM. La mémoire des données 5 se décompose en une table des données 51 et une table des longueurs 52. Le circuit d'accès 6 se décompose en un circuit 61 d'accès direct à la mémoire, destiné à prélever les données dans la mémoire des données 5 et un registre des données 62 qui est une mémoire tampon. Le circuit logique de validation 7 comporte 3 multiplexeu#rs respectivement 71, 74 et 75, un circuit 72 de calcul du CRC, un circuit 73 de calcul de parité, un circuit 76 de calcul du LRC et de contrôle, et un circuit de retard 77 destiné à simuler le retard entre écriture et lecture, dû à l'écartement des têtes.En outre, un circuit logique de dialogue 82 permet, le cas échéant, d'introduire des données externes au niveau d'un multiplexeur 83, ceci ne constituant bien entendu qu'une variante facultative. Ces données externes sont notamment des blocs comportant un codage particulier facilitant le dépannage. D'autre part, le microprocesseur 1 reçoit le cas échéant des codes indiquant le type d'erreur simulé (par exemple erreur de parité, erreur sur les données, etc...) de manière à améliorer le test des circuits de contrôle d'erreur du coupleur. La table des données 51 est une mémoire qui comporte n mots de 9 bits (par exemple 1 000) les uns à la suite des autres selon un algorithme correspondant au test. A chaque mot correspond ainsi un adressage (par exemple de 1 à 1 000) pris en compte par un pointeur de données. La table des longueurs 52 mémorise au fur et à mesure les longueurs de chaque bloc proposé par le coupleur pour qu'il soit inscrit sur la bande. Un pointeur du numéro des blocs est associé à la table des longueurs. Ainsi qu'on l'a dit plus haut, le simulateur n'opère pas physiquement une inscription puisque la suite des mots du test est mémorisée à priori dans la table des données 51. Par contre, la table des longueurs 52 enregistre la longueur de chaque mot. Le fonctionnement du dispositif en écriture est alors le suivant: le multiplexeur 75 reçoit du coupleur 10 les données à écrire, l'ordre d'écriture étant transmis au bus 9 par l'intermédiaire du circuit 4 de commande d'interface. Le circuit 76 reçoit les données du multiplexeur 75 et effectue la comparaison mot par mot entre les données fournies en écriture et celles puisées dans la mémoire du simulateur, ainsi que la comparaison des bits de parité, des CRC et des LRC de chaque bloc. A cet effet, le circuit 61 d'accès direct à la mémoire puise les données au fur et à mesure dans la table des données 51 grâce aux informations qu'il reçoit par le bus 9. La table des longueurs 52 mémorise alors la longueur de chaque bloc en fonction du nombre de mots qui le constituent; le circuit 61 d'accès direct à la mémoire transmet ces données au registre des données 62 qui lui-même les transmet au multiplexeur 71 éventuellement à travers un multiplexeur 81. Ces données sont transmises par le multiplexeur 71 au multiplexeur 75 avec les signaux CRC et de parité provenant du circuit multiplexeur 74. Le calcul du signal de parité est réalisé dans le circuit de calcul de parité 73 qui reçoit les signaux sortant du registre des données 62 (ou le cas échéant du multiplexeur 81) et transmet le résultat calculé à l'entrée du multiplexeur 74.Le signal CRC est calculé dans le circuit 72 de calcul CRC qui reçoit à son entrée les signaux sortant du registre des données 62 ainsi que la sortie du circuit de calcul de parité 73, et dont la sortie est reliée d'une part à l'entrée du multiplexeur 74 afin de positionner le signal CRC en fin de bloc par rapport aux données extraites de la table des données lors d'une opération d'écriture, et d'autre part à l'entrée du multiplexeur 71 afin de la positionner en fin de bloc lors d'une opération de lecture. Le calcul du LRC est un peu plus compliqué étant donné qu'il dépend également de la parité et du CRC. Sur le mode de réalisation représenté, ce calcul est effectué en aval du multiplexeur 75 dans le circuit 76.Ce circuit 76 effectue en temps réel le contrôle de la conformité des données reçues en écriture et des données extraites de la table des données 51, selon l'ordre de présentation des données, à savoir les mots, et les signaux de contrôle (parité, LRC et CRC). Pour cette fonction de contrôle, la sortie de ce circuit 76 est un signal d'erreur transmis directement sur l'interface contrôleur constituée par le circuit de commande d'interface 4. Il est, bien entendu, également possible, à titre de variante, de faire transiter le signal d'erreur vers la sortie par l'intermédiaire du multiplexeur 71. On va maintenant montrer en se reportant à la figure 3 comment le dispositif de la figure 2 est en mesure d'accepter une séquence quelconque d'ordre, et en particulier de restituer au coupleur un bloc d'informations de longueur et de profil déterminé après une séquence quelconque d'écritures, effacements, sauts avant ou arrière. Un ordre de rebobinage ou la mise sous tension initalise l'ensemble de la logique des données en particulier le compteur pointeur l'adresse de la donnée à émettre est remis à zéro, Le premier ordre d'écriture (par exemple d'un bloc de 10 octets) qui survient entraîne les actions suivantes: - évolution du compteur d'adressage ou pointeur 53 de la table de données 51 au fur et à mesure de la fourniture des données, par exemple jusqu'au compte 10 pour un bloc de 10 octets de données, - comparaison des données extraites de la table des données avec celles reçues du contrôleur 10 et montée d'un signal d'erreur en cas de différence, - en fin d'écriture, mémorisation de la longueur du bloc reçu dans la table des longueurs 52, dont le pointeur 54 est positionné en 1, indiquant le premier bloc. Si l'ordre suivant est une écriture (par exemple d'un bloc de 90 octets) - progression du pointeur 53 de données (le pointeur n'est remis à zéro en cours de programme que par un ordre de rebobinage et évolue modulo n); pour l'exemple envisagé, le pointeur de données progresse jusqu'au compte 100, - incrémentation de 1 du pointeur de table des longueurs, - transfert, comparaison des données, et stockage de la nouvelle longueur du bloc dans la table des longueurs, donc à la position 2 du pointeur. Si l'ordre est une lecture - évolution du compt#eur d'adressage ou pointeur 53 de la table des données 51 au fur et à mesure du prélèvement des données pour la lecture, - transmission des données au multiplexeur 71 et calcul de la parité, du CRC et du LRC respectivement dans les circuits 73, 72 et 76, - émission des données en lecture, le CRC et le LRC étant injectés au niveau de l'entrée du multiplexeur 71 respectivement par les sorties des circuits 72 et 76, et le signal de parité au niveau de la sortie du multiplexeur 71 par la voie parité constituant la sortie du multiplexeur 74. Si l'ordre est une lecture arrière: - prélèvement de la dernière longueur de bloc mémorisée (à savoir 90 octets), - exécution-par le microprocesseur d'une lecture fictive sans transfert vers le coupleur afin de calculer le CRC et LRC, étant donné qu'en lecture arrière NRZ, les caractères de contrôle LRC et CRC sont émis en tête de bloc, - exécution de la lecture arrière à vitesse réelle de transfert et décrémentation du pointeur de données (jusqu'au compte 10). Les données sont transférées vers le coupleur par l'intermédiaire du circuit de retard 77. La lecture fictive sans transfert permet d'économiser de la mémoire sans affecter les performances du simulateur, puisque les caractères de contrôle n'ont à aucun moment besoin d'être stockés dans une mémoire. Si l'ordre est un effacement, on effectue une simulation d'écriture sans transmission de données. En effet, un effacement est utilisé en pratique dans le terminal seulement si une erreur dins- cription a été détectée. Cet effacement s'accompagne alors d'une opération de réécriture du dernier bloc. La séquence en est la suivante: écriture (erronée), saut arrière, effacement et réécriture, saut årrière, lecture. . Si l'ordre est un saut arrière ou avant, on effectue une décrémentation ou une incrémentation correspondante du pointeur de la table des longueurs et de la table des données, à savoir du nombre correspondant de blocs pour la table des longueurs et du nombre correspondant d'octets pour la table des données. En outre: - un ordre d'écriture "fin de fichier" est mémorisé par un marqueur dans la table des longueurs. Il correspond à l'écriture d'un caractère particulier non issu de la table des données. Le marqueur, détecté au cours d'une lecture ou d'un saut, entraînera l'émission vers le coupleur de l'indicateur fin de fichier; - les horloges sont programmées en fonction des caractéristiques des dérouleurs; - les diverses temporisations inter-blocs sont simulées par le programme du microprocesseur et correspondent aux caractéristiques des dérouleurs; par contre, les opérations de rebobinage qui, lors d'un test, ne sont rien d'autre que des temps morts, sont effectuées en des temps simulés bien inférieurs aux temps réels. L'invention concerne également des dispositifs de test de coupleurs associés à d'autres dispositifs de commande que les dérouleurs de bande. pe tels dispositifs de commande peuvent être associés par exemple à des disques magnétiques, à des perforateurs de ruban papier ou cartes, ou bien à des imprimantes. Dans les cas énumérés, il y a bien entendu suppression aussi bien du circuit de calcul CRC que de la partie du circuit 76 consacrée au calcul LRC. Le circuit de calcul de parité 73 attaque directement le multiplexeur 75, le multiplexeur 74 étant également supprimé. Dans le cas d'une unité de disques magnétiques, la mémoire des données 5 comporte une table des donnée#s 51 et une table des adresses. En effet, toute information portée sur un disque se compose d'un indicateur d'adresse, suivi des données, et d'un caractère de contrôle. Toute opération d'écriture impose ainsi la mise en mémoire de l'adresse et toute opération de lecture, sa restitution. Dans le cas d'un perforateur de ca#rtes, il peut être avantageux de mettre en oeuvre, outre une table des données 51, une table des numéros de cartes. Enfin, dans le cas d'une imprimante, on utilise une table des données 51 et une table des codes format mémorisant la longueur des lignes et les interlignes éventuels. Quelque soit le périphérique utilisé, le microprocesseur est chargé de la gestion de l'interface, à savoir prélever les signaux de commande et de données du coupleur et le cas échéant lui en envoyer, et simuler le fonctionnement du périphérique. La simulation des fonctions du périphérique consiste à simuler les caractéristiques mécaniques et électro-mécaniques de celui-ci, et à mettre en forme les données de façon comparable à celle du périphérique. A titre de variante, le signal de test comporte une ou plusieurs informations supplémentaires d'adresse de telle sorte que la table des données soit explorée autrement que séquentiellement. Cette information d'adresse indique au simulateur l'adresse dans la mémoire des données correspondant à la donnée suivante du test. La mémoire des données comporte alors en face de chaque donnée qu'elle mémorise une case mémoire d'adresse mémorisant l'information supplémentaire correspondante. Le test peut être alors réalisé avec des successions de données pratiquement aléatoires. REVENDICATIONS 1. Dispositif de test d'un coupleur pour périphérique d'ordinateur à partir d'un programme de test mis en oeuvre par l'ordinateur et impliquant au moins une opération d'inscription de données dans le périphérique selon une séquence correspondant à une configuration de test donnée caractérisé en ce qu'il comporte un simulateur du périphérique comprenant un microprocesseur (1) auquel sont associées une mémoire programme (2) et une mémoire vive (3), un circuit de commande d'interface (4) avec le coupleur (10), une mémoire des données (5) comportant les données à inscrire dans l'ordre du test, et un circuit logique de validation (7) recevant et comparant séquentiellement les données à inscrire reçues du coupleur (I 0) et les données contenues dans la mémoire des données (5). 2. Dispositif selon la revendication 1, caractérisé en ce que le circuit logique de validation (7) reçoit les données contenues dans la mémoire des données (5) par l'intermédiaire d'un circuit d'accès direct (61) à la mémoire et d'un registre des données (62). 3. Dispositif selon l'une des revendications 1 ou 2, caractérisé en ce que le circuit logique de validation comporte au moins un circuit de calcul des signaux de contrôle (72, 73, 76), recevant les données contenues dans la mémoire des données (5), et un circuit de contrôle (76) recevant les données contenues dans la mémoire des données (5), les signaux de contrôle calculés et les données à inscrire reçus du coupleur (10). 4. Dispositif selon la revendication 3, caractérisé en ce que le circuit logique de validation comporte, pour traiter des signaux codés NRZ, un circuit de calcul de CRC (7s) et un circuit de calcul de parité (73), chacun recevant les données de la mémoire des données (5), et le circuit de calcul de CRC (72) recevant en outre la sortie du circuit de calcul parité (73), un multiplexeur (74) recevant la sortie des deux circuits de calcul (72, 73) précités, un multi plexeur (75) recevant la sortie du multiplexeur (74), du multiplexeur (71) et les données à inscrire reçus du coupleur (10), un circuit de calcul LRC et de contrôle (76) recevant le signal de sortie du multiplexeur (75)- et effectuant la comparaison des données à inscrire et des données mémorisées la sortie dudit circuit étant reliée à une entrée du multiplexeur (71) et en ce que la sortie du multiplexeur transmet également le résultat de la comparaison. 5. Dispositif selon la revendication 4, caractérisé en ce qu'il comporte un circuit de retard (77) dont l'entrée est la sortie du multiplexeur (71) et dont la sortie transmet vers le coupleur (10) au moins les données émises en lecture 6. Dispositif selon l'une des revendications 4 ou 5, caractérisé en ce que la mémoire des données (5) comporte une table des données (51) comportant les données à inscrire dans l'ordre du test et une table des longueurs (52) destinée à mémoriser au fur et à mesure les longueurs des blocs à inscrire. 7. Dispositif selon l'une des revendications précédentes, caractérisé en ce qu'il comporte un circuit logique de dialogue (82) destiné à transmettre des données externes au circuit logique de validation (7).