¹ До спецификации PCI 2.2 здесь помещался указатель на строку Vital Product Data (важные сведения о продукте).
Применительно к дополнительному ПЗУ карты PCI имеется три параметра, относящихся к размерам. Размер ПЗУ определяется чтением конфигурационного пространства. Размер, указанный во 2-м байте заголовка, указывает на длину модуля на этапе инициализации. Этот модуль POST загружает в ОЗУ перед тем, как вызвать процедуру инициализации (точка входа со смещением 3). Контрольная сумма, расположенная обычно в конце модуля, обеспечивает нулевую сумму всех байт. Длина образа, указанная в структуре данных PCI (слово со смещением 10h), описывает размер области, которая должна оставаться в памяти в режиме нормального функционирования (она может быть меньше, поскольку код процедуры инициализации уже не требуется). Эта область также защищается контрольной суммой. Структура данных PCI должна оставаться в памяти все время.
Работа с модулями ПЗУ для карт PCI выполняется в соответствии с моделью DDIM (см. выше). POST определяет наличие ПЗУ по полю Expansion ROM Base Address в конфигурационном пространстве и назначает ему адрес в свободном пространстве памяти. После этого программированием регистра команд разрешается считывание ПЗУ, и в нем ищется сигнатура заголовка АА55h. Когда сигнатура найдена, POST ищет подходящий образ (по типу кода и совпадающий по идентификаторам с обнаруженными устройствами PCI) и загружает его в ОЗУ (в область C0000-DFFFFh), оставляя разрешенной запись в эту область. Далее чтение ПЗУ запрещается (записью в поле Expansion ROM Base Address), и вызывается процедура инициализации (по адресу 3). При вызове процедуры POST сообщает номер шины (в регистре АН), номер устройства (AL[7:3]) и номер функции (AL[2:0]), благодаря чему процедура узнает точные координаты аппаратных средств. После этого определяется размер области, которую следует оставить в памяти (по байту 2, который может быть модифицирован процедурой инициализации), и для этой области запрещается запись. Если процедура инициализации «урезает» занимаемую память, она должна позаботиться о достоверности контрольной суммы области, описанной байтом 2. Если память освобождается полностью (процедура обнуляет байт 2), то контрольная сумма, естественно, не нужна. Расширение для VGA (определяется по коду класса) обрабатывается особым образом — загружается по адресу C0000h. Процедура инициализации может определить наличие PnP BIOS в системе, проверив значение контрольной структуры PnP по адресу, указанному в ES: DI, и исполняться в зависимости от обнаруженного системного окружения.
Глава 13
Интерфейсы питания, заземление и гальваническая развязка
По традиции «аппаратную» книгу заключает глава о «здоровом питании», очень необходимом для выживания аппаратных интерфейсов. Все внутренние устройства ПК, включая и интерфейсные адаптеры, получают напряжение от блока питания системного блока и связаны общей «схемной землей» — шиной GND. Часть внешних устройств получают питание от того же блока питания, пользуясь штатными и нештатными способами. Штатное питание выводится на интерфейсные разъемы клавиатуры и мыши PS/2 (+5 В), USB (+5 В) и Fire Wire (8-40 В). «Нештатным» способом питание можно получить от сигнальных линий LPT-порта (менее 5 В) и СОМ-порта (двуполярное, около 12 В), но лишь с небольшим током нагрузки и некоторыми аппаратными и программными ухищрениями. Питание от сигнальных цепей интерфейса используется мышью, электронными ключами защиты и иными устройствами с малым потреблением. Остальные внешние устройства питаются от собственных источников питания со своей «схемной землей» и цепями заземления, и при их стыковке с системным блоком (и между собой) могут возникать проблемы заземления, о которых речь пойдет ниже. Проблемы заземления радикально решаются применением гальванической развязки сигнальных цепей от «схемной земли», но эту развязку имеют далеко не все интерфейсы.
13.1. Общие вопросы электропитания и заземления
Рассмотрим правила подключения к питающей сети с точки зрения безопасности как человека, так и компьютера.
Практически каждый блок питания компьютера или периферийного устройства имеет сетевой фильтр (рис. 13.1). Конденсаторы этого фильтра предназначены для шунтирования высокочастотных помех питающей сети на землю через провод защитного заземления и соответствующие трехполюсные вилку и розетку. «Земляной» провод соединяют с контуром заземления, но допустимо его соединять и с «нулем» силовой сети (разница ощущается только в особо тяжелых условиях эксплуатации). При занулении необходимо быть уверенным в том, что «нуль» не станет фазой, если кто-нибудь вдруг перевернет вилку питания. Если же «земляной» провод устройства никуда не подключать, на корпусе устройства появится напряжение порядка 110 В переменного тока (рис. 13.2): конденсаторы фильтра работают как емкостной делителе напряжения, и поскольку их емкость одинакова, 220 В делится пополам.
Рис. 13.1. Входные цепи блока питания
Рис. 13.2. Образование потенциала на корпусе компьютера
Конечно, мощность этого «источника» ограничена — ток короткого замыкания IКЗ на землю составляет от единиц до десятков миллиампер, причем чем мощнее блок питания, тем больше емкость конденсаторов фильтра:
IКЗ = UПит×2πFC
Здесь UПит=220 В, F=50 Гц — частота питающей сети, С — емкость конденсатора фильтра. При емкости конденсатора С=0,01 мкФ этот ток будет около 0,7 мА. Заметим, что здесь мы учитываем лишь частоту питающей сети. Для высокочастотных (импульсных) помех, приходящих как по сети, так и от входного преобразователя блока питания, те же конденсаторы представляют собой гораздо меньшее сопротивление, и ток короткого замыкания может возрастать во много раз.
Такие напряжение и ток опасны для человека. Попасть под напряжение можно, прикоснувшись одновременно к неокрашенным металлическим частям корпуса компьютера и, например, к батарее отопления. Это напряжение является одним из источников разности потенциалов между устройствами, от которой страдают интерфейсные схемы.
Посмотрим, что происходит при соединении двух устройств (компьютера и принтера) интерфейсным кабелем. Общий провод интерфейсов последовательных и параллельных портов связан со «схемной землей» и корпусом устройства. Если соединяемые устройства надежно заземлены (занулены) через отдельный провод на общий контур (рис. 13.3), проблемы разности потенциалов не возникает.
Рис. 13.3. Правильное подключение ПУ
Если же в качестве заземляющего провода использовать нулевой провод питания при разводке питающей сети с трехполюсными розетками двухпроводным кабелем, на нем будет набегать разность потенциалов, вызванная падением напряжения от протекающего силового тока INUL (рис. 13.4). Если в эти же розетки включать устройства с большим энергопотреблением, разность потенциалов (и импульсные помехи при включении-выключении) будет ощутимой. При этом эквивалентный источник напряжения при относительно невысокой э.д.с. ENUL (несколько вольт) будет иметь очень низкое выходное сопротивление, равное сопротивлению участка нулевого провода (доли ом).
Рис. 13.4. Появление разности потенциалов при двухпроводном кабеле питания
Уравнивающий ток через общий провод интерфейса IINT можно оценить по следующей формуле:
IINT = ENUL/(RNUL+RINT)
Здесь ENUL = INUL×RNUL; INUL = P/220, RNUL — сопротивление нулевого провода и соединительных контактов розеток, RINT — сопротивление общего провода интерфейса, P — мощность, потребляемая устройствами, расположенными на рисунке справа (P = P2 + P3). Поскольку обычно сопротивление интерфейсного кабеля больше питающего, через общий провод интерфейса потечет ток, существенно меньший, чем силовой. Но при нарушении контакта в нулевом проводе питания через интерфейсный провод может протекать и весь ток, потребляемый устройством. Он может достигать нескольких ампер, что повлечет выход устройств из строя. Невыровненные потенциалы корпусов устройств являются также источником помех в интерфейсах.
Если оба соединяемых устройства не заземлены, в случае их питания от одной фазы сети разность потенциалов между ними будет небольшой (вызванной разбросом емкостей конденсаторов в разных фильтрах). Уравнивающий ток через общий провод интерфейса будет мал, и разность потенциалов между схемными землями устройств будет тоже мала. Но не следует забывать о безопасности человека. Если незаземленные устройства подключены к разным фазам, разность потенциалов между их несоединенными корпусами будет порядка 190 В, при этом уравнивающий ток через интерфейс может достигать десятка миллиампер. Когда все соединения/разъединения выполняются при отключенном питании, для интерфейсных схем такая ситуация почти безопасна. Но при коммутациях в условиях включенного питания возможны неприятности: если контакты общего провода интерфейса соединяются позже (разъединяются раньше) сигнальных, разность потенциалов между схемными землями прикладывается к сигнальным цепям и они выгорают. Самый тяжелый случай — соединение заземленного устройства с незаземленным (рис. 13.5), особенно когда у последнего мощный блок питания.