Подключение контроллера к компьютеру через ethernet

Обновлено: 07.07.2024

__________________
Автомат АК - самый распространенный преобразователь стека в очередь

Ответ: Соединение с компьютером по ethernet Спасибо) Попробую. А ещё маа-а-аленький вопрос. Возможно ли всё это осуществить, не используя com-порт (то есть чисто через ethernet)? Дело в том, что запрограммированный контроллер стоит, грубо говоря, в чистом поле, а ноутбук, с которого можно к нему пристыковаться, не имеет com-порта.
Просто есть подозрение, что нужно допрограммировать связь с OPC-сервером, а без com-порта это никак. Ответ: Соединение с компьютером по ethernet Спасибо) Возможно ли всё это осуществить, не используя com-порт (то есть чисто через ethernet)?
. нужно допрограммировать связь с OPC-сервером, а без com-порта это никак. Нет, залить в Пиксел программу через модуль Ethernet не получится. Только через RS485.
Кстати, у модуля Ethernet ко всему прочему всего один TCP-стек. То есть сервер ввода-вывода должен делать запросы Пикселю через одно соединение. Иначе будут отказы в доступе.

__________________
Автомат АК - самый распространенный преобразователь стека в очередь

Ответ: Соединение с компьютером по ethernet Через com-порт вижу значения, всё считывается. А по ethernet - нет. Как задать ip-адреса в опциях пикселя и опциях нет-порта в лоджике; а как задать их в лектусе? Понятно, что где-то что-то должно совпадать, а где-то различаться. Так в каком месте прописывать ip компа, а где - ip контроллера? По инструкции это не ясно. Вообще надо ли трогать ip компа, если подсоединяешься кроссовым кабелем? Ответ: Соединение с компьютером по ethernet

Опишу процесс более подробно, чтобы было ясно, в чём загвоздка.

Есть программа, в которой 3 числа формата real выводятся на экран Пикселя. Эти же числа требуется отобразить на OPC-сервере.

1) Открываю вкладку FBD, создаю 3 выхода, даю им названия, тащу к ним связи.
2) Нажимаю ctrl+M, сохраняю файл .map
3) Открываю вкладку УСТРОЙСТВА, в разделе COM1 создаю slave, подгружаю только что созданную карту памяти (чтобы при загрузке проекта видеть значения с COM-порта).
4) в разделе netPort создаю slave, подгружаю только что созданную карту памяти (чтобы после загрузки проекта видеть значения через Ethernet). IP, допустим, 192.168.0.201, порт 502
5) Во вкладке Устройства нажимаю на Pixel2501:1, задаю Адрес в сети ModBus 1, ip 192.168.0.213 порт 502 (то есть то, что изначально прописано в Пикселе в "конфигурации").
6) Конвертирую .map в .cfg конвертером, открываю OPC-сервер, загружаю карту памяти, нажимаю "текущие данные - request1". Открывается диалоговое окно. Через COM-порт всё прекрасно считывается. А как сконфигурировать TCP-IP подключение? Функция "настройка" в "ModBus - подключение", где нужно выставить ip-адрес. Какой именно? Адрес компьютера или адрес Пикселя, который в нём прописан? Пробовал оба варианта, не помогает. Зачем нужна вкладка "параметры" в разделе "дополнительно"? Что именно там прописывается? Надо ли менять ip-адрес на компе, чтобы он соответствовал тому адресу, который заложен в п.4?
В общем, как сделать, чтобы через Ethernet-кабель заработало всё так же, как через COM-порт?

Локальная сеть — вещь прикольная и интересная. Место обитания каждого гика, включая его самого, опутано витой парой сверху донизу. Почему бы не использовать всё это на пользу дела?

Тем более, существует микросхема, позволяющая микроконтроллеру прекрасно чувствовать себя в сети Ethernet. А именно, ENC28J60, разработка вражеской компании Microchip. Об её использовании мы и поговорим.

Вообще-то, Ethernet — достаточно обширная тема. В один пост явно не поместится. Так что частей будет несколько.

Эта первая часть, и как обычно, — вводная и обзорная.

А зачем это нужно?

