реклама на сайте
подробности

 
 
> Проблема Ehernet в LPC1766, Не работает фильтр МАС
b-volkov
сообщение Jun 8 2017, 14:55
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 10-04-07
Из: г. Троицк
Пользователь №: 26 907



Не могу добиться, что бы Ehernet- модуль принимал только "свои" кадры ( адрес которых совпадает с адресом контроллера). Выставляю бит APE в RXFILTERCTRL (как рекомендуется в UM) - "свои" кадры не принимаютя. Если разрешить бродкасты, то они принимаются нормально. Если разрешить мультикасты, то принимается куча всяких кадров, включая и "свои". Короче, перепробовал все комбинации битов фильтра - не получается.
Может быть для приема пакета недостаточно только совпадения адресов, а нужно еще и корректное заполнение каких-то других полей кадра (например, CRC) ? В отличии от брод/мультикастов, которые просто есть в сети (соединение комп-контроллер не изолировано от локалки), " свои" кадры формируются мной. А я, кроме адреса и данных ни каких других полей не заполняю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Jun 9 2017, 06:44
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(b-volkov @ Jun 8 2017, 18:55) *
Не могу добиться, что бы Ehernet- модуль принимал только "свои" кадры ( адрес которых совпадает с адресом контроллера). Выставляю бит APE в RXFILTERCTRL (как рекомендуется в UM) - "свои" кадры не принимаютя.

К этому следует добавить установку регистров SA0, SA1, SA2 и режима Unicast (AcceptUnicastEn). Про фильтрацию пакетов смотри п.10.17.10 User Manual.
Go to the top of the page
 
+Quote Post
b-volkov
сообщение Jun 9 2017, 08:00
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 10-04-07
Из: г. Троицк
Пользователь №: 26 907



Цитата(Палыч @ Jun 9 2017, 09:44) *
К этому следует добавить установку регистров SA0, SA1, SA2 и режима Unicast (AcceptUnicastEn). Про фильтрацию пакетов смотри п.10.17.10 User Manual.

Само-собой, в SA0-3 я записал МАС-адрес. AUE то же ставил - не принимается.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jun 9 2017, 12:08
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Нулевой (хорошо бы, и первый) бит первого октета МАС-адреса имеет нулевое значение?
Go to the top of the page
 
+Quote Post
b-volkov
сообщение Jun 9 2017, 13:55
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 10-04-07
Из: г. Троицк
Пользователь №: 26 907



Имеет место какая-то путаница с порядком октетов в МАК-адресах. В моей голове или в мануале - не знаю пока. Понял я это, когда догадался наконец-то не принимать, а передавать пакеты.
Адрес я выбрал простой: 11.22.33.44.55.66. Смотрим стр 167 UM: SA0 хранит октеты 1 и 2, SA2 - 3 и 4, SA3 - 4 и 5. Далее смотрим рисунок 19, на нем ясно видно, что нумерация октетов идет "слева направо", т.е. первый байт кадра, это первый октет DestAddr, а 7-й, это первый октет SrcAddr
Исходя из этого я заполняю регистры SA таким образом:
SA0=0x1122;
SA1=0x3344;
SA3=0x5566;
Начинаю посылать пакеты и в Wirehark вижу такую картину:



Т.е., октеты идут в обратном порядке! Соответственно, когда я их переставил, то заработал и прим пакетов. Объясните мне, это я чего-то недопонял, или имеет место ошибка в документации?

Go to the top of the page
 
+Quote Post
Палыч
сообщение Jun 9 2017, 14:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Порядок передачи октетов МАС-адреса по сети обратен их традиционной шестнадцатиричной записи.

Ваш адрес: 11.22.33.44.55.66
В нём 11.22.33 - идентификатор производителя; 44.55.66 - уникальный номер, присвоенный производителем
В выбранном Вами идентификаторе производителя закралась ошибка: первый октет в идентификаторе производителя (11) - не может иметь такое значение: определяют только старшие шесть бит (заменим его на 10). В сеть вначале передаётся идентификатор производителя, затем - номер.

Итого:
SA0= 0x6655; SA1=0x4433; SA2=0x2210;

Кстати, я с Вами использую какие-то разные manual'ы: у меня ни страницы не совпадают, ни рисунки, и регистра SA3(о котором Вы всё время говорите) - нет.
Go to the top of the page
 
+Quote Post
b-volkov
сообщение Jun 13 2017, 08:46
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 137
Регистрация: 10-04-07
Из: г. Троицк
Пользователь №: 26 907



Извиняюсь, с нумерацией регистров SA я и вправду накасячил .

Я пользоваллся User Manual UM10360 Rev. 4. 1 — 19 December 2016.

Кидаю скриншоты страницы 167, где описаны SA0-SА2 и рисунок 19.







Если сопоставить нумерацию октетов на этих картинках, и заполнить регистры так, как Вы сказали :SA0= 0x6655; SA1=0x4433; SA2=0x2210, то начало передаваемого пакета должно выглядеть следующим образом (ХХ адрес получателя):

ХХ ХХ ХХ ХХ ХХ ХХ 66 55 44 33 22 10 ....

Ну а на самом деле, порядок октетов получается обратным.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01455 секунд с 7
ELECTRONIX ©2004-2016