RAINBOW ELECTRONICS DS1961S User Manual [ru]

DALLAS
SEMICONDUCTOR
www.maxim-ic.com
ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
Электрически программируемая и сти-
раемая при напряжении 5В память (EEPROM) объемом 1128 бит, раз­деленная на четыре страницы по 256 бит, 64-битный секретный код только для записи и до пяти регистров общего назначения для записи/чтения
Для осуществления записи требуется
знание секретного кода и возможность вычисления и передачи 160-битного
MAC-кода (Message Authentication Code, кода аутентификации сообще­ния) для авторизации
 Память секретного кода и память
данных может быть защищена от записи (целиком, или только страница
0) или переведена в режим эмуляции EPROM («запись в 0», страница 1)
Встроенный 512-битный блок SHA-1,
который предназначен для вычисления 160-битного MAC-кода и генерации секретных кодов
 Считывание и запись возможны в
диапазоне напряжений питания от 2,8В до 5,25В и диапазоне температур от
-40°C до +85°C
Обмен с хостом осуществляется по
одной цифровой линии на скорости
14,1 Кб в секунду с помощью 1-проводного протокола (1-Wire
Protocol)
Встроенный генератор 16-битной
контрольной суммы (CRC) обеспе­чивает безопасный обмен данными
 Ускоренный режим позволяет повы-
сить скорость обмена до 125 Кбит в секунду
Рабочий диапазон температур от -40°C
до +85°C
Длительность хранения данных не
менее 10 лет при температуре +85°C
DS1961S
iButtonTM с 1Кб защищенной EPROM
и блоком SHA-1
ОБЩИЕ ХАРАКТЕРИСТИКИ iButton
Уникальный, занесенный лазером и
проверенный на этапе изготовления
64-битный регистрационный номер (8-битный код семейства + 48-битный
серийный номер + 8-битная контроль­ная сумма CRC) гарантирует абсолют­ный контроль, так как не существует двух устройств с одинаковыми номерами
Встроенный контроллер многоточеч-
ной сети MicroLAN
Цифровая идентификация и получение
информации в одно касание
Компактный носитель информации в
виде кристалла микросхемы
Данные могут быть доступными при
касании объекта
Форма в виде таблетки обеспечивает
автоматическое центрирование в считывающем устройстве
Долговечный корпус из нержавеющей
стали с гравированным регистрацион­ным номером устойчив к внешним воздействиям
Легко прикрепляется с помощью
самоклеющейся подложки, фикси­руется собственным фланцем или напрессовываемым кольцом
Детектор присутствия выдает ответ,
когда считыватель в первый раз подает напряжение питания
Соответствует UL#913 (4-я редакция);
взрывобезопасное исполнение, утвер­ждено для использования в классе I, отделение 1, группы A, B, C и D (в зависимости от приложения)
iButton, 1-Wire и MicroCan являются зарегистрированными торговыми марками
Dallas Semiconductor.
1 из 38
DS1961S
F5 MICROCAN
0,36
ДАННЫЕ
5,89
0,51
ЗЕМЛЯ
©1993
DALLASDALLAS
YYWW REGISTERED RR
XX 33
000000FBD8B3
D
S
5
F
1
-
9
S
6
1
Ø17,35
Ø16,25
F3 MICROCAN
0,36
ДАННЫЕ
3,10
0,51
ЗЕМЛЯ
©1993
DALLASDALLAS
YYWW REGISTERED RR
XX 33
000000FBC52B
D
S
3
F
1
-
9
S
6
1
Ø17,35
Ø16,25
Все размеры приведены в миллиметрах.
ИНФОРМАЦИЯ ДЛЯ ЗАКАЗА
DS1961S-F5 F5 iButton
DS1961S-F3 F3 iButton
ПРИМЕРЫ АКСЕССУАРОВ
DS1963S SHA сопроцессор в виде iButton
DS9096P Самоклеющаяся подложка
DS9101 Универсальный зажим
DS9093RA Крепежное кольцо
DS9093F Держатель с защелкой
DS9092 Панелька для iButton
ОПИСАНИЕ iButton
DS1961S включает в себя 1024 бита EEPROM, память 64-битного секретного кода, 8-байтную страницу регистров/байтов управления, имеющую до пяти программируемых пользователем байт,
512-битный блок SHA-1 и полнофункциональный 1-проводный интерфейс в прочном корпусе iButton. Данные передаются последовательно с помощью 1-проводного протокола, который
требует только одного вывода данных и общего провода. DS1961S имеет дополнительную область данных, которая называется блокнотом и работает как буфер при записи основной памяти, страницы регистров или при изменении секретного кода. Данные вначале записываются в блокнот, откуда они могут быть считаны. После проверки правильности данных, команда копирования блокнота пересылает их в нужное место памяти, если был принят правильный 160­битный MAC-код. При вычислении MAC-кода используется секретный код и дополнительные данные, которые сохранены в DS1961S, включая данные идентификационного регистра устройства. Без MAC-кода может быть загружен только новый секретный код. Блок SHA-1 также может использоваться для вычисления 160-битного MAC-кода при чтении страницы памяти или при вычислении нового секретного кода вместо его загрузки.
DS1961S воспринимает особую команду «обновление блокнота». Правильное использование последовательности обновления после операции копирования блокнота уменьшает количество ошибок, связанных с ненадежно запрограммированными битами в условиях контактирования касанием (см. раздел «Запись с проверкой»). Последовательность обновления также обеспечивает возможность восстановления функционирования устройства с ненадежно запрограммированными битами.
DS1961S имеет собственный 64-битный регистрационный номер, который записан в ПЗУ лазером в процессе изготовления, что обеспечивает гарантированную идентификацию и позволяет осуществлять абсолютный контроль. Долговечный корпус MicroCan исключительно устойчив к агрессивным внешним условиям, таким как грязь, влажность и удары. Его компактный профиль в форме таблетки автоматически центрирует прибор в считывающем устройстве, что помогает пользователям легко им оперировать. Аксессуары позволяют монтировать DS1961S практически на любые поверхности, включая пластиковые держатели и идентификационные бэджи.
2 из 38
DS1961S
ПРИМЕНЕНИЯ
DS1961S может использоваться для разных целей, таких как ограничение доступа, аутентификация предмета или пользователя, послепроизводственный контроль за продукцией и проведение электронных платежей. Как носитель электронных денег (eCash), DS1961S может сохранять до трех расчетных файлов или «кошельков» одного провайдера услуг, что делает устройство подходящим для применения в небольших фирмах, таких как кафетерии, копировальные участки, парки для отдыха или частные клубы. Для повышения безопасности, а также в случае недостаточной вычислительной мощности микроконтроллера хоста, возможно совместное использование сопроцессора DS1963S, который может служить для проверки MAC­кода, сгенерированного DS1961S или для вычисления MAC-кода, необходимого для осуществления записи в DS1961S.
Рис. 1. БЛОК-СХЕМА DS1961S
Схема паразитного
питания
1-проводная
сеть
Блок управления
1-проводной шиной
64-битное
ПЗУ
Блок управления
функциями памяти
и SHA
Генератор
CRC16
Память данных
4 страницы
по 256 бит
64-битная
страница регистров
512-
битный
SHA
блок
64-битный
блокнот
64-битная память
секретного кода
ОБЗОР
Блок-схема, показанная на рис. 1, демонстрирует связи между блоками управления и блоками памяти DS1961S. Всего DS1961S имеет шесть основных компонентов хранения и обработки данных: 1) 64-битное ПЗУ, записанное лазером, 2) 64-битный блокнот, 3) четыре 32-байтных страницы EEPROM, 4) 64-битная страница регистров, 5) 64-битная память секретного кода и 6) 512-битный блок SHA-1 (Secure Hash Algorithm).
Иерархическая структура 1-проводного протокола показана на рис. 2. Мастер шины вначале должен послать одну из семи команд функций ПЗУ: 1) Чтение ПЗУ, 2) Сравнение ПЗУ, 3) Поиск ПЗУ, 4) Пропуск ПЗУ, 5) Продолжение обмена, 6) Пропуск ПЗУ в ускоренном режиме или 7) Сравнение ПЗУ в ускоренном режиме. По окончании команд ПЗУ ускоренного режима, посланных на стандартной скорости, устройство переходит в ускоренный режим, когда обмен
3 из 38
DS1961S
данными осуществляется на повышенной скорости. Протокол, который требуется для передачи команд функций ПЗУ, показан на рис. 9. После того, как команда функции ПЗУ успешно выполнена, становятся доступными функции памяти, и мастер может передать одну из восьми команд функций памяти и SHA. Протокол для этих команд показан на рис. 7. При считывании и записи всех данных первым передается младший бит.
64-БИТНОЕ ПЗУ, ЗАПИСАННОЕ ЛАЗЕРОМ
Каждый экземпляр DS1961S содержит в ПЗУ уникальный код длиной 64 бита. Первые 8 бит являются кодом семейства. Следующие 48 бит являются уникальным серийным номером. Последние 8 бит являются контрольной сумой (CRC) первых 56 бит (см. рис. 3). Контрольная сумма получена с помощью генератора, выполненного на основе сдвигового регистра и элементов «исключающее ИЛИ», как показано на рис. 4, и использующего полином X8 + X5 + X4 + 1. Дополнительную информацию о контрольной сумме, используемой фирмой Dallas Semiconductor, можно найти в книге «Book of DS19xx iButton Standards». Биты сдвигового регистра инициализируется нулем. Затем, начиная с младшего бита кода семейства, по одному биту в сдвиговый регистр вводятся данные. После ввода 8-го бита кода семейства вводятся биты серийного номера. После ввода 48-го бита серийного номера сдвиговый регистр содержит значение CRC. Если ввести еще 8 бит CRC, то содержимое регистра вновь станет равным нулю.
Рис. 2. ИЕРАРХИЧЕСКАЯ СТРУКТУРА 1-ПРОВОДНОГО ПРОТОКОЛА
Мастер
øèíû
Командный
уровень:
Команды функций
ÏÇÓ (ñì. ðèñ. 9)
команды функций памяти (см. рис. 7)
Специфичные
äëÿ DS1961S
1-проводная сеть
DS1961S
Доступные
команды:
Чтение ПЗУ Сравнение Поиск Пропуск Продолжение Пропуск ПЗУ в ускор. режиме Сравнение ПЗУ в ускор. режиме
Запись блокнота Чтение блокнота Загрузка первого секр. кода
Вычисление следующего Копирование блокнота
×
тение аутентифицированной страницы Чтение памяти
Обновление блокнота
ÏÇÓ
ÏÇÓ
ÏÇÓ
ñåêð. êîäà
Другие
устройства
Соответствующие
поля данных:
64-битный рег. номер, флаг RC 64-битный рег. номер, флаг RC 64-битный рег. номер, флаг RC Флаг RC Ôëàã RC 64-битный рег. номер, флаг RC, флаг OD 64-битный рег. номер, флаг RC, флаг OD
64-битный блокнот, флаги 64-битный блокнот Секретный код, флаги, память данных (после обновления блокнота) Секретный код, память данных, блокнот Память данных или страница регистров, секретный код, флаги, 64-битный рег. номер Память данных, секретный код, 64-битный рег. Номер, 3-байтный запрос в блокноте Память данных, страница регистров, 64-битный рег. номер Блокнот, память данных, флаги
4 из 38
Рис. 3. 64-БИТНОЕ ПЗУ, ЗАПИСАННОЕ ЛАЗЕРОМ
DS1961S
СТАРШИЙ
БИТ
8- CRCБИТНАЯ
48-БИТНЫЙ СЕРИЙНЫЙ НОМЕР
8- h)БИТНЫЙ КОД СЕМЕЙСТВА (33
МЛАДШИЙ
БИТ
Рис. 4. ГЕНЕРАТОР CRC
2-й
каскад
854
3-й
каскад
X
каскад
X
4-й
=1 =1
X
5-й
каскад
X
6-й
каскад
X
Входные данные
каскад
7-й
X
8-й
каскад
=1
X
Полином = X + X + X + 1
1-й
каскад
X
X
КАРТА ПАМЯТИ
DS1961S имеет четыре области памяти: память данных, память секретного кода, блокнот и
страница регистров с байтами пользователя и регистрами специальных функций. Память данных организована в виде страниц по 32 байта. Секретный код, страница регистров и блокнот имеют размер по 8 байт. Блокнот используется как буфер при записи памяти данных, при загрузке секретного кода и при записи страницы регистров.
Память данных, память секретного кода и страница регистров размещены в линейном адресном пространстве, как показано на рис. 5. Память данных и страница регистров имеют неограниченный доступ для чтения. Запись в память данных и страницу регистров требует знания секретного кода.
Секретный код может быть запрограммирован путем копирования данных из блокнота в память секретного кода или путем вычислений, использующих текущее значение секретного кода и содержимое блокнота как часть секретного кода. Секретный код не может быть непосредственно считан; доступ к нему имеет только блок SHA для вычисления кодов аутентификации сообщений.
Диапазон адресов 0088h – 008Fh, называемый страницей регистров, содержит регистры специальных функций, а также байты пользователя общего назначения и один байт производителя. Будучи однажды запрограммированными значением AAh или 55h, большинство этих байтов становятся доступными только для чтения и не могут быть изменены в дальнейшем. Любые другие коды не приводят к включению защиты от записи или активизации каких-либо функций, связанных с отдельными байтами. Специальными функциями являются: 1) защита от записи только секретного кода, 2) защита от записи одновременно всех четырех страниц памяти данных, 3) включение режима EPROM для страницы 1 памяти данных и 4) защита от записи только страницы 0 памяти данных. Когда включен режим EPROM, состояние битов в диапазоне адресов 0020h – 003Fh может быть изменено только с 1 на 0, если память данных не защищена от записи.
5 из 38
Рис. 5. КАРТА ПАМЯТИ DS1961S
ДИАПАЗОН АДРЕСОВ ОПИСАНИЕ ПРИМЕЧАНИЯ
DS1961S
0000h – 001Fh Страница 0 памяти данных
0020h – 003Fh Страница 1 памяти данных
0040h – 005Fh Страница 2 памяти данных
0060h – 007Fh Страница 3 памяти данных
0080h – 0087h Память секретного кода
1)
0088h
1)
0089h
1)
008Ah
008Bh
008Ch
008Dh
008Eh – 008Fh
0090h – 0097h
1)
Будучи однажды запрограммированными значением AAh или 55h, эти адреса становятся доступными только для
чтения. Любые другие сохраненные коды не приводят к включению защиты от записи или активизации каких-либо функций.
1)
1)
Защита от записи секретного кода
Защита от записи страниц 0 - 3
Байт пользователя, защита от записи самого себя
Байт производителя (только для чтения)
Байт пользователя/управление режимом EPROM для страницы 1
Байт пользователя/защита от записи только страницы 0
Байт пользователя/код производителя
64-битный идентификационный регистр
Доступ для записи невозможен без секретного кода
Доступ для записи невозможен без секретного кода
Доступ для записи невозможен без секретного кода
Доступ для записи невозможен без секретного кода
Доступ для чтения отсутствует; для записи знания секретного кода не требуется
Защита активизируется кодом AAh или 55h
Защита активизируется кодом AAh или 55h
Защита активизируется кодом AAh или 55h
Считывается AAh или 55h; см. текст
Режим активизируется кодом AAh или 55h
Защита активизируется кодом AAh или 55h
Функция зависит от значения байта производителя
Доступ только для чтения
Байт производителя может иметь значение 55h или AAh. Обычно он имеет значение 55h, указывая на то, что адреса 008Eh и 008Fh являются пользовательскими байтами для записи/чтения и не имеют никаких специальных функций или механизма защиты. Значение AAh указывает на то, что эти два адреса содержат запрограммированный производителем 16-битный идентификатор и защищены от записи. Идентификатор производителя может представлять собой идентификационный код, предоставленный потребителем, который позволяет прикладному программному обеспечению идентифицировать соответствующие DS1961S и быстрее выбирать подходящий секретный код. Для назначения и регистрации идентификатора производителя связывайтесь с изготовителем.
Диапазон адресов 0090h – 0097h называется идентификационным регистром. Обычно идентификационный регистр содержит копию регистрационного номера, записанного в ПЗУ устройства. Код семейства сохраняется по младшему адресу, за ним следует 48-битный серийный номер и 8-битная CRC, которая сохраняется по адресу 0097h. При чтении этих адресов (0090h – 0097h) мастер шины принимает отдельные биты регистрационного номера точно в той же последовательности, что и при выполнении соответствующей команды функций ПЗУ. В заказных версиях содержимое идентификационного регистра может представлять собой любую заданную потребителем последовательность. Для получения более подробной информации обращайтесь к изготовителю.
6 из 38
DS1961S
Рис. 6. АДРЕСНЫЕ РЕГИСТРЫ
Номер бита 7 6 5 4 3 2 1 0
Адрес назначения (TA1)
Адрес назначения (TA2)
Конечный адрес со
статусом данных (E/S)
(только для чтения)
T7 T6 T5 T4 T3
T15 T14 T13 T12 T11 T10 T9
AA
1
PF
1
1
T2 (0)
E2 (1)
T1 (0)
E1 (1)
T0 (0)
T8
E0 (1)
АДРЕСНЫЕ РЕГИСТРЫ И СОСТОЯНИЕ ПЕРЕСЫЛКИ
DS1961S использует три адресных регистра: TA1, TA2 и E/S (рис. 6). Такие регистры имеются и во многих других 1-проводных устройствах, но в DS1961S они работают несколько по-другому. Регистры TA1 и TA2 загружаются адресом назначения, который указывает, куда должны быть записаны или откуда считаны данные. Регистр E/S является регистром состояния пересылки и доступен только для чтения. Он используется для проверки целостности данных при выполнении команд записи. Так как блокнот DS1961S способен принимать данные только в виде блоков по 8 байт, три младших бита регистра TA1 всегда равны 0, а три младших бита регистра E/S (конечное смещение) всегда считываются как 1. Это означает, что все данные из блокнота используются для последующего копирования в основную память или память секретного кода. Бит 5 регистра E/S, называемый PF или флагом неполного байта (partial byte flag), устанавливается в 1, если количество бит данных, переданных мастером, не кратно восьми, или если данные в блокноте не являются действительными в результате пропадания питания. Успешная запись в блокнот очищает бит PF. Биты 3, 4 и 6 не несут никаких функций; они всегда считываются как 1. Флаг неполного байта поддерживает осуществляемую мастером проверку целостности данных после команды записи. Старший бит регистра E/S называется AA или флагом принятия авторизации (authorization accepted flag). Он указывает на то, что данные, сохраненные в блокноте, уже были скопированы в память по адресу назначения. Запись данных в блокнот очищает этот флаг.
ЗАПИСЬ С ПРОВЕРКОЙ
Для промежуточного хранения данных, записываемых в DS1961S, используется блокнот. Вначале мастер посылает команду записи блокнота. Заметьте, что запись в память должна производиться в рамках 8-байтного фрагмента с тремя младшими битами T2..T0 адреса назначения, равными нулю. Если биты T2..T0 будут переданы ненулевыми, устройство все равно их сбросит и будет использовать этот модифицированный адрес в качестве адреса назначения. Мастер всегда должен передавать восемь полных байт данных. Когда восемь байт данных переданы, мастер может выбрать чтение инвертированной CRC16, рассчитанной для кода команды записи блокнота, адреса и данных, переданных мастером. Мастер может сравнить эту CRC со значением, вычисленным им самим, для подтверждения правильности пересылки данных. После того, как блокнот записан, мастер должен всегда выполнять его чтение, чтобы убедиться в правильности записанных данных. Во время чтения блокнота DS1961S передает адрес назначения TA1 и TA2, а также содержимое регистра E/S. Флаг неполного байта (бит 5 регистра E/S) устанавливается в 1 в том случае, если последний байт данных, принятый DS1961S в процессе записи или обновления блокнота, был неполным, или если имело место пропадание питания во время последней процедуры записи блокнота. Флаг принятия авторизации (AA, бит 7 регистра E/S) обычно очищается при записи или обновлении блокнота; однако если обнаруживается, что он установлен в 1, значит, не была распознана команда записи или обновления блокнота. В этом случае мастер должен снова
7 из 38
DS1961S
перезаписать блокнот. После приема содержимого регистра E/S чтение блокнота заканчивается. Что происходит с данными блокнота в различных условиях, можно выяснить из описания команд записи и обновления блокнота. Вслед за данными блокнота следует инвертированная CRC, вычисленная для команды чтения блокнота, адреса назначения, регистра E/S и данных блокнота. Как и для команды записи блокнота, мастер может сравнить эту CRC со значением, вычисленным им самим, для подтверждения правильности пересылки данных. После проверки данных мастер может передать команду копирования блокнота в память. Как вариант, может быть передана команда загрузки первого секретного кода или вычисления следующего секретного кода, которые служат для изменения секретного кода. Для более подробной информации смотрите описание этих команд.
В устройствах, контактируемых касанием, надежность электрического контакта не может быть гарантирована. При плохом или прерывающемся контакте возможно завершение выполнения команды копирования блокнота при недостаточном напряжении питания, что может привести к появлению в битах EEPROM плавающих затворов с напряжением в промежуточной области между 0 и 1. Если такое произойдет, логическое состояние этих битов будет неопределенным. В зависимости от напряжения питания и окружающей температуры один и тот же бит может считываться хостом в одном состоянии, а встроенным блоком SHA-1 – в противоположном. Это приведет к полной блокировке устройства, так как хост не сможет сформировать правильный MAC-код для разрешения перезаписи этого бита. Для восстановления неудачно записанных битов и восстановления функционирования устройства была введена команда обновления блокнота. Вместе с командой загрузки первого секретного кода, команда обновления блокнота обеспечивает возможность восстановления битов EEPROM в нормальное состояние, устраняя блокировку устройства и позволяя снова производить запись.
Для предотвращения появления неудачно записанных битов после каждой команды копирования блокнота должна быть выполнена последовательность обновления. Последовательность обновления включает в себя команду обновления блокнота (с того же адреса, который использовался предыдущей командой копирования блокнота), за которой следует загрузка первого секретного кода. Команда обновления блокнота устанавливает флаг EN_LFS. Этот флаг разрешает команде загрузки первого секретного кода производить запись по адресам 0000h – 007Fh, т.е. в память данных. Использование команды загрузки первого секретного кода позволяет мастеру скопировать блокнот в память без необходимости вычисления MAC-кода. Если мастер передаст после команды обновления блокнота любую другую команду, которая изменяет данные в блокноте или адрес назначения, флаг EN_LFS будет сброшен в 0. Это исключает использование команды загрузки первого секретного кода для записи данных, отличных от данных обновленного блокнота, и запись по адресу, отличному от установленного во время обновления блокнота. Для адресов назначения 0080h и выше команда обновления блокнота ведет себя точно так же, как команда записи блокнота. В этом случае флаг EN_LFS не устанавливается, поэтому невозможно обновить данные в памяти секретного кода (0080h) или в странице регистров (0088h). Это защищает секретный код от считывания с помощью команды обновления блокнота, за которой следует чтение блокнота.
КОМАНДЫ ФУНКЦИЙ ПАМЯТИ И SHA
В соответствии с требованиями безопасности, которые учтены в конструкции, DS1961S ведет себя иначе, нежели другие устройства iButton с памятью. Несмотря на то, что большая часть памяти DS1961S может быть считана таким же образом, как и у других устройств iButton с памятью, попытки чтения секретного кода приведут к считыванию байтов, равных FFh, вместо реальных данных. Блок-схема функций памяти и SHA (рис. 7) описывает протоколы, необходимые для адресации памяти и работы блока SHA. Обмен между мастером и DS1961S может происходить на обычной скорости (по умолчанию, OD = 0) или в ускоренном режиме на повышенной скорости (OD = 1). Если DS1961S специально не перевести в ускоренный режим, обмен будет происходить на обычной скорости.
8 из 38
DS1961S
Запись блокнота [0Fh]
Команда записи блокнота используется во время процедуры записи в память данных, память секретного кода и по разрешенным для записи адресам страницы регистров. Если мастер шины передает адрес назначения, больший 90h, то команда не выполняется.
После выдачи команды записи блокнота мастер должен передать сначала 2-х байтный адрес назначения, а затем данные, предназначенные для записи в блокнот. Данные записываются в блокнот с его начального адреса. Заметьте, что конечное смещение (E2..E0, см. рис. 6) всегда равно 111b, и не зависит от количества переданных мастером байт. По этим соображениям мастер всегда должен передавать восемь байт, особенно в том случае, когда данные предназначаются для загрузки в память секретного кода. Если мастер посылает менее восьми байт данных и не считывает блокнот для проверки, часть нового секретного кода будет случайной и неизвестной мастеру. Принимаются только полные байты данных. Если последний байт данных является неполным, он игнорируется и устанавливается флаг неполного байта (PF).
При выполнении команды записи блокнота внутренний генератор CRC (см. рис. 12) вычисляет CRC всего потока данных, начиная с кода команды и заканчивая последним байтом данных, переданных мастером. CRC генерируется с использованием полинома CRC16. Вначале генератор CRC очищается, затем в сдвиговый регистр по одному биту вводится код команды записи блокнота (0Fh), адрес назначения (TA1 и TA2) и все байты данных. Заметьте, что вычисление CRC16 производится со значением TA1, переданным мастером, несмотря на то, что DS1961S обнуляет биты T2..T0 адреса назначения при выполнении команды записи блокнота в память. Если блокнот полностью заполнен, мастер может выдать 16 интервалов чтения и принять значение CRC, вычисленное DS1961S. Если мастер продолжит чтение после получения CRC, все последующие считанные данные будут равны FFh.
После приема адреса назначения (TA1 и TA2) DS1961S очищает флаг EN_LFS. Если включен режим EPROM и должна производиться запись в страницу 1 (0020h – 003Fh), блокнот загружается данными, представляющими собой результат операции «логическое И» между данными, передаваемыми мастером, и текущим содержимым памяти по адресам назначения. Если запись должна производиться в страницу регистров (0088h – 008Fh), то для всех защищенных от записи байтов данные в блокноте, переданные мастером, заменяются текущим содержимым этих байтов в памяти. Во всех других случаях данные, передаваемые мастером, записываются в блокнот без изменений.
Чтение блокнота [AAh]
Команда чтения блокнота позволяет произвести проверку правильности адреса назначения и данных, записанных в блокнот. После выдачи кода команды мастер приступает к чтению. Два первых байта представляют собой адрес назначения, биты T2..T0 которого обнулены. Следующий байт представляет собой конечное смещение/статус данных (E/S). За ним следуют данные, содержащиеся в блокноте, которые могут отличаться от данных, переданных туда мастером. Это возможно в том случае, если адресом назначения является память секретного кода, страница регистров, страница 1 памяти (в режиме EPROM) или если для загрузки блокнота использовалась команда обновления. В этих случаях блокнот может содержать данные, отличные от тех, что записывались туда командами записи или обновления блокнота. Мастер должен считать блокнот до конца, после чего он примет инвертированную CRC для всех считанных данных. Если мастер продолжит чтение после получения CRC, все последующие считанные данные будут равны FFh.
Блокнот может быть загружен командами записи или обновления блокнота. Данные, находящиеся в блокноте, зависят от использованной команды, адреса назначения, и от того, включен ли режим EPROM. Для более подробной информации смотрите описание команд записи и обновления блокнота.
9 из 38
DS1961S
Загрузка первого секретного кода [5Ah]
Команда загрузки первого секретного кода имеет два режима работы, которыми управляет флаг EN_LFS. Когда EN_LFS = 0, команда заменяет текущий секретный код устройства содержимым
блокнота, если память секретного кода не защищена от записи. Когда EN_LFS = 1, команда позволяет перезаписать память данных (адреса 0000h – 007Fh) без необходимости вычисления SHA-1, в отличие от выполнения тех же действий командой копирования блокнота. Флаг EN_LFS всегда имеет нулевое значение, за исключением случая, когда он устанавливается в единицу при выполнении команды обновления блокнота перед загрузкой первого секретного кода.
Случай EN_LFS = 0
Перед использованием команды загрузки первого секретного кода в этом режиме мастер должен записать новое значение секретного кода в блокнот, используя начальный адрес памяти секретного кода (0080h). После выдачи команды загрузки первого секретного кода, мастер должен передать 3-байтную последовательность авторизации (TA1, TA2, E/S, в этом порядке), которая должна быть непосредственно перед этим получена с помощью команды чтения блокнота. Эта 3­байтная последовательность должна точно совпадать с данными, которые содержатся в трех адресных регистрах (см. рис. 6). Если последовательность совпадает, и память секретного кода не защищена от записи, устанавливается флаг AA и начинается копирование. В память секретного кода копируются все 8 байт блокнота.
Случай EN_LFS = 1
Для использования команды загрузки первого секретного кода в этом режиме должна быть выполнена команда обновления блокнота для загрузки в блокнот восьми байт памяти данных (из диапазона адресов 0000h – 007Fh), что установит флаг EN_LFS в единицу. После выдачи команды загрузки первого секретного кода мастер должен передать 3-байтную последовательность авторизации (TA1, TA2, E/S, в этом порядке), которая должна быть непосредственно перед этим получена с помощью команды чтения блокнота. Эта 3-байтная последовательность должна точно совпадать с данными, которые содержатся в трех адресных регистрах (см. рис. 6). Если последовательность совпадает, и память не защищена от записи, устанавливается флаг AA и начинается копирование. В память копируются все 8 байт блокнота.
Независимо от использованного режима, длительность процесса копирования равна t
PROG
, во
время которого напряжение на 1-проводной шине не должно опускаться ниже 2,8В. По окончании задержки на время копирования мастер должен считать, по крайней мере, один байт. Считанное значение AAh говорит о том, что копирование прошло успешно, а значение FFh говорит об ошибке копирования. Как альтернатива, вместо использования загрузки первого секретного кода при EN_LFS = 0 новый секретный код может быть загружен командой копирования блокнота. Однако этот подход требует знания текущего секретного кода и вычисления 160-битного MAC­кода.
10 из 38
Рис. 7-1. БЛОК-СХЕМА ФУНКЦИЙ ПАМЯТИ И SHA
DS1961S
Мастер
единицы
RX
Мастер команду
TA1 (T7:T0), TA2 (T15:T8)
DS1961S EN_LFS = 0сбр.
TX
функций памяти
0Fh
запись блок-
нота?
Y
Мастер TX
Адрес
< 90h ?
С блок-схемы функций
ПЗУ (рис. 9)
N
YN
DS1961S
счетчик байтов блокнота = 0,
устанавливает
очищает
T2:T0 = 0, 0, 0, E2:E0 = 1, 1, 1
Мастер байт
данных в блокнот
PF, AA,
TX
На 2-ю часть
рис. 7
Замечание:
для дополнительной информации см. описание команды записи блокнота
Мастер
импульс сбро-
TX
са?
Y
N
DS1961S
инкрементирует
счетчик байтов
Мастер
RX
единицы
На блок-схему функций
ПЗУ (рис. 9)
Мастер
импульс сбро-
N
Счетчик байтов
DS1961S TX CRC16
команды, адреса,
байтов данных, как
они посылались на шину
N
Мастер
импульс сбро-
TX
са?
N
= 7?
Y
TX
са?
Y
Y
Неполный
байт?
PF = 1
N
Y
С 2-й части
рис. 7
11 из 38
Рис. 7-2. БЛОК-СХЕМА ФУНКЦИЙ ПАМЯТИ И SHA (продолжение)
С 1-й части
рис. 7
TA1 (T7:T0), TA2 (T15:T8)
DS1961S устанавливает
счетчик байтов блокнота = 0
Мастер байт данных
AAh
чтение блок-
нота?
Y
Мастер
из блокнота
и байт
RX
RX
E/S
N
Замечание:
для дополнительной информации см. описание команды чтения блокнота
DS1961S
На 3-ю часть
рис. 7
DS1961S
инкрементирует
счетчик байтов
Мастер
RX
единицы
Мастер
импульс сбро-
N
Счетчик байтов
Мастер команды, адреса,
E/S
байта , байтов данных,
как они посылались
N
Мастер
импульс сбро-
TX
са?
N
= 7?
Y
RX CRC16
DS1961S
TX
са?
Y
Y
На -ю часть
1
рис. 7
12 из 38
С -й части
3
рис. 7
Loading...
+ 26 hidden pages