Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор микросхемы для Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
RinatUfa
Добрый день!

Требуется подобрать элементную базу для устройства, которое должно передавать измеренные данные
в Интернет.
Имеем опыт разработки и программирования устройств на микроконтроллерах.
В качестве микроконтроллера будет использоваться STM32F407VGT6.

Совершенно не знакомы с темой Ethernet, TCP/IP и т.п.Посоветуйте, что применить в качестве контроллера Ethernet.
Какие есть варианты, какие плюсы и минусы?

Почему в некоторых случаях используется микросхема, реализующая только физическое преобразование (PHY)
(например LAN8720), а все остальное делает сам микроконтроллер (программный стек протоколов),
а в других случаях используется полный контроллер со встроенным аппаратным стеком протоколов (например W5200 или W5500)?

Какой разъем порекомендуете для RJ45? (их тоже очень много).

Прошу прощения, если какие-то термины использую неправильно.
Заранее благодарен за любые ответы и советы.
Golikov A.
Если брать езернет на уровне ТСР, то получается так

провод идет в физику, физика идет в мак, мак идет в ТСР стэк, стэк идет в вашу программу.

физика отдельная потому что может быть провод, может быть оптика и так далее.
дальше нужен мак контроллер, потому что в Ethernet обмене в сети будет куча пакетов адресованных не только вам. Их еще на уровне мак адреса может отфильтровать МАК контроллер, так же он берет на себя вопросы арбитража и уладки коллизий. Его тоже хорошо бы иметь на железном уровне

дальше ТСР стэк - вот тут начинаются нюансы. Задачи стэка весьма обширны, алгоритмы поведения не строго детерменированы, то есть в одних случаях нужен 1 сокет подключения, а кому то надо 3. Кому то важно UDP кому то ТСР, кто-то может позволить себе оконный режим, а кто-то должен гнать риалтайм.
Потому многие предпочитают ТСР программный, который в случае чего можно подправить, добавить режимов, реакций. Вплоть до того что какие-то пакеты отбрасывать сразу без доп обработки и прочее...
С другой стороны крутить стэк тоже нужно какие-то ресурсы, и если контроллер слабенький то может не справиться. Иногда люди не хотят связывать с чужими програмными реализациями, а писать свою очень долго и не благодарно. Иногда боятся не разобраться. Иногда в процессоре нет мак контроллера, и потом просто нет выхода и приходиться ставить внешний комплект.

Проблемы внешнего стэка w5500 очевидны, любые допущенные ошибки останутся навсегда, вы их не сможете изменить. А в чипе ошибки есть. То он таблицу АРП запросов не обновляет, то не так реагирует. Потому опять же функционал тот что есть, сокетов столько сколько есть, и больше их не станет. И сокеты такие какие есть.


Так что решать вамsm.gif по мне наименьшее количество сюрпризов в системе
контроллер с мак на борту, потом физика, и программный ТСР
SM
Цитата(RinatUfa @ Oct 22 2014, 09:12) *
Почему в некоторых случаях используется микросхема, реализующая только физическое преобразование (PHY)
(например LAN8720), а все остальное делает сам микроконтроллер (программный стек протоколов),
а в других случаях используется полный контроллер со встроенным аппаратным стеком протоколов (например W5200 или W5500)?

PHY используется тогда (и только тогда), когда MAC имеется на борту у процессора. Иначе, если MAC там нет, то становишься перед выбором, поставить внешний MAC+PHY, или применить внешний чип сразу со встроенным стеком. Вот, собственно, и первый критерий выбора. Дальше выбор между MAC+PHY и чипом со стеком, как правило, обуславливается производительностью, требуемой по Ethernet (чипы со стеком не особо шустры и имеют ограниченное кол-во сокетов), а также производительностью примененного процессора (ее может не хватить на стек, и тогда прописано применение чипа со стеком однозначно).
Кстати, стек в Wiznet отнюдь не аппаратный, он тоже программный, там внутри процессор живет. Был бы аппаратный, был бы шустрее на порядок.
Lmx2315
QUOTE (RinatUfa @ Oct 22 2014, 09:12) *
Какой разъем порекомендуете для RJ45? (их тоже очень много).

..если выберете продукцию wiznet-а то у них есть все исходники и рекомендации с разъёмами, трансформаторами и схемами.
И в инете есть работающие примеры их использования, если у вас скромные запросы к ethernet-у то попробуйте их. По своему опыту скажу, что совершенно не разбираясь в сетях - на их изделии поднял TCP и UDP сокеты (использовал wiz820).

