USB zamiast RS232

13

RS232 nie jest popularny jak kiedyś i jest głównie zastępowany przez USB [ wikipedia ]. Problemy wymienione w tym pytaniu również nie pomagają w jego reputacji.

Dlatego w nowej konstrukcji systemu można pomyśleć o użyciu USB zamiast portu szeregowego do komunikacji. Jednak nadal wydaje się, że RS232 jest wybranym protokołem / portem komunikacji szeregowej.

Dlaczego? Rozumiem, że zmiana starych maszyn współpracujących z RS232 jest kosztowna, ale co uniemożliwia nowym projektantom systemów korzystanie z USB zamiast RS232?

Shahbaz
źródło

Odpowiedzi:

12

Przynajmniej na poziomie mikrokontrolera:

  1. Porty szeregowe (zwykle TTL lub LVTTL) są nadal najczęstszym sposobem komunikacji, ponieważ większość prostych mikrokontrolerów nie ma kontrolera USB.

    Na przykład: większość 8-bitowych mikrokontrolerów AVR lub PIC nie ma USB, kilka 32-bitowych mikrokontrolerów ARM ma, ale zazwyczaj wszystkie mają porty szeregowe.

  2. Konwersja z komunikacji szeregowej TTL / LVTTL na RS-232 wymaga „prostej” logicznej konwersji poziomu, co można zrobić za pomocą bardzo tanich układów scalonych (MAX232 / MAX3232)

  3. Konwersja komunikacji szeregowej TTL / LVTTL na USB, gdy twój mikrokontroler nie ma kontrolera USB, zazwyczaj wymaga użycia nieco droższego układu scalonego (FTDI), który nie ma żadnych opcji pakowania przez otwór, a jedynie montaż powierzchniowy.

  4. Istnieje kilka szczegółów dotyczących protokołu, na który należy zwrócić uwagę podczas korzystania z urządzeń USB w ogóle, takich jak aktualny poziom, o jaki może poprosić host USB. W przypadku portów szeregowych musisz martwić się jedynie o 3 do 5 stałych parametrów, które muszą być spójne w systemie (prędkość transmisji, liczba bitów stopu, parzystość itp.).

georgebrindeiro
źródło
9

Myślę, że prostota. Implementacja USB (układy scalone i oprogramowanie sterownika) jest zwykle bardziej złożona niż dobry stary RS232, który można nawet znaleźć w wielu 8-bitowych mikrokontrolerach. Chociaż USB ma wiele mechanizmów protokołów i jest zaprojektowany do obsługi wielu uczestników przez magistralę, połączenie RS232 nie ma żadnej z nich. Zamiast tego jest to „najbardziej surowa” możliwa forma przesyłania bajtów za pośrednictwem drutu.

Chociaż Arduino i rosnąca popularność adapterów USB-szeregowych są obiecujące, że USB ostatecznie stanie się tak dominujący, jak kiedyś RS232.

Daniel Eberts
źródło
5

Myślę, że największym powodem, dla którego RS232 pozostał, jest prostota implementacji typowych przypadków użycia we wbudowanym sprzęcie - takich jak wysyłanie sekwencji bajtów ASCII między dwoma urządzeniami do kontroli. Przypadki użycia do wysyłania informacji przy znacznie wyższych prędkościach dostępnych z USB nie są warte kompromisu ze względu na złożoność spowodowaną implementacją sygnalizacji protokołu USB .

Ponieważ pojawiają się wymagania dotyczące wyższych prędkości, nie zdziwiłbym się, gdyby RS-485 stał się bardziej powszechny dzięki bardzo prostemu interfejsowi fizycznemu i wysokim (do 10 Mb / s) szybkościom transmisji danych.

thisismyrobot
źródło
4
  • Prostota dla projektantów sprzętu i łatwa obsługa dla programistów
  • Niezawodność
  • Dobrze znany i obsługiwany w wielu systemach

Zwłaszcza w robotyce, kiedy zmuszeni byliśmy użyć USB zamiast RS232 (nasze nowe komputery nie miały portów RS232). Napotkaliśmy wiele problemów:

  1. Każde odłączenie gniazda USB wymaga tak dużego wysiłku, aby przywrócić system. Czasami prowadzi to do złej awarii systemu i musieliśmy ponownie uruchomić komputery.

  2. Wszelkie wstrząsy lub zagrożenia powodują, że urządzenie jest odłączone od zasilania.

  3. Za dużo czasu na programowanie

masoud
źródło
2

Opóźnienie komunikacji to kolejny powód, dla którego USB1.1 lub USB2.0 nie zawsze jest dobrym zamiennikiem RS232. Dane na magistrali USB 1.1 lub USB 2.0 są formatowane odpowiednio w ramkach 1ms lub 125us, co wymusza minimalne opóźnienie odbioru w dwóch okresach ramek (często więcej w praktyce). Jest to ważna kwestia dla nowoczesnego sprzętu komputerowego, który zwykle nie ma wbudowanego portu RS232 i zamiast tego używany jest konwerter USB / RS232.

Paweł Jurczak
źródło