Межблочная передача данных и организация локальных сетей для встраиваемых устройств
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция № 7-8
Межблочная передача данных и организация локальных сетей
встраиваемых устройств
Продолжительность 4 академ часа (180 минут)
для
Ключевые моменты:
- задача выбора типа сети
- идеология сети MicroLAN
- логика работы сети MicroLAN
- проверка достоверности данных
Данная лекция посвящена описанию оригинальной сети MicroLAN
фирмы
Dallas Semiconductor. Алгоритмы протоколов этой сети достаточно просто программно
реализуются практически на ПЛИС. В настоящее время интерфейс этой сети из–за своей
простоты и низкой стоимости находит широкое применение как при межблочной
передаче данных во встраиваемых устройствах, так и для организации сети между
территориально разнесенными измерительными и управляющими устройствами.
7.1 Проблема выбора типа сети
Одной из составных частей современного электронного оборудования стали
коммуникационные сети. Они занимают серьезное место в области использования
персональных компьютеров, периферийных устройств компьютеров, офисного
оборудования, управления
инженерным
оборудованием
зданий,
контроля
производственных процессов и даже в таких областях, как управление различными
приборами автомобилей и управление бытовой техникой. Однако, в зависимости от
области применения требования к сетям совершенно различны. Одним из важных
параметров любой сети является скорость передачи информации, выражаемая в битах
в секунду, Если в течение долей секунды должны быть переданы миллионы бит
информации, как например, в случае использования компьютерных сетей, то
необходимо использование высокоскоростной архитектуры, поддерживающей передачу
данных со скоростями порядка 10 миллионов бит в секунду. Такие задачи чаще всего
решаются путем использования сети ETHERNET. Сети ETHERNET могут расширяться
фактически бесконечно, однако практически размеры сети ограничены финансовыми
параметрами, такими как стоимость репетиторов, мостов и маршрутизаторов, а
также увеличивающейся с ростом сети нестабильностью ее работы и увеличением
времени отклика. Существуют также и другие системы, позволяющие обеспечить близкие
параметры по скорости передачи информации. Одним из таких примеров являются
системы, построенные на основе интерфейса RS485. Однако такие системы обладают
ограниченной протяженностью и максимальным числом узлов сети равным 32.
При скоростях передачи информации порядка 1 миллиона бит (приблизительно
35 страниц машинописного текста) в секунду используется несколько различных
подходов. Однако только немногие из них могут рассматриваться, как настоящие сети
из за присущей им неспособности адресации определенных узлов сети. Если же
адресация и предусмотрена, то она или сильно ограничена, или не подходит для общих
применений. Шина CAN, например, основывается на сложном протоколе,
предназначенном специально для целей контроля и управления автомобильным
оборудованием.
Не лучше обстоят дела и среди медленных сетей со скоростями передачи
порядка 100 килобит (3 страницы машинописного текста) в секунду. Среди них
существует фактически только одна приемлемая система, называемая I2C. Однако ее
применение ограничено протяженностью порядка 10 м, без использования
повторителей и необходимостью установки в оборудовании, предназначенном для
работы в сети, специальных дополнительных интерсрейсных схем. К тому же
максимальное число узлов сети составляет 128 п ри использовании стандартного
протокола и 1024 при использовании расширенного протокола I2C. Хотя эта сеть и
могла бы удовлетворить ряду требований офисных применений, но ее использование
фактически не вышло за пределы первоначального применения для межблочной связи
различного бытового оборудования (телевизоров, аудиокомплексов). К тому же ни
одна из этих сетей не обладает свойствами самоорганизации и возможностью
питания оконечных устройств от линии связи.
Одно из важных свойств сети состоит в минимальных затратах, необходимых
для прокладки линий связи, по которым информация из различных точек (например
комнат в здании) будет поступать на центральный пульт управления. С центрального
пульта может осуществляться контроль за состоянием различных датчиков и, наоборот,
могут передаваться сигналы управления открыванием дверей, включением и
выключением света, кондиционеров, или подаваться сигналы тревоги если, например,
разбито окно или дверь открыта в недопустимое время. Аналогичная концепция
может использоваться для контроля за производственным оборудованием и
дистанционного управления им из одной точки. При использовании электронных
этикеток, закрепленных на различных объектах, можно осуществлять контроль за
перемещением различного рода продукции. Например, если электронная этикетка
закреплена на контейнере, то возможно не только осуществить контроль за его
перемещением, но на такой этикетке может быть записана также информация о
содержимом контейнера, поставщике и получателе груза и т.д. С применением
устройств для автоматической идентификации становится возможным осуществлять
централизованный контроль за временем и правами доступа персонала в различные
офисы, лаборатории, производственные зоны и склады продукции. Для всех этих на
первый взгляд разных областей применения характерны некоторые общие свойства,
предъявляемые к параметрам сети:
• большое и непредсказуемое число точек расположения приборов и/или самих
приборов,
• значительная протяженность линий связи,
• небольшой объем передаваемых данных,
* некритичность к скорости передачи данных.
Для таких применений неприемлемы различные типы сетей, перечисленных
выше, поскольку они не удовлетворяют одному или нескольким параметрам:
• не поддерживают необходимую протяженность линий связи,
• требуют слишком больших инвестиций для установки и обслуживания,
• не предназначены для постоянного изменения конфигурации сети,
• не обладают достаточным адресным пространством.
Значительно более высокий уровень защищенности, эффективности, гибкости в
установке и обслуживании, а также минимальные финансовые затраты могут быть
достигнуты, если будет существовать сеть, полностью удовлетворяющая всем
приведенным параметрам
7.2 Идеология сети MicroLAN
Фирма Dallas Semiconductor попыталась удовлетворить требованиям к таким
сетям, создав новый сетевой стандарт, называемый MicroLAN. MicroLAN требует для
осуществления связи между устройствами сети только один проводник и общий
земляной провод, в качестве которых может использоваться неэкранированная витая
пара или телефонный провод. Сеть обладает практически неограниченным адресным
пространством и допускает работу на расстояниях до 300м без использования
дополнительных повторителей или регенераторов сигналов. Благодаря использованию
команды Поиск в сети, возможна работа даже в условиях часто меняющейся
конфигурации.
Отдельные компоненты сети предназначены также и для самостоятельного
применения. К таким приборам принадлежат различные устройства идентификации,
микросхемы памяти и термометры.
Все эти приборы готовы для использования в общей сети, так как каждый из
них содержит уникальный идентификатор устройства и
встроенный сетевой контроллер.
Концепция. Сеть MicroLAN использует архитектуру с одним ведущим шины и
многочисленными ведомыми. Однако, используя специальные методы исключения
конфликтов на шине, возможна работа с несколькими ведущими.
Архитектура Сеть MicroLAN не ограничена заранее предопределенной
структурой.
В небольших конфигурациях, она представляет собой шинную
структуру, с подключением всех приборов на одну общую магистраль.
Рисунок 7.1 –Однопроводная шина (А –подключение датчиков в режиме
пассивного питания; Б –подключение датчиков в режиме активного питания) При более
сложной конфигурации структура сети может видоизмениться в древовидную.
Рисунок 7.2 –Возможная конфигурация сети MicroLAN
Отдельные ветви могут отходить от общей магистрали, в свою очередь они
могут ветвиться далее и далее. Все ветви могут подключаться к сети или
отключаться от нее с помощью адресуемых ключей. Ветвление любого уровня
может динамически изменяться в работающей сети.
Интерфейс.
Сеть MicroLAN основывается на использовании дешевого доступного
телефонного кабеля с витыми парами. Для прокладки сети не требуется никакого
специального оборудования. Для удобства выпускается специальный ассортимент
кабелей, соединителей, интерфейсных карт, предназначенных для быстрой установки и
работы в составе сети MicroLAN.
MicroLAN использует
стандартные
КМОП/ТТЛ
логические
уровни.
Напряжение ниже 0.8 V соответствует логическому НИЗКОМУ уровню, а
напряжение выше 2.2V является ВЫСОКИМ логическим уровнем. Сеть использует
рабочее напряжение питания 2.8...6,0 V. В качестве ведомых устройств используются
малогабаритные устройства, содержащие в своем составе схемы для реализации
протокола сети, память, схемы защиты информации, различные датчики. Далее такие
устройства будем называть приборами.
Многие приборы MicroLAN не имеют внутренних источников питания и могут
использовать режим питания от линии связи. Для этого такие приборы имеют
внутренний конденсатор емкостью приблизительно 800 pF, обеспечивающий питание
прибора при НИЗКОМ уровне на линии. Подзаряд конденсатора происходит при
ВЫСОКОМ
уровне
напряжения линии за короткий промежуток времени.
Конструктивно приборы MicroLAN могут быть выполнены в виде обычных микросхем
и/или в корпусах, называемых iButton. На рисунке 7.3 показан один из приборов
MicroLAN. Отличительной чертой каждого из этих приборов является встроенное 8–
байтное ПЗУ, содержащее уникальный идентификационный
код
устройства.
Содержимое этого 8–байтного кода показано на рисунке 7.4
Рисунок 7.3 -Прибор в корпусе iButton
Рисунок 7.4 –64–битное ПЗУ
Младший байт содержит код семейства, свидетельствующий о типе прибора с
однопроводным интерфейсом, определяя его функциональное назначение. Например,
прибор DS1991 – имеет шестнадцатиричный код семейства 02 . К сетевому
проводу может быть подключено сразу несколько приборов различного
функционального
назначения,
ведущий процессор должен иметь возможность
безошибочно разобраться,
какие
именно
устройства
подключены.
Код
принадлежности помогает решить эту задачу.
Следующие 48 бит ПЗУ содержат уникальный серийный номер конкретного
экземпляра. На рис это код 000000FBC52B. Этот код можно рассматривать как
индивидуальный адрес устройства.
Старший байт ПЗУ прибора содержит контрольную сумму – CRC (cyclic
redundancy check). На рисунке это код 21, который вычисляется на основе
содержимого предыдущих семи байтов. Когда процессор начинает сеанс связи с
прибором, он первым делом читает его 64–битное ПЗУ, причем младшие биты
читаются первыми. Если CRC, рассчитанный процессором на основе принятых
данных (семи младших байтов), совпадает с содержимым 8–го байта ПЗУ, то
считается, что данные
приняты верно. Если эти значения не совпадают, то процесс чтения ПЗУ
повторяется.
Уникальность 64–битного кода прибора состоит в том, что он заносится в
него при изготовлении. Изготовитель гарантирует, что с таким номером будет
выпущен только один прибор. Таким образом, с адресным пространством 256 сеть
MicroLAN перекрывает все существующие сетевые стандарты. В сети MicroLAN не
существует опасности конфликта сетевых адресов и недостаточности адресного
пространства. Параллельное подключение к проводнику нескольких приборов с
интерфейсом MicroLAN и присоединение этого проводника к ведущему процессору с
выходной схемой с открытым коллектором и образуют сеть MicroLAN.
Логика обработки интервалов времени основывается на измерении и
генерировании цифровых импульсов различной длительности. Поскольку форма
падающего фронта в системах с открытым стоком менее подвержена влиянию емкости
нагрузки, то для синхронизации работы всех приборов MicroLAN используется
именно падающий фронт. Для обеспечения максимальной надежности чтения данных и
команд, чтение осуществляется в середине временного интервала передачи данных. В
соответствии со спецификацией интерфейса MicroLAN активная часть временного
интервала 1–проводной шины составляет 60 мкс. После окончания активной части
временного интервала требуется освобождение линии, чтобы напряжение на ней, по
крайней мере на 1 мкс превысило пороговый уровень 2.8 V, что необходимо для
зарядки внутренних конденсаторов питания приборов на шине.
Рисунок 7.5 –Подключение прибора к ПЛИС либо микроконтроллеру
При номинальных условиях, приборы MicroLAN определяют состояние линии
через З0 мкс после падающего фронта. Внутренний временной масштаб приборов
может отклоняться от номинальной величины. Допустимый диапазон отклонения
составляет от 15 мкс до 60 мкс. Это означает, что фактически выборка может
осуществляться ведомым устройством в диапазоне от 5 мкс до 60 мкс после
синхронизирующего фронта. В течение этого временного интервала напряжение на
шине данных должно соответствовать логическому нулю или единицы.
Далее на примере взаимодействия с ведущим устройством (мастером) самого
простого прибора типа DS1990A рассмотрим временную диаграмму интерфейсных
сигналов.
DS1990A представляет собой устройство без внутреннего источника
питания, которое содержит только записанное с помощью лазера 64–битное ПЗУ с
уникальным серийным номером. Этот серийный номер обычно используется как код
доступа. Для считывания данных с DS1990A непосредственно в ведущее устройство,
например, контроллер доступа в помещение прибор по однопроводной линии
подключается
к 1–проводной шину. При этом DS1990A является ведомым
устройством, а его питание во время обмена данными производится от 1–проводной
шины. В состоянии ожидания 1–проводная шина имеет высокий логический уровень.
Последовательность доступа к DS1990A по 1–проводной шине следующая:
* инициализация;
* команда чтения ПЗУ;
* чтение данных.
Инициализация производится в следующей последовательности (рисунок 7.6):
* мастер посылает импульс сброса (reset pulse) — сигнал низкого уровня
длительностью не менее 480 мкс;
* за импульсом сброса следует ответ подчиненного устройства (presence pulse)
— сигнал низкого уровня длительностью 60–240 мкс,
который генерируется через 15–60 мкс после завершения импульса сброса.
Рисунок 7.6 – инициализирующая последовательность
Ответ подчиненного устройства дает мастеру понять, что на шине присутствует
ключ DS1990A и он готов к обмену. После того как мастер обнаружил ответ, он может
передавать команду чтения ПЗУ. Команда чтения ПЗУ имеет код 33H. Передача
данных ведется путем формирования специальных временных интервалов (time slots).
Каждый временной интервал служит для передачи одного бита. Первым передается
младший бит. Интервал начинается импульсом низкого уровня, длительность
которого лежит в пределах 1–15 мкс. Переход из единицы в ноль формируется
открытым транзистором ведущего и используется прибором DS1990A для
синхронизации с мастером. В DS1990A запускается схема временной задержки,
которая определяет момент считывания данных. Номинальное значение задержки
равно 30 мкс, однако оно может колебаться в пределах 15–60 мкс. За импульсом
низкого уровня следует передаваемый бит. Он должен удерживаться на шине 60–120
мкс от начала интервала. Временной интервал завершается переводом шины в
состояние высокого уровня на время не менее 1 мкс.
Это необходимо для зарядки внутреннего конденсатора, который обеспечивает
питание DS1990A. Аналогичным образом формируются временные интервалы для
всех передаваемых битов команды (рисунок 7.7).
Приняв команду чтения ПЗУ, DS1990A передает 8–битный код типа устройства
(для DS1990A это 01H), 48–битный серийный номер и 8–битную контрольную
сумму. Временные интервалы для принимаемых битов тоже формирует мастер.
Интервал начинается импульсом низкого уровня длительностью 1–15 мкс. Затем
мастер должен освободить шину, чтобы дать возможность DS1990A вывести бит
данных. По переходу из единицы в ноль DS1990A выводит на шину бит данных и
запускает схему временной задержки, которая определяет, как долго бит данных
будет присутствовать на шине. Это время лежит в пределах 15–60 мкс. Для того чтобы
данные на шине гарантированно установились, требуется некоторое время. Поэтому
момент считывания данных мастером должен отстоять чуть меньше, чем на 15 мкс от
начала временного интервала (рисунок 7.8).
3.3 Логика работы сети MicroLAN
Все приборы, предназначенные для работы на шине MicroLAN, содержат
встроенный сетевой контроллер, позволяющий многочисленным приборам работать в
составе обшей сети. Это позволяет построить распределенную систему сбора и
хранения информации, использующую только одну общую линию данных к ведущему
шины. Любая сеть всегда требует наличия идентификационных номеров всех узлов в
пределах сети. Все микросхемы MicroLAN содержат область ПЗУ, в которой записан
уникальный для каждой микросхемы регистрационный номер, который удобно
использовать качестве идентификатора узла.
Рисунок 7.7 -Временные интервалы чтения-записи
Пользователю не нужно волноваться относительно возможности конфликта
идентификаторов узлов, так как производителем гарантируется невозможность выпуска
двух микросхем с одинаковым серийным номером. Кроме того, построение
выходного устройства микросхем на основе транзистора с общим стоком позволяет
избежать потенциальных проблем, если происходит какой–либо конфликт на шине.
Фактически, 1– проводной интерфейс действительно является 1–проводной сетью
MicroLAN со всем необходимым для работы в сети с одним ведущим и
многочисленными ведомыми.
Рисунок 7.9 – Передача нуля
Рисунок 7.10 –Чтение данных
Протокол работы приборов MicroLAN представляет собой многоуровневую
структуру, каждый из уровней которой предназначен для выполнения определенных
функций. Первые четыре уровня этой структуры, определяющие работу приборов на
шине MicroLAN. Оставшиеся уровни, определяют структуру файловой системы
микросхем памяти и конкретное
применение
микросхем
в пользовательской
системе,
и
не
будут
рассматриваться
на
данном
занятии.
Рисунок 7.11 – Чтение данных из ПЗУ
Физический уровень. Этот уровень определяет электрические характеристики,
логические уровни напряжений и общие временные параметры протокола обмена на
шине MicroLAN.
Канальный уровень. Этот уровень определяет основные функции связи на шине
MicreLAN. Он обеспечивает функции Сброса. Обнаружения присутствия и передачи
бита данных. Подробности аппаратных средств приборов MicroLAN представлены в
разделе "Временные параметры". После передачи Импульса присутствия связь на
шине MicroLANпереходит на Сетевой уровень.
Сетевой уровень Этот уровень обеспечивает идентификацию приборов
MicroLAN и связанных с ними возможностей сети. Каждый прибор, предназначенный
для работы в составе сети MicroLAN, содержит страницу данных, необходимую для
идентификации прибора, и называемую областью ПЗУ. В эту область при производстве
микросхемы записывается с помощью лазерного луча уникальный для каждой
микросхемы серийный номер. Занесение этого кода очень строго контролируется в
процессе производства, и фирма Dallas Semiconductor гарантирует уникальность
серийного номера для каждой микросхемы. Поэтому именно значение серийного
номера используется для идентификации прибора в составе сети и для управления
доступом к отдельным приборам. Кроме серийного номера в область ПЗУ заносится
групповой код, отражающий функциональное назначение микросхемы и контрольная
сумма всех данных в области ПЗУ. Из–за использования области ПЗУ для идентификации
и адресации отдельных приборов с сети, все команды, которые относятся к сетевому
уровню, также названы командами ПЗУ. За исключением DS1990A, все приборы
MicroLAN поддерживают все команды Сетевого уровня. DS1990A поддерживает
только команды Чтение ПЗУ и Поиск ПЗУ. Команды Пропуск ПЗУ и Совпадение
ПЗУ в этом приборе не поддерживаются, так как в нем не имеется больше никакой
памяти, требующей доступа. При подаче этих команд на DS1990A, не будет
предпринято никаких дальнейших действий на 1–проводной шине. После чтения ПЗУ,
прежде чем продолжить связь, должна быть выполнена проверка контрольной
суммы. После посылки любой команды ПЗУ и передачи и приема требуемых
данных происходит переход на Транспортный уровень. Если это не желательно, то
Импульс Сброса возвращает систему на Сетевой уровень.
Транспортный уровень Этот уровень ответственен за передачу данных между
всеми областями памяти устройств MicroLAN (кроме области ПЗУ) и ведущим шины,
и за перемещения данных из области блокнотной памяти на окончательное место в
памяти. Работа некоторых устройств на транспортном уровне отличается от
остальных. Такими устройствами являются цифровые термометры DS1820 и DS1920 и
адресуемые ключи DS2405 и DS2407. поскольку они не являются типичными
устройствами памяти. Все микросхемы энергонезависимой памяти поддерживают
выполнение команд Чтение памяти (Чтение подключа в случае DS1991), Запись
блокнотной памяти, Чтение блокнотной памяти и Копирование блокнотной памяти.
Из–за специфической области применения DS1991 также поддерживает команды
Запись подключа и Запись пароля. DS1991 использует другие командные слова,
способы адресации и размеры страниц памяти по сравнению с другими
микросхемами. По этой причине она не полностью совместима на транспортном
уровне. Благодаря отличающейся технологии микросхемы памяти с однократным
программированием также требуют другой структуры системы команд на
транспортном уровне. Однако обеспечивается совместимость для команды Чтение
памяти.
3.4 Проверка достоверности передаваемой информации на шине MicroLAN
Как было сказано, в качестве средства идентификации каждого прибора
служит его уникальный серийный номер, записанный в области ПЗУ. Таким
образом, для работы любого прибора на шине MicroLAN необходимо обязательное
наличия в его составе области ПЗУ с серийным номером прибора и поддержка
команд сетевого уровня, связанных с идентификацией каждого прибора и
возможностью выборочной адресации одного или нескольких приборов на шине. Схема
проверки истинности потока данных, основанная на вычислении циклического
избыточного кода, является наиболее эффективной при локализации ошибок и
требует минимальных аппаратных затрат. Опишем далее применяемую схему
определения ошибок, не приводя сложных математических обоснований метода.
Работу схемы проще всего пояснить на примере ее аппаратной реализации.
Аппаратно схема представляет собой сдвиговый регистр с обратной связью (рисунок
7.12).
Рисунок 7.12 – Реализация 8-битового алгоритма подсчета
контрольной
циклической суммы ЦИК (CRC)
Процедуру выделения ошибки часто описывают в виде полиномиальной
функции формальной переменной X. Показатели степени ненулевых членов этого
полинома показывают, на какие разряды сдвигового регистра замыкаются петли
обратной связи.
Число разрядов сдвигового регистра (в аппаратной реализации) или степень
полинома (при математическом описании) определяют разрядность вычисляемого
ЦИК. Обычно при цифровом обмене данными используют 16–разрядные ЦИК. ЦИК
содержится в старшем байте ПЗУ. Расположение точек входа петель обратной связи,
обозначенных на рисунке 3.12логическими элементами "исключающее ИЛИ" (или, что
то же самое, степени ненулевых членов полинома), определяет свойства ЦИК и
способность алгоритма выявить определенные классы ошибок при передаче данных.
Алгоритм, приведенный на рисунке 7.12, способен распознать следующие классы
ошибок:
• Любое нечетное число ошибок в любом месте 64–битовой последовательности.
• Все двойные ошибки (ошибки в двух смежных битах) в любом месте 64–битовой
последовательности.
•
Любые кластеры ошибок в пределах 8–битового "окна", т.е.кластеры,
содержащие от 1 до 8 неправильных битов.
• Большинство кластерныхошибок с размерами кластера, превышающими 8 бит.
Входные данные подаются на один из входов двухвходового логического
элемента "исключающее ИЛИ" (ХОР). Ко второму входу этого элемента
подключается
выход
старшего
разряда
8–разрядного сдвигового
регистра.
Математически сдвиговый регистр может рассматриваться как схема деления.
Входные данные – это делимое, а сдвиговый регистр с цепями обратной связи служит
делителем. Целая часть полученного частного отбрасывается, а остаток представляет
собой искомый ЦИК, который окажется в сдвиговом регистре, как только последний
бит данных пройдет на вход. Из такого аппаратного описания алгоритма видно, что
результат (значение ЦИК) очень сложным образом зависит от предыстории
контролируемой последовательности битов. Поэтому комбинации ошибок, способные
пройти незамеченными через такой контроль, очень редки.
В таблице 3.1 показан пошаговый расчет ЦИК исходной 64 –битовой
последовательности. Каждая строка левого столбца отражает содержимое сдвигового
регистра после подачи на вход очередного бита из 64–битовой последовательности
пересылаемых данных. Первым на вход подается младший бит младшего байта. В
начале процедуры все биты сдвигового регистра сброшены (т.е. представляют собой
нули).
Расчет начинается подачей младшего бита 64–битовой последовательности. В
этом примере младший байт равен 02h и представляет собой код принадлежности к
семейству устройств с однопроводным интерфейсом. После того как последний, 56–й
бит (код принадлежности + серийный номер) будет введен в сдвиговый регистр, в нем
окажется число 10100010 (или А2hв 16–ричном выражении). Это и будет ЦИК для
введенной последовательности из 56 битов. Если это число использовать в качестве
входной последовательности для следующих восьми шагов, то в результате в
сдвиговом регистре останутся одни нули. Иными словами, если вы проверяете
полное 64 – битовое ПЗУ, хранящее в своем старшем байте ЦИК первых 56 бит, то,
не ограничиваясь при вводе 56–ю битами, а вводя все 64, получите очищенный
сдвиговый регистр (все нули). Отмеченный факт является свойством описываемого
алгоритма. Его можно сформулировать и в более общей форме. Если любое 8–
битовое число, находящееся в данный момент в сдвиговом регистре, использовать в
качестве входной последовательности для последующих 8 шагов сдвига, то
результатом будет очищенный регистр, все разряды которого содержат нуль. Это
можно объяснить следующим образом.
При описанном выше условии (равенстве содержимого регистра и входной
последовательности) выход старшего разряда регистра (8 –й шаг) всегда будет равен
входному биту данных, а на выходе логического элемента "исключающее ИЛИ"
всегда будет нуль. Этот нуль по цепи обратной связи поступает в младший разряд
сдвигового регистра (1–й шаг). При поступлении на вход следующего бита нулевой
бит младшего разряда регистра сдвинется в следующий разряд, а на его место
поступит нулевой же бит с выхода элемента "исключающее ИЛИ". После восьми
таких шагов во всех разрядах сдвигового регистра окажутся нули. Структура 64–
битового ПЗУ в однопроводных устройствах использует указанное свойство для
упрощения аппаратного обеспечения устройств, применяемых для чтения ПЗУ.
Сдвиговый регистр читающего устройства очищается, а затем читаются 64 бита
данных из ПЗУ контролируемого устройства, включая и байт ЦИК. Если данные
прочитаны верно, то регистр читающего устройства будет снова содержать нули, что
легко фиксируется. Если же в сдвиговом регистре окажется ненулевое значение,
операцию чтения нужно повторить.
Таблица 7.1 Пример расчета контрольного циклического кода 64-битовой
последовательности
До сих пор мы обсуждали аппаратную реализацию процесса вычисления ЦИК.
Но можно вычислить ЦИК и программным способом.
В табл. 7.2 приведен ассемблерный код такой процедуры. Операция XRL над
содержимым регистра А и константой 18h соответствует в аппаратной реализации
наличию логических элементов "исключающее ИЛИ" на входах четвертого и пятого
разрядов сдвигового регистра .
Таблица 7.2 Ассемблерная процедура для подсчета 8-битовой контрольной
суммы
Другим программным решением является создание таблицы преобразования,
определяющей связь между любым текущим 8–битовым значением регистра ЦИК и
любым 8 –битовым отрезком входных данных. В простейшем случае, когда текущее
значение регистра ЦИК равно 00h, можно рассчитать 256 возможных битовых
комбинаций входного байта и разместить их в матрице, где индекс матрицы будет
равен значению входного байта (т.е. индекс будет пробегать значения от 0 до 255, и
число, размещенное в 1 –й позиции, будет равно i). Можно показать, что если
текущее значение регистра ЦИК отлично от нуля, то для любого заданного
значения ЦИК и любого входного байта таблица преобразования будет состоять из
тех же 255 значений, но расставленных в таблице в соответствии с формулой: новое
значение ЦИК = Таблица (i), где i= (Текущее значение ЦИК) ХОR (Входной байт).
Когда текущее значение ЦИК равно 00h, данная формула приводит к описанному
выше простейшему случаю. Второе программное решение сокращает время расчета,
так как операции производятся не над битами, как в первом варианте, а над байтами.
Однако в этом случае требуется 256 байт дополнительной памяти для размещения
таблицы преобразования. Для первого варианта программного решения память
требуется только для размещения программного кода. Пример программного кода
для второго варианта приведен в табл. 3.3. Табл. 3.4 иллюстрирует использование
метода таблицы преобразования на уже приводившемся ранее примере. Два свойства
алгоритма вычисления ЦИК могут помочь в отладке программного кода. Первое из
них уже упоминалось при описании аппаратной реализации алгоритма, а именно: если
текущее значение регистра ЦИК использовать в качестве следующего входного байта,
то в результате в регистре ЦИК окажутся одни нули. Второе свойство заключается в
том, что если в качестве входной последовательности использовать байт, инверсный
байту, содержащемуся в данный момент в регистре ЦИК, то через восемь шагов в
регистре ЦИК окажется число 35h(53 в десятичном выражении). Эта процедура показана в
табл. 3.5.
Таблица 7.3 Программный код, вычисляющий 8-битный ЦИК по методу таблицы
преобразования.
Таблица 7,5. Изменение содержимого сдвигового регистра генератора ЦИК при
подаче на его вход байте, комплементарного байту, содержащемуся в нем в данный
момент.
Лекция № 8