details sur fonctionnement du port serie

Bonsoir à tous,

Voici mon projet:

Un Arduino mega 2560 (que je n'ai pas encore à disposition) relié par USB à un petit serveur ARM (que j'ai déjà) pour faire de l'acquisition de données (conso compteur EDF teleinfo, conso compteur divisionnaire avec sortie contact sec, temperature exter, humidité exter, etc...)

Avant de me lancer dans le choix d'un solution j'aurais aimé mieux comprendre le fonctionnement du port série.

J'ai lu la doc et les références et visité les forums mais je n' ai pas trouvé les réponses à mes questions. Donc je vous les soumets ici:

Que se passe-t'il lorsque j’écris sur le port série alors que le pc raccordé ne lis pas encore sur le port ? les données sont-elles émises quand même et perdues ou bien reste-t-elles dans le buffer en attendant que la connexion soit établie ?

Ou se situe le buffer quand l'arduino est l'emeteur: côté arduino ou côté PC ?

Que se passe-t'il lorsque le buffer et plein ? erreur ou bien stockage dans la memoire vive jusqu'a saturation ?

Merci pour vos réponses qui me permettrons du faire un choix

pidou46:
Ou se situe le buffer quand l'arduino est l'emeteur: côté arduino ou côté PC ?

Il y a un buffer de chaque coté mais la liaison ne supporte par défaut pas de contrôle ni matériel (CTS/RTS) ni logiciel (XON/XOFF).
Donc le buffer coté Arduino sert juste à mémoriser le temps que les données partent à la vitesse de la liaison série sans personne pour les ralentir.

Coté PC (mais tu parles d'ARM ? Linux ?), il y a un buffer de réception qui doit se remplir avec les caractères arrivant et se vider quand le logiciel PC lit.
Seulement ce buffer n'existe qu'a partir du moment où le périphérique est ouvert. il s'agit d'un buffer au niveau système de fichier, au dessus du driver de périphérique.
Donc si ton appli PC n'est pas encore lancée ou n'a pas encore ouvert le port, c'est perdu.

Merci barbudor pour ta réponse qui répond bien à ma question.

Le PC Arm c'est un Seagate Dockstar qui tourne sous debian squeeze.

Je pense qu'il me faut donc me tourner vers la mise en place d'un protocole de transmission, j'ai téléchargé ton tuto qui me parait très bien fait a ce sujet.

Tu peut peut-être intégrer la réponse à ma question dans le tuto pour ceux comme moi qui sont complètement ignorants sur le mode de fonctionnement du port série.

A savoir si on écrit sur le port série sans que le PC en face soit connecté les données sont perdues et non stocké dans le buffer, ce qui justifie aussi l'utilisation d'un protocole.

Merci encore