Étape 2: PC - miniterm (premier contact)
En tutoriel 214 ; En utilisant un UART pour mettre en œuvre d’un maître de Bus 1-Wire il est décrit comment générer/récupérer des séquences d’impulsions 1-wire bus. Malheureusement les impulsions RESET & présence doivent être produites à 9600 bauds, considérant que toutes les autres (lecture, écriture de 0 et 1) doivent être créées à l’aide de 115200 baud. Comme indiqué dans env. Note 74 ; Lire et écrire 1-Wire périphériques via les Interfaces série: « Même si efficace sous systèmes d’exploitation comme DOS, systèmes d’exploitation modernes faire l’accès aux registres de l’UART assez inefficace. » et étant donné que nous ne voulons pas utiliser un DS2480B, nous devons vivre avec le fait qu’un basculement rapide de la vitesse de transmission à une position de mémoire tampon contrôlée est impossible.
Pour le système que j’ai utilisé ce n’était pas un problème puisque je pouvais détecter de manière fiable les impulsions de RESET et de la présence à une vitesse de transmission de 115200 comme séquence de 0x00 0x00. En fait allant de 9600 à 115200 entraînerait 12 octets au lieu de 1, mais dans ce cas, nous avons seulement 2 bits de départ - donc 2 octets seulement. Même si 0 x 00 peut être une écriture 0 - je n’ai jamais vu les valeurs inférieures à 0 x 80 sur le bus et pourrait donc distinguer écrire 0 et RESET & présence. Dans le cas d’autres systèmes utilisés (maître et esclaves) le moment exact et donc cela pourraient changer.
(J’ai utilisé un OW serveur 2 ENET avec 1 DS2438 en tant que système pour ces tests.)
Que dit, pour un premier contact, que nous n’avons pas réellement s’occuper de trop, il suffit de décider ce que nous voulons voir et puis sélectionnez la vitesse de transmission appropriée. J’ai utilisé le Python script miniterm.py qui vient avec le module pySerial (utilisé plus tard de toute façon - Interface Python et Arduino avec pySerial est très utile en général) afin d’ouvrir le port et regarder le trafic entrant :
$ miniterm.py -D -D -D /dev/ttyACM0 9600
$ miniterm.py /dev/ttyACM0 -D -D -D 115 200 bauds
(Les autres paramètres du port sont: 8 bits, sans parité, 1 bit d’arrêt qui est défini par défaut dans miniterm.)
Une fois que nous avons une connexion établie et voir les données entrantes, nous pouvons commencer à analyser le trafic de bus. Regardez les valeurs hexadécimales apparaissant (devrait être environ 5 différentes valeurs seulement venir maintes et maintes fois), convertir l’hexagone pour les séquences de bits et étudier le calendrier de l’autobus, essayez d’établir une distinction entre les opérations de lecture et d’écriture, etc..
Si vous voulez jeter un oeil à un script (« preuve de l’état de concept comme") très merdique, simple et rapide afin de se faire une idée sur la façon de poursuivre d’ici, puis passez à l’étape suivante.