Come eseguire rilevamento automatico baudrate e parametri su rs232?
Feb 01, 2011 22 Replies
R
RobertoA
"..se hai N caratteri ricevuti senza errori.." e come fa il micro a sapere che i caratteri ricevuti sono 'senza errori' ? O se viene presupposto l'intervento umano, allora non e' piu' autobaud/autoparametro
Si, dopo un po' di tempo il bit-time dovrebbe essere rilevato con precisione resta il problema dei parametri, come faccio a sapere se sono 7 bit dati e 2 bit stop oppure 8 bit dati ed 1 bit stop ? Ciao e grazie RobertoA
Didn't find your answer? Ask the community — no account required.
A
aa
Il 04/02/2011 6.55, RobertoA ha scritto:
Perche' l' UART campiona lo stream in ingresso per rilevare lo stato dei bit e si accorge se il bit time rientra in quello impostato: se rileva uan transazione non congrua solleva un errore (framing error). Inoltre UART più sofisticate adottano varie strategie di controllo e questo si riflette in uno stato di errori piu' o meno esaustivo. Ovviamente, devi applicare questo alla UART di cui disponi effettivamente...
Ovviamente no :-)
;-) Qui è un po' piu' complicato da fare, ma puoi usare questo metodo per ottenere il bit rate. Avendo il bit time, a questo punto il metodo piu' semplice, se la tua UART te lo permette, è quello di programmare la uart in sequeza con i vari parametri fino a trovare una combinazione che non da' errore. Puoi iniziare con le combinazioni più usuali:
1 stop, 8bit, no parity se ok test della parità
1 stop, 8bit, even parity se errore, next
1 stop, 8bit, odd parity se errore, no parity ...
se errore, prova con 7 bit e via...
Se la UART non te lo permette, allora devi lavorare con i timing capture, cercando di rilevare il tempo carattere, oltre al bit time. Questo comporta cercare di rilevare lo start bit (transazione da 1->0) e da qui cercare di trovare la condizione di stop (stato alto 1): il tutto non è semplicissimo ed è un pochino lungo, ma si può fare. IO persoonalmente ho sempre cercato di utilizzare le capacità delle UART e nei casi in cui ne ho avuto bisogno, ha sempre funzionato bene. Devo dire pero' che la mia unica incognita era il baud rate e la parità... non ho mai incontrato applicazioni con bit diverso da 8 o 7.
AA.
R
RobertoA
Neanch'io, ma visto che vorrei realizzarlo exnovo allora sarebbe utile farlo per bene, che comprenda anche quelle possibilita' Ciao e grazie RobertoA
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.