Le défi du logiciel: les données des utilisateurs sur n'importe quelle connexion

Le défi du logiciel
  1. Pour présenter les données de manière uniforme au périphérique informatique, qui soit simple à utiliser, facile à configurer, sécurisé et fiable.
  2. Pour présenter les données comme s’il avait une connexion aussi robuste qu’un câble point à point, peut importe que la connexion soit temporaire, locale ou à distance, partagée ou dédiée, avec ou sans fil.
  • Le logiciel Connection Diagnostic Interface doit fonctionner peut importe le type de connexion.
  • Les vendeurs de matériel doivent se plier à ces demandes de marché.

Développement de pilote de périphérique

  • Les fabricants de périphériques série comme Brainboxes basent leurs pilotes de périphérique sur un code et des recommandations dans le Device Driver Kit de Microsoft – le DDK.
  • Comment réussir une implémentation de pilote de périphérique et comment cela varie d’un fabricant à l’autre.
  • Avec plus de 20 ans d’expérience de conception, fabrication et de livraison de produits à ports série, Brainboxes a développé une gamme étendue de test que nous appliquons continuellement nous permettant d’avoir un code de la plus haute qualité possible.
  • Brainboxes a toujours soumis notre code de pilote à Microsoft WHQL – Windows Hardware Quality Labs et obtenu le convoité Windows Logo Approval. Brainboxes a fait cela depuis les premiers jours du HCL – Hardware Compatibility List – introduit avec Windows NT à la fin des années 1990. 

Les Différentes Couches entre l'Application et le Port Serie Physique

Brainboxes software stack

Compatibilité des pilotes 

  • Suivant l’interface de port série et l’actuel matériel série, la quantité de travail nécessaire pour implémenter un pilote de périphérique varie.
  • Pour les ports série ISA basés sur les puces de norme 16550 UART tout ce qui est requis est de passer deux paramètres sur le propre code de pilote de périphériques série de Microsoft. Cela donne le plus haut niveau de compatibilité car il n’y a pas de code de Microsoft impliqué.
  • Avec les produits PCI et PCI Express un processus similaire va fonctionner.
  • Cependant les UART ont de nombreuses fonctionnalités ajoutées pour aider le CPU à faire face au problème croissant d’un PC multi tâche utilisant un OS Windows. Le code DDK de Microsoft ne supporte pas ces fonctionnalités et donc les fabricants de port série comme Brainboxes doivent fournir leur propre code de pilote de périphérique pour implémenter les fonctionnalités UART port série comme les nécessaires vérifications automatiques et les FIFO plus poussés à 16 octets.
  • La façon dont ces pilotes de périphériques sont écrits est une différenciation clair pour les sociétés de port série.
  • Il y a une correspondance évidente sur les appels API de Windows lorsqu’on utilise les interfaces PCI Express ou ISA même lorsqu’on utilise les UART hautement avancés. Lorsqu’on implémente un pilote de périphérique pour ports série qui sont attachés de l’autre côté d’un lien de transport comme l’USB ou l’Ethernet, cela signifie qu’on a à faire à plusieurs problèmes. Réussir la compatibilité sur les PC Windows n’est pas une tâche aisée car cela ne demande pas seulement une compréhension approfondie de la structure DDK de Windows mais cela implique aussi des appels de jugement dans le plan d’action à suivre lorsque le statut ou les données ne sont pas immédiatement disponibles car elles sont envoyées depuis une grande distance et vont mettre du temps à arriver.
  • Cela amène tdeux zones principales d’incompatibilités qui font échouer ou marcher inconstamment les applications:
  1. Les mauvaises valeurs de retour reviennent vers Windows et l’application en raison d’incompréhension avec l’API Série,
  2. Les postulats cachés dans le code par rapport aux temps de réponse etc.
    Les postulats cachés sont les plus durs à débuguer.

Postulats Cachés

Une grande partie du modèle de programmation de la norme ISA interface originale a été inconsciemment reporté dans l'écrit le code d'application Windows.

Hypothèse 1: Le périphérique série est l’utilisation exclusive du Programme sur le PC Hôte.

  • Vrai : PCI, USB
  • Faux : Ethernet

Hypothèse 2: Latence, l’interface série est immédiatement capable de fournir à l’application du PC des informations sur le statut regardant par exemple les sorties de vérifications CTS/DCD/DSR/RI du port série.

  • Vrai : PCI
  • Faux : USB, Ethernet

Hypothèse 3: Les données de latence transmises et le statut de ligne de sortie de vérification sont effectués instantanément

  • Vrai : PCI
  • Faux : USB, Ethernet

Hypothèse 4: Les instructions de latence pour changer le débit baud etc ou pour les tampons de données tx/rx sont effectuées instantanément

  • Vrai : PCI
  • Faux : USB, Ethernet

Hypothèse 5: Les programmes modifiés pour marcher avec des périphériques particuliers dans des configurations typiques vont fonctionner même avec les changements de plateforme de PC, les versions de Windows, différentes révisions de périphériques série et un équipement externe d’utilisateur final.

  • Dépend

 

Installation et Configuration

  • Dans le passé la façon dont un port était installé et configure était hautement dépendante du bus d’interface et des préférences du fabricant de périphérique.
  • Comme l’UI de Windows s’est amélioré, il est de plus en plus probable qu’une méthode commune unifiée basée sur des API de Microsoft sera utilisée.
  • Donc l’installation d’aujourd’hui est souvent provoquée par l’événement de la découverte Plug and Play basée sur la découverte de périphérique de style USB.
  • Donc les ports COM ajoutés au système du PC et accessible dans un moyen standard
  • Configuration via le Panneau de Configuration ou de plus en plus par une interface web.

Brainboxes COM port settings

Interface de Port COM traditionnelle

  • Notre logiciel donne à vos applications une vraie interface de port COM et traite tous les problèmes de couches de transport, la latence et les protocoles de connexion.
  • Vous permet de faire un retour sur votre investissement de logiciel éprouvé.
  • Mettre à jour une nouvelle topologie de connexion en toute simplicité.

Latence

  • Chaque couche a sa propre façon standardisée de communiquer des informations de configuration, des données de port série et des informations sur le statut.
  • Comme les données transitent de haut en bas des couches à partir de l’application au port série physique ces processus peuvent ajouter des retards:
  1. Mettre en paquet des données pour augmenter le flux
  2. Les données décodées à partir d’un standard et ré-encodées dans le standard suivant.
  3. Le transfert actuel de données à travers une interface
  4. La mise en série des données telles qu’elles sont transmises ou reçues
  • Le retard total est appelé la latence.
  • Typiquement, plus de paquets de données sont transférés moins la latence a d’importance.

 


C'est la partie 3 d'une série de 3 parties:

Partie 1: Bref Historique des Communications Série

Partie 2: Latence et Temps de Réponse

Télécharger la présentation complète ci-dessous:

Revenir