| Línia 83: | Línia 83: | ||
|0x00||-||PING||es respon amb ACK per indicar recepcio correcte | |0x00||-||PING||es respon amb ACK per indicar recepcio correcte | ||
|- | |- | ||
|0x01||-|| | |0x01||-||SC_START||es respon amb ACK si es pot llegir el disc. En altre cas ERR_ACK | ||
|- | |- | ||
|0x02|| | |0x02||-||LA_START||es respon amb ACK si es pot llegir el disc. En altre cas ERR_ACK | ||
|- | |- | ||
|0x03||-||REQUEST_DATA||Demana següent block de dades | |0x03||-||REQUEST_DATA||Demana següent block de dades | ||
|- | |- | ||
|0x04||-|| | |0x04||sub_cmd,dt_len,dt<sub>0</sub>,dt<sub>1</sub>,...,dt<sub>dt_len-1</sub>|| DATA_BLK || Block de dades, sub_cmd=0x02 dt_len<=0x80 | ||
|- | |- | ||
|0x05||<track_no> ||FMT_TRACK| Formateja pista <track_no>=[0..79] | |0x05||<track_no> ||FMT_TRACK| Formateja pista <track_no>=[0..79] | ||
Revisió del 10:50, 30 jul 2015
Aquest protocol l'utilitzen les màquines mayer relativament recents per comunicar-se amb la unitat de dades.
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 Vdiff 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:
| 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)
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 |
| Seq No | 1 | Numero de seqüència del paquet |
| Src Addr | 1 | Addreça d'origen |
| Data | n | Dades de 1 a n bytes. Sembla que el limit és de 130 bytes en el nostre cas |
| FCS | 2 | 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
| Addreces vàlides | |
|---|---|
| Addr | Dispositiu |
| 0x01 | Teler |
| 0x02 | Cassette |
| 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 llegir el disc. En altre cas ERR_ACK |
| 0x02 | - | LA_START | es respon amb ACK si es pot llegir el disc. En altre cas ERR_ACK |
| 0x03 | - | REQUEST_DATA | Demana següent block de dades |
| 0x04 | sub_cmd,dt_len,dt0,dt1,...,dtdt_len-1 | DATA_BLK | Block de dades, sub_cmd=0x02 dt_len<=0x80 |
| 0x05 | <track_no> | Formateja pista <track_no>=[0..79] | |
| 0x06 | - | ACK | Ack pkt |
| 0x80 | - | ERR_ACK | Error ACK: últim comandament ha fallat |
| 0x81 | - | ABORT | Aborta operació en curs |