Sommaire

 

Réalisation du sous programme de reception sur le port serie :

 

    Pour communiquer avec l’analyseur de réseaux HP, j’ai décidé d’utiliser le port série RS232. Il me faut donc réaliser un sous programme capable de recevoir un caractère sur ce port, et de l’enregistrer dans la variable comm.

     Comme on a pu le voir dans le programme principal, le débit et le mode de communication est définit à 9600 bauds sur 8bits.


     La reception d’un caractère se fera donc selon l’organigramme suivant :

Le code source en assembleur est alors le suivant :

 (pour les initialisations des variables, voir annexe 3)

 

            ;****  Subroutine de reception  ****

            ;****   de caractere sur RS232  ****

 

 

receive:

 

rec_bcl1:

 

     ldab scsr            ;test RDRF

     andb #$24            ;pour savoir qd

     cmpb #$24            ;un caract arrive sans parasites

     beq rec_bcl4             ;branche en rec_bcl4 si parasites

     cmpb #$20            ;test aucun caract

     bne rec_bcl1            ;branche rec_bcl1 tant que aucun caracteres

 

     ldaa scdr            ;copy le caractere

     cmpa #$30            ;test si >30

     blo rec_bcl1            ;branche en rec_bcl1 si <30

     cmpa #$7a            ;test si <7a

     bhi rec_bcl1            ;branche en rec_bcl1 si >7a

 

rec_bcl2:

 

     staa comm            ;stock a l'addr pointee par comm

 

rec_bcl3:

 

     ;ldx #comm           ;indiq quoi afficher

     ;jsr  transmit       ;envoi sur RS232

 

 

rec_bcl4:

 

     ldaa scdr            ;lit caractere qd bruit pour reinitialisation

     rts                  ;retour au prog

 

***************************************************

 

     Comme vous pouvez le constater, ce programme contient de protection permettants de detecter s’il y a du bruit sur la ligne RS232. Cela a était réalisé afin d’empêcher un plantage du programme qui apparaissait lors du fonctionnement du moteur en vitesse la plus rapide.

J’ai également fabriqué un cable RS232 blindé afin d’éliminer les parasites sur ce port, sans succés.

     Mais il est apparu par la suite que le plantage du programme de reception n’était pas dû à du bruit sur le port série, mais à du bruit qui se retrouvait sur la nappe de connection de la carte d’évaluation.

     En effet, celle ci est munie d’un switch autorisant un reset de la carte via le connecteur en nappe. C’était donc cette option qu’il fallait enlever afin d’empêcher le reset de la carte en cours de fonctionnement.

    Par la suite, le test de bruit a été conservé afin de garantire un bon fonctionnement du programme dans toute les conditions d’utilisation.

 

 

Réalisation du sous programme d’émission sur le port serie :

 

    Tel que la reception, il est également nécessaire que j’envoye des caractères sur le port séie, afin de prévenir de toute erreur par un message à l’écran et pour dire la fin d’execution d’une instruction du programme.

 

  L’émission d’un caractère se fera donc selon l’organigramme suivant :


 

Le code source en assembleur est alors le suivant :

 (pour les initialisations des variables, voir annexe 3)

 

            ;****  Subroutine de transmition ****

            ;****   de caracteres sur RS232  ****

 

                      transmit:

test:

 

     ldab scsr            ;* test TDRE=empty

     andb #$80            ;* masque pour voir que TDRE

     cmpb #$80            ;* test TDRE=1 (=vide)

     bne test             ;* boucle si non vide

trans:

 

     ldaa 0,x             ;* charge caractere

     cmpa #$04            ;* test si fin du message

     beq end              ;* branche en end si fin

     staa scdr            ;* envoi caractere sur RS232

     inx                  ;* pointe sur caractere suivant

 

test2:

 

     ldab scsr            ;* test fin transmition

     andb #$40            ;* masque de test

     cmpb #$40            ;* boucle si transmition

     bne test2            ;* non terminee

 

     bra trans            ;* branche en trans

 

end:

 

     rts                  ;* retour au prog

 

*********************************************************

*********************************************************

 

    Afin d’envoyer un caractère sur le port série, il faut faire pointer x sur le premier caractère et lancer le programme transmit. Alors le programme envoye le caractère et le pointeur x s’incrémente pour envoyer les caractères suivants, tant qu’il n’y a pas le caractère de fin, codé par la valeur décimal 04. Lorsqu'un 04 est lu par le programme, il s'arrète et retourne au programme principal.

 

Sommaire