Xreferat.com » Рефераты по информатике » Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени

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

бит установки режима автоматического запуска АЦП (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).

Поэтому, в данном случае, целесообразно было бы располагать

одной переменной времени, а именно значением

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: