PS Пусть имеется 2 устройства с нулевым битом 0 и 1. Читая их получаем в качестве ответа значение 0 и 1. Но по монтажному ИЛИ (открытый коллектор датчика) к контроллеру доходит только 0. На следующий запрос (второй бит команды поиска) подчиненные устройства отправляют инвертированные значения и мастер получит уже 1 и 0. Таким образом мы понимаем, принимая два нуля подряд, что устройства имеют различные значения бит в данной позиции.
Небольшой вопрос по 1wire
Первым передается прямой бит ответа, затем инвертированное значение. Таким образом при чтении на один бит приходится два слота времени.
PS Пусть имеется 2 устройства с нулевым битом 0 и 1. Читая их получаем в качестве ответа значение 0 и 1. Но по монтажному ИЛИ (открытый коллектор датчика) к контроллеру доходит только 0. На следующий запрос (второй бит команды поиска) подчиненные устройства отправляют инвертированные значения и мастер получит уже 1 и 0. Таким образом мы понимаем, принимая два нуля подряд, что устройства имеют различные значения бит в данной позиции.
PS Пусть имеется 2 устройства с нулевым битом 0 и 1. Читая их получаем в качестве ответа значение 0 и 1. Но по монтажному ИЛИ (открытый коллектор датчика) к контроллеру доходит только 0. На следующий запрос (второй бит команды поиска) подчиненные устройства отправляют инвертированные значения и мастер получит уже 1 и 0. Таким образом мы понимаем, принимая два нуля подряд, что устройства имеют различные значения бит в данной позиции.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
- Реклама
- Сообщения: 34
- Зарегистрирован: Вс авг 21, 2016 19:53:33
рано благодарите, вас слегка ввели в заблуждениеCatdawr писал(а):Ага, теперь более-менее понятно, спасибо
это не соответствует действительности. данная процедура двухбитовго обмена работает ТОЛЬКО для "поиска адресов устройств" - особая процедура, при которой ведущее устройство опрашивает всю шину и определяет, сколько там ведомых и какие у них адреса. при обычном обмене всегда используется обычный обмен по 1 битуdr.doc писал(а):Первым передается прямой бит ответа, затем инвертированное значение. Таким образом при чтении на один бит приходится два слота времени.
при обычном обмене всегда отвечает только один датчик - тот, который опознал свой адрес. если вы применили "безадресное" обращение (SKIP_ROM), будут отвечать сразу все датчики и, скорее всего, в итоге получится совершенно бесполезная каша, но это уже ваши проблемы, в стандарте такой режим не рассматривается, а команда SKIP_ROM должна применяться только при наличии одного ведомого устройства на линииCatdawr писал(а):как я понял линия в конкретный момент, находится только в 1ом из 2х состояний, а датчики сигналы, как я понял, посылают одновременно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Не обязательно. Она может применяться для посылки одной команды одновременно всем ведомым. Как пример, для датчиков температуры - это команда преобразования.ARV писал(а):а команда SKIP_ROM должна применяться только при наличии одного ведомого устройства на линии
- Сообщения: 1486
- Зарегистрирован: Вс май 13, 2012 00:01:54
Почему только именно CRC кодов? CRC - это контрольная сумма. До нее дело дойдет не сразу. Если хост заранее не знает, что на линии несколько устройств, то при считывании информации (например идентификаторов) возникнут конфликты сигналов. В протоколе предусмотрена эта ситуация. Биты передаются и считываются дважды - прямой и следом инвертированный. Если конфликт на шине, хост 2 раза считает с шины низкий уровень, а это есть признак конфликта. А дальше хост принимает решение. Но это описАть - пальцы стопчешь. Читайте даташит.
Хосту не обязательно знать заранее сколько устройств на шине и их идентификаторы. В протоколе есть ВСЕ, чтобы хост вырулил из любой ситуации.
Меня опередили...
Хосту не обязательно знать заранее сколько устройств на шине и их идентификаторы. В протоколе есть ВСЕ, чтобы хост вырулил из любой ситуации.
Меня опередили...
- Реклама
согласен, не упомянул, что SKIP_ROM на чтение должна подаваться только при наличии одного ведомого, а на запись - ограничений нет.Аlex писал(а):Не обязательно. Она может применяться для посылки одной команды одновременно всем ведомым
притом, что вы в очередной раз выдали не совсем верную информацию.Ariadna-on-Line писал(а):Меня опередили...
прежде чем пытаться считать какие-либо данные от ведомого, хост обязан знать либо что ведомый только один, либо идентификаторы всех ведомых.Ariadna-on-Line писал(а):Хосту не обязательно знать заранее сколько устройств на шине и их идентификаторы
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1486
- Зарегистрирован: Вс май 13, 2012 00:01:54
Не хотите вы никак читать даташит. Вот
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
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
в моих словах нет противоречия даташиту, нет противоречия и тому, что вы процитировали.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Предположим, на линии находятся 2 датчика . При считывании CRC кодов, когда 1 датчик посылает "1" а другой "0"
А может топикстартер под CRC имел ввиду идентификатор устройства?рано благодарите, вас слегка ввели в заблуждение
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
- Сообщения: 1486
- Зарегистрирован: Вс май 13, 2012 00:01:54
Может быть. Но CRC (Cyclic redundancy check) - это устоявшийся термин.
Идентификатор Далласа в его родной документации - просто ROM.
Идентификатор Далласа в его родной документации - просто ROM.


