Baudrate bei serieller Kommunikation
-
Wenn ich eine Baudrate von 9600, 8 Daten und ein Stop Bit habe sind die 9600 dann gleich wie Bytes pro Sekunde?
-
Nein, wieso?
Die Baudrate hat doch die Einheit "Bit per Second"
-junix
-
asdrubael schrieb:
Wenn ich eine Baudrate von 9600, 8 Daten und ein Stop Bit habe sind die 9600 dann gleich wie Bytes pro Sekunde?
Nein.
Baud bedeutet "Symbole pro Sekunde". Bei der seriellen Schnittstelle ist ein "Symbol" +12V oder -12V, trägt also die Information von 1 Bit.
Du hast also eine Nettodatenrate von 9600 Bit/s. Stoppbit, Parität etc. werden davon noch abgezogen, du hast also effektiv eine Datenrate von vielleicht 960 Bytes/s.
-
Ah ok allerdings hab ich keine Parität. Wie genau werden die Stop Bits dort weggerechnet?
Und hat dann je ein Zeichen ein Byte? Auch Blanks?
-
1 Byte = 8 Bit
Dazu kommt noch ein Startbit sowie in deinem Fall ein Stoppbit.
Ergebnis: 8 Bit + 2 Bit Overhead = 10Bit / Zeichen.
-junix
-
Hi
da wird nix weggerechnet, das übernimt die Hardware. Das startbit ist das zeichen für das schieberigister den internen clock freizugeben und daten entgegenzunehmen. das Stopbit sagt dann das er aufhöhren soll zu schieben. ( die beiden signale werden auch verwendet, um die beiden clocksignale zu synchronisieren, ist ja an asynchrones übertragungsprotokoll)
parity weis ich nicht mehr genau. bin der meinung das das immer dabei war. kann aber auch sein, das es nur bei 7 Datenbits möglich war. kann aber auch sein, das der prozi das nur so konnte, und nicht so weit konfigurierbar war.
gruss
-
Also werden die Start/Stop Bits zu den Zeichen gerechnet und die Baudrate bleibt unverändert = Bit/s? Es gibt wirklich keine Parität es ist aber auch keine "richtige" serielle Kommunikation, also vom Protokoll her schon, aber der COM-Port ist nur virtuell und gemappt.
-
Äh Termite:
Natürlich kommt es stark auf die Konfiguration an. Üblicherweise hat man aber keine 5..7 Bit "wörter" sondern 8 Bit Wörter. Und da wird von der Baudrate nunmal auch noch Start-Stop-Paritätsbit weggerechnet um die Bytes/s zu erhalten. Oder nicht?-junix
-
asdrubael: Wenn du keine Paritätbits hast, dann sinds hald 8 Bit + 2 statt + 3/Byte. Was genau war denn jetzt die Frage?
-
Termite schrieb:
parity weis ich nicht mehr genau. bin der meinung das das immer dabei war. kann aber auch sein, das es nur bei 7 Datenbits möglich war. kann aber auch sein, das der prozi das nur so konnte, und nicht so weit konfigurierbar war.
das kann man sich meistens aussuchen. entweder 8 bits (7 datenbits + parity) oder 9 bits (8 datenbits + parity). ersteres ist aber nur für die übertragung von ascii-zeichen gut (man kriegt ja nicht 1 byte in 7 bits).
btw: man kann auch 1.5 stop-bits einstellen
-
net schrieb:
(man kriegt ja nicht 1 byte in 7 bits).
Nein? Es wird dich interessieren zu lesen, dass ASCII in seiner Reinform ein 7-Bit Code war...
-
junix schrieb:
net schrieb:
(man kriegt ja nicht 1 byte in 7 bits).
Nein? Es wird dich interessieren zu lesen, dass ASCII in seiner Reinform ein 7-Bit Code war...
jo, ascii-zeichen aber keine 8 datenbits. dazu musstes schon base64 kodieren oder sowas ähnliches