Как генерируются «уникальные идентификаторы» для устройств 1wire?

Если бы я хотел создать собственное устройство 1wire, мне пришлось бы дать ему «глобально уникальный» 48-битный идентификатор.

Как генерируются эти идентификаторы? Как мы можем гарантировать отсутствие конфликтов идентификаторов с устройствами других марок?

, 👍-1

Обсуждение

Если вы собираетесь поставить минус моему вопросу, то хотя бы наберитесь смелости сказать мне, почему., @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


1 ответ


Лучший ответ:

2

Интересный вопрос. После некоторого поиска я не нашел однозначного ответа, но нашел несколько хороших подсказок.

Протокол 1-wire был создан компанией Dallas, которую позже купила Maxim Integrated. Таким образом, теперь компания Maxim контролирует его. Они продают протокол с явной особенностью, что каждое устройство, которое они производят, имеет уникальный идентификатор/серийный номер. Они контролируют его. Я не уверен, как это работает с другими производителями, хотя эта уникальность, вероятно, распространяется только на устройства Maxim и те, где соответствующий производитель имеет соответствующее соглашение с Maxim.

Таким образом, вы не можете быть уверены, что любой сгенерированный вами идентификатор уникален в группе всех других устройств. Вы можете попробовать использовать другой код семейства в адресе устройства (48 бит — это только часть фактического адреса вместе с 8-битным кодом семейства и 8-битной контрольной суммой), в частности тот, который в настоящее время не используется Maxim. Я нашел эту техническую статью со списком семейств устройств 1-wire. В ней говорится, что она может не включать все семейства устройств, но это единственный список, который я нашел.

Как вы написали «мы»: создание идентификаторов, уникальных для всей отрасли, может быть гарантировано только путем заключения соглашения с крупными игроками отрасли (при условии, что они захотят заключить такие соглашения). В противном случае ваши гарантии всегда ограничены. Вы можете держаться подальше от самых распространенных устройств (с неиспользуемым семейным кодом) и убедиться, что ваша организация выдает каждому устройству только один идентификатор.

,