Aquest protocol l'utilitzen les màquines mayer relativament recents per comunicar-se amb la unitat de dades. Està basat en el SDLC/HDLC d'IBM tot i que el format de paquet és diferent.

Elèctric

S'utilitza un sol parell diferencial tan per la recepció com la transmissió. Els transceptors s'acoplen al la linia de transmissió via un transformador. Amb un VD+-VD- entre +5V i -5V. La impedància de la línia és de 120 Ohms.

Codificació de bits

S'utilitza una codificació AMI. És a dir:

  • L' '1' es senyalitza mantenint la línia a 0V
  • El '0' es senyalitza alternativament amb +5V o -5V


Vdiff Bit
+5V o -5V 0
0V 1

S'utilitza el mateix bit-stuffing que el HDLC. És a dir: s'inserta un '0' cada cop que es troben 5 '1' seguits. També, al igual que el HDLC s'utilitza els patró de bits '01111110' (7E) per delimitar els paquets i sincronitzar els rellotges del transmisor i el receptor Finalment, el patró de bits '1111111' està prohibit. Si es troba dins d'un paquet es considera error de transmissió.

La velocitat de transmissió és de 1024Kbits/s

Control de flux

El canal és Half-Duplex i el teler controla la direcció de transmissió. La unitat de dades només pot transmetre com a resposta a una peteció i s'ha d'esperar a que la línia quedi inactiva (0V)

<aafigure scale=0.4>

      -+    +-----------------------+       +---+                       +---+   +---+   +-------+       +---+                           +-------------------+   +-----------+   +-----------------------+   +--------------------------------......

Data | | | | | | | | | | | | | | | | | | | |

       +----+                       +-------+   +-----------------------+   +---+   +---+       +-------+   +---------------------------+                   +---+           +---+                       +---+
        +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-....

Clock |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |*| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |0| |1| |2| |3| |4| |5| |6| |7| |

      --+0+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+1+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+2+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+3+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+4+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+5+-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+
  "-5V"                             +---+       +---+   +---+   +---+       +---+               +---+       +---+   +---+   +---+   +---+                                   +---+
                                    |   |       |   |   |   |   |   |       |   |               |   |       |   |   |   |   |   |   |   |                                   |   |

Line --+ +-----------------------+ | +---+ | | | | | +---+ +---+ +-------+ | +---+ | | | | | | +-------------------+ +-----------+ +-----------------------+ +-------------------------------------------------

        |   |                           |   |       |   |   |   |   |   |           |   |           |   |       |   |   |   |   |   |                       |   |                                       |   |
  "+5V" +---+                           +---+       +---+   +---+   +---+           +---+           +---+       +---+   +---+   +---+                       +---+                                       +---+
         \                             / \                             / \                             / \                             / \                                 / \                             / \                              
          ------------   --------------   ------------   --------------   -------------   -------------   -------------   -------------   ----------------   --------------   --------------   ------------   --------------  -----------------
                      \ /                             \ /                              \ /                             \ /                                \ /                               \ /                             \/
                       +                               +                                +                               +                                  +                                 +
                       |                              Byte 1                           Byte2                           Byte3                             Byte4                               |

Sync IN ---------------+ \ / |

                                                     ------------------------------------------------   -------------------------------------------------------                              /
                                                                                                     \ /                                                                                    /
                                                                                                      +                                                                                    /
                                                                                                      |                                                                                   /
                                                                                                     DATA                                                                                /
                                                                                                                                                                                        /

Sync OUT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/

</aafigure>

Paquets

Els paquets tenen l'estructura:

Camp Tamany (bytes) Descripció
FLAG n Sync-in normalment de 220 a 250 repeticions del patró '01111110' (7E)
Dest Addr 1 Addreça de desti Maquina=0x01 Unitiat=0x02
Seq No 1 Numero de seqüència del paquet del (0x01 al 0xff)
Src Addr 1 Addreça d'origen
Op Code 1 Tipus de paquet
Data n Dades de 0 a n bytes. Sembla que el limit és de 642 bytes en el nostre cas
FCS 2 Frame Check Sequence. A.k.a. Codi de verificació del paquet.
FLAG n Sync-out normalment de 30 a 40 repeticions del patró '01111110' (7E)

