3IF, INSA de Lyon, 2008/2009 Christian Wolf, Emil …...TP Khepera - Coupleur E/S Programmation des...

4
TP Khepera - Coupleur E/S Programmation des entr´ ees-sorties sur un coupleur s´ erie Z85230 3IF, INSA de Lyon, 2008/2009 Christian Wolf, Emil Dumitrescu RS232 KHEPERA II TERMINAL VT 220 PC + TERMINAL EMULATION ... BUS PARALLEL 1 Introduction Dans ce TP, nous nous int´ eresserons au codage des couches les plus basses d’un syst` eme de communication par ligne s´ erie. Pour cela, nous allons encapsuler, dans un module C (appel´ e module syst` eme), les proc´ edures d’acc` es au coupleur s´ erie Z85230. Nous r´ ealisons donc une sous-partie de la couche physique (la couche “Syst` eme”) en nous basant sur le travail r´ ealis´ e en TD concernant l’initialisation du coupleur Z8530 1 . 1 Les diff´ erences entre le Z85230 et le Z8530 sont minimes (du moins pour l’utilisation que nous en faisons). Outre la vitesse du quartz (qui d´ epend de la carte – voir ci-dessous), la principale diff´ erence est l’existence, sur le Z85230, d’un registre 7’ qui doit ˆ etre initialis´ e` a z´ ero (le registre 7’ permet d’acc´ eder en lecture ` a certains registres d’´ ecriture – WR3, WR4, WR5, WR7’ et WR10 – et de supprimer virtuellement les buffers d’´ emission et de r´ eception). La proc´ edure d’initialisation du registre 7’ est simple (la notice technique du Z85230 sp´ ecifie que : Write Register 7’ is addressed by setting WR15 bit, D0=1 and then addressing WR7). On notera qu’il est ensuite indispensable de r´ einitialiser le registre 15 ` a 0x00 avant d’utiliser le coupleur. 1

Transcript of 3IF, INSA de Lyon, 2008/2009 Christian Wolf, Emil …...TP Khepera - Coupleur E/S Programmation des...

TP Khepera - Coupleur E/SProgrammation des entrees-sorties sur un coupleur serie

Z85230

3IF, INSA de Lyon, 2008/2009Christian Wolf, Emil Dumitrescu

RS232

KHEPERA II

TERMINAL VT 220

PC + TERMINAL EMULATION

...BUS PARALLEL

1 Introduction

Dans ce TP, nous nous interesserons au codage des couches les plus basses d’un systeme decommunication par ligne serie. Pour cela, nous allons encapsuler, dans un module C (appelemodule systeme), les procedures d’acces au coupleur serie Z85230. Nous realisons donc unesous-partie de la couche physique (la couche “Systeme”) en nous basant sur le travail realiseen TD concernant l’initialisation du coupleur Z85301.

1Les differences entre le Z85230 et le Z8530 sont minimes (du moins pour l’utilisation que nous en faisons).Outre la vitesse du quartz (qui depend de la carte – voir ci-dessous), la principale difference est l’existence, surle Z85230, d’un registre 7’ qui doit etre initialise a zero (le registre 7’ permet d’acceder en lecture a certainsregistres d’ecriture – WR3, WR4, WR5, WR7’ et WR10 – et de supprimer virtuellement les buffers d’emissionet de reception). La procedure d’initialisation du registre 7’ est simple (la notice technique du Z85230 specifieque : Write Register 7’ is addressed by setting WR15 bit, D0=1 and then addressing WR7). On notera qu’ilest ensuite indispensable de reinitialiser le registre 15 a 0x00 avant d’utiliser le coupleur.

1

2 Travail a realiser

– Ecrire la procedure d’initialisation de la ligne serie RS232– Ecrire la procedure de lecture d’une chaıne de caracteres (en attente active)– Ecrire la procedure d’ecriture d’une chaıne de caracteres– Ecrire la procedure de liberation de la ligne serie.– Validation sur les stations Vxworks.

Pour faciliter les tests et la validation, nous vous demandons d’ecrire un menu permettantd’acceder tour a tour a chacune de ces procedures.

3 Configuration

Chaque carte MVME162 possede deux coupleurs Z85230 chacun diposant de deux portsde serie. Comme tout materiel dans l’archictecutre Motorola, les coupleurs sont geres parmapping memoire.

Configuration de la carte MVME162 :

– Adresse du Z85230 utilise : 0xfff45800– Offset CTRL port B : 0x01– Offset Data port B : 0x03

Configuration de la jonction RS232 :

– Vitesse : 9600 Bd– 8 bits par caractere– Parite paire– 1 bit de stop– Codage NRZ

L’horloge du Z85230 est fournie par un quartz a 9.8304 MHz ; on utilisera un facteur d’horlogex16 pour determiner la constante de temps du Baud Rate Generator (BRG).

4 Interface des procedures

int open 85230b(int parity active, int parity type)

Cette fonction initialise le coupleur suivant le parametrage ci-dessus. Les parametres sontconsideres constants a l’exception du type de parite utilise qui sera parametrable pour assurerla compatibilite avec les differents peripheriques destines a etre connectes au coupleur. Lafonction open 85230b renvoie un entier codant les valeurs suivantes :

– ID : indication de deconnexion, correspond a l’expiration d’un time-out de 5 secondesou a la reception d’un signal de break avant d’avoir recu les signaux CTS et DCD dudispositif exterieur,

– IC : indication de connexion, si l’initialisation s’est bien passee et si le dispositif decommunication a bien renvoye les signaux DCD et CTS en reponse a DTR et RTS.

2

int read 85230b(unsigned char * instring, unsigned char eof)

Cette fonction se met en attente de reception jusqu’a ce qu’un caractere de fin de trame(conforme a celui specifie par le parametre eof (“End of Frame”)) soit recu. Elle rend la mainlorsqu’elle a recu ce dernier caractere ou lorsqu’elle a diagnostique une erreur non recuperable.Tous les caracteres recus (y compris le caractere de fin de trame) sont recopies dans le pa-rametre instring qui doit respecter le format chaıne de caracteres standard du C. La fonctionrenvoie un entier representant le nombre de caracteres recus (y compris le caractere de fin detrame) ou, le cas echeant,

– une indication de depassement de delais (TIME OUT),– une indication de reception d’un signal de break ou de perte de ligne (LINE ERROR),– une erreur de parite ou d’ecrasement concernant les caracteres recus (FRAME ERROR).

int write 85230b(unsigned char * outstring, unsigned char * instring)

Cette fonction envoie tous les caracteres du parametre outstring. Elle attend en meme tempsde recevoir d’eventuels caracteres afin de permettre l’ecriture en mode Echo. Elle rend la mainimmediatement apres avoir emis le dernier caractere de la variable outstring ou lorsqu’ellea diagnostique une erreur non recuperable. Tous les caracteres recus sont recopies dans leparametre instring qui doit respecter le format chaıne de caracteres standard du C. Lafonction renvoie un entier representant le nombre de caracteres recus ou, le cas echeant,

– une indication de depassement de delais (TIME OUT),– une indication de reception d’un signal de break ou de perte de ligne (LINE ERROR),– une erreur de parite ou d’ecrasement concernant les caracteres recus (FRAME ERROR).

int close 85230b()

Cette fonction permet de faire repasser la ligne au repos en effectuant un reset du canal B du85230. Elle retourne un compte-rendu qui vaut toujours ID.

5 Constantes

Pour permettre la compatibilite avec les autres modules du projet on utilisera les definitionsdes constantes suivantes. Elles devront etre declarees dans un fichier externe.

#define ID 0

#define IC 1

#define TIME_OUT -1

#define LINE_ERROR -2

#define FRAME_ERROR -3

#define PARITY_ON 1

#define PARITY_OFF 0

#define PARITY_EVEN 1

#define PARITY_ODD -1

Les attentes de connexion, de reception ou d’emission sont realisees en attente active (polling).On calibrera les boucles d’attente pour un time-out de 5 secondes environ.

3

6 Procedure de test

Le module sera teste en salle VxWorks en connectant le Z85230 a une visu serie. Cette visunous permet d’envoyer et de recevoir des caracteres sur la ligne serie. Le cas particulier del’echo sera teste au moyen d’un bouchon d’echo. Dans ce dispositif, les lignes Rx et Tx (Receiveet Transmit) sont croisees. Le Z85230 recoit donc en entree la trame qu’il a emise en sortie(mais avec un decalage lie a la liaison serie et a la FIFO du circuit).

7 Compte rendu

Validation : demonstration du programme (en seance ou pendant les assistances). Pour per-mettre une validation correcte du programme, il est demande de proposer une interfaceutilisateur simple (i.e. un menu) permettant d’appeler les differentes fonctions et despecifier les parametres.

Listing commente.

Date de remise des comptes-rendus et date limite de validation : une semaineapres la seance

version 1.3, 27 fevrier 2009 – redige avec LATEX

4