base di conoscenza
CTRL+F per cercare la tua parola chiave

Porta seriale

Porta seriale

Nell'informatica, una porta seriale è un'interfaccia di comunicazione seriale attraverso la quale le informazioni si trasferiscono dentro o fuori un bit alla volta (al contrario di una porta parallela). Durante la maggior parte della storia dei personal computer, i dati sono stati trasferiti attraverso porte seriali a dispositivi come modem, terminali e varie periferiche.

Mentre interfacce come Ethernet, FireWire e USB inviano tutti i dati come un flusso seriale, il termine porta seriale di solito identifica l'hardware conforme allo standard RS-232 o simile e intende interfacciarsi con un modem o con un dispositivo di comunicazione simile.

I computer moderni senza porte seriali potrebbero richiedere convertitori da USB a seriale per consentire la compatibilità con i dispositivi seriali RS-232. Le porte seriali sono ancora utilizzate in applicazioni come sistemi di automazione industriale, strumenti scientifici, sistemi di punti vendita e alcuni prodotti industriali e di consumo. I computer server possono utilizzare una porta seriale come console di controllo per la diagnostica. Le apparecchiature di rete (come router e switch) utilizzano spesso la console seriale per la configurazione. Le porte seriali sono ancora utilizzate in queste aree in quanto sono semplici, economiche e le loro funzioni di console sono altamente standardizzate e diffuse. Una porta seriale richiede pochissimo software di supporto dal sistema host.

Hardware

Alcuni computer, come il PC IBM, utilizzano un circuito integrato chiamato UART. Questo circuito integrato converte i caratteri da e verso il modulo seriale asincrono, implementando i tempi e l'inquadramento dei dati nell'hardware. I sistemi a basso costo, come alcuni primi computer domestici, utilizzerebbero invece la CPU per inviare i dati tramite un pin di output, utilizzando la tecnica del bit banging. Prima che i circuiti integrati UART di integrazione su larga scala (LSI) fossero comuni, un minicomputer avrebbe una porta seriale composta da più circuiti integrati su piccola scala per implementare registri a scorrimento, porte logiche, contatori e tutta la logica per una porta seriale.

I primi computer domestici avevano spesso porte seriali proprietarie con piedinature e livelli di tensione incompatibili con RS-232. L'interazione con i dispositivi RS-232 potrebbe essere impossibile in quanto la porta seriale non può resistere ai livelli di tensione prodotti e potrebbe avere altre differenze che "bloccano" l'utente sui prodotti di un determinato produttore.

I processori a basso costo ora consentono standard di comunicazione seriale ad alta velocità, ma più complessi come USB e FireWire per sostituire RS-232. Ciò consente di collegare dispositivi che non avrebbero funzionato in modo fattibile su connessioni seriali più lente, come dispositivi di archiviazione di massa, audio e video.

Molte schede madri per personal computer hanno ancora almeno una porta seriale, anche se accessibile solo tramite un'intestazione pin. I sistemi e i laptop con fattore di forma ridotto possono omettere le porte del connettore RS-232 per risparmiare spazio, ma l'elettronica è ancora lì. RS-232 è stato standard per così tanto tempo che i circuiti necessari per controllare una porta seriale sono diventati molto economici e spesso esistono su un singolo chip, a volte anche con circuiti per una porta parallela.

DTE e DCE

I singoli segnali su una porta seriale sono unidirezionali e quando si collegano due dispositivi, le uscite di un dispositivo devono essere collegate agli ingressi dell'altro. I dispositivi sono suddivisi in due categorie di apparecchiature terminali di dati (DTE) e apparecchiature di terminazione dei circuiti di dati (DCE). Una linea che è un'uscita su un dispositivo DTE è un ingresso su un dispositivo DCE e viceversa, quindi un dispositivo DCE può essere collegato a un dispositivo DTE con un cavo diritto. Convenzionalmente, computer e terminali sono DTE mentre modem e periferiche sono DCE.

