как реализовать Ethernet с PIC, PIC18F97J60, PIC32MX(795F512L), ENC624J600, LAN8720A

Мой проект представляет собой плату регистратора данных, на которой должен быть установлен какой-либо PIC, чтобы обеспечить USB и Ethernet в качестве средства связи с платой. Я могу превратить эту систему в два продукта: младшую версию, которая обеспечивает скорость 10 Мбит/с (10BaseT), и более функциональную версию, которая должна обеспечивать скорость 100 Мбит/с (100BaseT) для соответствия LXI (расширение локальной сети для инструментов).

Для младшей версии я использую

PIC18F97J60

Эта часть предлагает путь наименьшего сопротивления. Я получаю все в одном чипе, включая уровень PHY. Мне просто нужно добавить магниты и использовать бесплатный стек MICROCHIP TCP/IP в прошивке, чтобы выполнить работу. Однако это обеспечивает только 10 Мбит/с (10BaseT), и продукт, основанный на этом решении, не может быть совместим с LXI.

Для более популярной версии я хочу использовать подходящего члена из

PIC32MX

С PIC32MX я мог бы использовать один из следующих PHY:

  1. LAN8720A/LAN8720Ai
  2. ЭНК424ДЖ600/624ДЖ600
  3. LAN9220, LAN9221 или аналогичный

В нескольких словах, каковы основные различия и варианты использования между этими PHY?

Есть ли член семейства PIC32MX, эквивалентный PIC18F97J60, предлагающий MAC и PHY, интегрированные в один чип?

спасибо за помощь

С уважением

Как правило, проще использовать одноплатный компьютер с полной ОС (например, Raspberry Pi, Beagle Bone), чем обеспечить хорошую работу Ethernet на микроконтроллере. Использование урезанного, нестандартного IP-стека, как правило, немного затруднительно.
Просто получите chipKIT MAX32 и связанный с ним экран Ethernet.
Спасибо за ваши предложения, Уилл и Маженко, я буду иметь их в виду. Тем не менее, для этого проекта я должен придерживаться существующей платы, которая будет соответствующим образом модернизирована с помощью PIC18F97J60 для бюджетной версии и PIC32MX + некоторых других PHY или PIC32MX со встроенными MAC и PHY, если они существуют.

Ответы (2)

Насколько мне известно, 32-битных версий чипа PIC18F97J60 не существует. Я полагаю, что у Luminary Micro (теперь TI) был один, но я не уверен, что они все еще доступны (кажется, я где-то читал, что они перешли на EOL).

Чипы ENC424J600/624J600 обеспечивают MAC+PHY в 1 чипе и обмениваются данными через SPI или параллельный интерфейс с любым микроконтроллером. Однако вам необходимо передавать все данные кадра через этот SPI/параллельный интерфейс. Интерфейс SPI может работать только на частоте 20 МГц или около того, поэтому буфер SRAM будет переполняться при средней и высокой пропускной способности. Хорошо, что чип может общаться в сетях со скоростью 100 Мбит/с, но он не может поддерживать такую ​​скорость передачи данных. Чтобы избежать этого, вы можете запустить интерфейс через параллель (который может передавать до 80/160 Мбит/с между MCU и контроллером Ethernet), но это потребует дюжины или более соединений между чипами.

Микросхема LAN9220 очень похожа на ENC624J600, но поддерживает только параллельный интерфейс.

Я бы посоветовал изучить «чипы MII / RMII Phy», если вы можете указать один из чипов серии PIC32MX6xx или 7xx более высокого уровня (или альтернативную часть ARM). Они включают в себя контроллер MAC внутри микроконтроллера с буферами кадров, выделенными в ОЗУ вашего MCU. Вам нужен только дешевый внешний чип PHY, который в основном переводит данные MAC в совместимые сигналы Ethernet. Лучше всего то, что RMII/MII не являются эксклюзивными для Microchip. Многие микроконтроллеры ARM также поддерживают интерфейсы Ethernet RMII/MII. Самым большим преимуществом является то, что все основные перемещения данных обрабатываются аппаратным обеспечением или прямым доступом к памяти. Как только программный/сетевой стек получает запрос о новом пакете, он уже находится в ОЗУ MCU и готов к обработке. Это дает очень приличную/хорошую пропускную способность и самую низкую задержку в группе.

MII в основном представляет собой две отдельные 4-битные шины данных, работающие на частоте 25 МГц. Вы просто связываете их вместе с MCU и вперед. RMII удваивает 4-битную шину до 2-битной (меньше сигналов), но работает на частоте 50 МГц.

Лучший способ увидеть разницу — просмотреть эту диаграмму в справке Microchip TCP/IP Stack Help. Я не могу сказать, где это находится в новых версиях MAL, но в v2012-10-15 его можно найти в C:\Microchip Solutions v2012-10-15\Microchip\Help\TCPIP Stack Help.chm. В разделе «Примечания к выпуску» -> «Производительность стека» есть хорошая диаграмма. MAL можно найти здесь , включая архивы.

Вкратце, вот некоторые основные значения максимальной пропускной способности LAN UDP (кбайт/с).

PIC18F97J60 = 113

PIC32MX795F512L + ENC624J600 = 784

PIC32MX795F512L + DP83848 = 8449

DP83848 — это чип от TI, который будет действовать аналогично lan8720.

Lan9220, кажется, в чем-то эквивалентен серии encj624, поскольку это Mac + phy, но, возможно, намного быстрее.

Все серии pic32mx имеют только Mac. Не позволяйте этому отговорить вас от использования отдельного phy, так как есть логические причины для их разделения. Например, интегрированные комбинации mac+phy на PIC18 не всегда легко соответствуют стандартам выбросов FCC, часть 15.

Стек MAL от микрочипа приятно использовать с хорошей документацией, если вы уже используете PIC18F97J60, у вас, вероятно, не будет слишком много времени для обновления до любой поддерживаемой MAL конфигурации.