Що таке хороший мікроконтролер для програм Ethernet?


47

Що таке хороший мікроконтролер для роботи з програмами Ethernet? Або мені просто потрібна хороша бібліотека Ethernet, щоб з'єднатися з Ethernet MAC / PHY?


Чи можете ви сказати нам, з яким рішенням ви пішли і як ви працюєте з ним?
thom_nic

1
Зараз я використовую серії PIC18F97J60 та PIC32 із ENCxxx. Це працює добре. Найбільша проблема - це лише до SSLv3.0, який Firefox та Chrome просто відмовилися. Microchip має підтримку багатьох інших протоколів, які я використовую: FTP, TFTP, SNTP, SNMP.
Роберт

Приємно чути - також варто знати обмеження SSL, але, схоже, всі "надійні" реалізації TLS взагалі є невільними. Дякую, що поділились!
thom_nic

Відповіді:


29

PIC18 з Microchip із вбудованою мережею Ethernet чудово підходять для цього, просто додайте маджак (або інший роз'єм із вбудованою магнетикою) та завантажте їхній стек TCP / IP. Ви будете пінгувати речі в найкоротші терміни. Для більшої стурбованості PIC24 і PIC32 також мають стеки TCP / IP, призначені для роботи з однією з частин SPI Ethernet MAC / PHY, які вони пропонують (ENC624J600 або ENC628J60).

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


16
У мене виникли проблеми з мережевим стеком Microchip, тому я написав свою власну і ставлю її доступною безкоштовно з вихідним кодом за адресою embedinc.com/pic/dload.htm у версії Інструменти розвитку PIC. Вам потрібно прийняти концепцію нашого середовища розробки PIC (також безкоштовно), але це все одно гарна ідея. Після встановлення шукайте файли з "net" в їх іменах у каталозі SOURCE> PIC.
Олін Латроп

20

Що стосується наявності TCP / IP стека, то слід переглянути три проекти:

  • Contiki Операційна система

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

Contiki призначений для мікроконтролерів з невеликим об'ємом пам'яті. Типова конфігурація Contiki - це 2 кілобайти оперативної пам’яті та 40 кілобайт ПЗУ.

Відкритий джерело TCP / IP стека з відкритим кодом забезпечує підключення TCP / IP до крихітних вбудованих 8-бітових мікроконтролерів, з підтримкою сумісності з сумісністю та стандартами RFC.


17

Як правило, Ethernet не вбудований в мікроконтролери. Спочатку вам потрібен роз'єм, який може перетворювати сигнали Ethernet в сигнали, зчитувані мікроконтролером (це, як правило, називається "магнітика"). Тоді вам потрібен стек TCP / IP, а потім, крім того, вам потрібні DHCP, DNS і всі інші протоколи, які ви хочете використовувати. Тому власне мікроконтролер, який ви використовуєте, не має великого значення. Якщо ви отримаєте щось дуже потужне, як ARM, на якому працює Linux, то розробка для нього була б дуже простою, майже такою ж, як написання мережевого додатка, що працює на настільному ПК під управлінням Linux. Або ви можете скористатися чимось менш потужним та дешевшим, як AVR або PIC.

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

Lantronix також пропонує кілька більш потужних модулів, які виглядають ще простішими у використанні, але вони трохи дорожчі ($ 50 - $ 100 залежно від моделі). Наприклад, дивіться їх XPort .


1
Я люблю бачити шановну посилання на термін «магнетизм», як я ніколи не чув про це.
Андрій

@Andrew Я не маю жодного технічного словника, який має його. Погугливши його, ви знайдете різні посилання. Це саме те, що я бачив. В основному сенс їх полягає в тому, щоб ізолювати свою схему від інших пристроїв, підключених до неї через Ethernet. Подібно до того, як MIDI використовує оптичну ізоляцію.
дав

Я отримую приблизно на півмільйона більше результатів для "ізолятора Ethernet", ніж "магнітики Ethernet", але я розумію, що ви маєте на увазі зараз.
Андрій

У цій публікації про Hack A Day йдеться про походження та використання терміна щодо ємнісної зв'язку .
Андрій

Я просто переглядав таблицю даних приймача Ethernet (LAN8720A від Microchip), і цей розділ по-різному називають "Mag" і "Transformer".
Дан Елліс

11

ARM - це мікроконтролери сьогодні, і NXP має широкий спектр їх. Ця веб-сторінка перераховує буквально занадто багато контролерів Ethernet, щоб згадати тут усіх станом на цю дату (2011-07-13):

17 пристроїв ARM7
2 пристрої ARM9
16 пристроїв Cortex-M3

редагувати
Я перемістив обговорення переваг ARM на цю відповідь .


які переваги дає лінія руки Я бачу багато інших відповідей, які потребують більш детальної інформації, важлива частина полягає в тому, що ви даєте причину, чому лінія більше, ніж просто посилання на лінію контролерів. Я даю вам лише цей відгук, тому що ви занадто плодоносний користувач, щоб не давати найкращих можливих відповідей!
Кортук

6
@Kortuk - О, це просто чудово! Мало того, що вони хочуть отримати багато відповідей, тепер вони мають бути найкращими! ;-)
stevenvh