Se è necessario collegare due dispositivi DTE (o due dispositivi DCE, ma ciò è più insolito), è necessario utilizzare un modem null incrociato, sotto forma di un adattatore o di un cavo.

Maschio e femmina

In genere, i connettori della porta seriale sono di genere, consentendo solo ai connettori di accoppiarsi con un connettore di genere opposto. Con i connettori subminiaturizzati D, i connettori maschio hanno pin sporgenti e i connettori femmina hanno prese rotonde corrispondenti. Entrambi i tipi di connettore possono essere montati su apparecchiature o su un pannello; o terminare un cavo.

È probabile che i connettori montati su DTE siano maschi e quelli montati su DCE siano probabilmente femmina (con i connettori dei cavi opposti). Tuttavia, questo è tutt'altro che universale; ad esempio, la maggior parte delle stampanti seriali ha un connettore DB25 femmina, ma sono DTE.

Connettori

Mentre lo standard RS-232 originariamente specificava un connettore di tipo D a 25 pin, molti progettisti di personal computer hanno scelto di implementare solo un sottoinsieme dello standard completo: hanno scambiato la compatibilità con lo standard contro l'uso di connettori meno costosi e più compatti (in particolare la versione DE-9 utilizzata dall'originale IBM PC-AT). Il desiderio di fornire schede di interfaccia seriale con due porte richiedeva a IBM di ridurre le dimensioni del connettore per adattarlo a un singolo pannello posteriore della scheda. Un connettore DE-9 si adatta anche a una scheda con un secondo connettore DB-25. A partire dal momento dell'introduzione di IBM PC-AT, le porte seriali sono state comunemente costruite con un connettore a 9 pin per risparmiare costi e spazio. Tuttavia, la presenza di un connettore D-subminiatura a 9 pin non è sufficiente per indicare che la connessione è in realtà una porta seriale, poiché questo connettore viene utilizzato anche per video, joystick e altri scopi.

Alcuni componenti elettronici miniaturizzati, in particolare calcolatrici grafiche e apparecchiature portatili amatoriali e radio bidirezionali, dispongono di porte seriali che utilizzano un connettore telefonico, in genere i connettori più piccoli da 2,5 o 3,5 mm e utilizzano l'interfaccia a 3 fili più basilare.

Molti modelli di Macintosh favoriscono il relativo standard RS-422, principalmente utilizzando connettori mini-DIN tedeschi, tranne nei primi modelli. Il Macintosh includeva un set standard di due porte per il collegamento a una stampante e un modem, ma alcuni laptop PowerBook avevano una sola porta combinata per risparmiare spazio.

Poiché la maggior parte dei dispositivi non utilizza tutti i 20 segnali definiti dallo standard, vengono spesso utilizzati connettori più piccoli. Ad esempio, il connettore DE-9 a 9 pin viene utilizzato dalla maggior parte dei PC compatibili IBM dal momento che IBM PC AT è stato standardizzato come TIA-574. Più recentemente sono stati utilizzati connettori modulari. I più comuni sono i connettori 8P8C, per i quali lo standard EIA / TIA-561 definisce una piedinatura, mentre lo "Standard di cablaggio dei dispositivi seriali Yost" inventato da Dave Yost (e reso popolare dal Manuale di amministrazione del sistema Unix) è comune sui computer Unix e sui dispositivi più recenti da Cisco Systems. I connettori 10P10C possono essere trovati anche su alcuni dispositivi. Digital Equipment Corporation ha definito il proprio sistema di connessione DECconnect basato sul connettore Modified Modular Jack (MMJ). Questo è un jack modulare a 6 pin in cui la chiave è spostata dalla posizione centrale. Come per lo standard Yost, DECconnect utilizza una disposizione simmetrica dei pin che consente la connessione diretta tra due DTE. Un altro connettore comune è il connettore dell'intestazione DH10 comune su schede madri e schede aggiuntive che di solito viene convertito tramite un cavo nel connettore DE-9 a 9 pin più standard (e spesso montato su una piastra di slot libera o altra parte dell'alloggiamento) .

pinouts