С точки зрения микроконтроллера, локальная сеть — лишь ещё один интерфейс «наружу». Зачем использовать именно его, а не простейший RS-232, скажем?

  • Это удобно. Любая нормальная операционная система имеет нативную поддержку сети и API для работы с ней. Много стандартного софта умеет работать в сети и сможет обращаться к нашему девайсику.
  • Девайс будет доступен как минимум с любого компа, подключенного к локальной сети, а максимум — вообще с любого компа, имеющего доступ в интернет. В том числе, по беспроводному соединению — к девайсу можно будет обращаться, например, с ноутбука, не привязывая себя к девайсу проводами.
  • Девайс сам сможет выходить в интернет и получать различную информацию — от точного времени до прогноза погоды и последних новостей (хм, ну конечно если памяти у МК хватит на всё это).
  • Это быстро. 10 мбит/с — более чем прилично для микроконтроллерного девайсика.
  • Девайс больше не привязан к компу проводами — максимальные 100 м для витой пары не идут ни в какое сравнение с «классическими» интерфейсами.
  • Это просто. Нет, правда! IP-стек мне кажется куда проще и логичнее чем, скажем, USB.

Конечно, есть и недостатки — для работы с сетью нужен контроллер с обвязкой. Что несколько повышает стоимость конечного девайса.

Disclaimer

Стоит сразу сказать что здесь подразумевается под Ethernet и что это есть на самом деле.

Ethernet — группа стандартов IEEE 802.3, описывающая различные технологии локальных сетей. В этих стандартах определён общий канальный уровень и набор технологий физического уровня (использующих для передачи данных оптоволокно, витую пару, коаксиал, с разными скоростями, etc.).

Здесь же под Ethernet будет подразумеваться конкретный стандарт IEEE 802.3i, который и поддерживается ENC28J60. В этом стандарте физический уровень — это 10BASE-T, 10 мбит/с по витой паре (Twisted pair).

The Plan

Вот, в общем виде, структурная схема девайса:

The Plan

Здесь вроде-бы всё просто. ENC28J60 содержит в себе физический уровень (PHY) и канальный уровень (MAC) Ethernet. Микроконтроллеру остаётся только подтаскивать пакеты для отправки и забирать принятые через SPI.

В прошивке микроконтроллера реализован простенький IP-стек, позволяющий прикладной задаче общаться с задачами на других системах с помощью стандартных протоколов.

Более подробно обо всём этом будет в следующих частях.

Модель OSI

А что это за уровни, о которых я всё говорю? Если ты знаешь, эту часть можно пропустить.

Модель OSI — полезная вещь для понимания того, как работает сеть. Здесь о ней очень кратенько.

Данная модель разбивает коммуникационную систему на простые части, называемые уровнями. Каждый уровень обслуживает следующий (верхний) и обслуживается предыдущим (нижним) — вертикальные связи. Особенности функционирования каждого уровня скрыты от других уровней.

Взаимодействует две системы, соответственно есть и по два экземпляра каждого уровня. На каждом уровне используются свои протоколы (горизонтальные связи).

OSI Model

Всего есть 7 уровней модели OSI.

OSI Model Layers

У нас будет только 5 уровней.

Физический уровень

У нас это 10BASE-T. Физический уровень реализован в ENC28J60. Сюда входит витая пара и всё, что нужно для передачи данных по ней (драйверы, трансформаторы).

Канальный уровень

Канальный уровень Ethenet (MAC) тоже реализован в ENC28J60. Канальный уровень отвечает за передачу Ethernet-фреймов между узлами локальной сети (адресацию, проверку контрольной суммы, разрешение коллизий, etc.).

Проще говоря, канальный уровень — это то, что позволяет посылать фреймы другим узлам локальной сети и принимать фреймы от них.

Также к канальному уровню относится протокол ARP, который служит для преобразовния IP-адресов в MAC-адреса.

Сетевой уровень

Сетевой уровень отвечает за передачу пакетов. У нас это IP. IP-пакет спокойно может пройти через несколько разных сетей с различными технологиями физического и канального уровня.

Проще говоря, сетевой уровень — это то, что позволяет отправлять пакеты любым узлам и принимать пакеты от любых узлов.

В нашем маленьком IP-стеке сетевой уровень будет очень простой. Скажем, отправка пакета будет сводиться к добавлению к блоку данных IP-заголовка и отрпавке в виде фрейма канального уровня на определённый MAC-адрес.

Транспортный уровень

Транспортный уровень отвечает за связь узлов. Скажем, приложение хочет отправит данные другому узлу. Транспортный уровень представляет эти данные в виде пакета сетевого уровня (или пакетов) и отправляет. Если используется протокол с установкой соединения, транспортный уровень занимается также установкой и контролем соединения. UDP и TCP — протоколы транспортного уровня.

Прикладной уровень

А тут может быть всё, что нам вздумается. Это то, ради чего всё затевалось. Та самая задача, обменивающаяся с внешним миром данными по какому-то своему или стандартному протоколу.

Вприницпе, пока это всё. В следующей части будет ближе к делу. Будем писать библиотеку для работы с ENC28J60. :)

image

В этой статье я хочу рассказать о полученном опыте организации удалённого доступа к промышленному программируемому логическому контроллеру (далее — ПЛК) посредством бюджетного решения на базе интернет-центра KEENETIC 4G.

Данная статья будет особенно интересна специалистам в области АСУТП, которые задались вопросом организации удалённого доступа, но не знали с чего начать.

Итак, начнём!

В данном примере рассмотрим наиболее часто встречающийся вариант, а именно:

  1. Локальный компьютер, который будет являться OpenVPN сервером с установленным пакетом TIA Portal для программирования ПЛК. (локальная сеть 192.168.1.0)
  2. Маршрутизатор предприятия с внешним белым IP — адресом (например, 217.196.58.128).
  3. Интернет-центр KEENETIC 4G с установленным клиентом OpenVPN подключенный к мобильной связи.
  4. Программируемый логический контроллер SIMATIC S7-1500 (локальная сеть 192.168.112.0).

Для организации VPN соединения между Интернет-центром KEENETIC и рабочем местом нам необходимо установить следующее ПО:

Установка пакета OpenVPN на Windows.

