diod.club diod.club
Проектирование, изготовление, ремонт и обслуживание электроники
 Помощь   


 Страниц (1): [1]   

> Без описания
Буратино
  Отправлено: 04 Октября, 2015 - 19:14:57
Post Id
Newbie  (38)
Репутация: 0

В процессе разработки простенького устройства для автоматизации курятника остался свободным один пин на АТМеге32 (PB0 (SS/PCINT0). На нем есть возможность обрабатывать внешнее прерывание.
Вдруг (у меня так бывает частенько) возникает насущная необходимость в минимальные сроки и с минимальными потерями ресурсов принимать информацию на контроллер с удаленного скажем так датчика. Никаких требований по скорости и надежности нет.
В идеале еще бы и передавать данные.
Данные это пакет из 2-3 байт на контроллер ну и если че от контроллера к датчику.

Всегда работал с UART да еще и аппаратным да еще и на прерываниях (спер где то в свое время и по сей день пользуюсь решением), SPI аппаратно и в обе стороны ну и банально пинами дергал. Все.

Что бы такое правильное выбрать/посмотреть из протоколов/интерфейсов для реализации данного функционала?
СпасибО!

PS
пару пинов(но не аппаратных, с регистров сдвиговых) и таймерочек найдем думаю свободный если чеУлыбка

(Отредактировано автором: 04 Октября, 2015 - 19:23:58)

koyodza
  Отправлено: 04 Октября, 2015 - 19:52:51
Post Id
Advanced Member  (273)
Откуда: Kyiv
Репутация: 5

Если нужно быстро, то проще всего организовать синхронный интерфейс типа SPI, но понадобится хотя бы один (лучше два) дополнительный сигнал для тактирования. Сами данные можно сделать двунаправленными.
(Добавление)
Но я обычно стараюсь решать подобные задачи более комплексно если это возможно, а для этого надо знать что еще есть в системе и какого характера сигналы хотим вводить и выводить. Выше говорилось:
Буратино пишет:
пару пинов(но не аппаратных, с регистров сдвиговых) и таймерочек найдем думаю свободный

значит в системе уже присутствуют сдвиговые регистры (предположу что-то типа 74164 / 165 / 595). Почему бы просто не удлинить их?
Буратино
  Отправлено: 04 Октября, 2015 - 20:12:31
Post Id
Newbie  (38)
Репутация: 0

Расстояние между контроллером и датчиком(и) десятками или даже сотнями метров измеряется.

Еще раз (самому понятнее будет): есть контроллер с одним свободным аппаратным пином и парочкой не аппаратных пинов с регистров (если будет принципиально то наверное смогу еще один аппаратный пин высвободить заменой на регистровый).
Нужно слушать несколько 1-10 датчиков расположенных удаленно (до сотни метров).
Датчики работают асинхронно и думаю, что в моем случае можно мириться с тем что могут несколько датчиков одновременно что-то передавать на контроллер и соответственно не передать ничего.
Посылки от датчиков в несколько байт. Датчики с небольшим процом и свободным UARTом.
(Добавление)
Может вот так сделать:
[Rx Датчик1 Tx] -> [Rx Датчик2 Tx] -> [Rx Датчикn Tx] -> { ATMega32 }
Скорость взять самую низкую и реализовать UART на свободном пине?

(Отредактировано автором: 04 Октября, 2015 - 20:14:33)

koyodza
  Отправлено: 04 Октября, 2015 - 21:02:13
Post Id
Advanced Member  (273)
Откуда: Kyiv
Репутация: 5

Последовательное соединение датчиков не всегда удобно. При неисправном датчике связь с остальными невозможна. Лучше подключить датчики к линии параллельно. Для того чтобы избежать коллизий датчик перед началом передачи некоторое время слушает линию, если сохраняется тишина в течение заданного времени, то начинает передавать. Время лучше сделать немного разным у всех датчиков.

Электрический интерфейс может быть на базе 485 или открытый коллектор. Во втором случае скорость передачи придётся делать очень низкой.
Буратино
  Отправлено: 05 Октября, 2015 - 13:26:04
Post Id
Newbie  (38)
Репутация: 0

Спасибо, буду думать.
А какое таки по факту расстояние можно осилить на 4800 бод и без 485го драйвера?
koyodza
  Отправлено: 05 Октября, 2015 - 14:13:54
Post Id
Advanced Member  (273)
Откуда: Kyiv
Репутация: 5

Зависит от многих факторов: ёмкость кабеля, сопротивление нагрузки, наличие мощных источников помех, характер потребления датчиков и т.д.
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
UaExBB Style

[Script Execution time: 0.0104]     [ Gzip Disabled ]