Страница 2 из 2

Добавлено: Ср июн 03, 2009 21:50:39
Yellow Tiger
ploop писал(а):А они там и есть справа - налево :)
Интернет тогда глючил - я стрелки перерисовал и строку эту убрал, а сегодня смотрю - снова все по-старому; я картинку заменил, а текст не заметил. :)

P.S. Я как раз гадал - кто-нибудь заметит этот разнобой? Придется кому-нить объяснять, как это произошло, или нет... Изображение

Добавлено: Ср июн 03, 2009 22:00:47
ploop
Угу, а я репу чешу, где левое устройство, а где правое... :)))
эхх..жаль что я не модератор
И что? Что было бы? Забанил бы меня за то, что в МЯУ задал вполне конкретный вопрос? Или за конструкторский зуд?

Добавлено: Ср июн 03, 2009 22:45:07
suslogon
:wink: я не настолько злой и жесткий чтобы тупо банить...

Добавлено: Ср июн 03, 2009 22:51:19
ploop
Yellow Tiger
Ладно, скоро получу несколько тинек 2313, попробую сделать. Оптопары есть, остальное дело техники.

Попытаюсь просто передать байт от одной к другой и обратно.

Добавлено: Ср июн 03, 2009 23:09:49
Yellow Tiger
А все-таки, Эль Котэ свистни - может у него уже наработки есть. ;)

Добавлено: Ср июн 03, 2009 23:13:38
ploop
Свисну.. До реальных дел еще не скоро (объект только строится), до следующей весны точно. Вот тогда мне наработки понадобятся, если жив буду :)

А пока так поэкспериментирую...

Добавлено: Ср июн 03, 2009 23:36:26
VIRGO
А как на предмет RS-485 ???

Добавлено: Чт июн 04, 2009 01:11:05
NiTr0
Это все - полудуплексная передача... А я встречал примеры полнодуплексной :) Суть - примерно как и в телефонных аппаратах, в подавлении в приемном тракте передаваемого сигнала.
В линию подается сигнал через усилитель с неким Ку и выходным сопротивлением R= Rлинии, с линии через делитель с коэф. 1/Ку сигнал идет на неинвертирующий вход ОУ, а н инвертирующий - заводится входной сигнал.
Итого: имеем на входе ОУ для исходящего сигнала - синфазное напряжение (в итоге напряжение на выходе =0), для входящего - соответственно только на неинвертирующем входе; которое и усиливается ОУ.
О модуляции цифрового сигнала и т.д. - отдельный разговор, цифру в линию гнать некошерно.

Добавлено: Чт июн 04, 2009 14:43:17
SeregaT
suslogon писал(а)::wink: я не настолько злой и жесткий чтобы тупо банить...
Жестокий и расчётливый. Сперва от####ить, а уже потом банить! :)))

Добавлено: Пт июн 05, 2009 14:00:36
ploop
Тут немного н адосуге подумал над протоколом... наверное надо будет упрощать.

1. Ведущий детектирует линию на работоспособность, подав
напряжение на линию сначала одной, потом другой полярности
через резистор 100к, и смотря напряжение на нём. Таким
током диод оптопары не зажжется, но если будет обрыв,
то плюём на эту затею и визжим диким голосом, что линия оборвана.

2. Если линия цела, запоминаем полярность, в которой включен диод.
От этого будем и плясать. Собственно, с таким протоколом
будет пофигу, как соединять провода, скрутил от руки и готово...

3. Ведущий поджигает диод на длительное время (пусть 500мс).
Ведомый видит это, готовится принять информацию после сброса
линии. Если ведущий ничего не передаёт в течении определённого
таймаута - ведомый возвращается в исходное (ждущее) состояние.

4. Ведущий передаёт на минимальной скорости служебную информацию.
Там указывается, что мы собственно от него хотим. Чтобы ведомый
передал нам данные, или принял от нас, на какой скорости,
или сделать тест скорости, ну и т.д. В конце контрольная сумма.

5. Ведущий после передачи переключается на приём, и ждёт.
Если после первого сеанса ведомый неправильно принял, он молчит.
Попытка повторяется несколько раз сначала, если нет - визжим.

6. Если всё ОК ведомый передаёт назад контрольную сумму послания,
ведущий её сверяет. Если на этом этапе ошибка - ждём и сначала.

7. Если и тут всё ОК, то оба переключаются на нужную скорость,
и начинают обмен в зависимости от того, что требуется.
Смысл такой - передающий передаёт пакет (N байт), сзади
контрольная сумма. Принимающий отсылает контрольную сумму назад,
того, что принял. Если там ошибка, это увидят оба и повторят
сессию.
-----
может быть 2 варианта повреждения пакета:
1. Повреждено тело пакета. Контрольная сумма на принимающей стороне
не сошлась. Приёмник считает контрольную сумму повреждённого пакета,
плюс самой контрольной суммы, т.е. от всего, что получил, и отсылает
назад - передатчик видит, что надо повторить.
2. Повреждена контрольная сумма, пакет цел. Опять же их общая контрольная
сумма не сойдется, передача повторится.

-----

8. Во время передачи подсчитывается количество ошибок.
Если оно превышает какую-то критическую норму, тут два варианта возможны:
а) Визжим, прекращаем обмен.
б) Переходим на более низкую скорость.
Реализацию вторго варианта во время передачи надо обдумать..

9. После передачи, если ведущему больше ничего не надо,
он сигнализирует об этом как нибудь ведомого, и тот
переходит в режим ожидания, а ведущий отцепляется от линии.

----------
Чую, реализация на ассемблере заставит попыхтеть мозжечок...
----------

Добавлено: Пт июн 05, 2009 16:53:57
Yellow Tiger
А если протокол не выдумывать, то можно с разными 1-wire-девайсами работать... :roll: Или я "ничего не понимаю", и "в этом-то и весь кайф"? Изображение

Добавлено: Пт июн 05, 2009 18:20:10
ploop
Или я "ничего не понимаю"
Не верно!
"в этом-то и весь кайф"?
Верно! :)))
Конечно хочется своё... Но, по сути, всё уже придумано. Я почитал на счет 1-wire. Но суть в чём - если б мне нужна была совместимость - я б не задумывался. А так есть полёт фантазии! Вообще все протоколы делятся на два вида: с потярями и без потерь. Самые простые примеры - TCP и UDP. Так же и тут. Мне надо без потерь (соответственно в ущерб скорости).

Добавлено: Пт июн 05, 2009 18:36:15
Yellow Tiger
Ах, вот где собака порылась (не к ночи будь помянута) - без потерь...