Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5ый семестр / 1. Производственная практика / стащил с работы / 63 урок - Локальная сеть Ethernet, модуль ENC28J60, его подключение к плате Ардуино

.pdf
Скачиваний:
5
Добавлен:
18.07.2023
Размер:
3.68 Mб
Скачать

ОБОРУДОВАНИЕ

ТЕХНОЛОГИИ

РАЗРАБОТКИ

(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)