Параллельная передача данных. Контроллеры параллельной передачи и приема

Параллельная передача данных

При параллельной передаче все биты информационного слова (например, 8 или 16 бит) передаются одновременно по отдельным физическим проводам.

  • Плюсы: Высокая скорость передачи данных при одинаковой тактовой частоте по сравнению с последовательным интерфейсом.
  • Минусы: Требуется много проводов (дороговизна разъемов и кабелей). Интерфейс сильно подвержен электромагнитным помехам (наводкам между проводами) и рассинхронизации сигналов, из-за чего дальность передачи очень мала.

Контроллер параллельной передачи (Вывод в ВУ)

Используется для отправки данных из процессора во внешнее устройство (ВУ) с помощью асинхронного обмена (по готовности). Основные аппаратные элементы: буферный регистр данных A1 и регистр состояния A2 (выполняющий роль флага занятости).

Алгоритм работы контроллера передачи:

  1. Процессор (непрерывно в цикле или по прерыванию) проверяет регистр состояния A2. 0 — контроллер свободен, 1 — занят.
  2. Если A2 = 0, процессор выставляет выводимый байт на системную шину данных и подаёт команду “Вывод”.
  3. Логика управления контроллера записывает данные в регистр A1 и одновременно устанавливает регистр A2 в 1. На ВУ физически уходит сигнал “Выходные данные готовы”.
  4. Внешнее устройство считывает данные из A1 и отправляет обратно аппаратный сигнал “Данные приняты”.
  5. Этот сигнал аппаратно сбрасывает регистр A2 в 0, сигнализируя процессору, что байт доставлен и можно отправлять следующий.

Рис. 1: Контроллер передачи параллельного асинхронного интерфейса

Зачем столько линий и причём тут RS- и D-триггеры?

Логика управления (ЛУ) сама не передаёт данные. Буферный регистр А1 построен на базе D-триггеров. Когда процессор выставляет данные на шину, они подходят ко входам D регистра A1. ЛУ лишь расшифровывает команду процессора и посылает короткий синхроимпульс на входы C (Clock) регистра. По этому стробу D-триггеры аппаратно “защёлкивают” данные внутри себя. Подробнее об этом: RS- и D-Триггеры.

Что за облачко молочного цвета?

Регистр состояния A2 — это физически всего один RS-триггер (1 бит). Однако системная шина данных многоразрядная. Чтобы процессор мог прочитать этот 1 бит, выход триггера A2 аппаратно припаян к нулевому проводу шины данных. Остальные разряды при чтении заполняются нулями.

Контроллер параллельного приема (Ввод из ВУ)

Используется для получения данных от внешнего устройства. Состоит из тех же основных элементов: буферного регистра данных A1 и регистра состояния A2.

Алгоритм работы контроллера приема:

  1. Внешнее устройство выставляет байт данных на периферийную шину и подаёт в контроллер сигнал “Запись вА1”.
  2. Данные сохраняются в буферном регистре A1, а регистр состояния A2 устанавливается в 1. Контроллер выставляет на системную шину управления сигнал “Готовность ВУ” (сообщающий процессору, что свежие данные можно забирать).
  3. Процессор обнаруживает готовность (считав A2 напрямую или получив прерывание) и подаёт команду “Ввод”.
  4. Данные из A1 выдаются на системную шину данных и считываются в аккумулятор процессора.
  5. Одновременно с чтением логика управления сбрасывает регистр A2 в 0, отправляя на ВУ сигнал “Данные приняты”. Это сообщает внешнему устройству, что контроллер свободен и можно присылать следующий байт.

Рис. 2: Контроллер приема параллельного асинхронного интерфейса

Что изменилось?

Тут изменения только в том, что теперь все линии к триггерам исходят от ВУ. Аналогично контроллеру передачи, тут “запись в А1” - это сигнал C для D-триггера, а RS-триггер работает точно так же, но в другую сторону