Skocz do zawartości
Zaloguj się, aby obserwować  
KonradIC13

Sprawdzenie schematu RS232

Pomocna odpowiedź

Witam,

Projektuję robota, który będzie komunikował się z komputerem przez RS232, w komputerze mam tylko USB więc kupiłem konwerter z USB na RS232 i na płytce robota będzie układ zmieniający poziomy logiczne MAX232 i właśnie prosił bym o sprawdzenie tej części schematu.

I mam jeszcze pytanie czy poza Rx i Tx jest potrzeba żeby wyprowadzać dodatkowe sygnały? czy to się przydaje w praktyce czy rzadko (RTS, CTS)?

Z góry dziękuję za pomoc

Udostępnij ten post


Link to post
Share on other sites

Sygnałów sterowania przepływem używasz wtedy, gdy jest Ci to potrzebne. Wszystko zależy od tego jak sobie wymyśliłeś działanie interfejsu i obu współpracujących stron. Proponuję zajrzeć do opisu znaczenia sygnałów na złączu V24 i wszystko będzie jasne. Każdy z nich do czegoś jest. Np. jeśli chcesz wiedzieć, czy urządzenie po drugiej stronie jest włączone i gotowe - używasz DTR (Data Terminal Ready). Jeśli nie chcesz nadawać w ciemno to możesz sprawdzić, czy coś po drugiej stronie wysłało CTS (Clear To Send). Jeśli Twój protokół przesyłania danych wymaga np. by żaden znak nie został zgubiony to nie możesz tak po prostu nadawać jak leci, szczególnie do małych urządzeń bo one całej transmisji mogą nie pomieścić w swoich pamięciach i właśnie za pomocą CTS ostrzegają, że mają pełny bufor i należy nadawanie wstrzymać. W przypadku gdy wysyłasz dane do PC, to w porównaniu z małym procesorkiem ma on praktycznie nieskończoną pamięć i raczej nigdy nie będzie "pełny" więc z sygnalizacji w tę stronę możesz zrezygnować. Za to maluch może być zapchany i czasem PC powinien poczekać. Taka sytuacja zachodzi w przypadku np. programowania pamięci, gdy czas zapisu nie jest zerowy i trzeba chwilę poczekać. Tak naprawdę robi się to jednak wplatając sygnały synchronizacji i potwierdzeń w strumień przesyłanych danych. Kiedyś służyły do tego specjalne znaki XON/XOFF ale teraz nikt już o tym nie pamięta i wysyłane są ramki z kodami potwierdzeń wykonania poprzednio odebranej komendy.

W tej sytuacji, gdy inteligencja urządzeń współpracujących jest coraz tańsza nie trzeba prowadzić specjalnych linii by dowiedzieć się o stanie drugiej strony i znaczenie sygnałów sterowania modemem praktycznie zanika.

Udostępnij ten post


Link to post
Share on other sites

Ok, to lepiej zostawię to RTS i CTS, nigdy nie wiadomo kiedy się przyda w przyszłości.

A jak schemat , nic nie pomieszałem?

Jeszcze tak się zastanawiam, chcę mieć sygnalizację przesyłu danych na Rx i Tx i zastanawiam się czy lepiej zostawić tak jak jest teraz, że diody zapalają się gdy na Rx i Tx jest stan niski czy zrobić odwrotnie, że będą wyzwalane stanem wysokim na Rx i Tx? Ma to jakieś znaczenie dla transmisji danych, może na nią jakoś wpłynąć?

Udostępnij ten post


Link to post
Share on other sites

Dla samej transmisji danych to nie ma znaczenia. Gdyby próbować dzielić włos na czworo to zwykle drivery wyjść cyfrowych są mocniejsze w stanie niskim więc dioda zaczepiona do plusa - jak u Ciebie - będzie lepiej sterowana a stan niski będzie "lepszy" niż gdyby diodę zapalać jedynką. Poza tym stanem "spoczynkowym" na liniach UARTa jest 1, więc teraz diody będą się zapalać dopiero gdy zaczniesz coś przesyłać i to na pewno zobaczysz. Z powodu uśredniającego działania oka łatwiej zobaczyć błyski światła niż krótkie przygaśnięcia.

Jeśli dopiero robisz projekt to czy nie prościej wstawić od razu konwerter UARTa na USB? Taki układ łyka sygnały TTL więc nie musisz robić przejścia na bipolarne sygnały RS232. Podłączasz go z jednej strony wprost do procesora a z drugiej do USB. Zajrzyj np. na stronę firmy FTDI (np. FT232R). To bardzo popularne rozwiązanie i chyba nawet dużo tańsze niż kupna przejściówka USB/RS232 + MAX232.

Acha, przy okazji: czy procesor w Twoim robocie pracuje na 5V? Bo jeśli nie to MAX232 tu nie pasuje.

Udostępnij ten post


Link to post
Share on other sites

Czy jeżeli zrobię coś takiego, użyję FT232 i będę wpinał się do USB czy całość nadal będzie "widziana" jako urządzenie RS232, że niby gdzieś tam po drodze jest jakiś port szeregowy COM?

Bo do sterowania będę używał już gotowego konkretnego programu, który współpracuje wyłącznie z urządzeniami podpiętymi pod port szeregowy COM

Jeżeli dobrze rozumiem to taki FT232 będzie jak całą przejściówka USB<-> RS232 tylko że od razu na płytce robota?

Udostępnij ten post


Link to post
Share on other sites

Tak, FT232 prezentowany jest po stronie aplikacji jako port COM. Można ustawiać prędkość i tę widzi na swoim końcu kabelka UART w procesorze, można ustawiać i odczytywać stan linii sterowania przepływem itd ale nikt Ci z góry na 100% nie powie, że to będzie działało. Zawsze może się okazać, że jakieś zależności czasowe są trochę inne lub np. program pisze wprost do portów I/O komputera z pominięciem driverów i wtedy.. kaszanka. Prawie na pewno tak nie jest ale wykluczyć tego nie można.

Kolejną sprawą są numery portów. Przy używaniu na tym samym komputerze wielu takich (ale różnych sztuk) przejściówek USB/RS232 każda kolejna dostaje kolejny numer portu COM. Miałem komputer na którym numery zaczęły mieć trzy cyfry. Wiele starych programów zakłada, że przecież w komputerze nie może być więcej jak np. 4 lub nawet 10 portów szeregowych i nie dają się przestawić np. na COM215. Wtedy.. znowu kaszanka.

Jeśli program był pisany pod Windows to raczej problemów z kompatybilnością nie będzie ale numer portu kiedyś w przyszłości może być ograniczeniem.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...