Communication série, 2011/2012, TD1

De Wiki d'activités IMA
 Partie électronique:

Mercredi 21 Mars 2012:

On a en entrée un signal sur 8 bits en parallèle.
On a une liaison série qui est toujours à 1, tant qu'on ne transmet pas de données.
A l'appui sur un bouton, on met le signal en série et on l'envoit sur la liaison.
Le signal est réceptionné et remit en parallèle.

Mercredi 28 Mars 2012:

Schéma d'émission : Schema emission.png

Schéma d'émission (zoom) : Schema-emission-reduit.png

Sur la nanoboard, la LED est allumée tout le temps. Sauf quand on appui sur le bouton et on le relache, au bout de 8 temps d'horlogela LED clignote suivant les entrées qu'on lui à mise (mais au moins une fois pour le bit de start). Et après 9 temps la LED reste allumée.

 Partie informatique:

On veut créer une site web où on entre des caractères, qui sont envoyé en parallèle vers une liaison série puis ils nous reviennent en parallèle. /*<!DOCTYPE html> <html>

   <head>
       <meta charset="utf-8" />
       <title>Communication série</title>
   </head>
   <body>

<script type="text/javascript" src="prototype.js"></script>

Entrée des caractères


<FORM METHOD="POST" ACTION="pageWebProjet.html" enctype="multipart/form-data">

entrer les caractères <INPUT type=text name="char"> <INPUT type="submit" value="Envoyer">

</FORM> <?php /* Prepare the read array */ $read = array($stream1, $stream2); $write = NULL; $except = NULL; if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) { /* Error handling */ } elseif ($num_changed_streams > 0) { /* At least on one of the streams something interesting happened */ } ?>

<?php // Quelques constantes

define('SOCKET_ECRITURE','/tmp/serial.send'); define('SOCKET_LECTURE','/tmp/serial.recv');

// Test de lecture de 8 octets

$fe=fsockopen('unix://'.SOCKET_ECRITURE); if(!$fe) die("fsockopen,write\n"); $fl=fsockopen('unix://'.SOCKET_LECTURE); if(!$fl) die("fsockopen,read\n"); if(fwrite($fe,"\0")!=1) die("fwrite\n"); for($i=0;$i<8;$i++){

 	$byte=fread($fl,1);
 	if(strlen($byte)!=1) die("fread\n");
 	printf("%02x\n",ord($byte[0]));
 	}

fclose($fe); fclose($fl); ?>




Champ de reception <h2>
<form method=get action="pageWebProjet.html">

<textarea name="sortie" rows="2" cols="15"> </textarea>

</form> </p>


   </body>

</html>

  • /