Небольшой вопрос по 1wire

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

Первым передается прямой бит ответа, затем инвертированное значение. Таким образом при чтении на один бит приходится два слота времени.
PS Пусть имеется 2 устройства с нулевым битом 0 и 1. Читая их получаем в качестве ответа значение 0 и 1. Но по монтажному ИЛИ (открытый коллектор датчика) к контроллеру доходит только 0. На следующий запрос (второй бит команды поиска) подчиненные устройства отправляют инвертированные значения и мастер получит уже 1 и 0. Таким образом мы понимаем, принимая два нуля подряд, что устройства имеют различные значения бит в данной позиции.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Вс авг 21, 2016 19:53:33

Сообщение Catdawr »

Ага, теперь более-менее понятно, спасибо.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Catdawr писал(а):Ага, теперь более-менее понятно, спасибо
рано благодарите, вас слегка ввели в заблуждение
dr.doc писал(а):Первым передается прямой бит ответа, затем инвертированное значение. Таким образом при чтении на один бит приходится два слота времени.
это не соответствует действительности. данная процедура двухбитовго обмена работает ТОЛЬКО для "поиска адресов устройств" - особая процедура, при которой ведущее устройство опрашивает всю шину и определяет, сколько там ведомых и какие у них адреса. при обычном обмене всегда используется обычный обмен по 1 биту
Catdawr писал(а):как я понял линия в конкретный момент, находится только в 1ом из 2х состояний, а датчики сигналы, как я понял, посылают одновременно
при обычном обмене всегда отвечает только один датчик - тот, который опознал свой адрес. если вы применили "безадресное" обращение (SKIP_ROM), будут отвечать сразу все датчики и, скорее всего, в итоге получится совершенно бесполезная каша, но это уже ваши проблемы, в стандарте такой режим не рассматривается, а команда SKIP_ROM должна применяться только при наличии одного ведомого устройства на линии
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

ARV писал(а):а команда SKIP_ROM должна применяться только при наличии одного ведомого устройства на линии
Не обязательно. Она может применяться для посылки одной команды одновременно всем ведомым. Как пример, для датчиков температуры - это команда преобразования.
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1486
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Почему только именно CRC кодов? CRC - это контрольная сумма. До нее дело дойдет не сразу. Если хост заранее не знает, что на линии несколько устройств, то при считывании информации (например идентификаторов) возникнут конфликты сигналов. В протоколе предусмотрена эта ситуация. Биты передаются и считываются дважды - прямой и следом инвертированный. Если конфликт на шине, хост 2 раза считает с шины низкий уровень, а это есть признак конфликта. А дальше хост принимает решение. Но это описАть - пальцы стопчешь. Читайте даташит.

Хосту не обязательно знать заранее сколько устройств на шине и их идентификаторы. В протоколе есть ВСЕ, чтобы хост вырулил из любой ситуации.

Меня опередили...
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Аlex писал(а):Не обязательно. Она может применяться для посылки одной команды одновременно всем ведомым
согласен, не упомянул, что SKIP_ROM на чтение должна подаваться только при наличии одного ведомого, а на запись - ограничений нет.
Ariadna-on-Line писал(а):Меня опередили...
притом, что вы в очередной раз выдали не совсем верную информацию.
Ariadna-on-Line писал(а):Хосту не обязательно знать заранее сколько устройств на шине и их идентификаторы
прежде чем пытаться считать какие-либо данные от ведомого, хост обязан знать либо что ведомый только один, либо идентификаторы всех ведомых.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1486
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Не хотите вы никак читать даташит. Вот

Search ROM [F0h]
When a system is initially brought up, the bus master
might not know the number of devices on the 1–Wire
bus or their 64–bit ROM codes. The search ROM command
allows the bus master to use a process of elimination
to identify the 64–bit ROM codes of all slave devices
on the bus.

примерный перевод.

Поиск ROM [F0h]
Когда система инициализируется, мастер шины
может не знать количество устройств на 1-Wire
шине или их 64-битных кодов ROM. Команда поиска ROM
позволяет мастеру шины использовать процесс исключения
для идентификации кодов 64-разрядных ROM всех подчиненных устройств
на шине.

Вот именно этот алгоритм стал для меня камнем преткновения в свое время.
Потому и запомнилось.

Фирма Даллас, вроде как, была скушана фирмой Максим.
https://www.maximintegrated.com/en/app- ... mvp/id/187
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

Предположим, на линии находятся 2 датчика . При считывании CRC кодов, когда 1 датчик посылает "1" а другой "0"
рано благодарите, вас слегка ввели в заблуждение
А может топикстартер под CRC имел ввиду идентификатор устройства?
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1486
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Может быть. Но CRC (Cyclic redundancy check) - это устоявшийся термин.
Идентификатор Далласа в его родной документации - просто ROM.
Ответить

Вернуться в «Периферия»