Первые шаги по исследованию протокола

Исследование протокола решено было начать с самого простого. Немного переделав прошивку устройства для работы по протоколу 1-wire, описанного в предыдущей теме под пунктом 4, я начал последовательно посылать ключу RW1990 команды от 00h до FFh. После каждой такой посылки, устройство ожидало, какого либо ответа от ключа. Всего было найдено 3 команды, 2 из которых специфицированы в документации на DS1990A фирмы Maxim:

1) 33h – основная команда, которая используется для чтения ПЗУ. В ответ на неё ключ возвращает 8 байт (1 байт – код семейства, 6 байт – уникальный серийный номер, 1 байт – байт контроля четности CRC). Более подробно описание команды можно изучить в документации производителя, в пределах данной статьи не вижу в этом необходимости.

2) F0h – тоже специфицированная команда, которая называется поиск ПЗУ (Search ROM). Она предназначена для определения количества одновременно подключенных к шине Slave-устройств. Тут хочется отметить, что поддержка этой команды не реализована в ряде устройств, среди таковых попадаются некоторые модификации ключа DS1990.

3) C4h – команда не специфицирована. В ответ на неё RW1990 отвечает одним байтом FEh. Пока однозначно сказать, для чего предназначена данная команда, не могу. Командой записи быть не может, ибо тогда всё получается очень просто. Я думаю, что FEh – идентификатор ключа, поэтому если кто может сказать, для чего нужна команда C4h, пусть не молчит, а напишет мне. Вместе мы сможем воссоздать полную картину и написать подробный Datasheet RW1990.

Теперь подойдем к этому проекту с другой стороны, со стороны дубликатора. Снимем характеристику прибора, так сказать, на «холостом» ходу. Такой маневр позволит нам в будущем выделять из временных диаграмм записи ключей стандартные элементы, каковыми являются сброс и т.п. Согласно технической документации на протокол, мастер-устройство (в нашем случае – дубликатор) должно генерировать чередующиеся импульсы лог. «1» и лог «0» с продолжительностью более 480 микросекунд (для стандартной скорости). Длительный импульс логического нуля говорит о том, что мастер-устройство посылает сигнал сброса.

Подключив щупы логического анализатора к контактной площадке дубликатора, получаем следующую картину:

Ваше внимание на то, что на рисунке показаны усредненные значения временных интервалов. Самый длительный провал напряжения составляет 6.3 мсек – этого вполне достаточно, чтобы полностью разрядить конденсатор внутри таблетки. Впрочем, для этих целей хватит и 385 микросекунд, которые мы также можем наблюдать на диаграмме. Непонятным остается тот момент, для чего дубликатором дополнительно генерируется сигнал логической единицы продолжительностью порядка 100 микросекунд.

Итак, когда мы с Вами будем анализировать протокол записи, то удержание мастером линии более 385 микросекунд будем однозначно считать сбросом.

В заключении хочется сказать, что весь материал предназначен лишь для ознакомления. Использование наработок в коммерческих целях строго запрещено. Перепечатка материалов возможна только с моего разрешения и с соблюдением ссылок на первоисточник. Желающих поддержать не только словом, но и делом, а также поблагодарить – прошу ко мне на почту (цветы и конфеты не пью).