[К началу] | [Библиотека Ethernet]
Плата-дополнение (по-английски shield, далее шилд) Arduino Ethernet Shield позволяет подключить контроллер Arduino Uno или Arduino Mega (далее просто Arduino) к сети Ethernet. Этот шилд, как и любой другой, к Arduino подключается через два ряда штырьковых соединений, а также разъём ICSP / SPI. К сети шилд подключается через традиционный разъём RJ-45 (8P8C). Питание шилда составляет 5V и подаётся с Arduino. В основе шилда лежит сетевой контроллер WIZnet W5100, предоставляющий аппаратную реализацию протоколов IP, TCP и UDP. Декларируемая скорость передачи данных по сети 10/100 Mbit/s. Поддерживается до четырёх одновременных подключений (сокетов). Для разработки сетевых приложений предназначена библиотека Ethernet. На шилде также расположен слот для карт памяти MicroSD. Для работы с этим слотом используется библиотека SD. Коммуникация с SD-картой и сетью не может быть одновременной, для выбора чипа MicroSD используется линия SS (вывод 4). На шилде есть также кнопка сброса чипа WIZnet W5100, она же сбрасывает и Arduino. Шилд может использовать технологию Power over Ethernet, но её поддержку Вы должны осуществить самостоятельно, посредством установки соответствующего модуля.
![Arduino Ethernet Shield -- Общий вид "три четверти"](/images/DSC06931-320x240.JPG "Arduino Ethernet Shield -- Общий вид "три четверти"")
Коммуникация Arduino с Ethernet Shield осуществляется через четырёх проводную шину SPI, соответственно, на Uno это выводы 10, 11, 12 и 13, а на Mega -- 50, 51, 52. Обе платы для выбора чипа WIZnet W5100 используют вывод 10, а для выбора MicroSD -- вывод 4. Все эти выводы не могут использоваться для чего-то ещё. Кроме того, на Mega для выбора чипов не используется аппаратный вывод SS (53), но для сохранения работоспособности SPI требуется держать его выходным.
![Arduino Uno R3 -- Общий вид "три четверти"](/images/DSC06958-320x240.JPG "Arduino Uno R3 -- Общий вид "три четверти"")
Как уже было сказано, нельзя одновременно работать с чипом WIZnet W5100 и MicroSD, так как используется разделяемая шина SPI. Если в своей программе Вы работаете с ними обоими, то об этом должны позаботиться соответствующие библиотеки. Но если какой-то из них Вы не используете, то его нужно отключить. Для отключения MicroSD установите линию 4 выходной и задайте ей высокий уровень. Соответственно, для отключения WIZnet W5100 проделайте тоже самое для линии 10.
На шилде есть информационные LED-индикаторы:
-
PWR: питание подаётся (как на шилд, так и на Arduino);
-
LINK: сеть есть, мигает при приёме-передаче данных;
-
FULLD: полнодуплексное подключение;
-
100M: сеть 100 Mbit/s;
-
RX: мигает при получении данных из сети;
-
TX: мигает при посылке данных в сеть;
-
COLL: мигает, если обнаружена коллизия сети;
-
L: дублирует соответствующий индикатор Arduino.
Также на шилде есть два джампера: INT и WP. Первый позволяет включить передачу на Arduino прерываний от WIZnet W5100 по линии 2. Но библиотека Ethernet не поддерживает прерывания. Что касается WP, то расшифровывается как Write Protect, больше ничего об этом сказать не могу.
Для работы шилда в сети ему необходимо назначить MAC- и IP-адреса. Некоторые шилды идут с наклейкой, на которой указан его MAC-адрес. В любом случае скетч должен вызвать метод Ethernet.begin() для задания этих адресов. Соответствующим образом должен быть настроен и сетевой роутер, если он используется в Вашей сети.
В следующих главах будут рассмотрены вопросы разработки сетевых приложений для Arduino с использованием Ethernet Shield, а также организация хранения данных на MicroSD-карте.
Больше изображений в полном разрешении доступны в Приложении A, Приложении B и Приложении C.
На форуме Arduino обсуждался вопрос о совместимости Ethernet Shield с Arduino Due. Общий вывод из обсуждений такой, что совместимость есть, однако возможны отличия по работе с шилд в Due от Uno и Mega. Несмотря на то, что у автора есть в наличии контроллер Due, но здесь будет обсуждаться только работа с Uno.
-
Arduino: https://www.arduino.cc/
-
Arduino.Org: http://www.arduino.org/
-
Arduino SRL: http://arduinosrl.it
-
Arduino Uno: https://www.arduino.cc/en/Main/ArduinoBoardUno
-
Arduino Mega 2560: https://www.arduino.cc/en/Main/ArduinoBoardMega2560
-
Arduino Ethernet Shield: https://www.arduino.cc/en/Main/ArduinoEthernetShield
-
WIZnet W5100: http://www.wiznet.co.kr/product-item/w5100/
-
Библиотека Ethernet: https://www.arduino.cc/en/Reference/Ethernet
-
Arduino GitHub: https://github.com/arduino
-
Arduino.Org GitHub: https://github.com/arduino-org
[К началу] | [Библиотека Ethernet]
(c) 2015, Симоненко Евгений А. [email protected]