Устанавливаем компонент EasyRSA (для создания сертификатов встроенными средствами (необязательно).

image

image

В случае, если требуется установить несколько виртуальных адаптеров или если виртуальный адаптер был некорректно установлен, то переходим по нижеприведённому адресу и запускаем «addtab.bat» скрипт:
C:\Program Files\TAP-Windows\bin

image

Создание X.509 сертификатов

1. Устанавливаем XCA

2. Создаём БД

«Файл» -> «Новая база данных», далее программа запросит ввод пароля, вводим пароль или оставляем поля пустыми и нажимаем «ОК».

image

3. Создаём сертификат удостоверяющего центра (CA)

Для этого переключаемся на вкладку «Сертификаты» и нажимаем на кнопку «Новый сертификат»

image

Далее переключаемся на вкладку «Субъект» и заполняем необходимые поля (то, что выделено красным должно иметь уникальное имя).

image

Нажимаем «Сгенерировать новый ключ» и подтверждаем действие нажатием кнопки «создать».

image

Переключаемся на вкладку «Расширения», выбираем тип сертификата «Центр Сертификации» и настраиваем срок действия сертификата (сертификат CA должен иметь более длительный срок действия, чем сертификаты компьютера, которые будут созданы позже.)

image

Нажимаем «ОК» и теперь мы можем приступить к настройке сертификатов компьютера.

4. Создание шаблонов сертификатов компьютера

Для упрощения создания машинных сертификатов будем использовать заранее приготовленный шаблон. Переключаемся на вкладку «Шаблоны» и нажимаем на кнопку «Новый шаблон».

image

Выбираем «Пустой шаблон» и переходим к редактированию нашего шаблона, имена в угловых скобках в будущем должны быть уникальными.

image

Переходим на вкладку «Расширения», задаём тип «Конечный субъект» и настраиваем период действия сертификата компьютера (должен быть не больше чем у сертификата удостоверяющего центра).

image

Нажимаем «Ок» для создания шаблона.
Данный шаблон теперь может быть использован как базовый в качестве создания машинных сертификатов, подписанных нашим удостоверяющим центром.

5. Создания сертификатов компьютера с использованием шаблона

Переключаемся на вкладку «сертификаты» и нажимаем на кнопку «Новый сертификат», выбираем опцию «Использовать этот сертификат для подписи», в качестве шаблона выбираем наш шаблон <My_Machine> и нажимаем на кнопку «Применить всё».

image

Далее переходим на вкладку «Субъект» вводим уникальное имя, например, «My_Server», генерируем ключ.

image

Таким образом мы создали сертификат сервера. Проделываем туже самую процедуру для сертификата клиента (My_Client).

image

6. Экспорт машинных сертификатов и ключей

Для создания конфигурационного файла OpenVPN клиента (KEENETIC) и сервера (ПК Windows) нам потребуется экспортировать сертификат удостоверяющего центра, сертификат сервера, сертификат клиента, закрытый ключ сервера, закрытый ключ клиента.

Для этого переходим на вкладку «Сертификаты» выбираем сертификат удостоверяющего центра My_CA нажимаем на кнопку «Экспорт» и выгружаем в заранее созданную папку, например My_Keys, расположенную на рабочем столе.

image

Проделываем тоже самое для сертификата клиента (My_Client) и сертификата сервера (My_Server).

Переключаемся на вкладку «Закрытые ключи» выбираем ключ My_Client, нажимаем экспорт и выгружаем в нашу папку.

image

Проделываем туже самую процедуру для ключа сервера.

7. Создания параметра Диффи-Хэллмана

Для конфигурации параметров сервера нам также потребуется параметр Диффи-Хэллмана
Для создания параметра нажимаем на вкладку «Дополнительно» и выбираем пункт «Сгенерировать параметры Дифии-Хэллмана».

image

Далее выбираем длину параметра, например, 2048. Далее выгружаем наш параметр в папку с ключами.

image

В итоге в нашей папке должны находиться следующее файлы:

  1. Сертификат удостоверяющего центра My_CA.crt
  2. Сертификат клиента My_Client.crt
  3. Сертификат сервера My_Server.crt
  4. Закрытый ключ клиента My_Client.pem
  5. Закрытый ключ сервера My_Server.pem
  6. Параметр Дифии-Хэллмана dh2048.pem

Создание файлов конфигурации клиента и сервера

Т.к. протоколом промышленной связи S7-1500 является Profinet, то для установления соединения с ПЛК нам потребуется организовать L2 соединение, которым в данном случае является TAP-интерфейс.

Настройка конфигурации OpenVPN сервера

Для создания файла конфигурации сервера перейдите в папку с конфигурационными файлами OpenVPN [ C:\Program Files\OpenVPN\config ] и создайте файл TAP_Server с расширением .ovpn

image

Откройте файл TAP_Server.ovpn программой просмотра текстовых файлов (например, Notepad++) и скопируйте следующий текст:


Затем откройте программой просмотра текстовых файлов My_CA.crt, My_Server.crt, My_Server.pem, dh2048.pem и скопируйте текст из:
My_CA.crt в &ltca&gt &lt/ca&gt
My_Server.crt в &ltcert&gt &lt/cert&gt
My_Server.pem в &ltkey&gt &lt/key&gt
dh2048.pem в &ltdh&gt &lt/dh&gt

image

в результате получим следующее:

Настройка конфигурации OpenVPN клиента

Для создания файла конфигурации клиента перейдите в папку с конфигурационными файлами OpenVPN [ C:\Program Files\OpenVPN\config ] и создайте файл TAP_Client с расширением .ovpn
Откройте файл TAP_Server.ovpn программой просмотра текстовых файлов (например Notepad++) и скопируйте следующий текст:


Затем откройте программой просмотра текстовых файлов My_CA.crt, My_Client.crt, My_Client.pem и скопируйте текст из:
My_CA.crt в &ltca&gt &lt/ca&gt
My_Client.crt в &ltcert&gt &lt/cert&gt
My_Client.pem в &ltkey&gt &lt/key&gt

image

в результате получим следующее:


На этом создание файлов конфигурации клиента и сервера будем считать завершенным.

Настройка маршрутизатора предприятия

Т.к. наш персональный компьютер подключен не напрямую к линии с внешним белым IP, а через маршрутизатор предприятия, то для доступа к компьютеру с локальным IP-адресом из внешней сети необходимо пробросить порт, который мы указали в конфигурации сервера (50501).

В зависимости от модели маршрутизатора процедура проброса портов может отличаться.
На скриншоте ниже приведён пример по настройке маршрутизатора предприятия (не нашего KEENETIC 4G).

image

Запуск OpenVPN сервера на персональном компьютере

Наши файлы конфигурации готовы, осталось перейти к нюансам по настройке OpenVPN на системе под управлением Windows, для этого перейдём к настройке параметров адаптера и переименуем TAP-Windows Adapter V9 как MyTap (в соответствии с именем dev-node).

image

А также настроим локальный адрес нашему адаптеру (должен быть назначен на не занятый IP адрес нашей локальной сети контроллера, например 192.168.112.230)

image

Далее запускаем в работу сервер OpenVPN:

1. Запускаем приложение, расположенное по адресу C:\Program Files\OpenVPN\bin\openvpn-gui.exe (или нажимаем на ярлык на рабочем столе)

image

2. Переходим в трей, выбираем созданный файл конфигурации «TAP_Server» и нажимаем «подключиться»

image

3. Убедимся, что наш сервер работает и перейдём к настройке интернет-центра KEENETIC 4G

image

Настройка интернет-центра KEENETIC 4G

По-умолчанию в KEENETIC 4G не входит клиент OpenVPN, поэтому сначала нам следует его установить. Для этого подключаем KEENETIC 4G к интернету различным способом (по кабелю, по Wi-Fi или с помощью 4G модема), далее переходим в «Общие настройки» и нажимаем кнопку «Изменить набор компонентов».

image

Выбираем нужные нам компоненты (в данном случае Клиент OpenVPN уже был установлен, поэтому для примера показывается другой компонент) и нажимаем кнопку «Установить обновление».

image

Далее перейдём к настройке нашей сети, для этого выбираем «Домашняя сеть» и настраиваем IP-адрес нашего маршрутизатора, например 192.168.112.101 (так же должен быть свободным).

image

Далее нам следует настроить наше OpenVPN подключение, для этого выбираем «Другие подключения», нажимаем кнопку «добавить подключение».
Вводим имя подключения (произвольное, например, TAP_Client_PLC), выбираем тип подключения (OpenVPN), в конфигурацию OpenVPN копируем текст из нашего созданного файла для клиента (TAP_Client.ovpn) и нажимаем кнопку сохранить для применения изменений.

Далее нам следует включить интерфейс OpenVPN в основной мост, но прежде чем сделать данную процедуру нам придётся установить клиент telnet. Для этого перейдём в панель управления, далее «Включение или отключение компонентов Windows», выберем Telnet Client и нажмём «ОК».

image

После того, как telnet клиент будет установлен — подключаемся к нашему KEENETIC 4G: на клавиатуре жмём сочетание клавиш WIN+R, вводим cmd

image

Вводим команду telnet [IP_нашего_KEENETIC] (например, telnet 192.168.112.101)

image

Пройдём процесс авторизации (введём логин и пароль (если он был настроен)) и введём следующие команды:


Проверим правильность нашей конфигурации:


В итоге мы должны увидеть нечто подобное:

image

Отмечу, что интерфейс OpenVPN0 создаётся только после создания OpenVPN подключения.

Включаем в работу наш OpenVPN клиент.

image

Видим, что KEENETIC 4G осуществил подключение к нашему серверу и переходим к настройке нашего контроллера S7-1500.

image

Настройка программируемого логического контроллера S7-1500

В настройках нашего контроллера достаточно установить локальный адрес нашего маршрутизатора:

После прогрузки конфигурации, контроллер станет доступен для доступа по удалённому подключению.


Всем привет! Продолжаю изучение ПЛК, и в этот раз я опишу как подключиться к ПЛК для загрузки программы и онлайн отладки программы. Все статьи пишу в большей степени для себя, но думаю для других тоже могут быть полезны.

Программы для ПЛК Овен пишутся в CodeSys 2.3, поэтому нужно заранее ее установить. Также нужно установить драйвер USB для самого ПЛК. И то и то можно скачать с официального сайта Овен.

Запускаем CodeSys и создаем новый проект. Программа попросит нас выбрать платформу. Выбираем наш ПЛК 110-30М.


Программа предложит создать новый POU, оставляем все как есть, и убеждаемся что выбран язык ST.


Так как сейчас мы никакую программу писать не будем, нужно, чтобы хоть что-то выполнялось. Для этого создаем переменную. Для этого нажимаем SHIFT+F2. Вводим имя переменной "a" и задаем тип "BOOL".


В программу вписываем "a;"


Подключаем ПЛК. Заходим в диспетчер устройств Windows и смотрим, на какой порт подключается наш ПЛК.


Как видим внутри ПЛК находится тупо преобразователь USB<->UART. Заходим в CodeSys, нажимаем "Онлайн".


Нажимаем "Параметры связи…".


Нажимаем "New…". Вводим имя "USB", тип устройства выбираем "Serial (RS232)". Нажимаем "Ок".


Теперь щелкаем на порт, и стрелками вверх/вниз выбираем нужный нам порт. В моем случае это COM3. Таким же способом изменяем скорость на 115200.


Теперь все готово для подключения к ПЛК. Нажимаем "Онлайн", убеждаемся что не стоит галочка на "Режим симуляции", и нажимаем подключить. Если в ПЛК нет программы, программа предложит записать новую программу. Пока у нас нет программы, поэтому нажимать "Старт" нет необходимости. Снизу окна увидим наше подключение, "ОНЛАЙН: USB".


Для примера я через конфигурацию ПЛК включил три выхода.



Комментарии 4


По сравнению с Delta, Mitsubishi, Siemens эти плк овен с codesys говно несусветное. Всего одного контроллера овен и пары десятков других нормальных мне хватило, чтобы понять это…


к сожалению у нас только такой плк есть)


