Реферат: Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени
Название: Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени Раздел: Рефераты по информатике Тип: реферат |
Московский институт инженеров железнодорожного транспорта -------------------------------------------------------------- Кафедра: Автоматизированные системы управления АППАРАТНО-ПРОГРАММНЫЕ СРЕДСТВА ВВОДА-ВЫВОДА АНАЛОГОВОЙ ИНФОРМАЦИИ В СИСТЕМАХ РЕАЛЬНОГО РЕАЛЬНОГО ВРЕМЕНИ Методические указания "Аппаратно-программные средства систем сбора данных и управления" М О С К В А 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=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 с. _ |