2009-04-03 5 views
3

Je conçois des logiciels autour d'un produit matériel existant. J'ai le plein contrôle du protocole de communication mais je ne suis pas sûr de savoir comment faciliter la détection de l'appareil.Détection automatique de la configuration d'un port série?

Un dispositif peut avoir une plage de configurations possibles (c'est-à-dire débit en bauds, bits de données, bits de parité, bits d'arrêt) qui doivent être détectées au moment de l'exécution. Quelle est la manière la plus simple et la plus fiable pour le logiciel de déterminer quelle configuration il utilise? Encore une fois, j'ai le plein contrôle du protocole de communication afin que je puisse définir tout mécanisme que je souhaite.

Répondre

3

S'agit-il d'un périphérique duplex intégral ou semi-duplex? Pouvez-vous contrôler la demande d'envoi et surveiller clear-to-send aux deux extrémités de la ligne série? La ligne série est-elle point-à-point (comme RS-232) ou multi-drop (comme RS-485)? Cela fera une différence (quoique minime) si vous allez interférer avec d'autres appareils déjà connectés en négociant avec un appareil nouvellement connecté. Si vous considérez le processus de prise de contact comme un modem négociant un protocole de couche liaison, il utilise un ensemble standard de messages pour décrire le type de communications qu'il souhaite avoir et attend un "ack" de l'autre extrémité. Dans votre cas, je recommande d'avoir un message standard "parlons" que votre tête de réseau génère avec la gamme de débits binaires et attend l'accusé de réception de l'appareil.

Je recommande également de réduire le nombre d'options de configuration pour l'appareil. Oubliez les bits de données variables, les bits de parité et les bits d'arrêt. Le monde des communications série n'est plus aussi instable qu'il l'était dans les années 70. Utilisez simplement 8 bits de données, pas de parité, un bit d'arrêt et faites varier le débit binaire. Un CRC à la fin des messages fournit beaucoup de vérification d'erreur.

+0

À l'heure actuelle, je suis à la recherche de duplex intégral RS-232, mais RS-485 semble intéressant. Quelle différence fait le duplex et la demande de contrôle/clear-to-send aux deux extrémités? Puis-je démarrer des communications en utilisant une configuration requise et passer à la configuration préférée à la volée sans me déconnecter? – Gili

+0

Le mode duplex intégral consiste à envoyer et à recevoir simultanément des unités de données de protocole (messages). Les RTS/CTS sont des moyens simples de signalisation des signaux de début/de fin d'échange de messages, comme un message d'un bit. Vous pouvez absolument commencer lentement et augmenter jusqu'à ce que le lien peut gérer avant que le taux d'erreur devient trop élevé. – Joel