Программирование периферийный устройств компьютера

Иллюстрированный самоучитель по Assembler

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

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

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

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

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

Читайте также:  Программирование предметом изучения есть

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

Как уже отмечалось в гл. 1, связь с аппаратными средствами самого компьютера, а также с подключаемыми к нему устройствами осуществляется главным образом через адресное пространство ввода-вывода. Это значит, что за каждым устройством закрепляется один или, чаще, несколько портов, и программирование устройства осуществляется исключительно с помощью команд in и out (а также ins и cuts, если программируемое устройство может посылать данные потоком).

В простейшем случае программирование устройства сводится к выполнению единственной команды in в случае чтения из устройства, или out в случае записи в него. Рассмотрим, например, процедуры маскирования и размаскирования аппаратных прерываний. В каждом из двух контроллеров прерываний, включаемых в состав компьютера, имеется регистр маски (рис. 3.10). Значение 0 в бите маски разрешает прохождение сигнала прерывания, значение 1 запрещает. Пройдя через маску и через последующие узлы контроллера прерываний (не показанные на рис. 3.10), сигнал прерываний поступает на вход INT микропроцессора. Программирование регистров маски осуществляется через порт 21h для ведущего контроллера и A1h для ведомого.

Читайте также:  Чем характеризуется адаптивная верстка

Исходное значение маски устанавливается программами начальной загрузки компьютера в зависимости от конфигурации вычислительной системы. Типичным является значение A8h, показанное на рис. 3.10. При этом значении маски размаскированными оказываются системный таймер, клавиатура, мышь, подключенная к первому последовательному порту СОМ1, гибкий диск, а также выход от ведомого контроллера, подключаемый ко входу IRQ2 ведущего. Замаскированы оба параллельного порта (принтер, подключаемый к порту LPT1, обычно не использует прерываний, а второй параллельный порт часто просто отсутствует) и второй последовательный порт, к которому ничего не подключено. Другими словами, размаскировано все нужное, и замаскировано все ненужное.

Иллюстрированный самоучитель по Assembler › Команды и алгоритмы › Программирование аппаратных средств

Рис. 3.10. Регистр маски ведущего контроллера прерываний.

Источник

Программирование электронных устройств

Тольяттинского государственного университета А.А. Шевцов.

ГГлибин Е.С., Прядилов А.В.Программирование электронных устройств: учеб. пособие / Е.С. Глибин, А.В. Прядилов. – Тольятти : Изд-во ТГУ, 2012. – 104 с.

В учебном пособии рассматривается программирование электронных схем на базе микропроцессоров: устройств вывода информации (дисплеи и принтеры), ввода информации (клавиатуры, мыши), сетевых коммуникаций, многоядерных и многопроцессорных систем, USB интерфейса. Приведен как теоретический материал, так и примеры программ с подробным разбором их работы.

Учебное пособие предназначено для студентов вузов, обучающихся по направлению подготовки бакалавров и дипломированных специалистов «Электроника и наноэлектроника» при изучении ими дисциплины «Программирование электронных устройств».

Рекомендовано к изданию научно-методическим советом Тольяттинского государственного университета.

© ФГБОУ ВПО «Тольяттинский государственный университет», 2012

1 Рекомендации по изучению дисциплины 5

2 Программирование электронных устройств 8

2.1 Управляемые событиями программы 8

2.2 Визуализация цифровых данных 23

2.2.1 Вывод графической информации на дисплей 23

1.6.1Вывод графической информации на принтер 34

1.7Организация интерфейса пользователя 42

2.4 Сетевое программирование 50

2.4.1 Сетевые модели, протоколы и архитектура «клиент – сервер» 50

1.7.1Windows Sockets 57

1.8Основы технологии параллельных вычислений 84

3.6Основы разработки и программирования простейших USB-устройств 97

Цель данного пособия – помочь в изучении дисциплины «Программирование электронных устройств». Настоящее пособие предназначено для студентов всех отделений. В учебном пособии приведены начальные сведения о программировании периферийных устройств персонального компьютера, сетевых интерфейсов, многопроцессорных систем,usb-устройств на уровне взаимодействия программы с операционной системой.

Структурно пособие состоит из следующих разделов:

  1. введения;
  2. рекомендаций по изучению дисциплины;
  3. основного теоретического материала;
  4. заключения.
  1. управляемые событиями программы;
  2. программирование периферийных устройств ввода и вывода информации на примерах клавиатуры, мыши, дисплея и принтера;
  3. интерфейс пользователя;
  4. сетевые модели и протоколы, взаимодействие «клиент – сервер»;
  5. использование интерфейса Беркли (BSD-интерфейса) для программирования сетевых интерфейсов;
  6. многопроцессорные системы и многоядерные процессоры;
  7. USB– интерфейс.

Источник

Оцените статью