Искусство схемотехники. Том 3 [Изд.4 е] - Пауль Хоровиц страница 10.

Шрифт
Фон

Микросхема AD670, как большинство периферийных микросхем, не отличается быстротой реакции в своей интерфейсной части. Ей требуется строб СЕ' по меньшей мере длительностью 300 нc в цикле записи, в цикле же чтения время доступа с момента установки СЕ' составляет 250 нc. Обратившись к рис. 11.4, вы увидите, что эти величины не удовлетворяют требованиям временной синхронизации МП 68008 в случае нормального (без состояний ожидания) цикла магистрали. Однако при двух состояниях ожидания (которые наша схема генерирует для всех адресов от $80000 и выше) все согласуется: сигнал DS' в цикле записи получает длительность 390 нc, а в цикле чтения он должен поддерживаться в установленном состоянии в течение 487 нc.

ЦАП AD558 также является комплексным конвертером; ему требуется единственное напряжение питания +5В, а на выходе образуется сигнал напряжения. В микросхему можно только записывать, поэтому мы использовали строб WR' для разрешения микросхемы, а сигнал декодирования адреса - для выбора микросхемы. Здесь также временные соотношения не будут удовлетворяться при отсутствии состояния ожидания: AD558 требует наличия данных за 200 нc до среза сигнала СЕ', а минимальная длительность СЕ' составляет 150 нc. Без состояний ожидания вы получите только 180 нc и 140 нc, соответственно; два состояния ожидания увеличат эти интервалы до удовлетворительных значений 430 нc и 390 нc.

Последовательный и параллельный порты. Типичными представителями перифейрийных БИС являются микросхемы Zilog 8530 SCC (последовательный порт) и 8536 СIO (параллельный порт и таймер). Такого рода микросхемы отличаются необычной гибкостью и умопомрачительным количеством рабочих режимов, программируемых путем засылки управляющих байтов во внутренние регистры. Некоторые из этих микросхем по сложности приближаются к микропроцессорам (см. рис. 11.13), и чтобы научиться программировать их работу, вам придется затратить немало времени.

Пауль Хоровиц, Уинфилд Хилл - Искусство схемотехники. Том 3 [Изд.4-е]

Рис. 11.13.Структурная схема последовательного порта Zilog 8530.

Примечание: BR - запрос шины; FIFO - "пеpвым вошел, первым вышел"; TxD - сигнал передачи; RxD - сигнал приема; NRZ1 - кодирование без возвращения к нулю с инверсией; CRC - контроль циклическим избыточным кодом; DPLL - фазовая автоподстройка частоты; SDLC - синхронное управление линиями передачи данных.

Хотя периферийные БИС обычно разрабатываются под конкретные микропроцессоры, общность их характеристик позволяет использовать микросхемы, предназначенные для поддержки определенного семейства микропроцессоров, с процессорами других фирм. Микросхемы Zilog 85хх претендуют на роль универсальных, "магистрально-независимых" периферийных устройств, хотя при использовании их с МП 68008 возникает некоторая несовместимость в отношении строба RD', которую мы снимем, образовав задержанный строб RD'.

Рассмотрим сначала параллельный порт/таймер 8536. В нем используется пара стробирующих сигналов RD' и WR', а также сигнал разрешения входа СЕ' (который, как и обычно, поступает с выхода дешифратора адреса). Кроме того, на соответствующий вход микросхемы подаются тактовые сигналы для синхронизации таймера и управления внутренней логикой. Микросхема 8536 включает цепи полностью векторизуемых прерываний с подтверждением, выставляющие вектор на линии данных в течение цикла подтверждения прерывания. Реализация всех этих излишних для нас возможностей требует использования приоритетной цепочки, связывающей устройства (с помощью входного сигнала IEi и выходного IEO), а также входа INTACK', управляющего установкой (программируемого) вектора. Мы же ограничимся выходным сигналом INT' для организации запроса прерывания. Из состава интерфейсной шины к параллельному порту подключаются линии данных D0-D7, а также адресные линии (А0, А1) для адресации внутренних регистров; использование двух младших адресных линий приводит к отображению внутренних регистров на адресное пространство, начинающееся с базового адреса. В нашем случае внутренние регистры располагаются по адресам $84000-$84003.

Число адресных выводов наводит на мысль, что в микросхеме имеются 4 внутренних регистра, что, однако, весьма далеко от истины: фактически порт содержит 41 регистр для записи и 48 регистров для чтения! (Мы же предупреждали, что программирование этих микросхем - кошмарное занятие!) Для доступа к регистрам вы сначала записываете в "управляющий" регистр по адресу база + 3 ($84003) байт, содержащий адрес требуемого регистра данных, а затем читаете из или записываете в выбранный регистр. В отличие от этого регистры данных параллельного порта допускают непосредственную адресацию, и в них записывают или из них читают прямо по адресам база, база + 1 и база + 2.

На рис. 11.14 показаны временные диаграммы циклов чтения и записи, позволяющие рассмотреть проблемы синхронизации строба RD'.

Пауль Хоровиц, Уинфилд Хилл - Искусство схемотехники. Том 3 [Изд.4-е]

Рис. 11.14.Синхронизация параллельного порта Zilog 8536.

Спецификации микросхемы 8536 дают минимальное значение интервала между установкой адресных сигналов А0-А1 и фронтом строба RD' (время упреждения) 80 нc. В спецификациях также определяется время отклика, как обычно, довольно большое - бедняге 8536 требуется 255 нc для выдачи данных; длительность же сигнала RD' должна составлять 390 нc (минимум). С большим временем отклика мы уже умеем бороться с помощью состояний ожидания. Однако состояния ожидания не решат проблему с временем упреждения адреса по отношению к RD' (из рис. 11.4 видно, что сигнал DS' может появиться всего лишь через 30 нc после установки правильного адреса). Чтобы все работало правильно, мы должны задержать RD' на один такт ЦП: это легко сделать с помощью того же сдвигового регистра, который генерирует сигнал DTACK'. Мы просто образуем логическое И "быстрого" строба RD' и (инвертированного) выходного сигнала Q0 сдвигового регистра, который не устанавливается до перепада тактового сигнала ЦП между состояниями S3 и S4. В результате образуется задержанный строб RD' (который мы назвали DELRD'), начинающийся на один такт позже (в тот же момент, что и нормальный DS' цикла записи). Описанная процедура предоставляет порту дополнительные 125 нc для упреждения адреса (в сумме 155 нc). Генератор состояний ожидания по-прежнему вводит два состояния ожидания, что делает полную длину цикла достаточной для медленных периферийных устройств.

К счастью, для сигнала WR' не требуется аналогичная схема, потому что МП 68008 предусмотрительно увеличивает время упреждения на один такт для циклов записи (обратите внимание на задержку сигнала DS' в цикле записи на рис. 11.4), а для микросхемы 8536 требуется то же значение времени упреждения (80 нc, см. рис. 11.14).

Интерфейс последовательного порта 8530 выглядит почти так же. Отличие заключается лишь в том, что адресные входы, выбирающие внутренние регистры, называются по-другому. Сигнал А0 подается на вход А/В' (выбирающий канал А или В сдвоенного порта), а сигнал А1 - на вход D/C' (который выбирает регистры данных или управления). Эта микросхема тоже не обижена регистрами: в ней имеются в каждом канале 16 регистров для записи и 9 регистров для чтения; доступ к ним осуществляется так же, как и в микросхеме 8536, в два этапа.

Тактовая частота 8530 может достигать 6 МГц; мы выбрали частоту 4 МГц, которая позволяет установить скорость передачи до 9600 бод. Асинхронные линии данных TxD и RxD работают с уровнями ТТЛ-логики, а не с биполярными сигналами стыка RS-232 (см. разд. 9.14 и 10.19). Большинство драйверов стыка RS-232 (например, классическая микросхема 1488) требуют двух источников питания, что для нашей системы, которая целиком питается от единственного источника +5В, будет как бельмо на глазу. К счастью, сейчас доступны искусные микросхемы, содержащие емкостные преобразователи напряжения. Эта методика была предложена фирмой Maxim в серии микросхем МАХ232; она используется также в микросхемах LT1080 фирмы LTC. Заметьте, что выход запроса прерывания с открытым стоком объединен по схеме проводного ИЛИ с соответствующим выходом микросхемы календаря-часов, так что возбуждение любого выхода приводит к автовекторизуемому прерыванию уровня IPL1. Обработчик прерывания этого уровня должен определить источник прерывания с помощью процедуры опроса, выполняя программное чтение регистра состояния каждого устройства. Соответствующая программа будет описана ниже.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке