Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача данных по tcp/ip
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
Артемка
Здраствуйте!

Возникла такая задача:
Необходимо оцифровывать сигналы с датчиков (ну например 16 штук) и передавать по запросу по tcp/ip.

Кто-нибудь занимался чем-то подобным? Какое решение выбрать, с какими сложностями придется столкнуться? В общем требуется помощь!

Варианты нашел пока такие: использование WIZnet W3100A или Crystal CS8900A или Xport.
one_man_show
Какая помощь требуется. Я работаю с XPort. Все, что по нему надо, могу дать, пишите конкретнее. У XPort тонкостей хватает, но в основном приятных. В отличие от указанных других компонентов, он является более законченным, все в одном флаконе, но имеет ограничение пос скорости передачи в RS232, до 921кбит/с. В остальном, все на столько просто, что не прийдется досконально изучать сам стек tcp/ip
Артемка
Ну в общем проект находится в самой начальной стадии. Т.е. из помощи требуются пути решения этой задачи. Спасибо за инфу. Буду копать в сторону x-port'а если скорость устроит.
one_man_show
В проекте надо зарезервировать место только под удлиненный разъем RJ-45 smile.gif , так как при использовании XPort дополнительных компонентов, кроме стабилизатора и преобразователя RS232 не требуется. Если связываете его с микрухой, то естесственно преобразователь не нужен.

Не наступите на грабли, мимо которых многие никак не могут пройти: отведите под XPort минимум 300мА в общей системе питания, а то многие почему-то думают, что он малопотребляемый. Ага, особенно на скорости 921кбит/с в RS и 100Мбит в Ethernet biggrin.gif
Артемка
Что то я не разобрался как он работает. Не нашел даташита по нему. Скорость 920кб/с маловата вообще-то. Есть ли возможность по rs232/485 накапливать данные, а потом по tcp запросу нужные выдавать? Если да, то сколько у него памяти? Настраивается он с верхнего уровня?
Артемка
И порядок цен каков при небольших заказах?
one_man_show
Цены и условия поставки уточните у Дистрибутора в Москве. Старая цена была за 1шт по-моему около $70.

По поводу накопления. Можно копить, можно отсылать, вообще имея CPK, можно все, что пожелаете. CPK - это программный комплект разработчика, старая версия есть на нашем ФТП, там библиотеки, описания, исходники, примеры и пр.
Посмотрите даташит с сайта дистрибутора или производителя. Обратите внимание на WiPort - это то же + радио-ethernet
Артемка
А с W3100A или CS8900A трудностей больше возникнет?
one_man_show
С W3100 не работал.
CS8900A - замечательная микросхема, в сети много примеров реализации, много исходников. Но сравнивать с XPort будет неправильно, так как это разные компоненты: XPort для быстрого внедрения TCP/IP в Ваше устройство, CS8900 - это микросхема, которая требует дополнительных обрамляющих компонентов и программирования Вашего центрального процессора. От сюда и разница в цене, первый компонент естесственно дороже второго.
Артемка
Огромное спасибо и бесконечный респект. cheers.gif Перевериваю полученную инфу. Думаю еще обращусь. smile.gif
andk
Если интересует работа с W3100 - это ко мне smile.gif
Для твоей задачи вполне может подойти.
У Wiznet есть модуль на основе W3100 - платочка с спичечный коробок,
На ней собран готовый Eth контроллер. Цены - в пределах 30$
К модулю цепляешь любимый проц - и готово.
У них же (Wiznet) есть примеры для х51.
Артемка
Цитата(andk @ Jan 20 2005, 20:26)
Если интересует работа с W3100 - это ко мне smile.gif
Для твоей задачи вполне может подойти.
У Wiznet есть модуль на основе W3100 - платочка с спичечный коробок,
На ней собран готовый Eth контроллер. Цены - в пределах 30$
К модулю цепляешь любимый проц - и готово.
У них же (Wiznet) есть примеры для х51.
*

