МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка программы диагностики и тестирования аппаратных средств ПК

    Разработка программы диагностики и тестирования аппаратных средств ПК

    СОДЕРЖАНИЕ

    ВВЕДЕНИЕ…………………………………………………………………..4

    ОБЩИЙ РАЗДЕЛ……………………………………………………………5

    1. Технико-математическое описание задачи……….…………………5

    2. Требования к функциональным характеристикам………………….7

    3. Требования к техническим и программным средствам………….…8

    1. Обоснования выбора языка программирования…………………….9

    СПЕЦИАЛЬНЫЙ РАЗДЕЛ………………………………………………..11

    2.1. Постановка задачи……………………………………………………..11

    2.2. Описание структуры программы…………………………………..…12

    2.3. Оисание алгоритма решения задачи………………………………….14

    2.4. Отладка и тестирование……………………………………………….16

    2.5. Инструкция к пользователю…………………………………………..17

    2.6. Заключение о результатах проектируемой задачи…………………..18

    ПРИЛОЖЕНИЕ 1…………………………………………………………..19

    ПРИЛОЖЕНИЕ 2…………………………………………………………..21

    СПИСОК ЛИТЕРАТУРЫ………………………………………………….30

    ВВЕДЕНИЕ

    В связи с появлением персональных компьютеров мгновенно вырос рынок

    аппаратных средств, как грибы росло число производителей, предлагающих свою

    продукцию. При этом, покупая то или иное аппаратное средство, производитель

    не может (а иногда и не хочет) дать 100% гарантию, что оно исправно.

    В связи с этим также стремительно развивался и рынок пограммных

    тестирующих средств. На рынке существует огромное количество отличных

    диагностических программ, написанных большими корпорациями: такими как

    Symantec inc., APS (Advanced Personal Systems), Microsoft и т.д., но все

    сущестующие диагностирующие программы написаны на язках высокого уровня, а

    значит не достаточно быстры и надёжны.

    Автор проекта не берётся конкурировать с огромными гигантами по

    количеству выполняемых этими программами тестов в силу того, что это

    бессмысленно. Была предпринята попытка написать более надежную, быструю

    диагностическую программу с использованием машино-ориентированного языка

    программирования – Ассемблер.

    ОБЩИЙ РАЗДЕЛ

    1.1. Технико-математическое описание задачи

    Программа делится на две части:

    Первая часть программы - Сбор сведений - это часть программы,

    собирающая справки об оборудовании, установленном на ПК, на котором

    программа выполняется. Справки наводятся о следующих устройствах:

    - математическом сопроцессоре;

    - СОМ портах;

    - LPT портах;

    - дисководах;

    - CD-ROM приводах;

    - расширенном управлении электропитанием;

    - манипуляторе «мышь».

    Математический сопроцессор – это микрочип, устанавливаемый на

    материнскую плату, который работает совместно с основным процессором,

    осуществляет обработку чисел с плавающей точкой, тем самым разгружая

    основной процессор. Может устанавливаться опционально по желанию

    пользователя либо самим пользователем, т.е. может либо присутствовать, либо

    отсутствовать.

    СОМ порты – это порты с последовательным типом передачи данных,

    предназначенные для подключения коммуникационных, манипуляторных и других

    устройств, где требуется сравнительно не- большая скорость передачи данных.

    Количество установленных последовательных портов может варьироваться от

    одного до четырёх. На некоторых материнских платах существует ограничение

    на подключение последовательных портов, например: если это значение будет

    два, и если вы подключите четыре порта, то работать будут все равно два.

    LPT порты – это порты с параллельным типом передачи данных,

    предназначенные для подключения принтеров и других устройств, где требуется

    относительно большая скорость передачи данных, а также могут использоваться

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

    установленных LPT портов может варьироваться от одного до четырёх.

    Дисковод – устройство, предназначенное для чтения/записи накопителей

    на магнитном диске (гибкий диск). Существует четыре типа дисководов:

    - 360 Кб.;

    - 720 Кб.;

    - 1.2 Мб.;

    - 1.44 Мб.

    Они различаются по формату обслуживаемых дискет и максимально возможному

    объему данных, записываемых на дискету соотвестсвующего типа.

    CD-ROM привод – устройство, предназначенное только для чтения

    накопителей на лазерных дисках. Различаются по скорости доступа к данным и

    скоростью вращения лазерного диска. Обычно устанавливают не более одного

    привода.

    РУЭ (расширенное управление электропитанием) – стандарт, служащий для

    экономии электроэнергии. Представляет собой следующий набор функций:

    - автоматическое отключение электропитания;

    - «спящий» режим;

    - автоматическое отключение питания монитора;

    - автоматическое отключение питания жестких дисков.

    Может находиться в двух состояниях: включено или выключено.

    Вторая часть программы - диагностика памяти - проверяет на

    работоспособность память ПК, на котором выполняется программа.

    1.2. Требования к функциональным характеристикам

    При запуске программы на экран должна выводиться аннотация, затем,

    после нажатия на любую клавишу, должен очищаться экран и появляться меню

    из трех пунктов:

    1 – сбор сведений о системе;

    2 – тест памяти;

    3 – выход.

    Для выбора интересующего пункта необходимо нажать на клавиатуре цифры,

    соответствующие номерам пунктов.

    В случае выбора пункта «Сбор сведений о системе» выполняется

    последовательный вывод информации о ПК в виде списка устройств с текущим

    состоянием. Ниже приведена таблица со списком устройств и их возможными

    состояниями.

    Таблица 1

    Таблица возможных состояний устройств

    |Устройство |Возможные состояния |

    |Математический сопроцессор |Присутствует, отсутствует |

    |Максимальное количество |От 0 до 4 |

    |подключаемых СОМ-портов | |

    |Количество CОМ-портов |От 0 до 4 |

    |Количество LPT-портов |От 0 до 4 |

    |Первый дисковод |Отсутствует, 360Kb, 720Kb, 1.2Mb, |

    | |1.44Mb. |

    |Второй дисковод |Отсутствует, 360Kb, 720Kb, 1.2Mb, |

    | |1.44Mb. |

    |Количество установленных CD-ROM |От 0 до 4 |

    |приводов | |

    |Расширенное управление |Отсутсвует, присутствует, |

    |электропитанием(APM) |включено/выключено |

    |Манипулятор «мышь» |Отсутствует, присутствует |

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

    затем возврат в меню.

    В случае выбора пункта «тест памяти» программа должна выполнять

    тестирование не менее 640Кб. памяти. В случае если память исправна, на

    экран выводиться сообщение «тест пройден», в противном случае «тест не

    пройден». Также необходимо реализовать задержку и возврат в меню.

    В случае выбора пункта «выход», необходимо реализовать завершение

    работы программы и передачу управления операционной системе DOS.

    1.3. Требования техническим и программным средствам

    Программа выполнена на языке ассемблера 8086 процессора,

    соответственено ей необходим IBM PC – совместимый компьютер с процессором

    не ниже 8086, также программа может выполняться на компьютерах с

    процессорами старшего поколения (например: 80286 или 80386), т.к.

    особенностью архитектуры 80х86 является преемственность на уровне машинных

    команд: программы, написанные для младших моделей процессоров, без всяких

    изменений могут быть выполнены на более старших моделях.

    Компилированный код программы занимает всего 2 Кб – это связано с

    отсутствием избыточного кода, которого очень много при использовании языков

    высокого уровня. В связи с этим программа может легко поместиться на

    дискету 360 Кб.

    Программа работает в текстовом режиме и не использует цветовой гаммы,

    поэтому ей достаточно монитора CGA. Кроме того она может без всяких

    изменений работать на мониторах старшего поколения таких, как EGA, VGA и

    SVGA.

    Так как программа тестирует 640 Кб оперативной памяти, этот объем

    являеться минимумом.

    1.3.1. Обоснования выбора языка программирования

    Для написания данной программы был выбран язык ассемблера. В связи с

    тем, что он наиболее подходит для реализации такого рода задач, т.е. где

    требуеться досуп к портам, выполнение специальных прерываний, доступ к

    области памяти BIOS и т.д.

    Язык ассемблера, представляет собой фактически символьную форму записи

    машинного языка: в нем вместо цифровых кодов операций вписывают привычные

    знаки операций или их словестные названия, вместо адресов – имена, а

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

    в таком виде, вводят в ЭВМ и подают на вход специальному транслятору,

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

    полученную машинную программу выполняют.

    Для любой ЭВМ можно придумать разные языки ассемблера, хотя бы

    потому, что можно по-разному обозначать машинные операции. В частости, и

    для ПК разработано несколько таких языков(ASM-86, MASM, TASM). Для

    реализации данной задачи был выбран язык, который создан фирмой Borland и

    полное название которого – турбоассемблер, сокращенно TASM. Надо отметить,

    что этот язык наиболее часто используется на ПК.

    СПЕЦИАЛЬНЫЙ РАЗДЕЛ

    2.1. Постановка задачи

    Разработать программу тестирования оперативной памяти и сбора

    сведений о ПК.

    Реализовать меню, в котором пользователю предлагается выбор из трёх

    пунктов:

    1 – сбор сведений о системе;

    2 – тест памяти;

    3 – выход.

    Сбор сведений должен осуществляться в виде списка устройств с текущим

    состоянием. Состояние от названия устройства должно отделяться двоеточием.

    Список устройств и возможных их состояний см. в таблице 1.

    Пункт «тест памяти» должен осуществлять проверку ячеек памяти на

    работоспособность. Существует два типа неисправностей ячеек памяти:

    - «постоянные нули»;

    - «постоянные единицы».

    Вид неисправности «постоянные нули» заключается в следующем:

    предположим, что бит №4 в байте, изображенном на рис. 1 – неисправный. В

    данный момент в байт записано число ноль (восемь нулей в двоичной системе

    cчисления), если считать содержимое этого байта, то на выходе получиться

    ноль – вроде бы он исправен.

    7 6 5 4 3 2 1 0

    |0 |0 |0 |0 |0 |0 |0 |0 |

    рис. 1

    Но это лишь только видимость, если в этот байт записать число FFh (восемь

    единиц в шестнадцатиричной системе счисления), что в двоичной системе

    счисления эквивалентно восьми единицам, то получится картина,

    представленная на рис. 2. В этом случае, если считать содержимое этого

    байта, на выходе получиться EFh, то есть, записывая в бит №4 единицу, мы

    при считывании все равно получаем ноль. Следовательно бит № 4, а значит и

    байт, неисправен.

    7 6 5 4 3 2 1 0

    |1 |1 |1 |0 |1 |1 |1 |1 |

    рис. 2

    Вид неисправности «постоянные единицы» схож с видом «постоянные

    нули». Разница состоит лишь в том, что в виде «постоянные нули» неисправные

    биты находятся всегда в нулевом состоянии, а в виде «постоянные единицы» в

    единичном.

    В связи с этим необходимо реализовать проверку ячеек памяти на два

    вида неисправностей: «постоянные нули» и «постоянные единицы».

    2.2. Описание структуры программы

    Программа была реализована с помощью нескольких пользовательских

    процедур и макросов (см. таблицу 2).

    Довольно часто в программах, особенно больших, приходится несколько

    раз решать одну и ту же подзадачу и поэтому приходится выписывать

    одинаковую группу команд, решающих эту подзадачу. Чтобы избежать повторного

    выписывания такой группы команд, ее обычно выписывают один раз и оформляют

    соответствующим образом, а затем в нужных местах программы просто передают

    управление на эти команды, которые, проработав, возвращают управление

    обратно. Такая группа команд, которая решает некоторую подзадачу и которая

    организована таким образом, называется процедурой.

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

    преобразование текста программы. Например, может потребоваться, чтобы какой-

    то фрагмент программы был продублирован несколько раз или чтобы в

    зависимости от некоторых условий в тексте программы были сохранены одни

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

    называемые макросредства. Расширение языка ассемблера за счет этих средств

    обычно называют макроязыком.

    Программа, написанная на макроязыке, транслируется в два этапа.

    Сначала она переводится на, так сказать, чистый язык ассемблера, т.е.

    преобразуется к виду, где нет никаких макросредств. Этот этап называется

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

    На втором этапе полученная программа переводится на машинный язык. Это этап

    ассемблирования, его осуществляет ассемблер.

    Таблица 2

    Таблица процедур и макросов

    |Название |Тип |Назначение |

    |Movcur |Макрос |Премещает курсор |

    |Clrscr |Макрос |Очищает экран |

    |Print |Макрос |Выводит на экран строку |

    |Press |Макрос |Реализует задержку |

    |ShowQuestion |Процедура |Выводит на экран меню |

    |SborSved |Процедура |Осуществляет сбор сведений |

    |TestMem |Процедура |Осуществляет тест памяти |

    При выполнении программы на экран выводится аннотация, пользователь,

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

    меню (с помощью процедуры ShowQuestion), в котором пользователь может

    выбрать интересующий его пункт меню:

    - сбор сведений о ПК;

    - тест памяти;

    - выход.

    Если выбран первый пункт, выполняется процедура ShowSved. Внутри

    данной процедуры реализована очистка экрана, с помощью макроса ClrScr, а

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

    press. После выполнения данной процедуры программа переходит в начало, т.е.

    в меню.

    В случае выбора второго пункта, выполняется процедура TestMem,

    тестирующая оперативную память ПК. Также внутри данной процедуры

    реализованы очистка экрана и задержка перед выходом в меню.

    Если выбран третий пункт, программа, не очищая экран, передает

    управление операционной системе DOS .

    2.3. Описание алгоритма решения задачи

    Если в оперативной памяти ПК имеется 2 в 20 степени ячеек, то для

    ссылок на эти ячейки нужны 20-разрядные адреса; их принято называть

    физическими адресами. Ясно, что при большом объеме памяти большим будет и

    размер физических адресов, а это ведет к увеличению длины команд и к

    увеличению размера программ в целом. Это плохо. Чтобы сократить размеры

    команд, поступают следующим образом.

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

    Начальные адреса сегментов могут быть любыми, но на длину сегментов

    накладывается ограничение: размер любого сегмента не должен превышать 64Кб.

    В этих условиях физический адрес А любой ячейки памяти можно

    представить в виде суммы A=B+ofs, где В – адрес сегмента, а ofs – смещение

    относительно адреса В.

    Таким образом ,если в команде надо указать физический адрес А, то

    адрес сегмента B – “прячем” в так называемый сегментный регистр, а в

    команде указываем лишь этот регистр и слагаемое ofs. Это даёт экономию

    размера команд.

    В связи с этим максимальный объем сегмента равен 64Кб, а минимальный

    равен 16 байтам.

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

    цикл увличивает на еденицу модификационный регистр BP до тех пор, пока BP

    меньше 0A000h (это последний сегмент 640 Кб). Внутри этого цикла реализован

    еще один цикл - он увеличивает на единицу модификационный регистр SI до тех

    пор, пока он меньше 16. Внутри вложенного цикла осуществляется

    непосредственно проверка памяти на неисправные биты: сначала происходит

    проверка на «постоянные единицы» - в сегмент по адресу BP со смещением SI

    записываеться ноль (что в двоичной системе счисления означает восемь

    нулей), затем осуществляется проверка этого значения, т.е. нуля. Если это

    значение равно нулю, значит память исправна, в противном случае - не

    исправна. Затем происходит проверка на «постоянные нули»: по тому же

    адресу записывается число FFh (что в двоичной системе счисления означает

    восемь едениц), затем осущесвляется проверка этого значения. Если значение

    равно FFh, значит память исправна, в противном случае - неисправна.

    2.4. Отладка и тестирование

    Тестирование производилось с помощью отладчика Turbo Debugger

    корпорации Borland. Была выполнена трассировка всей программы. Трассировка

    – это процесс пошагового выполнения команд с листингом состояний всех

    регистров, флагов, сегмента данных на момент выполнения каждой команды.

    В ходе трассировки были обнаружены следующие ошибки:

    неправильное определение состояния математического сопроцессора -

    неправильно указанная маска очистки, так называемого слова «equpment list»,

    получаемого с помощью прерывания 11h;

    “зависание” при вызове процедуры TestMem - ошибка в реализации

    алгоритма теста памяти – неправильно указанная метка перехода во вложенном

    цикле.

    Кроме того, было обнаружено множество ошибок в синтаксисе команд.

    Так как программа писалась на одном компьютере, проверить её на

    правильность определения конфигурации ПК не представлялось возможным,

    поэтому, после завершения программы, она выполнялась на разных ПК с разными

    конфигурациями: в ходе этого теста ошибок обнаруженно не было – все

    аппаратные средства определялись правильно.

    Также невозможно было проверить программу на правильность теста

    памяти на практике, потому что она выполнялась на всех ПК с исправной

    памятью, а попытки найти ПК с заведомо неисправной оперативной памятью не

    увенчались успехом. Тем не менее теоретически тест должен работать

    правильно.

    2.5. Инструкция к пользователю

    Для запуска программы выполните файл с именем «kurs.com». Вашему

    вниманию предоставиться аннотация – внимательно прочитайте её, а затем

    нажмите любую клавишу на клавиатуре (например, enter). Затем на экране

    высветится меню, изображенное на рис. 3.

    | |

    |1 – Сведения о системе |

    |2 - Тест памяти |

    |3 – Выход |

    | |

    |Ваш выбоp ? : |

    рис. 3

    Для того, чтобы получить краткие сведения о вашем ПК - нажмите

    клавишу «1», затем «Enter» на вашей клавиатуре, и на экран высветится

    список устройств с текущем состоянием. Для возврата в меню нажмите любую

    клавишу.

    Для того, чтобы протестировать оперативную память вашего ПК – нажмите

    клавишу, «2» затем «Enter» на вашей клавиатуре, и на экране высветится

    сообщение о состоянии памяти вашего ПК. Для возврата в меню нажмите любую

    клавишу.

    Для того, чтобы выйти из программы - нажмите клавишу «3», затем

    «Enter» на вашей клавиатуре.

    2.6. Заключение о результатах проектируемой задачи

    В ходе выполнения поставленной в курсовом проекте задачи были

    приобретены навыки реализации сложных ассемблерных программ с

    использованием макросов и процедур. Кроме того, был получен огромный опыт и

    умение работы с CMOS (область памяти, где хранятся сведения о конфигурации

    ПК) на низком уровне, т.е. с использованием прерывания BIOS 11h и 70h

    порта, а также опыт использования дополнительных сегментных регистров и

    регистров модификаторов.

    Реализованная программа может быть полезна при диагностике

    оборудования на относително старых моделях ПК, поскольку в программе

    используется система команд 8086 процессора, который был выпущен в 1979 г.

    корпорацией Intel, и сейчас эта модель процессора является устаревшей.

    СПИСОК ЛИТЕРАТУРЫ

    1. В.Н. Пильщиков. Программирование на языке ассемблера IBM PC. – М.:Диалог-

    МИФИ. 1997


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.