Ключи DC-2000, аналогично TM-2002, передают свой код путем изменения потребляемого
тока. Внутри у них, как мне недавно
подсказали, микросхема K1233KT1. Передача идет кодовыми
словами по 4 бита. В описании толком не указано как же считываются кодовые
слова, от младшего бита к старшему или наоборот, из-за этого возникло несколько
представлений ключей в ПЗУ. Любители копирования ключей уже придумали их
называть С1-С4, только описание что как кодируется выкладывать не торопятся.
Так что пишу что сам нашел.
1) Блок вызова CCD-2094. Процессор в этом домофоне не поддерживает никаких
ключей кроме далласов, поэтому ключи считывает специальная плата-адаптер.
Она читает и ключи формата даллас и DC-2000, а после
эмулирует ключ даллас на выходе.
Разработчики платы решили что кодовые слова передаются от
младшего бита к старшему, поэтому таблицу из описания K1233KT1 нужно
перевернуть вот так:
Значение слова
|
Код
|
0111
|
00
|
1011
|
01
|
1101
|
10
|
1110
|
11
|
1000
|
Стартовое слово
|
Полученный код передается в двух младших байтах, в третьем
всегда 01, в остальных нули.
Пример:
0001 0111 0111 1101 0111
1110 1011 1011 1101 - двоичный код
start 00 00 10 00 11 01
01 10 = 08 D6
Код на выходе платы = FA 00 00 00 01 08 D6 01
Что пишется в ПЗУ тут разницы нет, так как ключи даллас
передаются без изменений.
2)Контроллеры ТС/ТС-01 - используются совместно с CCD-2094M, М-10, М-20. Тут уже кодовые слова читаются от
старшего бита к младшему, так что биты в таблице будут стоять так как и
передаются. Зато полубайты теперь идут
от младшего к старшему, и байты в ПЗУ тоже.
Значение слова
|
Код
|
1110
|
00
|
1101
|
01
|
1011
|
10
|
0111
|
11
|
0001
|
Стартовое слово
|
Ключи в памяти занимают по 4 байта, из которых первых два -
код ключа DC-2000. В 3-ем байте ПЗУ всегда 80 для DC-2000. В 4-ом байте далласовская CRC вычисленная из первых 3-х байт. Для
наглядности вот кусок дампа одного из контроллеров:
Пример:
0001 1101 1110 1011 1110
0111 1110 1110 1101 - двоичный код
start 01 00 |
10 00 | 11 00 | 00
01 = 12 34
L H
L H L
H L H
Код в ПЗУ = 34 12 80
B1
Код даллас = F3 00
00 00 00 12 34 01
0001 1011 1011 0111 1011
1110 0111 1101 0111 - двоичный код
start 10 10 | 11
10 | 00 11 |
01 11 = AB
CD
L H L H L H L H
Код в ПЗУ = CD AB 80 02
Код даллас = AB 00 00 00 80 AB CD 01
3)В CCD-40 видимо есть баг, ключи сохраняются аналогично контроллерам TC/TC-01, но первый байт ключа всегда равен нулю.
0001 1011 1011 0111 1011
1110 0111 1101 0111 - двоичный код
start 10 10 | 11
10 | 00 11 |
01 11 = AB
CD
L H L H L H L H
Код в ПЗУ = CD 0B 80 EC
Код даллас = AB 00 00 00 80 0B CD 01
4)Возможно тут
должен быть CCD-2094.1, но у меня также ни одного под рукой нет, к тому же там
сейчас каждый месяц новая прошивка, кто знает как они извращаются над ключами.
В общем, во всём этом байтолюбстве без бутылки не разберешься, зато
интересно.