Поиск по базе сайта:
С. П. Королева проектирование измерительных систем на основе Многофункционального устройства нвл-08 icon

С. П. Королева проектирование измерительных систем на основе Многофункционального устройства нвл-08




НазваС. П. Королева проектирование измерительных систем на основе Многофункционального устройства нвл-08
Сторінка1/6
Дата конвертації26.11.2013
Розмір1.04 Mb.
ТипМетодические указания
  1   2   3   4   5   6
1. /ISP DAS 081201.doc
2. /pci express.doc
3. /ris_int07.doc
4. /stup345.pdf
5. /wopint_08.doc
6. /Методичка по НВЛ08_050602.DOC
7. /Методичка по НВЛ08_081024.DOC
8. /Обзор.doc
9. /Парал_интерф/CompactPCI,PC104/Отчет.doc
10. /Парал_интерф/IEEE 1284_2.doc
11. /Парал_интерф/ISA.doc
12. /Парал_интерф/pci/pci-20/1.DOC
13. /Парал_интерф/pci/pci-20/2.DOC
14. /Парал_интерф/pci/pci-20/3.DOC
15. /Парал_интерф/pci/pci-20/4.DOC
16. /Парал_интерф/pci/pci-20/5.DOC
17. /Парал_интерф/pci/pci-20/6.DOC
18. /Парал_интерф/pci/pci-20/7.DOC
19. /Парал_интерф/pci/pci-20/8.DOC
20. /Парал_интерф/pci/pci-20/9.DOC
21. /Парал_интерф/pci/pci-20/CH1-3.DOC
22. /Парал_интерф/Спецификация PX1.doc
23. /Парал_интерф/Стандарт IEEE 1284.doc
24. /Парал_интерф/реферат по интерфейсам.doc
25. /Парал_интерф/хар_парал.инт.doc
26. /Послед_интерф/PCI_EXpr.doc
27. /Послед_интерф/RS485 для чайников.doc
28. /Послед_интерф/USB.doc
29. /Послед_интерф/Wi Fi.doc
30. /Послед_интерф/ПРЕОБРАЗОВАТЕЛИ ИНТЕРФЕЙСА USB.doc
31. /Послед_интерф/Реферат по ИРДА.doc
32. /Послед_интерф/стандарт CAN/Aldis.doc
33. /лит_инт.doc
34. /рб_пр_интерф_07.doc
С. П. Королева архитектура автоматизированных систем на основе модулей icp das серии i-7000
Курсовой проект «Интерфейс pci express»
Мс –модули сети, а адаптер, устройство согласования, цп
Вопросы по курсу "Интерфейсы асоиу" Общие вопросы организации интерфейсов
Проектирование измерительных систем на основе нвл-08
С. П. Королева проектирование измерительных систем на основе Многофункционального устройства нвл-08
Тема номера
Документация по интерфейсам: Compactpci, MicroPC, pc/104, pc/104+ Пояснительная записка к курсовому проекту по курсу "Интерфейсы асоиу"
Интерфейс ieee-1284
Интерфейс isa методические указания к курсу лекций «Интерфейсы автоматизированных систем обработки информации и управления» Самара 2005 Составитель: Иоффе Владислав Германович удк 681. 3 Интерфейс isa
Спецификация локальной шины pci
Реализация Хронология реализации
Реализация 0
Функционирование шины
Электрическая спецификация
Конструктивная спецификация
Руководство по системному проектированию pci, реализация 6, действует с 1 ноября 1992 года. Объединение запросов по техническим изменениям (ecrs)
Реализация 0
Диапазон сигнала Сопутствующие документы
Введение Содержание спецификации
Введение 2 Цель разработки 2 Терминология 3 Полезные ссылки 3 Обзор архитектуры pxi 3
С. П. Королева Стандарт ieee 1284 Подготовили: Есипов С. Б. Громов А. Е. Преподаватель: Иоффе В. Г
Министерство науки, высшей школы и технической политики российской федерации комитет по высшей школе самарский государственный аэрокосмический университет им. С. П. Королева факультет №6 Кафедра
Основные характеристики параллельных интерфейсов
Курсовой проект «Интерфейс pci express»
Ооо "Маяк": разводка печатных плат, разработка электронных систем управления
1. Общая характеристика 5 Структура usb 6
Пояснительная записка к курсовому проекту по дисциплине «Интерфейсы асоиу» на тему: «Интерфейс Wi Fi»
Преобразователи интерфейса usb на микросхемах ft8U232AM, ft8U245AM
Протокол связи IrDA
Протокол был разработан фирмой Robert Bosch GmbН для использования в автомобильной электронике, отличается повышенной помехоустойчивостью, надежностью и обладает следующими возможностями
Литература Основная литература
Федеральное агентство по образованию государственное образовательное учреждение высшего профессионального образования «самарский государственный аэрокосмический университет имени академика С. П. Королева»

