ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
65722 Топик полностью
-=Max_Fly=- (21.08.2006 01:24, просмотров: 1) ответил Evgeny_CD на Интересно, кто-нибудь щупал это дело? Например, если взять ATmega162 (16 Мгц) + RTL8019AS (примерно как там ->), можно ли получить 50кб/сек в UDP?
я реально не щупал, но UDP он довольно несложный. я прикидочно считал так: если данные лежат во внешнем ОЗУ (самый неоптимальный случай) 1) посчитать контрольную сумму UDP 2) если мас адреса цели нет, соорудить арп запрос, и отправить его. 3) получить мас цели 4) построить ethernet пакет (дописать ip и mac свой и цели + будем считать что мелочи вроде тип инкапсулированного пакета в ethernet мы забили а-приори). 5) посчитать контрольную сумму ethernet пакета и дописать её в хвост пакета. 6) отправить ethernet пакет итого 2 раза производится чтение из внешнего озу при подсчёте контрольных сумм. 2 пересылки арп пакета. 1 пересылка собственно целевого пакета. видно что выгодно мас кешировать. потому как выполнять дурную работу по загрузке сети и собственно контроллер арп запросами нехорошо. если выбросить арп-ы, то можно считать что на посылку одного пакета уходит 3 пересылки в\из внешнюю\ней память. Это конечно если считать что пакет достаточно большой, и дописыванием ip mac адресов можно пренебречь. Если конечно за 1 раз посылается 1 байтик :))) то надо учитывать. Расчёт понятно прикидочный потому что он так же не учитывает что длинна данных должна быть чётной. Иначе ещё добить нулевым октетом свой пакет. грубо - 1\3 от пропускной способности внешней шины микроконтроллера - это в прыжке с табуретки в коньках и шляпе с пером. по моему так. :). Но это :( увы всё теория, которой волей работодателя не суждено было воплотиться в жизнь в своё время.