По сравнению с Delta, Mitsubishi, Siemens эти плк овен с codesys говно несусветное. Всего одного контроллера овен и пары десятков других нормальных мне хватило, чтобы понять это…

программировал на всех этих плк. самые лучшие митсу(и надежность и простота). овен не говно, если правильно писать программу и знать нюансы, то отлично работает. я на овне столько много проектов сделал, вот прошло уже у некоторых 7-8 лет, а они работают.
дельта, очень неудобна в написании программы для подключения доп оборудования, много нюансов. Её я бы поставил последней.
сименс надежны, есть свои заморочки. 1.митсу, 2.сименс, 3.овен, 4. дельта. Это лично мой опыт пользования.

Организация сети Ethernet

Следующие несколько уроков будут посвящены организации сети Ethernet. В этом уроке я изложу минимум информации, необходимой для практической работы с сетью. Немного расскажу об Ethernet модуле ENC28J60 и приведу схему подключения его к плате Ардуино.

Локальная сеть Ethernet.

Ethernet – самый распространенный в мире сетевой интерфейс. Когда говорят об объединении компьютеров в локальную сеть, как правило, имеют в виду именно его. Ethernet контроллер стал штатным устройством для каждого компьютера.

Первый вариант стандарта Ethernet появился еще в 70х годах. Первоначально средой передачи был коаксиальный кабель, топология сети – шина, скорость передачи 10 мегабит/сек. Со временем появилось множество разновидностей Ethernet со скоростью передачи до 100 гигабит/сек, изменилась архитектура сети, стала другой среда передачи. Об этом существует много подробной информации: протоколы, форматы данных, алгоритмы обмена и т.п. Я буду рассказывать о сети Ethernet чисто с практической стороны.

Нам интересны стандарты Ethernet (10 Мбит/сек) и Fast Ethernet (100 Мбит/сек). Они совместимы и отличаются только скоростью передачи данных. Для подключения к сети плат Ардуино мы будем использовать контроллеры первого стандарта (10 Мбит/сек), а штатные сетевые контроллеры компьютеров поддерживают второй стандарт (100 Мбит/сек). Но это не помешает подключить компьютер к той же сети. Стандарты обозначаются соответственно 10BASE-T и 100BASE-TX.

Топология сети.

Два Ethernet устройства могут быть соединены между собой непосредственно. Никакие дополнительные блоки не требуются, достаточно одного кабеля.

Подключение двух компьютеров

Если используется более двух устройств, то соединение происходит по радиальной топологии с помощью хабов (HUB).

Подключение нескольких компьютеров с помощью хаба

Хаб или сетевой концентратор - это электронный прибор для соединения нескольких сетевых устройств в один сегмент сети. Он содержит несколько портов ввода/вывода.

Хаб

По сути это повторитель. Все сигналы, которые подаются на один из его портов, повторяются на остальных. Несмотря на то, что физически топология сети выглядит как радиальная, логически с использованием хабов она превращается в “общую шину”. Любые пакеты данных в сети попадают на все сетевые устройства, в том числе и на устройства, которым они не предназначены. Благодаря этому возможны конфликты данных, увеличивается нагрузка на сеть. В настоящее время хабы практически вытеснены более совершенными устройствами - сетевыми коммутаторами.

Хабы можно соединять между собой, но только в древовидные структуры.

Древовидная структура с помощью хабов

При этом недостатки, связанные с логической топологией ”общая шина” усугубляются за счет увеличения количества сетевых устройств.

Гораздо больше возможностей имеет сеть, созданная на базе коммутаторов (switch).

Соединение нескольких компьютеров с помощью коммутатора

Топология сети выглядит, так же, как и сеть, созданная с помощью хабов. Но в отличие от последней, топология сети остается радиальной не только на физическом, но и на логическом уровне.

Коммутатор это прибор для соединения нескольких устройств сети в пределах одного или нескольких сегментов.

Сетевой коммутатор

Подобно хабу коммутатор имеет несколько портов ввода/вывода. Но в отличие от хаба коммутатор передает пакеты данных не всем подключенным к нему устройствам, а только непосредственно получателю. Благодаря этому увеличивается производительность сети, повышается надежность.

  • Хаб - это “тупой” аппаратный повторитель сигналов.
  • Коммутатор – интеллектуальное устройство, которое анализирует заголовки пакетов и передает данные только на нужные порты.

Обычно сетевой коммутатор поддерживает различные скорости передачи данных одновременно.

К портам коммутаторов могут быть подключены другие коммутаторы или хабы. Это позволяет почти бесконечно расширять сеть.

Подключение компьютеров с помощью коммутаторов

Роутер или маршрутизатор – это сетевой шлюз, устройство для передачи пакетов между различными сетями. Как правило, используется для подключения к глобальной сети Интернет.

Применение роутера

Большинство роутеров также выполняют функции сетевых коммутаторов. В этом случае можно обойтись без сетевого коммутатора.

Применение роутера

Среда передачи данных Ethernet (кабель).

В качестве среды передачи нужные нам стандарты требуют применения кабеля категории 3 или категории 5. Используются только две неэкранированные витые пары (4 провода).

Кабель 2 витые пары

Одна витая пара предназначена для передачи данных, другая для приема.

Кабель обозначается UTP - Unshielded twisted pair (неэкранированная витая пара). Часто на нем написано ”ETHERNET LAN CABLE”.

Кабель Ethernet

Стандартный кабель содержит 4 витые пары.

Кабель Ethernet

Мы будем использовать только две из них.

Для подключения к портам Ethernet используются 8 контактные разъемы RJ-45.

Разъемы RJ-45

Есть два варианта распиновки разъемов: T568A и T568B. Часто просто называются варианты A и B.

Номер контакта Назначение сигнала
1 TX+
2 TX-
3 RX+
6 RX-

Понятно, что выходные сигналы одного устройства должны подключаться к входам другого, и наоборот. Поэтому существует 2 варианта кабелей: прямой и перекрестный. Прямой используется для соединения между устройствами с разъемами типов A и B, а перекрестный – для соединения портов с одинаковой распиновкой.

Для нас это означает:

  • если мы будем подключать плату Ардуино к материнской плате компьютера или другой плате Ардуино, то необходимо использовать перекрестный кабель;
  • если плата Ардуино подключается к коммутатору или роутеру – кабель должен быть прямым.

Прямой кабель предполагает, что соединяются контакты с одинаковыми номерами. Соответствие сигналов вход – выходу обеспечивается распиновкой разъемов сетевых портов.

Распиновка прямого LAN кабеля

Распиновка прямого LAN кабеля

В перекрестном кабеле провода соединяются таким образом, чтобы у связанных кабелем портов входные сигналы были подключены к выходам, а выходные к входам.

Распиновка перекрестного LAN кабеля

Распиновка перекрестного LAN кабеля

На рисунках показаны общепринятые цвета жил кабеля. Лучше их придерживаться.

В сетевом интерфейсе Ethernet существует полная гальваническая развязка каждого устройства от среды передачи (кабеля). Развязка осуществляется за счет применения импульсных трансформаторов.

Гальваническая развязка на импульсных трансформаторах

Это значительно повышает помехозащищенность сети и обеспечивает электрическую безопасность сетевых устройств.

Модуль ENC28J60.

Платы Ардуино будем подключать к сети Ethernet с помощью модуля ENC28J60. Физически он представляет собой плату размерами 51 x 18 мм.

ENC28J60

Это самый дешевый сетевой Ethernet контроллер. По моей партнерской ссылке на момент написания статья его цена составляет всего 250 руб.

