Главная » Все файлы » Просмотр файлов из архивов » Документы » Уч. пособие к лабораторной работе Программирование системных устройств

Уч. пособие к лабораторной работе Программирование системных устройств

2017-06-18СтудИзба

Описание файла

Документ из архива "Уч. пособие к лабораторной работе Программирование системных устройств", который расположен в категории "". Всё это находится в предмете "теория и проектирование алгоритмов цос" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "теория и проектирование алгоритмов цос" в общих файлах.

Онлайн просмотр документа "Уч. пособие к лабораторной работе Программирование системных устройств"

Текст из документа "Уч. пособие к лабораторной работе Программирование системных устройств"

Цель работы – изучение архитектуры системных устройств персонального компьютера и приемов их программирования на языке ассемблера.

 

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

           внутренней организации системных устройств ПК,

           методов программирования системных и периферийных устройств ПК,

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

 

Функциональные узлы системной платы

IBM PC-совместимого компьютера

 

Системная плата персонального компьютера соответствующего платформе IBM PC традиционно содержит ряд функциональных уз­лов, которые с самого начала имели подробное открытое описание и в дальнейшем обязательно воспроизводились всеми изготовителями системных плат, поскольку использовались огромным количеством системных и прикладных программ. В первых моделях IBM PC эти узлы реализовывались на отдельных микросхемах. В настоящее время большинство их функций интегрированы в БИС набора микросхем (чипсета) системной платы. Среди этих узлов основными являются следующие.

 

         Схемы предоставления системных ресурсов — памяти, ввода-вывода, прерываний, прямого доступа к памяти.

         Микросхемы ROM BIOS с программным кодом начального тестирования, запуска и функций ввода-вывода.

         Системный таймер, реализованный на микросхемах 8253 или 8254, использовавшийся как генератор запросов регенерации памяти, интервальный таймер и тональный генератор для динамика.

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

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

         Последовательный интерфейс клавиатуры, реализуемый с помощью микроконтроллера 8042.

         Память конфигурации и часы-календарь — CMOS RTC (real-time clock).

 

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

 

Системный порт

Восьмибитный системный порт с адресом 61h выполняет следующие функции:

         управление звуком, сохранившее полную совместимость с XT;

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

Старшие 4 бита порта допускают только чтение (R), младшие 4 бита — чте­ние и запись (R/W).

Назначение бит системного порта AT (061h):

бит 7 R (только чтение) — РСК — ошибка четности ОЗУ или сигнал SERR# [1] на шине PCI;

бит 6 R — IOCHK — ошибка контроля на шине ISA (сигнал 10СНК#);

бит 5 R — Т20 — выход 2 счетчика 8254;

бит 4 R — RFD — регенерация памяти;

бит 3 R/W (чтение/запись) — EIC — разрешение контроля шины ISA;

бит 2 R/W — ERP — разрешение контроля ОЗУ и сигнала SERR# шины PCI;

бит 1 R/W — SPK — управление звуком;

бит 0 R/W - T2G - вход GATE 2 счетчика 8254.

 

Системный таймер (8253/8254)

Во всех моделях PC используется трехканальный счетчик-таймер, выполняю­щий следующие функции:

         генерацию прерываний от системных часов, вызывающих инкремент счетчика системного времени в ячейке 40:006Е BIOS Data Area (области данных BIOS);

         генерацию запросов на регенерацию памяти;

         генерацию звуковых сигналов.

 

В качестве счетчиков-таймеров в XT применялась микросхема i8253, а в AT — более быстродействующая i8254, которая с процессорами 80286 могла работать без тактов ожидания. На современных системных платах те же функции берет на себя чипсет, сохраняя программную совместимость с 8253/8254. Микросхемы 8253 и 8254 представляют собой трехканальные программируемые счетчики-таймеры (рис. 1) с независимыми входами CLK – вход счетных импульсов и GATE – вход разрешения счета и выходом OUT, изменяющим состояние по окончании счета

[1] Символ # в конце обозначения сигнала или вывода микросхемы означает, что активным значением этого сигнала является логический «0»

Внутренние счетчики микросхемы имеют разрядность 16 бит, но общение с ними возможно только 8-битными операциями. При этом можно задавать значение только младшего байта счетчика (LSB - least significant bit), только старшего (MSB - most significant bit) или обоих (LSB/MSB), причем сначала передается младший, а потом старший байт. Программирование микросхемы осуществляется записью байт в управляющий регистр по отдельности для каждого канала. Назначение регистров счетчиков-таймеров приведено в таблице 1. Все каналы работают в режиме генерации импульсов, в канале 2 используется управляющий вход GATE, высокий уровень которого разрешает счет (формирование выходного сигнала, см. ниже). Счет для каналов 0 и 1 разрешен постоянно. Входная частота для всех каналов 1,19318 МГц.

Таблица 1 Регистры счетчиков-таймеров

Порт, R/W

Назначение

Параметры

040 RW

Счетчик 0 — системные часы

Генерация IRQO каждые 54,936 мс — частота 18,206 Гц.

Режим 011, LSB/MSB, Binary, константа счетчика=0 (соответствует коэффициенту деления 65536)

041 RW

Счетчик 1 — регенерация памяти

DRQO для XT, логика регенерации — для AT.

Режим 010, LSB, Binary, константа счетчика -12h (18)

042 RW

Счетчик 2 — генератор звука.

Вход GATE от бита 0 порта В 8255 (061).

Режим 011, LSB/MSB, Binary, значение счетчика определяет высоту тона

043 W

Управляющий регистр

Биты 7, 6 — выбор счетчика 0, 1,2.

Биты 5, 4 — режим обращения:

00 — защелка текущего значения,

01 — LSB — только младший байт,

10 — MSB — только старший байт,

11 — LSB/MSB — сначала младший, затем старший байты.

Биты 3-1 — режим счетчика:

000 — прерывание по счетчику,

001 — ждущий мультивибратор (одновибратор),

х10 — генератор коротких импульсов заданной частоты,

x11 — генератор меандра,

100 — счетчик событий с разрешением,

101 — счетчик событий с перезапуском.

Бит 0 — режим счета

0 = Binary (двоичный счет),

1 = BCD — (двоично-десятичный счет)

 

 

Канал управления звуком (PC Speaker)

Cтандартный канал управления звуком PC Speaker рассчитан на подключение высокоомного малогабаритного динамика. Логическая схема канала приведена на рис. 2. Звук формируется из тонального сигнала от второго канала таймера, работой которого можно программно управлять. Частоту сигнала (тон) можно изменять, программируя коэффициент деления счетчика. Кроме того, разрешая/запрещая формирование сигнала программно-управляемым битом 1 системного порта 61h, можно подавать сигналы определенной длительности. Такой способ формирования звука мало загружает даже процессор 8086/88 и позволяет исполнять незамысловатые мелодии, причем и в фоновом режиме, посылая команды из очереди по прерываниям от системного таймера. А с учетом физиологии слуха (инерционности восприятия) быстрым переключением частот можно достигать эффекта псевдомногоголооия. Таймер генерирует выходной сигнал при высоком уровне на входе GATE2 (при единичном значении бита 0 порта 61h). При низком уровне на входе GATE2 таймер формирует высокий уровень на выходе.

Рис. 1. Канал управления звуком

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

 

 

Порядок выполнения лабораторной работы

1. Внимательно изучите исходный код процедуры sound по первому листингу, приведенному в приложении. Просмотрите текст других подпрограмм и общую структуру модуля в файле «sound.asm».

 

2. По табл.1 проверьте правильность задания байта, записываемого в управляющий регистр (порт 43h) счетчика-таймера:

используемый счетчик – 210 = (10)2

режим обращения – запись двух байт младшего и старшего – (11)2

режим работы – генерация меандра – (011)2

режим счета – двоичный (0)2

 

3. Найдите шестнадцатеричный код частоты системного генератора 1193180 Гц. Подставьте два старших байта этого в команду задания старших байт делимого (регистр dx), а два младших байта – в команду задания младших байт делимого (регистр ax). Деление этого числа на заданную частоту звучания, передаваемую через регистр di, обеспечит определение периода генерируемого меандра на выходе счетчика.

 

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

..\tasm\tasm.exe /l %1.asm

..\tasm\utilites\tlink %1.obj

%1.exe

В приведенной записи этого файла полагалось, что папка (каталог) с файлами турбо ассемблера и папка с вашими рабочими файлами расположены на одной в одной и той же папке верхнего уровня, а папка utilites с программой компоновщиком tlink.exeвложена в папку tasm. Для обработки исходной программы запустите командный файл непосредственно в сеансе DOS или с помощью файлового менеджера (Norton Commander, Volkov Commader, FAR Commander):

talr имявашейпрограммыбезрасширения

 

5. Запишите время выполнения программы, выведенное на дисплей. Если в течение времени выполнения программы системное время перешло границу минут и выведенное число секунд неправдоподобно велико, запустите готовую программу на выполнение еще раз. Добейтесь чтобы время выполнения программы (время звучания звукового сигнала), составило 10 с +/- 0.1 с. Для этого в тело цикла создающего требуемую задержку вставьте необходимое количество команд JCXZ $+2 (переход на адрес следующей команды, если содержимое регистра CX равно 0, т.е. безусловный переход на следующую команду). Эта команда обычно используется для формирования задержки, поскольку ее выполнение требует 9 тактов процессора 8086, что больше чем у большинства других, а сама команда занимает в памяти всего два байта.

Добившись приближенного к 10 с времени звучания сигнала (в пределах 8 – 13 с), найдите точное значение количества повторений цикла задержки. Требуемое значение находится из пропорции

__Tзв__

30000

=

_ 10 _ ,

X

где Tзв – фактическое время звучания,

X – требуемое число повторений цикла.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5280
Авторов
на СтудИзбе
419
Средний доход
с одного платного файла
Обучение Подробнее