Цифровой измеритель температуры

Автор sanya9827, Четверг, марта 28, 2019, 00:21:14

« предыдущая тема - следующая тема »
Вниз

ran

#15
Среда, апреля 03, 2019, 05:30:56 Последнее редактирование: Среда, апреля 03, 2019, 07:24:21 от ran
Здесь хорошее описание протокола 1-Wire
http://mypractic.ru/ds18b20-datchik-temperatury-s-interfejsom-1-wire-opisanie-na-russkom-yazyke.html
Не совсем хорошее.
По-моему, здесь применено решение типа"неразрушающий шинный арбитраж". Если ответ на каждый бит адреса одинаков от нескольких ведомых, ведущее устройство продолжает думать, что его кто-то слышит, и процесс запроса продолжается. В какой-то момент (если в сети действительно есть такой адрес)  отвечать будет только один узел, он и ответит в итоге "за все". У ведущего есть возможность контролировать ответ на каждый бит, и если ответа нет, значит в сети нет таких адресов. Тогда он просто начинает опрос сначала, сразу выставляя "пройденный путь", а тот бит, при котором связь потерялась, инвертирует, чтобы изменить пространство поиска.
Алгоритм достаточно сложный, но вполне реализуемый. Если все так и обстоит на самом деле, готов помочь с отладкой, но на уровне С++.

RVL

РАН, по-видимому выражением "неразрушающий шинный арбитраж", Вы "разрушили" у Александра все нейронные связи! :-)

RVL

Александр, уже накопилось три задачи!
1) Структурно-функциональная схема.
2) Схема в протеусе.
3) Алгоритм программы микроконтроллера.
Начните с любой.

knoppix

Для общения по 1Wire сами писали библиотеку, воспользовались некой готовой, или воспользовались тем что предлагает Arduino?
Амурский Государственный Университет  - 2010 - Специалист
Harbin Institute of Technology - 2016 - M.Sc.Eng
Главный инженер-программист АСУ ТП

ran

РАН, по-видимому выражением "неразрушающий шинный арбитраж", Вы "разрушили" у Александра все нейронные связи! :-)
Да нет, мы совсем недавно это проходили!

Вверх