Да, спасибо. Я на этой микрухе и остановился. Стоит гораздо дешевле x-port'a и обеспечивает большую скорость. Правда придется еще прикупить реалтековский чип, обеспечивающий физический уровень. WizNet уже несколько лет обещает сделать W3200 (W3100+PHY), но воз и ныне тамsad.gif
andk
То есть у X-portа скорость тоже не высокая? И какая?

>Правда придется еще прикупить реалтековский чип, обеспечивающий >физический уровень. WizNet уже несколько лет обещает сделать W3200 >(W3100+PHY), но воз и ныне тамsad.gif

Уверен что хочется самому все это делать?
Посмотри все-таки на модуль IIM7010 !
Там все в одном флаконе - и разьемчик и PHY и W3100 !
Самому делать заморочнее и дороже на мой взгляд.
halfdoom
Цитата(andk @ Jan 21 2005, 11:40)
Уверен что хочется самому все это делать?
Посмотри все-таки на модуль IIM7010 !
Там все в одном флаконе - и разьемчик и PHY и W3100 !
Самому делать заморочнее и дороже на мой взгляд.
*

Делали на RTL8019AS - дешево и больших проблем нет. В качестве
стека удобно использовать Ethernut, а если мало ОЗУ, то uIP.
andk
RTL8019AS - Это такое большое, 10мб/c, с выходом на ISA? если мне память не изменяет smile.gif
Ну да, если человеку достаточно 10мб/c то тоже может прокатить. Простой контроллер, хороший. Мне тоже нравился, только старый он...
one_man_show
Цитата(andk @ Jan 21 2005, 10:40)
То есть у X-portа скорость тоже не высокая? И какая?
*

У XPort скорость на Ethernet 10/100Mb, На RS-232 до 921Кбит/с, когда-то было до 230Кбит/с.
А какая у WizNet?
irum4
Что-то о скорости W3100A писал jojo
http://forum.electronix.ru/index.php?showtopic=312
Артемка
Цитата(andk @ Jan 21 2005, 13:40)
Уверен что хочется самому все это делать?
Посмотри все-таки на модуль IIM7010 !
Там все в одном флаконе - и разьемчик и PHY и W3100 !
Самому делать заморочнее и дороже на мой взгляд.
*


А что, много трудностей возникнет? К сожалению в этой области ничего не делал еще, только собираюсь. Какие проблемы должны возникнуть?
Пока план такой: Motorola 56F803 + W3100A + RTL8201
one_man_show
Чтобы легче было ориентироваться, резюмирую, здесь опубликованы два подхода:
1) вариант на отдельных компонентах, более дешевый, возможно более познавательный с точки зрения изучения вопросов Ethernet, TCP/IP и пр.
2) вариант на готовом модуле (типа XPort), более дорогой, более быстрый в освоении, не нужно вдаваться в подробности Ethernet, TCP/IP и пр.

По-моему, есть смысл пробовать все варианты, чтобы самому сделать вывод, какой в данный момент Вам предпочтительнее.

Не удержался от перекоса в сторону XPort: он интересен еще тем, что имеет продолжение - это WiPort, устройство с такой же идеологией, но в добавок к обычному Ethernet содержащее Radio-Ethernet и два RS-232 smile.gif
Артемка
Цитата(one_man_show @ Jan 21 2005, 19:12)
Чтобы легче было ориентироваться, резюмирую, здесь опубликованы два подхода:
1) вариант на отдельных компонентах, более дешевый, возможно более познавательный с точки зрения изучения вопросов Ethernet, TCP/IP и пр.
2) вариант на готовом модуле (типа XPort), более дорогой, более быстрый в освоении, не нужно вдаваться в подробности Ethernet, TCP/IP и пр.

По-моему, есть смысл пробовать все варианты, чтобы самому сделать вывод, какой в данный момент Вам предпочтительнее.
*

