Найти в Дзене

〰️До того, как говорить о передаче данных и что с ней можно делать нужно разобраться с важными определениями, которые помогут в дальнейшей

〰️До того, как говорить о передаче данных и что с ней можно делать нужно разобраться с важными определениями, которые помогут в дальнейшей избежать путаницы. Прежде всего речь должна пойти о понятиях интерфейса и протокола. ⚡️⚡️⚡️⚡️ 〰️Интерфейс определяет собой физические параметры и способ передачи данных. Уверен, вы сталкивались с RS-232, RS-422, RS-485. Он описывает, какие уровни напряжения считаются логическим нулём и единицей, сколько линий нужно, как они согласованы и на каких расстояниях это вообще работает. 〰️Протокол - это уже содержание того, что передаётся через интерфейс. В качестве примера можно взять Modbus (TRU, ASCII, TCP), как самый популярный в промышленных сетях или NMEA, как самый морской. Именно протокол определяет кто и в какой момент говорит, что говорит, из чего должно быть сформировано сообщение и т.д. Modbus может существовать поверх RS-422 или RS-485. Самим интерфейсам глубоко безразлично что по ним передаётся. 〰️Так же есть товарищи с которыми каждый из

〰️До того, как говорить о передаче данных и что с ней можно делать нужно разобраться с важными определениями, которые помогут в дальнейшей избежать путаницы. Прежде всего речь должна пойти о понятиях интерфейса и протокола.

⚡️⚡️⚡️⚡️

〰️Интерфейс определяет собой физические параметры и способ передачи данных. Уверен, вы сталкивались с RS-232, RS-422, RS-485. Он описывает, какие уровни напряжения считаются логическим нулём и единицей, сколько линий нужно, как они согласованы и на каких расстояниях это вообще работает.

〰️Протокол - это уже содержание того, что передаётся через интерфейс. В качестве примера можно взять Modbus (TRU, ASCII, TCP), как самый популярный в промышленных сетях или NMEA, как самый морской. Именно протокол определяет кто и в какой момент говорит, что говорит, из чего должно быть сформировано сообщение и т.д. Modbus может существовать поверх RS-422 или RS-485. Самим интерфейсам глубоко безразлично что по ним передаётся.

〰️Так же есть товарищи с которыми каждый из нас хоть раз сталкивался и которые относятся к двум данным категориям сразу, потому я не упоминал их раньше: CAN и Ethernet. Почему тот же CAN всегда сопровождает понятие "Шина"? Потому что CAN выступает и как интерфейс и как протокол. То же самое касается и Ethernet. Распиновка там чётко определена, как и уровни напряжений и форматы сообщений. Мешает-ли это использовать их не по назначению? Конечно нет, но тогда это уже будет не Ethernet. Будут использованы лишь его внешние атрибуты вроде коннекторов.

⚡️⚡️⚡️⚡️⚡️

〰️Следующее важное понятие это Baud rate. Про него я достаточно подробно писал выше, а на практике мы с вами познакомимся с ним в небольшой статейке, которую я сейчас, параллельно, пишу.

⚡️⚡️⚡️⚡️⚡️

〰️Но это всё — разговоры о ПОСЛЕДОВАТЕЛЬНОЙ передаче данных. Когда каждый байт передаётся набором последовательных бит. Так же существуют протоколы и интерфейсы параллельной передачи данных. Однако затрагивать их смысла не вижу т.к. работа с ними требует совершенно другого подхода, оборудования и понимания происходящего.

〰️Последовательная передача данный устроена намного проще и куда более лояльна к нам - людям, которые просто хотят сунуть свой нос без подробной документации и т.д. С параллельной передачей данных - всё грустно. Так же не вижу смысла затрагивать внутренние последовательные интерфейсы (SPI и I²C) т.к. тут, что называется "Кому надо - уже в курсе, остальным - не надо". Уж извольте.

Следующий вопрос: а что вообще там может передаваться?

〰️Всё вышеперечисленное - лишь про способы передать комбинацию нулей и единиц, но вот как эти нули и единицы интерпретируются — другая история. Данные могут передаваться в двоичном виде (binary) (вот тут как раз про I²C - передача битов без байтового смысла), в текстовом (ASCII) или в шестнадцатеричном представлении (HEX).

⚡️⚡️⚡️⚡️⚡️

〰️На практике чаще всего встречаются именно ASCII и HEX — это два способа “смотреть” на один и тот же поток бит.

➡️ASCII — привычный человеку формат. Каждый байт соответствует символу: букве, цифре, знаку. Если открыть обмен в терминале, ты увидишь понятные фразы вроде:

READ TEMP=25.4 OK

и т.д. Так общаются, например, NMEA.

➡️HEX — тот же байт, только показан в шестнадцатеричной системе, чтобы человеку было легче различать. Здесь обмен выглядит уже так:

01 03 00 10 00 02 C5 CD

— бессмысленно для глаза, но идеально для протоколов вроде Modbus RTU или CAN, где каждый байт несёт чётко определённый смысл (адрес, функция, CRC и т.д.).

〰️Дальше мы отдельно будем останавливаться на каждом интерфейсе и интересных протоколах. К комментариях я скинул пример того, как я с этим развлекаюсь. Не знаю как вам это пригодится, но "У самурая нет цели, есть только путь".

Не теряемся!

⚡️⚡️⚡️⚡️⚡️⚡️