Страница 1 из 5
Цифровая токовая петля + много клиентов
Добавлено: Чт сен 26, 2013 18:16:45
Beggar
Здравствуйте. Нужна экспертная оценка идеи. Планирую сделать электронный ценник. Идея следующая: один ведущий и много ведомых устройств (сам ценник). Ведущий общается с ПО на PC по UART. Ведущий и ведомые на tiny 2313. Среда передачи – витая пара, способ – токовая петля. Питание подавать тоже по витой паре. Количество ведомых - до 80. Длинна линии до 20 метров. Ведомый имеет семи сегментный индикатор. Потребление каждого ведомого ~ 35мА при 5 В. Ведущий и ведомый питаются от одного источника. Напряжения питания от 25 до 27 В, каждый ведомый имеет на борту DC-DC на MC34063, для того что бы понизить общий ток в витой паре по питанию и вписаться в 600 мА.
Общаться ведущий с ведомым будут по токовой петле – 0/20мА. Сигнал - падение на резисторе 16Ом, падение фиксирую встроенным компаратором. Падение получается 320мВ. При максимальном количестве ведомых (80) сопротивление (без учёта сопротивления проводников) = 1280 Ом. Напряжение на источнике тока для петли получатся 25-27 В.
Компаратор генерирует прерывание по возрастающему и по спадающему фронту. Считаем количество тактов таймера. Если время импульса 125 мкС +/-15% – логическая единица, 250 мкС+/- 15% – логический ноль. Пауза между импульсами 125мкС.
В итоге скорость передачи ~3.2KBs. Вполне хватает, при 80-ти ведомых, что бы всем дать по 5-ти байтной команде за секунду.
Все tiny 2313 тактируется от внутреннего осциллятора.
На макете собрал ведущего и ведомого, воткнул между ними 40 метров витой пары, подавал меандр 4KHz, по прерыванию от компаратора инвертировал один из выходов контроллера, смотрел осциллографом - на выходе тот же сигнал что и подавал, но не всегда, иногда компаратор не срабатывает.
Предыстория: Есть у меня маленький магазин самообслуживания, обслуга не всегда вовремя меняет бумажные ценники, или просто путаются. Штраф большой. Я программист по образованию, на контроллерах всякие штуки делал. С длинными линиями дела не имел, что такое индуктивность и ёмкость линии и как это влияет на работу для меня страшный матан.
Сам вопрос: я на верном пути? Какие подводные камни встретятся? Не повышибает ли выходы контроллера какая-нибудь наводка.
Заранее очень благодарен за ответы.
Схему прилагаю.

Re: Цифровая токовая петля + много клиентов
Добавлено: Чт сен 26, 2013 19:19:37
vem566
На токовых петлях делали на заре компьютеров подключение мониторов. Все прекрасно работало до 50 метров. Но и у передатчика и у приемника стояли оптопары.
Предложенная идея имеет право на жизнь. Однако, при увеличении длины возрастают наводки. Вполне могут появиться ложные срабатывания. Может есть смысл в приемниках поставить оптику?
Витая пара (типа UTP) работает на частотах до 1 ГГц при длине до 100 метров. Правда там уровень между 0 и 1 = 3 вольта.
Re: Цифровая токовая петля + много клиентов
Добавлено: Чт сен 26, 2013 19:23:04
Z_h_e
20 метров это ж не расстояние. Зачем такие сложности. Трехжильный кабель(+питание, данные, общий). Отпадают источники питания каждого ценника. Данные-обычный UART, не надо мудрить с токовой петлей. Ну на крайняк 485, но думаю не понадобится.
Re: Цифровая токовая петля + много клиентов
Добавлено: Чт сен 26, 2013 22:45:10
shads
Z_h_e писал(а):20 метров это ж не расстояние. Зачем такие сложности. Трехжильный кабель(+питание, данные, общий). Отпадают источники питания каждого ценника. Данные-обычный UART, не надо мудрить с токовой петлей. Ну на крайняк 485, но думаю не понадобится.
100%.....
Я даже километр таким способом (+питание, данные, общий) организовывал, все ОК.
http://asis-kbr.ru/forum/viewtopic.php?f=9&t=107
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 07:01:10
bolek
Z_h_e писал(а):20 метров это ж не расстояние. Зачем такие сложности. Трехжильный кабель(+питание, данные, общий). Отпадают источники питания каждого ценника. Данные-обычный UART, не надо мудрить с токовой петлей. Ну на крайняк 485, но думаю не понадобится.
Поддерживаю! Только 80 ценников напрямую в стандартный UART не включить.
А в нарисованной ТС картинке нужны гальванически развязанные источники питания для каждого модуля (нужен DC-DC конвертер с трансформатором), так что 34063 здесь не подойдет, если ее включать по стандартной схеме.
P.S. В принципе идея здравая, только применение очень уж ограничено количеством ценников. А если понадобится добавить еще (ассортимент товара расширится)?
Лучше сразу заложить возможность включения гораздо большего количества ценников.
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 08:04:40
Slabovik
Не нравится последовательное соединение - при неполадках (плохой контакт в разъеме) у одного, нагибается вся магистраль. Множественные подключения делают параллельно на шину. Очень неплохой и дальнобойный стандарт RS-485, если хочется изобретать, то в качестве отправной точки можно взять ISP или I2C (сложнее, но универсальнее), и "удлинить" их, адаптировав на работу с длинной линией (снизив скорость, буферизовав выходы), в итоге всё ограничится тремя проводниками... Но лучше RS-485 - это на 1 провод больше, зато большая универсальность. А сами ценники к шине можно будет подключать обыкноценной 4-pin RJ-11 в любом месте...
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 08:15:40
petrenko
Если припомнить древние сети у "буржуинов", то там были одно время популярны типа "моноканал" на коаксиале, причём по нему и сигнал и питание было.
( Не помню, как сие обзывалось - по аглицки как то - можно пошукать в WWW ,если это важно.. )
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 09:53:08
bolek
Slabovik писал(а):... Множественные подключения делают параллельно на шину. Очень неплохой и дальнобойный стандарт RS-485,...

