Пассивное и активное устройства шины pci. Сигнальный протокол шин PCI и PCI-X. Команды шины pci

В начале транзакции активное устройство активизирует линию FRAME#. По шине AD передает адрес, а по линиям C/BE# – команду. Адресованное пассивное устройство отзывается сигналом DEVSEL#.

Активное устройство показывает готовность к обмену сигналом IRDY#. Данные передаются только при одновременной активации сигналов IRDY# и TRDY#, причем TRDY# формируется тогда, когда пассивное устройство готово к обмену.

За адресной частью следует фаза пересылки данных. Количество передаваемых слов в пакете не указывается, но перед последним словом данных устройство снимает сигнал FRAME#. В частном случае передается одно слово.

Каждое ведомое устройство должно довольно быстро отвечать на транзакцию. Ожидание может составлять несколько тактов, но не может превышать 8 тактов.

Если устройство не успевает, то формируется сигнал STOP#.

8. Команды шины pci.

PCI поддерживает 16 различных операций на шине; из них реализовано только 12, а остальные зарезервированы. Тип операции зависит от команды, передается по линиям C/BE# (количество линий – 4). Тип операции передается в течение фазы адреса.

Используются следующие операции:

0000 – подтверждение прерывания;

0001 – специальный цикл (в данном цикле ЭВМ передает устройствам различные сообщения);

0010 – чтение порта ввода-вывода;

0011 – запись в порт ввода-вывода;

0100 – резерв;

0101 – резерв;

0110 – чтение памяти;

0111 – запись в память;

1000 – резерв;

1001 – резерв;

1010 – чтение конфигурации;

1011 – запись конфигурации;32

1100 – циклическое (многократное) чтение памяти (используется при обращении к строкам кэш памяти);

1101 – цикл с 64-разрядным адресом (двухадресный цикл, позволяет по 32-битной шине обращаться к устройствам с 64-битной адресацией);

1110 – чтение строк памяти (чтение до конца строки кэша);

1111 – запись в память с инвалидацией (отменой достоверности).

В фазе данных линии C/BE# указывают на информационные байты.

При этом линии выбирают следующие байты:

C/BE# 0 -> AD7 – AD0,

C/BE# 1 -> AD15 – AD8,

C/BE# 2 ->AD23 – AD16,

C/BE# 3 -> AD31 – AD24

Количество адресуемых байт может быть 1, 2, 3 или 4.

9 Прерывание и захват шины pci, конфигурация устройств.

Прерывание организуется с помощью линий подачей сигнала низкого уровня на одну из линий INTA#,INTB#,INTC#,INTD#. Этот сигнал должен удерживаться до тех пор, пока драйвер, вызванный по прерыванию, не сбросит запрос прерывания, обратившись по шине к данному устройству. Драйвер определяет адрес устройства чтением конфигурационного регистра. Это происходит, когда на шинеC/BE# выставлена команда 0000. Приоритеты устройств определяются программированием арбитра

процессора ЭВМ. Подтверждение прерываний надо снимать с линий C/BE. Драйвер, работающий с устройствомPCI, определяет вектор прерывания, доставшийся устройству, чтением конфигурационного регистра.

Захват шины осуществляется с подачей сигнала запроса захвата на линию REQ#. Ответный сигнал подтверждения захвата передается арбитром процессора по линииGNT#. В режиме захвата устройство становится активным и управляет шиной по своему усмотрению. В частном случае

реализуется режим прямого доступа в память (DMA).

Шина PCIимеют возможность электронной конфигурации, подключенных к ней устройств. Это позволяет автоматически перераспределять ресурсы компьютера (диапазоны адресов памяти и портов ввода-вывода, линии прерывания и др.) между устройствами. Эта технология называетсяPlug&Play.33

Координационные средства по распределению ресурсов между устройствами выполняют специальные конфигурационные программы.

В шине PCIдля осуществления конфигурации устройств есть две команды: чтение и запись конфигурации. С их помощью происходит определение типа устройств с их шиной, потребности ресурсов и предоставление им этих ресурсов.

Информация о конфигурации записывается и хранится в 256 байтах. Доступ к ним производится при активации сигнала на линии IDSEL, подключенной индивидуально к каждому устройству (слоту расширения). Конфигурационное обращение идет поочередно. Всем устройствамPCIприсваивается индивидуальный адрес, который определяется схемотехникой системы.

Так, если в слот-расширение вставлена видеокарта, то ее конфигурационное пространство доступно по адресу этого слота. При переустановке его в другой слот она будет иметь уже другой адрес.

Формат данных конфигурации включает следующие сведения: идентификатор производителя; идентификатор устройства; статус; идентификатор версии; класс, код; размер кэш-линии; максимальное время захвата шины; регистры базовых адресов; базовый адрес ПЗУ; регистр команды;

Спецификацией определены несколько механизмов доступа к конфигурационному пространству, но в простых системах он осуществляется через специальные регистры моста центрального процессора – регистры адреса и данных конфигурации.

