Схема подключения трансформатора ethernet
Обновлено: 20.08.2024
Разбираюсь с работой Ethernet модуля для 1986ВЕ1Т. Модуль достаточно сложный, поэтому возникло несколько вопросов. Для начала опишу ситуацию. Есть задача - сеть с количеством UDP пакетов порядка 1000 штук / секунду. Размер пакетов 202 байта. На основе фирменных примеров была написана программа, которая принимает пакеты с одного адреса и отправляет на другой. Однако программа работает нестабильно, что заключается в следующем:
1. Программа работает на скорости 100 Мб/с, но на скорости 10 Мб/с значительное число пакетов теряется (при таких же настройках, кроме скорости).
2. Ethernet на скорости 10 Мб/с часто не "поднимается".
3. Обмен пакетами через хаб намного хуже, чем напрямую с компьютером - большое количество потерь.
4. Не проходит функция автонастройки. Точнее Ethernet не запускается.
5. При работе с количеством пакетов от 1 до 100 /с (202 байта прием и передача) обмен нормальный, но при 400-600 пакетов/с уже большой процент потерь. При обмене от 1 до 100 /с (512 байта прием и передача) обмен нормальный, что вроде указывает на проблему не в объеме трафика.
6. При разделеннии приема и передачи(либо только прием, либо передача) количество принятых/переданных пакетов достигает 800 пакетов/с.
Собственно общие вопросы:
1. Кто-нибудь решал задачи, где количество пакетов достигает 1000 шт/с, насколько стабильно всё работает?
2. Кто-нибудь использовал функцию автоопределения(автонастройки)? Если да, то можете поделиться советами по её подключению/запуску?
3. Есть подозрения, что параметры(значения регистров блока Ethernet) для 10 и 100 Мб/с существенно различаются и просто указать в регистре нужную скорость обмена недостаточно. Так ли это?
Вопросы к разработчикам:
4. Как тестировался блок Ethernet в различных режимах? Есть ли исходники программ или тестов (так как в примерах очень мало режимов работы)? Как их можно получить?
5. Есть ли где-нибудь рекомендации к настройке регистров блока Ethernet? В описание просто указывается что за параметр соответсвует регистру, но не приводятся рекомендуемые значения. Или рекомендуемые - настройки по умолчанию? К сожаление с ними тоже работает нестабильно.
Код огромный поэтому пока не прикрепляю его.
Спасибо за ответы.
Как соединить 1986ВЕ1Т с 5600ВВ2У напрямую? Требуется получить два канала Ethernet и очень не хочется городить линию из двух трансформаторов на плате. Как соединить 1986ВЕ1Т с 5600ВВ2У напрямую? Требуется получить два канала Ethernet и очень не хочется городить линию из двух трансформаторов на плате. В спецификации на 5600ВВ2У есть схема подключения контроллера к линии без использования трансформатора (стр. 8 спецификации). Для подключения 1986ВЕ1 посмотрите прикрепленный файл и вместо трансформаторов подключите линию к 5600ВВ2У. Спасибо. Я в принципе, так и предполагал, но совета спросить никогда не мешает.Разбираюсь с работой Ethernet модуля для 1986ВЕ1Т. Модуль достаточно сложный, поэтому возникло несколько вопросов. Для начала опишу ситуацию. Есть задача - сеть с количеством UDP пакетов порядка 1000 штук / секунду. Размер пакетов 202 байта. На основе фирменных примеров была написана программа, которая принимает пакеты с одного адреса и отправляет на другой. Однако программа работает нестабильно, что заключается в следующем:
1. Программа работает на скорости 100 Мб/с, но на скорости 10 Мб/с значительное число пакетов теряется (при таких же настройках, кроме скорости).
2. Ethernet на скорости 10 Мб/с часто не "поднимается".
3. Обмен пакетами через хаб намного хуже, чем напрямую с компьютером - большое количество потерь.
4. Не проходит функция автонастройки. Точнее Ethernet не запускается.
5. При работе с количеством пакетов от 1 до 100 /с (202 байта прием и передача) обмен нормальный, но при 400-600 пакетов/с уже большой процент потерь. При обмене от 1 до 100 /с (512 байта прием и передача) обмен нормальный, что вроде указывает на проблему не в объеме трафика.
6. При разделеннии приема и передачи(либо только прием, либо передача) количество принятых/переданных пакетов достигает 800 пакетов/с.
Собственно общие вопросы:
1. Кто-нибудь решал задачи, где количество пакетов достигает 1000 шт/с, насколько стабильно всё работает?
2. Кто-нибудь использовал функцию автоопределения(автонастройки)? Если да, то можете поделиться советами по её подключению/запуску?
3. Есть подозрения, что параметры(значения регистров блока Ethernet) для 10 и 100 Мб/с существенно различаются и просто указать в регистре нужную скорость обмена недостаточно. Так ли это?
Вопросы к разработчикам:
4. Как тестировался блок Ethernet в различных режимах? Есть ли исходники программ или тестов (так как в примерах очень мало режимов работы)? Как их можно получить?
5. Есть ли где-нибудь рекомендации к настройке регистров блока Ethernet? В описание просто указывается что за параметр соответсвует регистру, но не приводятся рекомендуемые значения. Или рекомендуемые - настройки по умолчанию? К сожаление с ними тоже работает нестабильно.
Код огромный поэтому пока не прикрепляю его.
Спасибо за ответы.
С проблемой работы с Ethernet'ом сталкивался. Программу разрабатывал не я лично (этот человек в отпуске сейчас). Могу сказать, что в нашем случае она заключалась в регулярной потере пакетов, при их большом количестве. Использовался автоматический режим, а не FIFO. Проблему решить не удалось. В теме "Ethernet на 1986ВЕ1Т" описано чуть более подробно. Поддержка Миландра нам никак не ответила. К сожалению пока ничего сказать не можем, сами занимаемся изучением поведения Ethertnet. Из идей что может помочь и что явно уже обнаружили. Частота 25 МГц для Ethernet должна быть очень "чистой", причем если на плате стоят генераторы (не резонаторы, а именно генераторы), то работа Ethernet PHY сильно затрудняется, так как они сильно шумят по питанию, вообщем одной из проблем, которая может вызвать такого рода эффекты. А с учетом того, что в нашу демо-плату напихано все что только можно и выполнена она всего в двух слоях - с шумами там не то что бы очень плохо, но и не хорошо.В собранном устройстве установлен микроконтроллер 1986ВЕ1Т. На вход осциллятора HSE2_IN подается тактовая частота 25 МГц. В режиме КЗ контроллер адекватно принимает отправленный пакет, однако без режима КЗ получение пакетов от ПК не происходит, отправки на линии TX также не наблюдается. Код инициализации тактовых частот следующий:
RST_CLK->HS_CONTROL=0x0000000D; //HSE - On, Oscillator mode; HSE2 - On, Generator mode
while((RST_CLK->CLOCK_STATUS&0x0C)!=0x0C); //Wait until HSE and HSE2 not ready
RST_CLK->CPU_CLOCK=0x00000002; //CPU_C1 = HSE = 10
RST_CLK->PLL_CONTROL=(9<<8)|(1<<2); //PLL CPU On, PLL_MULL = 9;
while((RST_CLK->CLOCK_STATUS&0x02)!=0x02); //wait until PLL CPU not ready
RST_CLK->PER_CLOCK|=0x08; //EEPROM_CTRL Clock enable
EEPROM->CMD=4<<3; //Delay = 4
RST_CLK->PER_CLOCK&=(
0x08); //EEPROM_CTRL Clock disable
RST_CLK->CPU_CLOCK|=0x00000106; //CPU Clock = 10*10 MHz = 100 MHz
RST_CLK->ETH_CLOCK=(3<<28)|(1<<27)|(1<<24); //PHY_CLK_SEL = HSE2 = 25 MHz, ETH_CLK_EN=1, PHY_CLK_EN=1
В собранном устройстве установлен микроконтроллер 1986ВЕ1Т. На вход осциллятора HSE2_IN подается тактовая частота 25 МГц. В режиме КЗ контроллер адекватно принимает отправленный пакет, однако без режима КЗ получение пакетов от ПК не происходит, отправки на линии TX также не наблюдается. Код инициализации тактовых частот следующий:
RST_CLK->HS_CONTROL=0x0000000D; //HSE - On, Oscillator mode; HSE2 - On, Generator mode
while((RST_CLK->CLOCK_STATUS&0x0C)!=0x0C); //Wait until HSE and HSE2 not ready
RST_CLK->CPU_CLOCK=0x00000002; //CPU_C1 = HSE = 10
RST_CLK->PLL_CONTROL=(9<<8)|(1<<2); //PLL CPU On, PLL_MULL = 9;
while((RST_CLK->CLOCK_STATUS&0x02)!=0x02); //wait until PLL CPU not ready
RST_CLK->PER_CLOCK|=0x08; //EEPROM_CTRL Clock enable
EEPROM->CMD=4<<3; //Delay = 4
RST_CLK->PER_CLOCK&=(
0x08); //EEPROM_CTRL Clock disable
RST_CLK->CPU_CLOCK|=0x00000106; //CPU Clock = 10*10 MHz = 100 MHz
RST_CLK->ETH_CLOCK=(3<<28)|(1<<27)|(1<<24); //PHY_CLK_SEL = HSE2 = 25 MHz, ETH_CLK_EN=1, PHY_CLK_EN=1
Кабель используем перекрестный. Ethernet пробовали и 100 и 10, но без результата. Основу брали из тестовых программ. Настройки Ethernet такие же как и в демонстрационной программе? Процедуры инициализации PHY и MAC вы взяли из примера? А на отладочной плате пробовали запускать Ethernet? Настройки Ethernet такие же как и в демонстрационной программе? Процедуры инициализации PHY и MAC вы взяли из примера? А на отладочной плате пробовали запускать Ethernet?
Настройки те же, разница лишь в ревизиях микроконтроллеров. На отладочной плате первая ревизия, используем в своей плате последнюю ревизию. Отличие проектов, собственно заключается в использовании HSE2 с заведенной на него частотой 25 МГц. При подаче частоты с этого же источника на вход HSE отладочной платы Ethernet на ней запускается и нормально функционирует. Настройка частот приведена выше. Программа с незначительными изменениями в настройке частот работает с отладочной платой.
На 1 файле представлена схема подключения трансформатора B78476A8247A003 к МК 1986ВЕ1Т, взятая из этой темы форума.
Описание трансформатора приведено в файле 3. В файле 5 - схема трансформатора, который стоит на Вашей отладочной плате, которая отличается смежностью выводов.
Настройки те же, разница лишь в ревизиях микроконтроллеров. На отладочной плате первая ревизия, используем в своей плате последнюю ревизию. Отличие проектов, собственно заключается в использовании HSE2 с заведенной на него частотой 25 МГц. При подаче частоты с этого же источника на вход HSE отладочной платы Ethernet на ней запускается и нормально функционирует. Настройка частот приведена выше. Программа с незначительными изменениями в настройке частот работает с отладочной платой.
На 1 файле представлена схема подключения трансформатора B78476A8247A003 к МК 1986ВЕ1Т, взятая из этой темы форума.
Описание трансформатора приведено в файле 3. В файле 5 - схема трансформатора, который стоит на Вашей отладочной плате, которая отличается смежностью выводов.
Какие могут быть последствия, если выводы RX, TX, EXRES оставить неподключенными при наличии питания VDD, VSS? Убедительная просьба ответить побыстрей и подробней(в настоящее время идет разработка КД устройств с применением 1986ВЕ1Т без использования Ethernet и PHY).
С уважением, Василий. А если Ethernet и PHY вообще не используются, нужно ли подавать питание на PHY и можно ли оставить выводы PHY никуда не подключенными? Этого делать категорически нельзя. Питание должно быть, выводы доопределить по схеме включения выше, трансформаторы конечно можно не ставить, но пассивные элементы обвязки по выводам RX, TX, EXRES нужно ставить. В текущей спецификации требования по доопределению выводов RX, TX, EXRES (в случае их неиспользования) отсутствуют. Будут ли эти требования введены в вашу КД (ТУ, ТО) по окончании ОКР? Можно ли доопределять выводы непосредственным подключением к VDD или GND? Если нет, то какой допустимый диапазон сопротивлений обвязки?
Какие могут быть последствия, если выводы RX, TX, EXRES оставить неподключенными при наличии питания VDD, VSS? Убедительная просьба ответить побыстрей и подробней(в настоящее время идет разработка КД устройств с применением 1986ВЕ1Т без использования Ethernet и PHY).
С уважением, Василий. Непосредственно подключением VDD и VSS доопределять категорически нельзя! Только схема включения, как я писал Выше, можно без трансформаторов, но R3-R6 и С3 должны быть. Сопротивления обвязки также указаны на схеме выше в этой теме. Если оставить неподключёнными, то возможны утечки по этим входам.
Часовой пояс: UTC+03:00
Кто сейчас на конференции
Читайте также: