Go Down

Topic: Da baud rate a bit/s (Read 1 time) previous topic - next topic

Dario Gogliandolo

Salve a tutti, volevo sapere a quanti bps corrisponde un baud rate di 9600? grazie
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

sciorty

Quote
L'unità baud viene spesso confusa con l'unità bit per secondo (bit/s o bps), ma differisce da quest'ultima perché ad un simbolo possono corrispondere più bit se si usano tecniche di modulazione non binaria (di ampiezza, frequenza o fase), e quindi la velocità espressa in bit/s può essere multipla di quella espressa in baud. Ad esempio, nello standard V.32 bis per i modem su linea telefonica, si trasmette ad una velocità di 2.400 baud, ma ad ogni simbolo corrispondono 6 bit per cui la velocità espressa in bit al secondo è 14.400 bps ovvero 6 x 2400.


uwefed

#2
Feb 17, 2013, 10:13 pm Last Edit: Feb 17, 2013, 10:17 pm by uwefed Reason: 1
Il Baudrate é la velocitá di bit per secondo.
Una seriale RS232 o seriale TTL (come la usa Arduino tra il microcontroller e interfaccia USB-seriale) usa oltre i Bit dati (7 o 8bit) ancora altri bit per la sicronizzazione: 1 1,5 o 2 bit di start, 1 bit di stop, 0 o 1 bit di paritá. Da questo un Byte sono da 9 a 12 Bit.
Arduino usa 1 di start e 1 di stop percui 10 Bit per trasmettere 1 Byte.

Ciao Uwe

lesto


Arduino usa 1 di start e 1 di stop percui 10 Bit per trasmettere 1 Byte.


da qui byte/s = baudRate/10

quindi 9600 baud = 9600bit/s (header + payload) = 960 byte/s = 7680bit/s solo payload (ovvero di dati utili)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Dario Gogliandolo



Arduino usa 1 di start e 1 di stop percui 10 Bit per trasmettere 1 Byte.


da qui byte/s = baudRate/10

quindi 9600 baud = 9600bit/s (header + payload) = 960 byte/s = 7680bit/s solo payload (ovvero di dati utili)


Ah ok adesso è chiarissimo.
Ma questo calcolo è valido per tutti i microcontrollori o solo per arduino?
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

lesto

dipende da che codifica viene usata. Arduino, e ormai la maggior parte delle seriali, parla con la 8n1 (8bit di data, no parity bit, 1 bit di stop, e il bit di start è dato per scontato) ma nulla vieta di usare altri parametri.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Dario Gogliandolo


dipende da che codifica viene usata. Arduino, e ormai la maggior parte delle seriali, parla con la 8n1 (8bit di data, no parity bit, 1 bit di stop, e il bit di start è dato per scontato) ma nulla vieta di usare altri parametri.


Perfetto mi avete chiarito molte cose! Ma se per assurdo dovessi avere la necessità di far comunicare arduino con altro hardware che utilizza una codifica diversa? Sarebbe fattibile?
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

lesto

sicuramente la SoftSerial permette l'uso di altre codifiche, mentre la seriale hardware, che permette velocità più alte, data la sua natura di essere hardware è meno flessibile e non conosco i suoi limiti.

Sono sicuro però che la SoftSerial sarebbe più che sufficiente per la maggior parte di applicazioni. In casi estremi si usa un chip esterno
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Dario Gogliandolo

Capito! Grazie ancora!!  XD XD
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

PaoloP

Si, è possibile, con le ultime versioni dell'IDE di Arduino, modificare anche il parametro di trasmissione nel Serial.begin
--> http://arduino.cc/en/Serial/Begin

Quote
An optional second argument configures the data, parity, and stop bits. The default is 8 data bits, no parity, one stop bit.

Syntax
Serial.begin(speed)
Serial.begin(speed, config)

Arduino Mega only:
Serial1.begin(speed)
Serial2.begin(speed)
Serial3.begin(speed)
Serial1.begin(speed, config)
Serial2.begin(speed, config)
Serial3.begin(speed, config)

Parameters
speed: in bits per second (baud) - long
config: sets data, parity, and stop bits. Valid values are :
SERIAL_5N1
SERIAL_6N1
SERIAL_7N1
SERIAL_8N1 (the default)
SERIAL_5N2
SERIAL_6N2
SERIAL_7N2
SERIAL_8N2
SERIAL_5E1
SERIAL_6E1
SERIAL_7E1
SERIAL_8E1
SERIAL_5E2
SERIAL_6E2
SERIAL_7E2
SERIAL_8E2
SERIAL_5O1
SERIAL_6O1
SERIAL_7O1
SERIAL_8O1
SERIAL_5O2
SERIAL_6O2
SERIAL_7O2
SERIAL_8O2


lesto

ahaha che babbo che sono, il bello che ho suggerito io di usare quel sistema per passare le configurazioni dal begin :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Dario Gogliandolo


ahaha che babbo che sono, il bello che ho suggerito io di usare quel sistema per passare le configurazioni dal begin :)


Hahahahahahaha

Grazie PaoloP!  :)
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

erpomata

Scusate riprendo l'argomento per sapere una cosa:

Come si fa?

sicuramente la SoftSerial permette l'uso di altre codifiche
http://www.paologiammarco.it
http://www.valentinamagni.it

lesto

#13
Feb 21, 2013, 10:20 am Last Edit: Feb 21, 2013, 10:34 am by lesto Reason: 1
come non detto, è in programma ma non è ancora stato fatto: da http://arduiniana.org/2009/05/direct-port-io-in-newsoftserial-9/
Quote
What's next for NewSoftSerial?  Well, there are a number of things being asked for:
[...]Configurability, i.e. "E, 7, 1? style parity, data and stopbit configuration.


(NewSoftSerial è il vero nome della libreria, prima che sostituisse la SoftSerial nell'ide 1.0)


edit: il quote era errato
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

erpomata

A ok non trovavo nulla.

Grazie
http://www.paologiammarco.it
http://www.valentinamagni.it

Go Up