POST карты не первое десятилетие используются для диагностики «железных» неисправностей компьютеров и материнских плат всевозможных форм-факторов. На данный момент этих карт создано очень много, практически для всех возможных ситуаций. Статья рассказывает о том, что такое POST карты и для чего их используют, как они работают, какие бывают и чем друг от друга отличаются.

POST

После нажатия кнопки включения компьютера BIOS проводит поэтапную проверку и инициализацию всех элементов аппаратной части компьютера. Называется этот процесс: POST (англ. Power-On Self-Test – самотестирование после включения). Не только компьютеры, но и большинство современных электронных устройств имеют схожие системы.

BIOS сообщает статус (или результат) прохождения POST несколькими способами:

1. Вывод сообщений на экран . Самый дружественный и информативный способ. По сути, доступен только после успешного или почти успешного прохождения самотестирования. Отсутствие какой-либо информации на экране говорит о серьезных неисправностях базовых компонентов (материнская плата, процессор, память, видеоадаптер и т.д.). Диагностика ошибок возможна в основном только для периферийных устройств (накопители, клава и др.).

2. Звуковые сигналы . Наверное, все слышали короткий «биип» при включении компьютера – в большинстве BIOS это означает прохождение теста без ошибок и готовность к загрузке ОС. Другие варианты сигналов могут говорить об определенных проблемах с железом. Эти коды «азбуки Морзе» различаются у разных производителей и даже разных версий BIOS. Найти их обычно можно в книжке к материнке или соответствующих онлайн справочниках.

3. POST коды . В ходе каждого этапа процесса самотестирования BIOS отправляет текущий код на порт 80h (иногда 81h или другие), и если возникает ошибка, там остается или код операции, на которой произошел сбой, или код последней успешной операции. Считав этот код, можно определить на каком этапе произошла ошибка, и что могло ее вызвать. Это единственный из всех перечисленных способов, который позволяет идентифицировать проблемы на материнской плате, которая не подает видимых признаков жизни. По этой причине, он обычно используется для диагностики и ремонта непосредственно материнских плат.

Если первые два способа диагностики не требуют специального оборудования, разве что монитор и подключенный к материнской плате динамик (бывает, что его там нет), то для третьего способа вам понадобиться собственно POST карта.

Где смотреть значения POST кодов и звуковых сигналов?

    Наиболее подробно для всех распространенных версий BIOS на русском и с расшифровкой они описаны на сайте IC Book . Но информации столько, что немудрено заблудиться, удобней скачать оттуда готовый PDF документ со списком кодов (щелкнув в нем по нужному коду попадаешь на страницу с подробной расшифровкой).

  1. Также рекомендую англоязычный ресурс PostCodeMaster – там собрано еще больше POST кодов и звуковых сигналов BIOS разных производителей (есть довольно редкие, плюс немного по конкретным материнкам, в том числе серверным).

POST карты

Основная задача любой POST карты – это считать и отобразить текущий POST код. Считать его можно несколькими способами: по шинам ISA, PCI, LPC или через LPT порт. Есть и другие, более экзотические варианты (о них чуть позже). Кроме, собственно, отображения кода, хорошие POST карты имеют дополнительные диагностические возможности (индикаторы, режимы тестирования, встречаются даже со встроенным видеоадаптером).

Некоторые материнские платы (обычно Premium сегмента) имеют встроенный индикатор POST кодов.


Раньше POST карты многие умельцы делали вручную, но сейчас этим совершенно нет смысла заниматься, за текстолит и компоненты больше отдадите, чем стоит обычная карточка. Если только очень хочется…

ISA

Первыми POST картами были карты для шины ISA , существовавшей с 1981 по 199х годы. Используется она даже сейчас (хоть и весьма редко), в основном в промышленном и военном секторе – там, где осталось оборудование для этой шины. Продаются и POST карты для нее, как в отдельном исполнении (только ISA), так и комбайны ISA + PCI.


Если вы не занимаетесь ремонтом 486, то иметь POST карту ISA совершенно не обязательно.

PCI

Следующей массовой компьютерной шиной стала PCI . Сейчас это самая распространенная шина для настольных компьютеров. Естественно, для нее есть и POST карты всех возможных форм, размеров и функций. Самую простейшую , с обычным сегментным индикатором, можно купить за 2-3 бакса на любом Ebay, Ali и им подобным.


В принципе, такая карта со своей базовой задачей вполне справляется – POST код вы узнаете. Но для профессиональной работы этого мало. Полезно иметь индикаторы основных напряжений (обычно: +5, +3.3, +12, -12, +3.3 Standby) и индикаторы сигналов шины (из самых базовых: CLK, RST#, FRAME#, IRDY#). Важно иметь возможность переключения порта, на котором карта «слушает» коды POST (не только стандартный 80h). Бывают и другие «фишки», отсюда и такой «навороченный» вид у продвинутых карточек.


Обычно POST карты устанавливаются на заведомо неисправные материнские платы (собственно, для этого они и предназначены), и не исключены случаи выхода из строя самой POST карты в ходе тестирования. Поэтому неплохо иметь простенькую дешевую карту для первичной диагностики.

Еще один удобный вариант – это выносной индикатор. Он позволяет со всеми удобствами производить диагностику материнских плат, не вынимая их из системника. С одной стороны, если дело дошло до POST карты, то скорей всего материнку все же придется извлечь для ремонта, но с другой стороны – не всегда, да и POST карты просто удобный способ общей диагностики. На фото Sintech ST8679 , китайская карточка с выносным многострочным LCD дисплеем.


LPT

Существуют POST карты для LPT порта – довольно простой и удобный способ диагностики для любого компьютера или ноутбука, имеющего этот самый LPT порт. Из-за технических особенностей, они не имеют возможностей, присущих картам для PCI , но это компенсируется простотой и доступностью. Требуют питание по USB (для этого и наличие порта на плате).


Однако LPT изживает свой век, и на современных компьютерах их уже почти не встретишь, соответственно, доживают свои дни и эти карты.

PCI-E

Служивший нам верой и правдой много лет PCI , постепенно вытесняет более современная PCI- Express . Немалое количество современных материнских плат вообще не имеют слота PCI (хотя и могут иметь саму шину). Могу вас обрадовать – POST карты для PCI-E существуют . Например, американская компания Ultra-X предлагает такую (цены у них обычно дикие, но тут ни цен, ни даже информации), в интернет можно встретить фото инженерных PCI-E карточек от Gigabyte (по всей видимости, только для внутреннего использования).


Есть и китайская версия PCI- E POST карты под названием KQCPET6-H . Производит ее китайская компания QiGuan Electronics , специализирующаяся на производстве разного рода диагностических карт (и довольно интересных). Их официальный сайт (www.qiguaninc.com), к сожалению, давно не обновлялся, и информации об этой карточке там нет, зато ее спокойно можно купить за 20 +/- баков на Ali.


Но с PCI-E не все так просто. Во-первых, сама диагностика с помощью PCI-E на данный момент вещь мутная, хотя бы, из-за отсутствия адекватной информации. Во-вторых, с PCI-E все зависит от конкретного изготовителя – нет гарантии, что коды будут выводиться; если и выводятся, то нет гарантии, что по стандартному порту и в стандартном виде…

Как же получить POST коды с платы без PCI, если нет под рукой PCI-E карты? Однозначный ответ на этот вопрос дать не получится. Если на вашей материнке есть встроенный индикатор – считайте, что вам крупно повезло. Можно использовать LPT , если он есть, конечно. Ну и последний вариант – использовать шину LP C , на некоторых материнских платах есть готовые коннекторы (LPC_DEBUG и т.п.). Даже если их нет, сама шина всегда присутствует, но придется «подпаиваться»…


USB

Одним из самых перспективных способов диагностики на сегодняшний день является USB . И главная тому причина – повсеместная распространенность этого интерфейса. Как мы уже выяснили, отсутствие того или иного разъема на материнской плате может стать преткновением для диагностики. И эту проблему как раз решает USB – парочку портов имеют буквально все компьютеры и ноутбуки, выпущенные за последние 15 лет.

Для такой диагностики необходимо наличие в системе USB Debug Port – это своего рода расширение USB, позволяющее передавать диагностическую информацию. В USB 3.0 реализация Debug Port получилась сподручней (подробней о Debug Port можно прочитать по ссылке). Кроме передачи POST кодов, Debug Port позволяет производить полноценную отладку кода BIOS и UEFI .

Было даже выпущено разными компаниями. NET20DC от Ajays (компания почти тут же обанкротилась, так как поставщики отказались поставлять им компоненты для сборки девайса). Insyde H 2 O DDT от Insyde Software (выпущен, вроде, в 2008 году, но информация об этом девайсе канула в лету даже на официальном сайте). Оба этих устройства скорее отладчики, хотя и имеют возможность захвата POST кодов.


Наиболее продвинутым и полноценным средством диагностики является AMIDebug Rx от AMI : позволяет выводить POST коды с описанием, полноценно работает с UEFI, ведет лог процесса POST, можно подключать к ПК для настройки и считывания кодов, имеет функции отладчика. Самое интересно – выпущено это чудо еще в 2009 году! Понятное дело, что предназначен девайс для родного AMIBIOS , работает ли он с другими BIOS – мне неизвестно.


За 6-7 лет с момента появления этих USB устройств, ни одно из них популярности не получило, купить сейчас можно только AMIDebug Rx, и то, только напрямую от производителя по индивидуальному запросу . Цена девайса не разглашается. Так что, повсеместного перехода на USB диагностику пока не ожидается.

Диагностика ноутбуков

С ноутбуками все немного сложней. Наиболее распространенные разъемы, которые можно использовать для диагностики – это mini PCI или Mini PCI-E (у более современных).


Mini PCI-E (как и PCI-E) не обязан выводить POST коды, все зависит от того, заложил ли эту возможность производитель или нет.

Опять же, есть вариант использования шины LPC . На материнских платах порта для подключения к этой шине вполне может не быть, поэтому придется напрямую подпаиваться к плате или контролеру.


Отдельные производители имеют свои способы диагностики, тут уж действительно «кто во что горазд». К сожалению, эта информация обычно является достоянием лишь производителя и его внутренних сервисных центров, поэтому все существующие варианты POST карт в общем доступе вряд ли найдутся. Наиболее исчерпывающий комбайн «все в одном флаконе» для диагностики ноутбуков – это POST карта Sintech ST8675 , которую несложно найти у китайских продавцов за 20-30$ с доставкой.


Из интересных решений, российская компания BVG-Group предлагает заглушку на VGA для ноутбуков Samsung, и карты в виде модуля памяти для ноутбуков ASUS. Это, наверное, наиболее «экзотические» варианты POST карт, что я знаю. Хотя овации скорее следует отдать производителям ноутбуков, придумавшим именно такой способ диагностики для своей продукции.


Тех, кто ждал конкретных примеров я, возможно, разочарую – POST карта это один из инструментов диагностики, который в большинстве случаев лишь помогает понять «куда копать», а уж как копать и какой лопатой зависит сугубо от вас. Иногда для постановки «диагноза» может хватить только ее одной, а может потребоваться помощь мультиметра и осциллографа в комплекте с умением ими пользоваться. Если это вызывает у вас затруднения, то лучше отнесите вашу материнскую плату специалистам, пока из нерабочей она не стала не подлежащей восстановлению.

PS

Такое вот у POST карт интересное прошлое и насыщенное настоящее. Что их ждет в будущем? Поживем – увидим. Но реалии таковы, что в нынешнюю эпоху потребительства от девайсов зачастую избавляются раньше, чем они успевают сломаться. А если и ломаются, то оказываются в сервисных мастерских производителя, где уж явно должно быть подходящее диагностическое оборудование. Все это, на мой взгляд, и является основной причиной образовавшегося «POST вакуума».

В каждой транзакции (обмене по шине) участвуют два устройства - инициатор (initiator) обмена, он же ведущее (master) устройство, и целевое (target) устройство (ЦУ), оно же ведомое (slave). Шина PCI все транзакции трактует как пакетные: каждая транзакция начинается фазой адреса, за которой может следовать одна или несколько фаз данных. Состав и назначение интерфейсных сигналов шины приведены в табл. 6.11.

Таблица 6.11 . Сигналы шины PCI

Сигнал Назначение
AD Address/Data - мультиплексированная шина адреса/данных. В начале транзакции передается адрес, в последующих тактах - данные
C/BE# Command/Byte Enable - команда/разрешение обращения к байтам. Команда, определяющая тип очередного цикла шины, задается четырехбитным кодом в фазе адреса
FRAME# Кадр. Введением сигнала отмечается начало транзакции (фаза адреса), снятие сигнала указывает на то, что последующий цикл передачи данных является последним в транзакции
DEVSEL# Device Select - устройство выбрано (ответ ЦУ на адресованную к нему транзакцию)
IRDY# Initiator Ready - готовность ведущего устройства к обмену данными
TRDY# Target Ready - готовность ЦУ к обмену данными
STOP# Запрос ЦУ к ведущему устройству на остановку текущей транзакции
LOCK# Сигнал захвата шины для обеспечения целостного выполнения операции. Используется мостом, которому для выполнения одной операции требуется выполнить несколько транзакций PCI
REQ# Request - запрос от ведущего устройства на захват шины
GNT# Grant - предоставление ведущему устройству управления шиной
PAR Parity - общий бит паритета для линий AD и C/BE#
PERR# Parity Error - сигнал об ошибке паритета (для всех циклов, кроме специальных). Вырабатывается любым устройством, обнаружившим ошибку
PME# Power Management Event - сигнал о событиях, вызывающих изменение режима потребления (дополнительный сигнал, введенный в PCI 2.2)
CLKRUN# Clock running - шина работает на номинальной частоте синхронизации. Снятие сигнала означает замедление или остановку синхронизации с целью снижения потребления (для мобильных применений)
PRSNT# Present - индикаторы присутствия платы, кодирующие запрос потребляемой мощности. На карте расширения одна или две линии индикаторов соединяются с шиной GND, что воспринимается системной платой
RST# Reset - сброс всех регистров в начальное состояние
IDSEL Initialization Device Select - выбор устройства в циклах конфигурационного считывания и записи
SERR# System Error - системная ошибка. Ошибка паритета адреса данных в специальном цикле или иная катастрофическая ошибка, обнаруженная устройством. Активизируется любым устройством PCI и вызывает NMI
REQ64# Request 64 bit - запрос на 64-битный обмен. Сигнал вводится 64-битным инициатором, по времени он совпадает с сигналом FRAME#. Во время окончания сброса (сигналом RST#) сигнализирует 64-битному устройству о том, что оно подключено к 64-битной шине. Если 64-битное устройство не обнаружит этого сигнала, оно должно переконфигурироваться на 32-битный режим, отключив буферные схемы старших байтов
ACK64# Подтверждение 64-битного обмена. Сигнал вводится 64-битным ЦУ, опознавшим свой адрес, одновременно с DEVSEL#. Отсутствие этого подтверждения заставит инициатор выполнять обмен с 32-битной разрядностью
INTA#, INTB#, INTC#, INTD# Interrupt А, В, С, D - линии запросов прерывания, чувствительность к уровню, активный уровень - низкий, что допускает разделяемость (совместное использование) линий
CLK Clock - тактовая частота шины. Должна лежать в пределах 20–33 МГц, в PCI2.1 - до 66 МГц
M66EN 66MHz Enable - разрешение частоты синхронизации до 66 МГц
SDONE Snoop Done - сигнал завершенности цикла слежения для текущей транзакции. Низкий уровень указывает на незавершенность цикла слежения за когерентностью памяти и кэша. Необязательный сигнал, используется только устройствами шины с кэшируемой памятью
SBO# Snoop Backoff - попадание текущего обращения к памяти абонента шины в модифицированную строку кэша. Необязательный сигнал, используется только абонентами шины с кэшируемой памятью при алгоритме обратной записи
TCK Test Clock - синхронизация тестового интерфейса JTAG
TDI Test Data Input - входные данные тестового интерфейса JTAG
TDO Test Data Output - выходные данные тестового интерфейса JTAG
TMS Test Mode Select - выбор режима для тестового интерфейса JTAG
TRST Test Logic Reset - сброс тестовой логики

В каждый момент времени шиной может управлять только одно ведущее устройство, получившее на это право от арбитра. Каждое ведущее устройство имеет пару сигналов - REQ# для запроса на управление шиной и GNT# для подтверждения предоставления управления шиной. Устройство может начинать транзакцию (устанавливать сигнал FRAME#) только при активном полученном сигнале GNT# . Снятие сигнала GNT# не позволяет устройству начать следующую транзакцию, а при определенных условиях (см. ниже) заставляет прекратить начатую транзакцию. Арбитражем запросов на использование шины занимается специальный узел, входящий в чипсет системной платы. Схема приоритетов (фиксированный, циклический, комбинированный) определяется программированием арбитра.

Для адреса и данных используются общие мультиплексированные линии AD . Четыре мультиплексированные линии С/BE обеспечивают кодирование команд в фазе адреса и разрешения байт в фазе данных. В начале транзакции ведущее устройство активизирует сигнал FRAME# , по шине AD передает целевой адрес, а по линиям С/BE# - информацию о типе транзакции (команде). Адресованное ЦУ отзывается сигналом DEVSEL# . Ведущее устройство указывает на свою готовность к обмену данными сигналом IRDY# , эта готовность может быть выставлена и раньше получения DEVSEL#. Когда к обмену данными будет готово и ЦУ, оно установит сигнал TRDY# . Данные по шине AD передаются только при одновременном наличии сигналов IRDY# и TRDY# . С помощью этих сигналов ведущее устройство и ЦУ согласуют свои скорости, вводя такты ожидания. На рис. 6.7 приведена временная диаграмма обмена, в которой и ведущее устройство, и ЦУ вводят такты ожидания. Если бы они оба ввели сигналы готовности в конце фазы адреса и не снимали их до конца обмена, то в каждом такте после фазы адреса передавались бы по 32 бита данных, что обеспечило бы выход на предельную производительность обмена.

Рис. 6.7 . Цикл обмена на шине PCI

Количество фаз данных в пакете явно не указывается, но перед последней фазой данных ведущее устройство при введенном сигнале IRDY# снимает сигнал FRAME# . В одиночных транзакциях сигнал FRAME# активен лишь один такт. Если устройство не поддерживает пакетные транзакции в ведомом режиме, то оно должно потребовать прекращения пакетной транзакции во время первой фазы данных (введя сигнал STOP# одновременно с TRDY#). В ответ на это ведущее устройство завершит данную транзакцию и продолжит обмен последующей транзакцией с новым значением адреса. После последней фазы данных ведущее устройство снимает сигнал IRDY# , и шина переходит в состояние покоя (PCI Idle ) - оба сигнала FRAME# и IRDY# находятся в пассивном состоянии. Инициатор может начать следующую транзакцию и без такта покоя, введя FRAME# одновременно со снятием IRDY# . Такие быстрые смежные транзакции (Fast Back-to-Back) могут быть обращены как к одному, так и к разным ЦУ. Первый тип поддерживается всеми устройствами PCI, выступающими в роли ЦУ. На поддержку второго типа (она необязательна) указывает бит 7 регистра состояния (см. п. 6.2.12). Инициатору разрешают (если он умеет) использовать быстрые смежные транзакции с разными устройствами (битом 9 регистра команд), только если все агенты шины допускают быстрые обращения.

Шина позволяет уменьшить мощность (ток), потребляемую устройствами, ценой снижения производительности, применяя пошаговое переключение линий AD и PAR (address/data stepping). Здесь возможны два варианта.

Плавный шаг (continuous stepping) - начало формирования сигналов слабо точными формирователями за несколько тактов до введения сигнала-квалификатора действительной информации (FRAME# в фазе адреса, IRDY# или TRDY# в фазе данных). За эти несколько тактов сигналы «доползут» до требуемого значения при меньшем токе.

Дискретный шаг (diskrete stepping) - нормальные формирователи срабатывают не все сразу, а группами (например, побайтно), в каждом такте по группе. При этом снижаются броски тока, поскольку одновременно переключается меньше формирователей.

Устройство само может и не пользоваться этими возможностями (см. бит 7 регистра команд), но должно «понимать» такие циклы. Задерживая сигнал FRAME# , устройство рискует потерять право доступа к шине, если арбитр получит запрос от более приоритетного устройства.

Протокол квитирования обеспечивает надежность обмена - ведущее устройство всегда получает информацию об отработке транзакции ЦУ. Средством повышения надежности (достоверности) является применение контроля паритета: линии AD и С/BE# и в фазе адреса, и в фазе данных защищены битом паритета PAR (количество единичных бит этих линий, включая PAR , должно быть четным). Действительное значение PAR появляется на шине с задержкой в один такт относительно линий AD и С/BE# . При обнаружении ошибки ЦУ вырабатывается сигнал PERR# (со сдвигом на такт после действительности бита паритета). В подсчете паритета при передаче данных учитываются все байты, включая и недействительные (отмеченные высоким уровнем сигнала С/ВЕх#). Состояние бит, даже и в недействительных байтах данных, во время фазы данных должно оставаться стабильным.

Каждая транзакция на шине должна быть завершена планово или прекращена, при этом шина должна перейти в состояние покоя (сигналы FRAME# и IRDY# пассивны). Завершение транзакции выполняется либо по инициативе ведущего устройства, либо по инициативе ПУ.

Ведущее устройство может завершить транзакцию одним из следующих способов.

Нормальное завершение (Completion ) выполняется по окончании обмена данными.

Завершение по тайм-ауту (Time-out ) происходит, когда во время транзакции у ведущего устройства отбирают право на управление шиной (снятием сигнала GNT#) и истекает время, указанное в его таймере Latency Timer. Это может случиться, если адресованное ЦУ оказалось непредвиденно медленным или запланирована слишком длинная транзакция. Короткие транзакции (с одной-двумя фазами данных) даже в случае снятия сигнала GNT# и срабатывания таймера завершаются нормально.

Транзакция отвергается (Master-Abort ), когда в течение заданного времени ведущее устройство не получает ответа ЦУ (DEVSEL#).

Транзакция может быть прекращена по инициативе ЦУ ; для этого оно может ввести сигнал STOP# . Возможны три типа прекращения.

Повтор (Retry ) - сигнал STOP# вводится при пассивном сигнале TRDY# до первой фазы данных. Эта ситуация возникает, когда ЦУ из-за внутренней занятости не успевает выдать первые данные в положенный срок (16 тактов). Повтор является указанием ведущему устройству на необходимость нового запуска той же транзакции.

Отключение (Disconnect ) - сигнал STOP# вводится во время или после первой фазы данных. Если сигнал STOP# введен при активном сигнале TRDY# очередной фазы данных, то эти данные передаются и на том транзакция завершается. Если сигнал STOP# введен при пассивном сигнале TRDY# , то транзакция завершается без передачи данных очередной фазы. Отключение производится, когда ЦУ неспособно своевременно выдать или принять очередную порцию данных пакета.


Устройство для ремонта и тестирования персональных компьютеров (ПК) POST Card PCI применяется для диагностики неисправностей при ремонте и модернизации компьютеров, а также периферийных систем. Оно найдет широкое применение в любых электронных системах, работающих на основе компьютеров типа IBM PC (или совместимых с ними).

Общие сведения

POST Card PCI (рис. 1) представляет собой плату расширения ПК, которая может быть установлена в любой свободный PCI-слот (33 МГц) и предназначена для отображения POST-кодов, генерируемых системой BIOS ПК, в удобном для пользователя виде.

Рис. 1. Внешний вид устройства

Благодаря применению ПЛИС (программируемая логическая интегральная схема) фирмы Altera стало возможным создание простого и доступного для повторения радиолюбителями устройства.

Кроме того, устройство можно использовать как тестер микросхем. Для этого в нем предусмотрена 44-выводная панель для микросхемы.

Устройство POST Card PCI имеет следующие технические характеристики:

  • Напряжение питания, В +5
  • Ток потребления, мА
  • Частота шины PCI ПК, МГ ц 33
  • Адрес диагностического порта 0080h
  • Индикация POST кодов (в шестнадцатеричном виде) 1 байт
  • Индикация сигналов PG шины RST (левая точка), CLК (правая точка индикатора)
  • Индикаторы наличия напряжения источника питания, В +5, +12, -12, +3,3
  • Совместимость с материнскими платами на чипсетах Intel, VIA, SIS
  • Размер печатной платы, мм 112x90

Основой POST Card PCI является ПЛИС DD1 (рис. 1, 2), на которой реализовано упрощенное PCI Target-устройство, поддерживающее запись в порт вывода и автоматическое конфигурирование (Plug&Plug), достаточные для функционирования устройства. ПЛИС Altera EPM3064ALC44-10 входит в набор и запрограммирована компанией МАСТЕР КИТ специально для работы в POST Card PCI. На микросхеме DD2 собран стабилизатор напряжения +3,3 В для питания ПЛИС. Информация из ПЛИС выводится в последовательном виде и фиксируется в регистрах DD4, DD5. Их выходы через ограничительные резисторы подключены к сдвоенному 7-сегментному индикатору HL1, на котором отображаются POST-коды. Для того чтобы процесс индикации POST кодов не нарушался в случае срыва генерации PCI CLK на неисправной материнской плате, в состав POST Card PCI включен отдельный генератор на микросхеме DD3.

Рис. 2. Принципиальная электрическая схема устройства POST CARD PCI

Светодиоды, включенные через ограничивающие резисторы, индицируют наличие напряжений +3,3, +5, + 12 и -12 В на шине PCI.

Принцип работы

При каждом включении питания ПК, совместимого с IBM PC, и до начала загрузки операционной системы процессор компьютера выполняет процедуру BIOS под названием "Самотест по включению питания" - POST (Power On Self Test). Эта же процедура выполняется также при нажатии на кнопку RESET или при программной перезагрузке компьютера. В некоторых особых случаях с целью сокращения времени загрузки ПК процедура POST может быть несколько урезана по времени, например, в режиме "Quick Boot" или при выходе из режима "сна" (Hibernate).

Основной целью процедуры POST является проверка базовых функций и подсистем ПК (память, процессор, материнская плата, видеоконтроллер, клавиатура, гибкий и жесткий диски) перед загрузкой операционной системы. Это застраховывает пользователя от попытки работать на неисправной системе, что могло бы привести, например, к разрушению пользовательских данных на жестком диске. Перед началом каждого из тестов процедура POST генерирует POST-код, который выводится по определенному адресу в пространстве адресов устройств ввода/вывода ПК. В случае обнаружения неисправности в тестируемом устройстве процедура POST просто "зависает", а предварительно выведенный POST-код однозначно определяет, на каком из тестов произошло "зависание". Таким образом, глубина и точность диагностики при помощи POST-кодов полностью определяются глубиной и точностью тестов соответствующей процедуры POST-системы BIOS компьютера.

Некоторые коды неисправностей BIOS

В таблице приведены некоторые коды AMI BIOS, отражающие наиболее часто встречающиеся неисправности ПК.

Таблица

Код

Неисправность

Ошибка конфигурации системной памяти (фатальная ошибка)

Ошибка конфигурации системной памяти (звуковой сигнал)

Ранняя инициализация контроллера клавиатуры

Ошибка инициализации VGA BIOS

Ошибка теста видеопамяти адаптера CGA

Ошибка теста схем формирования разверток адаптера CGA

Ошибка видеопамяти или схем формирования разверток

Отключение IRQ12, если PS/2 mouse отсутствует

Индикация сообщений об ошибках

Определение типа памяти, суммарного объем и размещение по строкам

Сообщение об ошибках на предыдущих этапах инициализации

Кроме вышеуказанных POST-кодов в диагностический порт выводятся сообщения о событиях в процессе выполнения Device Initialization Manager (DIM). Существует несколько контрольных точек, в которых отображается состояние инициализации системных или локальных шин.

В случае если обнаружена ошибка конфигурации системной памяти (коды DE или DF), в порт 80h выводится последовательно в бесконечном цикле код DE, код DF, код ошибки конфигурации, который может принимать следующие значения:

00 - оперативная память не обнаружена;

01 - установлены модули DIMM различных типов (пример, EDO и SDRAM);

02 - чтение содержимого SPD закончилась неудачей;

03 - модуль не соответствует требованиям для работы на заданной частоте;

04 - модуль не может быть использован в данной системе;

05 - информация в SPD не позволяет использовать установленные модули;

06 - обнаружена ошибка в младшей странице памяти.

Практический поиск неисправностей с использованием тестера POST Card

Прежде всего, при включении питания перед началом работы процедуры POST должен произойти сброс системы сигналом RST (RESET), что индицируется на POST Card кратковременным миганием левой точки на индикаторе. Рассмотрим несколько наиболее популярных неисправностей ПК и способы их локализации.

POST-коды не отображаются

При неисправности компьютера в самом сложном случае сброс либо совсем не проходит, либо проходит, но никакие POST-коды на индикаторе не отображаются.

Рекомендуется немедленно выключить компьютер и вытащить все дополнительные платы и кабеля, а также память ОЗУ из слотов материнской платы, оставив подключенной к блоку питания только собственно материнскую плату с установленными процессором и POST Card. Если при последующем включении компьютера нормально проходит сброс системы и появляются первые POST-коды, очевидно, проблема заключается во временно извлеченных компонентах компьютера. Возможно, неправильно подключены шлейфы. Вставляя последовательно модули памяти, видеоадаптер, а затем и другие карты, и наблюдая за POST-кодами на индикаторе, обнаруживают неисправный модуль.

Не проходит даже начальный сброс системы (на индикаторе POST Card в самом начале теста кратковременно не загорается левая точка индикатора)

В этом случае либо неисправен блок питания компьютера, либо сама материнская плата (неисправны цепи формирования сигнала RESET). Точную причину можно установить, подсоединив к материнской плате заведомо исправный блок питания.

Сигнал сброса проходит, но никакие POST-коды на индикатор не выводятся (тестируется система, состоящая только из материнской платы, процессора, POST Card и блока питания)

Если материнская плата новая, то причина может быть в неправильно установленных переключателях на материнской плате. Если все переключатели и процессор установлены правильно, а материнская плата не запускается, следует заменить процессор заведомо исправным. Если же это не помогает, то можно сделать вывод о неисправности материнской платы либо ее компонентов (например, причиной неисправности может являться повреждение информация во Flash-BIOS).

Неисправности ПК, определяемые с помощью тестера pOsT Card

После включения питания компьютера (или нажатия на кнопку RESET) и до появления первого POST-кода на индикатор POST Card выводится специальный символ (см. рис 3), который свидетельствует об отсутствии вывода ПК каких-либо POST-кодов. Эта особенность работы данной POST Card облегчает диагностику и позволяет наглядно определить, стартует ли компьютер вообще. Кроме того, этот же символ выводится при программном сбросе PCI-шины для фиксации прохождения сигнала RST. Точки 7-сегментного индикатора POST Card отображают состояния сигналов RST и CLK шины PCI. Зажигание правой точки соответствует наличию активного сигнала синхронизации CLK шины PCI, зажигание левой точки - наличию активного сигнала RST

Рис. 3. Индикация на POST Card об отсутствии вывода ПК каких-либо POST-кодов

При исправном компьютере при включении питания вначале должен произойти сброс системы сигналом RESET (что индицируется на POST Card специальными символами), затем - запуск компьютера с последовательным прохождением всех POST кодов. При неисправности компьютера в самом сложном случае сброс либо совсем не проходит, либо проходит, но никакие другие POST-коды на индикаторе не отображаются.

В этом случае рекомендуется немедленно выключить компьютер, отключить все дополнительные платы и кабели, а также память из материнской платы, оставив подключенной к блоку питания только материнскую плату с установленными процессором и платой POST Card.

Если при последующем включении компьютера нормально проходит сброс системы и появляются первые POST-коды, то проблема заключается во временно извлеченных компонентах компьютера. Возможно неправильно подключены шлейфы (особенно часто вставляют "вверх ногами" шлейф IDE).

Последовательно устанавливают модуль памяти, видеоадаптер, другие карты и, наблюдая за POST-кодами, обнаруживают неисправный модуль.

Например, при неисправной памяти для компьютеров с AMI BIOS последовательность POST-кодов обычно фиксируется на коде d4; с AWARD BIOS - на кодах C1 или С6. Бывает, что при этом неисправен не сам модуль памяти, а материнская плата - причина заключается в плохом контакте в разъемах SIMM/DIMM (согнуты/замкнуты между собой контакты), либо не до конца вставлен модуль в разъем.

При неисправном видеоадаптере для компьютеров с AMI BIOS последовательность POST-кодов фиксируется на кодах 2C, 40 или 2A в зависимости от модификации BIOS либо эти коды отсутствуют, а на мониторе нет соответствующих строк инициализации видеокарты (с указанием типа, объема памяти и фирмы-производителя видеоадаптера).

Аналогично, для компьютеров с AWARD BIOS при неисправности видеоадаптера последовательность POST-кодов либо фиксируется на коде 0d, либо "проскакивает" этот код. Если инициализация памяти и видеоадаптера прошла нормально, устанавливают по одной остальные карты и, подключая шлейфы, на основании показаний индикатора POST Card определяют, какой из компонентов "подсаживает" системную шину, и не дает загрузиться компьютеру.

На рис. 4-6 показана индикация POST Card при возникновении различных ошибок.

Рис. 4. Код ошибки видеопамяти (во время тестирования карта видеопамяти была извлечена из системного блока)

Рис. 5. Код ошибки манипулятора "Мышь" (при тестировании манипулятор был отключен)

Рис. 6. Код ошибки оперативной памяти (при тестировании модуль памяти был удален из материнской платы)

Последовательность действий по реанимации ПК с помощью тестера POST Card PCI

1. Выключают питание неисправного компьютера.

2. Устанавливают POST Card в любой свободный слот материнской платы.

3. Включают питание ПК и считывают с индикатора POST-Card соответствующий POST-код, на котором прерывается ("зависает") загрузка компьютера.

4. По таблицам POST кодов при необходимости определяют, на каком из тестов возникли проблемы и их вероятные причины.

5. При выключенном питании переставляют шлейфы, модули памяти ОЗУ и другие компоненты, имеющие разъемы с целью устранения неисправности.

6. Повторяют пункты 3, 4, 5 для устойчивого прохождения процедуры POST и нормальной загрузки операционной системы.

7. При помощи программных утилит осуществляют окончательное тестирование аппаратных компонентов, а в случае "плавающих" (нестабильных) ошибок - длительный прогон соответствующих программных тестов.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: