Was bedeutet in diesem Zusammenhang „halbes Bit“?

21

In der RS-232-Spezifikation können die Stoppbits 1, 1,5 oder 2 Stoppbits sein ... Ich frage mich, wie es möglich ist, ein halbes Bit zu haben?

Einige ADC-Berechnungen verwenden auch eine Genauigkeit von 0,5 Bit in den IC-Spezifikationen / im Datenblatt. Kann jemand auf dieses Thema eingehen?

mFeinstein
quelle

Antworten:

18

Ich frage mich, wie es möglich ist, ein halbes bisschen zu haben?

Bei UART-basierten asynchronen seriellen Kommunikationen (von denen RS232 ein Beispiel ist) wird ein serielles Datenbyte zwischen einem Startbit und einem Stoppbit "eingeschlossen". Nach dem Stoppbit gibt es eine Lücke vor dem nächsten Datenbyte, und diese Lücke kann als Erweiterung der Stoppbits angesehen werden:

Bildbeschreibung hier eingeben

Bei vielen seriellen Datenübertragungen wird ein Stoppbit verwendet, da der Empfänger die Bytes in der Zeit verarbeiten kann. Manchmal ist es jedoch nützlich, die Lücke zwischen den Datenbytes durch Erhöhen der Anzahl der Stoppbits zu vergrößern. Da sowohl sendende als auch empfangende UARTs eine viel höhere interne Taktrate haben, ist die Herstellung einer gebrochenen Bitlänge einfach.

Für einen ADC habe ich eine Zeichnung angehängt:

Bildbeschreibung hier eingeben

Die blaue Linie stellt eine linear ansteigende analoge Eingangsspannung dar und die Treppe ist die digitale Zahl vom ADC, die versucht, diese analoge Spannung darzustellen. In der Mitte habe ich in rot gezeigt, wie hoch der theoretische maximale Fehler sein wird - keine Überraschung, dass er 0,5 Bit entspricht.

Andy aka
quelle
In einigen Fällen kann es für einen UART-Sender nützlich sein, eine Bruchzahl von Stoppbits zuzulassen, die geringfügig kleiner als eins ist (z. B. 15/16). Wenn Gerät X so schnell wie möglich Daten an Gerät Y sendet, muss Y für jedes Byte, das es empfängt, ein Datenbyte an Z senden und die Baudrate von X ist 0,01% schneller als die von Y, dann geht ein Byte pro 10.000 verloren, es sei denn, Y geht verloren kann Daten mit weniger als einem Punkt übertragen. Ich habe einen (und nur einen) UART gesehen, der 15/16 Stoppbits zulässt (aus irgendeinem Grund waren die zulässigen Werte (9..16) / 16 oder (25..32) / 16, aber nicht zB 17 / 16, was ein netter Wert für X oben gewesen sein könnte
Supercat
Wie lang ist die zusätzliche Verzögerung? Wird das Stoppbit immer für 150% der für die Übertragung eines Bits verwendeten normalen Zeit übertragen? Gibt es noch andere Fälle?
Unknown123
@supercat Wo hast du es gesehen? Möchten Sie den Link zum Datenblatt veröffentlichen, wenn er verfügbar ist?
Unknown123
@ Unknown123: Der UART war der 2681 nxp.com/docs/en/data-sheet/SCC2681.pdf
Supercat
23

In beiden von Ihnen genannten Fällen handelt es sich um eine analoge Größe.

Im RS-232-Fall bezieht sich die Anzahl der „Stoppbits“ auf eine Dauer , sodass 1,5 Stoppbits einfach das 1,5-fache der Dauer eines Bits bei der angegebenen Rate bedeuten.

Im ADC-Fall bezieht sich die Genauigkeit von 0,5 Bit auf die zu konvertierende analoge Größe, sodass 0,5 Bit im Wesentlichen bedeuten, dass das digitale Ergebnis die analoge Größe garantiert korrekt auf die nächstmögliche digitale Darstellung gerundet darstellt.

Mikrotherion
quelle