Domanda

Io sono la progettazione software in circolazione un prodotto hardware esistente. Ho il pieno controllo del protocollo di comunicazione, ma non sono sicuro di come facilitare il rilevamento dei dispositivi.

Un dispositivo potrebbe avere un intervallo di possibili configurazioni (cioè baud rate, bit di dati, bit di parità, stop bit) che deve essere rilevata in fase di esecuzione. Qual è il modo più affidabile più semplice per il software per capire quale configurazione si sta usando? Anche in questo caso, ho il pieno controllo del protocollo di comunicazione in modo da poter definire qualsiasi meccanismo auguro.

È stato utile?

Soluzione

Si tratta di un dispositivo full-duplex o half-duplex? Puoi controllare request-to-send e monitorare chiaro da inviare su entrambe le estremità della linea seriale? È la linea seriale point-to-point (come RS-232) o multi-drop (come RS-485)? Si farà una (seppur piccola) differenza, se avete intenzione di interferire con altri dispositivi già collegati, mentre i negoziati con uno appena collegato.

Se si pensa al processo di stretta di mano come un modem di negoziare un protocollo di livello di collegamento, utilizza un set standard di messaggi per descrivere il tipo di comunicazione che vorrebbe avere e attende per un "ACK" dall'altra parte. Nel tuo caso vi consiglio di avere un "parliamo" messaggio standard che la testata genera con la gamma di bit rate e attende l'ACK dal dispositivo.

Raccomando anche la riduzione del numero di opzioni di configurazione per il dispositivo. Dimenticare bit di dati variabili, i bit di parità e bit di stop. Il mondo di comunicazione seriale non è più instabile come lo era negli anni '70. Basta usare 8 bit di dati, nessuna parità, bit di stop e variare la velocità in bit. Un CRC sulla fine dei messaggi fornisce l'abbondanza di controllo degli errori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top