Инструкция по эксплуатации Rainbow Electronics DS1921
Страница 30
DS1921L
30 из 40
Мастер делает выборку линии данных в момент времени t
MSR
, внутри окна, которое определяется, с
одной стороны, суммой t
RL
и времени нарастания (
δ
), и t
SU
+ t
SPDMIN
, с другой стороны. Оптимальная
точка выборки для случая чтения 0 расположена по времени не позже, чем t
SU
+ t
SPDMIN
. В случае чте-
ния 1, напряжение на линии 1-Wire должно достигнуть уровня V
IHMASTER
в момент времени t
MSR
. Это
условие определяет максимальную длительность времени снижения уровня мастером. Для обеспечения
надежной связи время снижения уровня мастером должно быть как можно короче, максимально увели-
чивая время достижения уровня V
IHMIN
для линии данных. До начала следующего временного интервала
интервал t
SPDMAX
должен закончиться, а напряжение на линии данных должно возрасти выше уровня
V
TH
и оставаться на этом уровне до окончания времени восстановления t
REC
.
ГЕНЕРАЦИЯ CRC
Для микросхемы DS1921L существует два различных типа контроля циклически избыточным кодом
(Cyclic Redundancy Check — CRC). Один из них — это 8-битный CRC, который хранится в старшем
байте 64-битного ПЗУ. Мастер шины может вычислить значение контрольной суммы CRC из первых 56
битов 64-битного ПЗУ и сравнить его с величиной, хранящейся в микросхеме DS1921L, чтобы опреде-
лить, были ли данные ПЗУ приняты без ошибок. Эквивалентная полиномиальная функция данного CRC
представляет собой многочлен X
8
+ X
5
+ X
4
+ 1. Эта 8-битная контрольная сумма CRC принимается в
прямом (не инвертированном) коде. Она вычисляется при производстве прибора и записывается лазе-
ром в ПЗУ.
Другой CRC — это 16-битный код, генерируемый в соответствии с CRC16-полиномиальной функ-
цией X
16
+ X
15
+ X
2
+ 1. Эта контрольная сумма CRC используется для определения ошибок при считы-
вании данных памяти с помощью команды чтения памяти с CRC и для быстрой проверки передаваемых
данных при записи или считывании блокнотной памяти. Это тот же тип CRC, который используется в
приборах iButton на основе ОЗУ с энергонезависимой памятью для детектирования ошибок в структуре
расширенного файла iButton. В противоположность 8-битной контрольной сумме CRC, 16-битная кон-
трольная сумма CRC всегда передается в обратном (инвертированном) коде. Генератор CRC внутри
микросхемы DS1921L (Рис. 15) будет вычислять новую 16-битную контрольную сумму CRC, как пока-
зано в блок-схеме команд, приведенной на Рис. 10. Мастер шины сравнивает значение CRC, считанное
с прибора, с тем, что он вычислил из данных, и решает, продолжать ему операцию или считать часть
данных заново с ошибкой CRC. С началом прохождения через последовательность операций чтения
памяти с CRC, значение 16-битной контрольной суммы CRC будет результатом сдвига в установлен-
ный в исходное состояние генератор CRC сначала байта команды, а затем 2 адресных байтов и байтов
данных. Последующие проходы через последовательность операций чтения памяти с CRC, будут соз-
давать 16-битную контрольную сумму CRC, которая является результатом сброса генератора CRC и
затем сдвига в него байтов данных.
При команде записи блокнота контрольная сумма CRC генерируется путем сброса генератора CRC и
последующего сдвига в него кода команды, адресов назначения TA1 и TA2 и всех байтов данных.
DS1921L будет передавать эту контрольную сумму CRC, только если байты данных, записанные в
блокнотную память, содержат конечное смещение блокнотной памяти 11111b. Данные могут начинать-
ся в блокнотной памяти с любого расположения.
При команде чтения блокнота контрольная сумма CRC генерируется путем сброса генератора CRC и
последующего сдвига в него кода команды, адресов назначения TA1 и TA2, байта E/S и данных блок-
нотной памяти, начинающихся с назначенного адреса. DS1921L будет передавать эту контрольную
сумму CRC, только если считывание будет продолжаться до конца блокнотной памяти, независимо от
действительного конечного смещения.
Дополнительную информацию о генерировании значений CRC можно получить из документов «Ap-
plication Note 27» и «Book of DS19xx iButton Standards».