Как генерируются «уникальные идентификаторы» для устройств 1wire?
Если бы я хотел создать собственное устройство 1wire, мне пришлось бы дать ему «глобально уникальный» 48-битный идентификатор.
Как генерируются эти идентификаторы? Как мы можем гарантировать отсутствие конфликтов идентификаторов с устройствами других марок?
@Sod Almighty, 👍-1
Обсуждение1 ответ
Лучший ответ:
Интересный вопрос. После некоторого поиска я не нашел однозначного ответа, но нашел несколько хороших подсказок.
Протокол 1-wire был создан компанией Dallas, которую позже купила Maxim Integrated. Таким образом, теперь компания Maxim контролирует его. Они продают протокол с явной особенностью, что каждое устройство, которое они производят, имеет уникальный идентификатор/серийный номер. Они контролируют его. Я не уверен, как это работает с другими производителями, хотя эта уникальность, вероятно, распространяется только на устройства Maxim и те, где соответствующий производитель имеет соответствующее соглашение с Maxim.
Таким образом, вы не можете быть уверены, что любой сгенерированный вами идентификатор уникален в группе всех других устройств. Вы можете попробовать использовать другой код семейства в адресе устройства (48 бит — это только часть фактического адреса вместе с 8-битным кодом семейства и 8-битной контрольной суммой), в частности тот, который в настоящее время не используется Maxim. Я нашел эту техническую статью со списком семейств устройств 1-wire. В ней говорится, что она может не включать все семейства устройств, но это единственный список, который я нашел.
Как вы написали «мы»: создание идентификаторов, уникальных для всей отрасли, может быть гарантировано только путем заключения соглашения с крупными игроками отрасли (при условии, что они захотят заключить такие соглашения). В противном случае ваши гарантии всегда ограничены. Вы можете держаться подальше от самых распространенных устройств (с неиспользуемым семейным кодом) и убедиться, что ваша организация выдает каждому устройству только один идентификатор.
- Эмуляция 1-проводных устройств
- Ошибка компиляции в nodeMCU вместе с датчиком температуры oneWire ds18b20 и ЖК-дисплеем 2x16 (не I2C)
- DS1820 плохие показания 4-го датчика
- Помогите с 1-проводным переводом на I2C
- Существуют ли хорошие и поддерживаемые библиотеки для использования моста DS2482 I2C с 1-Wire?
- DS18b20 Заказ датчиков на кабеле
- не может вернуть значение с float из функции
- Как считать адреса на нескольких платах DS2413 1-Wire GPIO, используя скетч Adafruit?
Если вы собираетесь поставить минус моему вопросу, то хотя бы наберитесь смелости сказать мне, почему., @Sod Almighty
наверное потому что вопрос не про ардуино, @jsotola
Я не ставил минус, но предполагаю, что ваш вопрос поставили минус, потому что он не про Arduino., @StarCat
Ой, извините, я, наверное, забыл написать «создать собственное устройство 1wire ДЛЯ ИСПОЛЬЗОВАНИЯ С ARDUINO» в этом чертовом вопросе!, @Sod Almighty
Где бы вы _порекомендовали_ мне его разместить?, @Sod Almighty
забыл написать "создать свое собственное устройство 1wire ДЛЯ ИСПОЛЬЗОВАНИЯ С ARDUINO"
... это не вопрос об Arduino ... прочитайте, о чем вы на самом деле спрашиваете, @jsotolaНет SE "создание устройств 1wire". Где еще я должен был спросить!?, @Sod Almighty
Ну, НЕ electronics.se, судя по всему! Мне что, продолжать гадать?, @Sod Almighty
Я думаю, electronics se — правильный сайт для вашего вопроса. Не беспокойтесь слишком сильно о минусах., @StarCat
Поскольку будет 2^48 уникальных IDS (281,474,976,710,656), то даже случайно сгенерированный IDS, вероятно, будет безопасным. И поскольку вы говорите, что это для Arduino, просто проверьте, нет ли других устройств на однопроводной шине с конфликтующим ID. Вы собираетесь разместить свои устройства *и чьи-то еще* на одном проводе?, @Nick Gammon