Ну я так понял, что связка w3100+RTL8201 програмных вмешательств не требует. Стек TCP/IP организован аппаратно. Нужно будет только с мотороллой оцифровывать сигнал и передавать дальше. Или я ошибаюсь?
andk
T0 one_man_show:
>У XPort скорость на Ethernet 10/100Mb, На RS-232 до 921Кбит/с, когда-то
>было до 230Кбит/с.
>А какая у WizNet?
По моему мы чуть недопоняли друг друга.
Я имел в виду реальную скорость потока ДАННЫХ в приложении, которую можно получить с помощью контроллера. Ну то есть в Eth 100 понятно, что по проволоке все летит со скоростью 100. А реально в приложении с учетом пауз (пересылка данных в/из контроллера, опрос готовности, и т.п.)- меньше.
Так вот, у W3100 мне удавалось получить скорость потока данных ~30мБит/с

To Артемка:
>А что, много трудностей возникнет?
>К сожалению в этой области ничего не делал еще, только собираюсь. >Какие проблемы должны возникнуть?
>Пока план такой: Motorola 56F803 + W3100A + RTL8201
План нормальный.
Особенных трудностей и проблем не возникнет.
Просто лень искать рассыпуху, разрабатывать плату, рискуя нарваться на проблемы с разводкой и отсутствием заказаной комплектовки smile.gif
Есть готовый модуль, на которос собрана вся физика для Eth.
Остается только разьем вокнуть в плату с камнем и все.
В оконцовке стоимость разработки на рассыпухе может оказаться больше, чем с готовым модулем.
Если планируешь производство, то оцени еще и технологичность и ремонтопригодность модульного решения
>Ну я так понял, что связка w3100+RTL8201 програмных вмешательств
>не требует. Стек TCP/IP организован аппаратно. Нужно будет только >с мотороллой оцифровывать сигнал и передавать дальше. Или я ошибаюсь?

Реализация стека TCP/IP в Wiznet сделана только в части низкоуровнего разбора пакета - то есть тебе скажут что-то в стиле
"Тут пришел пакет TCP (UDP) от того-то на такой-то порт" и честно отдадут все, что лежит выше заголовка TCP (UDP) дальше расковыриваешь сам.
Все контрольные суммы, заголовки TCP(UDP), IP, Eth , берет на себя контроллер.
Я к тому, что если в мечтах есть протоколы выше TCP (HTTP,FTP,...)- готовься разбирать их сам.
Удачи!
one_man_show
Цитата(andk @ Jan 22 2005, 10:29)
Так вот, у W3100 мне удавалось получить скорость потока данных ~30мБит/с

XPort-у это не по силам, он для другой цели: быстро встроить Ethernet в изделие, а не быстро передать данные smile.gif
Цитата
Реализация стека TCP/IP в Wiznet сделана только в части низкоуровнего разбора пакета - то есть тебе скажут что-то в стиле
"Тут пришел пакет TCP (UDP) от того-то на такой-то порт" и честно отдадут все, что лежит выше заголовка TCP (UDP) дальше расковыриваешь сам.
Все контрольные суммы, заголовки TCP(UDP), IP, Eth , берет на себя контроллер.
Я к тому, что если в мечтах есть протоколы выше TCP (HTTP,FTP,...)- готовься разбирать их сам.
Удачи!
*

Если скорость не главное, то тут как раз поможет XPort: весь стек реализован до самого верха. Telnet, HTTP, FTP, SNMP, SMTP и т.д. Внутри готовый почтовый сервер, веб-сервер с поддержкой java-апплет, т.е. можно не меняя firmware загрузить странички и получить софт верхнего уровня, встроенный в саму железку. Естесственно плата за все это и бОльшая цена и меньшая скорость в сравнении с рассыпухой.
Артемка
Цитата(andk @ Jan 22 2005, 13:29)
План нормальный.
Особенных трудностей и проблем не возникнет.
Просто лень искать рассыпуху, разрабатывать плату, рискуя нарваться на проблемы с разводкой и отсутствием заказаной комплектовки smile.gif
Есть готовый модуль, на которос собрана вся физика для Eth.
Остается только разьем вокнуть в плату с камнем и все.
В оконцовке стоимость разработки на рассыпухе может оказаться больше, чем с готовым модулем.
Если планируешь производство, то оцени еще и технологичность и ремонтопригодность модульного решения
>Ну я так понял, что связка w3100+RTL8201 програмных вмешательств
>не требует. Стек TCP/IP организован аппаратно. Нужно будет только >с мотороллой оцифровывать сигнал и передавать дальше. Или я ошибаюсь?

Реализация стека TCP/IP в Wiznet сделана только в части низкоуровнего разбора пакета - то есть тебе скажут что-то в стиле
"Тут пришел пакет TCP (UDP) от того-то на такой-то порт" и честно отдадут все, что лежит выше заголовка TCP (UDP) дальше расковыриваешь сам.
Все контрольные суммы, заголовки TCP(UDP), IP, Eth , берет на себя контроллер.
Я к тому, что если в мечтах есть протоколы выше TCP (HTTP,FTP,...)- готовься разбирать их сам.
Удачи!

Огромное спасибо. Примерно это я и хотел услышатьwink.gif Работаю в эту сторону. Пока вопросов больше нет.
dimka
Я использую с8051f124 и cs8900a - граблей нет, cs8900a - легко программировать в режиме I/O - всего 8 регисторов,,,,,
А с8051f124 - не много сложновато так как используется по страничный доступ
Я не жалуюсь,,,,
Олег13
Реализовал проект моста езернет-Е1 на atmega+cs8900+плис , сначала покупал готовый отладочный модулб на cs8900, стоит дорого, но заработало быстро. Потом в готовом устройстве все сделал на рассыпухе, дешевле на порядок, тоже заработало. Программируется cs8900 очень легко, исходников в инете масса, но делал сам.
serg78
До кучи : wink.gif
Есть еще такие микросхемки как AX88796 - это как CS8900 но 100 Мбит и прочие вкусности

AX88198 - это уже с аппаратным стеком но требует только внешний PHY...
Артемка
Что такое ethernet трансформатор? На структурной схеме он идет после реалтека, перед разъемом.
one_man_show
Это гальваническая развязка, стандарт для ethernet. Сейчас можно использовать разъем RJ-45 со встроенным трансформатором, очнь удобно.
Артемка
А вообще кто-нибудь работал с w3100a? Может поделитесь инфой, схемкой подключения? На русском есть ли какая-нибудь документация?
Артемка
Какая есть альтернатива RTL8201BL? Он работает лишь от 0 радусов. Хотелось бы с расширенным температурным диапазоном. От -20 например.
andk
Артемка! Не внимательно читаешь! smile.gif
Перечитай тред с начала smile.gif
>>Если интересует работа с W3100 - это ко мне
Документация, примеры схем и кода у Wiznet-ов на сайте.
Конечно, есть у меня, если модератор не против, могу слить на фтп.
На русском ничего нет и, я подозреваю, не будет никогда smile.gif

TO MODERATOR
Может действительно выложить на фтп?
Там не очень много - метра 4-5.
andk
В догонку smile.gif

Есть еще их диск - ну все, что уних было на 2004 год - весит ~40м
Артемка
w00t.gif Был бы очень признателен!
one_man_show
Чего нет на ФТП, выкладывайте, микросхемка популярная и полезная
andk
Ok, сегодня вечером начнем.. smile.gif
stremglav
Ранее упомянутый CS8900A-IQ имеет индустриальный диапазон рабочих температур
(-40С...+85С)
Артемка
Цитата(stremglav @ Feb 9 2005, 19:07)
Ранее упомянутый CS8900A-IQ имеет индустриальный диапазон рабочих температур
(-40С...+85С)
*

У меня микроскхемка, обеспечивающая ethernet PHY отдельно. Вот она то и работает от 0 до 40. И аналога не могу найти. Во всяком случае у realtek я такой не нашел.
andk
Выложил в /upload/DOC/Wiznet
Осталось несколько файлов тяжелых smile.gif

evb8051 user manual 3.0.pdf
dk8051voip user's guide english version 3.0.pdf
lpcan_project.exe
7100a_setup.exe
config tool v3.0.0.exe
8051 webcam user's guide english version 3.0.pdf

Выложу чуть позже (за выходные), остальное вроде все.
Каталог "ftp" смотреть подробно ручками, я туда ложил все что сам нашел. Там не так уж много.
Вопросы по программированию W3100 можно задавать мне.
Удачи!
Артемка
Отлично! Эту порцию уже слилsmile.gifЖду следующую.
pav7
Цитата(andk @ Feb 11 2005, 06:28)
Вопросы по программированию W3100 можно задавать мне.
Удачи!
*


Ты реализовывал http или smtp - сервер на w3100a?
andk
Нет, для моих проектов хватило TCP+UDP, дальше свой протокол.
В той куче, которую я положил на фтп есть примеры НТТР. Я смотрел, вроде не сложно особенно НТТР smile.gif
pav7
Цитата(andk @ Feb 11 2005, 16:26)
В той куче, которую я положил на фтп есть примеры НТТР. Я смотрел, вроде не сложно особенно НТТР smile.gif
*


Http я хотел использовать для удаленого управления, но вот маленький затык... На FTP меня не пустают... что очень прискорбно... Я маловато здесь общаюсь... Могли бы и не делать эти нелепые отборы, кто сколько делает сообщений... Если не сложно не мог бы все это на мыло скинуть... Буду очень признателен... Заранее благодарен...
Esc@pe
Артемка
Вообще-то W3100A имеет диапазон температур от -10 до +70
В качестве микросхемы физического уровня с промышленным температурным диапазоном могу предложить LXT972A от Intel (Level One), но она сильно дороже RTL8201BL (примерно раза в три). Я с ней работал, всё довольно просто, только трансформатор правильный подобрать нужно.
BorisRozentsvaig
Цитата(pav7 @ Feb 11 2005, 14:22)
Цитата(andk @ Feb 11 2005, 06:28)
Вопросы по программированию W3100 можно задавать мне.
Удачи!
*


Ты реализовывал http или smtp - сервер на w3100a?
*



Пример реализации smtp и http серверов смотри в прикрепленном файле.
Удачи!
Dopler
Господа!

Пара вопросов по UDP.

1. Нужно ли после срабатывания прерывания SocketInit вызывать команду cCONNECT или cLISTEN, если не нужно, то почему в регистре SOCK_STATUS значение 0x0E (инициализация завершена), а не 0x0F (режим UDP)?

2. Нужно ли инициализировать укзатели, как это делается при TCP/IP?

Вообще у меня такая проблема - микросхема данные принимает, а передавать никак не хочет, вернее передавать-то передает, а вот на машине я их поймать не могу, причем раньше делал на TCP/IP - все работало.
andk
>>1. Нужно ли после срабатывания прерывания SocketInit вызывать команду cCONNECT или cLISTEN, если не нужно, то почему в регистре SOCK_STATUS значение 0x0E (инициализация завершена), а не 0x0F (режим UDP)?

Нет, команды cCONNECT или cLISTEN предназначены для только для TCP.
Почему 0х0Е? х.з. В SOPR все правильно записал?

>>2. Нужно ли инициализировать укзатели, как это делается при TCP/IP?
Да можно и не инициализировать, в ТСР указатели используют как уникальный номер пакета, в UDP такого нет.

>>Вообще у меня такая проблема - микросхема данные принимает, а передавать никак не хочет, вернее передавать-то передает, а вот на машине я их поймать не могу, причем раньше делал на TCP/IP - все работало.

А как догадываешься что данные передаются?
Попробуй использовать монитор какой-нибудь (Ethereal здесь на форуме пробегал или какой другой типа LanExplorer) тогда будешь точно знать, что передается. И передается ли вообще smile.gif
Если сильно хочешь, могу поделиться куском своего исходника.
yuriyc
Вопрос к Уважаемому andk. А не пробовали случаем подключать w3100 через I2C. Стоит задача подключения лабораторного оборудования. Планируется связка LPC + w3100 (100Mb не требуется). Если пробовали, то каковы впечатления? И какая получилась скорость передачи?
BorisRozentsvaig
>>Пара вопросов по UDP.

>> 1. Нужно ли после срабатывания прерывания SocketInit вызывать команду
>> cCONNECT или cLISTEN, если не нужно, то почему в регистре
>> SOCK_STATUS значение 0x0E (инициализация завершена), а не 0x0F
>> (режим UDP)?
никаких cCONNECT или cLISTEN вызывать не нужно. Вот пример типичной инициализации сокета UDP:

void w3100a_init_udp_socket(USHORT udp_port)
{
  w3100a_write_reg(W3100A_C0_CR, CCLOSE);
  while (w3100a_read_reg(W3100A_C0_SSR) != SOCK_CLOSED);
  w3100a_write_reg(W3100A_C0_SOPR, SOCK_DGRAM | SOCKOPT_BROADCAST);
  w3100a_write_word_reg(W3100A_C0_SPR, udp_port);
  w3100a_write_reg(W3100A_C0_CR, CSOCK_INIT);
  while (!(w3100a_read_reg(W3100A_C0_ISR) & SSOCK_INIT_OK));
}

>> 2. Нужно ли инициализировать укзатели, как это делается при TCP/IP?

нет, не нужно

>> Вообще у меня такая проблема - микросхема данные принимает, а
>> передавать никак не хочет, вернее передавать-то передает, а вот на
>>машине я их поймать не могу, причем раньше делал на TCP/IP - все
>> работало.
Про это я уже где-то писал. Повторю:
У W3100A есть весьма неприятная бага с ARP. При работе в режиме датаграмм (UDP), он заносит в таблицу ARP MAC-адрес источника первого принятого пакета и дальше почему-то при формирование пакета на IP-адрес отличный от IP-адреса источника первого пакета все равно в заголовок MAC пихает MAC-адрес первого принятого пакета. Правда, широковещательные пакеты отправляет без проблем.
Разработчики, кстати, признали эту ошибку в чипе на своем сайте (http://www.wiznet.co.kr) в разделе Q&A. Вот их ответ:

Num | 578's Reply
Name | WIZnet [support@wiznet.co.kr]
Date | 2003-12-08 14:48
Title | RE: MAC address problem

Dear Sir,

Thank you for your detailed information.
It looks likely that you want to send data to multiple
destination in UDP mode. In this case there's no way to force
the W3100A to renew ARP, I'm afraid. Please, re-create a
UDP socket when you send data to different destinations in
UDP mode. It'll work. I'm so sorry about this inconvenience.

Best Regards,
Fabian.

*
andk
Цитата(yuriyc @ May 5 2005, 15:53)
Вопрос к Уважаемому andk. А не пробовали случаем подключать w3100 через I2C. Стоит задача подключения лабораторного оборудования. Планируется связка LPC + w3100 (100Mb не требуется). Если пробовали, то каковы впечатления? И какая получилась скорость  передачи?
*

Нет, я не пробовал, но исходники которые лежат на фтп содержат именно такой подход. Судя по всем приметам, вещь живая. smile.gif
Скорость передачи определиться самым медленным интерфейсом smile.gif
yuriyc
[/quote]
Нет, я не пробовал, но исходники которые лежат на фтп содержат именно такой подход. Судя по всем приметам, вещь живая. smile.gif
Скорость передачи определиться самым медленным интерфейсом smile.gif
*

[/quote]
smile.gif Ясно. Как появится возможность посмотрю. Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.