Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени

Московский институт
инженеров железнодорожного транспорта
—————————————————————
Кафедра Автоматизированные системы управления

АППАРАТНО-ПРОГРАММНЫЕ СРЕДСТВА ВВОДА-ВЫВОДА
АНАЛОГОВОЙ ИНФОРМАЦИИ В СИСТЕМАХ РЕАЛЬНОГО
РЕАЛЬНОГО ВРЕМЕНИ

Методические указания Аппаратно-программные средства
систем сбора данных и управления»

М О С К В А 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 с.

«