Государственное образовательное учреждение

высшего профессионального образования

«Самарский государственный аэрокосмический

университет имени академика С.П.КОРОЛЕВА»


Проектирование

измерительных систем на основе

Многофункционального устройства

НВЛ-08


Самара 2008


ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


Государственное образовательное учреждение

высшего профессионального образования

«Самарский государственный аэрокосмический

университет имени академика С.П.КОРОЛЕВА»


Проектирование

измерительных систем на основе

Многофункционального устройства

НВЛ-08


Утверждено Редакционно-издательским советом университета

в качестве методических указаний


Самара

Издательство СГАУ

2008

УДК 004.451.1(075)


Составители: А.В.Графкин, В.Г.Иоффе, К.Е.Климентьев


Рецензент канд. техн. наук, доц. Л.С.З е л е н к о


Проектирование измерительных систем на основе многофункционального устройства НВЛ-08: метод. указания / сост. А.В.Графкин, В.Г.Иоффе, К.Е.Климентьев. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2008. – 92 с.


Методические указания составлены в соответствии с действующей программой по курсу «Интерфейсы автоматизированных систем обработки информации и управления».

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

Подготовлены на кафедре информационных систем и технологий.


УДК 004.451.1(075)


© Самарский государственный

аэрокосмический университет, 2008



Общие сведения

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

Особенностью промышленных магистрально-модульных систем (ММС) являются повышенные требования к:

  • условиям эксплуатации (расширенный температурный диапазон, воздействие вибраций, пыле- и влагоустойчивость, загазованность и так далее),

  • конструктивной и электрической надежности,

  • времени восстановления,

  • энергопотреблению,

  • габаритам.

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

На основе PCI разработан промышленный интерфейс CompactPCI, а интерфейсы РС 104 и MicroPC поддерживают идеологию ISA.

В настоящее время промышленность выпускает большое количество модулей в стандартах ISA, PC104 и MicroPC.

Следует отметить, что в последних разработках ПЭВМ на материнских платах слоты ISA отсутствуют. Однако они широко распространены в старых ПЭВМ, жизненный цикл которых закончится через 5-6 лет.

Поэтому изучение принципов организации модулей в стандарте ISA до сих пор не потеряло свою актуальность.

Методические указания могут быть полезны при проведении лабораторных работ с использованием устройства НВЛ-08, курсовом и дипломном проектировании.



  1. Многофункциональное устройство НВЛ-08

Основные этапы обработки измерительной информации в автоматизированной системе представлены на рис. 1.

Связь с объектом автоматизации осуществляется с помощью датчиков и исполнительных устройств. Физические величины, характеризующие состояние объекта, преобразуются датчиками в электрический сигнал или изменения параметров R, L, C. Некоторые распространенные типы датчиков перечислены в таблице 1. Формирователи сигналов (нормализаторы) преобразуют эти сигналы к виду и диапазону, соответствующему характеристикам используемого устройства ввода-вывода, которое преобразует аналоговый сигнал к цифровому виду и в случае необходимости выполняет обратное преобразование.





Рис. 1. Основные этапы обработки измерительной информации

Взаимодействие с ПЭВМ выполняется через требуемый тип интерфейса, по которому осуществляется обмен информацией.

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

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

Таблица 1

Распространенные типы датчиков

Физическая величина

Датчик

Температура

Термопара

Резистивный датчик (RTD)

Термистор

Интегральный датчик

Интенсивность света

Фотоумножитель

Фотоэлемент

Звуковое давление

Микрофон

Механическая сила и давление

Тензодатчик

Пьезоэлектрический датчик

Динамометрический датчик

Перемещение

Потенциометр

Линейный датчик на основе дифф. трансформатора (LVDT)

Оптический кодер

Расход жидкости

Манометрический расходомер

