Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Статья: Программирование CMOS

Название: Программирование CMOS
Раздел: Рефераты по информатике, программированию
Тип: статья Добавлен 18:28:09 05 мая 2010 Похожие работы
Просмотров: 128 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

ВВЕДЕНИЕ

В эпоху интенсивного развития высоких технологий и технологий Internet программирование для <железа> отошло на второй план. А между тем практически невозможно реализовать ничего стоящего без правильной конфигурации оборудования, в частности CMOS - энергонезависимой памяти компьютера. В данной статье мы рассмотрим устройство CMOS, его структуру и возможности программирования. Сразу оговорюсь, что программировать CMOS желательно из реального режима ОС; под ОС Windows это делается с помощью специальных драйверов VxD или SYS. В Сети существует достаточно источников документации по построению таковых, поэтому я на них останавливаться не буду. Естественно, что проводить все ниже перечисленные действия по записи значений в CMOS следует с особой осторожностью; иногда (!) можно потерять практически все значения конфигурации ПК. В таковом случае необходимо очистить CMOS; как это сделать - смотрите в документации к вашей материнской плате. Также я буду использовать язык ассемблера для иллюстрации конкретных примеров, а так же широко распространенный отладчик DEBUG.EXE, который прилагается практически с каждой версией ОС Windows/DOS.


ДАННЫЕ CMOS

CMOS является нечто вроде базы данных, которая предназначена для хранения информации о конфигурации ПК. Однако, в отличие от реальной БД, которая имеет реальный образ на магнитном носителе, CMOS хранит свои данные на микросхеме многократной записи (write many-read many). Программа установки BIOS SETUP при записи сохраняет в ней свою системную информацию, которую впоследствии сама же и считывает (при загрузке ПК). Каждая ячейка имеет размер в 1 байт.

Таблица данных имеет следующий вид

Адрес Назначение
00H-0DH RTC (Real Time Clock) - часы реального времени (таймер)
0EH Байт статуса процедуры POST (результат загрузки ПК)
0FH Байт завершения работы ПК
10Н Тип дисковода
11Н Зарезервировано
12Н Тип(ы) винчестера (если значение < 15)
13Н Зарезервировано
14Н Байт конфигурации оборудования
15Н-16Н Размр базовой памяти
17Н-18Н Размер памяти за пределом 1 Мб
19Н Тип винчестера С: (если значение > 15)
1АН Тип винчестера D: (если значение > 15)
1BH-20H Зарезервировано
21H-2DH Зарезервировано
2EH-2FH Контрольная сумма CMOS (от 10Н - 20Н)
30Н-31Н Размер расширенной памяти за пределом 1 Мб
32Н Номер текущего века в BCD нотации (например 17Н)
33Н Другая информация
34Н-3АН Зарезервировано

Некоторые адреса CMOS, защищены контрольной суммой. То есть запись в диапазон адресов 10Н-20Н должен сопровождаться корректировкой значений в ячейках 2ЕН-2FH. Иначе можно получить сообщение о неправильной установке параметров или о <усохшей> батарее CMOS. Контрольная сумма представляет собой 16-битную сумму всех значений, записанных в ячейки CMOS с 10Н по 20Н. В ячейку 2ЕН пишется старший байт суммы, а в 2FH - младший. В любом случае, мой вам совет - сначала сохраните старое значение CMOS (да и вообще все значения CMOS) а потом просто вычитайте или складывайте нужные значения с полученной контрольной суммой. Так проще.

ЧТЕНИЕ И ЗАПИСЬ CMOS

Чтение: для чтения значения из ячейки, запишите значение в порт 70Н адрес интересующей вас ячейки, а затем считайте значение из порта 71Н - это и будет интересующие вас значение. Например получим номер текущего века (MS Debug):

Нумерация веков идёт с 00Н (если так можно выразиться), поэтому значение 20Н вполне адекватно.

Запись: для записи значения в CMOS запишите значение адреса в порт 70Н, а затем новое значение в порт 71Н. Установим для примера новое значение века (так сказать <машина времени> J):

Теперь чтобы вернуть все как было, введем в порт 70Н значение 32Н, а в 71Н - 20Н:

Пусть вас не смущает отсутствие символа "Н" после цифр - все значения в MS Debug идут только в шестнадцатеричном виде.

ПОДРОБНЕЕ ОБ АДРЕСАХ CMOS

Итак, остановимся на подробном рассмотрении значений, хранящихся в CMOS.


Адрес (HEX) Описание
00Н Текущая секунда
01Н Сигнальная секунда
02Н Текущая минута
03Н Сигнальная минута
04Н Текущий час
05Н Сигнальный час
06Н Текущий день недели (1 - Воскресенье)
07Н Текущий день месяца
08Н Текущий месяц
09Н Текущий год (только 2 последние цифры, напр. 98)

Все значения RTC храняться в BCD формате как 2 полубайта но в десятичном формате. Например 31 (dec) хранится как 31 (hex).

Адрес (HEX) Описание
0AH Регистр статуса RTC (# A): Биты 0-3 - Селектор уровня (установлены в 0110) Биты 4-6 - 22-уровневый делитель (установлен в 010) Бит 7 - В данный момент производится обновление (если == 0 то разрешено чтение)
0BH Регистр статуса RTC (# B): Бит 0 - Включен режим экономии времени (летнее); (0 = стандартное время; по умолч. = 0) Бит 1 - 12 или 24 часовой режим времени (если 0 то 12 часовой; по умолч. = 1) Бит 2 - Режим BCD даты (1=двоичный, 0 =BCD, по умолч. = 0) Бит 3 - Включить Square Wave (1=включить; по умолч. = 0) Бит 4 - Включить прерывание обновления (0=отключить, по умолч. = 0) Бит 5 - Включить сигнальное прерывание (0=отключить, по умолч = 0) Бит 6 - Включить периодическое прерывание (0=отключить, по умолч. = 0) Бит 7 - UIP флаг (Update In Progress), 0 - можно читать CMOS
0CH Регистр статуса RTC (# С): в основном не используется
0DH Регистр статуса RTC (# D): если бит 7=1, то питание CMOS включено, если бит 7=0 - то батарея разряжена.
0EH Байт диагностики загрузки (POST Byte): Биты 0 и 1 всегда равны 0. Бит 2 - Время правильное (1=верно, что сегодня не 30 февраля) Бит 3 - Неверный загрузочный жесткий диск (1=нельзя загрузиться с винчестера) Бит 4 - Ошибка размера RAM (1=POST нашла неверный размер RAM) Бит 5 - Неверная запись об оборудовании (1=неверное оборудование) Бит 6 - Неверная контрольная сумма (1=неверная сумма CMOS) Бит 7 - Утеря питания батареи CMOS (1=утеря питания)
0FH Байт статуса завершения работы ПК. Применяется чаще всего после перезагрузки ПК процедурой SETUP. Значения могут быть следующие: 0 , если была перезагр. по нажатии Ctrl-Alt-Del или неожиданный перезапуск. В любом случае - процедура POST НЕ выполняется 1 перезапуск после определения размера памяти 2 перезапуск после теста памяти 3 перезапуск после обнаружения ошибки памяти 4 перезапуск по запросу загрузчика ОС 5 перезапуск вследствие дальнего перехода (FAR JMP) на адрес 0:0467Н 6,7,8 перезапуск после проверки защищ. режима 80286 9 перезапуск после переназначения блока памяти (ф-я 0х87 прерыв. 0х15)
10Н Байт типа дисковода: Биты 0-3: первый дисковод Биты 4 -7: второй дисковод В любом случае, значения битов могут быть следующими: 0000 = 0 = дисковод не установлен 0001 = 1 = 360 К 0010 = 2 = 1,2 Мб 0011 = 3 = 720 К 0100 = 4 = 1,44 Мб Например: 24Н - это диск А: размером 1,2М и диск В: размером 1,44М
11Н РЕЗЕРВ
12Н Тип винчестера (для дисков С: и D:, когда байт наход. В промежутке от 1 до 14). Биты 0-3: первый винчестер Биты 4 -7: второй винчестер В любом случае, значения битов могут быть следующими: 0000 = 0 = диск не установлен другое_значение = тип диска 1111 = см. адреса 19Н и 1АН
13Н РЕЗЕРВ
14Н Байт оборудования: Бит 0 = 1 , если присутствует дисковод(ы) Бит 1 = 1 , если присутствует матем. сопроцессор Биты 2, 3 не используются и равны 0 Биты 5, 4 - основной видеоадаптер: · 00 - нет или EGA · 01 - 40*25 EGA, CGA, VGA · 10 - 80*25 EGA, CGA, VGA · 11 - монохромный (ч/б) Биты 6, 7 - количество дисководов - 1 (00=1, 01=2, 10=3, 11=4)
15Н, 16Н Базовая память 15Н - младший байт 16Н - старший байт Могут быть равны: · 0100Н = 256К · 0200 Н = 512К · 0280Н = 640К
17Н, 18Н Дополнительная память свыше 1 Мб 17 Н - младший байт 18 Н - старший байт Размер записан в Кб.
19Н Тип диска № 0 (С:), если значение адреса (12 Н & 0FH) = 0FH
20Н Тип диска № 1 ( D:), если значение адреса (12Н & F0H) = F0H
1BH-2DH РЕЗЕРВ
2ЕН, 2 FH Контрольная сумма значений адресов от 10Н по 20Н · 2ЕН - старший байт · 2FH - младший байт
30Н-31Н РЕЗЕРВ
32Н Век в формате BCD
33H Другая информация (специфич. для машин AT/PS-2 класса)
34Н-3FH РЕЗЕРВ. Как показывает практика, эта область чаще всего свободна от системных данных (но не всегда!), поэтому можете записывать сюда свои личные данные (но не много ) для сохранения между перезагрузками)

Итак, мы рассмотрели CMOS, его логическое строение и структуру. Конечно, в таблице приведены лишь общие для всех машин значения параметров CMOS, но тем не менее даже с этим «набором» можно сделать много «чего», например подключить отключенный администратором дисковод (см. адреса 14Н, 10Н, 2ЕН, 2АР) и т.д. В любом случае: будьте крайне осторожны, не делайте ничего такого, чего потом вы не сможете вернуть обратно . Всё же буду надеяться, что данная статья принесёт вам пользу.

Аббревиатура CMOS(КМОП) расшифровывается как Complement Metal Oxide Semiconductor (комплементарная структура метал окисел полупроводника) - это одна из технологий изготовления микросхем. Электронное запоминающее устройство, для которого характерна высокая плотность размещения элементов и малое потребление энергии.

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

Но применительно к персональным компьютерам под аббревиатурой CMOS стали понимать именно CMOS RAM, то есть ОЗУ, выполненное по технологии КМОП. КМОП - датчики выполняют функцию регистрации попадания луча света на каждый из сотен тысяч элементов выборки. В кристаллах КМОП можно реализовать множество других

CMOS-ПАМЯТЬ

Программных средств BIOS достаточно, чтобы сделать первичные проверки и подключить стандартные устройства, такие как клавиатура и монитор. Слово стандартные мы выделили специально. Дело в том, что монитор и клавиатура у вас могут быть очень даже нестандартными. Но на данном этапе это не имеет значения — просто компьютер пока рассматривает их как стандартные. Ему еще не ведомы все их свойства, и он полагает, что клавиатура и монитор у нас такие, какие были в ходу двадцать лет назад, во времена первых компьютеров. Этим обеспечивается гарантия того, что вы хоть что-то увидите на экране, вне зависимости от той модели монитора, какая имеется в вашем распоряжении. BIOS предполагает, что монитор у нас черно-белый — именно поэтому первые сообщения на экране проходят в черно-белом режиме.

Однако долго работать лишь только со стандартными устройствами компьютер не может. Ему пора бы узнать о том, что у него есть на самом деле. Истинная информация об устройствах компьютера записана на жестком диске, но и его еще надо научиться читать. У каждого человека может быть свой уникальный жесткий диск, не похожий на другие. Спрашивается, откуда программы BIOS узнают, как работать именно с вашим жестким диском?

Для этого на материнской плате есть еще одна микросхема — CMOS-память . В ней сохраняются настройки, необходимые для работы программ BIOS. В частности, здесь хранятся текущая дата и время, параметры жестких дисков и некоторых других устройств. Эта память не может быть ни оперативной (иначе она стиралась бы), ни постоянной (иначе в нее нельзя было бы вводить данные с клавиатуры). Она сделана энергонезависимой и постоянно подпитывается от небольшой аккумуляторной батарейки, тоже размещенной на материнской плате. Заряда этой батарейки хватает, чтобы компьютер не потерял настройки, даже если его не включать несколько лет.

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

Для изменения настроек, хранящихся в CMOS-памяти, в ПЗУ содержится специальная программа — SETUP. Чтобы ее запустить, надо в самый первый момент после запуска компьютера нажать и удерживать клавишу DELETE. Навигацию в системе меню программы SETUP выполняют с помощью клавиш управления курсором. Нужные пункты меню выбирают клавишей ENTER, а возврат в меню верхнего уровня — клавишей ESC. Для изменения установленных значений служат клавиши Page Up и Page Down

Для питания энергонезависимой памяти конфигурации компьютера (CMOS ) на системной плате устанавливается литиевая батарейка. Срока ее работы хватает на несколько лет. О необходимости ее замены говорит сообщение “CMOS Battery State Low” или “CMOS Checksum Error” во время выполнения процедуры POST (Power On Self Test ) - самотестирование при включении. Первыми признаками замены батарейки могут быть остановка внутренних часов-календаря или потеря установок SETUP при выключении машины.

На старых материнских платах батарейка представляла собой обычно синий бочонок, припаянный к плате. В последние годы они выходят из строя на системных платах 286 и 386 машин. При этом теряется информация CMOS , но что гораздо опаснее, может вытечь электролит, вызывая замыкание цепей и раз’едание элементов системной платы. Протекшую батарейку надо обязательно выпаять, а плату на том месте очистить щеточкой и промыть. Найти новую батарейку такого же размера бывает сложно, но ее можно заменить на любую другую с аналогичным напряжением (обычно 3-4,5 В). Новую батарейку можно подключить к контактам раз’ема внешней батареи (Ext. Bat.), имеющегося на большинстве системных плат (см рис.1б), сняв перемычку питания от внутренней батареи и обязательно соблюдая полярность подключения. Существуют внешние батарейки для PC, заключенные в пластмассовые корпуса с проводами подключения. Этот корпус с помощью “липучки” закрепляют в удобном месте. Возможно применение простого и надежного самодельного варианта многоразового пользования: в деревянную бельевую прищепку вкалываются две металлические канцелярские кнопки с припаянными проводами, и ими зажимается батарейка-таблетка (например, типа 2732), строго соблюдая полярность. Закрепить такую конструкцию в корпусе довольно просто.

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

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

Разъем подключения внешней батарейки используется и для обнуления CMOS . Такая необходимость может возникнуть, например, при утере входного пароля в BIOS Setup (или при необходимости его сброса). Обычно для этого достаточно при выключенном компьютере на несколько минут переставить перемычку в положение, показанное на рис. 1в.

Рис. 1. Подключение внешней батарейки и обнуление CMOS: а – работа от внутренней батарейки, б – от внешней, в – обнуление CMOS


Иногда для сброса пароля предназначен отдельный джампер или переключатель (применяется, если пароль храниться не в CMOS , а в NVRAM ). В этом случае, переключив джампер, компьютер необходимо включить – только тогда пароль будет сброшен, после чего джампер необходимо вернуть в исходное состояние.

Обнулением CMOS следует пользоваться с осторожностью. Информация о конфигурации, которая там храниться, восстанавливается относительно легко – проблемы могут возникнуть только с нестандартными параметрами жестких дисков, заданными вручную. Кроме информации Setup, в CMOS может быть записан ключ привязки какого-либо прикладного ПО к конкретной системной плате, и при обнулении CMOS ключ будет утерян. Так, например, легко “убить” легальную копию пакета “1C-Бухгалтерия” . Для страховки от подобных неприятностей после установки подобных защищенных продуктов следует сохранить в файле содержимое CMOS . Это позволяет сделать, например, тестовый пакет QAPlus.

Однако, бывают случаи, когда этими штатными способами пароль не сбросить. Тогда есть еще один способ: закоротить выводы микросхемы CMOS-памяти при отключенном(!) питании и отключенной батарейке. Для этого кусочек фольги прикладывается сверху к микросхеме и аккуратно приглаживается ногтемк выводам по периметру корпуса. В старых материнских платах 286, 386 и некоторых 486 микросхема CMOS-памяти имеет 14 – 16 контактов. В этих случаях достаточно закоротить контакты питания (обычно 7 с 14 для 14-контактных микросхем и 8 с 16 для 16-контактных микросхем).

Периодическое разрушение информации CMOS при включении питания может быть вызвано не батарейкой, а недостаточной задержкой сигнала Power Good относительно момента установления питающего напряжения или, наоборот, излишней задержкой этого сигнала после включения источника. Определить причину довольно просто. Если перед включением питания удержать нажатой кнопку Reset и отпустить ее только через несколько секунд, этим в большинстве случаев имитируется увеличение задержки сигнала Power Good. Если данные CMOS все равно теряются, нужно проверить версию задержки при отключении. Для этого кнопку Reset следует нажимать перед выключением питания и удерживать еще несколько секунд – этим иммитируется ускорение снятия сигнала Power Good . Если при таком способе выключения данные CMOS сохраняются, дело в большой задержке при выключении. В обоих случаях требуется замена или ремонт блока питания.

Программирование CMOS

Д. Крупорницкий

Так сказать DISCLAIMER

Вся информация, представленная в данной статье несет только информативные цели. Автор не несет ответственности за некорректное использование приведённых ниже фактов.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений07:30:59 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:45:00 28 ноября 2015

Работы, похожие на Статья: Программирование CMOS

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(151068)
Комментарии (1843)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru