Wiznet W5100 против микрочипа ENCx24J600

8

Каковы плюсы и минусы использования Wiznet W5100 или Microchip EncX24J600?

Это немного сложно объяснить.

Мой вопрос касается производительности стека Microchip TCP по сравнению с ядром Wiznet TCP / IP на чипе. Также о расходах ($$).

Например: с Wiznet, микроконтроллер будет иметь меньше обработки, тем самым освобождая микроконтроллер для выполнения других задач. Но я думаю, что это будет зависеть от того, на каком слое вы работаете.

Возможно, с помощью стека Microchip TCP у меня есть ограничения на периферийные устройства, которыми я могу управлять. Возможно, мне придется использовать второй микроконтроллер.

Итак, я надеюсь, что я объяснил вам лучше, чтобы вы помогли мне сделать лучший выбор.

Даниэль Грилло
источник
Я готовился к поиску решений, чтобы сделать что-то подобное. Спасибо за вопрос.
Кортук
1
Какие-то особые причины для ENCX24J600? ENC28J60 гораздо популярнее.
Кевин Вермеер
1
@reemrevnivek Мне нужно общаться на скорости 100 Мбит / с.
Даниэль Грилло
1
W5100 связан с однонаправленной высокоскоростной линией связи с очень неэффективным протоколом (он отправляет 16-битный адрес с каждым байтом данных iirc). Таким образом, вы получили (SPI link) / 3 как эффективную полудуплексную максимальную скорость. Смотрите также мой полный ответ ниже
Марко ван де

Ответы:

3

W5100 имеет ядро ​​TCP / IP на чипе. При использовании устройств Microchip ENC пользователь должен сам реализовать стек TCP / IP на MCU, который связан с ним. Это довольно легко с подходящей PIC, так как бесплатные микросхемы TCP / IP доступны от Microchip.

Преимущество W5100 заключается в том, что его можно использовать практически с любым MCU, но для запуска стека TCP / IP, если используется чип ENC, требуется довольно мощное устройство.

Конечно, другой вариант - использовать MCU со встроенным MAC и PHY. Микрочип делает несколько хороших, и есть варианты ARM с ними также.

Леон Хеллер
источник
Это степень моих знаний.
Кортук
2

Компания, в которой я работаю, использует PIC18F97J60. Это 8-битный микропроцессор со встроенным MAC и PHY, который очень похож на ENC24J60. Если вы планируете использовать микропроцессор PIC, вы можете использовать стек Microchip TCP / IP. Этот стек обеспечивает все вплоть до прикладного уровня. Если вы используете процессор без микрочипа, я думаю, что вы можете использовать только драйверы ENC24J60. Тем не менее, похоже, что Wiznet интегрирует транспортные уровни в аппаратное обеспечение, а не только в MAC и PHY. Однако они оставляют за разработчиком возможность реализовывать прикладные уровни, такие как Telnet, FTP и HTTP.

mjh2007
источник
Стоит отметить, что PIC18F97J60 гарантированно гарантированно только для 100 циклов флэш-записи, поэтому может возникнуть проблема для разработки. ww1.microchip.com/downloads/en/DeviceDoc/39762e.pdf (стр. 429)
Тоби Джаффи,
Минимальное количество циклов записи - 100. Типичное значение - 1 КБ. У меня никогда не было проблем.
mjh2007
Эта цифра, вероятно, будет находиться во всем временном диапазоне, поэтому вряд ли проблема будет выдерживать нормальные температуры.
mikeselectricstuff
1

Я знаю, что он старый, но в прошлом году я сделал это с пряностями, поэтому подведу итоги для пользы других людей.

Во-первых, я бы не стал использовать W5100, но его брата W5500 , который в основном является ревизией и использует SPI намного лучше. Я также хотел бы рассмотреть возможность переключения на часть с DMA, особенно если вы хотите сделать это только UDP.

В обоих случаях вы, вероятно, будете использовать стек TCP / IP Microchip MLA, Wiznet предлагает патчи для этого.

К сожалению, все варианты стека Microchip TCP / IP, по-видимому, блокируют связь через SPI (без DMA, без расширенного режима буфера) . Я попытался сократить его только до UDP и обрезать всю часть микрочипа (используя непосредственно драйвер wiznet и переписывая его в процессе).

Я также согласен с MJH в том, что PIC18F97J60 с поддержкой DMA является лучшим выбором, чем более дешевый PIC с ENC (если только у вас не очень высокие цифры), но я был несколько разочарован тем, что TCP / IP не использует преимущества J60, придерживаясь этого. до наименьшего общего знаменателя.

Преимущество использования IP-части вместо Ethernet-части состоит в том, что вы можете ограничить сокет определенным портом, и вам не придется передавать какой-либо несвязанный трафик по каналу SPI. W5500 имеет 4 КБ на сокет, и я использую отдельные сокеты для приема и отправки, чтобы максимизировать использование буфера.

Мой текущий стек UDP реагирует только на прерывание wiznet и не загружает данные полезной нагрузки, в которых он не нуждается. Я использую это UDP, хотя на основе пакетов (без потоков), и использую широковещательные сообщения на портах для отправки (чтобы избежать необходимости кэшировать данные MAC для целей ARP, хотя в ретроспективе это, возможно, не лучшая оптимизация).

На 60MIPS dspice двусторонняя передача (получение небольшого пакета, ответ небольшим пакетом) занимает около 100-120us, из которых около 10-12us - это время процессора в трех разных блоках (pre-receive (3-5us), post-receive и presend (В зависимости от нас 5-7) и после отправки (2us). После каждых 2 килобайт я должен выполнить какое-то обслуживание, которое составляет около 40us времени стены и 5us времени процессора.

Короткие команды выполняются с использованием расширенного буфера. Более длительное время выполняется с использованием DMA (в dspice DMA требуется 2 бита времени между байтами (или словами в 16-битном режиме), расширенный буфер - нет).

Набор (пока) не открыт, но если sb нужны указатели, пожалуйста, ответьте в комментариях. Я планирую портировать стек на pic32 (мк) в следующем году.

Марко ван де Воорт
источник