Introducció

En algunes màquines el LDST no funciona, i la informació que es pot veure en els arxius de log és insuficient per sol·lucionar el problema. Fins ara la alternativa era connectar-se a una unitat de dades que s'entengues amb aquesta màquina concreta i reproduir els missatges que enviava la màquina a la unitat de dades mirar que responia, modificar el programa per que seguis el mateix comportament i tornar-ho a provar...

Els problema que té aquest mètode, és que es perd informació al passar la senyal per el adaptador RS232<->USB (Si el adaptador no pot decodificar la senyal, la ignora). A més a més ens limita a només senyals compatibles RS232

El problemes d'aquest sistema són:

  • Lent, s'ha de reproduir el problema contra la unitat de dades, capturar la resposta, modificar el programa i tornar-ho a intentar contra la màquina, repetir per cada comportament inesperat...
  • Poc robust. Si no es saben previament una serie de parametres (baudrate,data bits,stop bits,paritat) la captura fallarà.
  • Inprecís. Per culpa dels adaptadors RS232<->USB, tots els temps entre diferents events del RS232 tenen un error mínim de 20ms (Ex: Si rebem 1 byte i 10ms més tard DTR canvia d'estat, no queda clar si ha passat en aquest ordre o a l'inrevés. També qualsevol puls de duració inferior a 20ms en una linia d'estat, pot ser perdut). Tampoc tenim accés al bit de paritat.
  • Limitat al RS232. Com indica el nom els adaptadors RS232<->USB. No soporten capturar comunicacions que no siguin RS232.

Disseny del sniffer

L'sniffer intenta superar aquestes limitacions usant un sistema diferent per capturar les dades. L'sniffer està pensat per capturar una comuniació entre la màquina i la unitat de dades, sense interferir.

Per reutilitzar el màxim de peces i simplificar el desenvolupament del HW s'ha optat per utilitzar el mateix xip que s'utilitza per la versió 2 de la capsa de comunicacions: el FT2232H.

Aquest xip a part del mode RS232 soporta altres modes de treball. Per el sniffer s'ha optat per usar el mode FT245 Async FIFO. Aquest mode ens ofereix 2 canals (A i B) de 8bits cada un, amb capacitat de capturar 1M/Sample per canal i ens permet treballar amb freqüencies relativament baixes (1MHz i per sota).

El canal A s'ha dedicat a la captura exclusiva de senyals RS232. Això limita l'sniffer a la captura d'un màxim de 8 senyals RS232.

El canal B s'ha dividit en 2 sub-canals. Cada un dels sub-canals s'ha conectat a un PIC12LF1840 que s'utilitza per capturar nivells de voltatge.

També s'ha inclòs en la placa l'adaptació de senyal necessaria per rebre les transmissions PCM que sembla que utilitzen les unitats de dades més modernes.

Finalment, el conexionat entre l'electrònica del sniffer i el connector SUB25 es fa amb jumpers cosa que permet que es pugui canviar les linies a capturar.

Mòdul RS232

Per l'adaptació de nivell de les senyals RS232 s'ha optat per usar el MC1489, ja que és fàcil d'obtenir, barat i només requereix 5V per l'alimentació. S'ha posat un latch entre els MC1489 i el FT2232H per evitar problemes de meta-establilitat i sincronitzar les entrades amb les escriptures de dades. També s'ha posat un bloc de LEDs que permet veure l'estat de les linies directament.

Mòdul analògic

Per fer la conversió d'analògic a digital, s'ha utilitzat un PIC12LF1840, malgrat que no és el component més adequat, ja es disponia d'ell. A més a més al ser un micro-controlador, permet ser reprogramat per realitzar altres funcions.

El PIC12LF1840 internament captura el valor del voltatge amb 10bits de precisió però només s'envien 6bits en 2 blocs de 4bits en el format següent:

CLK Canal A Canal B
B0 B1 B2 B3 B4 B5 B6 B7
CK_n A0 A1 A2 1 B0 B1 B2 1
CK_n+1 A0 A1 A2 0 B0 B1 B2 0

Adaptació de senyal

Per adaptar la senyal,

  [[Image:sniffer-sch.jpg]]

Software