| Línia 138: | Línia 138: | ||
==== Protocol software ==== | ==== Protocol software ==== | ||
===== Comportament de la unitat de cinta durant les proves ===== | |||
Per canviar el protocol de comunicació de la unitat de cinta es fa amb un interruptor situat al interior de la unitat, que està sota del port serie. La manera més senzilla de accedir-hi es retirant la tapa superior i usar un tornavis per canviar-lo de posició. | |||
Quan treballa en aquest mode la unitat tot just engegar-se (o després d'un reset) envia la seqüènica <b>ESC D</b> | |||
Tot i això continua obeint la linia CTS per les dades que transmet (si es desactiva el CTS es para la transmissió de dades fins que no es torni a activar). | |||
===== Documentació original ===== | |||
S'ha trobat que es màquines Jacquardtronic, almenys les que es poden | S'ha trobat que es màquines Jacquardtronic, almenys les que es poden | ||
trovar a Encajes S.A. Colombia, no fan servir el mateix protocol "Mayer" | trovar a Encajes S.A. Colombia, no fan servir el mateix protocol "Mayer" | ||
Revisió del 15:50, 6 juny 2012
El HW original subministrat per programar una teixidora Mayer era una terminal tonta (Wyse WY-50) per poder donar comandes/verure l'estat i una unitat de cinta per poder guardar/carregar nous patrons de teixit.
Terminal Wyse WY-50
Quick Reference Guide
(obtingut de vt100.net)
La conexió del port serie del terminal normalment està configurada a: Bauds:9600 Parity:Even DataBits:7 StopBits:1 Tot i que en algunes màquines més noves estan configurades a Bauds:9600 Parity:None DataBits:8 StopBits:1.
En cas que no s'encerti la configuració, el problema es detecta amb facilitat. Ja que l'efecte que produeix aquest error de configuració és que només es transmeten bé el +-50% dels caracters.
Per tan si veiem a la pantalla plena de caracters estranys però també es veuen algunes lletres corresponents al texte del menu, llavors tenim la conexió del terminal en la configuració equivocada i per sol·lucionar el problema hem de canviar a l'altre opció.
Unitat de Cinta

| Pinout FACIT 4302 | |||
|---|---|---|---|
| PIN | Nom | Dir | Descripció |
| 1 | Shield | -- | Pantalla cable |
| 2 | Txd | O | Transmisió de dades |
| 3 | Rxd | I | Recepció de dades |
| 4 | RTS | O | Unitat preparada per enviar |
| 5 | CTS | I | Es poden enviar les dades |
| 7 | GND | -- | Referència 0V |
| 11 | Eject | I | Expulsar cinta |
| 14 | BufferSTout | O | |
| 16 | BufferSTin | I | |
| 20 | Operable | O | |
Parametres de conexió: Bauds:9600 Parity:None DataBits:8 StopBits:1
Sembla que els de Mayer tenen la seva versió de unitat de cinta (MAYER 905) que es comporta de manera similar a la FACIT 4302 tot i que han canviat algunes linies de lloc en la unitat.
Internament les dues unitats són força semblants a nivell lògic (CPU MC6805 de Motorola, un port UART + un Baud Rate Generator fixe, un Versatile IO Adapter on s'hi conecten la major part d'IOs...)
La principal diferència és que l'unitat FACIT usa circuiteria de disseny propi per control·lar la cinta mentre que en la MAYER s'ha utilitzat una unitat de cinta amb controladora integrada (TEAC MT-2). Aquest fet combinat amb que els xips de la MAYER són versions més noves apunta a que la unitat de MAYER és una copia millorada de la FACIT...
| Pinout MAYER 905 | |||
|---|---|---|---|
| PIN | Nom | Dir | Descripció |
| 1 | Shield | -- | Pantalla cable |
| 2 | Txd | O | Transmisió de dades |
| 3 | Rxd | I | Recepció de dades |
| 4 | RTS | O | Unitat preparada per enviar |
| 5 | CTS | I | Es poden enviar les dades |
| 7 | GND | -- | Referència 0V |
| 13 | Eject? | I | Possiblement el pin 11 de la FACIT |
| 15 | BufferSTout? | O | Possiblement el pin 14 de la FACIT |
| 16 | BufferSTin | I | |
| 20 | Operable | O | |
Protocols
Protocol hardware
Comportament de la unitat de cinta observat durant les proves


Primer de tot remarcar que la unitat de cinta *NO funciona amb cassetes estandard*. Les cintes de dades tenen una indentació que la unitat utilitza per identificar-les i assegurar-se que estiguin sempre posades de la mateixa cara.
Un cop la unitat detecta que té posada una cinta vàlida activa les senyals Operable,RTS i BufferSTin indicant que esta llesta.
Si quan s'engega ja té una cinta posada, llavors no indica que estigui llesta.També després d'un error i/o problema de comunicació, la manera per que la unitat de cinta torni a passar al estat de llesta és expulsant la cinta i tornar-la a posar.
Per iniciar una lectura n'hi ha prou en activar la linia CTS de la unitat i aquesta comença a transmetre les dades fins que arriva al final de la cinta. Un cop detecta el final de la cinta desactiva les senyals Operable i BufferSTin i procedeix a rebobinar la cinta. Un cop acaba de rebobinar expulsa la cinta (en els models que no disposen de expulsió automàtica, encen el led indicant que es pot treure el cassette)
Per l'escriptura sembla que l'única cosa que s'ha de fer és enviar les dades i un cop s'ha acabat fer un Eject per indicar que s'ha acabat. Tot i això sembla que hi ha algun problema ja que de moment no s'ha aconseguit recuperar totes les dades guardades.
Al igual que a la lectura la unitat rebobina la cinta abans d'expulsar-la.
Info treta de documentació antiga
En la segënt taula es mostra a quin valor posa la MRSJ les linies de control durant les diferents operacions:
| MRSJ MENU TEXTE | MRSJ MENU WYSE WY-50 | ESTAT | ||||
|---|---|---|---|---|---|---|
| BuffSTin pin 16 |
CTS pin 5 |
Eject pin 11 |
BuffSTin pin 16 |
CTS pin 5 |
Eject pin 11 | |
| 0 | 1 | 0 | 0 | 1 | 1 | INIT |
| 1 | 1 | 0 | 1 | 1 | 1 | LA |
| 0 | 1 | 0 | 0 | 1 | 1 | RESET |
| 0 | 1 | 0 | 1 | 1 | 1 | Preparat per carregar |
| 0 | 1 | 0 | 0 | 1 | 1 | Mostra text (LA) |
| 1 | 1 | 0 | 1 | 1 | 1 | confirma text (LA) |
| ? | 1 | 0 | 1 | 1 | 1 | Transmissió (LA) |
| 0 | 1 | 0 | 0 | 1 | 1 | Initial Status |
| 1 | 1 | 1 | 0 | 1 | 0 | SC |
| 0 | 0 | 0 | 0 | 1 | 1 | RESET |
| 0 | 1 | 0 | 0 | 1 | 1 | preparat per grabar |
| ? | ? | 0 | ? | ? | 1 | Eject |
| 0 | 1 | 0 | 0 | 1 | 1 | Initial Status |
| Dades extretes del fitxer ldst.txt | ||||||
Protocol software
Comportament de la unitat de cinta durant les proves
Per canviar el protocol de comunicació de la unitat de cinta es fa amb un interruptor situat al interior de la unitat, que està sota del port serie. La manera més senzilla de accedir-hi es retirant la tapa superior i usar un tornavis per canviar-lo de posició.
Quan treballa en aquest mode la unitat tot just engegar-se (o després d'un reset) envia la seqüènica ESC D
Tot i això continua obeint la linia CTS per les dades que transmet (si es desactiva el CTS es para la transmissió de dades fins que no es torni a activar).
Documentació original
S'ha trobat que es màquines Jacquardtronic, almenys les que es poden trovar a Encajes S.A. Colombia, no fan servir el mateix protocol "Mayer" per controlar les transferències de dades.
Descripció del protocol de transferencia alternatiu (Jacquardtronic)
----------------------------------------------------------------------
Adrià 16/05/2006
1. INTRODUCCIÓ
2. FUNCIONAMENT
2.1 Inici d' operacions.
2.2 Protocol de transferència.
2.3 Operació format.
3. PROBLEMES
3.1 Velocitat de Laden.
3.2 Errors de transferencia.
1. INTRODUCCIÓ
Hem trobat que les màquines Jacquardtronic, almenys les que es poden
trovar a Encajes S.A. Colombia, no fan servir el mateix protocol "Mayer"
per controlar les transferències de dissenys. Es possible que aquest
protocol no sigui únic de les màquines Jacquardtronic, o fins i tot que
hi hagin màquines Jacquardtronic que façin servir l' altre, aixi que
l' anomenarem protocol de transferencia alternatiu o per software.
Mentres que la resta de màquines fan servir les senyals de hardware
del RS-232 (RTS, CTS, etc...), aquestes màquines fan servir només els
pins Rx i Tx de la conexió CASSETTE, i envien unes sequencies d' escape
determinades per controlar les transferencies. Es veu que no cal un
terminal Mayer especial per controlar aixó, sinó que qualsevol terminal
soporta els dos modes de funcionament sense cap tipus de configuració
per part de l' usuari. Aixó s' ha de confirmar ja que els terminals d'
Encajes S.A. son tots prou nous.
2. FUNCIONAMENT
2.1 Inici d' operacions.
Al protocol hardware "de tota la vida", hi han dos operacions
diferents, LA(laden) i SC(schreiben). Quan la màquina vol que li enviem
dades (LA) lo que fa es activar les senyals Eject, DSR i CTS del Facit
(Cassette). Quan es vol fer SC, lo que fa es enviar les dades per el
Facit directament.
Al nou protocol, es contemplen tres operacions: LA, SC i FO (format).
Per realitzar qualsevol de les tres, la màquina primer reseteja el
canal de dades i despres l' activa un altre cop. Aixo es equivalent a
rebre les següents seqüencies per el facit:
(ESC es l' escape ASCII, 27 decimal, 1Bh hexadecimal o 033 octal.)
Màquina -> ESC A (Abort transfer).
No fem res.
Màquina -> ESC C (Iniciar transfer).
A aquest darrer ESC C hem de respondre obligatoriament amb
ESC F (Facit ready).
amb aixo es dona el canal de dades per establert (La màquina li diu
DATA CARRIER). Ara esperem a rebre una nova seqüencia per el facit,
de tres possibles:
ESC D (Iniciem un LAden).
ESC E (Iniciem un SCreiben).
ESC X (Iniciem un FOrmat).
Cal destacar que quan es rep el primer ESC (ESC A), el programa s'
adona de que es farà servir aquest nou protocol, i ha de desactivar el
flow control del port facit a la llibreria RS.
2.2 Protocol de transferencia.
Les operacions LA i SC son transferencies de dades, nomes canvia el
sentit. En ambdos casos es fa servir el mateix protocol, nomes canvia
l' emisor i el receptor. Aixó es aplicable un cop s' ha rebut l' ESC E
o ESC D per seleccionar SC o LA respectivament.
L' emisor va enviant bytes tant ràpid com pot. Com que pot enviar
seqüencies d' escape (ESC ?), ha d' escapar el byte ESC perque sigui
interpretat correctament. Llavors, si es vol enviar el byte 27(ESC),
s' ha de enviar doblat, 27 27. Igualment, el receptor, quan rebi aquest
ESC ESC, ho ha d' interpretar com que ha rebut un byte 27 del disseny.
Tant l' emisor com el receptor poden enviar un ESC A, per abortar la
transferencia.
El receptor, en qualsevol moment, pot enviar els següents bytes:
PAUSE (13h) 19 decimal.
RESUME (11h) 17 decimal.
sense cap ESC, només un byte. L' emisor ha de pausar la transferencia
o continuarla, respectivament. Aquests codis son els que sustitueixen
el flow control hardware.
Aquests codis, al viatjar per el canal de dades, no tenen un efecte
inmediat (com passava amb els CTS). Quan se li envia a la màquina un
PAUSE, es normal que ens envii uns quants bytes mes fins que fa cas.
Per tant es necessari enviarlo quan encara tenim puesto per almenys
uns 32 bytes per anar segurs.
De la mateixa manera, a nosaltres ens va be no fer cas inmediatament
d' aquest codi (PAUSE). Ja que ens penalitza molt el rendiment el
mirar, cada cop que enviem un byte, si la màquina ens ha enviat un
a nosaltres. Fent proves, s' ha trobat que les màquines Jacquardtronic
envien el PAUSE quan els hi queda espai per 29 bytes al buffer, de
tal manera que podem comprobar si em rebut un PAUSE cada 29 bytes
enviats, com a minim dupliquem la velocitat fent aixó. De tota manera
no es segur ja que en d' altres màquines aquest buffer podria ser
mes petit. Finalment s' ha triat de fer el check cada 10 bytes, lo
qual continua donant un bon rendiment respecte a fer-ho cada byte.
(Veure #define ALTERNATE_FLOW_INTERVAL a LDST.H)
Al finalitzar una transferencia SC, la màquina ens envia un ESC C,
i s' espera que responem, igual que avans, amb ESC F. Amb aixo tanquem
el canal de dades i vol dir que tot ha anat be. A l' hora de fer un LA
no es fa res per finalitzar, suposo que el cassette de la Mayer no
enten de dissenys i de passades i no pot saber quan s' acaba el disseny
per lo tant es imposible que envii l' ESC C. Es la màquina la que sap
de passades i la que talla la transferencia.
2.3 Operació Format
L' operació de formatejar un disc es diferent a tot aixo. Quan
ens demanen un format amb ESC X, l' unic que fa la màquina es esperar
a que responem amb un altre ESC X per printar per pantalla que el
format s' ha realitzat correctament. No hi ha cap transferencia de
dades ni res.
3. PROBLEMES
3.1 Velocitat de Laden
El cassette Mayer envia les pasades a la màquina molt més ràpid
que l' LDST. Amb el protocol hardware original, aixó es a l' inrevès.
Com que no hi ha massa diferencia en l' implementació dels dos
protocols, no seria d' estranyar que hi hagues alguna seqüencia d' ESC
especial per canviar la velocitat del port o, en general, per iniciar
un mode de transferencia més ràpid (Compressio??). Aquesta opinió ve
reforçada per l' efecte que dona el terminal a l' hora d' enviar. Es
veu clarament com salten les pasades de 10 en 10, com si fos capaç
d' enviarles en blocs de 10. Aixo es raro perque cada disseny te una
longitud de pasada diferent, i com ja em dit abans, el cassette no
enten de pasades, sino de bytes i blocs de disc. Pero realment es veu
com, sigui com sigui el disseny, al terminal conta de 10 en 10.
3.2 Errors de transferència.
Qualsevol error de transferencia (DATA CARRIER errors, segon la
màquina), seria causat per alguna de les següents condicions:
DATA CARRIER ERROR:
Ho diu la màquina si no complim el protocol correctament.
DATA CARRIER TIMEOUT:
Ens ho diu si triguem massa (>3 segons) en començar a enviar
els disseny despres de haver rebut el ESC D (LAden).
DATA CARRIER ¿CHECKSUM? ERROR:
Checksum error al mig de la transferencia. Lo normal es que
haguem fet overflow del buffer intern de la màquina. S' hauria de
disminuir el valor de ALTERNATE_FLOW_INTERVAL a LDST.H.
S' han fet moltes proves amb aquest valor i el limit es a 29,
aixó es, amb 30 dona checksum errors. Potser en d' altres màquines
es un valor mes petit.
Format de les dades
La especificació del format es pot trobar a Format_myr