Турбинный расходомер

Ультразвуковой расходомер

pH

pH-электроды


Многофункциональное устройство НВЛ-08 выполнено в стандарте ISA и предназначено для работы в составе ПЭВМ типа IBM PC AT.

Устройство НВЛ-08 выполняет следующие функции:

  • аналого-цифровое преобразование;

  • цифро-аналоговое преобразование;

  • цифровой ввод/вывод.



Аналоговый ввод

Разрядность – 12 бит.

Время преобразования АЦП – 4 мкс.

Количество каналов – 8 дифференциальных или 16 потенциальных.

Диапазон входных напряжений (полная шкала) ±5V.

Предельное входное напряжение ±12V.

Время установления устройства выборки-хранения УВХ – не более 3 мкс.

Производительность устройства в составе IBM PC AT – 100000 выборок/c.

Режим запуска АЦП – программный.

Нелинейность – 0,1 %.

Способ ввода информации из АЦП – программный и по прерыванию.


Аналоговый вывод

Разрядность цифро-аналогового преобразователя ЦАП – 12 бит.

Время установления сигнала на выходе ЦАП ≤ 5 мкс.

Количество каналов – 1.

Диапазон выходного напряжения ±5,12V.

Нелинейность – 0,1%.


Цифровой ввод

Количество входных линий – 8 (уровень ТТЛ).


Цифровой вывод

Количество выходных линий – 8 (уровень ТТЛ). Линии обладают повышенной нагрузочной способностью (до 30 мA на линию).


2. СТРУКТУРНАЯ СХЕМА УСТРОЙСТВА

Функционально устройство НВЛ-08 разделяется на блок связи с интерфейсом (БСИ) ISA и функциональный блок (ФБ), объединенные внутренней магистралью.

БСИ выполняет согласование магистрали ISA и внутренней магистрали устройства НВЛ-08. В функции БСИ входит: дешифрация адресов программно доступных регистров устройства и формирование управляющих сигналов для организации взаимодействия ФБ и ПЭВМ. Базовый адрес устройства (200h, 220h, 300h) устанавливается с помощью перемычек (см. рис. 4).

БСИ обеспечивает программный способ ввода-вывода по сигналу готовности и ввод-вывод по прерыванию. Используемые входы запроса прерывания (IRQ4, IRQ5, IRQ6, IRQ10, IRQ11) устанавливаются перемычками, расположенными на плате устройства.

Функциональный блок состоит из:

  • преобразователя аналогового сигнала в цифровой код, состоящего из аналогового мультиплексора (коммутатора), буферного дифференциального усилителя, устройства выборки-хранения, интегрального АЦП, источника опорного напряжения и устройства управления;

  • преобразователя цифрового сигнала в аналоговый, в состав которого входят буферный регистр входного кода, интегральный ЦАП, преобразователь ток-напряжение и источник опорного напряжения;

  • схемы цифрового ввода/вывода, обеспечивающей прием на шину данных ISA и буферизированную передачу цифровых сигналов, разрядностью до 8 бит.

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

Упрощенная структура устройства приведена на рисунке 2, где ДШБА – дешифратор базового адреса устройства, ФСУ – формирователь сигналов управления, ФШД – формирователь шины данных, ТП – триггер прерываний, ДША Рг – дешифратор адреса программно доступных регистров, АЦП – аналого-цифровой преобразователь, РгД АЦП – регистр данных АЦП, УВЗ – устройство временной задержки, УВХ – устройство выборки-хранения, ИДУ – инструментальный дифференциальный усилитель, АМ – аналоговый мультиплексор, РгАМ – регистр адрес мультиплексора, ЦАП – цифро-аналоговый преобразователь, РгЦАП – регистр ЦАП, РгВых – выходной регистр, РгВх – входной регистр, ШД – внутренняя шина данных, Пi – группы перемычек.

Блок связи с интерфейсом состоит из ДШБА, ФСУ, ФШД, ТП, ДША Рг.

Сигналы выборки CS0, CS2, CS4, CS6 программно доступных регистров формируются при выполнении команд ввода-вывода с помощью дешифраторов ДШБА, ДША Рг. Сигнал AEN* формируется контроллером прямого доступа к памяти (ПДП) и блокирует работу модуля, если выполняется режим ПДП. Базовый адрес модуля может быть изменен с помощью перемычек П1.





Формирователи ФСУ, ФШД служат для увеличения нагрузочной способности соответствующих линий интерфейса ISA и защиты магистрали от возможных неисправностей в модуле.

Формирование запроса прерываний выполняет ТП. При включении модуля сигнал RESET сбрасывает выход ТП в нуль. В момент готовности АЦП триггер устанавливается в единицу, формируя фронт сигнала запроса прерываний. Сброс запроса выполняется при чтении РгД АЦП с помощью микросхем DD1, DD2. Установка требуемого вектора осуществляется переключателем П2.

Запуск АЦП выполняется DD3, выходной сигнал которой фиксирует текущее значение входного напряжения в УВХ и с некоторой задержкой начинает цикл преобразования в АЦП поразрядного уравновешивания. В момент окончания цикла преобразования в РгД АЦП фиксируется сигнал готовности (Гот.), сигнал перегрузки (Пер.) и результат измерения.

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

Коммутация каналов выполняется РгАМ и мультиплексорами АМ. Режим работы мультиплексора (потенциальный или дифференциальный) устанавливается при одновременном переключении П3 и П4.

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

Управление цифроаналоговым преобразователем и дискретным вводом-выводом особенностей не имеет и не требует дополнительных пояснений.

Внешние сигналы модуля выведены на разъем пользователя, назначение контактов которого представлено на рисунке 3:

где AIN0..7 и BIN0..7 – входные аналоговые сигналы при дифференциальном включении, BIN0..7 соответствуют сигналам AIN8..15 при одиночном включении, ANOUT – выход цифро-аналогового преобразователя, DIN0..7 – цифровые входы, DOUT0..7 – цифровые выходы, GND – общий провод.




3. ПРОГРАММНАЯ МОДЕЛЬ УСТРОЙСТВА НВЛ-08

Программно устройство НВЛ-08 представляется в виде ряда адресов регистров в адресном пространстве IBM PC AT. Абсолютный адрес каждого регистра НВЛ-08 определяется как сумма базового адреса и смещения. Это позволяет устанавливать НВЛ-08 на любое «свободное» адресное место в IBM PC AT или же устанавливать до трех устройств в одну IBM PC AT. Адреса смещений постоянны.

3.1. Программирование цифрового ввода/вывода

Прием байта из буфера цифрового порта (выводы 11, 12, 13, 14, 15, 16, 17, 18 внешнего разъёма устройства НВЛ-08) осуществляется операцией чтения байта по адресу BASE + 06h, где BASE – базовый адрес (устанавливается при поставке 300h), 06h – смещение. Таким образом, адрес регистра порта цифрового ввода равен 300h + 06h = 306h.

Запись байта в буфер порта цифрового вывода (выводы 29, 30, 31, 32, 33, 34, 35, 36 внешнего разъёма устройства НВЛ-08) осуществляется операцией записи байта по адресу BASE + 06h. Информация в этом буфере будет хранится до следующей операции записи по указанному адресу.


3.2. Программирование ЦАП

Выходное напряжение ЦАП устройства НВЛ-08 при настройке устанавливается таким образом, что максимальный размах напряжений равен ±5,12 В, причем минимальному напряжению –5,12 В соответствует код 0000h, записанный по адресу BASE + 04h (вывод 9 внешнего разъёма устройства НВЛ-08), а напряжению +5,12 В соответствует код 0FFFh, записанный по тому же адресу. Нулевое напряжение на выходе ЦАП должно установиться при записи кода 2047.

Код записывается в регистр ЦАП и хранится там до следующей операции вывода.

При программировании необходимо учитывать, что цифро-аналоговый преобразователь 12-разрядный. Однако регистр ЦАП, через который осуществляется обмен данными, 16-разрядный.


3.3. Программирование АЦП

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

Программное управление мультиплексором осуществляется путем записи в регистр номера канала по адресу BASE + 02h байта с кодом номера канала, напряжение на входе которого необходимо измерить.

В устройстве НВЛ-08 предусмотрен программный режим запуска АЦП. Для этого необходимо записать любое число по адресу BASE + 00h.

Окончание цикла преобразования АЦП может быть зафиксировано тремя способами:

  • Опрос бита готовности (асинхронный способ). Бит готовности фиксируется в 12 разряде регистра АЦП, находящегося по адресу BASE + 00h. Этот разряд после запуска устанавливается в логическую «1», а после окончания цикла преобразования сбрасывается в состояние логического «0».

  • Организация задержки опроса на время преобразования после команды запуска (синхронный способ). Задержка может быть выполнена программно или с помощью системного таймера.

  • По прерыванию. После окончания цикла преобразования АЦП формируется запрос прерывание на одной из следующих линий: IRQ4, IRQ5, IRQ6, IRQ10 или IRQ11. Номер линии прерывания выбирается с помощью перемычки на плате. Запрос на прерывание автоматически сбрасывается при чтении регистра с адресом BASE + 00h.

Действительное значение кода АЦП, соответствующее измеряемому напряжению, формируется в буферном регистре с адресом BASE + 00h в разрядах с 0 по 11.

13 разряд регистра BASE + 00h фиксирует перегрузку по входу. Если 13 разряд равен лог. «1», сигнал во время преобразования превышал входной диапазон АЦП.

Разряды 14 - 15 этого регистра не используются, и их необходимо принудительно обнулять после приема кода АЦП.

Таким образом, 16-разрядный регистр BASE + 00h выполняет функции регистра данных и регистра состояния.


4. КАЛИБРОВКА УСТРОЙСТВА

Устройство имеет четыре органа настройки:

  • смещение АЦП;

  • чувствительность АЦП;

  • смещение ЦАП;

  • размах выходного сигнала ЦАП.

Процедуру калибровки удобно производить, используя тестовую заглушку, распаянную по прилагаемому ниже описанию. В тестовой заглушке нулевой канал АЦП замкнут на общий провод, на канал 1 подается напряжение с внешнего источника (стабилитрон с заранее известным Uст.), на канал 2 подается выход ЦАПа, а на остальные каналы – напряжения от внешнего источника (желательно от батарейки) с использованием делителей.

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

Сначала настраивают смещение АЦП резистором R1 по каналу, замкнутому на общий провод. Затем подстройкой резистора R2 производят калибровку по каналу с известным напряжением. Теперь можно приступить к настройке ЦАП, используя настроенный АЦП.

Резистором R3 устанавливают нулевое напряжение на выходе ЦАП (четвертое число в строке настройки), резистором R4 устанавливают размах выходного напряжения ЦАП ±5,12 В. Расположение регулировочных резисторов указано на рисунке 4.





5. УСТАНОВКА ПЕРЕМЫЧЕК НА УСТРОЙСТВЕ НВЛ-08

С помощью перемычек на устройстве НВЛ-08 производятся следующие переключения:

  • установка базового адреса (при поставке 300h);

  • установка номера прерывания, формируемого после окончания цикла преобразования АЦП (при поставке IRQ5);

  • установка типа входных линий. Переключаются две перемычки одновременно! (при поставке – дифференциальный вход);

  • расположение перемычек указано на рисунке 4.



6. ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ В MS-DOS

Достоинствами программного обеспечения, созданного и используемого в MS-DOS, являются:

  • простота программирования;

  • малое время реакции на внешние события;

  • непосредственный доступ к системным ресурсам, таким как порты ввода-вывода, система обработки прерываний и пр.

К недостаткам следует отнести:

  • однозадачность;

  • отсутствие поддержки современных внешних устройств (PCI-плат, интерфейса USB и пр.);

  • ограниченность адресного пространства размерами 1 Мб.

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

Для быстрого сохранения и использования больших (до 16 Мб) объемов данных можно использовать так называемый «виртуальный диск» (или «электронный диск») - программную модель дискового накопителя, реализованную в ОЗУ ПЭВМ. Функции «виртуального диска» реализуются драйвером RAMDRIVE. Пример оформления конфигурационного файла CONFIG.SYS для создания в расширенной памяти (ключ «/E») «виртуального диска» ёмкостью 4Мб (параметр «4096»), с размером сектора 512 байтов (параметр «512») и возможностью создания до 100 файлов (параметр «100»):

. . .

DEVICE=C:\Windows\EMM386.EXE NOEMS

DEVICE=C:\Windows\RAMDRIVE.SYS 4096 512 100 /E

. . .

Создание и использование "виртуального диска" возможно даже в Windows 95/98/ME (драйвер RAMDRIVE.SYS) и Windows NT/2000/XP (драйвер RAMDISK.SYS).


7. ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ

В MS WINDOWS

Операционные системы MS Windows представляют собой семейство 32-разрядных многозадачных ОС, работающих в защищенном режиме процессоров с архитектурой IA-32. Условно современные версии MS Windows можно разделить на две больших группы:

  • 16/32-разрядные Windows 95/98/ME;

  • полностью 32-разрядные Windows NT/2000/XP/2003.

Главной особенностью всех версий MS Windows является выполнение программ под управлением «виртуальной машины». Каждой программе предоставляется комплекс «виртуальных» системных ресурсов, включая процессорное время, память, порты ввода-вывода, файловую систему, систему обработки прерываний и т.п.


7.1. Доступ к портам ввода-вывода

Ядро Windows поддерживает общую для всех программ так называемую «битовую карту ввода-вывода» (iomap) - массив из 65535 битов, каждый из которых отвечает за отдельный порт ввода-вывода. Если бит установлен в 1 (порт «закрыт»), то при попытке обращения к порту процессором возбуждается исключение «общая ошибка защиты», обрабатываемое операционной системой.

В Windows 95/98/ME при первой попытке обращения к «закрытому» порту производится поиск драйвера виртуального устройства, связанного с данным портом ввода-вывода, и либо передача обработки исключения коду драйвера (порт при этом остается «закрытым»), либо «открытие» порта на свободный доступ со стороны программы. Важно: ни при каких условиях операционной системой не открываются порты, связанные с контроллером ПДП!

В системах класса Windows NT все порты все время «закрыты» и при обращении к ним обязательно происходит исключение. Если в системе присутствует драйвер соответствующего виртуального устройства, то обработчик исключения передает ему управление. Если драйвер отсутствует, то:

  • для 32-битовых приложений обработчик выводит на экран окно с аварийным сообщением;

  • для программ в формате MS-DOS и 16-разрядных приложений Windows обработчик просто возвращает им управление.

Примером драйвера, открывающего доступ пользовательским приложениям к портам, является UserPort.SYS. Выбор данного средства доступа к портам ввода/вывода обусловлен простотой использования.

Для установки необходимо скопировать файл UserPort.SYS (драйвер обеспечивающий доступ приложений к портам) в системную директорию %WINDIR%\SYSTEM32\DRIVERS. После установки необходимо запустить приложение UserPort.exe для настройки портов, к которым открывается доступ. Интерфейс программы настройки портов приведен ниже.

На рисунке показан интерфейс программы, позволяющей открывать доступ пользовательских приложений к портам ввода/вывода. Если базовый адрес устройства НВЛ-08 равен 300h, в левую колонку программы необходимо добавить значения 0x300-0x306. Доступ к указанному диапазону портов открывается после нажатия кнопки «Start» (если драйвер еще не работает) или после нажатия кнопки «Update», если драйвер уже работает.




Рис. 5. Интерфейс программы настройки драйвера


7.2. Доступ к памяти по физическим адресам

В ОС MS Windows реализована сегментно-страничная адресация оперативной памяти. Каждой прикладной программе предоставляется виртуальное адресное пространство размером до 4Гб, составленное из отдельных «лоскутков» ОЗУ и дисковой памяти. Структуры виртуальных адресных пространств в разных версиях Windows изображены на рисунке 6.

В Windows 95/98/ME только физические адреса с 00000 по FFFFFh отображаются на аналогичные линейные адреса.

Непосредственный доступ к содержимому ячеек оперативной памяти по их физическим адресам для остальных регионов в Windows 95/98/ME и абсолютно для всех регионов в Windows NT/2000/XP/2003 для приложений 3-го кольца защиты невозможен.





Рис. 6. Адресные пространства задач в различных версиях Windows: а – Windows 95/98/ME; б – Windows NT/2000/XP/2003


7.3. Обработка прерываний

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

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


Таблица 2

Некоторые исключения, обрабатываемые в Windows

Прерывание/Исключение

Описание

0

Ошибка деления на 0

1

Прерывание пошаговой трассировки

3

Отладочное прерывание при выполнении INT3

6

Недопустимая команда

8

Двойная ошибка

0Bh

Попытка обращения к отсутствующему сегменту

0Dh

Общая ошибка защиты

20h

Используется в Windows 95/98/ME для передачи управления из 3 в 0 кольцо защиты

2Eh

Используется в Windows NT/2000 для передачи управления из 3 в 0 кольцо защиты

