Качество питающих напряжений является определяющим фактором для стабильной работы любого электронного устройства, а тем более для компьютера, и в первую очередь – для микропроцессора. Именно поэтому любая системная плата современного компьютера оборудована контроллером аппаратного мониторинга, осуществляющим проверку на соответствие номиналам всех основных питающих напряжений компьютера. В предыдущих выпусках нашего журнала мы уже рассмотрели, каким образом управляются системные вентиляторы и как осуществляется мониторинг температуры. Теперь дошла очередь и до мониторинга системных напряжений.
Питание элементов системной платы осуществляется множеством самых различных напряжений. Эти напряжения с разными номиналами формируются как системным блоком питания, так и регуляторами напряжений, находящимися на самой системной плате. Корректная и стабильная работа компьютера возможна только при полном соответствии всех этих напряжений заданным номиналам. Таким образом, контроллером аппаратного мониторинга отслеживаются следующие напряжения:
- напряжение питания ядра процессора VCORE (1.0 – 2.5В)
- напряжение питания батареи VBAT (3.3В)
- напряжение +12В
- напряжение +3.3 В
- напряжение +5В
- дежурное напряжение питания +5VSB
- отрицательное напряжение -5В
- отрицательное напряжение -12В.
На самом деле, перечень контролируемых напряжений зависит от функционального оснащения контроллера HWM, что описывается в Data Sheet'е на соответствующую микросхему. В качестве примера контроллера HWM, отслеживающего все перечисленные напряжения, можно назвать микросхему Winbond W83782G.
В общем и целом, процесс измерения напряжений заключается в следующем:
1) На этапе инициализации во внутренний регистр контроллера заносятся предельные значения для каждого измеряемого напряжения, т.е. указывается верхний максимальный (High Limit) и нижний минимальный (Low Limit) пороги напряжений. Регистры, в которые заносятся эти предельные значения, являются программно доступными.
2) Далее, в процессе работы, контроллер HWM считывает величину входных напряжений через свои входные аналоговые порты и осуществляет преобразование этих аналоговых сигналов в цифровые значения. Для этого в составе HWM имеется 8-ми или 10-разрядный аналого-цифровой преобразователь (АЦП - ADC).
3) Полученные путем оцифровывания значения, сравниваются контроллером HWM со значениями из регистров, в которых хранятся пороговые уровни напряжений.
4) Если входное напряжение выходит за предустановленные пределы, контроллером HWM определяется аварийное событие и генерируется сигнал запроса на прерывание (сигнал IRQ и SMI).
Однако во всей этой процедуре контроля напряжений имеются некоторые особенности, которые мы сейчас и рассмотрим.
Для обеспечения анализа величины питающих напряжений, в составе HWM-контроллера имеется аналого-цифровой преобразователь. Этот преобразователь конвертирует входной аналоговый сигнал в 8-ми или 10-разряднй цифровой код. Большинство современных контроллеров HWM содержит 8-разрядные АЦП, но имеются и контроллеры с 10-разрядными АЦП (например, W83792AD). Кроме того, имеются контролеры, которые позволяют осуществлять преобразование как в 8-разрядном формате, так и в 10-разрядном, в зависимости от требуемой точности измерений.
Для обеспечения точности аналого-цифрового преобразования, питание АЦП осуществляется опорным напряжением, отличающимся повышенной стабильностью. Это опорное напряжение вырабатывается самим контроллером HWM. Величина этого опорного напряжения в контроллерах HWM производства Winbond составляет 4.096V. В результате, величина входного напряжения АЦП не должна превышать это значения, в противном случае будет невозможно осуществить правильное преобразование напряжения в цифровой код. Именно поэтому для контроля таких напряжений, как 5V и 12V, необходимо использование делителей напряжения, обеспечивающих пропорциональное уменьшение входных сигналов. Остальные же напряжения (3.3V, напряжение батареи и ядра процессора) можно подавать напрямую на входы HWM, т.е. без использования резистивных делителей (рис.1).
Некоторым исключением является напряжение канала +5V, которое прикладывается к входу HWM без делителя. На самом деле, резистивный делитель для этого напряжения находиться внутри контроллера HWM и об этом будет рассказано в этой статье несколько ниже.
Так как опорным (питающим) напряжением при аналого-цифровом преобразовании является напряжение 4.096 В, то величина шага дискретизации будет равна:
- 16mV при 8-разрядном АЦП (4.096/256);
- 4mV при 10 разрядном АЦП (4.096/1024).
Необходимо отметить, что опорное напряжение некоторых контроллеров HWM (например, W83792AD) равно значению 2.048 В, т.е. в два раза меньше 4.096 В. Это означает, что шаг дискретизации у этого контроллера также будет в два раза меньше (8mV и 2mV соответственно).
Именно этот показатель (шаг дискретизации) определяет погрешность измерения и определяет точность АЦП. В некоторых контроллерах HWM имеется возможность уменьшения шага дискретизации в два и более раз. Приведем два примера.
1) В контроллере W83792AD основным шагом дискретизации является 4mV, так как используется 10-разрядный АЦП. С шагом 4 mV осуществляется преобразование всех напряжений кроме VCORE. Для напряжений ядра процессора VCORE используется шаг 2mV, что позволяет повысить точность измерения. Это актуально, т.к. напряжение VCORE является, само по себе, достаточно низковольтным. Также необходимо отметить, что данный контроллер поддерживает спецификацию VRD10.
2) В контроллере W83637 для анализа VCORE может использоваться шаг 16mV, т.к. в составе микросхемы имеется 8-разрядный АЦП. И этот шаг дискретизации используется, если контроллер запрограммирован на использование режиме VRM8. В то же самое время данный контроллер можно запрограммировать и на использование режима VRM9 – в этом случае шаг дискретизации уменьшается до 4.88 мV, т.е. более чем в три раза, что позволяет значительно повысить достоверность измерения.
Контроль напряжения VCORE
Одним из важнейших напряжений системной платы является напряжение питания ядра процессора. Это напряжение обозначается, чаще всего, как VCORE (CPUCORE). Напряжение ядра процессора формируется регуляторами, расположенными на самой системной плате. Сложность в контроле напряжения VCORE определяется тем, что оно не является фиксированным напряжением. VCORE может быть различным, в зависимости от типа установленного на системную плату микропроцессора. Каждая модификация микропроцессора имеет свое напряжение VCORE, и при запуске компьютера микропроцессор начинает свою работу с того, что настраивает регуляторы системной платы таким образом, чтобы они выдавали требуемое ему напряжение. Для настройки регулятора напряжений микропроцессор имеет выходы идентификации питающего напряжения: VID0 – VIDn, (реальное количество контактов идентификации VIDn определяется типом микропроцессора и может составлять 4, 5 или 6). Комбинация сигналов на контактах VID0 – VIDn кодирует величину напряжения для данного микропроцессора. Сигналы на выводах VIDn являются дискретными сигналами, устанавливаемыми либо в высокий уровень (лог.1), либо в низкий уровень (лог.0). При производстве микропроцессоров комбинация сигналов VID0 – VIDn «жестко прошивается» на их кристаллах без возможности последующего изменения. Величина напряжения VCORE может находиться в очень широком диапазоне значений, но у большинства микропроцессоров последних поколений это напряжение находится в пределах от +0.835 В до +1.875 В.
Таким образом, контроллер аппаратного мониторинга должен иметь возможность гибкого подхода к измерению напряжения VCORE, т.е. HWM должен точно «знать», какое напряжение является номинальным для установленного на системной плате микропроцессора. Именно поэтому, информация о величине VCORE должна поступать от процессора не только на регулятор напряжения, но и на вход контроллера HWM. Для этих целей у контроллера HWM имеются контакты, обозначаемые VIDn, через которые и происходит считывание величины требуемого напряжения VCORE. Считанное через контакты VIDn значение, декодируется контроллером HWM и заносится во внутренний регистр (допустимую комбинацию сигналов VIDn можно узнать в Data Sheet'ах на микропроцессоры или в описаниях стандартов VRM/VRD).
Для контроля напряжения ядра процессора, которое формируется регулятором напряжения и которое подается на вход микропроцессора, у HWM имеется контакт, так и обозначаемый – VCORE. Общая конфигурация цепи контроля напряжения VCORE представлена на рис.2.
В настоящее время очень широкое распространение получили двухпроцессорные системы. На это откликнулись и производители контроллеров HWM. В частности, Winbond, разработала контроллер W83792AD, который позволяет отслеживать величину двух напряжений VCORE. В этом случае у контроллера должны быть две группы входных сигналов VIDn и должно быть два входа для напряжений ядра процессоров – VCOREA и VCOREB (рис.3).
Контроль положительных напряжений
При измерении величины напряжений каналов +12V и +5VSB возникают некоторые сложности, вызванные тем, что эти напряжения превышают величину опорного напряжения аналого-цифрового преобразователя (4.096 В), т.е. они находятся за пределами диапазона измерений. Таким образом, правильное вычисление значения этих напряжений невозможно без дополнительных цепей. В результате, напряжения каналов +12V и +5VSB прикладываются к входам контроллера HWM через резистивные делители. Номиналы резисторов этих делителей подбираются таким образом, чтобы понизить напряжения до величины менее 4 В.
Наиболее типовым решением для современных контроллеров HWM является применение делителей, представленных на рис.4.
В канале +12V установлены резисторы R1 (28 кОм) и R2 (10 кОм). В результате, величина напряжения на входном контакте +12VIN будет вычисляться по формуле (1) и будет составлять примерно 3.16 В при условии, что измеряемое напряжение равно 12В.
Для канала +5VSB, чаще всего, используется делитель из резисторов R3 (5.1 кОм) и R4 (7.5 кОм). В результате, производя вычисления с использованием той же самой формулы, мы получаем, что на входном контакте 5VSB устанавливается потенциал величиной примерно 2.98 В, при условии, что измеряемое напряжение составляет ровно 5 В (см. формулу (2)).
По-особому проводится измерение величины напряжения канала +5V. Это напряжение подается на вход контроллера HWM напрямую – без каких-либо делителей, и это напряжение выполняет две функции:
- во-первых, оно обеспечивает питание внутренней аналоговой части контроллера HWM;
- во-вторых, оно контролируется аналого-цифровым преобразователем.
Но для того, чтобы напряжение величиной 5В могло измеряться АЦП. В составе контроллера HWM имеется внутренний делитель напряжений, состоящий из двух резисторов, номиналами 34 кОм и 50 кОм. В результате, напряжение канала +5V понижается до уровня +2.98 В (см. формулу (3)).
Контроль отрицательных напряжений
Так как для питания контроллера HWM и его внутреннего АЦП используется только однополярное положительное напряжение, то измерять отрицательные напряжения (-5V и -12V) физически невозможно. Кроме того, по своему абсолютному значению, величина отрицательных напряжений превышает значение опорного напряжения контроллера HWM, что также не позволяет корректно проводить измерение. Для преодоления всех этих сложностей, чаще всего, используется следующее решение.
Во-первых, отрицательные напряжения прикладываются к входам HWM через резистивные делители, что позволяет уменьшить их абсолютное значение. Во-вторых, к уменьшенным отрицательным напряжениям добавляется опорное напряжение контроллера HWM, являющееся фиксированным и положительным. В результате на входе HWM создается суммарное напряжение, которое является положительным, и которое прямопропорционально величине соответствующего отрицательного напряжения. Пример реализации цепей измерения отрицательных напряжений представлен на рис.5.
На примере контроллера W83792AD, рассмотрим, каким образом можно рассчитать величину потенциалов на тех входах контроллера HWM, которые предназначены для измерения напряжений отрицательных каналов. У этого контроллера величина опорного напряжения составляет 2.048 В, а поэтому все входные аналоговые напряжения должны находиться в диапазоне от 0 В до 2.048 В.
Итак, согласно изображению на рис.5, в цепи канала -12V устанавливается резистивный делитель, состоящий из резисторов R1 (232 кОм) и R2 (10 кОм). Резистор R2 включается между контактом опорного напряжения VREF и контактом -12VIN. Через R2 на вход -12VIN подается положительное опорное напряжение (2.048 В). В итоге получается, что это опорное напряжение уменьшается на величину поделенного отрицательного напряжения. Результирующее напряжение на входе -12VIN вычисляется по формуле (4) и составляет 1.467 В при условии, что напряжение в канале -12V в точности равно -12 В. По значению напряжения на входе -12VIN контроллера HWM можно вычислить величину напряжения в канале -12V, и это делается по формуле (5).
Аналогичным образом вычисляется и напряжение канала -5V, в котором устанавливается делитель из резисторов R3 (120 кОм) и R4 (10 кОм). Через резистор R4 к входу -5VIN прикладывается опорное напряжение. Согласно формуле (4), на входе -5VIN устанавливается напряжение 1.505 В. По значению напряжения на входе -5VIN можно рассчитать и величину реального напряжения в канале -5V по формуле (6).
Еще одно решение по контролю величины отрицательных напряжений представлено на рис.6. Такое решение, в частности, используется фирмой Winbond в своем контроллере W83781G. В этом случае, в состав контроллера входят два компаратора на операционных усилителях, и отрицательные напряжения подаются на вход контроллера через резистивный делитель и подмешивания опорного напряжения не требуется. Значение передаточной характеристики компараторов задается внешними резисторами. Величину полученного компараторами напряжения можно проконтролировать на конт.30 и на конт.29, которые одновременно являются входами аналого-цифрового преобразователя. Эти напряжения являются положительными, находятся в диапазоне от 0 В до 4.096 В и вычисляются по формуле (7).
Остается только добавить, что Winbond рекомендует использовать следующие номиналы резисторов в данной схеме:
- для канала -12V: RIN=210 кОм, а RF=60.4 кОм;
- для канала -5V: RIN=90.9 кОм, а RF=60.4 кОм.
Вот и все, что хотелось рассказать о принципах контроля питающих напряжений персонального компьютера.