Что такое хороший микроконтроллер для приложений Ethernet?

Какой хороший микроконтроллер для приложений Ethernet? Или мне просто нужна хорошая библиотека Ethernet для подключения к Ethernet MAC/PHY?

Можете ли вы рассказать нам, какое решение вы выбрали, и ваш опыт с ним?
В настоящее время я использую серию PIC18F97J60 и PIC32 с ENCxxx. Это работает нормально. Самая большая проблема в том, что он имеет только SSLv3.0, который только что удалили Firefox и Chrome. Microchip поддерживает многие другие протоколы, которые я использую: FTP, TFTP, SNTP, SNMP.
Приятно слышать - также хорошо знать ограничение SSL, но похоже, что все «надежные» реализации TLS в целом несвободны. Спасибо, что поделился!

Ответы (20)

Микросхемы PIC18 со встроенным Ethernet отлично подходят для этого, просто добавьте magjack (или другой разъем со встроенными магнитами) и загрузите их стек TCP/IP. Вы будете пинговать вещи в кратчайшие сроки. Для большего удобства PIC24 и PIC32 также имеют стеки TCP/IP, предназначенные для работы с одной из предлагаемых ими частей SPI Ethernet MAC/PHY (ENC624J600 или ENC628J60).

ST также недавно расширила свою линейку STM32 на базе ARM Cortex, включив в нее встроенный Ethernet, но вам понадобится внешний PHY и магниты. Это вариант, если вы уже смотрите на PIC32.

У меня были проблемы с сетевым стеком Microchip, поэтому я написал свой собственный и сделал его доступным бесплатно с исходным кодом на сайте embedinc.com/pic/dload.htm в выпуске PIC Development Tools. Вы должны принять концепцию нашей среды разработки PIC (также бесплатной), но в любом случае это хорошая идея. После установки найдите файлы со словом «net» в имени в каталоге SOURCE > PIC.

Что касается стека TCP/IP, вам следует обратить внимание на три проекта:

Contiki — это высокопортативная многозадачная операционная система с открытым исходным кодом для сетевых встраиваемых систем с эффективным использованием памяти и сетей беспроводных датчиков. Contiki использовался в различных проектах, таких как мониторинг пожаров в автодорожных туннелях, обнаружение вторжений, мониторинг воды в Балтийском море и в сетях наблюдения.

Contiki предназначен для микроконтроллеров с небольшим объемом памяти. Типичная конфигурация Contiki — это 2 килобайта ОЗУ и 40 килобайт ПЗУ.

Стек uIP TCP/IP с открытым исходным кодом обеспечивает подключение TCP/IP к крошечным встроенным 8-разрядным микроконтроллерам с сохранением функциональной совместимости и соответствия стандартам RFC.

  • Стек lwIP TCP/IP :

    Гораздо быстрее, чем uIP, но с ним сложнее начать работу.

Обычно Ethernet не встроен в микроконтроллеры. Во-первых, вам нужен разъем, который может преобразовывать сигналы Ethernet в сигналы, считываемые микроконтроллером (обычно это называется «магнетизм»). Затем вам нужен стек TCP/IP, а затем вам нужны DHCP, DNS и любые другие протоколы, которые вы хотите использовать. Таким образом, фактический микроконтроллер, который вы используете, не имеет большого значения. Если вы получите что-то очень мощное вроде ARM с запущенным на нем Linux, то разработка для него будет очень простой, почти так же, как написать сетевое приложение, работающее на настольном ПК под управлением Linux. Или вы можете выбрать что-то менее мощное и дешевое, например, AVR или PIC.

Ethernet и TCP/IP могут быть довольно сложными, если вы хотите реализовать весь стек TCP/IP в программном обеспечении. Одним из распространенных решений является использование чего-то вроде чипа Wiznet W5100, который обрабатывает за вас всю низкоуровневую работу TCP/IP. Вы можете купить его в готовом модуле, который включает в себя разъем Ethernet и все остальное, по довольно низкой цене, около 20 долларов за модуль WIZ812MJ . Вы можете общаться с ним, используя только SPI, поэтому на вашем микроконтроллере не потребуется много контактов ввода-вывода.

Lantronix также предлагает несколько более мощных модулей, которые кажутся еще более простыми в использовании, но они немного дороже (от 50 до 100 долларов в зависимости от модели). См., например, их XPort .

