Искусство схемотехники. Том 3 (Изд.4-е)
Шрифт:
На рис. 11.27 показан пример реальной схемы, конкретно для управления 6-разрядным дисплеем.
Рис. 11.27. Управление мультиплексированным дисплеем от РIO.
Конечно, вам придется написать программу для периодического вывода последовательных десятичных чисел, а также и «шагающего бита» через порт А, не забыв запретить прерывания на время вывода, чтобы предотвратить мерцание. Другой, более простой способ управления многоразрядным ЭЛД-дисплеем в микропроцессорной системе заключается в использовании чего-то вроде семейства «интеллектуальных дисплеев» фирмы Siemens-дисплейных секций, отображаемых на память, и выглядящих с точки зрения ЦП просто как участки памяти (см. рис. 9.24); поскольку такие дисплеи запоминают выводимые числа, запись в них требуется выполнять только при смене отображаемого числа.
Квитирование. Процедура квитирования требует некоторых
На рис. 11.28 показано, как реализуется это «взаимное квитирование», которое является одним из четырех режимов квитирования, предусмотренных в микросхеме 8536.
Рис. 11.28. Квитирование.
При вводе данных внешний источник может установить данные, но не устанавливает строб ACKIN' (такое название этого вывода придумала фирма Zilog!) до обнаружения установленного сигнала RFD. Устройство снимает строб (и может снять данные), обнаружив сброс RFD, затем снова ожидает установки RFD. При выводе данных процессы протекают аналогично. РIO устанавливает сначала данные, затем сигнал DAV' (data available, данные установлены). Внешнее устройство фиксирует данные, после чего устанавливает сигнал подтверждения ACKIN'. Это заставляет РIO сбросить и данные, и DAV'. Последнее воспринимается внешним устройством, как команда на сброс ACKIN', чем начинается новый цикл. Заметьте, что квитирование полностью взаимно, т. е. каждый участник передачи данных на каждом шаге ждет вершения своей части операции вторым соучастником. Такое полностью взаимное квитирование гарантирует отсутствие потерь данных. Иногда, однако, протокол можно упростить. В микросхеме 8536 предусмотрен режим «импульсного квитирования», в котором сигнал ACKIN' не обязан ожидать разрешения на сброс; в этом случае сигнал ACKIN' представляет собой импульс длительностью по меньшей мере 250 нc, возбуждаемый, когда установлены RFD или DAV', как было описано выше.
Легко сообразить, что режим квитирования выбирается в процессе инициализации посылкой тех же всеобъемлющих управляющих байтов. Если выбран один из режимов квитирования, все или некоторые из четырех линий порта С используются в качестве ACKIN', DAV' и RFD. Если вы не назначаете порту режим квитирования, линии порта С можно использовать, как обычные биты ввода-вывода, точно так же, как порты А и В.
Предупреждение: общий недостаток многих периферийных БИС, особенно с тактирующим входом, заключается в непомерно большом времени успокоения после каждой операции. Весьма показателен наш опыт работы с микросхемой 8530: при использовании МП 68000 на частоте 10 МГц пришлось между последовательными циклами вывода включить несколько команд NOP, потому что скорость, с которой ЦП мог посылать последовательные байты (интервал между байтами 0,8 мкc) была выше скорости их приема микросхемой 8530 (минимальное значение «допустимого времени восстановления после доступа» для 8530 составляет 1,7 мкс). Учтите также своеобразные требования к синхронизации процессорного интерфейса. Вспомним, что в нашем микропроцессорном приборе периферийные схемы Zilog требовали необычно большого времени предустановки адреса по отношению к фронту строба чтения (80 не), что заставило нас добавить схемы для генерации задержанного сигнала RD'. Эти особенности, с которыми вы не встретитесь при использовании простых цифровых схем среднего уровня интеграции, являются результатом необходимости тактирования внутренних состояний микросхемы, относительно низкой скорости работы КМОП-схем, или и того, и другого.
Единственный путь борьбы с этими неприятностями БИС-тщательное проектирование, что включает в себя внимательное изучение технических характеристик микросхем, обмен опытом с другими пользователями и исчерпывающее тестирование. Если, испытывая опытный образец, вы замечаете какую-то аномалию, не надейтесь, что она пропадет в более тщательно разработанном конечном варианте. Как раз наоборот, именно аномалии вам и надлежит отыскивать. Обычно, отлаживая опытный образец, вы можете испытать свою схему гораздо надежнее, искусственно изменяя тактовую частоту, питающее напряжение и, возможно, температуру (с помощью тепловой пушки).
Аналого-цифровые и цифро-аналоговые преобразователи на микропроцессорной магистрали. Ввиду широкого внедрения устройств сбора данных с микропроцессорным управлением (в противоположность автономным приборам) новейшие модели АЦП и ЦАП стали разрабатываться с учетом возможности их подключения к микропроцессорной магистрали. Например, «микропроцессорно-совместимые» ЦАП имеют шины передачи входных данных шириной 1 байт и два входных буфера, так что вы можете зафиксировать 12-разрядную величину, поступающую по 8-разрядной шине, за два цикла записи; двойная буферизация обеспечивает одновременное поступление на вход преобразователя всех 12 разрядов преобразуемой величины, что уменьшает
Несколько примеров. Микросхема AD7537 фирмы Analog Devices представляет собой двухканальный 12-разрядный ЦАП с 8-битовой загрузкой (т. е. каждая 12-битовая величина загружается за два цикла магистрали, как 8 + 4), со средствами одновременного обновления двух 12-разрядных каналов с двойной буферизацией (рис. 11.29); вариант AD7547 снабжен входом, шириной 12 бит, предназначенным для 16-разрядных магистралей. Микросхема AD7572 той же фирмы — это 12-разрядный АЦП, не требующий «склеивающих» схем, с возможностью параллельного вывода шириной 8 или 12 бит через тристабильные драйверы; эту схему можно легко подключить к микропроцессорным магистралям шириной как 8, так и 16 бит. Некоторые преобразователи, совместимые с магистралями, даже позволяют задавать выравнивание слова, меньшего по ширине, чем магистраль, влево или вправо. Выбирая преобразователь для подключения к микропроцессорной магистрали, остерегайтесь устройств с замедленной синхронизацией процессорного интерфейса (что не имеет никакого отношения к скорости преобразования), которая может заставить вас предусматривать состояния ожидания, задержанные стробы и т. д. Например, микросхема AD558, во всех остальных отношениях превосходный автономный 8-разрядный АЦП, характеризуется минимальным временем упреждения данных по отношению к срезу сигнала WR' 200 нc, что требует, при использовании его с МП 68008, введения состояния ожидания.
Рис. 11.29. 12-разрядные двухканальные ЦАП (с любезного разрешения Analog Devices), а — микросхема 7537 с шириной загрузки 1 байт; б — микросхема 7547 с шириной загрузки 12 бит.
При подключении к микропроцессору любого АЦП с разрешением 12 бит и более подумайте об изоляции выходов микросхемы АЦП от системной магистрали с помощью буферов (или даже опторазвязок); в противном случае переходные процессы в цифровых цепях и наводки от микропроцессора могут легко ухудшить разрешение. При высоком разрешении (16 бит и более) может оказаться необходимым разместить преобразователь вне корпуса, содержащего цифровую электронику. В качестве примера возможных неприятностей мы можем описать наш опыт работы с промышленной платой 16-разрядного АЦП, предназначенного для IBM PC. Модуль преобразователя размещался прямо на плате, внутри компьютера. Мы скептически отнеслись к возможности достижения максимального 16-битового разрешения, и перед покупкой платы осведомились, какова будет реакция АЦП на приложение к его аналоговым входам постоянного напряжения. В отделе технической поддержки фирмы-изготовителя нас заверили, что колебания будут «не более двух соседних цифровых кодов». Фактически выходные показания метались в пределах семи соседних кодов, что снижало разрешение до 14 бит. По предложению фирмы мы принесли им плату для испытаний, которые лишь подтвердили проблему шума. Когда мы спросили «как же так?», нам сказали, что введший вас в заблуждение сотрудник уже у них не работает. Нам сообщили, что все их платы работают точно так же; и, добавляя оскорбления к ущербу, пригрозили взыскать с нас стоимость «обслуживания», состоявшего в испытаниях платы.
11.12. Запоминающие устройства
В обычном микрокомпьютере увеличить объем памяти несложно - вам лишь надо решить, сколько мегабайт стоит добавить, и к какому поставщику обратиться. Больше умственных усилий надо затратить при разработке прибора с микропроцессорным управлением, где распределение памяти является элементом проектирования, и где совместно используются блоки запоминающих устройств разных типов — энергонезависимые ПЗУ для хранения программ, а энергозависимые ОЗУ для временного размещения данных и стеков, а также как рабочее пространство программы. Энергонезависимые ПЗУ с «зашитыми» программами широко используются в микропроцессорных устройствах, чтобы избавиться от необходимости каждый раз при включении прибора загружать программу. В настоящем разделе мы рассмотрим различные виды памяти: статические и динамические ОЗУ (оперативные запоминающие устройства), РПЗУ (репрограммируемые постоянные запоминающие устройства), ЭРПЗУ (электрически стираемые репрограммируемые постоянные запоминающие устройства). Как только вы немного в них разберетесь, выбор уже не составит труда. Можете сразу обратиться к рис. 11.35, где мы свели воедино типы запоминающих устройств.
Статические и динамические ОЗУ. В статических ОЗУ биты хранятся в матрицах триггеров, в то время как в динамических ОЗУ-в заряженных конденсаторах. Бит, записанный в статическое ОЗУ, остается в нем до тех пор, пока не будет перезаписан, или пока не выключится источник питания. В динамическом ОЗУ данные, если их не «регенерировать», исчезнут менее чем через секунду. Другими словами, динамическое ОЗУ непрерывно забывает данные, и чтобы их сохранить, приходится периодически опрашивать «строки» двумерной матрицы битов в микросхеме памяти. Например, в ОЗУ объемом 256 кбит к каждому из 256 рядов приходится обращаться каждые 4 мс.