Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Транспортный протокол для соединения МК с компом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
san822
Нужно сделать соединение между МК и компом.
В Винде ХР есть соединение SLIP с TCP/IP,
мне рекомендовали использовать его.
Не подскажете какой-нибудь исходник на Си для МК(любого),
в котором реализован ТСР обмен ?
Я почитал документацию по ТСР, стал сомневаться,
что без хорошего исходника,
который мог бы послужить основой,
эта задача под силу такому "чайнику" как я,
а сделать хочется...
zltigo
Цитата(san822 @ Jul 17 2006, 10:26) *
Нужно сделать соединение между МК и компом.

Если речь идет о прямом (не через интернет) соединении RS232 Вашего
микроконтроллера и RS232 PC, то более громодкого и неразумного решения придумать трудно...
Если речь идет о хождении через интернет, то SLIP в качестве транспорта есть самый простой и разумный вариант. Надо подумать только над необходимостью TCP - я бы в подавляющем большинстве случаев предпочел-бы свою надстройку над UDP. Чайникам там трудно начинать :-( даже если есть "какие-то исходники почитать" - все просто имеет, как минимум, достаточно большой объем. Посему, наиболее часто народ сдается на милость "готовой операционной системы в которой стек уже реализован", что и Вам наверное надо будет сделать.

Кстати, имейтее ввиду, что в WIN имеется _клиент_ а не сервер.
san822
Надстройка над UDP - это какой-то самопридуманный механизм,
позволяющий сделать соединение по UDP столь же надёжным,
что и по ТСР ?

Можно ли из UDP сделать связь с надёжностью ТСР ?
zltigo
Цитата(san822 @ Jul 17 2006, 11:34) *
Можно ли из UDP сделать связь с надёжностью ТСР ?

Да. Этому нет никаких препятствий. TCP убивает желание им пользоватся обычно тем, что
доставку-то он "гарантирует", но совсем не гарантирует время доставки и время после которого Вы узнаете, что, например (речь идет о конкретной реализации на WIN стороне), переданные Вами последние 10K никуда вообще-то и не ушли.
san822
Да, наверное, я бы в своём проекте так и поступил...
Но совет "мне рекомендовали использовать его"(протокол ТСР)
почти принудительный...
smile.gif
Данный проект общий,
использует управление по SNMP.
На компе с Виндой стоит прога net-snmp-5.2.1-1,
а МК должен её понимать.
Насколько я знаю, эта прога работает
с UDP и TCP...
javalenok
Цитата(san822 @ Jul 17 2006, 12:28) *
Да, наверное, я бы в своём проекте так и поступил...
Но совет "мне рекомендовали использовать его"(протокол ТСР)
почти принудительный...
smile.gif

Да программисты такая профессия -- огород городить, велосипеды изобретать. Лечить этот дурдом надо принудительно.


Цитата(san822 @ Jul 17 2006, 12:28) *
Данный проект общий,
использует управление по SNMP.
На компе с Виндой стоит прога net-snmp-5.2.1-1,
а МК должен её понимать.
Насколько я знаю, эта прога работает
с UDP и TCP...


Стоит ли городить огород ради одной програмки? Ставите посредственное socket <-> rs232 приложение на компьютер. Его написать в 100 раз легче выйдет, чем TCP/IP стек на микроконтроллере, я полагаю.
zltigo
Цитата(javalenok @ Jul 17 2006, 12:40) *
Его написать в 100 раз легче выйдет, чем TCP/IP стек на микроконтроллере, я полагаю.

А для описанного случая TCP/IP стек (именно стек - это ведь точка-точка, ни тебе ARP ни всего прочего) _совсем_ не нужен. А если еще и UDP фреймами
обойтись, что похоже более чем достаточно для конкретного случая, но все вообще очень просто.
Лет мамнадцать назад писал под заказ серверок-шлюз обслуживающий WIN/Linux клиента подключающегося через rs232/модем/SLIP/UDP - сейчас глянул - там исходников обслуги модема+slip+прием/передача UDP пакета+отладочная распечатка и 10K на С не наберется :-) Обслуга со второй стороны сокета + кое-какая консолька то под 25K занимает.

P.S.
Кстати, посмотрел внимательнее - всего 3K исходников (без модема и прочего) относящихся непосредственно к
SLIP+UDP
Dainis
Цитата(san822 @ Jul 17 2006, 12:28) *
Да, наверное, я бы в своём проекте так и поступил...
Но совет "мне рекомендовали использовать его"(протокол ТСР)
почти принудительный...
smile.gif
Данный проект общий,
использует управление по SNMP.
На компе с Виндой стоит прога net-snmp-5.2.1-1,
а МК должен её понимать.
Насколько я знаю, эта прога работает
с UDP и TCP...



SNMP это чистыи UDP!
san822
Т. е. Вы хотите сказать, что SNMP невозможно реализовать по ТСР ?
Или скажем так - SNMP обычно не реализуют по ТСР ?
zltigo
Цитата(san822 @ Jul 17 2006, 13:51) *
Т. е. Вы хотите сказать, что SNMP невозможно реализовать по ТСР ?
Или скажем так - SNMP обычно не реализуют по ТСР ?

SNMP протокол НЕ предусматривающий процедуры установки соединения и работающий в режиме запрос-ответ. Посему "родной" для него именно UDP. При желании, естественно никто не запрещает гонять его хоть по IPX, хоть ATM, хоть по имеющимуся TCP каналу.
Dainis
Цитата(san822 @ Jul 17 2006, 13:51) *
Т. е. Вы хотите сказать, что SNMP невозможно реализовать по ТСР ?
Или скажем так - SNMP обычно не реализуют по ТСР ?



Да SNMP обычно не реализуют по ТСР !

http://www.freesoft.org/CIE/RFC/Orig/rfc1157.txt
http://www.cisco.com/univercd/cc/td/doc/ci...to_doc/snmp.htm

http://www.rfc-archive.org/getrfc.php?rfc=3430

http://www.freesoft.org/CIE/Topics/108.htm

SNMP Protocol Overview
The Simple Network Management Protocol (SNMP) is essentially a request-reply protocol running over UDP (ports 161 and 162), though TCP operation is possible. SNMP is an asymmetric protocol, operating between a management station (smart) and an agent (dumb). The agent is the device being managed - all its software has to do is implement a few simple packet types and a generic get-or-set function on its MIB variables. The management station presents the user interface. Simple management stations can be built with UNIX command-line utilities. More complex (and expensive) ones collect MIB data over time and use GUIs to draw network maps.


http://www.snmp.com/protocol/
dmivs
Ай-яй-яй. Начинаем проект с использованием SNMP не зная что-это такое wink.gif

Для начала поищите информацию по реализации самого SNMP для вашей платформы. Ресурсы, библиотеки, необходимость в RTOS и т.д. Возможно после этого исследования необходимость в стеке TCP/IP отпадет сама собой и ваши программеры подпишутся на какой-нибудь простенький самопальный протокол biggrin.gif

Какая у вас платформа - процессор, память, ОС?
zltigo
To: Dainis и dmivs
Редкий случай, когда трое рижан в одном топике встретились :-)
Как я понимаю (после поминания SNMP), вы оба к сетевому/каналообразующему оборудованию отношение имеете :-).
Dainis
Цитата(zltigo @ Jul 17 2006, 14:15) *
To: Dainis и dmivs
Редкий случай, когда трое рижан в одном топике встретились :-)
Как я понимаю (после поминания SNMP), вы оба к сетевому/каналообразующему оборудованию отношение имеете :-).


Мир же маленкий ... smile.gif
Связ со всем этим имею достаточно тесною smile.gif
upc2
<<Не подскажете какой-нибудь исходник на Си для МК(любого),
в котором реализован ТСР обмен ?>>

На Микрочипе много исходников с подробным описанием.Например AN731 или AN724
dmivs
Цитата(zltigo @ Jul 17 2006, 14:15) *
Как я понимаю (после поминания SNMP), вы оба к сетевому/каналообразующему оборудованию отношение имеете :-).

Имеем, да. Мир действительно маленький.
san822
Цитата(dmivs @ Jul 17 2006, 15:06) *
Ай-яй-яй. Начинаем проект с использованием SNMP не зная что-это такое wink.gif

Для начала поищите информацию по реализации самого SNMP для вашей платформы. Ресурсы, библиотеки, необходимость в RTOS и т.д. Возможно после этого исследования необходимость в стеке TCP/IP отпадет сама собой и ваши программеры подпишутся на какой-нибудь простенький самопальный протокол biggrin.gif

Какая у вас платформа - процессор, память, ОС?


Ну, проект начинал не я...
У меня в этом проекте очень скромная доля участия.
Есть ПО для компа, которое посылает команды по UDP на МК.
SNMP по UDP уже реализованно, но мне дано задание
дописать блок, позволяющий делать это по ТСР.
Моё начальство считает, что это надо сделать,
т. к. хотят побольше надёжности...

RTOS у меня на работе вообще не любят...
Хотят, чтобы весь программный код был под контролем...

МК - С167.
dmivs
Цитата(san822 @ Jul 18 2006, 10:12) *
Моё начальство считает, что это надо сделать,
т. к. хотят побольше надёжности...


Вобщем, вам надо заняться не реализацией SNMP поверх TCP, а образованием начальства biggrin.gif
san822
Т. е. мне можно смело идти и сказать,
что мы можем обойтись протоколом UDP,
а TCP для этого - это неоправданная экзотика ?
smile.gif
zltigo
Цитата(san822 @ Jul 18 2006, 13:05) *
Т. е. мне можно смело идти и сказать,
что мы можем обойтись протоколом UDP,
а TCP для этого - это неоправданная экзотика ?
smile.gif

Насколько я понимаю, "идеи" по поводу TCP у "начальства" возникли не просто так, а по причине
наличия каких-то проблем, которые похоже зная заклинание "TCP и гарантированная доставка" оно и
попыталось решать таким путем. Возникает вопрос - а какие проблемы, и не стоит-ли решать их???
san822
Я думаю идеи возникли из-за того,
что они знют, что ТСР надежнее UDP и хотят
использовать это.
Хотя для данного случая - это, на мой взгляд, просто перестраховка,
ведь от компа до МК всего несколько метров кабеля...
Dainis
Большество SNMP софтов для PC не будет родерживать SNMP over TCP !
Это тоже немаловажный аргумент.
san822
Цитата(Dainis @ Jul 18 2006, 17:13) *
Большество SNMP софтов для PC не будет родерживать SNMP over TCP !
Это тоже немаловажный аргумент.


А не могли бы Вы назвать софты,
которые могут поддерживать SNMP over TCP ?
Dainis
Цитата(san822 @ Jul 24 2006, 10:00) *
Цитата(Dainis @ Jul 18 2006, 17:13) *

Большество SNMP софтов для PC не будет родерживать SNMP over TCP !
Это тоже немаловажный аргумент.


А не могли бы Вы назвать софты,
которые могут поддерживать SNMP over TCP ?


http://www.adventnet.com/products/snmputilities/index.html
http://www.ece.ucdavis.edu/ucd-snmp/
san822
Цитата(Dainis @ Jul 24 2006, 11:15) *


Dainis, а Вы сами использовали эту программку ?
Вам можно задавать по ней вопросы ?
Dainis
Цитата(san822 @ Jul 24 2006, 13:30) *
Цитата(Dainis @ Jul 24 2006, 11:15) *


Dainis, а Вы сами использовали эту программку ?
Вам можно задавать по ней вопросы ?



Непользовался ... sad.gif
defunct
Цитата(san822 @ Jul 18 2006, 13:47) *
Я думаю идеи возникли из-за того,
что они знют, что ТСР надежнее UDP и хотят
использовать это.

Предрассудки. Еще неизветно насколько надежной у вас получится реализация TCP на вашем МК. TCP сложнее, а следовательно РИСК и НАДЕЖНОСТЬ его реализации будет ниже чем у реализации UDP. А потеряться в сети могут как TCP так и UDP пакеты с равной вероятностью..


Цитата
Хотя для данного случая - это, на мой взгляд, просто перестраховка,
ведь от компа до МК всего несколько метров кабеля...

На мой взгляд это просто глупость. Скачайте соответвующий RFC на SNMP и ткните в нос вашему начальству, что SNMP over UDP по стандарту.
san822
Цитата


Вопрос по этой проге - при посылке запросов по ТСР она сама открывает логическое соединение
или это надо делать как-то по-другому ?

При перехвате того, что она выдает видно,
что прога ведет себя так, как будто соединение по ТСР уже открыто,
хотя его ещё надо окрыть...

И ещё обращение к администрации - если уж решили перенести тему,
то почему перенести не в "Интерфейсы" ,
а в "Микроконтроллеры " ?
Ну ладно, Вам виднее.
gala
А какие ПРОСТЫЕ протоколы (точка-точка) существуют?
или ссылку на обзор
sK0T
Цитата(san822 @ Jul 17 2006, 11:26) *
Нужно сделать соединение между МК и компом.
В Винде ХР есть соединение SLIP с TCP/IP,
мне рекомендовали использовать его.
Не подскажете какой-нибудь исходник на Си для МК(любого),
в котором реализован ТСР обмен ?
Я почитал документацию по ТСР, стал сомневаться,
что без хорошего исходника,
который мог бы послужить основой,
эта задача под силу такому "чайнику" как я,
а сделать хочется...


Почитал я ответы, и даже как-то растерялся! Что-то не туда разговор ушёл! Вы хотите TCP/IP на микроконтроллере? По SLIP на TCP/IP? Так смотрите скорее сюда! У меня так холодильник к интернету через машину с FreeBSD подключен был. :-)
san822
Холодильник к интернету ?
Это Вы такими оригинальными проектами занимаетесь
или у Вас дома система "умный дом" ?
smile.gif
GrayCat
Цитата(gala @ Sep 6 2006, 16:25) *
А какие ПРОСТЫЕ протоколы (точка-точка) существуют?
или ссылку на обзор
Широко используются протоколы семейства ModBus: ModBus RTU, ModBus ASCII, ModBus/TCP.
evg123
Есть классный сайт, где выложены стеки протоколов TCP/IP для 51 контроллеров с исходниками, которые легко адаптируются под любой 51-ый. Там в частности есть AT89S8252-реализация.
хотя я, их выложу, чтобы далеко не ходить. Там есть и другие (ссылка сайт - в исходниках)
Леонид Иванович
Решая задачу подключения к PC различных устройств, я когда-то на основе SLIP сделал вот такой простой протокол, возможно, заинтересует (есть исходники для PC, MCS-51, AVR):
http://www.spetspribor.com/support/software/wake/wake.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.