Постоянные запоминающие устройства (ПЗУ) делятся на четыре типа [4, 5]:
О масочные, программируемые на заводе-изготовителе с применением специальных масок;
О однократно программируемые потребителем путем пережигания нихромовых или поликремневых перемычек;
О многократно программируемые потребителем со стиранием записанной информации ультрафиолетовым излучением;
О многократно программируемые потребителем с электрическим стиранием информации.
Рассмотрим ПЗУ второго типа, которое состоит из дешифратора nх2n и подключенных к его выходам схем ИЛИ с плавкими перемычками (рис. 9.48). ПЗУ содержит дешифратор 2х4 в виде подсхемы pzti_dcd (А, В — кодовые входы, Е — вход разрешения, активный сигнал высокого уровня), к выходам которых можно подключить четыре элемента 4ИЛИ с дополнительными устройствами. На рис. 9.48 показаны два таких элемента, выполненных в виде отдельных подсхем pzu_unl и pzu_un2. Хотя эти элементы одинаковы, наращивание их на схеме путем копирования исключено из-за наличия пережигаемых перемычек — при наличии одноименных подсхем пережигание перемычки в одной подсхеме автоматически приведет к пережиганию такой же перемычки в другой. Поскольку программа не позволяет копировать подсхемы с их переименованием, все их приходится выполнять полностью. На схеме DO, D1 — выходы младшего и первого разрядов.
Схема дешифратора pzu_dcd показана на рис. 9.49. Дешифратор выполнен на трех элементах НЕ и четырех элементах ЗИЛИ-НЕ на транзисторах (рис. 9.50).
Необходимость выполнения элементов дешифратора на транзисторах объясняется тем, что используемые в программе EWB математические модели цифровых ИМС не всегда позволяют подключать к ним обычные транзисторные схемы и, в частности, применяемые в рассматриваемом ПЗУ ячейки памяти в виде подсхемы pzu_uni. Ее внутренняя структура аналогична структуре ячейки памяти, используемой в ПЗУ К155РЕЗ (рис. 9.51) [5]. В отличие от ИМС К155РЕЗ, в которой в качестве элемента ИЛИ используется многоэмиттерныи транзистор, на рис. 9.51 приведены отдельные транзисторы Т1...Т4, эмиттеры которых через пережигаемые перемычки S1...S4 (имитируются предохранителями на 10 мА) соединены с формирователем на транзисторах Т5, Т6 и стабилитроне D. Транзистор Т5 и стабилитрон D используются только в режиме программирования и в рабочем режиме не оказывают влияния на работу выходного каскада на транзисторе Т6 (каскад с открытым коллектором), поскольку транзистор Т5 закрыт низким потенциалом на его базе (напряжение пробоя стабилитрона D выбирается несколько больше напряжения питания транзистора Т6, подаваемого во второй подсхеме в точку DO или D1 через резистор нагрузки).
Ячейка ПЗУ работает следующим образом. В исходном состоянии транзисторы Т1...Т4 и Т6 закрыты, и при подключенной к Т6 нагрузке на его выходе DO формируется сигнал логической единицы (около +5 В). При подаче на входы А, В дешифратора заданной кодовой комбинации, а на вход разрешения Е — сигнала логической единицы, один из транзисторов Т1...Т4 откроется и на выходе DO сформируется сигнал логического нуля. Так, например, при А=В=1 откроется транзистор Т4 и сигнал логической единицы с его эмиттера через перемычку S4 поступит на делитель на резисторах R2, R3, транзистор Т6 откроется, и на его выходе сформируется сигнал логического нуля. Очевидно, что и при любой другой двоичной комбинации будет происходить то же самое до тех пор, пока не будет разрушена соответствующая перемычка.
Пережигание перемычек составляет суть программирования и осуществляется отдельно для каждого разряда (каждой ячейки) следующим образом:
О на входы А, В (см. рис. 9.48) подается двоичная комбинация, соответствующая адресу пережигаемой перемычки в программируемом разряде (в ячейке pzu_unx, где х — номер ячейки);
О к выходу ячейки Dx через резистор нагрузки (его сопротивление для конкретных ИМС указывается в документации, для К155РЕЗ составляет около 300 Ом) подключается источник напряжения 12,5 В, в результате чего стабилитрон D пробивается и транзистор Т5 открывается;
О на вход разрешения Е на короткое время подается сигнал логической единицы, при этом через один из открытых транзисторов Т1...Т2 и Т5 протекает ток, достаточный для пережигания соответствующей перемычки (длительность разрешающего сигнала на входе Е в промышленных программаторах может автоматически увеличиваться после нескольких неудачных попыток программирования одной и той же ячейки);
О источник 12,5 В отключается, и после раскрытия соответствующей подсхемы можно убедиться, что перемычка действительно разрушена (в промышленных программаторах этот процесс сводится к проверке записи программируемой ячейки, и при отрицательном результате производится повторное программирование при большей длительности разрешающего сигнала).
Заключительным этапом программирования серийных микросхем ПЗУ в промышленных условиях является электротермотренировка, которая проводится чаще всего в течение 168 часов при повышенной температуре, после чего производится дополнительный контроль записанной информации. Если при этом обнаруживается ошибка, допускается повторное программирование. Если ошибка снова повторяется, микросхема бракуется.
Для моделирования процесса программирования к программируемой схеме необходимо подключить дополнительные элементы. Моделирование целесообразно начинать с одноразрядного ПЗУ (рис. 9.52).
Следует отметить, что рассматриваемая модель ПЗУ (как на рис. 9.48, так и на рис. 9.52) достаточно капризна и при некоторых комбинациях входных сигналов моделирование не выполняется. Признаком невозможности моделирования является отсутствие слева от включателя питания (в верхнем правом углу экрана) окошка с индикацией временных интервалов отсчета. По истечении некоторого времени может быть выдана рекомендация изменить установку погрешности моделирования (по умолчанию она равна 1%). Целесообразно установить ее максимально возможной (10%) в меню Circuit (команда Analysis Options, параметр Tolerance). Целесообразно также поварьировать сопротивлениями входных резисторов и резисторов нагрузки элементов НЕ и ИЛИ-НЕ (рис. 9.50), а также попробовать изменить параметры транзисторов. В крайнем случае можно ограничиться простейшим случаем — обойтись без дешифратора и использовать только одну ячейку памяти на рис. 9.51, подключив к выходу и к одному из ее входов дополнительные элементы, как показано на рис. 9.52.
ПЗУ с пережигаемыми перемычками используются чаще всего в качестве специализированных дешифраторов, например для селекции У ВВ.
ПЗУ с ультрафиолетовым стиранием используются в микропроцессорных системах для хранения управляющих программ, в частности, для размещения BIOS (Basic Input/Output System — основная система ввода/вывода, записанная в ПЗУ, отсюда ее полное название ROM BIOS) [22]. BIOS представляет собой набор программ проверки и обслуживания аппаратуры компьютера и выполняет роль посредника между операционной системой (ОС) и аппаратурой. BIOS получает управление при включении системной платы, тестирует саму плату и основные блоки компьютера — видеоадаптер, клавиатуру, контроллеры дисков и портов ввода/вывода, настраивает чипсет платы и загружает внешнюю ОС. При работе под управлением DOS/Windows З.х/95/98 BIOS управляет основными устройствами, при работе под OS/2, Unix, Windows NT BIOS практически не используется, выполняя лишь начальную проверку и настройку.
Обычно на системной плате установлено только ПЗУ с системным (Main System) BIOS, отвечающим за саму плату и контроллеры FDD (флоппи-дисков), HDD (жестких дисков), портов и клавиатуры; в системный BIOS практически всегда входит System Setup — программа настройки системы. Видеоадаптеры и контроллеры HDD с интерфейсом ST-506 (MFM) и SCSI имеют собственные BIOS в отдельных ПЗУ;
их также могут иметь и другие платы — интеллектуальные контроллеры дисков и портов, сетевые карты и т.п.
Обычно BIOS для современных системных плат разрабатывается одной из специализированных фирм: Award Software, American Megatrends (AMI), реже:
Phoenix Technology, Microid Research; в данное время наиболее популяры BIOS фирмы Award. Некоторые производители плат (например, IBM, Intel и Acer) сами разрабатывают BIOS для них. Иногда для одной и той же платы имеются версии BIOS разных производителей, в этом случае допускается копировать прошивки или заменять микросхемы ПЗУ; в общем же случае каждая версия BIOS привязана к конкретной модели платы.
Раньше BIOS помещался в однократно программируемые ПЗУ либо ПЗУ с ультрафиолетовым стиранием; сейчас в основном выпускаются платы с электрически перепрограммируемыми ПЗУ (Flash ROM), которые допускают перепрограммирование BIOS средствами самой платы. Это позволяет исправлять заводские ошибки в BIOS, изменять заводские установки по умолчанию, программировать собственные экранные заставки и т.п.
Тип микросхемы ПЗУ обычно можно определить по маркировке: 27хххх — обычное ПЗУ, 28хххх или 29хххх — перепрограммируемые. Если на корпусе микросхемы 27хххх есть прозрачное окно — это ПЗУ с ультрафиолетовым стиранием;
если его нет — это однократно программируемое ПЗУ, которое можно лишь заменить на другое.
Видео-ПЗУ (Video ROM) — постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется видеоконтроллером напрямую, к нему обращается только центральный процессор, в результате выполнения программ, записанных в ПЗУ, происходят обращения к видеоконтроллеру и видеопамяти. На многих современных видеокартах устанавливаются электрически перепрограммируемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись пользователем под управлением специальной программы из комплекта карты.
ПЗУ необходимо только для первоначального запуска видеоадаптера и работы в режиме DOS, Novell Netware и других ОС, функционирующих преимущественно в текстовом режиме; ОС Windows, OS/2 и им подобные, работающие через собственные видеодрайверы, не используют ПЗУ для управления адаптером либо используют его только при выполнении программ для DOS.
При создании видео-BIOS все разработчики придерживаются рекомендаций VESA и VBE. VESA (Video Electronics Standards Association — ассоциация стандартизации видеоэлектроники) — организация, выпускающая различные стандарты в области электронных видеосистем и их программного обеспечения. VBE (VESA BIOS Extension — расширение BIOS в стандарте VESA) — дополнительные функции видео-BIOS по отношению к стандартному видео-BIOS для VGA, позволяющие запрашивать у адаптера список поддерживаемых видеорежимов и их параметров (разрешение, цветность, способы адресации, развертка и т.п.) и изменять эти параметры для согласования адаптера с конкретным монитором. По сути, VBE является унифицированным стандартом программного интерфейса с VESA-совместимыми картами, при работе через видео-BIOS он позволяет обойтись без специализированного драйвера видеокарты.
Контрольные вопросы и задания
1. Какие существуют типы ПЗУ и где они используются?
2. Что такое BIOS для компьютера, видеоконтроллера, накопителя на жестком магнитном диске (винчестера) и других периферийных устройств?
3. Какие типы ПЗУ используются для хранения программ BIOS?
4. Используя схему на рис. 9.52, проведите моделирование процесса программирования ПЗУ с пережигаемыми перемычками.
5. Составьте схему ПЗУ на базе двухразрядного ПЗУ на рис. 9.48 и проведите моделирование процесса программирования одной из его ячеек памяти.