Похоже, что Etherent и TCP/IP — все ещё самый распространенных способ связи самых разных устройств. Хотя WiFi в последнее время потихоньку вытесняет проводной «медный» Etherent, тем не менее, найти порт и «воткнуться в локалку» — до сих пор самый простой способ подключения. Такая доступность Ethernet не обошла стороной и самые маленькие железки: контроллеры, датчики, счетчики потребления и т.д. которые нынче называются модным маркетинговым словом «Интернет вещей*» (Internet Of Things, IoT).
И тут нам могут здорово помочь корейские микросхемки от WIZnet. Компания WIZnet — это довольно активный производитель чипов класса IOcP (Internet Offload co-Processor). Что это? Говоря человеческим языком — это такой чип, который: с одной стороны имеет Etherent, внутри содержит собственный крошечный процессор для обработки TCP/IP, а с другой стороны — простой интерфейс для связи с нашей маленькой железкой.
В первой части будет небольшой теоретический обзор подключения «маленьких железок» и куча ссылок на разные чипы.
Но сразу возникает вопрос: ЗАЧЕМ вводить в систему еще один процессор, если всё можно обработать на основном? Давайте попробуем ответить.
Давайте попробуем уйти «вниз» по шкале стоимости (до единиц долларов и даже ниже) и рассмотрим различные способы включения «мелочи» в сеть.
Самый-самый простой способ «выхода в сеть» для микроконтроллеров — это разного рода преобразователи COMпорт-в-Telnet, Serial2Ethernet иногда называемые еще Реверсивный Telnet. В этом случае преобразователь «ловит» telnet сессию и «загоняет» ее в обычный COM-порт микроконтроллера. Далее оператор попадает в обычный диалог, только по сети. Ну что тут сказать? Во первых, там тоже стоит отдельный микроконтроллер и устройства получаются совсем не дешевые (Статьи про самодельный модуль и про модуль Tibbo). Для простенькой задачи «поменять/прочитать один параметр» этого может и вполне хватит. Минусов тоже много — единственная сессия, фиксированный протокол — трудно, например, прикрутить SSL если его нет, сложности конфигурирования самого преобразователя, например сменить ему IP адрес или порт и т. д.
Другой вариант — это микроконтроллеры с настоящим Etherent на борту, но они как правило, имеют только MAC уровень и требуют внешнего чипа PHY (KS8721BL, DM9161A, RTL8201). Соединение с таким чипом, MII или RMII как минимум требует внешних пинов. Для соединения PHY с LAN требуется еще впаять трансформатор или MagJack. Таким образом, по «числу компонентов» выигрыша тут не получается. Удивительно, но внешние Etherent PHY — довольно дорогие чипы, несколько долларов за корпус. Но примерно столько же стоит весь чип от WIZnet целиком, кремний-то в массовом производстве стоит копейки. Да, трансформатор для WIZnet тоже потребуется, но значительного выигрыша от встроенного MAC-контроллера по цене не получится. Второе: программная поддержка MAC/PHY довольно сложна и объёмна. Например, для STM32Fxx7 исходные коды Ethernet драйвера занимают примерно 100К текста на C. (статья про PIC-и с Ether). Кроме драйвера Etherent нужен еще
Но если ли преимущества «полного» программного IP-стека на микроконтроллере? Конечно есть. Рассмотрим их потом, а пока продолжим.
Третий вариант — это глубоко любимый «эмбеддерщиками» чип SPI Ethernet контроллера Microchip ENC28J60 (и чуть менее известный Silabs CP2200). Обратите внимание, это именно настоящие контроллеры
Ethernet, а не TCP/IP сопроцессоры. Все что умеет чип — принимать и получать Etherent фреймы. То есть, стек TCP/IP все равно придется делать самим. Да, стеков есть несколько готовых, от замечательных небольших до классических LwIP и uIP.Но все же, такое решение скорее напрямую конкурирует со встроенным MAC контроллером, да и цена на чип — те же несколько долларов и около 5..7$ за готовый модуль (плата с чипом, трансформатором и гнездом RJ45) на ebay/aliexpress. Так что вернемся к продуктам фирмы WIZnet.
Первое устройство W3100 было выпущено довольно давно, в 2001 году. Это был полноценный TCP/IP IOcP (сопроцессор), который предлагал некий средний путь между COM-портом и MAC-контроллером, реализуя идею TCP/UDP «сокетов» внутри чипа. Физически же W3100 был не очень удобный двухчиповый набор MAС/PHY и настоящая популярность в среде «ардуинщиков» (AVR) и «пиководов» пришла к устройству W5100. Достаточно сказать, что «официальный» Arduino Ethernet Shield собран именно на W5100.
С тех пор прошло немало времени и стали заметны недостатки W5100: чип довольно сильно греется, скорость сети всего 10Mbit/s, чип имеет несколько (документированных в Errata) глюков, корпус довольно большой из за наличия параллельной шины, несколько нетривиальная реализация SPI. Неудивительно, что вскоре WIZnet представила следующую модель: W5200. Этот чип научился работать на 100Mbit, засыпать и экономить электричество, лишился параллельного подключения, в нем остался чисто SPI, что резко уменьшило число ног. (Для поддержки параллельной шины у него есть «братик» W5300).
Внедрение и освоение W5200 пошло на ура! и продолжается до сих пор, выпускаются модули (начиная от «родного» WizNET WIZ820io) и кончая различными ардуиновскими шилдами, желающие могут легко их найти.
Например, чуть менее «официальный» Ethernet Shield V2.0 из проекта Seeeduino или Ethernet Shield for Arduino от Dfrobot. А тут большой список других модулей (список реально большой, мотаем вниз).И вот наконец, в октябре 2013 WIZnet анонсировала новый W5500 о котором собственно и планировалось рассказать в этой статье (извините за такое затянувшееся предисловие). Чип получил чуть более удобный
для ЛУТ-самодельщиков корпус 48LQFN, быстрый «пакетный» SPI и Cortex M0 внутри, что позволило уменьшить техпроцесс и потребляемую мощность. В целом же чип выглядит как «W5200 на стероидах». Сравнение W5200 и W5500.
Следом WizNET выпустила модуль WIZ550io (там же есть и схема), а чтобы не остаться в стороне от «ардуиномании» вскоре сама же WIZnet выпустила еще и Arduino Shield (это просто пассивный переходник с Arduino на WIZ550io).
Но давайте не будем рассматривать Arduino, это сделают и без нас (например прямо тут, на Хабре: Ethernet термометр на основе Arduino и т.д.
Кстати, в марте 2014 на Circuitcellar был объявлен конкурс Connect The Magic (до августа 2014) на разработку с использованием W5500, а WIZnet скинула цены на чипы и модули (купить). В конкурсе можно было выиграть до 15.000$. Подробности на сайте, там же есть отличная статья.
Во второй части (если я её допишу…) мы попробуем прикрутить W5500 (а точнее WIZ550io) к маленькой отладочной плате от компании Shenzhen LC Technology Co.,Ltd. и выиграть 15.000$
P.S. Автор не имеет никакого отношения к уважаемой фирме WIZnet, но постепенно список ссылок по W5500 разросся и превратился в такой вот хабрапост.
Обзор
Чип W5500 представляет собой встроенный Ethernet-контроллер с жестким подключением TCP/IP, который упрощает подключение к Интернету для встроенных систем с использованием SPI (последовательный периферийный интерфейс).
W5500 лучше всего подходит пользователям, которым требуется стабильное подключение к Интернету, поскольку использует один чип для реализации стека TCP/IP, 10/100 Ethernet MAC и PHY. Аппаратный стек TCP/IP поддерживает протоколы TCP, UDP, IPv4, ICMP, ARP, IGMP и PPPoE, …, что проверено в различных приложениях на протяжении многих лет. W5500 использует внутренний буфер объемом 32 Кбайт в качестве памяти для передачи данных.
Используя W5500, пользователи могут реализовать необходимое им Ethernet-приложение, используя простую программу для работы с сокетами, вместо того, чтобы работать со сложным контроллером Ethernet. Возможно одновременное использование 8 независимых аппаратных разъемов. SPI (последовательный периферийный интерфейс) обеспечивает простую интеграцию с внешним MCU. W5500 SPI поддерживает 80 9Скорость 0025 МГц и новый эффективный протокол SPI, поэтому пользователи могут реализовать высокоскоростную сетевую связь. Чтобы снизить энергопотребление системы, W5500 обеспечивает WOL (Wake on LAN ) и режим пониженного энергопотребления.
Особенности
Оценочная плата
Технические документы
Документ
Справочная схема
Драйверы
ioLibrary
Техническая поддержка
WIZNET ФОРУМ
Связанные ссылки
Страница WIZwiki W5500
Репозиторий WIZnet GitHub
Купить сейчас
Интернет-магазин WIZnet (США)
Интернет-магазин WIZnet (ЕС)
Интернет-магазин WIZnet (КР)
Интернет-магазин WIZnet Гонконг
Назначение контактов/блок-схема
Загрузка
Технические описания
Документ
Спецификация чипа W5500 v1. 0.6
Примечание об ограничениях
Примечание об ограничении — проблема ARP в среде NLB
Библиотеки драйверов/протоколов
ioLibrary
ioLibrary v2.0.0
Указания по применению
Примечание по применению
Примечание по применению — режим W5500 IPRAW v1.1.0
Примечание по применению
Примечание по применению — W5500 PPPoE v1. 0.1
Руководство по миграции
Руководство по миграции: с W5200 на W5500
Руководство по проектированию оборудования
Ссылка Схема
Прямая ссылка
Разъем RJ45 с трансформатором типа
Область | Телефон | Факс | Электронная почта |
---|---|---|---|
Америка | |||
США (всемирная штаб-квартира) | 1 (800) 346-6873 | 1 (817) 804-3888 | sales@mouser. com |
Мексика | +52 33 3612 7301 | +52 33 3612 7356 | мексиканские продажи@mouser.com |
Азия/Тихий океан | |||
Гонконг, Китай | +852 3756-4700 | +852 3756-4701 | Гонконг@mouser.com |
Шанхай, Китай | +86 (21) 6360-6111 | +86 (21) 6360-0189 | шанхай@mouser. com |
Сингапур | +65 6788-9233 | +65 6542-6916 | сингапур@mouser.com |
Индия | +91 80 41148091/92 | +91 80 41148093 | Индия@mouser.com |
Тайвань | +886 (02) 2799-2096 | +886 (02) 2799-2095 | Тайвань@mouser. com |
Таиланд | +66 2694 2310 | +66 2694 2276 | таиланд@mouser.com |
Европа | |||
Германия (Европейская штаб-квартира) | +49 (0) 8952 04621 10 | +49 (0) 8952 04621 20 | [email protected] |
Великобритания | +44 (0) 1494-467490 | +44 (0) 1494-467499 | uk@mouser. com |
Чешская Республика | +420 517070880 | +420 517070881 | [email protected] |
Франция | +33 5 55 85 79 96 | +33 5 55 85 79 97 | [email protected] |
Израиль | +972 9 7783020 | +972 9 7458885 | israelsales@mouser. com |
Италия | +39 02 575 065 71 | +39 02 575 164 78 | Италия@mouser.com |
Испания | +34 936455263 | +34 936455264 | испания@mouser.com |
Нидерланды | +31 402 6476 57 | +31 402 6476 58 | Нидерланды@mouser. |