Реферат: Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени
Реферат: Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени
Московский институт
инженеров железнодорожного транспорта
--------------------------------------------------------------
Кафедра: Автоматизированные системы управления
АППАРАТНО-ПРОГРАММНЫЕ СРЕДСТВА ВВОДА-ВЫВОДА
АНАЛОГОВОЙ ИНФОРМАЦИИ В СИСТЕМАХ РЕАЛЬНОГО
РЕАЛЬНОГО ВРЕМЕНИ
Методические указания "Аппаратно-программные
средства
систем сбора данных и управления"
М О С К В А 1 9 9 2 г.
.
СОДЕРЖАНИЕ
1. ВВЕДЕНИЕ...........................................
2. ХАРАКТЕРИСТИКА КОНТРОЛЛЕРА ВВОДА-ВЫВОДА АНАЛОГОВОЙ
ИНФОРМАЦИИ.........................................
2.1. Назначение и устройство контроллера...........
2.2. Организация управления работой АЦП и ЦАП......
3. СРЕДСТВА ПРОГРАММИРОВАНИЯ ВВОДА-ВЫВОДА АНАЛОГОВОЙ
ИНФОРМАЦИИ.........................................
4. СРЕДСТВА ИЗМЕРЕНИЯ ВРЕМЕНИ В ПЭВМ..................
4.1. Назначение и функции таймера ПЭВМ.............
4.2. Программные средства для измерения времени....
5. Контрольные вопросы...........................
6. СПИСОК ЛИТЕРАТУРЫ..................................
.
1.ВВЕДЕНИЕ
При решении задач автоматизации контроля и
управления техни-
ческими системами как правило возникает необходимость
сбора и об-
работки информации,представленной в виде аналоговых
электрических
сигналов.Источником информации при этом служат первичные
преобра-
зователи (датчики) ,преобразующие физические параметры
системы в
электрический сигнал.При этом часто требуется,чтобы и
управляющее
воздействие было представленно в аналоговой форме.
Решение такого рода задач основано на использовании
аналого-
цифровых (АЦП) и цифро-аналоговых (ЦАП)
преобразователей. Требо-
вания,предъявленные к выбору средств аналогового
ввода-выво-
да,обусловлены,с одной стороны,характеристиками объекта
контро-
ля(количество и частотный спектр измеряемых
параметров),а с дру-
гой стороны - необходимостью обеспечить совместимость
(информаци-
онную,электрическую,конструктивную), с управляющей ЭВМ.
В настоящее время применяют два варианта подключения
аналого-
вых устройств к ЭВМ.
-непосредственно к системной магистрали ЭВМ;
-с использованием промежуточного контроллера с
выходом на
стандартный интерфейс (типа КАМАК,МЭК и т.п.)
В данной работе используются встроенный контроллер
ввода-выво-
да аналоговой информации pro411B в составе
IBM-совместимой ПЭВМ
"МАЗОВИЯ".
2. ХАРАКТЕРИСТИКА КОНТРОЛЛЕРА ВВОДА-ВЫВОДА АНАЛОГОВОЙ
ИНФОРМАЦИИ pro411B.
2.1.Назначение и устройство контроллера.
Контроллер pro411B реализован в виде платы для
компьютеров
класса IBM PC XT/AT и предназначен для ввода-вывода
аналоговых
сигналов с использованием АЦП и ЦАП.Плата контроллера
размещается
внутри системного блока ПЭВМ, занимая один из свободных
разьёмов
расширения, предназначенных специально для установки
дополнитель-
ного оборудования ПЭВМ. При этом обеспечиваются основные
требова-
ния по конструктивной, электрической и информационной
совмести-
мости контроллера с системной магистралью компьютера.Для
подключе-
ния приёмников и источников аналоговых электрических
сигналов
контроллер имеет специальный стандартизированный разъём,
вынесен-
ный на заднюю панель системного блока.
Структурная схема контроллера pro411B приведена на
рис.1.
.
-------¬
¦
+-----T-------------------------------------------- ШУпр
¦ЦП/ОП
+-----¦---------------T---------------------------- ШАдр
¦
+-----¦---------------¦-----------------T---------- ШДан
L------- ¦ ¦ ¦
--------- ¦ ¦
¦ ¦ ¦
-----¦-----------------------¦-----------------¦--------------¬
¦----+---¬
--------------+-----------------+------------¬ ¦
¦¦ +-----+ ДшА ¦
¦
¦¦
+-----+ ¦ ¦
¦¦ ¦
L-----T----------T----------T----------T------ ¦
¦¦ ¦ ¦
¦ ¦ ¦ ¦
¦¦ ¦
------¦----------¦----------¦----------¦-----¬ ¦
¦¦
+-----+-----+----¬-----+----¬-----+----¬-----+----¬¦ ¦
¦¦ ¦ ¦¦ P0 ¦¦ P1
¦¦ P2 ¦¦ P3 ¦¦ ¦
¦¦
+-----+L----------L----------L----------L----------¦ ¦
¦¦ ¦
L--------T-T-------------T---------------T---- ¦
¦¦ ¦ ¦ ¦
¦ ¦ ¦
¦¦
+--------T-----¦-¦------T------¦-------¬ ¦ ¦
¦¦ БУ
+--------+-T---¦-¦------+-T----¦-------+-¬ ¦ ¦
¦¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦
¦¦ ¦
---+-+---+-+--¬---+-+----+---¬---+-+-----+--¬ ¦
¦¦ ¦ ¦
¦¦ ¦¦ ¦ ¦
¦¦ ¦ ¦ АЦП ¦¦ ЦАП ¦¦ Таймер ¦ ¦
¦¦ ¦ ¦ ¦¦ ¦¦
¦ ¦
¦¦ ¦
L------T-------L------T-------L-------------- ¦
¦¦ ¦ ¦
¦ ¦
¦¦ ¦ -------+------¬
¦ ¦
¦¦ +-----+ Коммутатор ¦ ¦ ¦
¦¦ +-----+ каналов ¦ ¦
pro411B ¦
¦L-------- LT-T-T-------T-
¦ ¦
L---------------¦-¦-¦-------¦--------¦-------------------------
¦ ¦ ¦ ¦ ¦
0 1 2 15 Вых
Рис. 1. Структурная схема контроллера pro411B
.
Блок управления(БУ) предназначен для организации
взаимодействия
контроллера с системной магисталью ПЭВМ и обеспечивает
согласо-
ванную работу всех его элементов. Системная магистраль
подключена
непосредственно к центральному процессору(ЦП) и
оперативной памя-
ти (ОП) компьютера и состоит из трёх групп линий
параллельной пе-
редачи:управления, адреса и данных. Связь с контроллером
pro411B
осуществляется в асинхронном режиме и всегда только по
инициативе
ЦП.
Особую роль для организации обмена данными с
процессором игра-
ют специальные регистры контроллера, называемые портами
ввода-вы-
вода. Каждый порт ввода-вывода имеет уникальный адрес.
Процессор
располагает специальными средствами, позволяющими по
известному
адресу(ПЭВМ обеспечивает возможность адресовать до 65535
портов),
обращаться к любому порту ввода-вывода для чтения или
записи дан-
ных. Контроллер pro411B имеет 4 однобайтных порта P0-P3 с
адреса-
ми 300H-303H. Адреса соответствующих портов pro411B
могут быть
изменены при помощи специальных переключателей,
расположенных на
плате.
Таким образом, чтобы передать или получить информацию
от уст-
ройства, прцессор в соответствующих линиях магистрали
формирует
управляющий сигнал(чтение или запись), устанавливает
адрес требу-
емоего порта и(в случае записи) посылает данные.
Дешифратор ад-
реса порта(ДшА) контроллера определяет, с каким из
портов затре-
бована связь, а блок управления реализует операцию
чтения данных
из магистрали в порт или выдаёт данные из порта в
магистраль.
С портами ввода-вывода связаны функциональные блоки
контролле-
ра: АЦП,ЦАП,таймер и коммутатор каналов. Коммутатор
каналов
обеспечивает возможность подключения к АЦП нескольких
источников
аналоговых сигналов. Таймер предназначен для настройки
АЦП на тре-
буемую частоту опроса, поддерживая режим автоматического
запуска
через заданный прмежуток времени( от 18мкс до 65мс).
Блок АЦП контроллера pro411B обеспечивает
преобразование нап-
ряжение-код методом последовательной аппроксимации и
характеризу-
ется следующими параметрами:
- разрядность кода:12 бит;
- диапазон входного напряжения: -10..+10 В;
- время преобразования: 15 мкс;
- число коммутируемых каналов: 16.
Блок АЦП реализует режим работы с автоматическим
переключением
каналов, а также предоставляет возможность призводить
как внеш-
ний (программный), так и внутренний (автоматический)
запуск через
заданный интервал времени.
Блок ЦАП контроллера имеет следующие характеристики:
- разрядность кода: 12 бит;
- диапазон выходного напряжения: -10..+10 В;
- время стабилизации выходного напряжения: 500 нс;
- скорость нарастания выходного напряжения: 0.5 В/мкс;
- количество выходов: 1.
.
2.2 Организация управления работой АЦП и ЦАП
Как отмечалось выше, связь ЦП ЭВМ с контроллером
pro411B
организуется путём обмена данными с портами ввода-вывода,
име-
ющими адреса 300H-303H.При этом ЦП является активной
стороной
и имеет возможность в произвольные моменты времени
выполнять
операции чтения данных из любого порта или записи
данных в
порт. Каждый из портов предназначен для обмена
информацией
строго определённого назначения и формата. Более того,
один и
тот же порт может использоваться для данных различного
типа в
зависимости от того, какая операция (чтение или запись)
выпол-
няется.В таблице 1 дано описание функций, реализуемых
путём
записи или чтения портов ввода-вывода контроллера
pro411B.
Таблица
1
Назначение портов ввода-вывода контроллера
pro411B
------T--------T-----------------------T-------------------------¬
¦АДРЕС¦ОПЕРАЦИЯ¦ ФОРМАТ ¦
НАЗНАЧЕНИЕ ¦
¦ПОРТА¦
+--T--T--T--T--T--T--T--+ ¦
¦ ¦ ¦ 7¦ 6¦ 5¦ 4¦ 3¦ 2¦ 1¦
0¦ ¦
+-----+--------+--+--+--+--+--+--+--+--+-------------------------+
¦ ¦ запись ¦b7¦b6¦b5¦b4¦b3¦b2¦b1¦b0¦Младшие 8 бит
кода ЦАП ¦
¦300H
+--------+--+--+--+--+--+--+--+--+-------------------------+
¦ ¦ чтение
¦a7¦a6¦a5¦a4¦a3¦a2¦a1¦a0¦Младшие 8 бит кода АЦП ¦
+-----+--------+--+--+--+--+--+--+--+--+-------------------------+
¦ ¦ запись ¦c3¦c2¦c1¦c0¦b ¦b ¦b9¦b8¦Старшие 4 бита
кода ЦАП ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦и номер канала
АЦП ¦
¦301H
+--------+--+--+--+--+--+--+--+--+-------------------------+
¦ ¦ чтение ¦c3¦c2¦c1¦c0¦a ¦a ¦a9¦a8¦Старшие 4 бита
кода АЦП ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦и номер канала
АЦП ¦
+-----+--------+--+--+--+--+--+--+--+--+-------------------------+
¦ ¦ запись ¦ X¦ X¦ Z¦ D¦t3¦t2¦t1¦t0¦Установка режимов
АЦП ¦
¦302H
+--------+--+--+--+--+--+--+--+--+-------------------------+
¦ ¦ чтение ¦ X¦ X¦ X¦ X¦ X¦ E¦ R¦ X¦Признаки
формирования ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦кода
АЦП ¦
+-----+--------+--+--+--+--+--+--+--+--+-------------------------+
¦303H ¦ запись ¦произвольное значение ¦Запуск АЦП на
измерения ¦
L-----+--------+--+--+--+--+--+--+--+--+--------------------------
В таблице испоьзованы следующие обозначения:
а11...а0 - биты кода измеренного напряжения на входе
АЦП
(0-4095);
b11...b0 - биты кода устанавливаемого напряжения на
выходе
ЦАП (0-4095);
с3...с0 - номер канала АЦП (0-15);
t3...t0 - номер эадаваемой временной задержки между
запус-
ками АЦП в автоматическом режиме(0-15);
D - бит установки режима автоматического запуска АЦП
(D=1);
Z - бит установки режима автоматического
декрементирования
номера канала АЦП (Z=1);
R - бит признака готовности кода АЦП к считыванию
(R=1 -
преобразование закончено, данные готовы к
считыванию);
E - бит признака ошибки набегания (E=1 -сформирован
новый
код АЦП при невостребованном старом);
X - неиспользуемые разряды (устанавливаются в 0).
.
3. СРЕДСТВА ПРОГРАММИРОВАНИЯ ВВОДА-ВЫВОДА АНАЛОГОВОЙ
ИНФОРМАЦИИ
Программное управление работой контроллера
аналогового уст-
ройства осуществляется с использованием операций
чтения/записи
применительно к портам ввода-вывода.
На языке ТурбоПаскаль для обращения к портам
применяется спе-
циальная языковая конструкция
Port[<адрес_порта>:word],обладающая
всеми свойствами массива значений типа
byte,индексируемого по ад-
ресу порта в пределах 0..65535 (в десятичной системе) или
O..FFFF (в шестнадцатиричной). Ниже приведён пример
использования
конструкции Port:
var x,y:byte;
var a:word;
begin
a:=$300;
x:=Port[a]; {чтение из
порта с адресом a}
y:=1;
Port[$303]:=y {запись в порт с адресом 303H}
Port[$302]:=32+16 {
end;
4. СРЕДСТВА ИЗМЕРЕНИЯ ВРЕМЕНИ В ПЭВМ
4.1.Назначение и функции таймера ПЭВМ
Для контроля текущего времени и измерения временных
интервалов
ПЭВМ имеет специальное устройство, называемое
таймером[4]. Таймер
состоит из трёх идентичных независимых блоков, называемых
канала-
ми. Канал 0 используется непосредственно для организации
подсчёта
текущего времени, а также для синхронизации дисковых
операций.
Канал 1 управляет процессом регенерации оперативной
памяти. Канал
2 используется для генерации звуковых сигналов.
Вход каждого канала таймера связан с генератором
тактовых им-
пульсов ПЭВМ, при этом частота импульсов, подаваемых на
вход тай-
мера Fвх постоянна и равна 1193180 Гц для всех типов ПЭВМ
IBM. На
выходе канала таймера также формируется
последовательность им-
пульсов,частота которой Fвых зависит от значения D,
записанного в
специальный 16-разрядный регистр "задержки"
канала в соответствии
с выражением:
Fвых = Fвх/D
Таким образом таймер осуществляет
"деление" входной тактовой
частоты, реализуемое при помощи счётчика тактовых
импульсов. Пер-
воначально в регистр счётчика помещается число D,
которое затем
уменьшается на единицу каждый раз, когда импульс от
тактового ге-
нератора пропускается через канал. Когда значение
счётчика дости-
гает нуля, канал таймера изменяет уровень выходного
сигнала на
противоположный и вновь загружает в счётчик число D,
после чего
процесс повторяется.
Настройка каналов таймера на требуемую выходную
частоту осу-
ществляется программным путём при обращении к
специальным портам
таймера(40H-42H).Обычно настройка производится
автоматически при
загрузке операционной системы, для чего имеются
специальные про-
цедуры базовой системы ввода-вывода (BIOS) ПЭВМ. При
этом в ре-
гистр задвижки канала 0, используемого для подсчёта
текущего вре-
мени, записывается число D=65535(FFFFH), обеспечивающее
значение
выходной частоты Fвых = 18.2 Гц.
Следует отметить, что таймер работает независимо от
ЦП, оказы-
вая, в то же время, постоянное воздействие на ЦП через
систему
аппаратных прерываний. Механизм прерываний лежит в
основе метода
подсчета текущего времени, используемого в ПЭВМ. Метод
иллюстри-
руется схемой, приведённой на рис.2.
.
-------------¬
¦ Генератор ¦
¦ тактовых ¦
¦ импульсов ¦
L-----T-------
¦
¦ Fвх=119380 Гц
¦
------+------¬
¦ Таймер ¦
¦ (канал 0) ¦
L-----T-------
¦
¦ Fвых=18.2 Гц
¦
------+------¬
¦ Контроллер ¦
¦ прерываний ¦
L-----T-------
¦
¦ IRQ 0
¦
------+------¬
¦ Центральный¦
¦ процессор ¦
L-----T-------
¦
¦ INT 8
¦
------+------¬
¦ Программа ¦
¦ обработки ¦
¦ прерывания ¦
¦ INT8 ¦
L-----T-------
¦
¦
¦
------+------¬
¦СчТB=СчТB+1 ¦
L-------------
Рис.2. Последовательность операций при подсчете
текущего
времени
.
Импульсы с выхода канала 0 таймера поступают на
контроллер
прерываний ПЭВМ, который вырабатывает сигналы прерывания
с кодом
IRQ0,соответствующим прерыванию от таймера. Прерывания
возникают
18.2 раза в секунду, т.е. приблизительно каждые 55мс. ЦП,
получив
прерывание, приостанавливает работу и передаёт
управление специ-
альной программе обработки прерывания от таймера INT8
в BIOS.
Программа обработки увеличивает на 1 значение 4-байтового
счётчи-
ка текущего времени(СчТВ), хранящегося в памяти
по адресу
0040Н:006CН.
Анализируя содержимое счётчика в различные моменты
времени,
можно измерять временные интервалы и определять текущее
время су-
ток.Например, если известны значения СчТВ n1 и n2,
полученные в
моменты t1 и t2, то величину интервала dt=t2-t1 можно
вычислить
по формуле:
dt=(n2 - n1)/18.2 (3.1)
Обычно при загрузке операционной системы СчТВ
обнуляется (ска-
занное относится к ПЭВМ типа XT, не имеющим часов
реального
времeни с автономным источником питания), что
соответствует уста-
новке текущего времени 0час 0мин 0.0сек или, как принято
обозна-
чать в DOS: 00:00:00.00. Максимальное значение, которое
может со-
держать счетчик, соответствует 23:59:59.99 и равно
((23*60+59)*60+59)*18.2+99=1573039
Любое значение СчТВ в интервале 0..1573039 может
интерпретироваться
как текущее время суток после выполнения соответствующих
арифмети-
ческих преобразований, для чего имеются необходимые
программные
средства как в DOS, так и в системах программирования
(см. п.
4.2).Следует отметить, что программа обработки прерывания
от тай-
мера INT8 обеспечивает автоматический сброс значения
СчТВ в ноль
при достижении максимального значения.
4.2.Программные средства для работы с таймером ПВЭМ
Программное прерывание DOS INT21H содержит две
функции,
обеспечивающие чтение и установку текущего времени суток
и выпол-
няющие необходимые преобразования между значениями СчТВ
и часа-
ми-минутами-секундами. Время выдаётся с точностью до
0.01 секун-
ды, но поскольку счётчик времени обновляется с частотой
в 5 раз
меньше, то показание сотых долей секунды весьма
приблизительное.
Функция 2CH выдаёт, а функция 2DH -устанавливает время.
В обоих
случаях используются одни и те же регистры процессора:
AH - номер функции;
CH - часы(от 0 до 23);
CL - минуты(от 0 до 59);
DH - секунды(от 0 до 59);
DL - сотые доли секунды(от 0 до 99).
Функция установки текущего времени производит
запись в СчТВ
числа, соответствующего заданным значениям параметров
CH...DL.
Язык командного процессора MS DOS содержит встроенную
команду
time, обеспечивающую чтение и установку текущего времени
суток в
диалоговом режиме с использованием формата DOS.В ПЭВМ, не
имеющих
часов с автономным питанием, рекомендуется выполнять
команду time
перед началом каждого сеанса работы.
Системы программирования на языках высокого
уровня(Паскаль,
Бейсик, Си) содержат собственные процедуры чтения и
установки те-
кущего времени и, кроме того, содержат дополнительные
возможности
по измерению времени.
В системе Турбо Паскаль 5.5 для установки и чтения
текущего
времени предназначены процедуры SetTime и GetTime модуля
DOS:
SetTime(var
Hour,Minute,Second,Sec100:word)
GetTime(var
Hour,Minute,Second,Sec100:word),
где Hour -часы,
Minute -минуты, Second -секунды, Sec100 -сотые
доли секунды.
Рассмотренные выше программные средства можно
использовать
для измерения временных интервалов. При этом, однако,
если
нужно оценить интервал в несколько секунд, потребуется
отсле-
живать изменение сразу трeх переменных
(Hour,Minute,Second).
Поэтому, в данном случае, целесообразно было бы
располагать
одной переменной времени, а именно значением СчТВ. В
Турбо
Паскале имеется возможность непосредственно прочитать
содержи-
мое СчТВ из памяти с использованием конструкции MemL.
Напри-
мер:
var TimeCount:
longint;
. . .
TimeCount:=MemL[$0040 : $006C];
В этом случае оценка временных интервалов сводится к
простому
расчeту по формуле (3.1).
5. Контрольные вопросы
1. Назовите основные функциональные блоки контроллера
pro411B.
2. Каковы режимы функционирования АЦП?
3. Что такое цикл опроса, и от каких факторов зависит
его деятельность?
4. Что такое ошибка набегания?
5. Каким образом определяется готовность АЦП к
считыванию кода преобразованного напряжения?
6. Объясните используемый принцип управления работ ЦАП.
7. От каких факторов зависит быстродействие программы
вывода данных через ЦАП?
8. Каков механизм организации контроля текущего времени
в ПЭВМ?
9. Назовите способы определения длительности временных
интервалов в ПЭВМ. Каково точность измерения?
6. Список литературы.
1. Краус М., Кучбах Э., Вошми О. Г. Сбор данных в
управляющих вычислительных системах: М.: Мир, 1987.-294 с.
2. Блок 12-битного АЦП для компьютеров IBM PC XT/AT:
-Научно-производственное предприятие proТЕСТ: Варшава, 1990.
3. Микропроцессоры: в 3 кн. Кн. 25 средства сопряжения.
Контролирующие и информационно-управляющие системы:/ В. Д. Вернер, И. В.
Воробьёв, А. В. Горячев и др.; под ред Л. Н. Преснухина.-Мн. Выш. шк. ;1987
-303 с.
4. Джордайн Р. Справочник программиста персональных
компьютеров типа IBM PC XT/AT: - М. Финансы и статистика, 1991 - 544 с.
_
|