Моя цель не сделать обзор возможностей и технических характеристик модуля. Возможно, я напишу отдельную статью о нем в рубрике ”Электронные компоненты”. А сейчас я приведу информацию необходимую для работы модуля совместно с платами Ардуино.

Модуль выполнен на базе микросхемы ENC28J60 фирмы Microchip. Практически это микросхема ENC28J60 в стандартном включении.

Техническую информацию фирмы-производителя можно посмотреть по этой ссылке ENC28J60.pdf.

Вот принципиальная схема модуля.

Принципиальная схема ENC28J60

Основные характеристики модуля ENC28J60.

  • Совместимость с Ethernet сетями 10/100/1000 Base-T. Скорость передачи данных 10 мбит/сек, реализация TCP/IP стека.
  • Интерфейс связи с микроконтроллером – SPI, частота до 20 мГц.
  • Напряжение питания 3,1 – 3,6 В. Типовое 3,3 В.
  • Интерфейсные входы модуля позволяют непосредственное подключение к сигналам с 5 вольтовыми уровнями. Максимально-допустимое напряжение на входах интерфейса SPI - 6 В. В половине статей о подключении ENC28J60 к Ардуино написано, что необходимо подключать входные сигналы через согласующие резисторные делители. Это не так. Сомневающееся могут посмотреть документацию на микросхему ENC28J60.
  • Ток потребления от источника питания 3,3 В:
    • в момент передачи может достигать 180 мА;
    • в активном состоянии, но без передачи 120 мА;
    • в режиме ожидания (сигнал CS в неактивном уровне) не более 2 мА.

    Это характеристики, которые я решил выделить. Главное:

    • для питания модуля необходимо использовать источник напряжением 3,3 В и выходным током до 180 мА;
    • выводы интерфейса модуля допускается подключать к 5 вольтовым сигналам.

    Интерфейс связи с микроконтроллером.

    К микроконтроллеру модуль подключается через 10 контактный разъем типа PLHD, расположенный на печатной плате устройства.

    Интерфейсный разъем

    Назначение контактов (распиновка) модуля ENC28J60.

    Контакт Обозначение Направление Назначение
    1 CLK выход Выход тактового сигнала
    2 INT выход Сигнал прерывания
    3 WOL - Зарезервирован
    4 SO выход Сигнал SO интерфейса SPI
    5 SI вход Сигнал SI интерфейса SPI
    6 SCK вход Сигнал SCK интерфейса SPI
    7 CS вход Сигнал CS интерфейса SPI (выбор контроллера)
    8 RST вход Сброс
    9 VCC - Питание модуля 3,3 В 180 мА
    10 GND - Общий вывод

    Подключение модуля ENC28J60 к плате Ардуино.

    Для питания модуля необходим источник напряжения 3,3 В. Такое напряжение есть на плате Arduino UNO. Поэтому я решил подключить модуль к ней. Для других плат пришлось бы добавлять стабилизатор напряжения 3,3 В.

    В характеристиках на плату Arduino UNO указано, что ток потребления на выводе 3,3 В должен быть не более 50 мА. А нам необходимо 180 мА. Но на моей плате Arduino UNO в качестве стабилизатора 3,3 В используется микросхема XC6206P332MR. На плате это корпус SOT-23 с обозначением 662K. Допустимый выходной ток для этого стабилизатора 200 мА (технические характеристики можно посмотреть по ссылке XC6206.pdf). Т.е. модуль можно смело запитывать от Arduino UNO.

    Для управления модулем мы будем использовать аппаратный интерфейс SPI микроконтроллера. Поэтому выбора выводов платы Ардуино для подключения модуля у нас нет.

    Таблица соединения выводов платы Arduino UNO и модуля ENC28J60 выглядит так.

    Плата Arduino UNO Модуль ENC28J60
    Вывод № вывода Обозначение
    12 4 SO
    11 5 SI
    13 6 SCK
    10 7 CS
    RES 8 RST
    3.3 V 9 VCC
    GND 10 GND

    Кому-то удобнее будет работать со схемой.

    Схема подключения ENC28J60 к Ардуино

    У меня все это выглядит так.

    Подключение ENC28J60 к Ардуино

    К роутеру я подключил модуль прямым кабелем.

    В следующем уроке изучим библиотеку для управления модулем ENC28J60, научимся писать программы для передачи данных через сеть Ethernet.

    Читайте также: