Как стать автором
Обновить

Комментарии 20

Когда речь заходит о Ethernet и ARM — встает вопрос, а не взять ли тот же STM32 со встроенным Ethernet? :-)
Да, в простейших случаях там будет 10 Мегабит — но для применений уровня «термометра» этого должно быть вполне достаточно при меньшей цене.
В STM не реализован phy уровень, так что +1 микросхема всё равно нужна. А если эта штука из статьи сможет как то облегчить разработку, то почему бы и не взять её?
А как оно работает? Просто по SPI передаем в этот чип что хотим передать, кому, по какому протоколу и он сам все делает? Умеет ли DHCP получать? Может ли быть сервером а не клиентом? Какие данные отдаются в микроконтроллер таком случае?
Я напишу про wiznet 5100, который использую около года.

* В моем случае SPI на ардуино мега.
* По DHCP умеет подключиться.
* Умеет быть и сервером и клиентом. Я лично не докопал как запустить одновременно и клиентом и сервером. Может 5500 будет проще. Надо пробовать.

«Код» тут найдете. Там оно как серер — пингует гугл и пишет лог/показывает % прошедших пакетов за последний час. http тоже пробовал, есть и примеры.

Но не докопал как сделать, чтобы настраивать это дело по http:// и чтобы дальше пинговало. Может кто подскажет — возможно ли впринципе на 5500…
Принципы работы планировалось пояснить во второй части, но непонятно, нужно ли пересказывать документацию, или сразу в бой…

Если кратко, то оно работает так: По SPI осуществляется доступ к «регистрам». Некоторые регистры влияют на весь чип, типа ifconfig, можно установить IP адрес и т.д. Отдельная группа регистров управляет «сокетами». Таких групп — 8 штук, т.к. чип поддерживает всего 8 сокетов (W5100 — всего 4 сокета). Каждому сокету можно делать open/close/listen. Также есть «буфера» — у каждого сокета RX и TX, обычно по 2Кб. В буферах лежат «чистые» пользовательские данные для пересылки по сокетам.

DHCP поддерживается, есть исходники с примером. Сокет номер 0 можно переключить в RAW режим и общаться с DHCP по нему.
Не уверен, как конкретно в этом чипе, но большинство девайсов такого рода — SoC на MIPS с Linux на борту.
Не такого рода этот девайс. Он похож на ENC28J60. Грубо говоря, в его регистры ты записываешь ethernet-пакет и по команде выплевываешь через RJ-45.
Чип Atheros AR9331 стоит 5 баксов и имеет 5 Ethernet интерфейсов на борту (это помимо WiFi, USB, UART и т. п.), плюс сразу 400 МГц мипс процессор. Клевая штука! :-)
Чип Atheros AR9331 — это устройство совершенно другого класса, ближе к Rasberry PI. Ему еще нужен внешний DRAM мегабайта 64 и флеша мегабайт 16 а то и 256 под Linux. Не считая трансформаторов, коннекторов и ШИМ питания. На коленках все это запаять проблематично, никто же не паяет Rasberry :). Скорее придется «дербанить» WiFi точку доступа.
Вообще, решение на AR9331 лежит где-то между малиной и микроконтроллерами. Если нужно что-то совсем сложное (рилтайм обработка видео) — приходится смотреть в сторону производительных АРМов (причем малина — не самый лучший вариант, если нужно тиражируемое решение). Если сеть не нужна — микроконтроллеры в большинстве случаев рулят. А вот если задача промежуточная (нужна сеть, но не нужна высокая производительность), то по цене/качеству Атерос рулит просто не по-детски.

Если вы хотите заюзать STM в задачах с Ethernet, то, скорее всего, без внешней DRAM и FLASH тоже не обойдетесь… В любом случае решение по цене будет сопоставимым.

А «дербанить» точку доступа не обязательно. Есть готовые платы на AR9331, а мы для себя так вообще свою разработали. Даташит валяется в открытом доступе. Софт открытый. Себестоимость решения — 12 баксов (на тираже, понятно).
Согласен, что граница тут размытая, но пост был написан исходя из идеи — уйти «вниз» по шкале цены как можно ниже (до 0.01$??), там не зря запрос на хаб «Интеренет вещей». Представим себе ВНЕЗАПНО ТЫСЯЧИ мелких контролеров везде, т.е. «ошустрение» по Лему. :) Сейчас порт Etherent на коммутаторе стоит 3..5$ и еще столько же — витая пара с прокладкой по кабель-каналу. Хотелось бы устройство загнать в эти цены.

Для STM32F4x7 с MAC Ether LwIP помещается, внешняя память не нужна. но нужен чип PHY, трансформатор и разъем.

Мелкие Linux-устройства я и сам люблю, например Carambola-2 на AR9331 — 33 евро платка без корпуса и БП, Точка доступа TP-Link/D-Link стоит уже столько же, плюс блок питания и пластиковая коробочка. С удовольствием посмотрю на ваш проект.
Дык, «тысячи контроллеров везде» — это все-таки не провода. Поэтому нас у AR9331 как раз WiFi куда больше интересует. :-)

«Внешняя память не нужна» — это если задачи совсем примитивные. Потому как сетевые заморочки выжирают всю встроенную память, а надо же еще и что-то делать по основному направлению…

Литовцам, похоже, «очень деньги нужны»(с). На тираже в 1000 шт производство одной карамболы обходится в 12-13 баксов, мы это точно знаем. :-)
У нас свои платы уже готовы (первые 20 штук), завтра должны замонтировать, к концу недели, надеюсь, будут в Москве. На хабре обязательно похвастаемся, если что.
Очень хочется чтобы разработчики 5100 переехали севернее 38 градуса северной широты.
А умеет ли WIZ550io сам по себе отвечать на пинг?
То есть на офисе ему прошить ип, потом подключить где-нибудь патч-кордом в «тупой свитч», запитать, и иногда пинговать, проверяя тем самым работоспособность свитча.

Есть еще какие-то похожие платки не дорогие для такой задачи?

Да, все W5xxxx самостоятельно отвечают на ICMP ping. После RESET-а там прописывается адрес 192.168.0.1, так что надо быстро-быстро его поменять.
Нет возможности энерго-независимо прописать ип?
Standalone — нет. Можно поставить 8-ногую AVR Tiny в SOIC корпусе. При минимальных усилиях можно еще какую-нибудь температуру снимать с DS18S20.
А умеет автономно по DHCP получить ип? Или это надо софтово обрабатывать через SPI?
Автономно — не умеет, нужна программная поддержка. Исходники есть на сайте производителя.
Пинговатся могут и упомянутые ENC28J60 и W5100. Цена ENC28J60 более радует.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.