![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Программирование контроллера ПДП⇐ ПредыдущаяСтр 26 из 26
Контроллер ПДП является программируемым устройством. Перед началом работы МПС должно быть выполнено его программирование — путем записи данных в соответствующие регистры контроллера задается его режим работы (а также режимы работы отдельных каналов). В процессе программирования должны быть заданы следующие параметры: 1. Режим передачи для каждого канала – одиночная, блочная, передача по требованию. 2. Приоритет для каждого канала, схема изменения приоритетов (если они заданы не жестко). 3. Направление передачи данных для каждого канала (ЗУ 4. Адрес ячейки ЗУ, с которой будет вестись обмен (для каждого канала). УСО для ввода данных без преобразования Такие УСО могут использоваться для ввода данных с внешнего устройства, которое предоставляет данные в цифровой форме — в виде двоичного кода. Примером такого устройства может служить цифровой датчик (например, положения). УСО такого типа могут применяться также при вводе информации в параллельном формате с ЭВМ верхнего уровня. Рассмотрим задачу проектирования УСО и сопряжения УСО с объектом управления применительно к данному случаю. Объект управления представлен цифровым датчиком и УСО должно обеспечить ввод данных с него в МПС через магистраль. Таким образом, с одной стороны мы имеем цифровой датчик, предоставляющий данные в параллельном двоичном коде, с другой стороны — магистраль МПС (рис. 1).
Рис. 1. Так как ввод любых данных в МПС осуществляется по шине данных (ШД), мы должны соединить выходные линии датчика с шиной данных. Но соединить их напрямую мы не можем, так как в этом случае информация, передаваемая датчиком, будет находиться на шине данных постоянно. И обмен с другими устройствами будет невозможен. Следовательно, датчик необходимо соединить с ШД с помощью устройства, которое бы подключало датчик к ШД только на время цикла ввода информации с него. Для этой цели может быть использован рассмотренный нами ранее буферный регистр (БР) (рис. 2).
Рис. 2. В данном случае БР играет роль усилителя с возможностью отключения от шины данных. Следовательно, на вход STB должен быть подан сигнал логической "1", обеспечивающий работу БР в режиме усилителя. Вход OE будет использоваться для подключения БР (и датчика) к ШД в цикле чтения. БР должен подключаться к ШД при следующих условиях: · Выполняется цикл обмена по чтению из внешнего устройства (управляющая линия IOR в активном состоянии — логического "0"). · Цикл обмена выполняется именно с данным датчиком. Так как любое внешнее устройство, подключенное к МПС, должно иметь уникальный адрес, необходимо проанализировать адресную информацию (сигналы на линиях адреса). И если установленный на шине адрес соответствует адресу рассматриваемого ВУ (датчика), БР должен быть подключен к шине данных. Для анализа адресной информации используется дешифратор (рис. 3).
Рис. 3. В приведенной схеме УСО используется дешифратор с двумя входами, на которые подаются сигналы двух младших адресных линий. Следовательно, линия CS будет активизирована при передаче адреса, у которого младшие разряды будут иметь значение "00" (старшие разряды адреса в данной схеме не анализируются и могут иметь любые значения). Использование логического элемента "ИЛИ" позволяет формировать сигнал OE на входе буферного регистра только если оба сигнала — CS и IOR находятся в активном состоянии — логического "0". Таким образом, схема УСО, представленная на рис. 3 позволяет решить поставленную задачу — подключение цифрового датчика к шине данных только на время выполнения обмена с ним (с установкой соответствующего ему адреса на шине адреса). Временная диаграмма изменения сигналов в УСО представлена на рис. 4.
Рис. 4. Из временной диаграммы видно, что данные на шине данных появляются только после установки на шине адреса соответствующего адреса и активизации сигнала IOR Задача подключения цифрового датчика может быть решена также с использованием программируемого параллельного интерфейса (ППИ, параллельного порта). Схема УСО для этого случая представлена на рис. 5.
Рис. 5. Схема во многом аналогична предыдущей. Так как ППИ имеет в своем составе несколько портов ввода-вывода, при вводе данных через него необходимо указать, с каким конкретно портом идет работа (т.е. к какому порту подключено интересующее нас устройство — в данном случае цифровой датчик). Для этого используются входы А0, А1, которые соединены непосредственно с двумя младшими линиями шины адреса. Следовательно, два младших разряда адреса в данном случае определяют номер нужного порта внутри ППИ. Два следующих разряда адреса (А2, А3) используются для выбора конкретной микросхемы ППИ — через дешифратор они соединены со входом CS ППИ. Параллельный интерфейс будет подключен к ШД только если на вход CS подан активный сигнал логического "0", а это произойдет только при А2=А3=0. Таким образом, если предположить, что датчик подключен к порту A ППИ, для выбора которого необходимо А1=А2=0, то для чтения данных с датчика через ППИ на шине адреса должно быть установлено значение "0000" — четыре младшие разряда нулевые. Значения старших разрядов не имеют значения, так как никак не используются в данной схеме. Временная диаграмма изменения сигналов в УСО рис. 5. представлена на рис. 6.
Рис. 6. Рассмотрим теперь ситуацию, когда разрядность данных, получаемых с датчика, больше 8. Так как порты ввода-вывода и буферные регистры обычно являются восьмиразрядными, для ввода данных большей разрядности необходимо использовать несколько портов (буферных регистров). Например, при вводе данных с 16-разрядного датчика положения, в схеме на рис. 5 линии восьми младших разрядов должны быть подключены к одному порту ППИ (например, порту А), линии восьми старших разрядов — к другому (например, порту В). Ввод данных с датчика будет осуществляться в два приема — сначала считывание младшего байта из порта А, затем старшего — из порта В. В соответствии со схемой подключения на рис. 5. порт А ППИ имеет адрес 0000h, порт В — 0001h. В таком случае ввод данных осуществляется следующей последовательностью команд МП Intel 8086: Значение, введенное с датчика, помещается в результате в регистр BX. Рассмотрим процесс ввода во временной области. Для ввода данных в данном случае необходимо выполнить два цикла обмена. Каждый цикл занимает определенное время (несколько тактов синхронизации процессора). Между циклами имеется некоторый промежуток за счет выполнения команды сохранения введенного значения в регистре BL. Таким образом, между моментами ввода в МП младшего и старшего байтов существует интервал времени
Рис. 7. В течение этого интервала времени, значение, поступающее с датчика, может измениться. Например, в момент ввода младшего байта имелось значение 00FFh (младший байт — FFh, старший байт — 00h). Ввели младший байт (FFh). Затем, в течение интервала
Рис. 8. Младшие и старшие восемь линий, идущие с датчика, подключены через соответствующие буферные регистры к портам А и В ППИ. Буферные регистры работают в режиме усилителей с возможностью фиксации данных по заднему срезу сигнала STB. Для формирования строба на линии STB используется линия 0 порта С ППИ. При установке младшего разряда порта С в "1" сигнал на линии STB переходит из "0" в "1" (начало строба), при сбросе младшего разряда порта С в "0" сигнал на линии STB переходит из "1" в "0" (окончание строба). Процесс иллюстрирует рис. 9.
Рис. 9. В момент времени Так как адрес порта С ППИ при указанной на рис. 8. схеме подключения равен 0002h, начало строба формируется командами MOV AL, 0001h OUT 0002h, ALОкончание строба — командами MOV AL, 0000h OUT 0002h, ALТак как фиксация данных в БР происходит по заднему фронту сигнала STB, установка и сброс должны быть произведены перед процедурой ввода данных. При этом длительность импульса ( В результате, фрагмент программы, выполняющей ввод данных с 16-разрядного цифрового датчика, будет выглядеть следующим образом: MOV AL, 0001h ; OUT 0002h, AL ;Установка сигнала STB MOV AL, 0000h ; OUT 0002h, AL ;Сброс сигнала STB- фиксация данных IN AL, 0000h ;ввод младшего байта MOV BL, AL ;сохранение младшего байта IN AL, 0001h ;ввод старшего байта MOV BH, AL ;сохранение старшего байтаПри вводе данных без преобразования (в цифровом виде) необходимо обращать внимание на формат представления вводимых данных. Как известно, данные внутри МПС представлены в двоичном дополнительном коде. Вводимые данные могут быть представлены в прямом двоичном коде, прямом коде со смещением и т.п. В этом случае процесс ввода должен предусматривать преобразование данных в двоичный дополнительный код. Преобразование может быть выполнено как аппаратно (с помощью специальных преобразователей) так и программно.
|
Последнее изменение этой страницы: 2019-05-08; Просмотров: 250; Нарушение авторского права страницы