
5ый семестр / 1. Производственная практика / стащил с работы / 63 урок - Локальная сеть Ethernet, модуль ENC28J60, его подключение к плате Ардуино
.pdf
ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ
(HTTP://MYPRACTIC.RU/)
БЛОГ ТЕХНИЧЕСКОЙ ПОДДЕРЖКИ МОИХ РАЗРАБОТОК
ГЛАВНАЯ (HTTP://MYPRACTIC.RU/) |
РУБРИКИ (HTTP://MYPRACTIC.RU/RUBRIKI) |
|
||
АРДУИНО (HTTP://MYPRACTIC.RU/UROKI-PROGRAMMIROVANIYA-ARDUINO-NAVIGACIYA-PO-UROKAM) |
||||
STM32 (HTTP://MYPRACTIC.RU/UROKI-STM32) |
О САЙТЕ (HTTP://MYPRACTIC.RU/O-SA JTE) |
КОНТАКТЫ (HTTP://MYPRACTIC.RU/KONTAKTY) |
||
КАРТА САЙТА (HTTP://MYPRACTIC.RU/KARTA-SA JTA) |
ФОРУМ (HTTP://MYPRACTIC.RU/GOTO/MPFORUMLINK.PHP) |
|||
ПОДДЕРЖКА (HTTP://MYPRACTIC.RU/FINANSOVAYA-PODDERZHKA-SA JTA ) |
|
Урок 63. Локальная сеть Ethernet. Модуль ENC28J60, его подключение к плате Ардуино.
10. 03. 2018 (HTTP://MYPRACTIC. RU/UROK -63-LOKALNAYA-SET-ETHERNET-MODUL-ENC28J60-EGO- PODKLYUCHENIE-K -PLATE-ARDUINO. HTML) Автор: ЭДУАРД (HTTP://MYPRACTIC. RU/ACCOUNT?USER=1)
(http://mypractic.ru
/wp-content/uploads/2018/03/Lesson63_0.png)
Следующие несколько уроков будут посвящены организации сети Ethernet. В этом уроке я изложу минимум информации, необходимой для практической работы с сетью. Немного расскажу об Ethernet модуле ENC28J60 и приведу схему подключения его к плате Ардуино.
|
Предыдущий урок (http://mypractic.ru/urok-62-texnologiya-klient-server.html) |
Список уроков |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(http://mypractic.ru/uroki-programmirovaniya-arduino-navigaciya-po-urokam) |
Следующий урок |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(http://mypractic.ru/urok-64-tcp-server-i-klient-na-arduino-biblioteka-uipethernet.html)
Локальная сеть Ethernet.
Ethernet – самый распространенный в мире сетевой интерфейс. Когда говорят об объединении компьютеров в локальную сеть, как правило, имеют в виду именно его. Ethernet контроллер стал штатным устройством для каждого компьютера.
Первый вариант стандарта Ethernet появился еще в 70х годах. Первоначально средой передачи был коаксиальный кабель, топология сети – шина, скорость передачи 10 мегабит/сек. Со временем появилось множество разновидностей Ethernet со скоростью передачи до 100 гигабит/сек, изменилась архитектура сети, стала другой среда передачи. Об этом существует много подробной информации: протоколы, форматы данных, алгоритмы обмена и т.п. Я буду рассказывать о сети Ethernet чисто с практической стороны.
Поиск
Вход (#)
Регистрация (#)
Рубрики
Катодная защита
(http://mypractic.ru/category /katodnaya-zashhita)
Проекты Ардуино
(http://mypractic.ru/category /proekty-arduino)
Разработки
(http://mypractic.ru/category
/razrabotki)
Умное растениеводство
(http://mypractic.ru/category /umnoe-rastenievodstvo)
Умный дом
(http://mypractic.ru/category /umnyj-dom)
Уроки ESP32 (http://mypractic.ru/category /uroki-esp32)
Уроки STM32 (http://mypractic.ru/category /uroki-stm32)
Уроки Ардуино
(http://mypractic.ru/category /uroki-programmirovaniya- arduino)
Фасовочное оборудование
(http://mypractic.ru/category
/oborudovanie)
Электронные компоненты
(http://mypractic.ru/category /elektronnye-komponenty)

Нам интересны стандарты Ethernet (10 Мбит/сек) и Fast Ethernet (100 Мбит/сек). Они совместимы и отличаются только скоростью передачи данных. Для подключения к сети плат
Ардуино мы будем использовать контроллеры первого стандарта (10 Мбит/сек), а штатные
сетевые контроллеры компьютеров поддерживают второй стандарт (100 Мбит/сек). Но это не помешает подключить компьютер к той же сети. Стандарты обозначаются соответственно
10BASE-T и 100BASE-TX.
Топология сети.
Два Ethernet устройства могут быть соединены между собой непосредственно. Никакие
дополнительные блоки не требуются, достаточно одного кабеля.
(http://mypractic.ru/wp-content
/uploads/2018/03/Lesson63_3.png)
Если используется более двух устройств, то соединение происходит по радиальной
топологии с помощью хабов (HUB).
(http://mypractic.ru
/wp-content/uploads/2018/03/Lesson63_4.png)
Хаб или сетевой концентратор - это электронный прибор для соединения нескольких сетевых
устройств в один сегмент сети. Он содержит несколько портов ввода/вывода.
(http://mypractic.ru/wp-content/uploads
/2018/03/Lesson63_1.png)
По сути это повторитель. Все сигналы, которые подаются на один из его портов, повторяются на остальных. Несмотря на то, что физически топология сети выглядит как радиальная,
логически с использованием хабов она превращается в “общую шину”. Любые пакеты
данных в сети попадают на все сетевые устройства, в том числе и на устройства, которым они
не предназначены. Благодаря этому возможны конфликты данных, увеличивается нагрузка на сеть. В настоящее время хабы практически вытеснены более совершенными устройствами - сетевыми коммутаторами.
Хабы можно соединять между собой, но только в древовидные структуры.
Свежие записи
Базовое программное обеспечение контроллера автоматизированного выращивания растений
(КАВР). (http://mypractic.ru /bazovoe-programmnoe- obespechenie-kontrollera- avtomatizirovannogo- vyrashhivaniya-rastenij- kavr.html)
Контроллер
автоматизированного выращивания растений (КАВР), как развитие проекта управления гроубоксом. (http://mypractic.ru /kontrolleravtomatizirovannogo- vyrashhivaniya-rastenij-kavr- kak-razvitie-proekta- upravleniyagrouboksom.html)
Урок 34. Работа с контроллером DMA через CMSIS регистры. Практический опыт использования его для передачи данных в порты ввода/вывода. Разработка многоканального генератора импульсов. (http://mypractic.ru/urok-34- rabota-s-kontrollerom-dma- cherez-cmsis-registry- prakticheskij-opyt- ispolzovaniya-ego-dlya- peredachi-dannyx-v-porty- vvodavyvoda-razrabotka- mnogokanalnogo- generatora-impulsov.html)
Еще два варианта программного обеспечения контроллера гроубокса. (http://mypractic.ru/eshhe- dva-varianta-programmnogo- obespecheniya-kontrollera- grouboksa.html)
Урок 33. Прямой доступ к памяти в STM32. Контроллер DMA. (http://mypractic.ru/urok-33- pryamoj-dostup-k-pamyati- v-stm32-kontroller-dma.html)
Популярные записи
Уроки STM32 (http://mypractic.ru/urokistm32)
Уроки программирования Ардуино. (http://mypractic.ru /uroki-programmirovaniya-

(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_5.png)
При этом недостатки, связанные с логической топологией ”общая шина” усугубляются за счет
увеличения количества сетевых устройств.
Гораздо больше возможностей имеет сеть, созданная на базе коммутаторов (switch).
(http://mypractic.ru
/wp-content/uploads/2018/03/Lesson63_6.png)
Топология сети выглядит, так же, как и сеть, созданная с помощью хабов. Но в отличие от
последней, топология сети остается радиальной не только на физическом, но и на
логическом уровне.
Коммутатор это прибор для соединения нескольких устройств сети в пределах одного или нескольких сегментов.
(http://mypractic.ru/wp-content
/uploads/2018/03/Lesson63_2.png)
Подобно хабу коммутатор имеет несколько портов ввода/вывода. Но в отличие от хаба коммутатор передает пакеты данных не всем подключенным к нему устройствам, а только непосредственно получателю. Благодаря этому увеличивается производительность сети, повышается надежность.
Хаб - это “тупой” аппаратный повторитель сигналов.
arduino-navigaciya-po- urokam)
DS18B20 – датчик температуры с интерфейсом 1-Wire. Описание на русском языке. (http://mypractic.ru /ds18b20-datchik- temperatury-s-interfejsom- 1-wire-opisanie-na-russkom- yazyke.html)
Урок 2. Плата
STM32F103C8T6. Загрузка программы во FLASHпамять микроконтроллера через системный бутлоадер. (http://mypractic.ru/urok- 2-plata-stm32f103c8t6- zagruzka-programmy-vo- flash-pamyat- mikrokontrollera-cherez- sistemnyj-butloader.html)
Урок 23. Работа с UART через библиотеку HAL с использованием прерываний. (http://mypractic.ru/urok-23- rabota-s-uart-cherez- biblioteku-hal- s-ispolzovaniem- preryvanij.html)
Архивы
2021 (18) (http://mypractic.ru /2021)
2020 (11) (http://mypractic.ru /2020)
2019 (30) (http://mypractic.ru /2019)
2018 (17) (http://mypractic.ru /2018)
2017 (22) (http://mypractic.ru /2017)
2016 (77) (http://mypractic.ru /2016)
2015 (7) (http://mypractic.ru /2015)

Коммутатор – интеллектуальное устройство, которое анализирует заголовки пакетов и передает данные только на нужные порты.
Обычно сетевой коммутатор поддерживает различные скорости передачи данных одновременно.
К портам коммутаторов могут быть подключены другие коммутаторы или хабы. Это позволяет почти бесконечно расширять сеть.
|
|
|
|
|
|
|
|
|
(http://mypractic.ru |
|
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_7.png) |
/goto/ArduinoSys.php) |
|||||||
|
|
|
|
|
|
|
|
|
|
Роутер или маршрутизатор – это сетевой шлюз, устройство для передачи пакетов между |
|
||||||||
различными сетями. Как правило, используется для подключения к глобальной сети |
|
||||||||
Интернет. |
|
(http://mypractic.ru
/goto/fn1.php)
(//freekassa.ru/)
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_9.png)
Большинство роутеров также выполняют функции сетевых коммутаторов. В этом случае можно обойтись без сетевого коммутатора.
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_10.png)
Среда передачи данных Ethernet (кабель).

В качестве среды передачи нужные нам стандарты требуют применения кабеля категории 3 или категории 5. Используются только две неэкранированные витые пары (4 провода).
(http://mypractic.ru
/wp-content/uploads/2018/03/Lesson63_11.png)
Одна витая пара предназначена для передачи данных, другая для приема.
Волновое сопротивление линий - 100 Ом.
Кабель обозначается UTP - Unshielded twisted pair (неэкранированная витая пара). Часто на нем написано ”ETHERNET LAN CABLE”.
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_12.jpg)
Стандартный кабель содержит 4 витые пары.
(http://mypractic.ru/wp-content/uploads/2018/03
/Lesson63_15.png)
Мы будем использовать только две из них.
Для подключения к портам Ethernet используются 8 контактные разъемы RJ-45.
(http://mypractic.ru/wp-content/uploads
/2018/03/Lesson63_16.png)
Есть два варианта распиновки разъемов: T568A и T568B. Часто просто называются варианты A
и B.
Распиновка T568A.
Номер контакта |
Назначение сигнала |
|
|

1 |
TX+ |
|
|
2 |
TX- |
|
|
3 |
RX+ |
|
|
6 |
RX- |
|
|
Распиновка T568B.
Номер контакта |
Назначение сигнала |
|
|
1 |
RX+ |
|
|
2 |
RX- |
|
|
3 |
TX+ |
|
|
6 |
TX- |
|
|
На сетевой карте компьютера и Ethernet модуле Ардуино применяется вариант A.
Порты ввода/вывода коммутатора или роутера используют вариант B.
Понятно, что выходные сигналы одного устройства должны подключаться к входам другого, и наоборот. Поэтому существует 2 варианта кабелей: прямой и перекрестный. Прямой используется для соединения между устройствами с разъемами типов A и B, а перекрестный
– для соединения портов с одинаковой распиновкой.
Для нас это означает:
если мы будем подключать плату Ардуино к материнской плате компьютера или другой плате Ардуино, то необходимо использовать перекрестный кабель;
если плата Ардуино подключается к коммутатору или роутеру – кабель должен быть прямым.
Прямой кабель предполагает, что соединяются контакты с одинаковыми номерами. Соответствие сигналов вход – выходу обеспечивается распиновкой разъемов сетевых портов.
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_17.png)
(http://mypractic.ru/wp-content

/uploads/2018/03/Lesson63_20.png)
В перекрестном кабеле провода соединяются таким образом, чтобы у связанных кабелем портов входные сигналы были подключены к выходам, а выходные к входам.
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_18.png)
(http://mypractic.ru/wp-content
/uploads/2018/03/Lesson63_19.png)
На рисунках показаны общепринятые цвета жил кабеля. Лучше их придерживаться.
Максимальная длина сегмента кабеля – 100 м.
В сетевом интерфейсе Ethernet существует полная гальваническая развязка каждого
устройства от среды передачи (кабеля). Развязка осуществляется за счет применения
импульсных трансформаторов.
(http://mypractic.ru/wp-content/uploads/2018/03
/Lesson63_21.png)
Это значительно повышает помехозащищенность сети и обеспечивает электрическую безопасность сетевых устройств.
Модуль ENC28J60.
Платы Ардуино будем подключать к сети Ethernet с помощью модуля ENC28J60. Физически он представляет собой плату размерами 51 x 18 мм.

(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_29.png)
Это самый дешевый сетевой Ethernet контроллер. По моей партнерской ссылке (http://mypractic.ru/goto/ArduinoSys.php) на момент написания статья его цена составляет всего 250 руб.
Моя цель не сделать обзор возможностей и технических характеристик модуля. Возможно, я напишу отдельную статью о нем в рубрике ”Электронные компоненты”. А сейчас я приведу информацию необходимую для работы модуля совместно с платами Ардуино.
Модуль выполнен на базе микросхемы ENC28J60 фирмы Microchip. Практически это микросхема ENC28J60 в стандартном включении.
Техническую информацию фирмы-производителя можно посмотреть по этой ссылке
ENC28J60.pdf (http://mypractic.ru/downloads/pdf/ENC28J60.pdf).
Вот принципиальная схема модуля.
(http://mypractic.ru/wp-content/uploads/2018/03/Lesson63_25.png)
Основные характеристики модуля ENC28J60.
Совместимость с Ethernet сетями 10/100/1000 Base-T. Скорость передачи данных 10 мбит/сек, реализация TCP/IP стека.
Интерфейс связи с микроконтроллером – SPI, частота до 20 мГц.
Напряжение питания 3,1 – 3,6 В. Типовое 3,3 В.
Интерфейсные входы модуля позволяют непосредственное подключение к сигналам с 5 вольтовыми уровнями. Максимально-допустимое напряжение на входах интерфейса SPI - 6 В. В половине статей о подключении ENC28J60 к Ардуино написано, что необходимо подключать входные сигналы через согласующие резисторные делители. Это не так. Сомневающееся могут посмотреть документацию на микросхему ENC28J60 (http://mypractic.ru/downloads/pdf/ENC28J60.pdf).
Ток потребления от источника питания 3,3 В:
в момент передачи может достигать 180 мА;
в активном состоянии, но без передачи 120 мА;
в режиме ожидания (сигнал CS в неактивном уровне) не более 2 мА.
В модуле обеспечивается гальваническая развязка от линии связи.
Это характеристики, которые я решил выделить. Главное:
для питания модуля необходимо использовать источник напряжением 3,3 В и выходным током до 180 мА;

выводы интерфейса модуля допускается подключать к 5 вольтовым сигналам.
Интерфейс связи с микроконтроллером.
К микроконтроллеру модуль подключается через 10 контактный разъем типа PLHD, расположенный на печатной плате устройства.
(http://mypractic.ru/wp-content/uploads/2018/03
/Lesson63_26.jpg)
Назначение контактов (распиновка) модуля 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 (http://mypractic.ru /downloads/pdf/XC6206.pdf). На плате это корпус SOT-23 с обозначением 662K. Допустимый выходной ток для этого стабилизатора 200 мА (технические характеристики можно посмотреть по ссылке XC6206.pdf (http://mypractic.ru/downloads/pdf/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 |
|
|
|
Кому-то удобнее будет работать со схемой.
(http://mypractic.ru/wp-content/uploads
/2018/03/Lesson63_27.png)
У меня все это выглядит так.
(http://mypractic.ru/wp-content
/uploads/2018/03/Lesson63_28.jpg)
К роутеру я подключил модуль прямым кабелем.
В следующем уроке изучим библиотеку для управления модулем ENC28J60, научимся писать программы для передачи данных через сеть Ethernet.
|
Предыдущий урок (http://mypractic.ru/urok-62-texnologiya-klient-server.html) |
Список уроков |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(http://mypractic.ru/uroki-programmirovaniya-arduino-navigaciya-po-urokam) |
Следующий урок |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(http://mypractic.ru/urok-64-tcp-server-i-klient-na-arduino-biblioteka-uipethernet.html)