La tabella seguente elenca i segnali RS-232 comunemente utilizzati e le assegnazioni dei pin.

Segnale Direzione Pin del connettore
Nome Circuito V.24 Abbreviazione DTE DCE DB-25 DE-9
(TIA-574)
MMJ 8P8C ("RJ45") 10P10C ("RJ50")
EIA / TIA-561 Yost (DTE) Yost (DCE) Cicladi Digi (opzione ALTPIN) National Instruments Cicladi digi
Dati trasmessi 103 TxD Su Nel 2 3 2 6 6 3 3 4 8 4 5
Dati ricevuti 104 RxD Nel Su 3 2 5 5 3 6 6 5 9 7 6
Terminale dati pronto 108/2 DTR Su Nel 20 4 1 3 7 2 2 8 7 3 9
Rilevamento gestore dati 109 DCD Nel Su 8 1 N / A 2 2 7 7 1 10 8 10
Set di dati pronto 107 DSR Nel Su 6 6 6 1 N / A 8 N / A 5 9 2
Indicatore di suoneria 125 RI Nel Su 22 9 N / A N / A N / A N / A N / A 2 10 1
Richiesta di inviare 105 RTS Su Nel 4 7 N / A 8 8 1 1 2 4 2 3
Cancella per inviare 106 CTS Nel Su 5 8 N / A 7 1 8 5 7 3 6 8
Terra del segnale 102 sol Comune 7 5 3, 4 4 4, 5 4, 5 4 6 6 5 7
Terra protettiva 101 PG Comune 1 N / A N / A N / A N / A N / A N / A 3 N / A 1 4

La massa del segnale è un ritorno comune per le altre connessioni; appare su due pin nello standard Yost ma è lo stesso segnale. Il connettore DB-25 include una seconda "terra di protezione" sul pin 1, che deve essere collegata da ciascun dispositivo alla propria massa del telaio o simile. Collegare questo al pin 7 (massa di riferimento del segnale) è una pratica comune ma non è raccomandato.

Si noti che EIA / TIA 561 combina DSR e RI e lo standard Yost combina DSR e DCD.

Porta seriale alimentata

Alcune porte seriali su schede madri o schede aggiuntive forniscono ponticelli che selezionano se il pin 1 del connettore DE-9 si collega al DCD o una tensione di alimentazione e se il pin 9 del connettore DE-9 si collega a RI o una tensione di alimentazione . La tensione di alimentazione può essere + 5V, + 12V, + 9V o terra. (La selezione varia in base al venditore.) La potenza è destinata all'uso da parte delle apparecchiature del punto vendita. I produttori includono Dell, HP e altri (questo non è uno standard ufficiale.)

Astrazione hardware

I sistemi operativi di solito creano nomi simbolici per le porte seriali di un computer, piuttosto che richiedere ai programmi di fare riferimento ad essi tramite l'indirizzo hardware.

I sistemi operativi simili a Unix di solito identificano i dispositivi con porta seriale / dev / tty *. TTY è un'abbreviazione comune senza marchio per teletype , un dispositivo comunemente collegato alle porte seriali dei primi computer e * rappresenta una stringa che identifica la porta specifica; la sintassi di quella stringa dipende dal sistema operativo e dal dispositivo. Su Linux, le porte seriali hardware 8250/16550 UART sono denominate / dev / ttyS *, gli adattatori USB appaiono come / dev / ttyUSB * e vari tipi di porte seriali virtuali non hanno necessariamente nomi che iniziano con tty.

Gli ambienti DOS e Windows si riferiscono alle porte seriali come porte COM: COM1, COM2, ecc. Le porte numerate maggiori di COM9 devono essere utilizzate utilizzando la sintassi \\. \ COM10.

Applicazioni comuni per porte seriali

Lo standard RS-232 è utilizzato da molti dispositivi specializzati e personalizzati. Questo elenco include alcuni dei dispositivi più comuni collegati alla porta seriale su un PC. Alcuni di questi come modem e mouse seriali stanno cadendo in disuso mentre altri sono prontamente disponibili.

