Wpis z mikrobloga

✨️ Obserwuj #mirkoanonim
Mirki mam pytanie odnośnie protokołow komunikacji, bo im więcej o tym czytam tym mniej to rozumiem.

TPC/IP
Załóżmy, że mamy architekturę klient-server, połączenie po TCP. Aby to była taka "message-based" komunikacja to definiujemy sobie to np. w ten sposób:
| Header(proto version, message type, itp...)| Data | Checksum |
Z perspektywy aplikacji korzystamy ze struktur, które są serializowane np. binarnie, czy do jsona i wysyłane przez socket w takiej kolejności jak to definiuje protokół. Jak widzicie mówię tutaj o protokole hmm aplikacyjnym? Nie samego medium transportowego.

USB
Bazując na powyższym przykładzie, czy mogę sobie zrobić komunikacje między hostem i targetem po usb, gdzie protokół byłby dokładnie taki sam (header, date, chcsum), tylko inne medium transportowe?

SPI - jak wyżej - podkreślam mówię o protokole z perspektywy aplikacji - nie samego peryferium
I2C - jak wyżej

Do czego zmierzam - czy protokół aplikacyjny ma / może być niezależny od medium transportowego i teoretycznie zmiana połączenia między urządzeniami (np. z ethernet na usb), wymagałaby tylko zmiany konfiguracji wykorzystywanego MEDIUM a nie protokołu?

Modbus - dlaczego jak czytam gdzies o modbusie to znajdę tylko informacje o wykorzystaniu w kontekście RS232/RS485 oraz TCP/IP? O ile z tego co patrzyłem z grubsza modbus definiuje timingi przy wysłyaniu ramek, to czy to w ogóle ma sens w przypadku TCP/IP - przypuszczam, ze nie więc w tym przypadku MODBUS definiuje tylko układ danych w bitstreamie.

Dlaczego nie ma nic o Modbus over USB/SPI/I2C? Przeciez to tylko format ramki definiujący protokól aplikacyjny a nie warstwy transportowej/peryferium.

Przecież jak najardziej mogę sobie wysłać po USB czy I2C coś w stylu: START | Address | FunctionCode | Data | CRC | END.

Strasznie mi się to wszystko miesza w głowie i nie rozumiem już do końca co z czym można wykorzystać.
Będę wdzięczny za wszelkie podpowidzi.

#embedded taguje też #elektronika bo koledzy z tego tagu też piszą soft.



· Akcje: Odpowiedz anonimowo · Więcej szczegółów
· Zaakceptował: razzor91
· Autor wpisu pozostał anonimowy dzięki Mirko Anonim

  • 10
USB to nie protokół tylko standard. Aczkolwiek programowałem komunikację UARTem podłączonym przez USB, może o to Ci chodziło. Uartem robiłem komunikację między dwoma CPU i customowy protokół, dopasowany do wymagań, mniej więcej ramka jak napisałeś.

Modbus to protokół, jeżeli sobie zrobisz implementację będzie chodzić na dowolnym medium. Tylko najpopularniejsze rs485.
@mirko_anonim: O modbus się nie wypowiem bo nie korzystałem, ale to co wcześniej pytasz o "protokół aplikacyjny" to tak, możesz taki sam na różnych mediach używać jak najbardziej.
18+

Zawiera treści 18+

Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.

Kolego, bo pytanie które zadałeś jest nieco niejasne już od początku, a nawet pomieszaniem zdaje się kilku pytań. Protokoły i standardy są różne i jak cebula mają warstwy ;) jedne protokoły definiują określone napięcie, np CAN czy USB, inne napięć w ogóle nie definiują. W tej warstwie elektrycznej, możesz sobie wyobrazić że nawet prosty telegraf jest właśnie takim protokołem komunikacyjnym, ciągiem zer i jedynek lub stanu wysokiego i niskiego linii. Jeśli uzgodnisz