А сколько подключений к линии допускает стандарт?
http://ru.wikipedia.org/wiki/RS-485 :
- До
32 приёмопередатчиков в одном сегменте сети.
Сейчас есть микросхемы, которых можно больше навтыкать в сегмент, но все же не 80, как нужно ТС, т.е. все же тупо "в лоб" задачка не решается, надо хоть немного думать-читать-считать.
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 11:26:20
Slabovik
32 примопередатчика, а здесь только приёмники:
Стандарт RS-485 не оговаривает:
- параметры качества сигнала (допустимый уровень искажений, отражения в длинных линиях)
типы соединителей и кабелей,
гальваническую развязку линии связи,
протокол обмена.
На практике количество соединений определяется протоколом обмена, а не чисто теоретическим и совершенно неясно откуда взявшимся числом "32". Но даже если это принять за догму, репитеры и разветвители всё-равно никто отменить не смог...
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 13:02:08
bolek
Slabovik писал(а):На практике количество соединений определяется протоколом обмена, а не чисто теоретическим и совершенно неясно откуда взявшимся числом "32".
Протокол никак не влияет на количество соединений, это уже
логический уровень организации обмена. На количество узлов же влияет параметры
физическлго уровня.
Если заглянуть в стандарт, то допустимое количество узлов определяется очень просто:
- входное сопротивление драйвера 12 кОм
- допустимое суммарное входное сопротивление 375 Ом
Отсюда допустимое количество узлов: 12000/375=
32
Другое дело, что в более современных микросхемах входное сопротивление выше 12 кОм, поэтому таких узлов можно подключить больше.
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 14:09:00
Beggar
Про оптопары в каждом ведомом я думал, это вариант не подходит по условию. Если оптопары включить параллельно падение на 80-ти должно быть 120 В. Если последовательно – то ток 1,6 А.
Про просто всех посадить на UART – я даже не сомневаюсь что в моих условиях это будет не работать. Стандарт – точка-точка, длинна 3-5 метров.
Вариант с RS-485 отпадает по цене, одна микруха протокола стоит столько же сколько tiny2313+семисегментник. Удорожание – 1,7-1,8 раза. Это неприемлемо.
По поводу маленького ассортимента. Это я так планирую сделать одну ветку. Т.е одна полка – одна ветка. Один проход – восемь полок, восемь веток. Одно ведущее устройство должно уметь работать с минимум восьми ветками. Но это сейчас не главное, в ведущем я не вижу проблемы как сделать.
Повреждение линии – вещь плохая. Ценники при подаче питания моргают восьмёрками 10 секунд, например, сразу видно где оборвалось. Кабель будет спрятан за торцом полки, повредить его можно будет только намеренно. Это уже работа СБ.
Вариант с соединением RJ 45 я рассматривал и отказался. Во-первых ценник ставиться раз и навсегда, его не нужно отключать и подключать. Скорость монтажа неважна. Розетка, самая дешёвая стоит 35 центов. Я прикидывал и корпус с розетками. Разлетаются они на раз. Это потенциальный источник проблем. Хорошая розетка стоит 1 доллар, нужно две – это не много, это ОЧЕНЬ много! Так что только клеммное соединение.
Кстати я сделал полностью рабочий вариант на 1-wire. Этот девайс сделан на DS2413. Мне не нравиться ни цена, ни скорость. Плюс, ведущий должен быть на чём-то интеллектуальном, на чём будет управляющий софт крутиться.
Вот почему сейчас рассматриваю вариант с петлёй. Мне нужна оценка этой идеи. Всё должно быть максимально просто и дёшево.
Спасибо за комментарии.
У меня вопрос, почему все ведомые должны быть гальванически развязаны друг от друга и от ведущего, ведь петля от них уже развязана?
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 15:29:11
bolek
Beggar писал(а):У меня вопрос, почему все ведомые должны быть гальванически развязаны друг от друга и от ведущего, ведь петля от них уже развязана?
Смотрим в схему на токоизмерительные (подключенные к компаратору) резисторы: то, как они нарисованы, задает только разность потенциалов между входами компаратора (плавающее включение). А какое будет напряжение на входе компаратора относительно общего провода МК?
Чтобы схема работала правильно, нужно чтобы напряжение на входах компаратора было от 0 до Uпит. МК. Чем оно обеспечивается в этой схеме? Явно - ничем, неявно - входным сопротивлением (сопротивлением утечки входа) компаратора, его можно посмотреть в даташите на МК.
Вот, на скорую руку, моделька измерительной части схемы из первого поста: блоки по 10 измерительных резисторов (16*10=160 Ом), 1,8 МОм - имитация входного сопротивления входов компараторов (от фонаря).

Видно, что схема неправильная - напряжения на входах компараторов выходят и за Uпит и ниже 0.
Так что без гальванической развязки источников питания ценников не обойтись.
А если ставить DC-DC с гальванической развязкой - скорее всего, это выйдет дороже добавления микросхем RS-485.
P.S. Еще думать надо: самое первое решение - самое простое (как правило) и неработающее (тоже как правило), а конечная цена будет в 2-3... раз дороже, чем первоначально предполагалось
P.P.S. Посмотрел на цену DS2413

Это точно не тот вариант, любые удорожания (RS485, DC-DC с развязкой и пр.) выйдут намного дешевле.
Maxim в своем обычном репертуаре...
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 16:18:14
kalobyte
вариант могу предложить с коаксиальным кабелем 50ом
по нему питание и модулированный сигнал
я вообще все хотел сделать вилку аврааменко с одним проводом, по которому идет питание и данные, но думаю такая штука не прокатит у тебя по санитарным нормам
хотя думаю 100кгц никому не помешают, а на 95кгц передают по осветительной сети данные со счетчиков
по крайней мере я случайно в розетке у себя обнаружил
минус коаксиала - надо его аккуратно разрезать, а то на стыках будет падать мощность
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 16:58:40
Beggar
Смотрим в схему на токоизмерительные (подключенные к компаратору) резисторы: то, как они нарисованы, задает только разность потенциалов между входами компаратора (плавающее включение). А какое будет напряжение на входе компаратора относительно общего провода МК?
Компаратору всё равно какое там напряжение относительно земли, ему нужно напряжение между входами что бы сработать.
Смотрим даташит:
The Analog Comparator compares the input values on the positive pin AIN0 and negative pin AIN1. When the voltage on the positive pin AIN0 is higher than the voltage on the negative pin AIN1, the Analog Comparator output, ACO, is set. ....and blah, blah, blah.....
Я сначала экспериментировал с LM 311, на нём всё заработало.
Смотрим даташит на него:
Both the inputs and the outputs of the LM111, LM211 or the LM311 can be isolated from system ground, and the output can drive loads referred to ground,
А иначе зачем компаратору отрицательный вход? Так бы он и мерял напряжение относительно своей земли положительным входом (я про встроенный компаратор tiny2313)
Про то что входы встроенного компаратора могут быть изолированы от земли в даташите на 2313 нет не слова. Но эксперимент показывать что могут.
Спасибо за комментарий.
Мне всё таки остаётся неясным зачем развязывать ведомые друг от друга?
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 17:03:09
Beggar
Спасибо за предложение, kalobyte. Но не прокатит у меня коаксиальный кабель. Это же нужны разъёмы, модулировать / демодулировать сигнал. Короче слишком много мороки.
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 17:03:35
bolek
Beggar писал(а):Компаратору всё равно какое там напряжение относительно земли
Я не буду пытаться Вас переубедить, делайте как нравится или считаете правильным - это ВАШ проект.

Успехов!
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 17:44:09
Beggar
Мне интересны все замечания, может я чего-то не понимаю, я вполне допускаю. Так всё таки могут быть входы компаратора отвязаны от земли?
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 17:51:20
vem566
Конечно могут. Компаратор срабатывает от разницы межу входами. Beggar совершенно правильно все объяснил. Но вернусь к помехам. Если петля "оторвана" от общего провода, возможна разность потенциалов между петлей и землей. А эта разность в состоянии пробить все входы за раз. Можете сами провести эксперимент. Возьмите и измерьте напряжение на корпусе компьютера и нулем в розетке или батареей. Высокоомным вольтметром переменного напряжения. Если корпус компа не заземлен - удивитесь.
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 18:01:42
Z_h_e
bolek писал(а):Только 80 ценников напрямую в стандартный UART не включить.
Прошу обмотивировать Ваше высказывание.
Beggar, попробуйте то что я предложил. Поверьте, оно заработает. Только выберите правильное сечение кабеля, чтобы хватило всем питания и быть может необходимо будет усилить выход передатчика UART (ведущее устройство). Оставте место на платах под max485, на всякий случай.
P.S. В 1998 году играл в StarCraft "по сети". Два компа были соеденены через COM порты, кабель бы спаян из КММ4-0,35. Никаких витых пар, экран не подключен. Длина 30м. Славные были баталии ночные.
Re: Цифровая токовая петля + много клиентов
Добавлено: Пт сен 27, 2013 18:31:25
Beggar
Я понял что есть решение и на UARTе. Я обязательно буду экспериментировать с ним, но уже в другой ветке. В этой я всё таки хочу обсудить решение с петлёй.
Сейчас я вижу два нерешённых момента:
1. Нужна ли гальваническая развязка ведомых.
2. Что делать с опасной разностью потенциалов между петлёй и землёй питания, если такая будет.
Во втором случае может поставить супрессоры на каждый ведомый между входом петли и землёй типа ESD5B5.0ST1G - Bi-directional ESD Protection Uпорог: 5.8 В: Iутеч: 1 мкА