Хотя для общего развития , наверное лучше использовать связку PHY - процессор с MAC (STM32 к примеру), а стек самописный.
mantech
Цитата(Lmx2315 @ Oct 22 2014, 09:25) *
[quote name='RinatUfa' date='Oct 22 2014, 09:12' post='1286748'
Какой разъем порекомендуете для RJ45? (их тоже очень много).


Они почти все стандартные. Используем HR871113C. С трансформатором.
vladec
Посмотрите ARMы от Texas-а у них есть такие, которые имеют PHY уже на борту, так что снаружи остается подключить только трансформатор.
Valentine Loginov
Цитата(vladec @ Oct 22 2014, 09:42) *
Посмотрите ARMы от Texas-а у них есть такие, которые имеют PHY уже на борту, так что снаружи остается подключить только трансформатор.

Пару лет назад у нас в фирме такой пробовали завести. Оказались очень глючные и быстро ту модель сняли с производства. Сейчас стало лучше?

По теме всё несложно:
1) Приоритет скорость разработки - внешний визнет;
2) Приоритет цена - контроллер с маком + внешний фай + программный стек (благо их много, как и примеров);
Разъем проще всего взять из рекомендуемых в даташите. Если доступны.

Если партия маленькая - лучше первый вариант.
Сергей Борщ
Цитата(RinatUfa @ Oct 22 2014, 08:12) *
Какой разъем порекомендуете для RJ45? (их тоже очень много).
Если вопрос о разъеме со встроенным трансформатором, то смотрите, какой рекомендован к вашему PHY и ищите аналоги. Они отличаются соотношением витков в обмотках и схемами коммутации обмоток. Насколько я понял - так сделано для работы с различными схемами выходных каскадов PHY.
arhiv6
Контроллер STM32F407VGT6 имеет MAC, поэтому со стороны железа остается добавить микросхему физики (PHY), я использовал micrel, можете сами попробовать подобрать, какой чип вам подойдёт. Трансформатор и розетку (можете купить розетку со встроенным трансформатором и светодиодами) - их полным-полно. Со стороны софта потребуется TCP стек, например, я использовал LwIP - есть много примеров.
RinatUfa
Спасибо всем. Будем разбираться дальше. Если будут вопросы, будем спрашивать.
scifi
Цитата(RinatUfa @ Oct 22 2014, 09:12) *
В качестве микроконтроллера будет использоваться STM32F407VGT6.

Совершенно не знакомы с темой Ethernet, TCP/IP и т.п.Посоветуйте, что применить в качестве контроллера Ethernet.

STM32F407VGT6 вполне годится в качестве контроллера Ethernet.

Цитата(RinatUfa @ Oct 22 2014, 09:12) *
Почему в некоторых случаях используется микросхема, реализующая только физическое преобразование (PHY) (например LAN8720), а все остальное делает сам микроконтроллер (программный стек протоколов), а в других случаях используется полный контроллер со встроенным аппаратным стеком протоколов (например W5200 или W5500)?

Если на борту уже есть MAC, то достаточно добавить PHY. А если нет, то приходится ставить внешний контроллер. Контроллер со встроенным стеком хорош тем, что вам почти не придётся разбираться в новой для вас теме - почти всё уже есть внутри и гарантированно работает. Если время поджимает, то возможно, что это лучший для вас вариант.

Цитата(RinatUfa @ Oct 22 2014, 09:12) *
Какой разъем порекомендуете для RJ45? (их тоже очень много).

В наши дни почти все PHY требуют трансформаторов 1:1, и почти все RJ45 со встроенными трансформаторами именно такие. К сожалению, нет доминирующего стандарта на размеры и цоколёвку этих разъёмов, поэтому могу только посоветовать выбрать что-то с приемлемой ценой и хорошей перспективой иметь возможность покупать на обозримое будущее, потому что замену, совпадающую по размерам, скорее всего найти не удастся. Кстати, цена должна быть 1-2$.
Andy-spb
Если в общем, то PHY контроллеры еще с разными интерфейсами бывают - RMI, MII, параллельная шина, SPI, USB..
Скорости тоже разные бывают, количество трансиверов внутри и пр.
Вот тут можно пошуршать: http://www.digikey.com/product-search/en?p...amp;pageSize=25

Что касается программной поддержки, я бы посоветовал LwIP.

