Шинная организация микропроцессорных систем- с одной шиной, с дв. Программа для эвм это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.97 Mb.
|
51.Организация последовательной передачи данных.Последовательный интерфейс для передачи данных использует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. Последовательная передача данных может осуществляться в асинхронномили синхронномрежимах. Использование последовательных линий связи для обмена данными с ПУ возлагает на контроллеры ПУ дополнительные по сравнению с контроллерами для параллельного обмена функции. Во-первых, возникает необходимость преобразованияформатаданных: из параллельного формата, в котором они поступают в контроллер ПУ из системной магистрали микропроцессорной системы, в последовательный при передаче в ПУ и из последовательного в параллельный при приеме данных их ПУ. Во-вторых, требуется обеспечить побитную и покадровую синхронизацию. Побитнаясинхронизациянеобходима для правильного приема передаваемых битов, покадроваясинхронизация– для выделения сообщения из принятой последовательности битов. Синхронная последовательная передача данных В синхронном режиме параллельно с передачей по линии данных последовательности информационных битов по линии синхросигналов передается последовательность синхроимпульсов, что позволяет, как правило, повысить скорость передачи и решить проблемы побитной синхронизации передатчика и приемника при передаче длинных информационных сообщений. Покадровая синхронизация в синхронном режиме осуществляется использованием специальных кодовых последовательностей (флагов или специальных знаков) в общем случае в начале и конце кадра. Поскольку в синхронном режиме информационные биты сообщения передаются непрерывным потоком, то для кодирования и декодирования кадров используют специальные договоренности по форматам кадров (протоколам обмена). Восьмиразрядный буферный регистр контроллера DXR служит для временного хранения байта данных до его загрузки в сдвиговый регистр. Запись байта данных в буферный регистр из шины данных системной магистрали производится так же, как и в параллельном интерфейсе, только при наличии единицы в одноразрядном адресуемом регистре состояния контроллера SR. Единица в регистре состояния указывает на готовность контроллера принять очередной байт в буферный регистр. При записи очередного байта в буферный регистр DXR обнуляется регистр состояния SR. Преобразование данных из параллельного формата, в котором они поступили в буферный регистр контроллера из системной магистрали, в последовательный и передача их в линию связи производится в сдвиговом регистре с помощью генератора тактовых импульсов и двоичного трехразрядного счетчика. Последовательная линия связи контроллера с ПУ подключается к выходу младшего разряда сдвигового регистра. По очередному тактовому импульсу содержимое сдвигового регистра сдвигается на один разряд вправо и в линию связи Данныевыдается значение очередного разряда. Одновременно со сдвигом в ПУ передается по отдельной линии Синхронизациятактовый импульс. Таким образом, каждый передаваемый по линии Данные бит информации сопровождается синхронизирующим сигналом по линии Синхронизация, что обеспечивает его однозначное восприятие на приемном конце последовательной линии связи. Количество переданных в линию бит информации подсчитывается счетчиком. Как только содержимое счетчика становится равным 7, т.е. в линию переданы 8 бит (один байт) информации, формируется управляющий сигнал Загрузка, обеспечивающий запись в сдвиговый регистр очередного байта из буферного регистра. Этим же управляющим сигналом устанавливается в 1 регистр состояния. Очередным тактовым импульсом счетчик будет сброшен в 0, и начнется очередной цикл выдачи восьми битов информации из сдвигового регистра в линию связи. Синхронная последовательная передача отдельных битов данных в линию связи должна производиться без какого-либо перерыва, и следующий байт данных должен быть загружен в буферный регистр из микропроцессора за время, не превышающее времени передачи восьми битов информации из сдвигового регистра в линию связи. При записи байта данных в буферный регистр обнуляется регистр состояния контроллера. Нуль в этом регистре указывает, что в линию связи передается байт данных из сдвигового регистра, а следующий передаваемый байт данных загружен в буферный регистр. Буферный регистр контроллера DRR служит для временного хранения байта данных, поступившего из сдвигового регистра. Чтение байта данных микропроцессором из буферного регистра производится так же, как и в параллельном интерфейсе. Единица в регистре состояния контроллера SR указывает на готовность контроллера передать очередной байт данных в системную магистраль. Данные, поступающие из линии связи в последовательном коде, преобразуются в контроллере в параллельный код с помощью сдвигового регистра и трехразрядного двоичного счетчика тактовых импульсов. Входная последовательная линия связи Данныеподключается в контроллере к последовательному входу сдвигового регистра, а входная линия Синхронизация– на управляющий вход Сдвигсдвигового регистра и на вход счетчика тактовых импульсов. По очередному тактовому сигналу, поступившему от синхрогенератора ПУ по линии Синхронизация, производятся сдвиг содержимого сдвигового регистра на один разряд влево и запись очередного бита данных из линии связи Данныев младший разряд этого регистра. Одновременно увеличивается на единицу содержимое счетчика тактовых импульсов. Как только содержимое счетчика становится равным 7, т.е. в сдвиговый регистр приняты последовательно восемь битов информации, формируется управляющий сигнал Запись, который обеспечивает запись в буферный регистр очередного принятого байта из сдвигового регистра. Этим же управляющим сигналом устанавливается в 1 регистр состояния. За время приема в сдвиговый регистр следующих восьми битов информации байт данных из буферного регистра должен быть передан в шину данных системной магистрали. При этой передаче обнуляется регистр состояния контроллера, и нуль в этом регистре означает, что в сдвиговый регистр принимается из линии связи очередной байт информации. Асинхронная последовательная передача данных Организация асинхронного последовательного обмена данными с ПУ осложняется тем, что на передающей и приемной сторонах последовательной линии связи используются настроенные на одну частоту, но физически разные генераторы тактовых импульсов и, следовательно, общая синхронизация отсутствует. Для обеспечения синхронизации информация передается в виде посылки (кадра), которая включает стартовый бит, равный нулю, биты передаваемых данных, возможно, бит паритета (четности) и один или два единичных стоповых бита (рис. 81). Рисунок 81 – Формат кадра при асинхронном последовательном обмене Побитная синхронизация приемника и передатчика осуществляется по стартовому биту и затем поддерживается абонентами в течение времени передачи кадра стабильностью тактовых частот генераторов передатчика и приемника, частоты которых, как правило, минимум в 16 раз превышают частоту передачи данных. С учетом этих обстоятельств, скорость передачи в асинхронном режиме ниже, чем в синхронном режиме. Процесс передачи байта данных начинается с того, что процессор по команде вывода записывает передаваемый байт в буферный регистр DXR. Одновременно с этим происходит сброс регистра состояния, что снимает блокировку с делителя частоты. Делитель частоты начинает подсчитывать импульсы генератора тактовой частоты и в момент приема шестнадцатого тактового импульса вырабатывает импульс сдвига. При этом на выходную линию контроллера Данныевыдается значение стопового бита (состояние 1). Импульс сдвига изменит состояние счетчика импульсов сдвига на 0 и сформируется сигнал Загрузка. Передаваемый байт переписывается в разряды 1, …, 8 сдвигового регистра, при этом в нулевой разряд сдвигового регистра записывается 0 (стартовый бит), а в разряды 9 и 10 – единицы (стоповые биты). На выходной линии контроллера Данныепоявится состояние 0 (значение стартового бита), которое будет поддерживаться до тех пор, пока не будет выработан очередной импульс сдвига. Импульс сдвига изменит состояние счетчика импульсов сдвига на 1 и перепишет в нулевой разряд сдвигового регистра первый информационный бит передаваемого байта данных. Состояние, соответствующее значению этого бита, будет поддерживаться на линии Данныедо следующего импульса сдвига. До прихода стартового бита по линии «Данные» в контроллер для асинхронного приема данных поступает уровень единицы. Этот уровень обеспечивает выработку сигнала, запрещающего работу делителя частоты генератора тактовых импульсов. Действительно, после приема предыдущего байта данных счетчик импульсов сдвига (счетчик по mod 9) находится в нулевом состоянии и на схему И поступают два единичных сигнала: со счетчика сдвигов и из линии «Данные». На выходе схемы И формируется сигнал блокировки делителя частоты тактового генератора, запрещающий формирование импульсов сдвига. В момент смены стопового бита на стартовый (момент начала передачи нового кадра) на линии Данныепоявится уровень 0 и тем самым будет снят сигнал блокировки делителя частоты. После приема восьми тактовых импульсов на выходе разряда 3 делителя частоты появится сигнал, поступающий на входы сдвигового регистра и счетчика импульсов сдвига. Так как частота сигналов генератора тактовых импульсов приемника должна совпадать с частотой генератора тактовых импульсов передатчика, то сдвиг сдвигового регистра (т.е. прием очередного бита из линии Данные) произойдет примерно на середине временного интервала, отведенного на передачу бита данных, т.е. времени, необходимого для выработки 16 тактовых импульсов. Это делается для уменьшения вероятности ошибки из-за возможного различия частот тактовых генераторов передатчика и приемника, искажения формы передаваемых сигналов (переходные процессы) и т.п. Следующий сдвиг произойдет после прохождения 16 тактовых импульсов, т.е. на середине временного интервала передачи первого информационного бита. При приеме в сдвиговый регистр девятого бита кадра (восьмого информационного бита) из него выдвинется стартовый бит и, следовательно, в сдвиговом регистре будет размещен весь принятый байт информации. В этот момент счетчик импульсов сдвига перейдет в нулевое состояние и на его выходе будет выработан единичный сигнал, по которому: содержимое сдвигового регистра перепишется в буферный регистр; в регистр состояния запишется 1, и он будет информировать процессор об окончании приема очередного байта; схема И подготовится к выработке сигнала блокировки делителя частоты, который сформируется после прихода первого стопового бита. Получив сигнал готовности в регистре состояния, процессор по команде ввода прочитает принятый байт данных. |