logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

rs232 warstwa fizyczna

skynet_2 02 Sty 2009 00:56 2593 3
  • #1 5935413
    skynet_2
    Poziom 26  
    Więc tak z µC wysyłam dane[w ramce 8N1] z prędkością 115200 b/s i pięknie mi PC to odbiera[rezonator specjalnie wstawiłem 3,6864 MHz żeby błędy czasowe były równe zero], ale obejrzałem sobie transmisję na oscyloskopie i pojedyńczy bit ma długość 2µs a z moich obliczeń wynika że powinien mieć 1s/115200=8,68µs więc jak można poprawnie wyliczyć czas trwania transmisji ?
  • #2 5935630
    arturt134
    Poziom 27  
    Musi być 8,68us. Jeżeli mierzysz inny czas, to albo masz źle ustawioną prędkość (chociaż jeżeli z PC działa, to pewnie prędkość jest ustawiona dobrze), albo coś źle mierzysz. Najlepiej jest mierzyć czas pojedyńczego bitu jeżeli wysyłasz bajt 0xaa - wtedy 0 i 1 są na przemian.
  • #3 5937176
    skynet_2
    Poziom 26  
    zastanawiam się czy baud=115200 określa transmisje 115200 b/s z czy bez bitów stopu, startu, parzystości. Jeżeli bez to bity muszą być krótsze.

    Jeszcze raz zmierze ile dokładnie jest to µs.
  • #4 5943675
    shg
    Poziom 35  
    Dla formatu 8N1 w RS-232 115200 bodów oznacza 115200 * 8 / 10 bitów danych na sekundę (narzut przepustowości 20% - bity start i stop). Ogólnie 115200 bitów na sekundę (wszystkich razem).
    Trzeba uważać, bo body nie są równoważne bitom na sekundę np. w modemie telefonicznym jest już zupełnie inaczej. Powiedzmy 16 bitów na symbol daje 3600 bodów, ale 57600 bitów na sekundę i również tu dotyczy to całości transmisji, a nie samych danych.

    Na pewno błąd podczas wykonywania pomiaru. Jeżeli PC odebrał dane, to zegary musiały się zgadzać z błędem nie większym niż 10% (a nawet 5%, zależy kiedy UART próbkuje).
REKLAMA