30h-3Fh

Аппаратные прерывания IRQ0-IRQ15



7.4. «Универсальные» драйверы

Большинство проблем, связанных с необходимостью непосредственного доступа к системным ресурсам ПЭВМ в Windows, могут быть решены с использованием так называемых «универсальных» (generic) драйверов, реализующих типовые операции доступа к портам ввода-вывода и адресам физической памяти, обработки аппаратных прерываний. Примеры: DriverX (Tetradyne Software) и TvicHW (Виктор Ижикеев). Рассмотрим работу с комплектом TvicHW. В комплекте поставляются три файла:

  • tvichw32.vxd - драйвер для работы под Windows 95/98/ME, должен быть расположен в директории C:\Windows\SYSTEM;

  • tvichw32.sys - драйвер для работы под Windows NT/2000, должен быть расположен в C:\WinNT\SYSTEM32\Drivers;

  • tvichw32.dll - динамически загружаемая библиотека, обеспечивающая удобство вызова функций драйверов из практически любого языка программирования, должна находиться в C:\Windows\SYSTEM или в рабочем каталоге прикладной программы. Интерфейс для языка C/C++ обеспечивается заголовочным файлом tvichw32.h, интерфейс для Delphi-программ описан в файле tviclib.pas, для Visual Basic - в tviclib.bas.

Прежде чем использовать любую из функций TvicHW, необходимо загрузить и открыть драйвер при помощи функции OpenTVicHW32(). Делать это нужно один раз после старта приложения и закрыть драйвер перед завершением приложения. Общая схема работы с TVicHW:


Реализация в Object Pascal (Delphi):

VAR HW32 : THandle;

. . .

HW32:=0;

HW32 = OpenTVicHW32( HW32, "TVICHW32","TVicDevice0");

IF GetActiveHW(HW32)<>0 then begin

. . .

(* Работа с функциями TVcHW32 *)

. . .

HW32 = CloseTVicHW32(HW32);

End;


Для того, чтобы получить доступ к памяти, заданной ее физическим адресом, необходимо отобразить этот физический адрес на пространство линейных адресов текущего процесса. TVicHW содержит функцию MapPhysToLinear(), которая решает эту задачу и возвращает обычный указатель на область памяти, заданную ее физическим адресом и размером. После того, как этот указатель станет ненужным, отменить отображение можно (и нужно!) при помощи функции UnmapMemory().


Реализация в Object Pascal (Delphi):

(* Получение указателя на область BIOS *)

var pBios : PChar;

. . .

pBios = Pchar(MapPhysToLinear (HW32,$F0000,256));

. . .

UnmapMemory(HW32, $F8000, 256);


Доступ к портам ввода-вывода осуществляется при помощи следующих функций:

  • BYTE GetPortByte(THANDLE HW32; LONGINT wPortAddress);

  • SMALLINT GetPortWord(THANDLE HW32; LONGINT wPortAddress);

  • LONGINT GetPortLong(THANDLE HW32; LONGINT wPortAddress);

  • SetPortByte(THANDLE HW32; LONGINT wPortAddress; BYTE bData);

  • SetPortWord(THANDLE HW32; LONGINT wPortAddress; SMALLINT wData);

  • SetPortLong(THANDLE HW32; LONGINT wPortAddress; LONGINT lData).

Функция UnmaskIRQ() позволяет указать номер прерывания и установить программу-обработчик этого прерывания. Для прекращения обработки прерываний необходимо вызвать функцию MaskIRQ(). Схема работы:


Реализация в Object Pascal (Delphi):

Var IrqNumber : SMALLINT; IrqCounter : LONGINT;


{Обработчик прерывания}

MyInterruptTHandler( SMALLINT IrqNumber )

Begin

. . .

INC(IrqCounter);

End;

. . .

IrqNumber:=10; {Номер прерывания}

IrqCounter:=0; {Счетчик произошедших прерываний}

UnmaskIRQ(HW32, IrqNumber, @MyInterruptTHandler);



MaskIRQ(HW32, 10);


Важно:

  1. под всеми версиями Windows нельзя обрабатывать IRQ0 (системный таймер);

  2. под Windows NT/2000 нельзя обрабатывать прерывание от RTC (часы реального времени).



  1   2   3   4   5   6




Схожі:




База даних захищена авторським правом ©lib.exdat.com
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації