Инструкция по эксплуатации Rainbow Electronics DS1963S

Страница 34

Advertising
background image

DS1963S

34 из 40

Передача данных от подчиненного устройства к мастеру
Временной интервал чтения очень похож на временной интервал записи единицы. Мастер
начинает интервал чтения с того, что переводит линию в состояние низкого уровня. Как только
напряжение на линии упадет ниже порога V

TL

, в DS1963S начинается формирование внутреннего

временного интервала. Время удержания мастером низкого уровня (t

MPDR

= t

RL

+ t

F

) должно быть

достаточным, чтобы перекрыть время установления t

SU

, после которого DS1963S выдает бит

данных на 1-проводный порт. Если передается 0, DS1963S удерживает линию данных в состоянии
низкого уровня в течение времени t

SPD

. Если бит данных равен 1, DS1963S вообще не переводит

линию данных в состояние низкого уровня.
Мастер опрашивает линию данных в момент времени t

MSR

, который лежит внутри окна,

ограниченного суммой времени t

RL

и времени нарастания (

δ) с одной стороны, и временем

t

SU

+ t

SPDMIN

с другой. Оптимальное положение точки опроса в случае чтения нуля находится не

позднее момента t

SU

+ t

SPDMIN

. В случае чтения единицы напряжение на 1-проводной линии в

момент t

MSR

должно успеть достигнуть значения V

IHMASTER

. Это условие определяет

максимальную длительность удержания мастером низкого уровня. Для обеспечения надежного
обмена длительность удержания мастером низкого уровня должна быть как можно меньше, чтобы
предоставить максимум времени для достижения линией значения V

IHMIN

. Перед началом

следующего временного интервала по истечению t

SPDMAX

напряжение на линии данных должно

подняться выше V

TH

и оставаться таким в течение времени восстановления t

REC

.


ВЫЧИСЛЕНИЕ CRC
DS1963S использует два разных типа контрольной суммы (CRC). Первым типом является
8-битная CRC. Она вычисляется при изготовлении и записывается лазером в старший байт
64-битного ПЗУ. Эквивалентный полином для этой CRC имеет следующий вид: X

8

+ X

5

+ X

4

+ 1.

Для проверки правильности считывания данных из ПЗУ, мастер шины может вычислить значение
CRC для первых 56 бит 64-битного ПЗУ и сравнить его со значением, считанным из DS1963S. Эта
8-битная CRC принимается при чтении ПЗУ в нормальном виде (без инверсии).
Вторым типом является 16-битная CRC, вычисляемая с помощью стандартизованного полинома
X

16

+ X

15

+ X

2

+ 1. Эта CRC используется для обнаружения ошибок при чтении

аутентифицированной страницы, вычислении SHA, чтении блокнота и для быстрой проверки
правильности пересылки данных при записи блокнота. Это же тип CRC используется в iButton с
энергонезависимой памятью в рамках расширенной файловой структуры. В отличие от 8-битной
CRC, 16-битная CRC всегда считывается и передается в инвертированном виде. Внутренний
генератор CRC в DS1963S (рис. 13) вычисляет новое значение 16-битной CRC в соответствии с
блок-схемой команд, показанной на рис. 7. Мастер шины может сравнить значение CRC,
считанное из устройства, со значением, вычисленном им самим для тех же данных. На основании
результата сравнения мастер может принять решение продолжить операцию или повторить чтение
той части данных, для которой обнаружена ошибка CRC.
При записи блокнота генерация CRC начинается очисткой сдвигового регистра генератора CRC.
Затем по одному биту в сдвиговый регистр вводится код команды, адрес назначения TA1 и TA2, а
также все байты данных, переданные мастером. DS1963S передает эту CRC только в том случае,
если записанные в блокнот данные достигли конечного смещения, равного 11111b. Данные могут
начинаться с любой позиции блокнота. Этот алгоритм используется независимо от состояния
флага HIDE. Однако если флаг HIDE установлен, байты данных, которые следуют за адресом
назначения, используются только для подсчета CRC и не записываются в блокнот.
При чтении блокнота генерация CRC также начинается очисткой сдвигового регистра генератора
CRC. Затем по одному биту в сдвиговый регистр вводится код команды, адрес назначения TA1 и
TA2, байт E/S, а также данные блокнота, начиная со смещения блокнота. DS1963S передает эту
CRC только в том случае, если мастер продолжает чтение после окончания чтения блокнота,

Advertising