Le porte seriali sono molto comuni nella maggior parte dei tipi di microcontrollori, dove possono essere utilizzate per comunicare con un PC o altri dispositivi seriali.

  • Modem dial-up
  • Configurazione e gestione di apparecchiature di rete come router, switch, firewall, bilanciamento del carico
  • Ricevitori GPS (in genere NMEA 0183 a 4.800 bit / s)
  • Scanner per codici a barre e altri dispositivi per punti vendita
  • Display di testo a LED e LCD
  • Telefoni satellitari, modem satellitari a bassa velocità e altri dispositivi ricetrasmettitori satellitari
  • Monitor a schermo piatto (LCD e al plasma) per controllare le funzioni dello schermo da computer esterni, altri componenti AV o telecomandi
  • Apparecchiature di prova e misurazione come multimetri digitali e sistemi di pesatura
  • Aggiornamento del firmware su vari dispositivi consumer.
  • Controller CNC
  • Gruppo di continuità
  • Programmazione e debug di hobbisti MCU
  • Macchine per stenografia o stenotipo
  • Debugger software eseguiti su un secondo computer
  • Bus di campo industriali
  • stampanti
  • Terminale del computer, tipo di telefono
  • Fotocamere digitali precedenti
  • Rete (Macintosh AppleTalk utilizzando RS-422 a 230,4 kbit / s)
  • Mouse seriale
  • Telefoni cellulari GSM precedenti
  • IDE difficile driverepair

Poiché i segnali di controllo di una porta seriale possono essere facilmente attivati ​​e disattivati ​​da uno switch, alcune applicazioni hanno utilizzato le linee di controllo di una porta seriale per monitorare dispositivi esterni, senza scambiare dati seriali. Un'applicazione commerciale comune di questo principio era per alcuni modelli di gruppi di continuità che utilizzavano le linee di controllo per segnalare perdita di energia, batteria scarica e altre informazioni sullo stato. Almeno alcuni software di addestramento al codice Morse hanno utilizzato una chiave di codice collegata alla porta seriale, per simulare l'effettivo utilizzo del codice. I bit di stato della porta seriale potrebbero essere campionati molto rapidamente e in tempi prevedibili, consentendo al software di decifrare il codice Morse.

impostazioni

Bit rate
(Baud rate)
Tempo
per bit
Windows predefinito
velocità della porta seriale
Altre ragioni per cui questa velocità è comune
50 bit / s 20000 μs No Elencato nella scheda tecnica PC16550D
75 bit / s 13333,3 μs
110 bit / s 9090,9 μs Modem Bell 101
134,5 bit / s 7434,9 μs
150 bit / s 6666,6 μs
300 bit / s 3333,3 μs Modem Bell 103 o V.21
600 bit / s 1666,7 μs
1.200 bit / s 833,3 μs Modem Bell 202, Bell 212A o V.22
1.800 bit / s 555,6 μs
2.400 bit / s 416,7 μs Modem V.22bis
4.800 bit / s 208,3 μs Modem V.27ter
7.200 bit / s 138,9 μs
9.600 bit / s 104,2 μs Modem V.32
14.400 bit / s 69,4 μs Modem V.32bis
19.200 bit / s 52,1 μs
31.250 bit / s 32 μs No Porta MIDI
38.400 bit / s 26,0 μs
56.000 bit / s 17,9 μs Modem V.90 / V.92
57.600 bit / s 17,4 μs Modem V.32bis con compressione V.42bis
76.800 bit / s 13,0 μs No Reti BACnet MS / TP
115.200 bit / s 8,68 μs Modem V.34 con compressione V.42bis
Modem seriale V.90 / V.92 a basso costo con compressione V.42bis o V.44
128.000 bit / s 7,81 μs Adattatore terminale ISDN con interfaccia di base
230.400 bit / s 4,34 μs No LocalTalk
modem seriale di fascia alta V.90 / V.92 con compressione V.42bis o V.44
256.000 bit / s 3,91 μs
460.800 bit / s 2,17 μs No

