KonradIC13 Napisano Lipiec 24, 2013 Udostępnij Napisano Lipiec 24, 2013 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
marek1707 Lipiec 25, 2013 Udostępnij Lipiec 25, 2013 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.
KonradIC13 Lipiec 25, 2013 Autor tematu Udostępnij Lipiec 25, 2013 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ąć?
marek1707 Lipiec 25, 2013 Udostępnij Lipiec 25, 2013 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.
KonradIC13 Lipiec 25, 2013 Autor tematu Udostępnij Lipiec 25, 2013 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?
marek1707 Lipiec 25, 2013 Udostępnij Lipiec 25, 2013 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. 1
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »