Инструкция по эксплуатации Rainbow Electronics DS1961S
Страница 23
DS1961S
23 из 38
адрес назначения является правильным (<0080h), мастер принимает данные страницы, начиная с
адреса назначения и до конца страницы данных, затем один байт FFh, затем инвертированное
значение CRC для кода команды, адреса назначения, переданной страницы данных и байта FFh.
Если адрес назначения является ошибочным (
≥0080h), мастер принимает вместо данных страницы
байты FFh. Сразу после приема CRC мастер ожидает время t
CSHA
, в течение которого напряжение
на 1-проводной шине не должно опускаться ниже 2,8В. В это время блок SHA вычисляет код
аутентификации сообщения на основании секретного кода, всех 32 байтов выбранной страницы,
регистрационного номера устройства (без CRC) и 3-байтного запроса. После этого мастер
считывает 160-битный MAC-код, за которым следует инвертированное значение CRC, что всегда
необходимо при безопасных пересылках данных. Если мастер продолжает чтение после приема
CRC, он принимает AAh.
Таблица 4. ВХОДНЫЕ ДАННЫЕ SHA-1 ДЛЯ КОМАНДЫ ЧТЕНИЯ
АУТЕНТИФИЦИРОВАННОЙ СТРАНИЦЫ
M0[31:24] = (SS+0)
M0[23:16] = (SS+1)
M0[15:8] = (SS+2)
M0[7:0] = (SS+3)
M1[31:24] = (PP+0)
M1[23:16] = (PP+1)
M1[15:8] = (PP+2)
M1[7:0] = (PP+3)
M2[31:24] = (PP+4)
M2[23:16] = (PP+5)
M2[15:8] = (PP+6)
M2[7:0] = (PP+7)
M3[31:24] = (PP+8)
M3[23:16] = (PP+9)
M3[15:8] = (PP+10)
M3[7:0] = (PP+11)
M4[31:24] = (PP+12)
M4[23:16] = (PP+13)
M4[15:8] = (PP+14)
M4[7:0] = (PP+15)
M5[31:24] = (PP+16)
M5[23:16] = (PP+17)
M5[15:8] = (PP+18)
M5[7:0] = (PP+19)
M6[31:24] = (PP+20)
M6[23:16] = (PP+21)
M6[15:8] = (PP+22)
M6[7:0] = (PP+23)
M7[31:24] = (PP+24)
M7[23:16] = (PP+25)
M7[15:8] = (PP+26)
M7[7:0] = (PP+27)
M8[31:24] = (PP+28)
M8[23:16] = (PP+29)
M8[15:8] = (PP+30)
M8[7:0] = (PP+31)
M9[31:24] = FFh
M9[23:16] = FFh
M9[15:8] = FFh
M9[7:0] = FFh
M10[31:24] = MP
M10[23:16] = (ID+0)
M10[15:8] = (ID+1)
M10[7:0] = (ID+2)
M11[31:24] = (ID+3)
M11[23:16] = (ID+4)
M11[15:8] = (ID+5)
M11[7:0] = (ID+6)
M12[31:24] = (SS+4)
M12[23:16] = (SS+5)
M12[15:8] = (SS+6)
M12[7:0] = (SS+7)
M13[31:24] = (SP+4)
M13[23:16] = (SP+5)
M13[15:8] = (SP+6)
M13[7:0] = 80h
M14[31:24] = 00h
M14[23:16] = 00h
M14[15:8] = 00h
M14[7:0] = 00h
M15[31:24] = 00h
M15[23:16] = 00h
M15[15:8] = 01h
M15[7:0] = B8h
Условные обозначения
Mt
Входной буфер блока SHA
0 < t < 15; 32-битные слова
(SS + N)
Байт N секретного кода; секретный код начинается с адреса 0080h
(См. карту памяти)
(PP + N)
Байт N страницы памяти; страницы памяти начинаются по
адресам 0000h, 0020h, 0040h и 0060h (См. карту памяти)
(SP + N)
Байт N блокнота
MP
MP[7:3] = 01000b,
MP[2:0] = T7:T5
(ID+N)
Байт N идентификационного регистра
Последний байт идентификационного регистра не используется
Обновление блокнота [A3h]
Команда обновления блокнота загружает данные из памяти в блокнот и устанавливает флаг
EN_LFS. Этот флаг позволяет использование команды загрузки первого секретного кода для
перезаписи данных, которые были только что прочитаны из памяти, не прибегая к вычислению
MAC-кода.
Блок-схемы команд обновления блокнота и записи блокнота очень похожи. Если адрес назначения
лежит в диапазоне 0000h – 007Fh, существуют два основных отличия. 1) Для команды обновления
блокнота байты данных, которые мастер посылает вслед за адресом назначения, отбрасываются;