Trasmissione dati: preparazione dei dati ciclici, ottimizzazione del controllo e monitoraggio
Le seguenti procedure per lunghezze di frame diverse dimostrano che nell'MTU non sono necessarie modifiche quando il trasferimento avviene in blocchi con specifiche di lunghezza. I passi dell'elaborazione e la posizione dei byte di controllo sono identici; cambia solo il numero di cicli richiesti per il completamento della trasmissione dei dati.
Lunghezza frame < dimensioni Output MTU
Passo |
Azione |
---|---|
1 |
Copiare i dati seriali in TxByte2 ... TxByteX. |
2 |
Creare il byte di controllo in TxByte1. Specificare la lunghezza dei dati nel blocco MTU e impostare il rilevamento di fine frame = 0. |
3 |
Aumentare il numero della sequenza di invio in OutputSequence. Il modulo copia i dati nel buffer di trasmissione durante il ciclo successivo. |
4 |
Attendere la conferma del numero della sequenza di invio come conferma del trasferimento dei dati in InputSequence. |
5 |
Creare un byte di controllo in TxByte1. Specificare la lunghezza dati = 0 e impostare il rilevamento di fine frame = 1. |
6 |
Aumentare il numero della sequenza di invio in OutputSequence. La fine frame viene rilevata dal modulo e il frame viene rilasciato per l'invio. |
7 |
Attendere che compaia la conferma del numero della sequenza di invio come feedback in Input-Sequence per confermare che il frame è stato ricevuto. A questo punto può essere avviato un nuovo frame. |
Lunghezza frame ≥ dimensioni Output MTU
Passo |
Azione |
---|---|
1 |
Copiare il primo blocco di dati seriali in TxByte2 ... TxByteX. |
2 |
Creare il byte di controllo in TxByte1. Specificare la lunghezza dei dati nel blocco MTU e impostare il rilevamento di fine frame = 0. |
3 |
Aumentare il numero della sequenza di invio in OutputSequence. Il modulo copia i dati nel buffer di trasmissione durante il ciclo successivo. |
4 |
Attendere che compaia la conferma del numero della sequenza di invio come conferma del trasferimento dei dati in InputSequence. |
5 |
Ripetere i passi da 1 a 4 finché i dati seriali non sono stati trasferiti nei blocchi. |
6 |
Creare il byte di controllo in TxByte1. Impostare la lunghezza dati = 0 e il rilevamento di fine frame = 1. |
7 |
Aumentare il numero della sequenza di invio in OutputSequence. La fine frame viene rilevata dal modulo e il frame viene rilasciato per l'invio. |
8 |
Attendere che compaia la conferma del numero della sequenza di invio come feedback in InputSequence, che conferma che il frame è stato trasmesso. A questo punto può essere avviato un nuovo frame. |
Diagramma di flusso della trasmissione dati: preparazione dei dati ciclici, controllo massimo e monitoraggio dei singoli passi
Trasmissione dati: uso del meccanismo Block Forward
Passo |
Azione |
---|---|
1 |
Copiare il primo blocco di dati seriali in TxByte2 ... TxByteX. |
2 |
Creare il byte di controllo in TxByte1. Specificare la lunghezza dei dati nel blocco MTU e impostare il rilevamento di fine frame = 0. |
3 |
Aumentare il numero della sequenza di invio in OutputSequence. Il modulo copia i dati nel buffer di trasmissione durante il ciclo successivo. |
4 |
Ripetere i passi da 1 a 3 finché i dati seriali non sono stati trasferiti nei blocchi. |
5 |
Creare il byte di controllo in TxByte1. Impostare la lunghezza dati = 0 e il rilevamento di fine frame = 1. |
6 |
Aumentare il numero della sequenza di invio in OutputSequence. La fine frame viene rilevata dal modulo e il frame viene rilasciato per l'invio. |
Le conferme cicliche del numero di sequenza di invio trasferito dei blocchi precedenti in InputSequence forniscono la conferma che questi blocchi sono stati ricevuti. Se il numero di sequenza di invio resta senza conferma, occorre ripetere la procedura, iniziando dal primo numero di sequenza non confermato.
Per monitorare il volume dati nel sistema hardware, è necessario determinare il numero di cicli che intercorrono tra l'incremento del numero della sequenza di invio e la ricezione della conferma. Il numero di cicli può variare considerabilmente, a seconda della relazione tra le classi dei task, i tempi di ciclo di rete e la topologia della rete disponibile.
Diagramma di flusso della trasmissione dati: uso del meccanismo Block Forward
Esempio: partizione del byte di controllo e dei dati di trasmissione
Si deve trasferire un frame da 27 byte. Le dimensioni del blocco MTU sono impostate a 7 byte.
La procedura di preparazione e di suddivisione dei dati di trasmissione è la stessa, indipendentemente dal fatto che si sfrutti il principio Block Forward o meno:
oSenza l'uso del meccanismo Block Forward dopo i cicli MTU per il trasferimento dei dati di trasmissione, attende la conferma del numero della sequenza di invio.
oCon l'uso del meccanismo Block Forward, il blocco di dati successivo viene trasferito immediatamente nel ciclo seguente.
In entrambi i casi, un nuovo frame può essere iniziato soltanto dopo MTU ciclo 6.