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

Страница 9

Advertising
background image

DS1961S

9 из 38


Запись блокнота [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. Для более подробной информации смотрите описание команд записи и обновления
блокнота.

Advertising