Я хотел бы увидеть авторитетную ссылку на термин «магнетизм», так как я никогда о нем не слышал.
@ Эндрю Я не знаю ни одного технического словаря, в котором он есть. Погуглив, вы найдете различные ссылки. Это только то, что я видел, что это упоминалось. В основном их цель состоит в том, чтобы изолировать вашу схему от других устройств, подключенных к ней через Ethernet. Подобно тому, как MIDI использует оптическую изоляцию.
Я получаю на полмиллиона больше результатов для «изолятора Ethernet», чем для «магнетизма Ethernet», но теперь я понимаю, что вы имеете в виду.
В этом посте Hack A Day о емкостной связи обсуждается происхождение и использование термина .
Я только что просмотрел техническое описание приемопередатчика Ethernet (LAN8720A от Microchip), и этот раздел по-разному называется «Mag» и «Transformer».

ARM — это современные микроконтроллеры, и NXP предлагает их в широком ассортименте. На этой веб-странице перечислено буквально слишком много контроллеров Ethernet, чтобы упомянуть все здесь, на эту дату (13 июля 2011 г.):

17 устройств ARM7
2 устройства ARM9
16 устройств Cortex-M3

edit
Я перенес обсуждение преимуществ ARM в этот ответ .

какие преимущества дает линия рук. Я вижу много других ответов, которые требуют более подробной информации, важная часть заключается в том, что вы указываете причину, по которой строка больше, чем просто ссылка на строку контроллеров. Я даю вам этот отзыв только потому, что вы слишком плодовитый пользователь, чтобы не давать наилучшие возможные ответы!
@Kortuk - О, это просто здорово! Мало того, что они хотят много ответов, теперь они также должны быть лучшими! ;-)

Комплект XMOS XC-2 — интересный способ сделать это. Все делается программно, кроме PHY. Программное обеспечение должно работать на чипе XS1-L1 за 7,50 долларов.

чувак, ты меня заинтересовал продуктами XMOS. Мне придется очень сильно постараться, чтобы не взяться за этот комплект для разработки. Вы не знаете, есть ли для него ОСРВ?
На самом деле ему не нужна RTOS из-за аппаратных потоков. Тем не менее, один или два человека работают над одним.
XMOS также выпускает версию с двумя разъемами Ethernet. Он предназначен для битовых светодиодных вывесок, но я не понимаю, почему вы не можете сделать что-то другое. Сверните свой собственный маршрутизатор! xmos.com/products/development-kits/xc-3-led-tile-kit

У Microchip есть несколько микроконтроллеров Pic со встроенными возможностями Ethernet, их список здесь . У них также есть ряд страниц, посвященных проектным решениям для Ethernet и их продуктам здесь , которые также включают подробную информацию об их полном стеке TCP/IP (со встроенными MAC и PHY).

Надеюсь это поможет.

Многие микроконтроллеры TI Luminary (ARM Cortex-M3) имеют встроенный сетевой MAC-адрес. Ему нужен внешний кристалл и Ethernet PHY (разъем + магниты).

GCC и openOCD (перепрошивка/отладка JTAG) хорошо их поддерживают, и они довольно дешевы в количестве.

У них тоже есть дешевые аппаратные девкиты...

http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254

Netduino plus — хороший микроконтроллер за 60 долларов для Ethernet-приложений. Он также может принимать большинство шилдов Arduino, если это необходимо.

В зависимости от того, насколько простой вы хотите сделать свою жизнь, я бы порекомендовал использовать MBED и приобрести коммутационную плату magjack и Ethernet (см. sparkfun) для подключения кабеля и обработки сигнала. Поддерживающая модель — mbed NXP LPC1768.

Мне удалось получить mbed, отправляющий данные на мой удаленный сервер (т.е. через Интернет) примерно через 2 часа после старта.

Это зависит от того, что вы хотите с этим делать. Главное, на что следует обратить внимание, — это объем оперативной памяти (может ограничивать размер отдельных сообщений), а если вы хотите обслуживать веб-страницы, то объем доступного для этого хранилища. Я использую Arduino Duemilanova http://www.arduino.cc/ - микроконтроллер ATMega328, 2 Кбайт оперативной памяти. Вы можете подключить SD-карту, если вам нужно значительное хранилище. Экран Ethernet поддерживает до 4 одновременных сеансов. Не ожидайте, что сможете обслуживать сложные страницы, но отлично работает с загрузкой в ​​​​Pachube, Twitter и т. Д.

