Модуль ethernet для ардуино

ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ

Блог технической поддержки моих разработок

Урок 63. Локальная сеть Ethernet. Модуль ENC28J60, его подключение к плате Ардуино.

Следующие несколько уроков будут посвящены организации сети 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 провода).

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

  • Волновое сопротивление линий — 100 Ом.

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

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

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

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

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

Номер контакта Назначение сигнала
1 TX+
2 TX-
3 RX+
6 RX-
Номер контакта Назначение сигнала
1 RX+
2 RX-
3 TX+
6 TX-
  • На сетевой карте компьютера и Ethernet модуле Ардуино применяется вариант A.
  • Порты ввода/вывода коммутатора или роутера используют вариант B.

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

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

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

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

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

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

  • Максимальная длина сегмента кабеля – 100 м.

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

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

Модуль ENC28J60.

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

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

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

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

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

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

Основные характеристики модуля 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, научимся писать программы для передачи данных через сеть Ethernet.

Источник

Adblock
detector