Параллельная передача данных. Контроллеры параллельной передачи и приема
Параллельная передача данных
При параллельной передаче все биты информационного слова (например, 8 или 16 бит) передаются одновременно по отдельным физическим проводам.
- Плюсы: Высокая скорость передачи данных при одинаковой тактовой частоте по сравнению с последовательным интерфейсом.
- Минусы: Требуется много проводов (дороговизна разъемов и кабелей). Интерфейс сильно подвержен электромагнитным помехам (наводкам между проводами) и рассинхронизации сигналов, из-за чего дальность передачи очень мала.
Контроллер параллельной передачи (Вывод в ВУ)
Используется для отправки данных из процессора во внешнее устройство (ВУ) с помощью асинхронного обмена (по готовности). Основные аппаратные элементы: буферный регистр данных A1 и регистр состояния A2 (выполняющий роль флага занятости).
Алгоритм работы контроллера передачи:
- Процессор (непрерывно в цикле или по прерыванию) проверяет регистр состояния
A2.0— контроллер свободен,1— занят. - Если
A2 = 0, процессор выставляет выводимый байт на системную шину данных и подаёт команду “Вывод”. - Логика управления контроллера записывает данные в регистр
A1и одновременно устанавливает регистрA2в1. На ВУ физически уходит сигнал “Выходные данные готовы”. - Внешнее устройство считывает данные из
A1и отправляет обратно аппаратный сигнал “Данные приняты”. - Этот сигнал аппаратно сбрасывает регистр
A2в0, сигнализируя процессору, что байт доставлен и можно отправлять следующий.
Рис. 1: Контроллер передачи параллельного асинхронного интерфейса
Зачем столько линий и причём тут RS- и D-триггеры?
Логика управления (ЛУ) сама не передаёт данные. Буферный регистр
А1построен на базе D-триггеров. Когда процессор выставляет данные на шину, они подходят ко входамDрегистраA1. ЛУ лишь расшифровывает команду процессора и посылает короткий синхроимпульс на входыC(Clock) регистра. По этому стробу D-триггеры аппаратно “защёлкивают” данные внутри себя. Подробнее об этом: RS- и D-Триггеры.
Что за облачко молочного цвета?
Регистр состояния
A2— это физически всего один RS-триггер (1 бит). Однако системная шина данных многоразрядная. Чтобы процессор мог прочитать этот 1 бит, выход триггераA2аппаратно припаян к нулевому проводу шины данных. Остальные разряды при чтении заполняются нулями.
Контроллер параллельного приема (Ввод из ВУ)
Используется для получения данных от внешнего устройства. Состоит из тех же основных элементов: буферного регистра данных A1 и регистра состояния A2.
Алгоритм работы контроллера приема:
- Внешнее устройство выставляет байт данных на периферийную шину и подаёт в контроллер сигнал “Запись в
А1”. - Данные сохраняются в буферном регистре
A1, а регистр состоянияA2устанавливается в1. Контроллер выставляет на системную шину управления сигнал “Готовность ВУ” (сообщающий процессору, что свежие данные можно забирать). - Процессор обнаруживает готовность (считав
A2напрямую или получив прерывание) и подаёт команду “Ввод”. - Данные из
A1выдаются на системную шину данных и считываются в аккумулятор процессора. - Одновременно с чтением логика управления сбрасывает регистр
A2в0, отправляя на ВУ сигнал “Данные приняты”. Это сообщает внешнему устройству, что контроллер свободен и можно присылать следующий байт.
Рис. 2: Контроллер приема параллельного асинхронного интерфейса
Что изменилось?
Тут изменения только в том, что теперь все линии к триггерам исходят от ВУ. Аналогично контроллеру передачи, тут “запись в
А1” - это сигналCдля D-триггера, а RS-триггер работает точно так же, но в другую сторону