Еще есть микроконтроллеры со встроенным PHY, что называется - просто добавь воды (разъем с трансформатором). Но они и подороже - серия Tiva (бывшая компания Luminary Micro).
http://www.ti.com/lsds/ti/microcontrollers...x/products.page

Вобщем спектр решений ограничивается только фантазией )
scifi
Цитата(Andy-spb @ Oct 22 2014, 20:33) *
Если в общем, то PHY контроллеры еще с разными интерфейсами бывают - RMI, MII, параллельная шина, SPI, USB..

Не бывает PHY с интерфейсами SPI, USB, параллельная шина, так как это противоречит законам природы и здравому смыслу. Не надо вводить людей в заблуждение.
jcxz
Цитата(scifi @ Oct 23 2014, 02:15) *
Не бывает PHY с интерфейсами SPI, USB, параллельная шина, так как это противоречит законам природы и здравому смыслу. Не надо вводить людей в заблуждение.

Я думаю - товарищ путает интерфейс данных Phy (MII/RMII) с интерфейсом управления, который может быть MDIO (как в Micrel) или бывает I2C/SPI и возможно какие-нить другие.
SM
Цитата(jcxz @ Oct 23 2014, 06:39) *
или бывает I2C/SPI

А что это за такой PHY, где он не MDIO?
arhiv6
Совсем без MDIO не встречал. Но использовал, например, KSZ8863 - там можно вместо MDIO как раз использовать I2C или SPI.
jcxz
Цитата(arhiv6 @ Oct 23 2014, 11:06) *
Совсем без MDIO не встречал. Но использовал, например, KSZ8863 - там можно вместо MDIO как раз использовать I2C или SPI.

Мы как раз его у себя в нескольких изделиях и используем. Пинами можно выбрать один из вариантов: MDIO, I2C, SPI, конфиг из внешней EEPROM.
По I2C/SPI доступно больше функций, чем по стандартному MDIO.
Golikov A.
но MDIO все равно будет...

Думаю человек перепутал физику со сменными модулями, и внешними usb сетевыми картами...
Andy-spb
Цитата(Golikov A. @ Oct 23 2014, 10:07) *
но MDIO все равно будет...

Думаю человек перепутал физику со сменными модулями, и внешними usb сетевыми картами...



не то чтобы перепутал, просто слово PHY возможно было лишним sm.gif
а насчет USB - вот пример: http://www.microchip.com/wwwproducts/Devic...product=LAN9730
в куче отладок под разные Cortex-A8/9 такие используются.
Golikov A.
не ну это подмена понятий...
физика - это физика,
а это уже законченный продукт, по сути являющийся usb сетевой карточкой...
он в себе уже и мак контроллер включает и прочее...

физика это то что между физическими сигналами и медия независимым интерфейсом от мака... иначе все теряет смысл...
1234Alex
Не буду навязывать своего мнения, но сейчас делаю то-же + 7 дюймовый индикатор + emWin. Поставил LAN8720 + разъём HR911105A. В первый раз делал. Завелось с пол-пинка. Сам удивился.
ASN
RinatUfa
А может лучше 1986ВЕ1Т использовать и RJ 45 со встроенным трансформатором?
Golikov A.
несмотря на то что этот проц делают в моем городе, и там работают мои знакомые, мне кажется что его лучше НЕ использовать пока военные с пистолетом у головы не встанут...
iosifk
Цитата(jcxz @ Oct 23 2014, 06:39) *
Я думаю - товарищ путает интерфейс данных Phy (MII/RMII) с интерфейсом управления, который может быть MDIO (как в Micrel) или бывает I2C/SPI и возможно какие-нить другие.

Явно путает PHY с MII/RMII и контроллер с SPI или параллельной шиной.
А расклад такой в этом деле. Сумма потраченных денег будет примерно одинакова во всех вариантах реализации. Только в одном случае это более дорогой процессор + дешевый PHY, а в другом - более дорогой контроллер и менее дорогой процессор...
ASN
Golikov A.
А чем этот СнК хуже Stellaris или Freescale (MCF5223X)?
Скоро обещают ВЕ3 в "пластике" - есть кодек и многоразрядное АЦП.
Или у Вас есть какая-нибудь важная инсейдерская информация что с ним проблемы и использовать не стоит?
Golikov A.
нет, просто фирмочка малюсенькая, документация, ераты, все радости росс производства...
не вижу никаких бонусов против стм, nxp и прочего, кроме возможного военного применения, типа рос элементной базы...
а поддержка, сообщество, очень малы, с кучей проблем останетесь одни на один, и смысл?
ASN
Golikov A.
Вроде как ТС много и ненужно - всего навсего Ethernet. Да и запутаться с таким простым камнем сложно.
P.S.
У нас соседи не восторге от Stellaris, хотят использовать 1986ВЕ1Q: дешевле и удобней. И нам его рекламируют.
Поэтому и задал вопрос: вдруг чего-то не знают. Опять будут не восторге sm.gif. Кстати, не для оборонки.
Golikov A.
блин я не понимаю зачем самим себе засовывать?

