Joan (discussió | contribucions)
Cap resum de modificació
Joan (discussió | contribucions)
Línia 64: Línia 64:




Exemple
===== Exemple =====
<div>
<div>
{{MediaImgFile|LDST/CommBox2/Captures/scope/capt-deco.png|width:100%}}
{{MediaImgFile|LDST/CommBox2/Captures/scope/capt-deco.png|width:100%}}

Revisió del 11:18, 28 oct 2016

_

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 protocol és innecessàriament complexe i és més similar a un protocol de xarxa que no a un enllaç de dades entre 2 aparells.

Nivell físic

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. En concret :

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

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

Una trama del protocol té el següent aspecte:

<aafigure scale=0.4 "Trama MayerDLC" >

      -+    +-----------------------+       +---+                       +---+   +---+   +-------+       +---+                           +-------------------+   +-----------+   +-----------------------+   +------------------------------------------

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 (0x02)                    Byte 2 (0x53)                   Byte 3 (0x01)                      Byte 4  "(0xff)"                   |                               |

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

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

DATA --------------------------------------------------------------------------------------------------+ | |

                                                                                                                                                                                             |                               |
                                                                                                                                                                                             |                               |

Sync OUT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |

                                                                                                                                                                                                                             |
                                                                                                                                                                                                                             |

IDLE -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

</aafigure>


Exemple

<img src="/./media-files/LDST/CommBox2/Captures/scope/capt-deco.png" style="width:100%" />

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)

Nivell d'enllaç

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

Nivell d'apliacació

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>