Для более мощного решения посмотрите на Marvell Plug .

Я бы предложил использовать ENC28J60 вместе с одним из микроконтроллеров на рис. 18, потому что микрочип предлагает стек TCP/IP для этой комбинации, и в Google должно быть много информации о реализации этого.

проверьте tuxgraphics для хорошего решения.

Использование AVR micro с Microchip MAC/PHY? Что дальше? Кошки и собаки живут вместе? :)
У меня есть один из них - работает хорошо. Поставляется в виде комплекта со всеми предварительно припаянными деталями для поверхностного монтажа. Источники uIP и драйвер Ethernet поставляются вместе с ним.

Есть много проектов, использующих ENC28J60 и ATMEL Cips. Большинство из них хорошо документированы и используют C или BASCOM. Вы также можете купить полные комплекты для начала. Я сам владею таким комплектом и многое узнал о программировании на форумах.

Nanode имеет открытый исходный код и поставляется всего за 22 фунта стерлингов / 40 долларов США. Я только что купил два для домашнего мониторинга энергии / окружающей среды через pachube.

30-секундная подача с сайта:

Nanode — это плата с открытым исходным кодом, похожая на Arduino, со встроенным подключением к Интернету. Он подключается к целому ряду беспроводных, проводных и сетевых интерфейсов. Это позволяет вам разрабатывать датчики и системы управления на основе веб-интерфейса, предоставляя вам веб-доступ к шести линиям аналоговых датчиков и шести линиям цифровых входов/выходов. Это простой набор для самостоятельной сборки. Nanode был разработан с учетом хакерских атак.

Я попробовал стек микрочипов, используя карту разработки picdem.net 2, и я совсем не был удовлетворен, он не оптимизирован и плохо документирован.

Я думаю, что лучшим решением на рынке сейчас является Wiznet, который имеет первый аппаратный чип TCP/IP на основе Ethernet, который экономит много времени и повышает эффективность.

Эта ссылка дает все доступные решения и сравнивает их:

http://retired.beyondlogic.org/etherip/ip.htm

Какой отличный обзор.
У меня также был неудачный опыт работы с сетевым стеком Microchip, поэтому я написал свой собственный. Он включен в выпуск PIC Development Tools по адресу [url] embedinc.com/pic/dload.htm[/url] . Он работает на PIC 18, может управлять внешним ENC28J60 или внутренним MAC/PHY, хорошо прокомментирован, легко настраивается и был разработан для малой занимаемой площади.

Я опаздываю на вечеринку, но рекомендую TI Stellaris EK-LM3S6965.. Это часть ARM Cortex M3 со встроенным контроллером Ethernet, включая PHY. Для прототипирования я использовал их оценочный комплект, который имеет разъем Ethernet, небольшой OLED-дисплей (отлично подходит для отладки и упрощенного пользовательского интерфейса), слот для SD-карты, динамик, кнопки, светодиоды и разъемы для проводки к периферийным устройствам микроконтроллера. Вы не описали свое приложение (т. е. хотите произвести десятки тысяч чего-то или разовый хобби-проект), но цена разумна (~ 70 долларов за плату разработчика, 12-15 долларов в небольших количествах только за чипы) , они поставляются с хорошим набором библиотек для разработки, если вы хотите сделать свою собственную прошивку, или она может работать с FreeRTOS (требуется небольшой перенос из-за незначительных аппаратных изменений между версией моей платы и материалом в дистрибутиве FreeRTOS) и eLua. Вы можете использовать либо uIP, либо lwIP для TCP/IP.

По сравнению с популярными предложениями для любителей, такими как AVR/Arduino и PIC, Cortex M3 представляет собой 32-битную часть, работающую на частоте 50 МГц, 6965 имеет множество функций ввода/вывода, IMO за такие деньги просто поразительно, сколько вычислительной мощности и как многие функции вы можете получить из чего-то такого крошечного и дешевого. Однако на стороне разработки он довольно сырой, и вы должны знать C (ну, если вы не используете eLua). По профессии я разработчик программного обеспечения и занимаюсь разработкой ARM на Mac, поэтому я не боюсь страшных/неудобных настроек цепочки инструментов и использовал Make + arm-eabi-gcc + OpenOCD для отладки, но если вы работаете с Windows возможно, пакет Code Composer Studio будет хорошей ставкой. Я использовал Code Composer IDE от TI для забавного экспериментального проекта MSP430, и меня это устраивало, и рабочий процесс был проще, чем у моей установки OSX/ARM.

Откровенно говоря, на самом деле я не разрабатывал печатную плату на основе этого чипа, использующего контроллер Ethernet, но я сделал плату, которая не использовала Ethernet, и у меня был хороший опыт работы с ней, и я создавал проекты с поддержкой Ethernet, используя оценочная комиссия.

Ознакомьтесь с оценочной платой/наборами инструментов здесь

ОБНОВЛЕНИЕ, сентябрь 2013 г.

Эти детали больше не рекомендуются для новых конструкций. Очевидных замен вроде нет.

ОБНОВЛЕНИЕ, ноябрь 2013 г.

Теперь есть TM4C129XNCZAD , который номинально является заменой вышеуказанной части - он имеет встроенный MAC + PHY, хотя и не совместим по выводам - ​​однако многие люди не хотят его использовать после проблем / путаницы по поводу прекращения / доступности LM3S .

Это может быть не на 100% то, что задает этот вопрос, но для проектов, где производственные циклы довольно малы, я начал видеть, как люди встраивают готовые платы, такие как raspberry pi. Это имеет много преимуществ:

  1. Цена не намного больше, чем у одного из высокопроизводительных процессоров с Ethernet (по крайней мере, для небольших объемов), и вы пропускаете целую кучу проблем с дизайном / тестированием / поднятием вопросов.
  2. Raspberry PI уже протестирован CE/EMC, так что это устраняет всю массу неопределенности (иначе Ethernet и быстрые часы могут вызвать кучу проблем с EMC). Вам все еще нужно протестировать конечный продукт, но, по крайней мере, есть целая область, которая действительно не должна вызывать сбоев.
  3. Вы получаете гораздо больше ворчания и правильный стек TCP / IP серверного уровня, если используете Linux и т. Д. - ни одна из этих вещей типа «разрешено только одно активное соединение»!

Как я уже сказал, это не для всех, но для некоторых проектов может подойти.

Есть несколько вариантов с точки зрения точной доски, используемой вокруг:

  1. Raspberry Pi
  2. Beaglebone black - имеет встроенную вспышку
  3. STM32F4DISCOVERY с платами расширения

Вы можете использовать практически любой MCU со встроенным контроллером MAC + PHY Wiznet W5500 , он управляется SPI. Преимущества: встроенный сетевой стек, буферы Tx/Rx, минимальное количество выводов MCU, упрощенное программирование.

Я только что нашел еще один интересный вариант - AX88796C от ASIX, он также имеет MAC + PHY , 10\100 Мбит Ethernet и вариант интерфейса SPI до 40 МГц, поэтому выглядит хорошо подходящим для любого MCU на базе ARM.

ОБНОВЛЕНИЕ: Netduino 3 уже использует этот чип, вот интересные подробности:

http://forums.netduino.com/index.php?/topic/12117-deep-dive-on-asix-ax88796c-netduino-3-ethernets-fancy-new-networking-chip/

Если у вас есть опыт прошивки, я бы порекомендовал плату STM32F4Discovery с платой STM32F4DIS-EXT. Недавно я использовал это, чтобы создать веб-страницу конфигурации для своего устройства, и это было довольно просто. В Интернете доступен пример проекта lwIP, и если вы погуглите «makefsdata», вы найдете много информации о том, как генерировать необходимые файлы для ваших собственных HTML-файлов. Напишите мне, если вам нужна дополнительная информация.

Для этой цели мне нравится Ethernet-модуль Openpicus FlyportPro (25 евро). Просто добавьте разъем Ethernet с магнитами и создайте свою прошивку, используя их стек TCP/IP. У них также есть реализация TLS:

http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html

Я сделал проект, используя «классический» Ethernet Flyport, и до сих пор он был надежным.