Sono necessarie molte impostazioni per le connessioni seriali utilizzate per la comunicazione asincrona start-stop, per selezionare la velocità, il numero di bit di dati per carattere, la parità e il numero di bit di stop per carattere. Nelle moderne porte seriali che utilizzano un circuito integrato UART, tutte le impostazioni sono generalmente controllate da software; l'hardware degli anni '80 e precedenti potrebbe richiedere l'impostazione di interruttori o ponticelli su un circuito. Una delle semplificazioni apportate a standard di bus seriali come Ethernet, FireWire e USB è che molti di questi parametri hanno valori fissi in modo che gli utenti non possano e non debbano modificare la configurazione; la velocità è fissa o negoziata automaticamente. Spesso se le impostazioni vengono immesse in modo errato, la connessione non verrà interrotta; tuttavia, tutti i dati inviati verranno ricevuti dall'altra parte come assurdità.

Velocità

Le porte seriali utilizzano segnali a due livelli (binari), quindi la velocità dei dati in bit al secondo è uguale alla velocità dei simboli in baud. Una serie standard di tariffe si basa sui multipli delle tariffe per le teleprinter elettromeccaniche; alcune porte seriali consentono di selezionare molte velocità arbitrarie. La velocità della porta e la velocità del dispositivo devono corrispondere. La possibilità di impostare una velocità in bit non implica il risultato di una connessione funzionante. Non tutte le velocità in bit sono possibili con tutte le porte seriali. Alcuni protocolli per scopi speciali come il MIDI per il controllo di strumenti musicali, utilizzano velocità di dati seriali diverse dalla serie di teleprinter. Alcuni sistemi di porte seriali possono rilevare automaticamente la velocità in bit.

La velocità include bit per l'inquadramento (bit di stop, parità, ecc.) E quindi la velocità di trasmissione dati effettiva è inferiore alla velocità di trasmissione dei bit. Ad esempio, con l'inquadratura dei caratteri 8-N-1, solo l'80% dei bit è disponibile per i dati (per ogni otto bit di dati, vengono inviati altri due bit di inquadratura).

Le velocità in bit comunemente supportate includono 75, 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 e 115200 bit / s.

Gli oscillatori a cristallo con una frequenza di 1,843200 MHz sono venduti appositamente per questo scopo. Questo è 16 volte il bit rate più veloce e il circuito della porta seriale può facilmente dividerlo per frequenze più basse come richiesto.

Bit di dati

Il numero di bit di dati in ciascun carattere può essere 5 (per il codice Baudot), 6 (usato raramente), 7 (per il vero ASCII), 8 (per la maggior parte dei tipi di dati, poiché questa dimensione corrisponde alla dimensione di un byte), oppure 9 (usato raramente). 8 bit di dati sono quasi universalmente utilizzati nelle applicazioni più recenti. 5 o 7 bit generalmente hanno senso solo con apparecchiature più vecchie come le teleprinter.

La maggior parte dei progetti di comunicazione seriale invia prima i bit di dati all'interno di ciascun byte LSB (bit meno significativo). Questo standard è anche chiamato "little endian". È anche possibile, ma usata raramente, le prime comunicazioni seriali "big endian" o MSB (bit più significativo); questo è stato utilizzato, ad esempio, dal terminale di stampa IBM 2741. (Vedere Numerazione dei bit per ulteriori informazioni sull'ordinamento dei bit.) L'ordine dei bit non è in genere configurabile nell'interfaccia della porta seriale. Per comunicare con sistemi che richiedono un ordinamento di bit diverso rispetto al valore predefinito locale, il software locale può riordinare i bit all'interno di ciascun byte appena prima dell'invio e subito dopo la ricezione.

Parità

La parità è un metodo per rilevare errori nella trasmissione. Quando la parità viene utilizzata con una porta seriale, viene inviato un bit di dati aggiuntivo con ciascun carattere di dati, disposto in modo tale che il numero di 1 bit in ciascun carattere, incluso il bit di parità, sia sempre dispari o sempre pari. Se viene ricevuto un byte con il numero errato di 1s, deve essere stato danneggiato. Tuttavia, un numero pari di errori può superare il controllo di parità.

