
- •Лекции по курсу: Автоматизированные системы научных исследований.
- •Глава 2: Типы ацп.
- •Глава 3: цап весового типа.
- •Глава 4: Структуры систем автоматизации.
- •4.1. Системы с непосредственным подключением компьютера к экспериментальной установке.
- •4.2. Системы с подключением к компьютеру через промежуточное устройство (зу и/или уу).
- •4.3.Системы на базе стандартных приборных интерфейсов.
- •4.4. Системы со встроенными микроконтроллерами.
- •4.5. Распределенные системы, системы на основе сети.
- •Глава 5: Виды обеспечения асни.
- •Глава 6: Датчики.
- •6.1. Основные характеристики датчиков.
- •6.2. Основные схемы включения измерительных преобразователей.
- •6.3. Датчики линейных и угловых перемещений.
- •6.4. Резонансные измерительные цепи.
- •6.5. Датчики температуры.
- •6.6.Датчики сил и механических передвижений.
- •6.7. Датчики давления разряженных газов.
- •Глава 7: Структура эвм.
- •7.1. 5 Принципов:
- •7.2. Схема функционирования алу для двоичных чисел с фиксированной точкой.
- •7.3. Схема алу, работающих с одноадресными командами.
- •7.4. Регистр состояния процессора.
- •7.5. Цикл команд.
- •7.6. Классификация простейших процессоров по отношению к используемым регистрам.
- •7.7. Системный interface.
- •Системный интерфейс с общей шиной:
- •7.8. Обмен данными с внешними устройствами ввода/вывода.
- •7.9. Стандартно-универсальные приборные интерфейсы.
- •7.10. Система камак.
- •7.11. Временные диаграммы циклов магистрали крейта.
- •7.12. Программно – доступные регистры с интерфейсом общей шины.
- •Приложения. Лабораторная работа №1. Стандартные интерфейсы ibm компьютера Сentronics и rs232b.
- •Лабораторная работа №2. Цифровой и аналоговый ввод/вывод информации через адаптер нвл-08.
- •Технические характеристики устройства.
- •2. Программирование устройства nvl08.
- •2.1 Программирование цифрового ввода /вывода.
- •2.2 Программирование аналогового выхода (цап).
- •2.3 Программирование аналогового выхода (ацп).
- •3. Учебный стенд
- •4. Ход работы.
- •5. Приложения.
- •2002 Год доцент кфтт Ивашенков о.Н.
- •Лабораторная работа № 3
- •«Цифровой ввод-вывод через ni pci 6221 в среде LabView».
- •Цель работы:
- •Лабораторная работа №4.
- •Аналоговый ввод
- •Аналоговый вывод
- •Лабораторная работа №5. «Создание виртуальных приборов в среде MathLab». Цель работы.
- •Лабораторная работа №6. Клиент-серверные программы для протокола udp в среде LabView. Цель работы:
7.8. Обмен данными с внешними устройствами ввода/вывода.
возможна организация команд ввода/вывода с использованием специальных команд ввода/вывода
по аналогии с обращением к памяти
упрощается схема взаимодействия системного интерфейса с изолированными шинами, с контроллером внешних устройств
при вводе данных из внешнего устройства процессор выставляет на адресную шину адрес регистра данных контроллера ВУ и с помощью единичного сигнала «ввод» информирует контроллер ВУ о типе операции, которую оно должно выполнить → устройство, обнаружив появление сигнала «ввод», выставляет на шину данных байт слова или двойное слово (содержимое регистра данных), полученное от внешнего устройства
для синхронизации процессора и контроллера ВУ может использоваться сигнал готовности ВУ → процессор, обнаружив появление сигнала «готовность ВУ», считывает данные с шины данных и снимает сигнал «ввод», на этом цикл обмена заканчивается
принцип обмена данными, при котором сигналы, посланные активным устройством (процессору в данном случае) подтверждаются сигналами пассивного устройства называется колетированием
активное устройство называют задатчиком, а пассивное исполнителем
устройство, осуществляющее ввод/вывод с использованием специальных команд и сигналов, называется устройством с отображением на пространство ввод/вывод
устройство, осуществляющее ввод/вывод по аналогии с обращением в память называется устройством с отображением на память
в контроллере всегда имеется группа регистров – адресуемые регистры
Регистры контроллера внешних устройств:
регистры данных (если устройство осуществляет однонаправленную передачу – 1 регистр: если двунаправленную – 2 регистра: регистр входных и регистр выходных данных)
через регистр выходных данных данные вводятся в устройство компьютера
через выходной регистр – данные выводятся
регистры состояния и управления
регистр состояния (один или несколько) доступен в режиме чтения и сохраняет в своих разрядах информацию о текущем состоянии внешнего устройства
регистр управления (один или несколько) работает в режиме записи и служит для приёма команд управления внешними устройствами
регистры в состоянии управления, также как и регистры данных доступны только через шину данных; другими словами часть управляющей информации в компьютере передаётся не по шине управления, а по шине данных;
такая организация передачи управления информации обусловлена тем, что каждое внешнее устройство имеет целый набор собственных сигналов и команд, а потому предусмотреть для них соответствующие линии на шине управления системного интерфейса не представляет возможным, очевидно, что это существенно замедляет обмен данными с внешним устройством
Нарисуем упрощённую блок-схему контроллера внешнего устройства для системного интерфейса с изолированной шиной:
логика управления обеспечивает дешифрацию регистров контроллеров; приём управляющих сигналов системного интерфейса (ввод/вывод); формирование на их основе внутренних управляющих сигналов, кроме того, она может генерировать сигнал готовности ВУ; запрос на прерывание; запрос на прямой доступ к памяти
внутренние управляющие сигналы определяют, в какой из регистров контроллера будет подключён через приемо-передатчик шины к шине данных
Различают 3 основных способа организации ввода/вывода:
программно – управляющий обмен
обмен в режиме прерывания
обмен в режиме прямого доступа к памяти
программно – управляющий обмен – это передача данных по инициативе и под управлением программы, осуществляющей ввод/вывод
Такой обмен может быть реализован в 2 режимах:
а) обмен в синхронном режиме – обмен с безусловной передачей данных (без контроля приёма данных);
синхронный режим используется для обмена с такими ВУ, для которых точно известно время выполнения одной операции ввода/вывода;
программа, управляющая обменом, должна давать команды на приём или передачу данных с временным интервалом не меньшим, чем время необходимое для выполнения одной операции
если команды и данные будут передаваться в более быстром темпе, то они будут потеряны
этот наиболее простой способ обмена требует минимальных и аппаратных и программных затрат
б) обмен в асинхронном режиме – обмен с проверкой готовности ВУ (обмен по готовности ВУ)
в этом режиме каждая следующая команда на приём или передачу данных даётся только тогда, когда ВУ выполнит предыдущую команду и сообщит об этом, установив бит (флаг) готовности в своём регистре состояний
Изобразим алгоритм обмена:
Рассмотрим действия, необходимые для печати слова EPSON на принтере, подключённом параллельно в входу PC (LPT1).
Контроллер параллельного интерфейса имеет 3 регистра:
регистр данных – 378h: записывается байт данных, который затем пересылается в буфер принтера
регистр состояний – 379h
регистр управления – 37Ah: записывается команда, управляющая работой принтера
Рассмотрим простейшую программу:
const D: array [1..7] of byte = ($45,$50,$53,$4F,$4E,$D,$A);
var
I: byte;
DR, SR, CR: word;
begin
DR:= MemW[0:$408];
SR:= DR + 1;
CR:= SR + 1;
if (Port[SR] and $80) = 0 then
begin
writeln(‘принтер не готов’);
readln;
end
else
for I:=1 to sizeof (D) do
begin
while (Port[SR] and $80) = 0 do;
Port[DR]:= D[I];
Port[CR]:= $D; {13}
{можно добавить ещё одно переприсвоение, для того чтобы компьютер успевал сначала добавить, а потом сбросить бит}
Port[CR]:= $C; {12}
end;
End.
обмен в режиме прерывания – такой способ обмена, при котором производится приостановка (для выполнения ввода/вывода) или прерывание выполняемой программы; причём обмен инициирует не программа, выполняемая процессором, а само внешнее устройство (ВУ)
при реализации этого способа обмена команды или инструкции обслуживания этого устройства оформляются в виде подпрограммы – подпрограммы обработки прерываний (ПОП)
процессор передаёт управление ПОП только в том случае, если ВУ, исходя из своих внутренних побуждений, само известит процессор о готовности к обмену, для этого он выставляет на соответствующую линию шины управления системного интерфейса сигнал «запрос на прерывание»
если при программо-управляемом обмене готовность ВУ определяется путём программного считывания содержимого регистра состояний контроллера ВУ, то появление запроса на прерывание появляется аппаратно
наличие сигнала готовности проверяется процессором автоматически при выполнении каждой команды – это существенно экономит время процессора, поскольку программный цикл ожидания отсутствует
Какие действия выполняются в компьютере при появлении сигнала на прерывание?
процессор завершает выполнение текущей команды
↓
если аппаратное прерывание разрешено, т.е. установлен флаг в прерывании в регистре состояний процессора, то процессор с помощью специальных сигналов и соответствующих циклов шины подтверждает готовность к прерыванию и идентифицирует источник запроса
↓
процессор сохраняет в (текущем) стеке содержимое счётчика команд (СК) и содержимое регистра состояний (РС)
↓
процессор помещает в СК адрес подпрограммы обработки прерывания для данного устройства и приступает к её выполнению
↓
в начале своей работы подпрограмма обработки прерывания должна сохранить в стеке содержимое регистров процессора и в конце работы она должна восстановить эти регистры из стека
↓
подпрограмма обработки прерываний завершается специальной инструкцией возврата из прерывания, по этой инструкции процессор извлекает из стека адрес возврата прерванной программы – после чего продолжается выполнение прерванной программы
такой алгоритм обслуживания прерываний с использованием стека обеспечивает вложенность прерываний; вложенность означает, что любое ВУ может прервать уже выполняющуюся подпрограмму обработки прерываний, если оно имеет более высокий приоритет, чем обслуживаемое устройство
приоритет – число, приписанное ВУ, которое определяет очерёдность его обслуживания (обычно наибольший приоритет имеет наиболее быстродействующие устройства или устройства, данные от которых не могут быть восстановлены
устройство с высшим приоритетом обслуживается первым
если обслуживание запрашивает устройство, приоритет которого не выше приоритета уже обслуживаемого устройства, то его запрос блокируется до завершения текущей ПОП
в контроллерах ВУ, работающих в режиме прерывания в регистре управления, как правило, имеется бит, с помощью которого можно разрешить или запретить устройству генерацию сигналов «запрос на прерывание»
прерывания, о которых идёт речь, это аппаратные или внешние прерывания (т.е прерывания генерируемые внешними по отношению к процессору устройствами)
аппаратные прерывания подразделяют на:
маскируемые прерывания (INIR) можно запретить, сбросив флаг прерывания в регистре флагов процессора; можно также запретить прерывания от отдельных устройств с помощью регистра маски контроллера прерываний
немаскируемые прерывания с помощью регистра флагов запретить нельзя; немаскируемые прерывания могут генерировать схемы контроля чётности оперативной памяти (NMI), а также систему управления энергопотребления (SMI)
также различают программные или внутренние прерывания – генерируются самим процессором
к программным прерываниям относят особые случаи (исключения) (деление на ноль; запрос о отсутствующей в памяти страницы; нарушение защиты по привилегиям)
прерывания, генерируемые машинными командами, используются для доступа к стандартным подпрограммам, адреса которых программисту неизвестны
программные прерывания обрабатываются так же, как и аппаратные, только в первом случае отсутствуют циклы подтверждения прерывания
Высшие приоритеты имеют:
программы прерывания
немаскируемые аппаратные прерывания
маскируемые прерывания
Существуют 2 основных свойства идентификации ВУ, запросившего обслуживание:
с помощью программного опроса (полинга) готовности ВУ, работающих в режиме прерывания
с использованием векторов прерывания
в первом случае запросы на прерывание от всех ВУ объединяются по схеме ИЛИ (монтажное ИЛИ) и подаются на соответствующий вход процессора; обработка прерываний осуществляется с помощью единой подпрограммы обработки прерываний
приоритеты ВУ при такой организации обслуживания прерываний определяются очерёдностью их опроса, чем раньше в подпрограмме опрашивается устройство, тем выше его приоритет и тем меньше время реакции на его запрос
необходимость последовательного опроса всех ВУ существенно увеличивает время устройств, опрашиваемых последними
уменьшить время обслуживания ВУ можно с помощью векторной системы подготовки прерывания
в случае векторной системы для каждого ВУ имеется собственная подпрограмма обработки прерываний, адрес этой подпрограммы обычно называется векторным прерыванием
для того чтобы процессор смог обработать запрос от ВУ, он должен тем или иным способом получить вектор прерывания для данного устройства
Существует 2 основных способа получения вектора прерывания:
само ВУ может сообщить вектор прерывания
контроллер прерывания, общий для всех ВУ
Соответственно различают 2 варианта реализации векторной системы:
векторная система с интерфейсным вектором
с вне интерфейсным вектором
в первом случае контроллер каждого внешнего устройства, работающего в режиме прерывания должен иметь специальный регистр для хранения вектора прерывания
это схема намного эффективнее схемы прерывания с программным опросом, поскольку здесь опрос осуществляется не программно, а аппаратно
во втором случае системы с вне интерфейсным вектором - специальные регистры для хранения векторов, адресов в контроллере ВУ отсутствует, а для идентификации используется общий для всех устройств контроллер прерывания – такая схема характерна для IBM совместимых PC
Изобразим схему взаимодействия процессора с контроллером прерывания и шины IBM PC:
за исключением IRQ0, IRQ1, IRQ8, IRQ13 (системный таймер, клавиатура, часы реального времени, сопроцессор); контроллер шины формирует 2 цикла чтения, только во 2 цикле чтения контроллер прерывания выставляет номер вектора прерывания на шину данных, а процессор считывает его с шины данных
в реальном режиме вектора прерываний хранятся в таблице векторов прерываний, которые находятся в одном килобайте оперативной памяти, под каждый вектор выделено 4 байта (2 под смещение и 2 байта под адрес сегмента)
абсолютный адрес вектора прерываний в таблице = номер вектора умножить на 4
далее процессор сохраняет в стеке содержимое регистров флагов, содержимое регистра сегмента кода CS, смещение IP, затем сбрасывается флаг прерывания в регистре флагов; по адресу: номер вектора умноженный на 4 считывается из оперативной памяти адрес сегмента
подпрограмма обработки прерывания завершается инструкцией конца прерывания – EOI (end of interruption)
если обслуживание одновременно запрашивает несколько устройств, то контроллер прерывания обслуживает устройства с наибольшим приоритетом, а остальные устройства блокирует до получения команды конца прерывания
обмен в режиме прямого доступа к памяти – обмен между ВУ и памятью осуществляется без участия процессора – специальный контроллер доступа к памяти общий для всех устройств, либо контроллер ВУ, если он имеет средство управления шинами
это наиболее быстрый способ обмена поскольку он требует меньшего числа тактов шины, чем при программно-управляющем обмене и обмене в режиме прерывания
в режиме прямого доступа могут работать LPT, COM, накопитель на магнитной диске, жёсткий диск, сетевые адаптеры
существует много способов организации обмена в режиме доступа к памяти
с захватом цикла (с идентификацией состояния памяти)
в этом режиме обмен устройства с памятью осуществляется в течении тех машинных циклов процессора, когда последний не обращается к шине
для идентификации таких состояний процессор может генерировать специальный сигнал, указывающий что шина свободна
прямой доступ к памяти с блокировкой процессора по запросу
в этом случае на время обмена процессор отключается от шин системного интерфейса
если устройство работает медленно, то оно в режиме прямого доступа к памяти (ПДП) – передаёт отдельные байты
команда SC – после передачи байта запрос на прямой доступ к памяти сразу снимается DACK
если устройство работает быстро – данные передаются блоками, DACK не снимается