берешь проц NXP он и в кейле сразу видится, и стеки к нему уже всеми кому не лень прикручены, бери да работай. А этот? не вижу я смысла в таких страданиях, только из за патриотизма что ли...
ASN
Golikov A.
Не из-за патриотизма, а от жадности sm.gif.
Им нужно чтобы один корпус, не BGA и высокая производительность.
Даже табличку показывали с расчётами, что, мол, самое дешёвое решение для таких ограничений.
Вот руководство и "загорелось".
А что программисты будут "париться" начальство мало интересует.
kolobok0
Цитата(ASN @ Oct 26 2014, 13:18) *
... самое дешёвое решение...программисты будут "париться"..


с логикой траблы. т.к. софт - одна из самых затратных вещей в таких делах.
имхо = пиар...
scifi
Цитата(kolobok0 @ Oct 27 2014, 01:27) *
с логикой траблы. т.к. софт - одна из самых затратных вещей в таких делах.

От объёма выпуска всё зависит. Там экономический расчёт совсем несложный должен быть.
AVR
Цитата(Golikov A. @ Oct 26 2014, 11:45) *
блин я не понимаю зачем самим себе засовывать?
берешь проц NXP он и в кейле сразу видится, и стеки к нему уже всеми кому не лень прикручены, бери да работай. А этот? не вижу я смысла в таких страданиях, только из за патриотизма что ли...

Прошу прощения за археологию, но работали ли Вы с 1986? Прежде чем предрекать страдания потенциальным потребителям этих МК, стоит изучить их самому. Эти самые 1986 оба прекрасно сразу в кейле видятся, документация превосходная и всё работает, не сложнее чем NXP или другими в освоении.

P.S.
Сейчас осваиваю 1986ВЕ1 - Ethernet работает, он встроенный там и MAC и PHY.
Golikov A.
поделитесь впечатлением когда освоите
gruzdev
Цитата(AVR @ Jan 26 2015, 14:58) *
Сейчас осваиваю 1986ВЕ1 - Ethernet работает, он встроенный там и MAC и PHY.

Аналогично. Вы не разбирались с работой линейного режима работы буферов ETH? Что-то у меня расходятся их примеры и то, как это работает (вернее, как это не работает) на самом деле.
AVR
Цитата(gruzdev @ Feb 17 2015, 21:56) *
Аналогично. Вы не разбирались с работой линейного режима работы буферов ETH? Что-то у меня расходятся их примеры и то, как это работает (вернее, как это не работает) на самом деле.

Если честно, я так глубоко не копал. Взял их пример для Ethernet, доделал поддержку UDP и всё работает. Вам какие скорости обмена нужны, для чего этот линейный режим?
gruzdev
Цитата(AVR @ Feb 19 2015, 01:29) *
Вам какие скорости обмена нужны, для чего этот линейный режим?

Мне важна не скорость, а стабильная работа и понимание происходящего. Линейный режим - именно тот что в их примерах (не знаю, те ли вы использовали).
Подскажите, у вас регистры ETHERNET->R_Tail и ETHERNET->X_Head изменяются в процессе работы? У меня нет. В примерах они что-то с ними высчитывают - как это вообще работает не понятно. Пришлось разбираться и писать самому.
Вот их код, например.
Код
int    SendPacket(void* buffer, int size)
{
...
    head = ETHERNET->X_Head;
    tail = ETHERNET->X_Tail;
...

uint32_t ReadPacket(_Rec_Frame* Frame)
{
...
    tail=ETHERNET->R_Tail;
    head=ETHERNET->R_Head;
...


Оправлять несколько пакетов за один раз (один сдвиг xtail) не пробовали? Нагрузить трафиком на вход не пробовали? У меня в обоих случаях перестают приходить прерывания от ETH, а во втором - мусор в буфере RX.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.