Le teleprinter elettromeccaniche sono state predisposte per stampare un carattere speciale quando i dati ricevuti contenevano un errore di parità, per consentire il rilevamento di messaggi danneggiati dal rumore della linea. Un singolo bit di parità non consente l'implementazione della correzione degli errori su ciascun carattere e i protocolli di comunicazione che funzionano su collegamenti seriali di dati avranno meccanismi di livello superiore per garantire la validità dei dati e richiedere la ritrasmissione di dati che sono stati ricevuti in modo errato.

Il bit di parità in ciascun personaggio può essere impostato su uno dei seguenti:

  • Nessuno (N) significa che non viene inviato alcun bit di parità.
  • Dispari (O) significa che il bit di parità è impostato in modo tale che il numero di "logici" deve essere dispari.
  • Even (E) significa che il bit di parità è impostato in modo che il numero di "quelli logici" sia pari.
  • La parità di Mark (M) significa che il bit di parità è sempre impostato sulla condizione del segnale di mark (1 logico).
  • La parità spaziale (S) invia sempre il bit di parità nella condizione del segnale spaziale (0 logico).

A parte le applicazioni non comuni che utilizzano l'ultimo bit (di solito il nono) per una qualche forma di indirizzamento o segnalazione speciale, la marcatura o la parità di spazio non è comune, in quanto non aggiunge informazioni di rilevamento degli errori. La parità dispari è più utile che pari, poiché garantisce che si verifichi almeno una transizione di stato in ciascun personaggio, il che la rende più affidabile. L'impostazione di parità più comune, tuttavia, è "nessuna", con il rilevamento degli errori gestito da un protocollo di comunicazione.

Bit di stop

I bit di stop inviati alla fine di ogni carattere consentono all'hardware del segnale di ricezione di rilevare la fine di un carattere e di risincronizzarsi con il flusso di caratteri. I dispositivi elettronici di solito usano un bit di stop. Se si utilizzano teleprinter elettriche elettromeccaniche lente, sono necessarie una e una metà o due punte di arresto.

Notazione convenzionale

La notazione convenzionale dati / parità / stop (D / P / S) specifica l'inquadramento di una connessione seriale. L'uso più comune sui microcomputer è 8 / N / 1 (8N1). Questo specifica 8 bit di dati, nessuna parità, 1 bit di stop. In questa notazione, il bit di parità non è incluso nei bit di dati. 7 / E / 1 (7E1) significa che un bit di parità pari viene aggiunto ai 7 bit di dati per un totale di 8 bit tra i bit di inizio e di fine. Se un ricevitore di un flusso 7 / E / 1 si aspetta un flusso 8 / N / 1, la metà dei possibili byte verrà interpretata come se fosse impostato il bit alto.

Controllo del flusso

In molte circostanze un trasmettitore potrebbe essere in grado di inviare dati più velocemente di quanto il ricevitore sia in grado di elaborarli. Per far fronte a questo, le linee seriali spesso incorporano un metodo di "handshaking", generalmente distinto tra handshaking hardware e software .

L'handshaking hardware viene eseguito con segnali extra, spesso i circuiti di segnale RS-232 RTS / CTS o DTR / DSR. In genere, RTS e CTS vengono disattivati ​​e attivati ​​da estremità alternative per controllare il flusso di dati, ad esempio quando un buffer è quasi pieno. DTR e DSR sono sempre attivi e, secondo lo standard RS-232 e i suoi successori, vengono utilizzati per segnalare da ciascuna estremità che l'altra apparecchiatura è effettivamente presente e accesa. Tuttavia, nel corso degli anni i produttori hanno costruito molti dispositivi che implementavano variazioni non standard sullo standard, ad esempio stampanti che utilizzano DTR come controllo del flusso.

L'handshaking del software viene eseguito ad esempio con i caratteri di controllo ASCII XON / XOFF per controllare il flusso di dati. I caratteri XON e XOFF vengono inviati dal destinatario al mittente per controllare quando il mittente invierà i dati, ovvero questi caratteri vanno nella direzione opposta ai dati inviati. Il circuito inizia nello stato "invio consentito". Quando i buffer del ricevitore si avvicinano alla capacità, il destinatario invia il carattere XOFF per dire al mittente di interrompere l'invio dei dati. Successivamente, dopo che il ricevitore ha svuotato i suoi buffer, invia un carattere XON per dire al mittente di riprendere la trasmissione. È un esempio di segnalazione in banda, in cui le informazioni di controllo vengono inviate sullo stesso canale dei suoi dati.

Il vantaggio dell'handshaking hardware è che può essere estremamente veloce; non impone alcun significato particolare come ASCII ai dati trasferiti; ed è apolide. Lo svantaggio è che richiede più hardware e cavi e questi devono essere compatibili su entrambi i lati.

Il vantaggio dell'handshaking del software è che può essere fatto con circuiti e cavi di handshaking hardware assenti o incompatibili. Lo svantaggio, comune a tutte le segnalazioni di controllo in banda, è che introduce complessità nel garantire che a) i messaggi di controllo passino anche quando i messaggi di dati sono bloccati e b) i dati non possono mai essere scambiati per segnali di controllo. Il primo è normalmente gestito dal sistema operativo o dal driver del dispositivo; quest'ultimo normalmente assicurando che i codici di controllo siano "sfuggiti" (come nel protocollo Kermit) o ​​omessi dalla progettazione (come nel controllo terminale ANSI).

Se non viene utilizzato l' handshaking , un ricevitore sovraccarico potrebbe semplicemente non riuscire a ricevere i dati dal trasmettitore. Gli approcci per impedire ciò includono la riduzione della velocità della connessione in modo che il ricevitore possa sempre tenere il passo; aumentando la dimensione dei buffer in modo che possa mantenere la media per un tempo più lungo; utilizzando ritardi dopo operazioni che richiedono molto tempo (ad es. in termcap) o impiegando un meccanismo per rinviare i dati che sono stati danneggiati (ad es. TCP).

Porte seriali "virtuali"

Una porta seriale virtuale è un'emulazione della porta seriale standard. Questa porta è creata da un software che abilita porte seriali extra in un sistema operativo senza installazione hardware aggiuntiva (come schede di espansione, ecc.). È possibile creare un gran numero di porte seriali virtuali in un PC. L'unica limitazione è la quantità di risorse, come la memoria operativa e la potenza di elaborazione, necessarie per emulare molte porte seriali allo stesso tempo.

Le porte seriali virtuali emulano tutte le funzionalità della porta seriale hardware, inclusi baud rate, bit di dati, bit di parità, bit di stop, ecc. Inoltre, consentono di controllare il flusso di dati, emulando tutte le linee di segnale (DTR, DSR, CTS, RTS, DCD e RI) e personalizzazione della piedinatura. Le porte seriali virtuali sono comuni con Bluetooth e rappresentano il modo standard di ricevere dati da moduli GPS dotati di Bluetooth.

L'emulazione della porta seriale virtuale può essere utile nel caso in cui manchino le porte seriali fisiche disponibili o non soddisfino i requisiti attuali. Ad esempio, le porte seriali virtuali possono condividere dati tra diverse applicazioni da un dispositivo GPS collegato a una porta seriale. Un'altra opzione è quella di comunicare con qualsiasi altro dispositivo seriale via Internet o LAN come se fosse localmente connesso al computer (tecnologia seriale su LAN / seriale su Ethernet). Due computer o applicazioni possono comunicare tramite un collegamento porta seriale emulato. Gli emulatori di porte seriali virtuali sono disponibili per molti sistemi operativi tra cui MacOS, Linux, NetBSD e altri sistemi operativi simili a Unix e varie versioni mobili e desktop di Microsoft Windows.