6

Комплект XMOS XC-2 - цікавий спосіб зробити це. Все робиться в програмному забезпеченні, крім PHY. Програмне забезпечення має працювати на чіпі XS1-L1 7,50 долара.


чоловіче, ти мене зацікавив продуктами XMOS. Мені доведеться дуже намагатися протистояти тому, щоб забрати цей комплект для розвитку. Чи знаєте ви, чи існує RTOS для цього?
Дейв

RTOS йому не дуже потрібен через апаратні потоки. Однак, одна чи дві людини працюють над одним.
Леон Геллер

XMOS також робить версію з двома роз'ємами Ethernet. Він призначений для бітових світлодіодних знаків, але я не бачу, чому ви не могли робити інших дій. Прокат свого власного маршрутизатора! xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf

5

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

Сподіваюся, це допомагає.


4

Багато мікроконтролерів TI Luminary (ARM Cortex-M3) мають бортовий Ethernet MAC. Для цього потрібен зовнішній кристал і Ethernet PHY (роз'єм + магніт).

GCC та openOCD (мигання / налагодження JTAG) їх добре підтримують, і вони досить дешеві за кількістю.

У них також є дешеві апаратні девіки ...

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


4

Netduino plus - хороший мікроконтроллер у розмірі 60 доларів для програм Ethernet. Він також може приймати більшість щитів Arduino, якщо це потрібно.


4

Залежно від того, наскільки просто ви хочете зробити своє життя, я б рекомендував скористатися MBED та придбати плату роз'єму магістралі та Ethernet (див. Sparkfun) для підключення кабелю та роботи з кондиціонуванням сигналу. Опорна модель - mbed NXP LPC1768.

Мені вдалося отримати mbed для передачі даних на мій віддалений сервер (тобто через Інтернет) приблизно за 2 години від постійного початку.


4

Це залежить від того, що ви хочете з цим зробити. Головне, на що слід звернути увагу - це кількість оперативної пам’яті (може обмежувати розмір окремих повідомлень), а якщо ви хочете обслуговувати веб-сторінки, то об’єм пам’яті, доступний для цього. Я використовую http://www.arduino.cc/ - Arduino Duemilanova http://www.arduino.cc/ - мікроконтролер ATMega328, 2 Кбайт оперативної пам'яті. Ви можете підключити SD-карту, якщо ви хочете отримати значне місце. Захист Ethernet підтримуватиме до 4 одночасних сеансів. Не сподівайтесь, що ви зможете обслуговувати складні сторінки, але це чудово завантажується в Pachube, twitter тощо.

Для більш потужного рішення подивіться Marvell Plug


3

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


3

Касове Перевага використання для гарного рішення.


4
Використовуєте AVR-мікрофон із Microchip MAC / PHY? Що далі? Кішки та собаки, що живуть разом? :)
Роберт

У мене є одна з них - вона працює добре. Поставляється в комплекті з усіма деталями поверхневого кріплення, попередньо спаяними. Із ним входять джерела uIP та драйвер Ethernet.
Тобі Джаффі

3

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


3

Nanode є відкритим вихідним кодом і тільки £ 22 / $ 40 занурений. Я щойно купив два для моніторингу енергії та навколишнього середовища через pachube.

30 секунд крок від сайту:

