RAINBOW ELECTRONICS DS1963S User Manual [ru]

DALLAS
SEMICONDUCTOR
www.maxim-ic.com
Энергонезависимая память объемом 4096
бит с возможностью записи/чтения, орга­низованная в виде 16-ти страниц по 256 бит каждая
Восемь страниц памяти имеют инди-
видуальные ключи доступа в виде
64-битных секретных кодов и 32-битные «только для чтения» счетчики количества
циклов записи без возможности пере­полнения
Секретные коды «только для записи»
имеют собственные индивидуальные счетчики количества циклов записи
Встроенный 512-битный блок SHA-1,
предназначенный для вычисления 160-битного кода аутентификации сообщения (Message Authentication Code, или MAC-кода) и генерации ключей доступа (секретных кодов) для страниц памяти
Устройство может использоваться как
iButton роуминга, или как сопроцессор для хост-компьютера
Блокнотная память объемом 256 бит
обеспечивает целостность данных при пересылках
Встроенный генератор 16-битной
контрольной суммы (CRC) обеспечивает безопасный обмен данными
 Ускоренный режим позволяет повысить
скорость обмена до 125 Кбит в секунду
Рабочий диапазон температур от -40°C до
+85°C
Сохранность данных не менее 10 лет
iButton и 1-Wire являются зарегистрированными торговыми марками Dallas Semiconductor.
DS1963S
iButton с блоком SHA
ОБЩИЕ ХАРАКТЕРИСТИКИ iButton
Уникальный, занесенный лазером и
проверенный на этапе изготовления
64-битный регистрационный номер (8-битный код семейства + 48-битный
серийный номер + 8-битная контрольная сумма CRC) гарантирует абсолютный контроль, так как не существует двух устройств с одинаковыми номерами
Встроенный контроллер многоточечной
сети MicroLAN
Цифровая идентификация и получение
информации в одно касание
 Компактный носитель информации в виде
кристалла микросхемы
Данные могут быть доступными при
касании объекта
 Экономичный обмен с мастером шины с
помощью единственного цифрового сигнала на скорости 15,4 Кбит в секунду
Стандартный диаметр 16 мм и
1-проводный протокол (1-Wire Protocol) гарантируют совместимость с семейством iButton
Форма в виде таблетки обеспечивает авто-
матическое центрирование в считыва­ющем устройстве
Долговечный корпус из нержавеющей
стали с гравированным регистрационным номером устойчив к внешним воздей­ствиям
Легко прикрепляется с помощью
самоклеющейся подложки, фиксируется собственным фланцем или напрессовы­ваемым кольцом
Детектор присутствия выдает ответ, когда
считыватель в первый раз подает напря­жение питания
Соответствует UL#913 (4-я редакция);
взрывобезопасное исполнение, утвер­ждено для использования в классе I, раздел 1, группы A, B, C и D (в зависимости от приложения)
1 из 40 031202
DS1963S
F5 MICROCAN
0,36
5,89
0,51
ИНФОРМАЦИЯ ДЛЯ ЗАКАЗА
DS1963S корпус F5 MicroCan
DALLASDALLAS
YYWW REGISTERED RR
ДАННЫЕ
ЗЕМЛЯ
51 18
000000FBC52B
D
S
S
3
1
6
9
Ø16,25
Ø17,35
Все размеры приведены в миллиметрах.
ПРИМЕРЫ АКСЕССУАРОВ
DS9096P Самоклеющаяся подложка
DS9101 Универсальный зажим
DS9093RA Крепежное кольцо
DS9093A Держатель с защелкой
DS9092 Панелька для iButton
ОПИСАНИЕ iButton
iButton для проведения электронных платежей DS1963S с блоком SHA-1 является надежным носителем данных емкостью 4 Кбит, доступ к которым может быть осуществлен с помощью минимального аппаратного обеспечения. Энергонезависимая память устройства выполняет функции локальной базы данных, которая может хранить как общедоступные, так и защищенные данные, принадлежащие пользователю устройства. Встроенный 512-битный блок SHA может быть задействован для вычисления 160-битного кода аутентификации (MAC-кода) на основе хранящихся в устройстве данных. Данные передаются последовательно с помощью 1-проводного протокола, который требует только одного вывода данных и общего провода. При использовании файлового формата TMEX (см. Application Note 114), один экземпляр DS1963S может поддерживать до четырех независимых приложений, таких как осуществление электронных платежей при расчетах за транспортные услуги, телефонные переговоры, парковку или прокат автомобилей. DS1963S также может работать в качестве сопроцессора для хост-компьютера, осуществляя вычисление кодов доступа, необходимых для записи нового баланса в роуминговое устройство после проведения платежа.
DS1963S, как и другие iButton cо встроенным ОЗУ, имеет дополнительную область данных, которая называется блокнотом и работает как буфер при записи основной памяти. Блокнот DS1963S также используется для передачи сегментов данных блоку SHA-1 или для приема/сравнения кода аутентификации сообщения.
Данные вначале записываются в блокнот, откуда они могут быть считаны. После проверки правильности данных команда копирования блокнота пересылает их в основную память. Этот процесс гарантирует целостность данных даже в условиях ненадежного электрического контакта.
DS1963S имеет собственный 64-битный регистрационный номер, который записан в ПЗУ лазером в процессе изготовления, что обеспечивает гарантированную идентификацию и позволяет осуществлять абсолютный контроль. Долговечный корпус MicroCan исключительно устойчив к агрессивным внешним условиям, таким как грязь, влажность и удары. Его компактный профиль в форме таблетки автоматически центрирует прибор в считывающем устройстве, что помогает пользователям легко им оперировать. Аксессуары позволяют монтировать DS1963S практически на любые поверхности, включая пластиковые держатели, идентификационные бэджи и печатные платы.
БЕЗОПАСНОСТЬ
Система, использующая мобильные носители данных, обычно состоит из трех компонентов:
1) хост-компьютеров, которые производят запись и считывание данных с носителей, 2) самих
носителей данных («подчиненных устройств») и 3) пользователей системы, которые могут попытаться подделать данные или эмулировать поведение носителя. Конструкция DS1963S
2 из 40
DS1963S
разработана так, чтобы противостоять всем таким попыткам без использования каких-либо алгоритмов, имеющих патентные ограничения. Безопасность устройства основана на стандарте
SHA-1 (Secure Hash Standard), описание которого можно найти в Интернете по адресу
http://www.itl.nist.gov/div897/pubs/fip180-1.htm.
Ниже в виде таблицы истинности показаны комбинации возможных способов нарушения защиты. Примечания к таблице поясняют типичные методы попыток нарушения. Более подробное описание можно найти в разделе «Обзор применений» в конце этого документа. Для получения полной информации по используемым функциям, смотрите раздел «Команды функций памяти и SHA», а также описания вычислений SHA-1 и формата посылок.
Аутентичные
Авторизованный
хост
Неавторизованный
хост
данные
См. примечание 2 См. примечание 2 и 3
Нормальная работа См. примечание 3
См. примечание 1 Не важно
Не важно Не важно
Подделанные
данные
Эмулированный носитель
Аутентичный носитель
Эмулированный носитель
Примечание 1: Устройство производит авторизацию хоста на основе общего системного
секретного кода, регистрационного номера устройства из ПЗУ и выбранного пользователем личного идентификационного номера, который находится в одной из страниц памяти носителя данных.
Примечание 2: Для определения того, является ли носитель аутентичным, хост записывает в
блокнот устройства 3-байтный запрос перед выдачей команды вычисления MAC-кода, которое выполняется на основе этого запроса, данных страницы памяти, номера страницы, счетчика количества циклов записи страницы, регистрационного номера устройства из ПЗУ и секретного кода, установленного для данной страницы памяти. Изменяя запрос при каждом чтении, хост может проверить, содержит ли носитель правильный секретный код.
Примечание 3: Подделка данных может быть обнаружена в том случае, если данные в носителе
снабжены «подписью» авторизованного хоста. Процесс подписи включает вычисление 160-битного MAC-кода на основе защищаемых данных, счетчика количества циклов записи страницы, в которой они сохранены, регистрационного номера устройства из ПЗУ и специального секретного кода, известного только авторизованному хосту. MAC-код сохраняется вместе с данными приложения (например, вместе с балансом и кодом идентификации транзакции) в соответствующей странице памяти. Для проверки аутентификации данных хост повторяет процесс подписи. Любое отличие в данных, счетчике циклов записи или несоответствующий секретный код приведут к ошибке проверки подписи.
ОБЗОР
Блок-схема, показанная на рис. 1, демонстрирует связи между блоками управления и блоками памяти DS1963S. Всего DS1963S имеет шесть основных компонентов хранения и обработки данных: 1) 64-битное ПЗУ, записанное лазером, 2) 256-битный блокнот, 3) восемь 32-байтных страниц ОЗУ общего назначения, 4) восемь 32-байтных страниц ОЗУ, защищенных счетчиками циклов записи, 5) две 32-байтные страницы, хранящие восемь 64-битных секретных кодов с индивидуальными счетчиками количества циклов записи и 6) 512-битный блок SHA-1 (Secure
Hash Algorithm).
3 из 40
DS1963S
Иерархическая структура 1-проводного протокола показана на рис. 2. Все счетчики циклов записи являются 32-битными и не переполняются (не сбрасываются в 0), когда достигается максимальное значение счета. Содержимое счетчиков считывается вместе с данными памяти с помощью специальной команды. Мастер шины вначале должен послать одну из семи команд функций ПЗУ:
1) Чтение ПЗУ, 2) Сравнение ПЗУ, 3) Поиск ПЗУ, 4) Пропуск ПЗУ, 5) Продолжение обмена,
6) Пропуск ПЗУ в ускоренном режиме или 7) Сравнение ПЗУ в ускоренном режиме. По окончании
команд ПЗУ ускоренного режима, посланных на стандартной скорости, устройство переходит в ускоренный режим, когда обмен данными осуществляется на повышенной скорости. Протокол, который требуется для передачи команд функций ПЗУ, показан на рис. 10. После того, как команда функции ПЗУ успешно выполнена, становятся доступными функции памяти, и мастер может передать одну из восьми команд функций памяти. Протокол для этих команд показан на рис. 7. При считывании и записи всех данных первым передается младший бит.
Рис. 1. БЛОК-СХЕМА DS1963S
ДАННЫЕ
Центральный
контакт
Блок управления
1-проводной шиной
64-битное ПЗУ
Схема с паразитным
питанием
Блок управления
памятью и SHA
Генератор
CRC-16
Память данных
8 страниц по
256 байт каждая
Регистр режима
и флагов
512-битный
áëîê SHA-1
256-битный
блокнот
Счетчик
PRNG
Память данных
8 страниц по
256 байт каждая
8 счетчиков
количества циклов
записи, один на
каждую страницу
памяти
4 из 40
8 счетчиков
количества циклов
записи, один на
каждый секретный
êîä
Память секретных кодов, 2 страницы
по 256 бит хранят 8 секретных кодов по 64 бита каждый
DS1963S
ПАРАЗИТНОЕ ПИТАНИЕ
На блок-схеме устройства (рис. 1) показана схема, имеющая паразитное питание. Эта схема запасает энергию, когда вывод данных находится в состоянии высокого уровня. Запасенной энергии достаточно для питания в те моменты времени, когда вывод данных находится в состоянии низкого логического уровня, если выдерживаются требуемые временные параметры и напряжение на линии данных. Паразитное питание имеет два преимущества: 1) благодаря получению энергии с линии данных экономится внутренний литиевый источник и 2) если литиевый источник по каким-то причинам истощился, содержимое ПЗУ все равно может быть нормально считано. Остальная часть схемы DS1963S питается исключительно от литиевого источника.
Рис. 2. ИЕРАРХИЧЕСКАЯ СТРУКТУРА 1-ПРОВОДНОГО ПРОТОКОЛА
Мастер
øèíû
Командный
уровень:
Команды функций
ÏÇÓ (ñì. ðèñ. 10)
команды функций памяти (см. рис. 7)
Специфичные
äëÿ DS1963S
1-проводная сеть
DS1963S
Доступные
команды:
Чтение ПЗУ Сравнение Поиск Пропуск Продолжение Пропуск ПЗУ в ускор. режиме Сравнение ПЗУ в ускор. режиме
Запись блокнота Чтение блокнота Копирование блокнота
Сравнение блокнота Стирание блокнота Чтение памяти
тение аутентифицированной
×
страницы
Высисление
ÏÇÓ
ÏÇÓ
ÏÇÓ
SHA
Другие
устройства
Соответствующие
поля данных:
64-битный рег. номер, флаг RC 64-битный рег. номер, флаг RC 64-битный рег. номер, флаг RC Флаг RC Ôëàã RC 64-битный рег. номер, флаг RC, флаг OD 64-битный рег. номер, флаг RC, флаг OD
256-битный блокнот, флаги 256-битный блокнот, флаг HIDE
Память данных, память секретных кодов, счетчик циклов записи, флаги 160 бит блокнота, флаги 256-битный блокнот, флаги Память данных, флаги Память данных, счетчики циклов записи страницы памяти и секретного кода, секретный код, 64-битный рег. номер 160 бит блокнота, флаги, PRNG-счетчик Некоторые из следующих полей, в зависимости от функции: память данных, счетчик циклов записи страницы памяти, секретный код, 64-битный рег. номер, блокнот, флаги, PRNG-счетчик
5 из 40
DS1963S
64-БИТНОЕ ПЗУ, ЗАПИСАННОЕ ЛАЗЕРОМ
Каждый экземпляр DS1963S содержит в ПЗУ уникальный код длиной 64 бита. Первые 8 бит являются кодом семейства. Следующие 48 бит являются уникальным серийным номером. Последние 8 бит являются контрольной сумой (CRC) первых 56 бит (см. рис. 3). Контрольная сумма получена с помощью генератора, выполненного на основе сдвигового регистра и элементов «исключающее ИЛИ», как показано на рис. 4, и использующего полином X8 + X5 + X4 + 1. Дополнительную информацию о контрольной сумме, используемой фирмой Dallas Semiconductor, можно найти в книге «Book of DS19xx iButton Standards». Биты сдвигового регистра инициализируется нулем. Затем, начиная с младшего бита кода семейства, по одному биту в сдвиговый регистр вводятся данные. После ввода 8-го бита кода семейства вводятся биты серийного номера. После ввода 48-го бита серийного номера сдвиговый регистр содержит значение CRC. Если ввести еще 8 бит CRC, то содержимое регистра вновь станет равным нулю.
Рис. 3. 64-БИТНОЕ ПЗУ, ЗАПИСАННОЕ ЛАЗЕРОМ
СТАРШИЙ
БИТ
8- CRCБИТНАЯ
48-БИТНЫЙ СЕРИЙНЫЙ НОМЕР
8- h)БИТНЫЙ КОД СЕМЕЙСТВА (18
МЛАДШИЙ
БИТ
Рис. 4. ГЕНЕРАТОР CRC
2-й
каскад
854
3-й
каскад
2
X
3
X
4-й
каскад
=1 =1
4
X
5-й
каскад
5
X
6-й
каскад
X
Входные данные
каскад
6
7-й
7
X
8-й
каскад
=1
8
X
Полином = X + X + X + 1
1-й
каскад
0
X
1
X
КАРТА ПАМЯТИ
Как показано на блок-схеме, DS1963S имеет четыре области памяти: память данных, память секретных кодов, счетчики и блокнот. Каждая из этих областей памяти организована в виде страниц по 32 байта, как показано на рис. 5. Блокнот используется как буфер при записи памяти данных или памяти секретных кодов. Страницы 0..15 имеют неограниченный доступ для записи/чтения. Они насчитывают 4096 бит энергонезависимого ОЗУ. Страницы 16 и 17 содержат восемь 64-битных секретных кодов, которые пользователь может только записывать. Для чтения секретные коды доступны только блоку SHA, который использует их для вычисления кода аутентификации сообщения. Шестнадцать 32-битных счетчиков подсчитывают количество циклов записи в страницы 8..15, а также в область каждого из восьми секретных кодов. Эти счетчики расположены в страницах 19 и 20 и могут быть считаны без каких-либо ограничений. Страница 21 содержит счетчик, который инкрементируется при каждом запуске блока SHA. Значение этого счетчика используется для генерации псевдослучайных чисел и поэтому он называется PRNG-счетчиком. Поскольку блок SHA потребляет примерно в 20 раз больше энергии, чем копирование всего блокнота в память, PRNG-счетчик может быть использован как индикатор оставшихся в устройстве запасов энергии. Блокнот физически расположен в странице 18.
6 из 40
DS1963S
симо
АДРЕСНЫЕ РЕГИСТРЫ И СОСТОЯНИЕ ПЕРЕСЫЛКИ
DS1963S использует три адресных регистра: TA1, TA2 и E/S (рис. 6). Регистры TA1 и TA2 загружаются адресом назначения, который указывает, куда должны быть записаны или откуда считаны данные. Регистр E/S является счетчиком байт и регистром состояния пересылки. Он доступен только для чтения и используется для проверки целостности данных при выполнении команд записи. Пять младших битов регистра E/S содержат адрес последнего байта, записанного в блокнот для последующего копирования в основную память. Этот адрес называется конечным смещением. Бит 5 регистра E/S, называемый флагом PF, или флагом неполного байта (partial byte flag), устанавливается в 1, если количество бит данных, переданных мастером, не кратно восьми. Бит 6 не несет никаких функций; он всегда считывается как 0. Заметьте, что пять младших битов адреса назначения также определяют начальный адрес в блокноте, где осуществляется промежуточное хранение данных. Этот адрес называется смещением байта. Если адрес назначения (TA1) для команды записи равен, например, 3Ch, то в блокноте поступающие данные будут сохраняться, начиная со смещения байта 1Ch, и блокнот заполнится после приема всего 4-х байт, что даст конечное смещение 1Fh. Конечное смещение вместе с флагом неполного байта позволяют мастеру осуществлять проверку целостности данных после команды записи. Старший бит регистра E/S называется флагом AA, или флагом принятия авторизации (authorization accepted flag). Он указывает на то, что данные, сохраненные в блокноте, уже были скопированы в память по адресу назначения. Запись данных в блокнот очищает этот флаг.
Рис. 5. КАРТА ПАМЯТИ DS1963S
Память данных общего назначения с доступом для записи/чтения
Номер
Номер
страницы
Диапазон
адресов
секретного
кода
Номер
счетчика
Инкремент
счетчика
4Кбит
энергонезави-
й памяти
0 0000h – 001Fh 0 0 Нет
1 0020h – 003Fh 1 1 Нет
2 0040h – 005Fh 2 2 Нет
3 0060h – 007Fh 3 3 Нет
4 0080h – 009Fh 4 4 Нет
5 00A0h – 00BFh 5 5 Нет
6 00C0h – 00DFh 6 6 Нет
7 00E0h – 00FFh 7 7 Нет
8 0100h – 011Fh 0 0 При записи
9 0120h – 013Fh 1 1 При записи
10 0140h – 015Fh 2 2 При записи
11 0160h – 017Fh 3 3 При записи
12 0180h – 019Fh 4 4 При записи
13 01A0h – 01BFh 5 5 При записи
14 01C0h – 01DFh 6 6 При записи
15 01E0h – 01FFh 7 7 При записи
7 из 40
Рис. 5. КАРТА ПАМЯТИ DS1963S (продолжение)
Память секретных кодов с доступом пользователя только для записи
Номер
страницы
Диапазон
адресов
0200h – 0207h Секретный код 0
DS1963S
Описание
16
17
0208h – 020Fh Секретный код 1
0210h – 0217h Секретный код 2
0218h – 021Fh Секретный код 3
0220h – 0227h Секретный код 4
0228h – 022Fh Секретный код 5
0230h – 0237h Секретный код 6
0238h – 023Fh Секретный код 7
Память счетчиков с доступом пользователя только для чтения
Номер
страницы
19
Диапазон
адресов
0260h – 0263h Счетчик 0 (циклы записи для страницы 8)
0264h – 0267h Счетчик 1 (циклы записи для страницы 9)
0268h – 026Bh Счетчик 2 (циклы записи для страницы 10)
026Ch – 026Fh Счетчик 3 (циклы записи для страницы 11)
0270h – 0273h Счетчик 4 (циклы записи для страницы 12)
0274h – 0277h Счетчик 5 (циклы записи для страницы 13)
Описание
0278h – 027Bh Счетчик 6 (циклы записи для страницы 14)
027Ch – 027Fh Счетчик 7 (циклы записи для страницы 15)
0280h – 0283h Счетчик циклов записи секретного кода 0
0284h – 0287h Счетчик циклов записи секретного кода 1
0288h – 028Bh Счетчик циклов записи секретного кода 2
20
21 02A0h – 02A3h PRNG-счетчик
028Ch – 028Fh Счетчик циклов записи секретного кода 3
0290h – 0293h Счетчик циклов записи секретного кода 4
0294h – 0297h Счетчик циклов записи секретного кода 5
0298h – 029Bh Счетчик циклов записи секретного кода 6
029Ch – 029Fh Счетчик циклов записи секретного кода 7
8 из 40
DS1963S
Рис. 6. АДРЕСНЫЕ РЕГИСТРЫ
Номер бита 7 6 5 4 3 2 1 0
Адрес назначения (TA1)
Адрес назначения (TA2)
Конечный адрес со
статусом данных (E/S)
(только для чтения)
T7
T15 T14 T13 T12 T11 T10 T9
AA
T6 T5 T4 T3 T2 T1
0
PF E4 E3 E2 E1 E0
T0
T8
ЗАПИСЬ С ПРОВЕРКОЙ
Для промежуточного хранения данных, записываемых в DS1963S, используется блокнот. Вначале мастер посылает команду записи блокнота и задает желаемый адрес назначения, за которым следуют данные, предназначенные для записи в блокнот. При некоторых условиях (см. описание команды записи блокнота) в конце команды записи блокнота мастер принимает инвертированную CRC16, рассчитанную для кода команды, адреса и данных. Зная значение CRC, мастер может сравнить его со значением, вычисленным им самим, чтобы убедиться в правильности пересылки данных и приступить к команде копирования блокнота. Если мастер не получает CRC16, он может выдать команду чтения блокнота для проверки правильности данных. Как преамбулу к данным блокнота, DS1963S повторяет адрес назначения TA1 и TA2, а также передает содержимое регистра E/S. Если флаг PF установлен, значит, данные были переданы в блокнот с ошибками. В этом случае мастер может не продолжать чтения; он может начать новую попытку записи данных в блокнот. Подобным образом установка флага AA говорит о том, что устройством была не распознана команда записи. Если все прошло успешно, оба флага очищены, а конечное смещение указывает на адрес последнего байта, записанного в блокнот. В этом случае мастер может продолжить чтение и проверить каждый байт данных. После проверки данных, мастер может выдать команду копирования блокнота. За кодом этой команды должно следовать точное содержимое регистров TA1, TA2 и E/S. Мастер может получить содержимое этих регистров путем чтения блокнота или вычислить их исходя из адреса назначения и количества записываемых данных. Как только DS1963S правильно принимает эти байты, происходит копирование данных в нужную область памяти, начиная с адреса назначения.
КОМАНДЫ ФУНКЦИЙ ПАМЯТИ И SHA
В соответствии с требованиями безопасности, которые учтены в конструкции, DS1963S ведет себя иначе, нежели другие устройства iButton с памятью. Несмотря на то, что память данных DS1963S может быть считана таким же образом, как и у других устройств iButton, попытки чтения страниц 16 и 17, где хранятся секретные коды, и страницы 18, где физически расположен блокнот, приведут к считыванию байтов, равных FFh, вместо реальных данных. Другие функции, которые имеются как у DS1963S, так и у обычных устройств iButton с памятью, управляются флагом под названием HIDE. Когда флаг HIDE сброшен, эти функции работают так же, как и у других устройств iButton с памятью. Флаг HIDE обычно управляется (устанавливается и сбрасывается) функциями, которые выполняет блок SHA. Для предохранения данных блокнота от несанкционированного считывания флаг HIDE автоматически устанавливается, как только схема с паразитным питанием выполняет начальный сброс, что происходит всякий раз, когда DS1963S начинает работать со считывателем. После этого флаг HIDE очищается по команде стирания блокнота, которая, кроме того, стирает все данные, оставшиеся в блокноте.
9 из 40
DS1963S
Блок-схема функций памяти и SHA (рис. 7) описывает протоколы, необходимые для доступа к памяти и работы с блоком SHA. Обмен между мастером и DS1963S может происходить как на обычной скорости (по умолчанию, OD = 0), так и в ускоренном режиме на повышенной скорости (OD = 1). Если DS1963S специально не перевести в ускоренный режим, обмен будет происходить на обычной скорости.
Команда записи блокнота [0Fh]
HIDE = 0, адрес назначения может лежать только в диапазоне 0000h – 01FFh:
После выдачи команды записи блокнота мастер должен сначала передать 2-байтный адрес назначения, а затем данные, предназначенные для записи в блокнот. Данные записываются в блокнот, начиная со смещения байта (T4:T0). В тот момент, когда мастер закончит запись данных, конечное смещение (E4:E0) будет равно смещению байта. Принимаются только полные байты данных. Если последний байт данных является неполным, он игнорируется и устанавливается флаг неполного байта (PF).
При выполнении команды записи блокнота внутренний генератор CRC (см. рис. 13) вычисляет CRC всего потока данных, начиная с кода команды и заканчивая последним байтом данных, переданных мастером. CRC генерируется с использованием полинома CRC16. Вначале генератор CRC очищается, затем в сдвиговый регистр по одному биту вводится код команды записи блокнота (0Fh), адрес назначения (TA1 и TA2), который был передан мастером, и все байты данных. Мастер может завершить выполнение команды записи блокнота в любой момент времени. Однако если конечное смещение равно 11111b, мастер может выдать 16 интервалов чтения и принять значение CRC, вычисленное DS1963S.
HIDE = 1, адрес назначения может лежать только в диапазоне 0200h – 023Fh:
Функционирование команды ограничено выбором секретного кода, который будет перезаписан данными, хранящимися в блокноте. Эти данные обычно являются результатом выполненной перед этим команды вычисления первого секретного кода или команды вычисления следующего секретного кода. Адреса восьми секретных кодов показаны на рис. 5. Адрес, передаваемый после кода команды, может указывать в любое место диапазона адресов, принадлежащего выбранному секретному коду. Вслед за адресом назначения мастер может передать байты данных, как и в случае записи блокнота. Как только передано столько данных, сколько может вместиться в блокнот, начиная с выбранного адреса назначения, мастер может выдать 16 интервалов чтения и принять значение CRC, вычисленное DS1963S. Переданные байты данных используются при вычислении CRC, но реально в блокнот не записываются.
Команда чтения блокнота [AAh]
HIDE = 0:
Команда чтения блокнота позволяет произвести проверку адреса назначения, конечного смещения и целостности данных, записанных в блокнот. После выдачи кода команды мастер приступает к чтению. Два первых байта представляют собой адрес назначения. Следующий байт представляет собой конечное смещение/статус данных (E/S). За ним следуют данные, содержащиеся в блокноте, начиная со смещения байта (T4:T0). Мастер может считать блокнот до конца, после чего он примет инвертированное значение CRC, вычисленное DS1963S. Если мастер продолжит чтение после получения CRC, все последующие считанные данные будут представлять собой логические единицы.
HIDE = 1:
Функционирование команды ограничено чтением адреса назначения и конечного смещения. Взамен данных блокнота мастер будет считывать логические единицы, пока не будет достигнут
10 из 40
DS1963S
конец блокнота. После этого мастер примет значение CRC, вычисленное DS1963S. Если мастер продолжит чтение после получения CRC, все последующие считанные данные будут представлять собой логические единицы.
Команда копирования блокнота [55h]
HIDE = 0, адрес назначения может лежать только в диапазоне 0000h – 01FFh:
Команда копирования блокнота используется для записи данных из блокнота в страницу памяти. После выдачи кода этой команды мастер должен передать 3-байтную последовательность авторизации, которая должна быть непосредственно перед этим получена с помощью команды чтения блокнота. Эта 3-байтная последовательность должна точно совпадать с данными, которые содержатся в трех адресных регистрах (TA1, TA2, E/S, в этом порядке). Если последовательность авторизации совпадает, устанавливается флаг AA (флаг принятия авторизации) и начинается копирование. Во время процесса копирования данных мастер будет считывать логические единицы. После завершения процесса копирования мастеру будет передаваться последовательность чередующихся нулей и единиц, вплоть до выдачи мастером импульса сброса. Любая попытка сбросить устройство в процессе копирования данных будет игнорирована. Процесс копирования обычно длится 30 мкс.
Данные, которые должны быть скопированы, определяются тремя адресными регистрами. Содержимое блокнота, начиная со смещения байта и заканчивая конечным смещением, будет скопировано в память, начиная с адреса назначения. В любом случае, этой командой может быть скопировано в память от 1 до 32 байт. Флаг AA очищается только при выполнении команды копирования блокнота.
HIDE = 1, адрес назначения может лежать только в диапазоне 0200h – 023Fh:
Функция выполняется так же, как было описано выше, если адрес назначения и конечное смещение совпадают с адресом секретного кода. Если адрес назначения указывает на основную память, а флаг HIDE установлен (например, начальным сбросом схемы с паразитным питанием), копирование данных блокнота осуществляться не будет. Тем не менее, если записать данные в блокнот, затем установить флаг HIDE, затем выполнить команду записи блокнота для выбора номера секретного кода, а затем выполнить команду копирования блокнота, то возможна запись известных данных («пароля») в область секретного кода. Однако выполнение этой процедуры не рекомендуется, так как это снижает уровень безопасности.
Команда чтения памяти [F0h]
Команда чтения памяти может использоваться для чтения страниц памяти 0..15, счетчиков циклов записи, размещенных в страницах 19 и 20 и PRNG-счетчика в начале страницы 21. Попытка чтения памяти секретных кодов, хранящихся в страницах 16 и 17, не приведет к получению настоящих данных. Попытка чтения страницы памяти 18 приведет к считыванию данных блокнота, если флаг HIDE очищен (HIDE = 0), и значений FFh, если этот флаг установлен (HIDE = 1). После кода команды мастер должен передать 2-байтный адрес назначения. После этих двух байт мастер считывает данные, начиная с адреса назначения. Он может продолжать считывание вплоть до конца PRNG-счетчика и далее. За PRNG-счетчиком следуют 12 неопределенных байт. Если мастер продолжит чтение дальше, то получит одни логические единицы. Важно представлять, что регистры адреса назначения указывают на последний считанный байт. Байт конечного смещения/состояния данных не изменяется.
DS1963S имеет аппаратные средства для осуществления безошибочной записи в память. Для безопасного чтения данных и одновременного повышения скорости обмена в 1-проводных системах рекомендуется организовывать данные в пакеты размером в одну страницу памяти. Такой пакет обычно содержит вычисленную мастером 16-битную CRC, которая обеспечивает быстрый и безошибочный обмен данными, исключая необходимость многократного чтения
11 из 40
DS1963S
страницы для определения того, являются ли принятые данные правильными (см. Application Note 114, где приведена рекомендуемая файловая структура, называемая также форматом TMEX).
Команда стирания блокнота [C3h]
Предназначением этой команды является очистка флага HIDE, а также стирание данных, которые могли остаться в блокноте после осуществления предыдущей операции. После выдачи кода команды мастер передает адрес назначения, как и для команды записи блокнота, но не передает данных. После этого весь блокнот будет автоматически заполнен байтами FFh, независимо от адреса назначения. Этот процесс длится примерно 32 мкс, в течение которых мастер принимает единицы. После завершения процесса мастер начнет принимать последовательность чередующихся нулей и единиц, что будет свидетельствовать о завершении выполнения команды.
Команда сравнения блокнота [3Ch]
MAC-код, вычисляемый блоком SHA DS1963S, записывается в блокнот. В то же время некоторые вычисления, которые производятся при авторизации хоста или при выполнении функции проверки страницы данных, требуют установки флага HIDE. Команда сравнения блокнота позволяет проверить данные, которые при этом остаются недоступными для чтения. Команда сравнивает 160-битный MAC-код, который находится после вычислений SHA в блокноте по адресам 8..27, как описано в разделах «Алгоритм вычислений SHA» и «Форматы выходных данных SHA-1», с результатом, полученным мастером при его собственных вычислениях. После того, как мастер выдаст код команды сравнения блокнота, он передает данные, байт за байтом, начиная с байта 8 и заканчивая байтом 27. Если все байты совпадают, мастер считывает последовательность чередующихся нулей и единиц. Если был дополнительно установлен флаг AUTH, устанавливается флаг MATCH. Если сравнение выявило различия, мастер считывает все единицы.
Чтение аутентифицированной страницы [A5h]
Эта команда, применимая только к страницам 0..15, позволяет мастеру получить данные полной (или части) страницы памяти и вычисленный MAC-код. После передачи мастером кода команды и
правильного адреса назначения, он принимает данные страницы, начиная с адреса назначения и до конца страницы данных, затем значение счетчика циклов записи для этой страницы, значение счетчика циклов записи для секретного кода, ассоциированного с этой страницей и инвертированное значение CRC для кода команды, адреса назначения, переданной страницы данных и значений счетчиков. Сразу после приема мастером значения CRC, блок SHA начинает вычисление MAC-кода на основании секретного кода, ассоциированного с этой страницей, всех 32 байт данных выбранной страницы, значения счетчика циклов записи страницы, номера страницы, регистрационного номера устройства (без CRC) и 3-байтного запроса, который выбирается из блокнота по адресам 20..22. Результат вычислений SHA помещается в блокнот по адресам 8..27, для того, чтобы его мог считать мастер. В то время, когда идут вычисления SHA, мастер считывает все единицы. Когда вычисления завершаются, последовательность сменяется чередующимися нулями и единицами. После этого мастер обычно должен прочитать все данные страницы и т.д., вычислить MAC-код (см. описание команды вычислений SHA, функцию проверки страницы данных), затем сравнить его с данными, находящимися в блокноте для определения того, содержит ли DS1963S правильный секретный код, ассоциированный с выбранной страницей данных.
12 из 40
Loading...
+ 28 hidden pages