Градуировочная характеристика датчика
ЛАБОРАТОРНЫЕ РАБОТЫ № 3, 4
Тема лабораторной работы: Ввод данных с аналоговых и дискретных датчиков и выдача аналоговых управляющих воздействий.
Цель работы: изучить режимы опроса дискретных и аналоговых датчиков; ознакомиться с устройствами, преобразующими аналоговую информацию в цифровую и обратно; рассмотреть программные средства ввода информации от датчиков в разных режимах и выдачи аналоговых управляющих воздействий.
Теоретические положения
Для ввода аналоговой информации в компьютерную систему используются аналого-цифровые преобразователи (АЦП). Это устройство характеризуется:
- временем преобразования входного аналогового сигнала в двоичный код;
- диапазоном входного аналогового сигнала;
- разрядностью выходного двоичного кода.
Первая характеристика влияет на то, что входной непрерывный сигнал преобразуется в последовательность дискретных отсчетов в определенные моменты времени. Вторая и третья характеристики влияют на точность преоб-разования, которая в числовом выражении равна весу младшего разряда АЦП.
Дискретизация сигнала по времени
ГТ
ЗП
ЗП – запуск АЦП – сигнал, по фронту ( или спаду) которого значение на входе фиксируется в запоминающем устройстве (устройство выборки/хранения) и начинается его преобразование в двоичный код;
ГТ – готовность – сигнал, который информирует о том, что преобразования завершены и двоичный код на выходе АЦП соответствует аналоговому зна-чению на входе в момент поступления сигнала ЗП. Таким образом, существует интервал от момента поступления сигнала запуска до момента появления сигнала готовности (время, требуемое для преобразования и зависящее от типа АЦП и количества значащих единиц в результирующем коде).
Квантование по уровню.
Предположим, что аналоговый сигнал на входе АЦП меняется от 0 до 3В, а АЦП имеет следующие параметры:
- разрядность равна 10-ти;
- допустимый диапазон входного сигнала 0 – 5В.
Необходимо определить какой двоичный код на выходе АЦП соответствует входному сигналу 2В. Возможное количество комбинаций на выходе 210 = 1024. Комбинации могут меняться от 0 до 1023. Точность преобразования АЦП, а значит и вес одного двоичного разряда равен
0,0048828125 В/бит
Точность преобразования означает, что изменение входного сигнала на величину, меньшую 0,0048828125В никак не повлияет на изменение двоичного кода на выходе АЦП.
Для определения двоичного кода на выходе АЦП, соответствующего входному аналоговому сигналу 2В необходимо:
2В/0,0048828125 = 409,610 = 1100110012
Принцип работы цифро-аналогового преобразователя аналогичен АЦП. Отличие заключается только в том, что для ввода аналоговой информации от нескольких аналоговых датчиков необходимо к АЦП добавлять коммутатор, который переключает входной сигнал с одного датчика на другой, а при выдаче управляющего аналогового сигнала на несколько исполнительных механизмов необходимо использовать соответствующее количество ЦАП.
Градуировочная характеристика датчика
Под градуировочной характеристикой датчика понимается зависимость выходного сигнала датчика (напряжение или ток) от изменения измеряемого параметра. Как правило, это линейная характеристика. В случае нелинейности градуировочной характеристики можно с достаточной точностью свести ее к линейной на небольшом интервале изменения входного параметра.
ТоС U, T
U
Uв Тн –нижняя граница измерения
Tв Т Тв –верхняя граница измерения
Tн U=k*T+Uн; k=tg
Uн
Тн – Тв определяет интервал измерения параметра датчиком.
Uн – Uв определяет интервал изменения выходного сигнала датчика (возможно после усиления).
Рассмотрим следующий пример:
Дана емкость с жидкостью, которая нагревается до температуры 52 градуса с помощью газовой горелки. Когда требуемая температура достигнута, в емкость необходимо долить катализатор до уровня, фиксируемого датчиком уровня, для этого открывается клапан 1. Нагрев продолжается до температуры 67 градусов, после чего жидкость сливается. Слив жидкости контролируется вторым датчиком уровня. Когда жидкость слита клапан 2 необходимо закрыть. Для управления горелкой необходимо подать напряжение 56 В, управление клапанами, производится подачей на двигатель напряжения в соответствии с графиком:
Закрытие – обратный процесс.
Температура жидкости измеряется тремя датчиками, режим опроса которых:
- сначала первый в течении 3 мин;
- затем второй и третий, пока не достигнута температура 52 градуса;
- опрашиваются все три датчика в цикле.
Параметры датчиков:
- диапазон измеряемого параметра 0 ¸ 100 градусов С.
- диапазон выходного сигнала 0.2 ¸ 3.4 В;
- интервал опроса – 10 сек.
Параметры используемого АЦП: 12 бит, диапазон преобразуемого аналогового сигнала -5 В ¸5 В.
Параметры ЦАП: 10 бит, диапазон 0 ¸ 12 В; время преобразования 20 мс.
Дана процедура TIMER формирования временной задержки в 10 мсек.
Структурная схема интерфейса связи объекта с ЭВМ приведена ниже:
М – мультиплексор;
ШД – шина данных;
ША – шина адреса;
ШУ – шина управления;
Рг – регистр;
РгУ – регистр управления;
ДшА – дешифратор адреса;
Г – горелка;
К1, К2 – клапана;
ДТ1, ДТ2, ДТ3 – датчики температуры;
ДУ1, ДУ2 – датчики уровня;
INT – вход прерывания;
300h – адрес входного регистра:
биты 0-11 – цифровой код с АЦП;
бит 15 – сигнал готовности АЦП;
302h – адрес выходного регистра:
биты 0-9 – цифровой код на ЦАПы;
304h – адрес регистра управления;
биты 0, 1 – адрес датчика температуры;
бит 2 – сигнал запуска АЦП;
биты 3, 4 и 5 – сигнал запуска ЦАП1, ЦАП2 и ЦАП3 соответственно.
Градуировочная характеристика датчика
3,4
0,2
0 100
Фрагмент программы опроса датчика в режиме опроса по флагу:
Met3: mov ax, 0000h
mov dx, 304h Подают на мультиплексор 0 и запускают АЦП
out dx, ax
or ax, 4
out dx, ax
mov dx, 300h
Met1: in ax, dx опрос порта 300 в режиме опроса по флагу
test ax, 8000h
jz met1
and ax, 0FFFh ; выделение информационных разрядов
mov t1ax
Пример программы выдачи управляющего воздействия:
V – двоичный код соответствующий управляющему сигналу на исполняющий механизм, который был получен в результате анализа входной информации.
mov ax, v
mov dx, 302h
mov dx, ax
or ax,8h ;запуск ЦАП
out dx, ax
Временная задержка на 20 мс.
Система прерываний
В общем случае систему прерываний можно представить совокупностью программных и аппаратных средств, которые реализуют механизм прерывания.
К аппаратным средствам относятся:
1. Выводы микропроцессора; INTR – входной сигнал прерывания. Этот сигнал формируется специальной микросхемой контроллера прерываний 8259А. INTA – выходной сигнал подтверждения прерывания. Поступает на одноименный вход микросхемы 8259А.
2. Микросхема программируемого контролера прерываний
3. внешнее устройство (таймер, клавиатура, датчики).
К программным средствам относятся:
1. Таблица векторов прерываний.
2. Флаг IF – регистра флагов микропроцессора, который предназначен для маскирования внешних прерываний. Если 0 – прерывания запрещены, если 1 – разрешены.
Структура программируемого контроллера прерываний к шине данных микропроцессора.
D0 D7
…………..
ПРОГРАММИРУЕМЫЙ
КП
IRQ7 ………………..IRQ0 INTA INT
INT соединяется со входом INTR МП.
ПКП формирует прерывание от 8 источников.
ПКП имеет 2 состояния:
· Состояние настройки (программирование);
· Состояние работы (обычное состояние).
ПКП, в котором производится обычная фиксация запросов на прерывания (установка в единицу соответствующего бита IRR) и формирования управляющих сигналов для МП.
Рассмотрим назначение основных структурных компонентов контроллера:
1. регистр IRR – это 8ми разрядный регистр, который фиксирует поступление сигнала на один из входов (т.е. устанавливает единицу в соответствующий разряд регистра).
2. регистр IMR (маскирования) – 8ми разрядный регистр, с помощью которого можно запретить обработку запроса на прерывание, поступающего на соответствующий вход регистра IRR. Для запрета прерывания соответствующий бит регистра IMR устанавливают в единицу. Эта операция осуществляется путем программирования порта 21h.
3. регистр ISM – это 8ми разрядный регистр, который указывает какое прерывание в данный момент обрабатывается.
4. арбитр приоритета – элемент, который разрешает конфликты при одновременном поступлении на входы IRR нескольких прерываний (максимум 8). Наивысший приоритет IRQ0.
5. блок управления – организует обмен информацией между контроллером прерываний и микропроцессором через шину данных.
Рассмотрим прохождение и обработку прерывания от некоторого внешнего устройства, которое поступает на вход IRQ0.
После появления этого сигнала прерывания нулевой бит IRR устанавливается в единицу. Если нулевой бит регистра IMR равен нулю, то этот сигнал поступает к арбитру приоритета. Если нет конфликта приоритета, то сигнал поступает на схему управления ПКП, который формирует сигнал на выход INT и на микропроцессор. При поступлении сигнала на вход INTR микропроцессор:
1. Анализирует флаг IF – регистра флагов (флаг разрешения внешних прерываний). Если флаг IF равен 1, прерывания разрешены (установка флага IF в единицу – команда STI, а сброс флага – CLI).
2. Если прерывания запрещены, то сигнал зависает на входе INTR до момента установки флага IF в единицу.
3. Если прерывания разрешены, то процессор формирует сигнал подтверждения прерывания, которое поступает на вход INTA контроллера. По сигналу разрешения прерывания контроллер сбрасывает нулевой бит регистра ISR и с помощью блока управления формирует адрес вектора прерывания (по формуле: №прерывания*4+8).
(базовый адрес контроллера прерывания)
Теперь процессор выполняет программную реализацию обработки прерывания.
Процессор сохраняет в стеке значение CS и IP, тем самым сохраняется адрес прерванной команды, кроме этого в стеке сохраняется регистр флагов. После этого флаг IF сбрасывается в ноль. По адресу вектора прерывания извлекается 4 байта: младших 2 байта загружаются в IP, а старшие 2 байта – в регистр CS, тем самым осуществляется переход к программе обработки прерываний.
Программа обработки прерываний обязательно должна завершатся командой IRET – выход из прерывания. При этом происходит восстановление из стека регистра флагов, IP и CS.
Ниже приводится пример программы опроса датчика в режиме прерывания. В качестве сигнала прерывания используется сигнал готовности АЦП, который подается на вход IPQ2 ПКП.
Dat proc near
mov dx, 300h
in ax, dx процедура обработки прерывания
and ax, 0FFFh
iret
endp dat
Start: mov ax, seg dat адрес сегмента
mov 0000:0012h, ax
mov ax, offset dat
mov 0000:0010h, ax
mov ax, 0000h
mov dx, 301h
out dx, ax
or ax, 8000h
out dx, ax
met1:jmp met1 ожидание прерывания
mov t, ax результат прерывания
mov ax, 2000h установка коммутатора на следующий канал
mov dx, 301h
out dx, ax
or ax, 8000h
out dx, ax
met2:jmp met2
mov p, ax