Domanda

Sto cercando di prendere alcune comunicazioni seriali per un nuovo lavoro che sto iniziando.Ho fatto alcune letture che mi hanno aiutato molto, tuttavia, molte delle letture ti raccontano le specifiche delle comunicazioni seriali e di cosa si tratta, ma non quando è meglio usare opzioni particolari.

Le mie ricerche per queste informazioni finora sembrano contenere solo le specifiche;forse da principiante sto cercando i termini sbagliati.

Le mie domande allora!

Velocità di trasmissione - Ho letto che si tratta di variazioni di segnale al secondo ed è spesso etichettato erroneamente come bit al secondo.Si tratta essenzialmente di bit al secondo inclusi i dati del frame se asincrono e in realtà bit al secondo se sincrono?

Parità - Pari dispari..C'è qualche differenza tra i due?Sto pensando in termini di efficienza o simili.Esiste ancora solo per ragioni di compatibilità?

Bit di arresto - Ho letto finora che puoi avere 1 o 2 bit di stop.In C# sembra esserci un'opzione anche per 1.5.Non riesco a trovare nulla sul motivo per cui vorresti/necessiteresti di più di 1.

Se qualcuno può consigliarmi su questi punti o indicarmi qualche materiale di lettura consigliato gli sarei molto grato.

Grazie per aver letto.

modificare:errore di battitura

È stato utile?

Soluzione

Molto raramente hai una scelta, devi renderla compatibile con le impostazioni utilizzate dal dispositivo.Se non lo sai, devi cercare in un manuale o prendere un telefono.Tieni presente che sta diventando molto raro lavorare con a vero dispositivo con porta seriale, uno che utilizza un UART.Più comunemente parli effettivamente con un emulato porta seriale, implementata da un driver di dispositivo USB o Bluetooth.Le impostazioni utilizzate non hanno importanza in questo caso poiché la segnalazione effettiva è implementata dal bus sottostante.

Se è possibile configurare il dispositivo, le linee guida di base sono:

  • La velocità di trasmissione è direttamente correlata alla lunghezza del cavo e alla quantità di interferenze elettriche presenti.Devi andare più piano quando ricevi errori di bit.Le specifiche RS-232 consentono solo un massimo di 50 piedi a 9600 baud.
  • La parità dovrebbe essere utilizzata quando non si utilizza un protocollo di correzione degli errori.Non importa se scegli Pari o Dispari.Le persone strane scelgono strane, è una loro prerogativa.
  • Lo stopbit è solitamente 1.Scegliere 1,5 o 2 aiuta un po' ad alleviare la pressione su un dispositivo i cui tempi di risposta all'interruzione sono scarsi, rilevati dalla perdita di dati.
  • I bit di dati sono quasi sempre 8, a volte 7 se il dispositivo gestisce solo codici ASCII.
  • L'handshaking è un'impostazione importante che non smette mai di causare problemi poiché molti programmatori la trascurano.I computer moderni sono quasi sempre abbastanza veloci da non averne bisogno, ma questo non è necessariamente vero per i dispositivi.La configurazione più semplice per evitare problemi è attivare DTR quando si apre la porta e dire al driver del dispositivo di occuparsi dell'handshaking RTS/CTS.A volte viene utilizzato l'handshaking Xon/Xoff, a seconda del dispositivo.

Un buon 90% della battaglia si vince implementando un solido controllo degli errori.Si è quasi sempre lesinato, pessima idea.Molto importante per i dispositivi con porta seriale poiché non hanno capacità di correzione degli errori e un rilevamento degli errori molto debole.Assicurati sempre di poter rilevare e segnalare correttamente errori di overrun, parità e framing.E testali sbagliando intenzionalmente le impostazioni.

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