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

Московский институт

инженеров железнодорожного транспорта

--------------------------------------------------------------

Кафедра: Автоматизированные системы управления

АППАРАТНО-ПРОГРАММНЫЕ СРЕДСТВА ВВОДА-ВЫВОДА

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

РЕАЛЬНОГО ВРЕМЕНИ

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

систем сбора данных и управления"

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

_

Вместе с этим смотрят:


80386 процессор


Access


Intel


Internet


Internet в России