Frame Check Sequence

És un CRC amb els paràmetres següents:

  • polinomi: x^16+x^12+x^5+1
  • xor final:0xffff
  • init-val:0x84cf

Protocol

Comandaments/Respostes
OP_CODE Data Nom Descripció
0x00 - PING es respon amb ACK per indicar recepcio correcte
0x01 - SC_START es respon amb ACK si es pot escriure en el disc. En altre cas ERR_ACK (0x80)
0x02 - LA_START es respon amb ACK si es pot llegir el disc. En altre cas ERR_ACK (0x80)
0x03 - REQ_DATA Demana següent block de dades
0x04 dt_len_hi,dt_len_lo,dt0,dt1,...,dtdt_len-1 DATA_BLK Block de dades, 0<=dt_len<=0x280
0x05 <track_no> FMT_TRACK Formateja pista <track_no>=[0..79]
0x06 - ACK Ack pkt
0x80 - RESET_COMMS Error ACK: últim comandament ha fallat
0x81 - ABORT Aborta operació en curs

Carrega (LA)

<mscgen caption="Carrega (LA)" uniquifier="DiagramLA" > msc { a [label=Loom],b[label=DataUnit];

a=>b [label="LA_START"]; b=>a [label="ACK"]; a=>b [label="REQ_DATA"]; b=>a [label="DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,..."]; ...; ...; a=>b [label="REQ_DATA"]; b=>a [label="DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,..."]; a=>b [label="RESET_COMMS"]; b=>a [label="ACK"]; a=>b [label="RESET_COMMS"]; b=>a [label="ACK"]; } </mscgen>


Captura LA MayerDLC

Descarrega (SC)

<mscgen caption="Descarrega (SC)" uniquifier="DiagramSC" > msc { a [label=Loom],b[label=DataUnit];

a=>b [label="SC_START"]; b=>a [label="ACK"]; a=>b [label="DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,..."]; b=>a [label="ACK"]; ...; ...; a=>b [label="DATA_BLK,dt_len_Hi,dt_len_Lo,dt0,dt1,..."]; b=>a [label="ACK"]; a=>b [label="DATA_BLK,0,0"]; b=>a [label="ACK"]; a=>b [label="RESET_COMMS"]; b=>a [label="ACK"]; a=>b [label="RESET_COMMS"]; b=>a [label="ACK"]; } </mscgen>

Captura SC MayerDLC

Format (FO)

<mscgen caption="Format (FO)" uniquifier="DiagramFO"> msc { a [label=Loom],b[label=DataUnit];

a=>b [label="FMT_TRACK,0"]; b=>a [label="ACK"]; a=>b [label="FMT_TRACK,1"]; b=>a [label="ACK"]; ...; ...; a=>b [label="FMT_TRACK,79"]; b=>a [label="ACK"]; a=>b [label="RESET_COMMS"]; b=>a [label="ACK"]; } </mscgen> Captura FO MayerDLC

Errors

<mscgen caption="Errors comunicació" uniquifier="DiagramErrs"> msc { a [label="Loom"],b[label="Data Unit"]; ...; ...; --- [label=Timeout]; a -x b [label="PKT SEQ=n"]; a -x b [label="PKT SEQ=n"]; a -x b [label="PKT SEQ=n"]; a -x b [label="PKT SEQ=n"]; a -x b [label="PKT SEQ=n"]; a -x b [label="PKT SEQ=n"]; a -x b [label="RESET_COMMS SEQ=n+1"]; ...; ...; --- [label="SEQ Error"]; a => b [label="PKT SEQ=n"]; b => a [label="RESP SEQ!=n"]; a => b [label="RESET_COMMS SEQ=1"]; ...; ...; --- [label="OP Error"]; a => b [label="PKT"]; b => a [label="ABORT"]; a => b [label="RESET_COMMS"]; b => a [label="ACK"]; } </mscgen>