Nanode - це відкрита ардуїноподібна плата з відкритим кодом, яка має вбудований веб-зв’язок. Він підключається до безлічі бездротових, дротових та мережевих інтерфейсів. Це дозволяє розробити веб-сенсорні та керуючі системи - надаючи доступ до Інтернету до шести аналогових ліній датчиків та шести цифрових ліній вводу / виводу. Це простий побудувати його сам комплект. Nanode був розроблений з урахуванням Хакерів.


3

Я спробував стек мікрочіпів, використовуючи карту розвитку picdem.net 2, і мене це зовсім не влаштовувало, воно не оптимізоване і не добре задокументоване.

Я думаю, що найкраще рішення на ринку зараз - це Wiznet, який має перший апаратний чіп на базі Ethernet TCP / IP, який економить багато часу і дає більше ефективності

Це посилання дає всі доступні рішення та порівнює їх:

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


Який чудовий огляд.
Амос

1
У мене також був поганий досвід роботи зі стеком мережі Microchip, тому я написав свій власний. Він включений до випуску Інструментів розвитку PIC за адресою [url] embedinc.com/pic/dload.htm evidence/ url ] . Він працює на PIC 18, може керувати зовнішнім ENC28J60 або внутрішнім MAC / PHY, добре коментується, легко конфігурується та був розроблений для низької площі.
Олін Латроп

3

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

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

Повнорозкрите, я фактично не розробив друковану плату навколо цього чіпа, який використовував контролер Ethernet, але я зробив плату, яка не використовувала Ethernet, і я мав хороший досвід з цим, і я створив проекти з підтримкою Ethernet, використовуючи комісія з оцінки

Ознайомтеся з контрольною дошкою / пакетами інструментів тут

ОНОВЛЕННЯ Вересень 2013

Ці частини, здається, більше не рекомендуються для нових конструкцій. Здається, явних замін немає.

ОНОВЛЕННЯ Листопад 2013 року

Зараз є TM4C129XNCZAD, який номінально є заміною для вищевказаної частини - він має бортовий MAC + PHY, хоча і не сумісний із штифтами - проте багато людей неохоче використовують його після проблем / плутанини щодо припинення / доступності LM3S на ранньому терміні життя .


2

Це може не на 100% задати це питання, але для проектів, де виробництво працює досить мало, я почав бачити, як люди вставляють заздалегідь побудовані дошки, як малиновий пі. Це має масу переваг:

  1. Ціна не надто більша, ніж один із процесорів вищого рівня з Ethernet (принаймні, для низьких обсягів), і ви пропускаєте цілу кількість проблем із дизайном / тестуванням / появою.
  2. PI малини вже перевірений CE / EMC, так що виключає цілий набір невизначеності (інакше Ethernet та швидкі годинники можуть підняти купу проблем з ЕМС). Вам ще доведеться протестувати свій кінцевий продукт, але принаймні є ціла область, яка насправді не повинна спричинити збій.
  3. Ви отримуєте набагато більше бурчання і правильний стек TCP / IP для сервера класу, якщо ви використовуєте Linux тощо.

Як я кажу, це не для всіх, але для деяких проектів це може бути добре.

Є кілька варіантів щодо точної дошки, яка використовується навколо:

  1. Малина PI
  2. Beaglebone чорний - має вбудовану спалах
  3. STM32F4DISCOVERY з платами розширення

2

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

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

ОНОВЛЕННЯ: Netduino 3 вже використовує цей чіп, ось цікаві деталі:

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


1

Якщо у вас є досвід роботи з вбудованим програмним забезпеченням, я б рекомендував плату STM32F4Discovery з платою STM32F4DIS-EXT. Нещодавно я використовував це для створення веб-сторінки конфігурації для свого пристрою, і це було досить просто. В Інтернеті доступний приклад lwIP, і якщо ви перейдете в Google "makefsdata", ви знайдете багато інформації про те, як генерувати необхідні файли для власних HTML-файлів. Повідомте мене, якщо вам потрібна додаткова інформація.


1

Мені подобається (25 EUR) Ethernet-модуль Openpicus FlyportPro для цієї мети. Просто додайте гніздо Ethernet з магнетикою та створіть свою прошивку, використовуючи їх стек TCP / IP. Вони також мають реалізацію TLS:

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

Я зробив проект, використовуючи «класичний» Ethernet Flyport, і він до цього часу був непохитним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.