Полная версия этой страницы:
Fast Ethernet
Добрый день. Возник один вопрос...Юзаю платку от Olimex и заметил одну нестыковочку.
На плате, на вход ethernet контроллера STE101P SCLOCK(32-ой пин) подается тактирование 25 Mhz и используется RMII интерфейс, а в даташите на ethernet controller написано:
32 pin sclk ----- NC for MII operation. System clock for RMII (50MHz) and SMII (125MHz)
На вход ETH_RMII_REF_CLK контроллера подается тактирование 50 Mhz.
В MAC режим AutoNegotiation настроен. После запуска МК через некоторое время я считываю регистр где определяется скорость, она равна 100 Mb.
Я так понимаю что в процессе переговоров контроллеров PHY, STE101P передает данные окончательных настройках передачи и передал 100 Mb. Не понятно почему тактирование на STE101P SCLOCK(32-ой пин) подается 25 Mhz...
Возник еще один вопрос, может кто-то даст ссылку на литературу. MAC настраивается на full-speed и half-speed, при настройке на half-speed есть возможность отслеживания коллизии сигналов, при full-speed нету такой возможности.
Я читал что при half-speed MAC работает согласно правилам CSMA/CD, между фреймами происходит пауза и phy слушает есть ли передача, если есть то ждет окончания, только потом отсылается. А как происходит отслеживание коллизии при этом?
И по каким правилам работает MAC в случае full-speed?
Спасибо.
А что такое full-speed и half-speed? Может, это full duplex и half duplex?
Коллизии отслеживаются PHY в режиме half duplex с помощью мониторинга передачи и приема. Если у него это не совпало, то произошла коллизия.
Цитата(vitan @ Oct 20 2011, 12:42)

А что такое full-speed и half-speed? Может, это full duplex и half duplex?
Коллизии отслеживаются PHY в режиме half duplex с помощью мониторинга передачи и приема. Если у него это не совпало, то произошла коллизия.
Да, конечно, правильно меня исправили.
Выходит, при передаче PHY одновременно прослушивает линию, в случае не совпадения сигналов(наложение) происходит коллизия и PHY будет передавать данные в следующий свободный промежуток времени...Выходит так?
А при full-duplex возможны коллизии ? И как с ними бороться?
Как уже было сказано
HD: При возникновении коллизии PHY уведомит об этом MAC, который(-ое) должен(-о) выждать паузу в соответствии со стандартом до начала передачи.
FD: Коллизий нет.
В режиме HD коллизии можно использовать в качестве flow control, тормозя передатчик, переполняющий ваш приемный буфер.
Цитата(Twen @ Oct 20 2011, 17:15)

Выходит, при передаче PHY одновременно прослушивает линию, в случае не совпадения сигналов(наложение) происходит коллизия и PHY будет передавать данные в следующий свободный промежуток времени...Выходит так?
Ну да, только передавать он должен не в свободный промежуток времени , а тогда, когда ему скажет MAC. MAC выбирает новый момент времени по, емнип, экспоненциальному закону (как в стандарте).
Цитата
Юзаю платку от Olimex и заметил одну нестыковочку.
На плате, на вход ethernet контроллера STE101P SCLOCK(32-ой пин) подается тактирование 25 Mhz и используется RMII интерфейс, а в даташите на ethernet controller написано:
32 pin sclk ----- NC for MII operation. System clock for RMII (50MHz) and SMII (125MHz)
Ответ простой, неправильный чертеж в мануале на плату. А в железе подается именно 50МГц на 32 пин.
Кстати, на сколько я понимаю эзернет кабель можно вытаскивать на горячему, так как есть гальваническая развязка, правильно?
Также, возник еще один вопрос...Хотелось бы для отладки написать программу под ПК, которая имела доступ к эзернет порту...Делал ли что-то подобное? Можно ли это сделать на Borland C++ ?
iosifk
Nov 24 2011, 10:48
Цитата(Twen @ Nov 24 2011, 14:29)

Также, возник еще один вопрос...Хотелось бы для отладки написать программу под ПК, которая имела доступ к эзернет порту...Делал ли что-то подобное? Можно ли это сделать на Borland C++ ?
Я делал в ВСВ5. Там есть компонент для работы в сети. Но и МС есть винсокет.
Тут появилась более приоритетная задача. Подключил веб-сервер к эзернету, прошло автосогласование отлично, но не принимает МК пакеты, не попадает в прерывание. Желтый светодиод не горит а зеленый мигает с периодом где-то 2 секунды. Он бы горел постоянно если бы соединение было хорошое, а так мигает , по даташиту пишется "and blink during TX or RX activity", то есть если есть попытки передачи или приема, я так понял? Кстати, на ПК пишется кабель не подключен...Может, что-то посоветуете?
На ПК пишется, что соединение установлено и показывает скорость только при установке сеоединения по TCP протоколу? Если скажем я просто настроил MAC (на прием и передачу), но ничего не передаю и не принимаю(стоит просто while()

, после авто-переговоров между Ethernet контроллером и сетевой картой , если они прошли успешно, то тогда будет надпись на ПК(соединение установлено)?
Спасибо.
Цитата(Twen @ Nov 26 2011, 15:04)

Если скажем я просто настроил MAC (на прием и передачу), но ничего не передаю и не принимаю(стоит просто while()

, после авто-переговоров между Ethernet контроллером и сетевой картой , если они прошли успешно, то тогда будет надпись на ПК(соединение установлено)?
Нет, не будет. Точнее может быть, а может и не быть

Был опыт с подключением своей железки (со своим собственным протоколом) к Ethrernt порту PC. Данные исправно передавались в обе стороны, а вот индикатор подключения на РС вел себя совершенно стохастически - сам по себе включался (когда хотел), сам по себе выключался
Запустил плату на днях, так вот, выходит соединение на ПК будет установлено с эзернет контроллером, даже если контроллер с MAC модулем будет стоять и ничего не делать.
Происходит все так, я обновляю соединение на ПК(вкл. а потом выкл.) и эзернет контроллер(PHY) на ПК, настроен на авто-переговоры, отсылает пакеты другому эзернет контроллеру на моей плате, они обмениваются поддерживаемыми скоростями...
У меня на плате 10 Мбит эзернет работае, ставлю 100 Мбит не пашет...Тактирование подаю то что нужно для 100/10. Может ли это быть вызвано не качественной разводкой платы?
Читал
эту статью, здесь пишут, что может...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.