Какой хороший микроконтроллер для приложений Ethernet? Или мне просто нужна хорошая библиотека Ethernet для подключения к Ethernet MAC/PHY?
Микросхемы PIC18 со встроенным Ethernet отлично подходят для этого, просто добавьте magjack (или другой разъем со встроенными магнитами) и загрузите их стек TCP/IP. Вы будете пинговать вещи в кратчайшие сроки. Для большего удобства PIC24 и PIC32 также имеют стеки TCP/IP, предназначенные для работы с одной из предлагаемых ими частей SPI Ethernet MAC/PHY (ENC624J600 или ENC628J60).
ST также недавно расширила свою линейку STM32 на базе ARM Cortex, включив в нее встроенный Ethernet, но вам понадобится внешний PHY и магниты. Это вариант, если вы уже смотрите на PIC32.
Что касается стека TCP/IP, вам следует обратить внимание на три проекта:
Contiki — это высокопортативная многозадачная операционная система с открытым исходным кодом для сетевых встраиваемых систем с эффективным использованием памяти и сетей беспроводных датчиков. Contiki использовался в различных проектах, таких как мониторинг пожаров в автодорожных туннелях, обнаружение вторжений, мониторинг воды в Балтийском море и в сетях наблюдения.
Contiki предназначен для микроконтроллеров с небольшим объемом памяти. Типичная конфигурация Contiki — это 2 килобайта ОЗУ и 40 килобайт ПЗУ.
Стек uIP TCP/IP с открытым исходным кодом обеспечивает подключение TCP/IP к крошечным встроенным 8-разрядным микроконтроллерам с сохранением функциональной совместимости и соответствия стандартам RFC.
Гораздо быстрее, чем 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 .
ARM — это современные микроконтроллеры, и NXP предлагает их в широком ассортименте. На этой веб-странице перечислено буквально слишком много контроллеров Ethernet, чтобы упомянуть все здесь, на эту дату (13 июля 2011 г.):
17 устройств ARM7
2 устройства ARM9
16 устройств Cortex-M3
edit
Я перенес обсуждение преимуществ ARM в этот ответ .
Комплект XMOS XC-2 — интересный способ сделать это. Все делается программно, кроме PHY. Программное обеспечение должно работать на чипе XS1-L1 за 7,50 долларов.
У 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 для хорошего решения.
Есть много проектов, использующих ENC28J60 и ATMEL Cips. Большинство из них хорошо документированы и используют C или BASCOM. Вы также можете купить полные комплекты для начала. Я сам владею таким комплектом и многое узнал о программировании на форумах.
Nanode имеет открытый исходный код и поставляется всего за 22 фунта стерлингов / 40 долларов США. Я только что купил два для домашнего мониторинга энергии / окружающей среды через pachube.
30-секундная подача с сайта:
Nanode — это плата с открытым исходным кодом, похожая на Arduino, со встроенным подключением к Интернету. Он подключается к целому ряду беспроводных, проводных и сетевых интерфейсов. Это позволяет вам разрабатывать датчики и системы управления на основе веб-интерфейса, предоставляя вам веб-доступ к шести линиям аналоговых датчиков и шести линиям цифровых входов/выходов. Это простой набор для самостоятельной сборки. Nanode был разработан с учетом хакерских атак.
Я попробовал стек микрочипов, используя карту разработки picdem.net 2, и я совсем не был удовлетворен, он не оптимизирован и плохо документирован.
Я думаю, что лучшим решением на рынке сейчас является Wiznet, который имеет первый аппаратный чип TCP/IP на основе Ethernet, который экономит много времени и повышает эффективность.
Эта ссылка дает все доступные решения и сравнивает их:
Я опаздываю на вечеринку, но рекомендую 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. Это имеет много преимуществ:
Как я уже сказал, это не для всех, но для некоторых проектов может подойти.
Есть несколько вариантов с точки зрения точной доски, используемой вокруг:
Вы можете использовать практически любой MCU со встроенным контроллером MAC + PHY Wiznet W5500 , он управляется SPI. Преимущества: встроенный сетевой стек, буферы Tx/Rx, минимальное количество выводов MCU, упрощенное программирование.
Я только что нашел еще один интересный вариант - AX88796C от ASIX, он также имеет MAC + PHY , 10\100 Мбит Ethernet и вариант интерфейса SPI до 40 МГц, поэтому выглядит хорошо подходящим для любого MCU на базе ARM.
ОБНОВЛЕНИЕ: Netduino 3 уже использует этот чип, вот интересные подробности:
Если у вас есть опыт прошивки, я бы порекомендовал плату 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, и до сих пор он был надежным.
thom_nic
Роберт Демл
thom_nic