begin process at 2012 05 25 12:29:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Aide et documentation

 > 

programation systeme (demande d'aide au projet sur les ports serie


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

programation systeme (demande d'aide au projet sur les ports serie

samedi 30 janvier 2010 à 01:21:13 | programation systeme (demande d'aide au projet sur les ports serie

jpachocho

lien vers le projet;
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Architecture/TDTP/TDTPmv/head_n_footer?nomdoc=TPS.htm
Liaison série par câble null-modem


L’objectif de cette série de TPs est de vous faire établir une liaison entre deux ordinateurs en utilisant un câble null-modem. Vous devez réaliser la connexion et écrire les programmes de communication. Le TP se décompose en plusieurs parties non entièrement indépendantes

Programmation
Les différents programmes que vous allez écrire sont similaires; il est plus économique de programmer des fonctions puis de les appeler dans les différents programmes.
N’oubliez pas de bien aérer et commenter vos programmes.
Pour l'accès au port série, utiliser les fonctions inport et outport .
Configuration

Ecrivez une fonction qui permet d'afficher la configuration de l'interface (le contenu de tous les registres), et testez-la dans un programme qui l'appelle.

Testez votre fonction pour lire la configuration DOS par défaut de l’UART série (8 bits d’information, pas de bit de parité, 1 bit de stop, rapidité de modulation de 2400 Bauds).

Ecrivez des fonctions pour configurer l'interface. Dissociez la fonction de configuration de la vitesse de transfert de celle de configuration de format. La première (SetBaud) devra recevoir en paramètre la valeur à ranger dans le diviseur de fréquence (Divisor Latch). La seconde (SetUART) pourra fixer arbitrairement la configuration au standard DOS (sans interruption, ni modem).
Envoi et réception

On désire écrire une fonction pour retourner le premier caractère sur l'interface série (s’il n’y en a pas de nouvel arrivé, il faudra attendre). Essayez de déterminer quels sont les problèmes qui peuvent apparaître lorsque l'on veut lire un octet reçu. En déduire les différentes phases pour recevoir un caractère.
On ne veut pas travailler avec les interruptions (trop complexes à mettre en eouvre). Comme on ne dispose pas d'appel pour savoir si un nouveau caractère est arrivé, il va falloir en permanence scruter l’arrivée d’un caractère.
Ecrivez une fonction SerIn (pour Serial In) qui lit un caractère sur l'interface série et le retourne.
On désire écrire une fonction pour envoyer un caractère sur l'interface série. Essayez de déterminer quels sont les problèmes qui peuvent apparaître lorsque l'on veut envoyer un octet. En déduire les différentes phases pour envoyer un caractère.

Ecrivez une fonction SerOut (pour Serial Out) qui écrit sur l'interface série un caractère.
Ecrivez un programme pour tester les deux fonctions écrites précédemment à l’aide de deux ordinateurs reliés par un câble null_modem.


Protocole
Malgré les contrôles effectués, on n'a pour l'instant aucun moyen de contrôler le flux de transfert, et donc d'éviter les erreurs d'écrasement à l'arrivée. Vous devez donc établir un protocole d'échange. Ce sont les données transmises qui vont vous permettre le contrôle (pour éviter les erreurs). Vous allez contrôler l'envoi de chaque octet grâce à un acquittement individuel.
Le protocole Xon/Xoff (dans lequel X signifie eXchange) est très standard et permet le contrôle, transformant la ligne en une liaison en half-duplex. Le protocole est le suivant:
L’état de la ligne au repos est un octet à Xoff. L’algorithme pour les deux parties est le suivant :
- l'émetteur fait une demande de connexion en envoyant UN octet Xon et il attend la réponse ;
- le récepteur qui scrutait la ligne répond par Xon pour signaler qu’il accepte la connexion et qu’il est prêt à recevoir le caractère, qu’il se met à attendre ;
- l'émetteur envoie le caractère et attend l’accusé de réception (Xoff) ;
- dès qu’il voit le caractère (qui n’est pas Xon), le récepteur renvoie un accusé de réception (Xoff) ;
- l’émetteur finit à son tour en déconnectant lui aussi la ligne par Xoff.
Testez le protocole Xon/Xoff pour des transferts d’octets d’un ordinateur à l’autre en écrivant un logiciel de deux programmes (l’un pour l’émission, l’autre pour la réception).
En utilisant les même fonctions, faites un programme "echange" qui affiche sur un ordinateur ce qui est frappé sur le clavier de l’autre et réciproquement. Le programme est le même pour les deux machines. Le basculement en mode d’émission doit être automatique dès que l’on frappe une touche au clavier. De même dès qu’un caractère est envoyé on doit être en mode réception pour l’afficher. On supposera que l’on ne tape pas sur les deux claviers en même temps. Faites bien attention aux phases d’initialisation.
Ce protocole n’est pas parfait. En cas d’erreur de transmission l’ensemble reste bloqué. Essayez de trouver une solution. Vous pouvez modifier le protocole, mais vérifiez sa robustesse face aux différents problèmes qui peuvent survenir lors de la transmission de bout en bout. Il ne vous faut évidemment pas utiliser pour vos codes de contrôle des caractères susceptibles d'être transmis par ailleurs ; puisez votre inspiration dans les 32 premiers codes de la table des caractères ASCII.
dimanche 14 février 2010 à 10:12:46 | Re : programation systeme (demande d'aide au projet sur les ports serie

ToutEnMasm

Vu l'age du problème,il serait surprenant de ne pas trouver une abondante documentation ,étayer de code sources, en utilisant google.


Cette discussion est classée dans : fonction, caractère, série, configuration, protocole


Répondre à ce message

Sujets en rapport avec ce message

Probleme de dll! (arguments...) [ par BlackWizzard ] salut les pro!voila, G une fonction contenu dans une dll mais cette fonction, je ne sait pas comment lui ajouter des arguments...voici un extrait du c Fonction Download [ par Stormy ] StormyQuelqu'un aurait'il connaissance d'une fonction permettant le passage de données (de fichiers plutôt) par le fait d'un socket? Merci et @+ Fonction DLL avec arguments [ par Arnotic ] Bonjour, J'ai une DLL avec une fonction qui prend 2 arguments (en C (char*, int). Lorsque je la charge j'ai aucun problème mais lors de l'appel à envoie d'un caractère par liaison série en asm/C [ par lordankou ] bon voila j'ai un programme en C qui appelle une procédure en assembleur et cette dernière doit retourner un caractère. j'ai donc écrit le programme s La fonction API SendMessageA [ par douja ] Bonjour les amis J'utilise la fonction SendMessageA pour la justification à droite des mes zones de saisie avec les paramètres suivants: SendMessag Ecriture de chaîne [ par Laurent1313 ] Salut,Je cherche à modifier une chaîne en assembleur. Je prends donc un caractère, je fais un traitement dessus puis je recopie le caractère dans la c FindFirstFile & FindNextFile [ par Stormy ] Quelqu'un aurait-il la gentillesse de me montrer comment coder une fonction permettant de lister un répertoire quelconque. Le but de cette fonction es probleme de cryptage avec la fonction crypt [ par kapes ] j'ai un probleme avec la foncion crypt() de c.en effet, j'ai ecrit un programme c qui creer des comptes utilisateurs. A l'interieur de cette fonction Fonction WriteFile Help !!! [ par Apinew ] ApinewBonjour, j'aimerai savoir quels sont les arguments à passer à la fonction WriteFile pour qu'elle inscrive qq chose dans un fichier.Je remercie à Creation commande port série [ par hypotamtam ] Bonjours, je suis novice dans l'electronique et je voudrais savoir si quelqu'un pourrais m'aide ou me donner des liens internet.Je souhaiterai juste s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales