Алгоритм - Учебный центр
Заполните форму ниже! Мы вам перезвоним!

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


Программный инструмент. Принципы управления внешними устройствами ПК.

Программный инструмент. Принципы управления внешними устройствами ПК.

Многие квалифицированные специалисты по ремонту компьютерной техники относятся к написанию специальных программ с "большой осторожностью". Одни из них считают написание программ очень сложным, а другие - ненужным делом. И те, и другие неправы: во-первых, научиться писать небольшие специальные программы несложно, а во-вторых, отказываться от такого мощного и эффективного инструмента просто неразумно и расточительно. С помощью специальных программ обычную системную плату можно превратить в универсальный стенд для диагностирования и ремонта большинства узлов и устройств компьютера. Умение программировать дает возможность создавать "инструментальные" программные средства, заменяющие аппаратные тестеры, используемые для контроля и диагностики устройств. Стоимость аппаратных тестеров достаточно высока, а их номенклатура невелика. Модификация и их приспособление к конкретному устройству - это сложное и дорогостоящее удовольствие. Разработанные "инструментальные" программные средства, в отличие от аппаратных тестеров, легко модифицируются и приспосабливаются для работы с любым устройством. Программным путем можно задать в устройстве любой необходимый для контроля режим работы, удобно и эффективно осуществлять контроль процессов осциллографом.

Главная функция микропроцессора — это выполнение заданного для него набора команд:

- выполняя последовательность команд (т. е. Программу) он вычисляет, управляет внешними устройствами, рассчитывает зарплату и т. п. , он может выполнять и бессмысленную последовательность своих команд - ему все равно — он автомат (принцип программного управления — мы пишем программу — он исполняет);

- для реализации Главной функции процессор выполняет целый ряд аппаратных функций: формирует адреса для выборки последовательности команд, инициирует на Системном интерфейсе операцию «Чтение команды» и др.; 

Главная внешняя функция микропроцессора - это инициирование операций обмена на системном интерфейсе. Выбирая команды, выполняя большинство команд, выполняя аппаратную функцию прерывания процессор инициирует на системном интерфейсе операции обмена: «Чтение команды», «Чтение данных из памяти», «Запись данных в память», «Чтение порта», «Запись в порт», «Чтение дескриптора» и др.

Операцию обмена «Чтение порта» - процессор инициирует выполняя свою команду IN AL,DX — чтение порта, а «Запись в порт» - отрабатывая свою команду OUT DX,AL — запись в порт.

Выполняя, например, команду сложения ADD [1000], BX процессор два раза обратится в ОЗУ: первый раз — для чтения второго слагаемого (из ячейки с адресом 1000), а второй раз - для записи результата сложения содержимого регистра BX со вторым слагаемым (по адресу 1000).

В операциях обмена с одной стороны всегда участвует один из регистров процессора, а с другой стороны - ячейка оперативной памяти (DRAM или ПЗУ BIOS), или регистр контроллера внешнего устройства, или регистр чипсета и других микросхем (исключение — обмен по «прямому доступу»).

А что есть у процессора для управления внешними устройствами (устройствами ввода, вывода, устройствами внешней памяти)? Есть всего две команды: IN и OUT («чтение порта» и «запись в порт»), и есть аппаратная функция «прерывание» (без которой он в принципе может обойтись). Есть еще две команды — INS, OUTS (без которых он в принципе тоже может обойтись).

А что вообще доступно процессору во «внешней среде»? Ему доступны регистры контроллеров внешних устройств (например, видеоадаптера, принтера и др.), регистры чипсета и других микросхем, ячейки оперативной памяти (DRAM или ПЗУ BIOS) для чтения и записи.

Внешние устройства подключаются к локальным шинам системного интерфейса через контроллеры (каждый контроллер имеет свой набор команд, которые он обязан выполнять по отношению к своему внешнему устройству). После «начального сброса» контроллер ждет, что процессор перешлет в его соответствующие регистры команду и информацию необходимую для выполнения операции обмена. Непосредственное управление внешним устройством процессор осуществляет выполняя операции записи и чтения (по командам IN и OUT) по отношению к соответствующим регистрам контроллера этого внешнего устройства. Как минимум, любой контроллер должен иметь хотя бы три доступных процессору регистра:

- регистр данных;

- регистр управления (регистр команд);

- регистр состояния.

«Сложные» контроллеры могут иметь значительно большее число регистров, и каждый из этих регистров имеет свое функциональное назначение: регистр ошибок, регистр номера головки, регистр номера цилиндра и т. д.. Например, контроллер принтера (параллельный порт) имеет три регистра, а видеоадаптер имеет свыше 60 регистров (каждый из которых имеет свое функциональное назначение, отдельные разряды и группы разрядов регистров тоже имеют свое функциональное назначение), уже поэтому управление видеоадаптером на уровне регистров реализуется очень сложно. Эту проблему для нас решают программы BIOS видеосистемы, которые «знают» как управлять на уровне регистров и команд контроллеров. Каждая такая программа BIOS реализует свою элементарную функцию управления, например видеосистемой:

  • INT 10h, функция 00h - Установка видеорежима;

  • INT 10h, функция 02h - Установка позиции курсора;

  • INT 10h, функция 09h - Запись символа и атрибута в позицию курсора;

  • INT 10h, функция 0Сh - Запись пиксела;

  • и т. д..

«Прерывание» по команде INT 10h передает управление программе обслуживания BIOSa видеосистемы, которая по номеру функции (02h, 09h, 0Ch...) запускает соответствующую программу BIOS на исполнение. Используя программы BIOS можно достаточно просто создавать программы для диагностики даже видеосистемы и создавать условия для исследования процессов осциллографом и т. д.

Примеры по ФУНКЦИЯМ BIOS видеосистемы.

1. Справочные данные по функциям BIOS

INT 10h, функция 00h. Установка видеорежима.

Устанавливает текущий видеорежим. При вызове (в регистры процессора нужно занести):

AH=00h

АL= видеорежим, например:

03h - текстовый, 80х25 строк, 16 цветов

10h - графический, 640х350 точек,16 цветов

04h - графический, 320х200 точек, 4 цвета (видеоадаптер CGA)

. . . и выполнить INT 10h

INT 10h, функция 02h. Установка позиции курсора.

Задает положение курсора на экране в текстовых координатах на указанной текстовой странице(в том числе

не активной). При вызове:

AH = 02h

ВН = страница

DН = строка

DL = столбец . . . и выполнить INT 10h

INT 10h, функция 09h. Запись символа и атрибута в позицию курсора.

Записывает символ и его атрибут в текущую позицию курсора как в графическом, так и в текстовом режимах.

В графическом режиме символы не должны переходить на следующую строку. Все коды в AL рассматриваются, как знаки и не управляют положением курсора. После вывода символа курсор следует сместить к следующей позиции функцией 02h. Коэффициент повторения позволяет выводить строки одинаковых символов (но курсор не смещается). В текстовом режиме символ выводится с указанным атрибутом, т.е. заданного цвета на заданном фоне. В графическом режиме содержимое BL влияет только на цвет символа, но не фона под ним. Однако графическое изображение под знакоместом затирается. При вызове:

AH=09h

AL=cимвoл

ВН = страница

ВL = атрибут (текстовый режим) или цвет(графический режим)

СХ = коэффициент повторения . . . и выполнить INT 10h

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

Структура байта атрибутов

В биты 0...2 байта атрибутов записывается код цвета символа, а бит 3 при исходной настройке видеоадаптера, действующей по умолчанию, управляет яркостью символа. Таким образом, каждый символ независимо от других может принимать любой из 16 возможных цветов. Соответствие кодов, записываемых в байте атрибута, конкретным цветам составляет палитру видеосистемы. Палитра устанавливается программно, по умолчанию действует назначение кодов приведенное в таблице:

INT 10h, функция 0Сh. Запись пиксела.

Записывает в видеобуфер точку заданного цвета в заданной графической позиции.

При вызове:

AH=0Ch

AL-цвет (номер цветового регистра)

ВН - страница

СХ=графический столбец

DX=графическая строка . . . и выполнить INT 10h

 

 

 

 

 

 


Лицензия