close

Вход

Забыли?

вход по аккаунту

?

700.

код для вставкиСкачать
УДК 681.3
ББК 32.97
В.И. Енин
ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ
Учебное пособие
В учебном пособии рассматриваются принципы построения и
функционирования типовых технических средств для реализации цифровых
систем управления технологическими процессами. Пособие содержит
информацию об архитектуре и программировании микропрограммного автомата,
микропрограммируемого контроллера, однокристального микропроцессора,
микро-ЭВМ и однокристального микроконтроллера. Рассмотрены вопросы их
сопряжения с объектами управления и смежные вопросы программирования.
Рассмотрены аппаратно-программные средства обеспечения работы ЭВМ в
реальном масштабе времени.
Предназначено для организации самостоятельной работы студентов
заочного и дневного отделений по дисциплине «Микропроцессорная техника»
специальности «Автоматизация технологических процессов и производств».
Ил. 83. Табл. 7 . Библиогр.: 19 назв.
Рецензенты: кафедра электроники Воронежского государственного
университета;
Э.К. Алгазинов, д.ф.-м.н., проф. Воронежского
государственного университета
Используется
по
решению
редакционно-издательского
совета
Воронежского государственного архитектурно-строительного университета
Папка «МП_2006_ЭВ». Объем – 24 Мб.
В.И. Енин, 2006
ВГАСУ, 2006
Начало МП_ОГЛАВЛЕНИЕ.doc
В.И. Енин
ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ
Учебное пособие
для студентов, обучающихся по специальности 220301
«Автоматизация технологических процессов и производств
(в строительстве)»
Воронеж 2006
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Воронежский государственный архитектурно-строительный университет
В.И. Енин
ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ
Учебное пособие
Рекомендовано в качестве учебного пособия редакционно-издательским
советом Воронежского государственного архитектурно-строительного
университета для студентов, обучающихся по специальности 220301
«Автоматизация технологических процессов и производств
(в строительстве)»
Воронеж 2006
УДК 681.3
ББК 32.97
Енин, В.И. Основы микропроцессорной техники [Электронный ресурс]:
учеб. пособие для студ. спец. 220301/ В.И. Енин; Воронеж. гос. арх.-строит. ун-т. Воронеж, 2006. – 175 с.
В учебном пособии рассматриваются принципы построения и
функционирования типовых технических средств для реализации цифровых
систем управления технологическими процессами. Пособие содержит
информацию об архитектуре и программировании микропрограммного авто мата,
микропрограммируемого контроллера, однокристального микропроцессора,
микро-ЭВМ,
однокристального микроконтроллера и специализированных
управляющих контроллеров. Рассмотрены вопросы их сопряжения с объектами
управления и смежные вопросы программирования.
Учебное пособие предназначено для организации самостоятельной работы
студентов заочного и дневного отделений по дисциплине «Микропроцессорная
техника» специальности «Автоматизация технологических процессов и
производств».
Ил. 83. Табл. 7 . Библиогр.: 19 назв.
Используется
по
решению
редакционно-издательского
совета
Воронежского государственного архитектурно-строительного университета
Рецензенты: кафедра электроники Воронежского государственного
университета;
Э.К. Алгазинов, д.ф.-м.н., проф. Воронежского
государственного университета
Енин В.И.,2006
ВГАСУ, 2006
3
ВВЕДЕНИЕ
В.1. Роль и место курса “Микропроцессорная техника” в
учебном процессе
В.2. Основные направления развития цифровых систем
управления технологическими процессами
В.3. Самостоятельная работа студентов и контроль знаний
Современный инженер, занятый созданием и эксплуатацией систем
автоматизированного управления технологическими процессами, должен
обладать широкими познаниями в области функционального состава и принципов
действия используемых при этом технических средств. Успехи микроэлектроники
и вычислительной техники обусловили широкое внедрение цифровых систем
управления. В пособие включены вопросы, освоение которых позволит начать
самостоятельную профессиональную деятельность в области проектирования и
обслуживания цифровых и микропроцессорных систем управления
технологическими процессами.
Цели и задачи изучения дисциплины – получение фундаментальных
теоретических знаний и практических навыков разработки, выбора, наладки и
эксплуатации современных цифровых и микропроцессорных технических средств
автоматизации технологических процессов и производств.
ПОСЛЕ ИЗУЧЕНИЯ ДИСЦИПЛИНЫ НЕОБХОДИМО ЗНАТЬ
принципы построения и функционирования микропрограммных автоматов
и микропрограммируемых контроллеров,
устройство, архитектуру и функционирование микропроцессоров и микро ЭВМ,
принципы организации обмена данными в микропроцессорных системах,
устройство и функционирование средств сопряжения микропроцессорных
систем с объектами управления,
принципы организации работы системы управления в реальном масштабе
времени.
4
ПОСЛЕ ИЗУЧЕНИЯ ДИСЦИПЛИНЫ НЕОБХОДИМО УМЕТЬ
выбирать технические средства, необходимые для реализации заданных
алгоритмов регулирования и управления;
подключать объекты управления к стандартным устройствам ввода-вывода,
выбирать необходимые устройства из номенклатуры промышленных
изделий
для
реализации системы управления с
заданными
характеристиками,
проектировать нестандартные устройства сопряжения,
составлять технические задания на разработку нестандартных технических
средств автоматизации,
разрабатывать несложное программное обеспечение для реализации
заданного алгоритма работы в реальном масштабе времени.
В.1. Роль и место курса “Микропроцессорная техника” в учебном процессе
Дисциплина «Микропроцессорная техника» формирует у будущих
инженеров и исследователей знания и умения разработки, выбора, настройки,
программирования и эксплуатации цифровых и микропроцессорных технических
средств автоматизации технологических процессов, дает примеры их
конструктивного применения. В пособии рассмотрены основные цифровые
системы управления: микропрограммный автомат, микропрограммируемый
контроллер,
микро-ЭВМ,
однокристальные
микроконтроллеры
и
специализированные управляющие контроллеры. Рассмотрена их архитектура,
вопросы сопряжения с объектами управления и смежные вопросы
программирования.
Изучение данной дисциплины основывается на учебном материале,
излагаемом в курсах “Вычислительная техника и программирование”,
“Электротехника и электроника”, "Промышленная электроника", “Технические
средства автоматизации”.
Материал дисциплины “Микропроцессорная техника” используется при
изучении профилирующих курсов “Цифровые системы управления”,
“Автоматизация технологических процессов и производств”, “Проектирование
систем автоматизации”, а также при выполнении лабораторных работ, курсовых и
дипломных проектов.
Данное пособие ориентировано на ознакомление студентов специальности
210200 – «Автоматизация технологических процессов и производств» с
основными принципами построения и функционирования технических средств
автоматизации и может быть основой для более глубокого изучения материала.
5
В.2. Основные направления развития цифровых систем управления
технологическими процессами
Развитие промышленных технологий предъявляет повышенные требования
к точности, быстродействию и надежности систем автоматического управления.
Цифровые системы в наибольшей степени удовлетворяют этим требованиям.
Развитие микроэлектроники привело к созданию малогабаритных и дешевых
микропроцессоров и микро-ЭВМ. Это обусловило широкое внедрение
современных микропроцессорных устройств в системах автоматизированного
управления. Произошел переход от систем централизованного управления на
основе большой ЭВМ к иерархическим системам управления, на нижних уровнях
в которых используются простейшие контроллеры, а на верхнем – микро-ЭВМ.
Процессоры и микро-ЭВМ стали встраиваться в промышленное оборудование.
Управляющие устройства, как правило, реализуются на базе промышленных
микроЭВМ, микропроцессоров и однокристальных микроконтроллеров.
Расширяется область применения цифровых контроллеров для построения
локальных и централизованных систем управления. Особенно быстрыми темпами
развиваются технические средства для реализации распределенных систем
управления. Получили развитие распределенные системы сбора и первичной
обработки данных о состоянии объекта управления. В таких системах на нижнем
уровне размещены контроллеры, как правило, на базе однокристальных
контроллеров, обеспечивающие передачу данных на центральную микро-ЭВМ и
обратную трансляцию управляющих сигналов на объекты управления. Они также
обеспечивают локальное управление в случае потери связи.
Широко
используются
специализированные
микроконтроллеры,
ориентированные на автоматическое управление конкретным классом объектов.
Выпускаемые рядом фирм контроллеры, предназначенные для автоматизации
технологических процессов, снабжаются программным обеспечением
необходимым для разработки пользовательского интерфейса.
Большое разнообразие выпускаемых однокристальных контроллеров и их
быстро растущая производительность позволяют считать их применение наиболее
перспективным.
Знание теоретических основ построения и функционирования цифровых и
микропроцессорных средств автоматизации является необходимым условием
создания и эксплуатации современных систем управления.
В.3. Самостоятельная работа студентов и контроль знаний
Для успешного изучения дисциплины «Микропроцессорная техника»
необходимо регулярно работать над закреплением и углублением знаний.
Предлагаемое пособие лишь направляет движение познания, но не охватывает в
полном объеме всей дисциплины. Теоретический курс подкреплен необходимым
набором лабораторных работ, охватывающих наиболее сложные разделы.
6
Помощь в самостоятельном
освоении дополнительного материала
осуществляется при индивидуальной работе со студентами и проведении
лабораторных работ.
Контроль знаний проводится в форме регулярных собеседований, при
выполнении и приеме лабораторных работ.
Списки использованных и рекомендуемых дополнительных источников
приведены в конце пособия.
Систематическая работа с разделами пособия поможет успешно сдать
экзамен и качественно, на современном уровне выполнить соответствующие
разделы дипломного проекта.
7
1. МИКРОПРОГРАММНЫЕ АВТОМАТЫ
1.1 Автомат без памяти
1.2 Микропрограммный автомат
1.3 Стандартизация сигналов ГСП
Современные
автоматизированные
системы
управления
технологическими процессами представляют собой, как правило, иерархичес кие
многоуровневые системы, решающие как экономические, так и технологические
задачи управления на каждом уровне, начиная с локальных систем управления
отдельными объектами и кончая АСУ предприятием. Технической основой таких
систем являются устройства цифровой обработки информации, обеспечивающие
высокую скорость обработки, максимальную унификацию и универсальность
аппаратных средств системы управления, простоту перестройки системы и
изменения ее функционального назначения.
В общем случае система цифровой обработки входит в замкнутый
информационный контур управления объектом, в котором с одной стороны к
цифровому устройству управления подключена система датчиков, являющихся
источником информации о состоянии управляемого объекта, а с другой стороны
- система исполнительных механизмов, реализующих управляющие воздействия
на объект управления. В устройство управления может быть включен оператор
как лицо, принимающее решения о цели управления и критериях его качества.
При этом характеристики системы (особенно на уровне управления физическими
объектами) в значительной мере определяются системой цифровой обработки
информации. Простейшими устройствами цифровой обработки являются
автоматы, развитие которых привело к созданию микропроцессоров.
Цель главы – ознакомление с основными принципами построения
микропрограммных автоматов и их схемной реализации.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Типы автоматов,
принцип построения автоматов без памяти,
принцип построения микропрограммного автомата,
способы задания алгоритма функционирования автомата,
метод синтеза структурного автомата,
функциональные схемы автоматов и их схемные реализации,
вопросы сопряжения автоматов с объектами управления.
В цифровых устройствах управления для внутреннего представления
обрабатываемой информации используются двоичные числа. Каждая цифра
8
двоичного числа физически представлена электрическим сигналом в линии или на
полюсе. При этом сигнал может принимать только 2 значения: "логический 0" и
"логическая 1". Уровни электрических сигналов,
соответствующие этим
значениям зависят от используемой элементной базы и могут быть различными в
различных цепях одного устройства. Они устанавливаются дополнительными
соглашениями.
Цифровое устройство управления в общем случае представляет собой
(NxM)-полюсник, имеющий N входов логических переменных (аргументов) х 0
,..хN-1 и M выходов логических переменных ( функций выходов ) y 0 ,..yM -1 , и
преобразующий временную последовательность совокупности входных сигналов
в последовательность наборов выходных сигналов. На входы цифровой системы
поступают внешние сигналы управления (например, от оператора) и сигналы
обратной связи от объекта управления, информирующие о его состоянии. Для
ввода аналоговых сигналов используется предварительное аналого-цифровое
преобразование. При этом должно соблюдаться согласование по уровню
входных сигналов и нагрузочной способности их источника. Управляющие
выходные сигналы поступают на объект управления, подвергаясь во внешних
цепях необходимым дополнительным преобразованиям: цифро-аналоговому - для
формирования аналоговых управляющих сигналов, усилению по мощности- для
управления силовыми цепями питания (например, пускателями) исполнительных
механизмов (ИМ). В большинстве случаев во внешних цепях осуществляется
гальваническая развязка низковольтных цепей управления от силовых цепей
питания ИМ.
Каждый алгоритм управления, т.е. зависимость вектора управляющего
воздействия (выходных сигналов системы управления) от вектора управляемых
величин (сигналов обратной связи), вектора внешнего управления, вектора
возмущающих воздействий и времени представим в виде связанной сети
арифметических, логических и временных операторов. Разработка системы
управления заключается в определении структуры этой сети с нахождением
рационального способа ее аппаратной и программной реализации.
9
1.1. Автомат без памяти
Автомат - самостоятельно действующее устройство, выполняющее по
заданной программе без непосредственного участия человека, процессы
получения, преобразования, передачи и использования энергии, материала и
информации. Рассмотрим класс структурных автоматов, в которых сигналы на
входных и выходных полюсах могут принимать 2 значения: "0" и "1". Цифровое
устройство управления, в общем, представляет собой автомат, осуществляющий
обработку дискретной информации (цифровых двоичных сигналов). Если
алгоритмическая структура устройства управления содержит только логические
операторы, то значение выходных сигналов в любой момент времени
определяется значением входных сигналов в этот момент времени.
Тогда, для цифрового устройства управления представляющего собой
(NxM)-полюсник и имеющего N входов логических переменных (аргументов) х 0
,..хN-1 и M выходов логических переменных ( функций выходов ) y0 ,..yM -1 ,
каждый выходной сигнал yi можно математически описать логической (булевой)
функцией входных переменных (x0,..xN-1 ): yi =f (x0 ,..,xN-1 ) , i=0,..,M-1.
Такое цифровое устройство, в котором совокупность выходных сигналов
зависит только от совокупности входных сигналов, присутствующих в данный
момент и не зависит от предшествующих входных сигналов, является автоматом
без памяти.
Электрическая схема, у которой каждый из M выходов описывается булевой
функцией входных логических переменных, называется комбинационной (КС).
Как правило, она задается таблицей истинности, в которой слева записываются
значения аргументов, а справа - значения функций, описывающих каждый выход.
Используя правила булевой алгебры, она может быть аппаратно реализована на
дискретных элементах различного функционального назначения, имеющих 2
состояния. Такими элементами могут быть микросхемы логики, коммутаторов,
программируемых логических матриц и постоянной памяти. Каждый из этих
элементов характеризуется своей таблицей истинности.
Для обозначения совокупности двоичных сигналов на входах/выходах
комбинационной схемы пользуются следующим
приемом.
Выделяют
совокупность электрических линий одного функционального назначения и
называют их шиной. Присваивают линиям каждой шины (входной или
выходной) номера, начиная с 0. Тогда каждому набору двоичных сигналов на
шине ставится в соответствие позиционное двоичное число по правилу: номер
линии определяет позицию цифры в числе, а значение сигнала ("логический 0"
или "1") определяет цифру в этой позиции.
Таким образом, комбинационная схема устанавливает однозначное
соответствие между входным и выходным числом в любой момент времени и
является автоматом без памяти, т.к. совокупность выходных сигналов зависит
только от совокупности входных сигналов, присутствующих в данный момент.
Выходные сигналы автомата без памяти в любой момент времени определяются
сигналами на его входе в этот момент и не зависят от сигналов, поступивших
ранее.
10
Пример:
рассмотрим
управляющее
устройство,
включающее
исполнительный механизм (ИМ) при срабатывании
двух выключателей.
Подключим первый выключатель ко входу x0 , а второй - ко входу x1 КС, один
выход y которой подключим через усилитель и пускатель к ИМ. Тогда таблица
истинности КС должна иметь вид:
уровни
сигналов,
поступающих с
Аргумент
Функци Если
выключателей
и
поступающих
на объект
я
управления равны 4в и меньше
0.2в для
Число x1 x0
y
"логической 1" и "логического 0" соответственно,
0
0
0
0
то в качестве КС можно использовать одну
1
0 1
0
секцию "2И" микросхемы (м/с) 155ЛИ1.
2
1 0
0
3
1 1
1
11
1.2. Микропрограммный автомат
1.2.1. Автомат с памятью
Наряду с автоматами без памяти существуют автоматы с памятью,
выходные сигналы которых зависят и от предыстории автомата, т.е. сигналов,
присутствовавших на его входе в предшествующие моменты времени. Такой
автомат должен содержать функциональные элементы памяти. Предыстория
автомата отражается в памяти автомата изменением его внутреннего состояния.
При электронной реализации автомата его внутреннее состояние связывают с
содержимом внутреннего запоминающего регистра, который хранит двоичный
код присвоенный текущему состоянию. Т.о. состояние автомата представлено
двоичным кодом состояния (числом), которое присваивается каждому состоянию
(обычно в порядке возрастания двоичных чисел).
Примером автомата с памятью может служить устройство управления
включающее исполнительный механизм при втором нажатии пусковой кнопки.
На единственный вход такого автомата поступает сигнал логической "1" или
логического "0" в зависимости от состояния кнопки. Выход автомата подключен к
ИМ.
Последовательность
входных
сигналов для включения ИМ должна быть:
0101
0101.
1е включение
2е включение
Для различения событий появления
на входе автомата второго "0" от исходного
выключение
сигнала "0" необходимо эти события
связать с различными внутренними состояниями автомата, которые можно
пронумеровать двоичными числами: исходное состояние (0), состояние после
первого включения (1) и т.д. В этом случае можно выделить 4 состояния
автомата: исходное (00), после первого нажатия кнопки (01), после отпускания
кнопки (10), после второго нажатия (11). Таким образом, для данного примера мы
имеем 4 состояния: 002, 012, 102, 112.
В синхронных автоматах, работающих в дискретном времени, изменение
(запоминание нового состояния) осуществляется по фронту синхросигнала,
поступающего от внешнего генератора. Для запоминания кода текущего
состояния используются триггеры и регистры. Для запоминания двоичного числа
(кода состояния) в данном примере необходимо 2 триггера.
1.2.2. Микропрограммный автомат в системе управления
Автомат с памятью или микропрограммный автомат представляет собой
управляющее устройство (УУ) или управляющий автомат (УА) для объекта
управления, который представляет собой операционное устройство (ОУ) или
операционный автомат (ОА), выполняющий определенные операции, требуемые
пользователю. В качестве ОА могут выступать различные устройства: станки,
стиральные машины, арифметическо-логическое устройство (АЛУ) и др.
Информация о результатах выполненной операции или о состоянии ОА
поступает на вход управляющего автомата (рис.1.1). На вход управляющего
автомата поступают также внешние управляющие сигналы. Задачей управления
12
является обеспечение выполнения ОА последовательности операций (алгоритма)
в соответствии с внешними управляющими сигналами и сигналами результата
предыдущей операции. Заметим, что элементарное действие в ОА называется
микрооперацией, совокупность одновременно выполняемых микроопераций
называется микрокомандой, а последовательность микрокоманд образует
микропрограмму.
YN-1
XK-1
:
ОПЕРАЦИОННОЕ
УПРАВЛЯЮЩИЙ
(МИКРОПРОГРАММНЫЙ)
:
АВТОМАТ
XL-1
X0
:
УСТРОЙСТВО
:
( УА )
Y1
( ОУ )
Y0
Рис 1.1. Микропрограммный автомат в системе управления
Микропрограммный автомат (МПА) позволяет реализовать достаточно
сложные алгоритмы работы с учетом предыстории системы, т.е. потока входных
сигналов, поступивших на его входы в предшествующие моменты времени.
МПА способен формировать многоканальные дискретные сигналы управления
требуемой длительности и в заданной последовательности, т.е. микропрограмму.
1.2.3. Структурный автомат
Рассмотрим синхронный структурный управляющий автомат, в котором
сигналы на входных и выходных полюсах могут принимать 2 значения ("0" и "1"),
состояние представлено двоичным числом и переход из одного состояние в
другое происходит по тактовым сигналам (сигналам синхронизации). Тогда
двоичный вектор выходных сигналов (совокупность двоичных сигналов на
выходе) в каждый момент времени зависит от двоичного вектора входных
сигналов и кода состояния, отражающего предысторию автомата, т.е.
последовательности сигналов, поступивших на его вход до рассматриваемого
момента. Автомат может быть описан 6 компонентами:
множеством (чисел) состояний автомата,
множеством двоичных векторов входных сигналов (входных чисел),
множеством двоичных векторов выходных сигналов (выходных чисел),
функцией переходов, которая ставит в соответствие паре "текущее состояние входной вектор" состояние автомата в следующий момент,
функцией выходов, которая ставит в соответствие паре "текущее состояние входной вектор" вектор выходных сигналов,
начальным состоянием.
13
Различают 2 класса автоматов: автомат Мили, выходные сигналы которого
определяются состоянием автомата и входными сигналами, и автомат Мура,
выходные сигналы которого определяются только состоянием.
Алгоритм работы автомата задается графическим и табличным способами.
При графическом задании алгоритм работы автомата представляется в виде
ориентированного графа, вершины которого соответствуют состояниям, а дуги переходам между ними.
Каждой вершине присваивается двоичный код
состояния, который записывается в ней. В начале дуги записываются входные
сигналы, вызывающие данный переход. Для графа автомата Мили выходные
сигналы, формируемые на переходе, записываются в конце дуги, а для автомата
Мура - рядом с вершиной. Часто сигналы, имеющие значение "логического 0", не
записываются. В конце дуги можно также записать возбуждаемые разряды памяти
(регистра) состояний.
Рассмотрим
пример
Х
некоторого
графа
автомата
D0
представленного на рис. 1.2.
Т1Т0
Х
Пусть автомат имеет одну
D0
входную
линию
внешнего
Y1 D1
управления,
формирует
три
Y2
управляющих сигнала и имеет 4
Т1Т0
Т1Т0
состояния. Каждый из сигналов
Х
имеет два значения (0 или 1). Для
Y2 Y1
Х
Y0 D1
обозначения текущего состояния
Y1 Y2
Y0 D1 D0
D1 D0
автомата
введем
логические
переменные Т 0 ,Т1 и закодируем
Т1Т0
Х
состояния автомата двоичными
числами в порядке возрастания
Рис. 1.2. Граф автомата
начиная с 00. Для кодирования
требуется 2 двоичных разряда и,
следовательно, достаточно двух логических переменных.
Введем систему обозначений. Обозначим внешний входной сигнал Х, выходные
управляющие сигналы - Y0 , Y1, Y2 , разряды кода текущего состояния - T1, T0 ,
разряды кода следующего состояния - D1, D0. По алгоритму работы составляется
граф автомата, начиная с нанесения вершин, представляющих состояния, затем дуг, представляющих переходы.
Из рисунка видно, что из состояния Т 1 Т0 (00) при X=0 автомат переходит в
состояние Т 1Т0 (01), формируя на переходе выходные сигналы Y2 =0, Y1 =0,
Y0=0. Из состояния Т 1 Т0 при X =1 автомат переходит в состояние Т 1Т0 (11),
формируя на переходе выходные сигналы Y2 =0, Y1 =0, Y0 =1.
При синтезе структурного автомата необходимо табличное задание.
Автомат Мили описывается с помощью 2 таблиц (таблично заданных булевых
функций): функции переходов и функции выходов. Логические функции
переходов и выходов определяют соответственно зависимости состояния
автомата на следующем временном промежутке и выходных сигналов от
14
текущего состояния и входных сигналов. Автомат Мура описывается только
функцией переходов, т.к. выходные сигналы жестко связаны с состояниями.
В
нашем
примере
НАСТРОЙКИ КАНАЛОВ
РЕЖИМ
аргументами
логических
УПРАВЛЕНИЕ
КАНАЛА С1:
УПРАВЛЯЮЩЕГО
СЛОВА
функций
РЕЖИМОМ
1- ВВОД, (входами
Аргументы
ФункцияРЕГИСТР
Функция
0 - ВЫВОД
ОТДЕЛЬНЫХ
комбинационной
схемы)
функции
переходов
выходов
7
6
5
4
3
2
1
0
РАЗРЯДОВ.
являются
переменные
X
РЕЖИМ
ОБЫЧНО
КАНАЛ А В:
(входной
сигнал)
и T 1,T0
УСТАНАВЛИВАЕТСЯ
Вход
Текущее Следующее Текущее
1- ВВОД,
0а- ВЫВОД
(состояние),
функциями
В " 1 " состояни
состояние состояние
(выходами РЕЖИМЫ
КС)
являются:
РЕЖИМЫ
РЕЖИМ
е
РЕЖИМ
КАНАЛ ОВ А, С2(4-7):
КАНАЛА А:
Y2,YС2:
(выходные
сигналы
КАНАЛ
ОВ В, С1(0-3):
1,Y0
X0 - РЕЖИМ
T1 0, T0
D1
D1-0 ВВОД,Y2 Y1 Y0КАНАЛА
1- ВВОД,
0 - РЕЖИМ 0,
и D1,D10 ( функции
ВЫВОД
1- РЕЖИМ
0 1- РЕЖИМ
01 0
0
10 - ВЫВОД0 0 0 0 - автомата)
переходов, т.е. выходы кода
0
0
1
0
1
0 0 0
Рис.8.5. Формат регистра управляющего
следующегослова
состояния).
0
1
0
0
0
1 0 0
Табличное задание алгоритма
0
1
1
0
0
1 1 0
работы автомата из рис.1.2
1
0
0
1
1
0 0 1
представлено в табл. 1.1.
1
0
1
1
0
0 1 0
Схемной
реализацией
1
1
0
1
1
1 1 0
системы
булевых
функций
1
1
1
1
0
0 0 1
переходов и выходов является
комбинационная схема (КС). Таким образом, в нашем примере КС должна иметь
3 входных полюса и 5 выходных. Таблица истинности КС, соответствующая
рассмотренному графу автомата имеет вид объединенной таблицы функций
переходов и выходов.
Таким образом, на вход комбинационной схемы должны поступать
внешние управляющие сигналы и код состояния автомата с запоминающего
регистра, хранящего код текущего состояния. Следовательно, выходы регистра
состояния подключаются ко входам КС. Выходные сигналы КС, содержащие
функцию выходов, являются управляющими сигналами для операционного
автомата и подключаются к входам объекта управления. Выходные полюсы КС,
содержащие функцию переходов (код
следующего состояния) подключаются
ко входу регистра для запоминания
КС
состояния по фронту синхросигнала
RG
внешнего
тактового
генератора
(рис.1.3). Сохранение состояния на
Входные
Выходные
сигналы
один такт необходимо для ликвидации
сигналы
непосредственной обратной связи
Рис.1.3. Функциональная
между входами и выходами КС,
схема автомата
ведущей
к
неконтролируемой
автогенерации.
Число разрядов M кода состояния автомата и, следовательно, регистра
определяется числом состояний автомата J и должно удовлетворять условию
15
J 2М . Комбинационные схемы рассматриваются как автоматы с одним
внутренним состоянием.
Функцию выходов КС можно записать в дизьюнктивной нормальной
форме. Для этого каждую выходную переменную КС, представленную столбцом
своих значений в таблице истинности, приравняем дизьюнкции коньюнкции всех
входных переменных в строке, для которой значение данной выходной
переменной равно 1.
D1 =X T1 T0 \/ X T1 T0 \/ X T1 T0 \/ X T1 T0
D0 =X T1T0 \/ X T1 T0 \/ X T1 T0 \/ X T1 T0
Y0 =X T1T0\/ X T1 T0
Y1 =X T1 T0 \/ X T1 T0 \/ X T1 T0
Y2 =X T1T0 \/ X T1 T0 \/ X T1 T0
Таким образом, микропрограммный автомат состоит из комбинационной
схемы (КС) и регистра, как элемента памяти, охваченных обратной связью.
Комбинационная схема обычно реализуется на микросхемах (м/с)
программируемой логической матрицы (ПЛМ) или перепрограммируемого
постоянного запоминающего устройства (ППЗУ). Алгоритм работы автомата
определяется содержимым (прошивкой) ППЗУ и может просто изменен заменой
м/с ППЗУ.
Возможные функциональные схемы автоматов и их подключение к объектам
управления представлены на рисунке 1.4. Автоматы имеют L входов внешнего
управления, K входов обратной связи от ОА, М-разрядный код состояния и N
управляющих выходов.
L
M
A
L
K
PROM
D
N+M M DI
RG D
PROM
D N+M
DI
RG D
M
K
C
ОПЕРАЦИОННЫЙ
АВТОМАТ
(ОА)
ОБЪЕКТ
G
L
M
N
N
G
L+M
A
N
C
ОПЕРАЦИОННЫЙ
АВТОМАТ
(ОА)
ОБЪЕКТ
УПРАВЛЕНИЯ
УПРАВЛЕНИЯ
Рис.1.4. Структурные автоматы
Схема включает КС с (L+K+M) входными и N+M выходными полюсами и
регистр, синхронизируемый от внешнего тактового генератора G. Разрядность
регистра определяется разрядностью кодов состояния автомата M и числом
(L+N) необязательно запоминаемых входных и выходных дискретных сигналов.
При реализации КС на ППЗУ последняя имеет L+K+M адресных входов и N+M
выходов данных. Регистр имеет не менее M разрядов. Часть (N) выходных
разрядов КС являются выходными сигналами автомата и поступает на входы
16
дискретного управления исполнительными механизмами объекта управления.
Остальные M разрядов КС, содержащие код следующего состояния, поступают на
вход регистра для записи по фронту тактового импульса.
Для синтеза автомата на первом этапе из алгоритма работы управляющего
устройства в виде микропрограммного автомата определяется число его
внутренних состояний и, следовательно, необходимое число разрядов регистра
памяти. Проводится кодирование состояний и уточняется число внешних
управляющих и выходных сигналов автомата. Вводится система обозначений для
сигналов. За каждым входом автомата закрепляется входной сигнал, являющийся
аргументом логической функции, реализуемой на КС. Исходя из алгоритма
работы, составляется граф автомата. По заданному графу записываются функции
переходов и выходов в табличной форме, объединение которых представляет
таблицу истинности КС.
Получением
таблицы
истинности
КС
завершается
синтез
микропрограммного автомата. Сама комбинационная схема с найденной таблицей
истинности аппаратно реализуется на м/с логических элементов, коммутаторов,
ПЛММ, ППЗУ.
Двоичное число на входе КС можно рассматривать как адрес ячейки памяти
(особенно при реализации КС на ППЗУ), содержимое которой появляется на ее
выходе в виде совокупности управляющих сигналов (функция выходов), т.е.
микрокоманды для ОА и кода следующего состояния. В формате данных на
выходе комбинационной схемы можно выделить последовательность разрядов (N
разрядов), содержащих микрокоманду для ОА (поле микрокоманды) и часть
разрядов (M разрядов) адреса
следующей микрокоманды (поле адреса
микрокоманды). Поэтому последовательность сигналов на выходе КС можно
рассматривать как последовательность формируемых автоматом микрокоманд,
т.е. микропрограмму. В этом случае КС рассматривается как микропрограммная
память, управление адресом которой осуществляется внешними управляющими
сигналами, сигналами обратной связи с ОА и разрядами кода состояния (полем
кода состояния) микрокоманды. Часть комбинационной схемы, содержащую
таблицу переходов и регистр состояния можно рассматривать как подобие
счетчика микрокоманд, особенно при последовательном увеличении кода
состояния при отработке алгоритма. Формат данных на входе и выходе КС можно
представить в виде:
Вход КС (адрес)
Внешние входы
Входы от ОА
Входы состояния
(поле управления
(поле
управления (поле формирования
переходами)
условными ветвлениями)
очередного адреса)
Выход КС
Новое состояние
(поле формирования очередного адреса)
Микрокоманда для ОА
Внешние входы и входы условий модифицируют адрес, реализуя условные
переходы и переходы к одной из программ.
17
Такая интерпретация работы автомата в своем развитии привела к
разработке эффективного аппарата современной цифровой техники микропрограммному
управлению,
используемому
при
разработке
микропрограммируемых систем управления.
18
1.3. Схемная реализация микропрограммных автоматов
Комбинационная схема может быть реализована на м/с логических
элементов исходя из функций выходов, записанных в дизъюнктивной
нормальной форме. Пример такой схемной реализации одной их функций
представлен на рисунке 1.5а. В схеме использованы м/с: 155ЛН1 (6 элементов
"НЕ"), 155ЛИ3 (3 элемента "3И") и 155ЛЛ1 (4 элемента"2ИЛИ"). Такая
реализация КС возможна при малом числе ее полюсов.
X0
1
&
T0
Y0
1
T1
&
1
R
а)
б)
+5В
X
T0
T1
DI
0
1
2
3
4
5
6
7
1
2
4
MUX
(155
КП7)
Y0
E
Рис.1.5. Аппаратная реализация функции Y0
Более удобной является реализация логической функции на м/с цифрового
коммутатора. Пример реализации на м/с 155КП7 приведен на рис 1.5б. В общем
случае одноканальный коммутатор (мультиплексор) M 1 имеет M=2N входов
данных, N адресных входов и один выход. При работе мультиплексора вход
данных, номер которого установлен сигналами на адресных входах, соединяется
с выходом. При реализации логической функции выход коммутатора содержит
значение функции, на каждый из N адресных входов подают значение
закрепленного за ним аргумента. Каждое значение входных аргументов
определяет номер входа, подключаемого к выходу. На каждый из входов данных
подают логический сигнал равный значению функции при данном наборе
аргументов, который представляет адрес входа. Логический сигнал на выходе
коммутатора будет равен требуемому значения функции при поступающих на
адресные входы значениях аргументов.
Программируемые логические матрицы относятся к заказным м/с и
изготавливаются на заводе. Они имеют N логических входов аргументов и M
выходов M логических функций.
Наиболее перспективным является использование м/с постоянной
программируемой
(однократно,
например,
КР556РТ5...)
или
перепрограммируемой памяти (например, К573РФ5) для реализации
комбинационной схемы. Для микросхем памяти указывается их организация в
виде K*M, где K=2N -число ячеек памяти, а M -число разрядов ячеек памяти и,
следовательно, выходов данных. Такая микросхема позволяет реализовать M
19
логических функций (по числу выходов) N (по числу адресных входов)
аргументов. Сигналы на входах управления устанавливаются на режим чтения. На
адресные входы подают значения аргументов, а значение каждой из M функций
формируется на своем выходе данных. Программирование м/с в соответствии с ее
таблицей истинности проводится пользователем согласно ТУ на микросхему.
При разработке автомата наибольшую трудность представляет реализация
КС (ППЗУ) из-за ее большой емкости. Для решения задачи оптимального
использования памяти и снижения емкости используют дополнительные
технические решения: кодирование и мультиплексирование сигналов. Если не
все значения набора аргументов могут присутствовать на входе КС, то перед
ней возможна установка дополнительного шифратора (преобразователя кода)
N1
N2 (N1>N2), имеющего число выходов меньшее числа входов. Шифратор
представляет собой также КС. Если по алгоритму работы возможны не все
комбинации выходных сигналов автомата (управляющих сигналов) то на выходе
может быть установлен дополнительный
X
Y
дешифратор команд
(ДК), представляющий
КС
RG
ДК
Автомат Мура
собой КС и имеющий
число выходов большее числа входов. При
X
Y
КС
этом
структурные
ДК
схемы автоматов буКС
RG
Автомат Мили
дут иметь вид, представленный на рис.
Рис. 1.6. Структурные схемы автоматов Мили и
1.6.
Мура с дешифраторами команд
Для сокращения
емкости КС, когда
Y К ОБЪЕКТУ
данный момент вреСЕЛЕКТОР
КС
мени в формировании
выходных сигналов
RG
участвует
только
часть входных сигналов,
целесообразна
установка на входе автомата
селектора
Рис. 1.7. Функциональная схема автомата с
входных
сигналов.
селектором
Селектор
представляет собой в общем случае многоканальный коммутатор, на управляющий вход
которого поступают сигналы с регистра состояния автомата. С помощью
селектора из всей совокупности входных переменных выделяются только те,
которые используются в данном состоянии автомата. При этом сокращается число
входов КС. Автомат приобретает вид, представленный на рис. 1.7.
20
В схеме автомата необходимо применять только м/с регистров со
стробированием (записью) по фронту, а не по уровню, не регистры-защелки, т.к.
в противном случае при переходе регистра в режим пропускания входной
информации замкнется обратная связь и возможна неконтролируемая генерация.
В качестве регистров можно взять КР1533ИР23, КР1533ИР27, КР1533ИР37.
Максимальная тактовая частота, определяющая быстродействие, должна быть
такой, чтобы суммарная задержка регистра и ППЗУ не превышала периода
тактовой частоты.
21
2. МИКРОПРОГРАММируемые КОНТРОЛЛЕРЫ И
МИКРОПРОЦЕССОРЫ
2.1.
2.2.
Блок микропрограммного управления
Блок обработки цифровых данных
Микропрограммируемые контроллеры и микропроцессоры являются
простейшими, исторически первыми, устройствами, реализующими принцип
микропрограммного
управления.
Изучение
принципа
построения,
функционирования и программирования этих устройств облегчает понимание
устройства и процесса функционирования микропроцессоров.
Цель главы – ознакомление с основными принципами построения и
функционирования микропрограммируемых контроллеров и микропроцессоров,
их схемной реализацией.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Основные блоки микропрограммируемого контроллера и их назначение,
устройство и назначение блока микропрограммного управления,
устройство и назначение блока обработки цифровых данных,
принцип функционирования микропрограммируемого контроллера,
способы подключения объектов управления.
Систему управления
УУ УА
объектом со структурным автоматом можно
представить в виде соединения
управляющего
и
операционного
устройств (рис.2.1). Операционное
устройство (ОУ) определяется его
ОУ
КС
конкретным
назначением.
Управляющее
устройство
(УО)
является универсальным и реализуется
в виде структурного управляющего
автомата (УА).
Выходы комбинационной схемы
ПАМЯТЬ
можно разбить на 2 части (поля) по
функциональному
назначению:
управляющие
операционным
автоматом и управляющие памятью
Рис.2.1. Управляющее и
переменных состояний. Т.о. выход КС
операционное устройства
представляет собой микрокоманду
(МК) с 2 полями: МК для ОА и для
22
УА. При этом двоичное число на входе КС можно рассматривать как адрес
некоторой ячейки памяти (ПЗУ), содержимое которой появляется на ее выходе. А
память переменных состояний и часть комбинационной схемы - как счетчик
микрокоманд, что особенно видно при выполнении последовательности
микрокоманд с увеличением двоичного кода состояния на каждом такте. Внешние
входы КС и входы условий, поступающие с ОА и информирующие о результате
выполненной команды, модифицируют адрес, реализуя условные и безусловные
переходы и переходы к одной из начальных программ.
С точки зрения микропрограммного управления КС рассматривается как
микропрограммная память с входными сигналами, поступающими на ее адресный
вход.
Выход
ФОРМАТ МИКРОКОМАНДЫ
комбинационной схемы
НОВОЕ СОСТОЯНИЕ КОМАНДА К ОА
разделен на 2 поля: поле
управления ОА и поле
управления счетчиком
ФОРМАТ АДРЕСА МИКРОКОМАНДЫ
ВНЕШНИЕ ВХОДЫ ВХОДЫ УСЛОВИЙ ОТ ОА ВХОДЫ СОСТОЯНИЙ команд.
Управляющие
устройства, в которых используется принцип микропрограммного управления,
можно разделить на два класса: микропрограммируемые контроллеры
(микроконтроллеры) и процессоры команд (микропроцессоры).
Контроллером
называется
специализированное
управляющевычислительное устройство, как правило, без пульта управления.
Принципиальное отличие этих устройств состоит в числе уровней управления
процессом обработки данных. В первом классе такой уровень единственный уровень микропрограммного управления. Во втором - уровней два: системы
команд (уровень программного управления) и микропрограммного управления.
Рассмотрим эти два класса.
Микропрограммный контроллер представляет собой микропрограммный
автомат для цифровой обработки входных данных. Он синтезируется в виде
соединения двух устройств: управляющего устройства и операционного,
предназначенного для обработки цифровых данных в двоичной системе
счисления (рис.2.2). В качестве операционного устройства может быть любой
дискретный объект управления.
Алгоритм его работы представлен в виде программы, составленной из
последовательности команд (микрокоманд), записанных в микропрограммной
памяти. Эти микрокоманды задают на каждом такте функционирование
операционного и управляющего устройств, т.е. блока обработки данных и блока
микропрограммного управления.
Вследствие этого основным блоком микроконтроллера является блок
микропрограммного управления (БМУ), функцией которого является
формирование адреса очередной микрокоманды (МК) в управляющей
микропрограммной памяти (МПП). Начальная команда микропрограммы задается
(вводится) в БМУ извне.
23
УПРАВЛЯЮЩЕЕ
УСТРОЙСТВО
ПОЛЕ
УПРАВЛЕНИЯ
УПРАВЛЯЮЩАЯ
ПАМЯТЬ, МПП
ВХОД
ДАННЫХ
ОПЕРАЦИОННОЕ
УСТРОЙСТВО
ПОЛЕ
ВЫХОД
ДАННЫХ
АДРЕСА
РЕГИСТР АДРЕСА
ПОЛЕ
БЛОК
УСЛОВНЫХ
МИКРОПРОГРАММНОГО ПЕРЕХОДОВ
УПРАВЛЕНИЯ
(БМУ)
ПРИЗНАКИ
(УСЛОВИЯ)
ФОРМАТ МИКРОКОМАНДЫ
ПОЛЕ
АДРЕС
АДРЕСА
НАЧАЛЬНОЙ
КОМАНДЫ
К
БМУ
ПОЛЕ УСЛОВПОЛЕ
НЫХ ПЕРЕХОДОВ УПРАВЛЯЮЩИХ
СИГНАЛОВ
К
БМУ
К
ОУ
Рис. 2.2. Микропрограммный контроллер
В формате микрокоманды обычно выделяют 2 части: одна ее часть
определяет функционирование БМУ при определении адреса очередной МК и
может быть названа микрокомандой БМУ, другая часть
определяет
функционирование ОУ и может быть названа микрокомандой ОУ.
В свою очередь микрокоманда БМУ может быть разделена на 2 поля: поле
адреса для явного указания адреса очередной микрокоманды и поле управления
следующим адресом, определяющее, имеет ли место условный или безусловный
переход, и в случае условного перехода - значение каких условий определяет
адрес очередной МК. При отсутствии переходов поле управления следующим
адресом микрокоманды БМУ содержит указание на формирование очередного
адреса.
Для реализации функции управления адресом МК один из разрядов поля
управления следующим адресом указывает на вид перехода: условный или
безусловный. Кроме того, для каждого условия в поле условных переходов
имеются разряды, указывающие на участие данного условия в определении
адреса МК. Поле микрокоманды ОУ используется для подачи управляющих
сигналов в операционное устройство.
В операционном устройстве выполняются все действия в соответствии с его
назначением и выполняемой микропрограммой. Так, если ОУ является АЛУ , то
выполняются арифметические и логические операции над входными данными.
Более подробно структурная схема микропрограммного контроллера и его
управляющего
устройства,
существенным
образом
определяющего
быстродействие, представлена на рис. 2.3.
24
ТАКТОВЫЕ
ФОРМИРОВАТЕЛЬ
АДРЕСОВ
МИКРОКОМАНД
ИМПУЛЬСЫ
ПРИЗНАКИ
РЕГИСТР
АДРЕСА МК
ВНЕШНИЙ
МИР
МИКРОПРОГРАММНАЯ
ПАМЯТЬ (МПП)
РЕГИСТР
МИКРОКОМАНД
ВХОД
ДАННЫХ
РЕГИСТР
ПРИЗНАКОВ
ВЫХОД
ДАННЫХ
ОПЕРАЦИОННОЕ
УСТРОЙСТВО
Рис.2.3. Функциональная схема микропрограммного контроллера
Регистр адреса МК, регистр МК и регистр признаков (РгС) могут
отсутствовать. Однако их наличие существенно ускоряет выполнение
микропрограмм, так как позволяет осуществить совмещение во времени
различных операций, выполняемых БМУ, например, выборки микрокоманды и
формирование адреса следующей микрокоманды.
Процессор команд в предельно упрощенном варианте представлен на
рисунке 2.4. Часть его компонентов - формирователь адресов микрокоманд
(ФАМ), микропрограммная память (МПП), регистр микрокоманд (РгМК) присутствует и в микропрограммируемом контроллере. Однако прикладной
алгоритм полностью (или частично) записан не в МПП, а во внешней памяти
программ.
Прикладной алгоритм выполняется в процессоре как
последовательность команд программы. В свою очередь каждая команда
интерпретируется своей микропрограммой, т.е. в МПП хранятся микропрограммы
интерпретации команд программы.
Соответствие между кодом команды, поступающей в регистр команд (РгК),
и микропрограммой устанавливается дешифратором начальных адресов (ДШНА)
микропрограмм, реализуемым в виде постоянного запоминающего устройства
(ПЗУ).
В операционно-адресной части выполняются все действия по обработке
информации, поступающей по шине данных, хранению промежуточных
результатов, формированию адресов команд и результатов. В процессорах
небольшой производительности формирование адресов команд осуществляется
той же аппаратурой, что и арифметическо-логические операции. В
высокопроизводительных процессорах функции адресной обработки возложены
на специальную аппаратуру. Благодаря распараллеливанию процессов и
повышению разрядности выполнение команды осуществляется за один такт.
25
ФОРМИРОВАТЕЛЬ
РЕГИСТР
АДРЕСОВ
МИКРОКОМАНД
КОМАНД
РЕГИСТР
АДРЕСА МК
ШИНА АДРЕСА
ДЕШИФРАТОР
КОМ-
ШИНА
НАЧАЛЬНОГО
АДРЕСА
МУТАТОРЫ
ДАННЫХ
(ДШНА)
ШИНА
УПРАВЛЕНИЯ
УПРАВЛЕНИЕ
МИКРОПРОГРАММНАЯ
ПАМЯТЬ (МПП)
КОММУТАТОРОМ
ВНЕШНЯЯ
ПАМЯТЬ
ПРОГРАММ
И
ДАННЫХ;
СВЯЗЬ С
ВНЕШНИМИ
УСТРОЙСТВАМИ
ДАННЫЕ
РЕГИСТР
МИКРОКОМАНД
БЛОК ОБРАБОТКИ
ДАННЫХ
РЕГИСТР
(ОПЕРАЦИОННАЯ ЧАСТЬ)
АЛУ
ПРИЗНАКОВ
Рис. 2.4. Процессор команд
Более подробно построение и функционирование микропрограммируемого
контроллера рассмотрим на примере построения 4-разрядного контроллера на
базе микропроцессорного комплекта (МПК) К1804.
26
2.1. Блок микропрограммного управления
Рассмотрим более подробно структуру микропрограммируемого устройства
управления. Основой устройства является блок микропрограммного управления
(БМУ), который предназначен для выработки сигналов управления,
обеспечивающих работу управляемого объекта по заданному алгоритму. В
качестве объекта управления может выступать станок, стиральная машина, блок
обработки данных (БОД) для цифровых операций и т.д.
Как правило, БМУ состоит из микропрограммной памяти, содержащей
последовательность микрокоманд, реализующей алгоритм, схемы управления
адресом микрокоманды (СУАМ), вырабатывающей адрес следующей
микрокоманды,
схемы
управления
следующим
адресом
(СУСА),
вырабатывающей систему управляющих сигналов для СУАМ и регистра
микрокоманд, содержащего выполняемую в данный момент микрокоманду
(рис.2.5).
БМУ осуществляет
ОТ ОБЪЕКТА УПРАВЛЕНИЯ
К ОБЪЕКТУ УПРАВЛЕНИЯ
выборку
ПРИЗНАКИ
(БОД)
последовательности
микрокоманд,
реализующИХ алгоритм
СЕЛЕКТОР
управления,
из
ПРИЗНАКОВ
микропрограммной
РЕГИСТР МИКРОКОМАНД
памяти
в
регистр
микрокоманд. В формате
СУСА
микрокоманды
часто
можно выделить поля:
управляющие выбором
МИКРОПРОГРАММНАЯ
следующего
адреса,
СУАМ
ПАМЯТЬ
прямого указания адреса,
(МПП)
управления
работой
самого
объекта.
Рис.2.5. Блок микропрограммного управления
Конкретный формат и
(БМУ)
разрядность
микрокоманды определяется разработчиком и зависит от объема
микрoпрограммной памяти, требуемой для реализации заданного алгоритма и от
количества и свойств требуемой системы сигналов управления объектом.
Например,
в
микропрограммируемом
контроллере
на
базе
микропроцессорного набора К1804 можно использовать 32-разрядный формат
слова микрокоманды. Микропроцессорный набор К1804 является 4-разрядным и
наращивание разрядности достигается путем параллельного включения
микросхем. Разряды 28-31 можно использовать для прямого указания адреса
перехода, разряды 24-27 сделать полем управления следующим адресом,
содержащим код метода нахождения следующего адреса микрокоманды.
Остальные разряды микрокоманды - управляющие сигналы для объекта
управления (например, для блока обработки данных).
27
СУАМ предназначена для выработки адреса следующей микрокоманды,
хранящейся в микропрограммной памяти. В схеме СУАМ выделяются следующие
структурные единицы:
регистр адреса, блок выборки адреса, счетчик
микрокоманд, стек (рис.2.6.). Примером реализации СУАМ служит м/с
К1804ВУ1.
Регистр
адреса
РАЗРЯДЫ РЕГИСТРА МИКРОКОМАНД
используется для
хранения адреса,
принятого
от
РЕГИСТР АДРЕСА
МИКРОКОМАНДЫ
внешнего
СТЕК
ОТ РГ.
источника.
ВНЕШНИЙ
ПАМЯТЬ УПРАВЛЕНИЕ МК
АДРЕС
Обычно
он
подключается к
полю
прямого
указания адреса
БЛОК ВЫБОРКИ
СЧЕТЧИК
АДРЕСА
МИКРОКОМАНД
регистра
РЕГИСТР МК
(МУЛЬТИПЛЕКСОР)
микрокоманд для
УПРАВЛЕНИЕ
ИНКРЕМЕНТОР
организации
ОТ РГ. МК
условных
и
ЛОГИКА
безусловных
переходов.
АДРЕС МИКРОКОМАНДЫ
Блок
выборки
УПРАВЛЕНИЕ
ОТ РГ. МК
адреса содержит
мультиплексор, с
Рис. 2.6. Схема управления адресом микрокоманды
помощью
(СУАМ)
которого
выбирается источник адреса следующей микрокоманды. В зависимости от
управляющих сигналов мультиплексора его источником может быть регистр
адреса, прямой вход внешнего адреса, счетчик микрокоманд и стек. Адрес с
блока выборки адреса поступает на выход СУАМ через логическую схему,
позволяющую модифицировать адрес путем установки маски.
Счетчик микрокоманд (СМК), состоящий из инкрементора и регистра СМК,
подключен к выходу СУАМ и вычисляет следующий, увеличенный на 1, адрес
микрокоманды. Увеличение его содержимого и запись увеличенного адреса в
регистр СМК производится после записи очередной текущей микро команды из
памяти в регистр микрокоманд (в следующий полутакт машинного времени).
Выход счетчика подключен к одному из входов мультиплексора и ко входу
стека.
Стек - особым образом организованная память по принципу: последний
зашел - первый вышел. Он предназначен для организации подпрограмм и при
работе подпрограммы содержит адрес возврата в основную программу. При
обращении к подпрограмме в стек заносится содержимое счетчика команд,
которое является адресом возврата, а на выход СУАМ поступает через
мультиплексор адрес подпрограммы из внешнего источника или с поля прямого
28
указания адреса регистра микрокоманд. При возврате из подпрограммы адрес
извлекается из стека и через мультиплексор поступает на выход СУАМ.
Сигналы, управляющие работой отдельных блоков СУАМ, определяются
содержимым поля управления следующим адресом регистра микрокоманд и
признаками результата выполнения предыдущей операции в объекте управления.
Признаки (нулевой результат, отрицательный результат ...) поступают, как
правило, для запоминания в регистр признаков от объекта управления. Для
проверки отдельных признаков при организации условных переходов на выходе
регистра признаков устанавливается селектор признаков, управляемый
выделенными разрядами поля управления следующим адресом регистра
микрокоманд.
Обычно все возможные комбинации управляющих сигналов для СУАМ не
реализуются. Для уменьшения обьема ППЗУ и регистра микрокоманд
применяется кодирование используемых наборов сигналов в поле микрокоманды,
управляющей выбором следующего адреса. Это поле микрокоманды вместе с
выбранным в селекторе признаком поступает на вход схемы управления
следующим адресом (СУСА), которая и вырабатывает всю систему управляющих
сигналов для СУАМ. СУСА представляет собой комбинационную схему
(дешифратор) N в M при N<M, реализованную на ППЗУ.
Выходной сигнал СУАМ, содержащий адрес микрокоманды, проходит
через дополнительную логическую схему, позволяющую модифицировать
(маскировать) отдельные разряды и, тем самым, модифицировать формируемый
адрес.
Адрес микрокоманды, выработанный в СУАМ, поступает на адресный вход
микропрограммной памяти,
на выходе которой появляется содержимое
адресуемой ячейки, т. е. очередная микрокоманда. Эта микрокоманда
запоминается на один такт в регистре микрокоманд. Поле микрокоманды,
используемое для прямого указания адреса, поступает на СУАМ. Сигналы поля
управления выбором следующего адреса поступают на СУСА и на селектор
признаков, остальные поля предназначены для управления объектом.
29
2.2. Блок обработки цифровых данных.
Рассмотрим частный случай объекта управления, представляющего собой
блок обработки данных (БОД), как элемент микропроцессора или элемент
микропрограммируемого контроллера. Типичную структуру и принцип работы
БОД рассмотрим на примере микропрограммируемого контроллера. Основными
элементами БОД являются микропроцессорная секция наращиваемой
разрядности и схема управления сдвигами. Функциональную схему типичной
микропроцессорной секции рассмотрим на примере м/с КР1804ВС1 (рис .2.6).
АРИФМЕТИЧЕСКО-ЛОГИЧЕСКИЙ БЛОК
БЛОК ВНУТРЕННЕЙ ПАМЯТИ
РГ.
А
ОТ
РГ.
МК
А
РЗУ
В
В
PR0
РГ.
А
PR3
СДА
ВХОД
ДАННЫХ
А
СИД
D
АЛУ
"0" 0
РГ.
В
D
В
ПРИЗНАКИ
S
Q
PQ0
CДP
PQ3
РГ.
Q
ВЫХОД
ДАННЫХ
R
БЛОК
РГ.Q
К УЗЛАМ
БОД
Дешифраторы
микрокоманд
ОТ РГ.
МК
Рис.2.6. Микропроцессорная секция
Микропроцессорная секция состоит из четырех блоков: блока внутренней
памяти, арифметическо-логического блока, блока регистра Q и блока управления.
Блок внутренней памяти содержит регистровое запоминающее устройство
(РЗУ), представляющее набор регистров общего назначения (РОН) - 16 для
КР1804ВС1. Для обмена данными с регистрами общего назначения РЗУ имеет
два адресных входа (А и В), вход данных D, перед которым установлен
сдвигатель данных (СДА), и два выхода данных. Содержимое регистров,
адресуемых по входам А и В поступают через соответствующие регистры на
входы А и В селектора исходных данных (СИД), который выбирает операнды
для
арифметическо-логического устройства (АЛУ). СИД имеет три
дополнительных входа: вход содержимого регистра Q, виртуальный вход "0" и
внешний вход данных D, который может быть подключен к полю данных
микрокоманды. Операнды, выбранные СИД по каналам R и S поступают на АЛУ.
С выхода АЛУ через селектор выходных данных (СВД) результат операции
поступает на выход микропроцессорной секции и далее запоминается во внешнем
регистре выходных данных. На второй вход СВД поступает сигнал с входа А
30
СИД. Т.о. на выходе БОД появляется или результат операции в АЛУ или операнд,
считанный по каналу А.
Результат операции с АЛУ поступает также на СДА и РЗУ для запоминания
в регистре, адрес которого установлен на входе В РЗУ, и на вход блока регистра
Q, предназначенного для организации сдвиговых операций и операций с
удвоенной разрядностью. Формируемые в АЛУ признаки, содержащие
информацию о полученном результате (отрицательное число, 0, переполнение,
перенос) поступают на внешний регистр признаков, где запоминаются и
используются блоком микропрограммного
управления. Для организации
сдвиговых операций используется внешний двунаправленный коммутатор, вход и
выход которого подключены к входам наращивания разрядности PR0, PR3, PQ0,
PQ3 микропроцессорной секции.
Управление работой блоков микропроцессорной секции
и
двунаправленным коммутатором осуществляется специализированными полями
микрокоманды, содержащейся в регистре микрокоманд (РгМК).
Вместо блока обработки данных в качестве объекта управления может
выступать технологический объект с дискретными входными и выходными
сигналами. Технологический объект может быть подключен также к выходам
данных БОД.
31
3. ПРИНЦИПЫ ОРГАНИЗАЦИИ ЭВМ
3.1. Выполнение команд в ЭВМ
3.2. Общие принципы организации ввода-вывода
Микропроцессоры и ЭВМ, несмотря на различие их характеристик, имеют
общие принципы построения, функционирования и программирования.
Цель главы – ознакомление с основными принципами построения и
функционирования микропроцессоров, методами организации ввода-вывода
данных.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Основные блоки микропроцессора и их назначение,
регистры микропроцессора и их назначение,
порядок выполнения команд в ЭВМ,
принципы обмена по опросу готовности, по прерыванию и по прямому
доступу к памяти.
Под архитектурой микро-ЭВМ и микропроцессоров понимается
совокупность аппаратных и программных средств, доступных пользователю.
Архитектура определяет принципы организации вычислительной системы и не
отражает такие проблемы, как управление и передача данных внутри самого
процессора.
ЭВМ (рис.3.1.) содержит четыре основных компонента: процессор,
память, внешние устройства ввода/вывода и шину (канал ЭВМ).
Процессор предназначен для выполнения арифметическо-логических
операций над числами и управления работой ЭВМ. Он содержит устройство
управления (УУ), арифметическо-логическое устройство (АЛУ) и группу
регистров.
Устройство управления осуществляет управление работой всех элементов
процессора и процессом обмена информацией с другими блоками ЭВМ.
АЛУ предназначено для выполнения арифметическо-логических операций
над двоичными числами.
Регистры предназначены для хранения двоичных чисел и выполнения
других важных функций. По функциональному назначению можно выделить
следующие регистры.
Регистр команд (РК) предназначен для временного запоминания кода
текущей команды, которая дешифрируется в устройстве управления для
реализации действий, соответствующих этой команде. Регистр не доступен
пользователю.
32
ШИНА АДРЕСА
ШИНА ДАННЫХ
ШИНА УПРАВЛЕНИЯ
АЛУ
СЧЕТЧИК КОМАНД
ВЗУ
РЕГ. СОСТОЯНИЯ
УКАЗАТЕЛЬ СТЕКА
ДОПОНИТЕЛЬНЫЕ
РЕГИСТРЫ
РЕГИСТРЫ
УСТРОЙСТВО
ОБЩЕГО
НАЗНАЧЕНИЯ
ОЗУ
УВВ
УПРАВЛЕНИЯ
ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР
Рис. 3.1. ЭВМ
Регистр счетчик команд (СК) (Programm Counter - PC) предназначен для
формирования адреса следующей команды, т. е. адреса ячейки памяти,
содержащей код следующей команды. После считывания команды из указанной
им ячейки памяти и перемещения ее в регистр команд содержимое счетчика
команд автоматически увеличивается и становится равным адресу следующей по
порядку команды. Содержимое ячейки памяти, адрес которой в данный момент
находится в счетчике команд, всегда интерпретируется процессором как код
команды.
Регистр-указатель стека
(УС) (Stack Pointer -SP) предназначен для
организации в памяти ЭВМ аппаратно управляемого стека - памяти магазинного
типа, доступ к ячейкам которой осуществляется через указатель стека. Стек
используется для реализации механизмов работы
с подпрограммами и
обслуживания внешних и внутренних прерываний.
Регистры общего назначения (РОН) используются процессором как
временная быстродействующая память для входных и выходных операндов АЛУ
и для реализации различных методов адресации операндов, т. е. способов
указания местонахождения операндов. Число разрядов РОН обычно совпадает с
разрядностью АЛУ. Заметим, что некоторые процессоры имеют несколько
наборов РОН. Выбор набора определяется содержимым определенных разрядов
регистра состояния процессора.
Кроме того, современные процессоры имеют ряд дополнительных
регистров для реализации более сложных методов адресации опер андов и
управления процессором.
Регистр состояния (RS) предназначен для отражения текущего состояния
процессора и для установки режима его работы. В определенных разрядах этого
регистра индицируется состояние результата выполнения процессором текущей
33
операции (команды). Это разряды-признаки (флаги): нулевого результата (Z),
отрицательного результата (N) и т.д.
Память – оперативное (ОЗУ) или постоянное (ПЗУ) запоминающее
устройство, состоящee из последовательного набора запоминающих ячеек, каждая
из которых имеет свой адрес (номер) и предназначено для запоминания двоичного
числа или кода. Типичной для ЭВМ является байтовая организация памяти,
когда данные или команды занимают ячейки по 8 разрядов-битов и каждой такой
байтовой ячейке присвоен свой адрес в адресном пространстве ЭВМ - множестве
всех возможных адресов, определяемом размером физической памяти и
разрядностью адреса. При байтовой организации памяти информационные
единицы (коды, числа, команды), имеющие более 8 разрядов (16,32) размещаются
в соответствующем количестве последовательных байтовых ячеек. Адрес ячейки
памяти также представляет собой двоичное число. Обращение (чтение/запись) в
любой момент времени возможно только к одной, любой ячейке, путем установки
ее адреса на адресном входе памяти (в регистре адреса памяти). Память с таким
способом обращения к ее запоминающим ячейкам называется памятью с
произвольным доступом. Записываемые или считываемые данные через шину
данных канала поступают соответственно из процессора в ячейку для записи или
из ячейки в процессор при чтении памяти. В ЭВМ, имеющим, как правило, фоннеймановскую архитектуру, используется общая память для хранения данных и
кодов команд в двоичной форме. Коды команд (инструкции) и данные
(операнды) записанные в ячейках памяти не имеют отличительных признаков и
могут быть выявлены только из контекста программы. Не все адресное
пространство однородно. Отдельные области имеют специфическое
функциональное назначение, устанавливаемое аппаратно или программно
(операционной системой).
Каждый тип ЭВМ имеет свою архитектуру: набор регистров, имеющий свои
имена, свои разрядность и назначение, систему команд и методов адресации и
свое функциональное распределение адресного пространства. Занесение кодов и
данных в память осуществляется аппаратными (оператором с пульта, ПЗУ) или
программными (с внешних запоминающих устройств) средствами.
Периферийные устройства, подключаются к ЭВМ с помощью согласующих
устройств - интерфейсов, преобразующих систему сигналов канала ЭВМ в
систему управляющих сигналов для объекта управления (периферийного
устройства). В качестве периферийных устройств могут выступать накопители на
магнитных дисках, дисплеи, печатающие устройства, датчики и исполнительные
механизмы технологического оборудования.
Канал ЭВМ, связывающий ее компоненты, обычно имеет шинную
организацию. Шина - общая для всех компонент группа линий одного
функционального назначения. Шина ЭВМ функционально делится на три:
адресную, данных и управления. Шины адреса и данных могут быть объединены
в одну при мультиплексировании во времени передаваемых адреса и данных.
Разрядность шины и система сигналов в ней определяется процессором и в свою
очередь определяет устройство интерфейсов.
34
3.1. Выполнение команд в ЭВМ
Программа, выполняемая в ЭВМ, записана в последовательных ячейках
памяти в виде кодов команд. Первоначально, перед выполнением программы, в
счетчик команд заносится адрес ячейки памяти, содержащей код первой команды
программы. Далее процессор выполняет последовательность следующих
операций. Процессор передает содержимое счетчика команд (адрес очередной
команды) через шину адреса в регистр адреса памяти ОЗУ. Из адресуемой
ячейки памяти извлекается код команды и через шину данных передается в
регистр команд процессора. После считывания из памяти содержимого ячейки,
адрес которой указывается регистром-счетчиком команд, содержимое этого
регистра автоматически увеличивается и становится равным адресу следующей
по порядку ячейки памяти. Если команда занимает в памяти ЭВМ два байта, то
увеличение СК производится на два. Вслед за этим устройство управления
процессора начинает интерпретацию команды, находящейся в его регистре
команд. В начале определяется операция, которая должна быть выполнена
процессором по данной команде, и, в соответствии с ней, вырабатываются
сигналы для управления элементами процессора. Если необходимо, то
производится ввод из ОЗУ операндов, затем осуществляется выполнения
заданной операции. Результат операции пересылается в один из регистров или в
память по адресу, определяемому устройством управления при интерпретации
кода команды. На этом цикл выполнения команды заканчивается. Процессор
снова помещает содержимое СК (адрес следующей команды) в регистр адреса
памяти, производит считывание и выполнение следующей команды.
Система команд и методы адресации
Каждый тип ЭВМ имеет свою систему команд и методов адресации, т.е.
способов нахождения операндов. Расширение ЭВМ (переход к более
производительным поколениям) связано с увеличением разрядности адресов и
операндов, появлением более гибкой системы адресации, новых типов данных и
команд.
Команды (инструкции) содержат одно- или двухбайтный код инструкции, за
которым могут следовать несколько байт, определяющих режим исполнения
команды и операнды. Результат выполнения операции записывается в место,
определенное инструкцией или место, заданное операндом назначения. Операнды
могут находиться в памяти, регистрах процессора или непосредственно в
команде. Типовой набор инструкций включает: команды пересылки данных,
арифметическо-логических операций, десятичной коррекции, сдвиговых
операций, условных и безусловных переходов по программе и т. д.
Набор команд процессора включает безадресные (без указания операнда),
одноадресные (с одним операндом), и двухадресные команды. При этом
используются различные метода адресации. Наиболее часто используемые
методы:
35
1. Регистровый метод адресации - операнд находится в регистре, указанном
в команде.
2. Косвенно-регистровый метод – указанный в команде регистр (или пара
регистров) содержит адрес операнда.
3. Непосредственный метод адресации - операнд выбирается из ячейки,
следующей за командным словом.
4. Абсолютный метод адресации - в байтах следующих за командным
словом содержится абсолютный адрес операнда.
Команды условной или безусловной передачи управления (перехода)
принудительно изменяют содержимое счетчика команд в соответствии со
значением адреса перехода, задаваемого в команде. Обычно используют два
способа указания адреса кода программы, на который происходит переход:
указывают абсолютный адрес, на который следует перейти, или величину
смещения адреса перехода относительно текущего значения счетчика команд
(PC), т.е. адреса самой команды перехода. Указываемое в команде смещение
может быть положительным или отрицательным, обеспечивая смещение в
сторону старших или младших адресов соответственно. Аналогично изменяется
содержимое счетчика команд при выполнении команды вызова процедуры
(подпрограммы).
При эксплуатации и разработке систем управления объектами на базе
ЭВМ необходимо тщательное изучение особенностей архитектуры используемых
процессоров.
Стек
Стек - это один из способов организации памяти, используемый, для
хранения адресов возврата и данных при обращении к подпрограммам и
обработке прерываний. Стек - память магазинного типа, реализует
последовательный способ доступа к данным, который коротко формулируют в
виде: "первым пришел - последним вышел".
Обычно в
ЭВМ под стек
динамически выделяют определенное
оперативная память,
количество последовательных ячеек в
отведенная под стек
Адреса
пространстве
оперативной
указатель адресном
памяти
памяти. Доступ к ячейкам памяти,
стека
ДАННЫЕ
А
выделенным под стек, осуществляется
А
путем специального режима адресации с
А-2
использованием регистра - указателя стека
(УС или SP). При работе со стеком
содержимое регистра - указателя стека
Рис.3.2. Стек
интерпретируется процессором как адрес
ячейки памяти, в которой находится число, записанное в стек последним. Эта
ячейка называется "вершиной стека". Общепринятым является заполнение стека
данными в сторону уменьшения адресов его ячеек.
Начальная установка указателя стека выполняется операционной системой
или пользователем до операций со стеком. Процедура начальной установки
36
состоит в указании выделяемой под стек области памяти. Для этого записывают в
указатель стека адрес ячейки памяти, являющейся "вершиной" пустого стека, т.е.
максимальный адрес области ОЗУ, отводимой под стек.
При записи данного в стек процессор корректирует содержимое регистрауказателя стека, смещая его на одно слово в сторону уменьшения адресов,
после чего в указываемую этим регистром ячейку памяти пересылается
записываемое число. При засылке в стек следующего числа опять происходит
коррекция, т.е. уменьшение содержимого указателя стека, и запись следующего
числа уже в новую ячейку памяти. Таким образом, регистр-указатель стека всегда
содержит адрес последней записанной ячейки стека, т.е. указывает на вершину
стека. Метод адресации ячеек памяти, который используется при засылке чисел в
стек, называется автодекрементный метод через регистр указателя стека (SP).
Чтение информации из стека или, как еще говорят, выталкивание числа из
стека происходит следующим образом. Число прочитывается из ячейки памяти,
адрес которой находится в регистре-указателе стека, после чего содержимое этого
регистра автоматически корректируется в сторону увеличения адресов. При
прочтении следующего числа производится аналогичная операция. Хотя при
считывании числа из вершины стека используется термин "выталкивание", само
число из ячейки стека никуда не девается. Просто коррекция регистра-указателя
стека делает содержимое этой ячейки недоступным с помощью механизма работы
со стеком. При записи в стек очередного числа оно будет записано по адресу
числа, вытолкнутого (считанного) из стека перед этим. Метод адресации ячеек
памяти, используемый при чтении чисел из стека, называется автоинкрементный
метод адресации через SP.
Доступ к ячейкам стека осуществляется не по адресам, а только через так
называемую "вершину стека". При записи данных в стек загружаемые данные
последовательно помещаются на "вершину стека", при этом ранее записанные
значения как бы проталкиваются вглубь стека. В каждый момент времени для
чтения в стеке доступно только слово, находящееся на его вершине. Остальные
данные могут быть прочитаны только в порядке, обратном их записи в стек
путем последовательного "выталкивания" этих данных из глубины стека на его
вершину. При этом информация о вытолкнутых данных теряется.
Подпрограммы
Подпрограммой обычно называют часть программы, к которой можно
многократно обращаться из других, разных, мест основной программы с
последующим возвратом в место, откуда произошел вызов.
Подпрограмма является эффективным средством, позволяющим
существенно экономить занимаемый программой объем памяти. Она устраняет
дублирование в программе многократно выполняемых блоков команд путем
обращения к одному и тому же программному модулю. На языках высокого
уровня эквивалентным подпрограмме термином является процедура.
При вызове подпрограммы происходит передача управления на адрес
первой команды подпрограммы. Для этого в СК необходимо занести начальный
адрес подпрограммы. Необходимо также запомнить адрес возврата из
37
подпрограммы, который является адресом команды, следующей за командой
вызова. Адрес возврата в момент обработки процессором команды вызова
подпрограммы находится в счетчике команд процессора. Поэтому сначала
необходимо запоминание содержимого счетчика команд (адреса возврата) перед
переходом к выполнению подпрограммы, а затем для возврата из подпрограммы
использование этого запомненного адреса.
Если мы хотим реализовать возможность использования вложенных
подпрограмм, то мы должны запоминать не один адрес возврата, а адреса
возврата из каждой вызываемой подпрограммы. Для того, чтобы не нарушать
логику программы, они должны извлекаться для использования в порядке,
противоположном порядку их запоминания при входе в подпрограммы.
Запоминающей структурой, используемой для хранения адресов возврата,
является стек с принцип организации "первым пришел последним вышел". При
последовательном входе в подпрограммы адреса возврата последовательно
засылаются в стек, а при выходе из подпрограмм выталкиваются из стека и
загружаются в счетчик команд в порядке, противоположном их записи в стек.
При выполнении команд обращения к подпрограммам и возврата эти действия
осуществляются автоматически.
Аргументом команды "Вызов подпрограммы" служит задаваемый адрес
входа в подпрограмму. При выполнении этой команды процессор осуществляет
следующие операции: текущее содержимое регистра-счетчика команд процессора
(адрес, на который необходимо вернуться из вызываемой подпрограммы)
пересылается в стек; задаваемый в команде вызова подпрограммы адрес входа в
подпрограмму помещается в регистр-счетчик команд.
После этого обычным образом из памяти считывается команда, адрес
которой находится в счетчике команд, т.е. первая команда подпрограммы, и
начинается выполнение подпрограммы.
Команда "Возврат из подпрограммы" должна завершать любую
подпрограмму. Получив эту команду, процессор извлекает (выталкивает) из стека
записанный туда ранее командой "Вызов подпрограммы" адрес возврата и
помещает его в свой регистр-счетчик команд.
Таким образом, управление передается команде, следующей за командой вызова
подпрограммы.
Кроме подпрограмм имеется другой механизм изменения порядка
выполнения программ. Это прерывания, которые вызываются внутренними и
внешними событиями и специальным типом команд.
38
3.2. Общие принципы организации ввода-вывода
Внешние устройства (ВУ) подключаются к процессору через шину вводавывода, состоящую из шин адреса, данных и управления. Обычно шина вводавывода и шина памяти логически независимы. В некоторых ЭВМ они могут быть
совмещены. Устройства ввода-вывода или периферийные устройства являются
объектами управления и выполняют функции в соответствии с сигналами
управления, передаваемыми в них из ЭВМ, и формируют информацию о своем
состоянии, передаваемую в ЭВМ.
Для сопряжения внешнего устройства с конкретной ЭВМ служат так
называемые интерфейсные устройства (или просто интерфейсы). Интерфейс
ввода-вывода поддерживает протокол обмена данными по шине ввода/вывода и
управляет действиями периферийного устройства в соответствии с командами
процессора ЭВМ: преобразует данные из внутреннего представления ЭВМ в
форматы, используемые конкретным внешним устройством, и выполняет
обратное преобразование в формат, используемый процессором конкретной ЭВМ.
Конструктивно периферийные
устройства (объекты управления) обычно
выполняются как самостоятельные устройства, размещаемые отдельно от ЭВМ,
интерфейсы же почти всегда объединяются с процессором и памятью в "блок
процессора". Периферийными устройствами являются: дисплеи, печатающие
устройства, АЦП и ЦАП, накопители на магнитных носителях, технологическое и
сетевое оборудование.
Каждый канал обмена информацией внешнего устройства с процессором
представлен в интерфейсе своим портом ввода/вывода (регистром), имеющим
свой адрес (номер) и доступным как внешнему устройству, так и процессору.
Порт ввода-вывода (или регистр ввода-вывода) является частью интерфейса
устройства ввода-вывода и представляет собой группу разрядов (регистр),
содержимое которых программно доступно процессору во время операций вводавывода. С другой стороны к разрядам регистра подключены линии связи с
управляемым объектом.
Передача (вывод) числа или кода из ЭВМ во внешнее устройство
фактически реализуется их передачей из регистра процессора или ячейки памяти
ЭВМ в регистр данных (порт вывода) интерфейса внешнего устройства.
Аналогично, прием (ввод) информации из внешнего устройства заключается в
чтении процессором содержимого (числа или кода) регистра данных (порта
ввода) интерфейса. Передача или прием информации через порты ввода-вывода
во многих ЭВМ осуществляется с помощью специальных команд ввода-вывода.
В ЭВМ, использующим для адресации портов то же адресное пространство, что и
для адресации памяти, работа с ячейками памяти и регистрами внешних
устройств осуществляется одним и тем же набором команд.
Малая скоростью обработки данных во ВУ и неопределенность момента
времени, когда ему требуется осуществить обмен информацией, обуславливают
использование трех основных режимов обмена информацией с внешними
устройствами.
39
3.2.1. Программный режим ввода-вывода
В этом режиме обмен информацией осуществляется по инициативе и под
управлением выполняемой программы пользователя. В связи с низкой
скоростью обработки данных внешними устройствами (ВУ) передача данных в
регистр или чтение их из регистра данных ВУ должны осуществляться в моменты
времени, когда оно закончило обработку или формирование очередно го слова
данных и готово к обмену. Для сообщения процессору о состоянии готовности к
обмену данными обычно служит регистр состояния устройства. Один из
разрядов регистра состояния устройства устанавливается самим внешним
устройством в единицу или сбрасывается в ноль ВУ в зависимости от состояния
готовности или неготовности. Этот разряд часто называют флагом готовности
устройства.
При программном обмене данными процессор
читает содержимое регистра состояния ВУ и проверяет
флаг готовности (рис. 3.3). Если внешнее устройство
готово к обмену, то осуществляется обмен между
Готов?
регистром данных и процессором. В противном случае
Нет
повторяется опрос регистра состояния внешнего
устройства.
Да
Например, программа вывода на медленное ВУ
текстового сообщения, хранящегося в памяти ЭВМ в
Обмен
виде массива кодов символов, должна осуществлять в
цикле последовательную передачу этих кодов из ячеек
Рис. 3.3. Блок-схема памяти в регистр данных ВУ с предварительной
проверкой перед выводом каждого кода флага
обмена по опросу
готовности в регистре состояния ВУ .
флага
При вводе символов с клавиатуры аналогичным
образом должен проверяться разряд готовности ее регистра состояния, который
устанавливается в единицу интерфейсом клавиатуры при нажатии на одну из ее
клавиш и помещении соответствующего этой клавише кода в регистр данных
клавиатуры. Из регистра данных код нажатой клавиши может быть прочитан
процессором, после чего происходит автоматический сброс флага готовности
клавиатуры (т.е. код нажатой клавиши нельзя прочитать больше одного раза).
Время, затрачиваемое на ввод/вывод массива данных при использовании
программно-управляемого режима, определяется быстродействием внешнего
устройства. Процессор ЭВМ должен быть занят выполнением процедуры вводавывода, ожидая фактически большую часть времени готовности ВУ (выполняя
циклически проверку флага готовности).
Быстродействующие ВУ могут не иметь регистра состояния, т.к. не
требуется проверять флаг готовности.
40
3.2.2. Обмен информацией в режиме прерывания программы
Существенным недостатком программного режима обмена является
неэффективное использование процессорного времени. Концепция прерывания
программы позволяет устранить этот недостаток. Механизм, реализующий
прерывания, включает в себя как аппаратные средства ЭВМ, так и программные.
Инициатива обмена информацией в этом случае принадлежит внешнему
устройству. При обмене по инициативе ВУ осуществляется прерывание
выполняемой процессором программы и принудительный перевод процессора на
выполнение программы обслуживания внешнего устройства, затребовавшего
прерывание, по окончании которой процессор возвращается к выполнению
прерванной ранее выполняемой программы.
Для организации работы ЭВМ в режиме прерывания программы в памяти
ЭВМ помимо основной программы (программ) размещаются программы
обработки прерываний, т.е. программы обслуживания внешних устройств,
вызывающих прерывания.
Часть памяти отводится по стек - память магазинного типа, доступ к
ячейкам которой осуществляется через регистр-указатель стека по принципу
“последние записанные данные первыми считываются”. Такая организация стека
необходима для реализации вложенных подпрограмм и прерываний.
Кроме того, часть памяти отводится под так называемые векторы
прерывания. Обычно векторы прерывания - это ячейки памяти, адреса которых
жестко закреплены за конкретными внешними устройствами. В ячейках вектора
помещен адрес программы обслуживания прерывания от соответствующего
внешнего устройства. Векторы прерывания внешних устройств обычно
располагаются в начальной области оперативной памяти, занимая несколько сот
ячеек. Понятно, что в этой области не следует размещать какие-либо программы.
Алгоритм обработки прерывания выглядит следующим образом.
1. Внешнее устройство, которому необходим обмен информацией с ЭВМ,
посылает процессору по специальной линии (общей для всех внешних устройств)
сигнал запроса (требования) прерывания.
2. Получив сигнал запроса прерывания, процессор выполняет действия,
обеспечивающие возврат в прерванную программу после выполнения программы
обслуживания ВУ. Процессор завершает выполнение команды основной
программы; запоминает в стеке содержимое регистра состояния процессора;
вслед за этим в стеке запоминает содержимое регистра-счетчика команд, т.е.
адрес возврата.
3. Обеспечив сохранение текущего состояния выполняемой программы,
процессор посылает внешнему устройству (по общей для всех внешних устройств
линии) сигнал предоставления прерывания, сообщая о своей готовности к
обслуживанию прерывания.
4. Получив от процессора сигнал предоставления прерывания, внешнее
устройство передает процессору адрес своего вектора прерывания. Адреса
векторов прерывания, которые уникальны для каждого внешнего устройства, по
сути, являются их идентификаторами.
41
5. Процессор, получив от внешнего устройства адрес его вектора
прерывания, пересылает в свой счетчик команд содержимое ячеек вектора, т.е.
адрес программы обслуживания данного ВУ. Выполняя команду, адрес которой
находится в его счетчике команд, т.е. первую команду программы обслуживания
прерывания, процессор обычным образом начинает выполнение программы
обслуживания. Выполнение программы обслуживания ВУ завершается
специальной командой "ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ ".
6. Получив команду "ВОЗВРАТ ИЗ ПРЕРЫВАНИЯ", завершающую
программу обслуживания, процессор выталкивает (считывает) из стека ранее
сохраненный там адрес возврата и пересылает его в свой счетчик команд, затем
выталкивает из стека и записывает в свой регистр состояния прежнее слово
состояния процессора, полностью восстанавливая тем самым свое состояние.
7. Процессор возобновляет выполнение ранее прерванной программы с
точки прерывания.
Адреса векторов для каждого ВУ жестко фиксированы в памяти ЭВМ,
размещение программ обслуживания прерываний в памяти определяется
пользователем или операционной системой. Адреса этих программ или
устанавливаются аппаратно или заносятся в соответствующие ячейки векторов
операционной системой или основной программой пользователя.
Использование стека для сохранения адреса возврата из прерывания и
текущего слова состояния процессора позволяет реализовать процесс
обслуживания вложенных прерываний. Вопросы приоритетности, конфликтов и
запретов при прерываниях решаются следующими архитектурными средствами.
Существует возможность программного запрета обслуживания следующего
прерывания от ВУ путем установки/снятия определенного разряда (раз рядов)
регистра состояния процессора при обслуживании текущего прерывания. Запись
слова состояния процессора (PSW) может осуществляться специальной командой
программным путем. Это обеспечит запрет прерываний, если этот разряд не
будет очищен программным путем.
В отдельных внешних устройствах существует также возможность запрета
прерывания путем установки/снятия определенного разряда в регистрах
состояния внешних устройств. Сигнал требования прерывания внешним
устройством в этом случае не вырабатывается.
В некоторых ЭВМ используется так называемая цепочечно-групповая
схема установления приоритета устройства при прерываниях. В этом случае
сигнал предоставления (подтверждения) прерывания проходя последовательно
через интерфейсы всех внешних устройств,
доходит до устройства,
затребовавшего прерывание. Само же это устройство запрещает дальнейшее
распространение этого сигнала к другим, более удаленным от процессора
устройствам. Таким образом, если два устройства одновременно затребуют
прерывание, сигнал предоставления прерывания поступит только на то из них,
которое расположено ближе по цепочке к процессору. Фактический приоритет
устройства в обслуживании прерывания будет определяться "близостью"
расположения его интерфейса к центральному процессору.
42
В других ЭВМ для организации прерываний и разрешения конфликтов
используется специализированный контроллер прерываний, на который
поступают запросы от внешних устройств. Контроллер обеспечивает вызовы
прерываний от внешних устройств в соответствии с их приоритетом и передачу
соответствующих векторов процессору при обработке прерывания.
Во многих ЭВМ выделяют, кроме того, так называемые немаскируемые
прерывания. Обычно ими являются прерывания, сигнализирующие процессору о
внешних событиях особой важности (носящих катастрофический характер таких, как отключение питания, сбой памяти и т.п.). Немаскируемые прерывания
признаются процессором всегда независимо от установки его приоритета, т.е.
они обладают наивысшим приоритетом. Обслуживание такого рода прерываний
позволяет в ряде случаев спасти данные и программу пользователя от
необратимых нарушений.
Кроме прерываний, вызываемых внешними по отношению к ЭВМ
событиями, в ЭВМ обычно реализованы и так называемые внутренние
прерывания, называемые еще ловушками. Такие прерывания возникают
автоматически по сигналам в самом процессоре, например, в случае получения
процессором несуществующего кода команды, обращения по несуществующему
адресу, ошибки деления и др. Как и внешние, внутренние прерывания
обеспечивают переход процессора на программы обслуживания этих нештатных
ситуаций, задаваемых соответствующими векторами прерываний.
В системе команд многих ЭВМ существуют также специальные команды,
вызывающие командные прерывания, или команды-ловушки. Командные
прерывания являются способом обращения из основной программы к
программным блокам с последующим возвратом в основную программу.
Командные прерывания подобны подпрограммам, но используют несколько
отличный механизм работы. Командное прерывание- это команда с особым
форматом и алгоритмом выполнения, как при аппаратном прерывании. При
обработке этих команд также осуществляется переход на программы, адреса
которых задаются векторами прерывания, связанными с этими командами.
Каждая команда имеет свой вектор прерывания, содержащий адрес программы
обработки прерывания (новое значение счетчика команд процессора PC). При
выполнении команды значения счетчика команд (PC) берется из вектора
прерывания, а его предыдущее значение (адрес возврата) заносятся в стек.
Использование командных прерываний в какой-то мере напоминает
подпрограммы, однако является более удобным в программах операционных
систем для организации библиотек системных макрокоманд, операций вводавывода и других операций, связанных с взаимодействием пользовательских и
системных программ. Особенно широко они используются в микро-ЭВМ на базе
INTEL 80286.
Обработка прерывания должна завершаться командой возврата из
прерывания, по которой происходит возврат в основную программу.
43
3.2.3. Прямой доступ к памяти
Обмен данными в режиме прямого доступа к памяти (ПДП) позволяет
осуществлять быстрый обмен данными непосредственно между основной
памятью ЭВМ и интерфейсом ввода-вывода без участия процессора, что экономит
его временной ресурс. Обычно в таком режиме проводится обмен с внешними
запоминающими устройствами, например, с накопителями на магнитных дисках.
Обменом в режиме прямого доступа к памяти управляет не программа,
выполняемая процессором, а устройство, называемом контроллером прямого
доступа к памяти.
При необходимости осуществления сеанса прямого доступа к памяти
контроллер ПДП посылает процессору сигнал "требование прямого доступа".
Процессор, получив этот сигнал, завершает цикл обращения к каналу ЭВМ и
приостанавливает выполнение очередной команды, не дожидаясь ее завершения.
После этого выдает в контроллер ПДП сигнал "предоставление прямого доступа"
и отключается от шин системного интерфейса. С этого момента все шины канала
ЭВМ управляются контроллером ПДП. Таким образом, осуществляется захват
управления шинами ЭВМ. Контроллер ПДП, используя адресную шину, шину
данных и шину управления ЭВМ, самостоятельно формирует адрес
соответствующей ячейки памяти и выполняет пересылку данных из ВУ в память
или из ячейки памяти во ВУ, он также ведет подсчет числа переданных байтов
или слов. После завершения обмена управление возвращается процессору ЭВМ.
Передача информации в режиме ПДП может вестись как большими блоками
информации, так и малыми порциями, вписывая их в промежутки между циклами
обращения процессора к каналу. Захват контроллером ПДП циклов управления
шинами ЭВМ для работы с ее памятью, конечно, замедляет выполнение
процессором основной программы, хотя при правильной организации работы
процессора во время цикла ПДП он может не приостанавливать полностью свою
работу, а выполнять операции, не связанные с обращением к памяти по шинам
данных и адреса. Заметим, что в режиме прямого доступа к памяти контроллер
ПДП должен обеспечить выполнение регенерации динамической памяти ОЗУ.
Режим прямого доступа к памяти позволяет гораздо более эффективно
использовать время процессора при обмене большими блоками информации.
3.2.4. Подключение внешних устройств
На
основе микроЭВМ производится построение контрольноизмерительных систем, систем управления технологическими процессами,
контроллеров периферийных устройств, бытовых приборов и игровых автоматов.
Подключение регистров внешних устройств в системе с раздельными
шинами адреса и данных существенно проще и реализуется по следующей
функциональной схеме представленной на рис. 3.4. Устройство сопряжения с
объектом управления может содержать несколько параллельных регистров
вывода для хранения выходных данных. Разряды выходных регистров
44
подключаются к объектам управления для дискретного управления ИМ. Для
формирования выходного аналогового сигнала на выходе регистра может быть
установлен ЦАП.
Адрес регистра, к которому производится обращение, поступает на
дешифратор адреса и сигналов управления. Дешифратор вырабатывает сигнал
(строб) записи или строб чтения для конкретного регистра, если выставленный
адрес совпадает с адресом (номером) регистра (устройства) и присутствует
управляющий сигнал записи (вывод) или чтения (ввод) в шине управления. Строб
записи поступает на вход записи (синхронизации) соответствующего регистра.
Строб чтения поступает на управляющий вход (Е) микросхемы передатчика (ВД),
разрешая передачу данных с входа передатчика в шину данных. Дешифратор
формирует также сигналы квитирования, которые поступают в шину управления
и информируют процессор о завершении цикла обмена
Вход данных каждого регистра подключен к шине данных. При записи
данных в выходной регистр, процессор выставляет в шине адреса адрес регистра,
в шине данных – данные, выводимые в регистр, и с задержкой - сигнал вывод
(запись) в шине управления. Дешифратор при получении адреса и сигнала
вывода вырабатывает строб записи. По стробу записи данные из шины данных
заносятся в адресуемый регистр.
Входные данные от дискретных датчиков, как правило, не хранятся в
регистрах и поступают непосредственно на вход передатчика (виртуальный
входной регистр). При чтении процессор устанавливает адрес и с задержкой сигнал "Ввод". Дешифратор вырабатывает сигнал (строб) включения передатчика.
Данные поступают в шину данных и считываются процессором.
Для ввода аналоговых сигналов в устройство сопряжения с объектами
(УСО) входит АЦП. Обычно используется один АЦП, выход которого подключен
к своему передатчику. Для ввода нескольких аналоговых сигналов на входе АЦП
устанавливается коммутатор аналоговых сигналов, управляемый от выходного
регистра. Сигнал о готовности АЦП обычно подключают к одному из разрядов
виртуального входного регистра состояния (передатчика), чтение которого
позволяет процессору определить готовность АЦП к обмену. При вводе быстро
меняющихся аналоговых сигналов между коммутатором и АЦП устанавливается
управляемое от выходного регистра устройство выборки-хранения (УВХ),
которое замораживает входной аналоговый сигнал на время преобразования в
АЦП. Некоторые АЦП можно подключать непосредственно к шине данных. В
этом случае оно должно иметь выход с 3 состояниями и вход управления
передачей. Более сложные УСО позволяют управлять диапазонами входных и
выходных аналоговых сигналов, для чего они имеют в своем составе управляемые
делители сигналов.
В качестве регистров выходных данных и приемопередатчиков
(виртуальных входных регистров) в устройствах (платах) сопряжения с объектами
(УСО)
целесообразно
использовать
микросхемы
программируемого
параллельного интерфейса (микросхемы ППИ).
45
ШИНА
АДРЕСА
ВВОД
ВЫВОД
ДЕШИФРАТОР
АДРЕСА И
СИГНАЛОВ
УПРАВЛЕНИЯ
ШИНА ДАННЫХ
с RG (регистр)
DO
ВД
DI E
с RG (регистр)
с RG (регистр)
к ОУ
ЦАП
от ОУ
к ОУ
DO
ВД
DI E
Готовность
АЦП
КОММУТАТОР АНАЛ.
номер входа
СИГНАЛОВ
от ОУ
Рис. 3.4. Функциональная схема подключения внешних устройств
46
4. АРХИТЕКТУРА ОДНОКРИСТАЛЬНОГО МИКРОПРОЦЕССОРА
4.1
4.2
Архитектура микропроцессора К580ИК80А
Организация обмена в однокристальных микроЭВМ
Создание однокристальных (размещенных в одном корпусе микросхемы)
микропроцессоров
существенно
упрощает
реализацию
встроенных
микропроцессорных систем, однако их архитектура часто обладает рядом
особенностей.
Цель главы – ознакомление с архитектурой однокристального
микропроцессора, методами адресации и организацией обмена данными.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Регистры микропроцессора, их разрядность и назначение,
формат команд и методы адресации,
функциональную схему микро-ЭВМ,
протоколы обмена в шине ЭВМ,
схемы подключения ОЗУ и регистров внешних устройств.
Рассмотрение архитектуры проведем на примере процессор К580ИК80А,
входящего в микропроцессорный набор микросхем К580.
Микропроцессорный набор К580 предназначен для создания широкого
класса средств обработки информации и управления. На основе комплекта
возможно построение микроЭВМ, контрольно-измерительных систем, МП систем
управления технологическими процессами, контроллеров периферийных
устройств, бытовых приборов и игровых автоматов.
В состав комплекта входит также программируемый параллельный
интерфейс К580ВВ55, программируемый синхронно-асинхронный приемопередатчик К580ИК51, программируемый таймер К580ВИ53 и ряд других
микросхем, позволяющих реализовать требуемую структуру микроЭВМ.
4.1. Архитектура микропроцессора К580ИК80А
Центральный процессорный элемент К580ИК80 является функционально
законченным однокристальным параллельным 8-разрядным микропроцессором с
фиксированной системой команд и 16-разрядной шиной адреса. Для хранения
данных в процессоре (рис.4.1) предусмотрено семь 8-разрядных регистров.
47
ШИНА ДАННЫХ
БУФЕР
ШИНЫ
РЕГИСТР
ПРИЗНАКОВ
АККУМУЛЯТОР
АЛУ
ВНУТРЕННЯЯ ШИНА ДАННЫХ
В
С Р
D
E О
H
L Н
SP-УКАЗАТЕЛЬ
ДЕШИФРАТОР
КОМАНД
СТЕКА
РС- СЧЕТЧИК
ДЕСЯТИЧНЫЙ
КОРРЕКТОР
РЕГИСТР
КОМАНД
КОМАНД
УПРАВЛЯЮЩЕЕ
УСТРОЙСТВО
РЕГИСТР
АДРЕСА
БУФЕР
АДРЕСА
ШИНА АДРЕСА
Рис.4.1. Процессор К580ИК80А
Регистр А называется аккумулятором. При
выполнении арифметических операций он служит
источником операнда и в
него помещается результат операции. При обмене информацией с
внешними устройствами
он служит источником и
приемником
данных.
Регистры В, С, Д, Е, H, L
образуют блок регистров
общего
назначения
(РОН) для хранения 8разрядных
данных
(одного байта) и адресов.
Для хранения адресов
регистры организуются в
пары ВС, ДЕ, HL. В формате команд для указания регистров и пар
регистров используется следующая кодировка:
В - 000 ; Е - 011 ; M - 110 ; ВС - 00;
С - 001 ; Н - 100 ; А - 111 ; DE - 01;
Д - 010 ; L - 101 ;
HL - 10.
Под М регистром подразумевается ячейка оперативной памяти, адресуемая
парой регистров HL.
16-разрядный указатель стека предназначен для организации особого вида
памяти магазинного типа- стека.
Счетчик команд на 16 разрядов предназначен для хранения адреса
команды и позволяет адресовать 64К 8-разрядных слов (байтов). После выбора из
оперативной памяти текущей команды содержимое счетчика увеличивается на
число байтов занимаемых командой, если нет переходов по программе.
АЛУ выполняет 4 арифметические операции и 4 логические операции:
сложение с учетом и без учета переноса; вычитание с учетом и без учета
переноса; логические " и ", " или "," исключающие или " и сравнение. Имеется
операция десятичной коррекции для работы с двоично-десятичными числами.
Арифметические операции выполняются над числами в дополнительном коде.
Кроме того система команд предусматривает множество пересылок и операции
ввода-вывода.
48
Регистр признаков имеет 5 разрядов
Tc
Tz
Ts
Tp
Tv
Tc - разряд переноса или выдвигаемый разряд при сдвиге;
Тz - разряд нулевого результата операции;
Тs - знаковый разряд;
Тp - разряд четности, устанавливается в 1,если число единиц в байте четно;
Тv - разряд дополнительного переноса, устанавливается в 1, если имел место
перенос из 3-его разряда в 4-ый, или наоборот.
4.1.1. Формат команд микропроцессора К580ИК80А
В микропроцессоре используются одно-, двух- и трехбайтовые форматы
команд.
Содержимое 1-го байта указывает на формат команды, код операции, вид
адресации и регистры или регистровые пары, если они участвуют в выполнении
операции. В команде нельзя указать непосредственно разряды, ответственные за
первые 3 составляющие, которые не разделяются и считаются единым полем кода
операции. Если в операции участвуют регистры, то они могут быть указаны в 1ом байте. При этом разряды 0-2 отведены под номер регистра-источника
операнда, а разряды 3-5 отведены под номер регистра-приемника. Если регистр
не участвует в операции, то его место в команде отводится под код операции.
К двухбайтным командам относятся команды с непосредственной
адресацией и команды ввода-вывода. В этом случае второй байт содержит или 8разрядный операнд, или номер устройства ввода-вывода. В трехбайтовых
командах 1-ый байт содержит код операции, второй байт содержит младшую, а
третий - старшую часть двухбайтного адреса операнда, или перехода, или
двухбайтного операнда.
4.1.2. Методы адресации микропроцессора К580ИК80А
В микропроцессоре используется 4 метода адресации:
1. Прямой регистровый метод адресации: операндами являются содержимое
указанных в команде регистров.
2. Непосредственный метод адресации: операнд, занимающий один или два
байта, задается во втором или во втором и третьем байте команды.
3. Косвенная адресация: в команде указывается пара регистров, содержащая
адрес операнда.
4. Абсолютный метод адресации: адрес операнда содержится во втором (младшая
часть) и третьем (старшая часть) слове команды.
Для каждого типа команд особым образом формируются признаки.
Особенности формирования признаков:
1. Команды пересылки и переходов не изменяют состояние признаков.
2. Команды приращения не меняют признак переноса С.
3. Команды приращения пар регистров не изменяют признаки.
49
4. Арифметические операции формируют все признаки;
при сложении
содержимого пар регистров используется признак переноса С.
5. Логические операции сбрасывают признаки переносов С и V.
4.1.3. Команды безусловной и условной передач управления
Команды безусловной и условной передач управления принудительно
изменяют содержимое счетчика команд процессора в соответствии со значением
адреса перехода в программе, задаваемым в команде. При указании места
перехода указывают абсолютный адрес, на который следует осуществить переход.
При выполнении команд условных ветвлений процессор анализирует
соответствие флажков регистра состояния процессора задаваемому командой
условию и при выполнении этого условия осуществляет модификацию своего
регистра-счетчика команд. При невыполнении заданного условия содержимое
счетчика команд не корректируется и происходит обычная выборка следующей
по порядку команды.
В системе команд процессора К580ИК80А предусмотрены безусловные и
условные переходы, безусловные и условные переходы к подпрограмме и
возвраты. При этом адрес перехода задается во втором ( младший байт адреса )
и третьем байте ( старший байт адреса ) команды.
Перед использованием подпрограмм и прерываний указатель стека должен
быть установлен. В связи с этим процедура начальной установки состояния
стека использующей его программой (определение выделяемой под стек области
памяти) состоит в начальной установке регистра-указателя стека, а именно,
записи в него адреса ячейки памяти, являющейся "вершиной" пустого стека.
Установка в SP некоторого начального значения производится по команде
пересылки SPHL (1111 1001). По этой команде в SP пересылается содержимое
пары регистров HL. Обмен со стеком осуществляется двухбайтовыми словами.
Сначала размещают старший байт, затем младший байт адреса. Можно
переслать также данные из пары регистров DE в стек, используя команду PUSH D
(1101 0101). Средняя триада кода - код старшего регистра D.
При записи в стек указатель стека уменьшается на 1 и содержимое регистра
D заносится в стек; затем SP снова уменьшается на 1 и в стек заносится
содержимое регистра E.
В микропроцессоре предусмотрена возможность прерывания текущей
программы по запросам внешних устройств. Чтобы разрешить прерывание
программы на каком-то участке программы выполняется команда разрешения
прерывания EI (1111 1011). Для запрета прерывания используется команда DI
(1111 0011).
Процесс прерывания выполняется следующим образом. От внешнего
устройства поступает сигнал запроса прерывания. Если прерывание разрешено,
то после выполнения текущей команды в шине данных в такте выдачи
информации о состоянии процессора появятся сигналы: D0- "Подтверждение
прерывания", D1-"Ввод" и D5- "Прием 1-го байта". По сигналу "Подтверждение
прерывания" внешнее устройство выдает на шину данных команду "Рестарт" -
50
RST. При выполнении команды RST содержимое счетчика команд PC
запоминается в стеке, а в PC заносится адрес первой команды обработки
прерывания, который задается следующим образом.
RST имеет структуру 11 *** 111, где * - двоичная цифра. При выполнении
команды RST в счетчик заносится адрес 00 000 000 00 *** 000. Задавая *** ,
определяем одну из 8 программ обработки. Адрес *** формируется аппаратурой
внешнего устройства. После выполнения прерывающей программы возврат в
основную программу производится по команде RET.
Прямой доступ к памяти (состояние захвата) осуществляется следующим
образом. Внешнее устройство выставляет сигнал требование прямого доступа в
линию "Запрос захвата". Приняв запрос, процессор заканчивает выполнение
текущего цикла, отключается от шин и выдает сигнал "Подтверждение захвата",
по которому ВУ начинает обмен. После снятия сигнала "Запрос захвата"
процессор начинает выполнять следующий цикл.
Процессор имеет состояние останова, в которое он может быть переведен
командой HLT (0111 0110). При выполнении этой команды шины переводятся в
3-е состояние и вырабатывается сигнал "логической 1" на выходе управляющей
линии "Ожидание". Вывод процессора из этого состояния осуществляется
перезапуском или прерываниями.
4.1.4. Примеры команд процессора К580ИК80А
Система команд процессора приводится в его техническом описании в виде
таблице, содержащей название команды на ассемблере, структуру кода и
описание хода выполнения команды. Ниже приведены примеры использования
различных методов адресации и написания кодов команд.
1. Прямая регистровая адресация: операндом является содержимое указанного
в команде регистра.
Пример: пересылка регистр - регистр
команда
операция
структура кода
код
код
MOV C, D
C (D)
01RiRj
01 001 010
4A
команда
ADD D
Пример: сложение с содержимом регистра
операция
структура кода код
A (A)+(D)
10000Ri
10000 010
код
82
51
2. Непосредственная адресация: операнд один или два задается во втором или
во втором и третьем байтах.
команда
ADI
команда
MVI D
команда
LXI D
Пример: сложение c аккумулятором числа 4С
операция
структура кода код
код
A (A)+<B2>
11000110
11 000 110
C6
01 001 100
4C
Пример: непосредственная загрузка регистра D числом 4С
операция
структура кода код
код
D <B2>
00Ri110
00 010 110
16
01001100
4С
Пример: непосредственная загрузка пары регистров D и E
числами А5 и 65 соответственно.
операция
структура кода
код
код
D <B3>, E <B2>, 00Ri001
00 010 001
11
01100101
65
10100101
A5
3. Косвенная адресация: в команде указывается пара регистров, содержащая
адрес операнда
команда
LDAX B
Пример: загрузка в аккумулятор содержимого ячейки,
адресуемой парой [ВС].
операция
структура кода код
код
A [(BC)]
00Ri1010
00001010
0A
4. Ветвления.
Пример: ветвление на команду с адресом 1А20 если результат равен 0.
команда
операция
структура кода код
код
JZ
PC адрес
11001100
1100 1100
CA
0010 0000
20
0001 1010
1A
52
4.2. Организация обмена в однокристальных микроЭВМ
Процессор 580ИК80А имеет 16-разрядную шину адреса, 8-разрядную шину
данных, шину управления и ряд дополнительных входов, обеспечивающих его
функционирование (рис.4.2). Система сигналов шины управления имеет
следующий состав.
ШИНА АДРЕСА
ШФ КР580ВК28
CPU
Ф1
Ф2
ГТИ
СБРОС
580ГФ24
580ИК80А
ШИНА
ДАННЫХ
СТРОБ
СОСТОЯНИЯ
ГОТОВНОСТЬ
СИНХРОНИЗ.
ГОТОВНОСТЬ
СБРОС
ЗАП.
ЗАХ.
РЕГИСТР
СОСТОЯНИЯ
ПОДТВЕРЖ.
ЗАХВАТА
ПРИЕМ
ДЕШИФРАТОР
ЗАП. ПРЕР.
СТРОБ
СОСТОЯНИЯ
ДВУНАПРАВЛЕННЫЙ
ШИННЫЙ
ФОРМИРОВАТЕЛЬ
ШИННЫЙ
ФОРМИРОВАТЕЛЬ
ШИНА
ДАННЫХ
ПОДТВЕРЖДЕНИЕ
ПРЕРЫВАНИЯ
ЧТ. ПАМ.
ЗАП. ПАМ.
ЗАПИСЬ
ВЫВОД
ВВОД
ШИНА УПРАВЛЕНИЯ
Рис.4.2. Функциональная схема процессора К580
Входные сигналы: Ф1 и Ф2 - внешние тактовые импульсы, готовность,
сброс,. запрос прерывания, запрос захвата.
Выходные
сигналы:
синхронизация,
разрешение
прерывания,
подтверждение захвата, прием с линии данных, запись, ожидание.
4.2.1. Функционирование микропроцессора
ГТИ формирует 2 импульсные последовательности Ф1 и Ф2, необходимые
для тактирования работы микропроцессора. Импульсы потоков не должны
перекрываться. Процесс выполнения команд разбивается на циклы М1...М5. В
каждом цикле производится одно обращение к памяти или к внешнему
устройству ввода -вывода. В зависимости от типа , команда выполняется за 1-5
циклов. Каждый цикл состоит от 3 до 5 тактов. Первые три такта во всех циклах
используются для организации обмена с памятью и УВВ, такты 4 и 5 -для
внутренних операций. Временная диаграмма формирования строба состояния
представлена на рисунке 4.3. Отсчет тактов ведется от положительного фронта
сигнала Ф1 . В такте Т 1 содержимое счетчика команд устанавливается на шине
адреса. Адрес воспринимается памятью, где начинается чтение байта. В такте Т 2
проверяется наличие сигнала «Готовность» на входе, который формируется
внешним устройством и свидетельствует о его готовности к обмену.
53
До появления сигнала "готовность"
продолжается такт Т 2. В такте Т 3 с
шины
данных
принимается
Ф1
информация и помещается в регистр
Ф2
команд. В такте Т 4определяется
необходимость
дополнительного
СИНХРОН.
ввода очередного байта. Если
требуется дополнительный ввод, то
СТРОБ СОСТОЯНИЯ
цикл М1 завершается и начинается
цикл М2 . В такте Т 5 совершается
Рис.4.3. Формирование строба состояния операция. В каждом цикле в
интервале времени от положительного
фронта сигнала Ф2 в такте Т1 до положительного фронта сигнала Ф2 в такте Т2
микропроцессор выдает на шину данных информацию о выполняемой операции, а
на выход "синхронизация" уровень логической "1". Разряды байта данных несут
следующую информацию.
0- подтверждение прерывания,
1 - операция чтения памяти-"1"; операция записи в память -"0",
2 - в данном цикле на адресной шине установлено содержимое указателя
стека,
3 - подтверждение останова,
4 - на адресной шине установлен номер внешнего устройства и идет вывод
из аккумулятора,
5 - в данном цикле процессор принимает первый байт команды,
6 - в данном цикле на адресной шине установлен номер устройства ввода,
7 - в данном цикле происходит чтение.
Информация о состоянии процессора используется для оптимизации
управления ОЗУ и внешними устройствами, путем выработки дополнительных
сигналов управления. Информацию о выполняемой операции необходимо
запомнить во внешнем регистре для последующей дешифрации совместно с
другими управляющими сигналами с целью получения дополнительных
(вторичных) сигналов управления. Эта информация, как правило, записывается во
внешний регистр (фиксатор состояния) по стробу состояния., формируемому по
совпадению сигналов "синхронизация" и Ф1. В дальнейшем слово состояния
дешифрируется совместно с другими сигналами управления и используется для
выработки новой системы управляющих сигналов, поступающих на шину
управления ЭВМ. Для формирования управляющих сигналов могут быть
использованы последовательно включенные регистр и дешифратор управляющих
сигналов. Устройство формирования сигналов шины управления называется
системным контроллером. Промышленностью выпускается специализированная
микросхема 580ВК28-системный контроллер для реализации этих функций.
Структура микросхемы и ее подключение показаны на рисунке(4.2).
В шинах адреса, данных и управления для повышения мощности сигналы
буферизуются.
Т1
Т2
Т3
54
Для функционирования процессора необходимы тактовые импульсы и
логические схемы формирования сигналов сброса и строба состояния. Для
выработки тактовых сигналов, сигналов готовности и строба состояния в МП
набор включена микросхема генератора тактовых сигналов 580ГФ24- генератор
тактовых сигналов. Микросхема ГТИ имеет входы "синхронизация" для
формирования сигнала "Строб состояния", входы "сброс" и вход "готовность" для
формирования сигналов "сброс" и
"готовность". Работа генератора
стабилизируется кварцем.
4.2.2. Подключение ОЗУ и регистров внешних устройств
Структура интерфейсов для подключения к процессору К580 ОЗУ и
внешних устройств целиком определяется протоколом обмена, т.е. системой
сигналов в шинах адреса, данных, управления и их временными соотношениями,
определяемыми тактами функционирования процессора.
Временные диаграммы циклов чтения и записи (Рис.4.4) содержат только
основные сигналы шин, определяющие структуру интерфейса. Они являются
базовыми для всех процессоров, имеющих раздельные шины адреса, данных и
управления.
Шина
адреса
Шина
данных
Чтение
MEMR,
IOR
Готовность
Синхро
Ожидание
SW
Адрес
Шина
адреса
Данные
Шина
данных
Адрес
SW
Данные
Запись
MEMW,
IOW
Готовность
Синхро
Ожидание
Рис. 4.4. Временные диаграммы циклов чтения и записи
В соответствии с приведенными временными диаграммами подключение
ОЗУ в системе с раздельными шинами адреса и данных реализуется по
функциональной схеме представленной на рис 4.5.
Старшая часть адреса через приемник поступает на дешифратор, который
вырабатывает сигнал "устройство выбрано", если адрес совпадает с адресом
устройства (блока памяти ОЗУ). Результат дешифрации поступает на вход выбор
кристалла микросхемы памяти. Младшая часть адреса поступает на адресный
вход ОЗУ, выбирая одну из ячеек памяти. Вход данных ОЗУ (желательно через
буфер) подключен к шине данных.
55
В цикле запись процессор выставляет адрес и данные, затем вырабатывает
импульсный сигнал "запись в память" (MEMW) и данные записываются в ячейку
по
заднему
фронту
ШИНА АДРЕСА
импульса. В цикле чтения
после установки адреса
ШИНА ДАННЫХ
процессор
выставляет
DI
сигнал "чтение памяти"
DO
ВД
(MEMR), который вместе
МЛАД. ЧАСТЬ
ВД
DO АДРЕСА
с сигналом дешифратора
DI E
А
"устройство
выбрано"
поступает
на
схему
СТАР. ЧАСТЬ
RAM
ДС АДРЕСА
D
совпадения,
формируя
DO
разрешающий сигнал для
CS
передатчика. Заметим, что
ЗАП. ПАМ.
W
сигналы записи и чтения
R
памяти можно вводить в
&
ЧТ. ПАМ.
обобщенный дешифратор
Рис.4.5. Функциональная схема подключения ОЗУ сигналов
адреса
и
управления,
который
сформирует все внутренние управляющие сигналы. Заметим, что сигналы записи
и чтения снимаются при наличии сигнала “Готовность”.
Подключение внешних устройств производится аналогично, но в этом
случае проводится полная дешифрация всего адреса. Пример функциональной
схемы подключения внешних устройств приведена на рис.4.6.
Устройство сопряжения
с объектом управления
ШИНА
ШИНА ДАННЫХ
АДРЕСА
может
содержать
несколько параллельных
DI
DO
регистров ввода-вывода.
С RG (РЕГИСТР)
ВД
ВД
Разряды
выходных
DO
DI E
регистров
подключаются
к
объектам
управления
К ОУ
ДЕШИФРАТОР
ОТ
ОУ
для
дискретного
АДРЕСА
управления
ИМ.
ВЫВОД
Выходные дискретные
сигнала от ОУ чаще
ВВОД
всего
поступают
непосредственно
на
Рис.4.6. Подключение регистров внешних устройств входы
передатчиков
(используется
виртуальный входной регистр).
При подключении регистров внешних устройств необходима дешифрация
всего адреса. Каждый входной или выходной регистр имеет свой адрес. Поэтому
число выходов дешифратора адреса равно числу регистров. Для формирования
56
сигналов записи и чтения регистров, выходы дешифратора адреса объединяются
по схеме "И" соответственно с сигналами "вывод" (IOW) или "ввод" (IOR) шины
управления. Возможно, а иногда целесообразно, использовать обобщенный
дешифратор адреса и управляющих сигналов, который объединяет по схеме "И"
сигнал "Устройство выбрано" каждого отдельного регистра с сигналом "Ввод"
или "Вывод", формируя управляющие сигналы для своих регистров.
При выводе данных процессор устанавливает адрес, данные и, с задержкой,
сигнал "Вывод", по которому данные записываются в адресуемый регистр. При
чтении процессор устанавливает адрес и, с задержкой, сигнал "Ввод". При этом
вырабатывается сигнал включения передатчика и данные поступают в шину
данных.
Внешнее устройство, не успевающее выполнять обмен в темпе процессора,
должно снимать сигнал готовности при обращении по его адресу и
восстанавливать этот сигнал при завершении обмена. Для снятия сигнала
готовности используется логический элемент (передатчик) с открытым
коллектором, подключенный к линии “Готовность”.
В качестве регистров выходных данных и приемопередатчиков
(виртуальных входных регистров) целесообразно использовать программируемый
параллельный интерфейс (микросхему ППИ).
57
5. СИСТЕМЫ СЧИСЛЕНИЯ И АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ НАД
ЧИСЛАМИ
5.1.
5.2.
5.3.
5.4.
5.5.
Системы счисления для представления чисел в ЭВМ
Представление в ЭВМ целых двоичных чисел без знака
Представление в ЭВМ целых чисел со знаком
Двоично-десятичная система представления чисел
Представление чисел в формате с плавающей точкой
Для внутреннего представления целых и десятичных чисел со знаком и без
знака в ЭВМ используются двоичные числа. При этом числа, в зависимости от
способа кодирования, представляются в различных форматах и занимают
несколько байтов. Для записи чисел в программах также используются числа в
различных системах счисления.
Цель главы – ознакомление с основными системами счисления, основными
методами представления в ЭВМ целых чисел со знаком и без него и
представлением чисел в формате с плавающей точкой.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Используемые системы счисления для представления чисел,
представление целых чисел без знака,
представление целых чисел со знаком в прямом коде,
представление целых чисел со знаком в обратном коде,
представление целых чисел со знаком в двоично-десятичном коде,
представление дробных чисел со знаком в формате с плавающей точкой.
5.1. Системы счисления для представления чисел в ЭВМ
Общепринятой формой представления чисел является использование
позиционной системы счисления. В позиционной системе счисления вес, т.е.
значимость каждой цифры ai , составляющей число, определяется его позицией
внутри числа. В соответствии со своей позицией каждая цифра a i числа N
умножается на коэффициент, представляющий собой так называемое основание
системы счисления p, возведенное в степень, равную номеру позиции данной
цифры справа налево.
N = ..a4 a3 a2 a1 a0 ..=..a4 p4 +a3 p3 +a2 p2 +a1 p1 +a0 p0.. ( 5.1)
Внутри машины все числа представляются в системе счисления с основанием 2.
Такие числа записываются в виде последовательности 0 и 1 и называются
двоичными. Для удобства ввода/вывода и при составлении программ в ряде
случаев используется системы счисления с основанием 8 (восьмеричная) и 16
(шестнадцатеричная), позволяющие легко преобразовывать записанные в них
числа в двоичные. В шестнадцатеричной системе счисления для обозначения
58
цифр более 9 используются буквы: 10 =А, 11 =В, 12 =С, 13 =D, 14 =Е, 15 =F. Для
указания системы счисления часто используют нижний индекс, который
показывает основание системы счисления. Для указания, что число записано в
16-ричной системе счисления, в его конце вместо нижнего индекса часто ставят
букву h: 1АВ2h.
Примеры:
3
2
1
0
572410=5*10 +7*10 +2*10 +4*10
- целое число в десятичной системе счисления;
1
0
-1
34,8510=3*10 +4*10 +8*10 +5*10-2-дробное число в десятичной системе
счисления;
3
2
1
0
27318 =2*8 +7*8 +3*8 +1*8
- целое число в восьмеричной системе
счисления;
4
3
2
1
110102 =1*2 +1*2 +0*2 + 1*2 +0*20 - целое число в двоичной системе
счисления.
Десятичное значение числа находится путем преобразования каждой его цифры в
десятичный эквивалент и выполнения действий десятичной арифметики в
соответствии с формулой ( 5.1 ). Например:
1ВЕ8h =1х16 3+11х162 +14х161 +8х160 =714410
437.58 =4х82 +3х81 +7х80 +5х8-1 =287.62510
Для получения числа с другим основанием счисления из десятичного
целого последовательно делят исходное число на новое основание и записывают
последовательно остатки справа налево как цифры целой части числа. Для
преобразования дробной части десятичного числа к новому основанию дробные
части числа умножают последовательно на новое основание счисления,
приписывая последовательно слева направо получаемые целые части как цифры
дробной части числа по новому основанию (рис.5.1).
Целая часть
Остаток
младший бит
целой части
числа
Остаток
старший бит
целой части
числа
5 2
4 2 2
1 2 1 2
0 0 0
1
1 0 1. 1 0 1
Дробная часть
Старший бит
дробной части
числа
0.625
2
1.250
2
0.50
2
1.00
2
0.00
7144 16
7136 446
8 432
Е= 14
В=
16
27 16
16 1 16
11 0 0
1
1ВЕ8
Рис.5.1. Преобразование десятичных чисел
Примеры: 5.625 =101.101 =22 +20 +2-1 +2-3 =5.625
714410 = 1х163 +11х162 +14х161 +8х160 =1ВЕ816=1ВЕ8h
Для преобразования двоичного числа в восьмеричное (шестнадцатеричное),
оно, начиная от двоичной точки, двигаясь влево и вправо, разбивается на
группы из 3(4) бит и каждая группа заменяется соответствующей восьмеричной
(шестнадцатеричной) цифрой.
59
Целые числа
101011000110 2=101 011 000 110 =5306
101011000110 2=1010 1100 0110 =АС6
Дробные числа
11.10100110112 =011.101 001 101 100 =3.5154
11.1010011011 2=0011.1010 0110 1100 =3.А6С
При обратных преобразованиях каждая восьмеричная (шестнадцатеричная)
цифра заменяется двоичным 3-х(4-х)-разрядным числом. Напомним, что разряды
двоичного числа обычно называются битами, восемь следующих подряд битов
составляют байт, а два байта - слово.
разряды (биты)
10011100 10100010
¦<-- старший -->¦<--- младший -->¦ - байты
¦<---------- слово -------------->¦
Рис.5.2. Формат машинного слова
5.2. Представление в ЭВМ целых двоичных чисел без знака
Обычной моделью представления целых чисел является бесконечная
числовая ось (… -5 -4 -3 -2 -1 0 1 2 3 4 5…), на которой при
движении слева направо числа последовательно увеличиваются на единицу. В
ЭВМ принципиально могут использоваться числа только с конечным числом
разрядов, с помощью которых можно представить конечное множество чисел. В
связи с этим числовая ось как бы замыкается сама на себя, как это показано
на рис.5.3 для четырехразрядных двоичных чисел.
0
1
2
3
4
5
--> 0000 -> 0001 -> 0010 -> 0011 -> 0100 -> 0101---¬
15 1111
¦
14 1110
0110 6
¦
0111 7
1101 <- 1100 <- 1011 <- 1010 <- 1001 <- 1000 <-13
12
11
10
9
8
Рис.5.3. Числовая ось в ЭВМ
В аппаратных средствах ЭВМ, оперирующих с двоичными чис лами с
конечным числом разрядов, имеются физические элементы для представления и
отображения только этих разрядов. Поэтому операция сложения наибольшего
представимого в данном примере числа 1111 с единицей приведет к переходу не
к числу 10000, а к числу 0000, т.к. возникающий в результате переноса пятый
разряд аппаратурой не фиксируется.
Целые числа без знака обычно занимают в памяти один или два байта и
принимают в однобайтовом формате значения от 00000000 2 до 111111112, а в
60
двухбайтовом формате – от 00000000 000000002 до 11111111 111111112. При этом
диапазоны значений целых чисел без знака составят соответственно 0…255
(0…28-1) и 0…65535 (0…216-1).
5.3. Представление в ЭВМ целых чисел со знаком
Возможная конкретная форма представления в цифровых устройствах и
ЭВМ чисел со знаком может быть различной. Конкретный выбор этой формы
определяет алгоритм выполнения основных арифметических операций над
числами со знаком и, следовательно, сложность реализации устройств,
осуществляющих эти операции.
5.3.1. Представление чисел со знаком в прямом коде
Целые числа со знаком обычно занимают в памяти компьютера один, два
или четыре байта при этом старший разряд содержит информацию о знаке числа.
Таким образом, числа состоят из величины числа и его знака. Стандартно знаку
“плюс” соответствует нулевое значение старшего бита, знаку “минус” –
единичное. Остальные разряды несут информацию об абсолютной величине
числа. Следовательно, диапазон представления чисел в однобайтовом формате
равен от –127 до 127. Такое представление используется также в ряде цифровых
устройств.
Пример:
восьмиразрядное двоичное число -4310 =-538 =1 0 101 0112 ; 4310=538=0 0 101 011.
знак 5 3
5.3.2. Представление чисел со знаком в дополнительном коде
Положительные числа в прямом и дополнительном кодах представляются
одинаково – двоичными кодами с цифрой 0 в старшем (знаковом) разряде.
Остальные разряды представляют модуль (величину) числа. Таким образом,
старший разряд по-прежнему несет информацию о знаке числа: в системе с
использованием n разрядов при представлении положительного числа старший
разряд равен 0, а остальные разряды представляют величину числа.
Отрицательные числа в вычислительных машинах обычно представляются в
виде дополнений. В общем случае дополнение любого n разрядного числа D с
основанием системы счисления p равно p n - D.
Для внутреннего представления отрицательных чисел в ЭВМ используют
так называемый двоично-дополнительный код. Отрицательное n-разрядное число
равно дополнению его величины D: 2n -D. Положительное число представлено
своим модулем. При этом старший бит числа также может служить признаком
знака числа - число является положительным, если значение старшего разряда
равно 0, единица соответствует отрицательному числу. Этот бит не является
эквивалентом знака числа, так как участвует в арифметических операциях
аналогично остальным разрядам числа.
61
Для получения
дополнения
положительного числа ( двоичнодополнительного кода отрицательного числа из равного ему по модулю
положительного числа ) необходимо инвертировать все разряды исходного
двоичного положительного числа, т.е. заменить в нем все нули на единицы, а
единицы на нули и к результату прибавить единицу.
Примеры преобразования: двоичных положительных чисел в отрицательные
1710 =218 =00 010 0012
инверсия 11 101 110
+
1
-1710 =-218 = 11 101 111
28 = 100 000 000
218 = 00 010 001
-218 = 11 101 111
4-разрядных чисел
8-разрядных чисел
16-разрядных чисел
+3 =0011
+3 = 00000011
+3 = 0000000000000011
инверсия 1100
11111100
1111111111111100
+ 1
+
1
+
1
-3 =1101
-3 = 11111101
-3 = 1111111111111101
Двоично-дополнительная форма представления чисел со знаком приводит к
изменению вида замкнутой числовой оси и диапазона изменения чисел.
Пример замкнутой самой на себя числовой оси для такой формы
представления четырехразрядных чисел со знаком наглядно изображен на рис.5.4.
В последовательности двоичных кодов после кода числа 7 (максимального числа)
следует код числа -8 (минимального числа).
-3
1101
-2
1110
-1 |
0
1
2
1111
0000
000
0010 --¬
|
-4 1100 Отрицательные
| Положительные
0011 3
¦
числа
|
числа
¦
-5 1011
|
0100 4
|
-1010
1001
1000
0111
0110
0101
-6
-7
-8
| 7
6
5
Рис. 5.4. Представление чисел в дополнительном коде
Целые числа со знаком занимают в памяти компьютера один, два или
четыре байта. При этом диапазоны значений целых чисел будут соответственно:
-27…27-1 (-128…127), -215…215-1 (-32768…32767) или –231…231-1.
Наиболее важным доводом в пользу такого представления чисел со знаком
является то, что арифметическая операция вычитания может быть заменена в этом
случае операцией алгебраического сложения чисел со знаком.
62
Рассмотрим примеры:
1) 3 + 4 = 7
+3
0011
+ 4 +0100
+7
0111
2) 6 - 3 = 6 + (-3) = 3
+6
0110
- 3 + 1101 - число -3
+ 3 1 0011 в дв.-доп. коде
___________/ \__/
возникший в результате переноса дв. код числа +3
лишний разряд игнорируется
3)
-2 - 6 = (-2)+(-6) = -8
1110
дв.-доп. код числа –2
+ 1010
дв.-доп. код числа –6
1 1000
дв.-доп. код числа –8
разряд не фиксируется
4) 4 - 7 = 4 + (-7) = -3
0100
+4
+ 1001
дв.-доп. код числа -7
1101
дв.-доп. код числа -3
При таком представлении чисел со знаком достаточно использовать одно
устройство сложения для выполнения операций, как сложения, так и вычитания.
Учитывая, что операции умножения и деления также могут быть
реализованы с помощью алгоритмов, использующих операции сложения и
вычитания, это становится важным для реализации блока ЭВМ,
осуществляющего арифметические операции над двоичными числами.
Наряду с рассмотренными способами представления отрицательных чисел
существуют и другие: дополнение до единицы или обратным кодом и
представление кодом со смещением.
Обычно при вводе в машину отрицательные десятичные числа
автоматически преобразуются в дополнительный двоичный код и в таком виде
хранятся, перемещаются и участвуют в операциях.
5.3.3. Особенности выполнения сложения двоичных чисел
без знака и со знаком
Конечное число разрядов используемых в ЭВМ двоичных чисел может
приводить к появлению ошибок при выполнении арифметических операций.
Рассмотрим эти ситуации на примере сложения 4-разрядных двоичных чисел.
1. Примеры сложения чисел без знака.
3 0011
6 0110
10 1010
+ 2 0010
+ 7 0111
+ 11 1011
5 0101
13 1101
21 10101
результат правильный результат правильный
результат неверный
В третьем примере результат двоичного сложения равен 5, т.к. старший
разряд выходящий за разрядную сетку игнорируется.
63
Эти примеры иллюстрируют следующее правило: если при сложении
двоичных чисел без знака происходит перенос из старшего разряда, то результат
арифметической операции оказывается неправильным.
2. Примеры сложения чисел со знаком.
5
+ 6
11
0101
0110
1011
-3
-6
-9
1101
1010
1 0111
дв.-доп. код числа -5
дв.код числа +7
результат неверный
результат неверный
перенос в старший разряд
перенос из старшего разряда (игнорируется)
7
+7
14
0111
0111
1110
- 8 1000
- 8 1000
-16 1 0000
дв.-доп. код числа –2
дв. доп. код числа 0
результат неверный
результат неверный
перенос в старший разряд
перенос из старшего разряда (игнорируется)
6
-3
3
0110
1101
1 0011
дв.-доп. код числа 3,
результат правильный
перенос из старшего разряда (игнорируется) перенос в старший разряд
Примеры иллюстрируют следующее правило: - если при сложении двух
двоичных чисел со знаком, представленных в двоично-дополнительном коде,
происходит перенос в старший разряд или перенос из старшего разряда (один из
них), то результат операции получается неверным, однако, - если переносов нет
или имеют место оба таких переноса одновременно, результат операции
оказывается правильным.
Ситуацию, когда имеет место один из переносов (перенос в старший разряд
или перенос из старшего разряда) обычно называют арифметическим
переполнением, наличие которого служит признаком неправильного выполнения
операции сложения чисел со знаком.
64
5.4. Двоично-десятичная система представления чисел
В двоично-десятичной системе счисления десятичные цифры от 0 до 9
представляют 4-разрядными двоичными числами от 0000 до 1001 и каждая
десятичная цифра занимает половину байта (4 бита). Преобразование из двоичнодесятичной системы в десятичную (и обратно) выполняется путем прямой
замены четырех двоичных цифр (одной тетрады) одной десятичной (и обратно).
Две двоично-десятичные цифры занимают 1 байт.
С помощью 1 байта можно представлять значения от 0 до 99, а не от 0 до
255, как при использовании 8-разрядного двоичного числа без знака. Используя
1 байт для представления каждых двух десятичных цифр, можно сформировать
двоично-десятичные числа с требуемым числом десятичных разрядов. Этот
формат представления двоично-десятичных чисел называется упакованным. В
ЭВМ используется также неупакованный формат, когда каждая цифра занимает
байт.
Числа со знаком в двоично-десятичной системе имеют один
дополнительный разряд (тетраду или байт) для знака. При этом используется
представление двоично-десятичных чисел в прямом коде с кодированием знака
минус единицей в старшем бите знакового разряда. Числа со знаком в двоично десятичной системе могут быть представлены и в дополнительном коде, где
минусу соответствует число 1001 (9) в знаковом разряде.
Сложение двоично-десятичных чисел, имеющих 1 десятичный разряд,
выполняется как сложение 4-разрядных двоичных чисел без знака, но при
получении результата больше 1001 необходимо производить коррекцию путем
прибавления двоичного кода числа 6. Если первоначальное двоичное сложение
или прибавление корректирующего числа приводит к возникновению переноса
при сложении значений двух десятичных разрядов двоично-десятичных чисел, то
осуществляется перенос в следующий десятичный разряд.
Примеры:
4 0100
5
0101
5
0101
+5 +0101
+9 +1001
+19 +0001 1001
9 1001
14
1110 = 14
24
0001 1110
результат правильный
+
0110
коррекция
+
0110
1 0100
0010 0100
перенос в старший разряд
1 4
2 4
Несмотря на то, что память при двоично-десятичном представлении чисел
используется менее эффективно, такая система нашла свое применение во
многих устройствах ввода-вывода десятичных данных. Многие ЭВМ имеют
полный набор команд обработки данных в двоично-десятичной системе. Во
многих ЭВМ предусмотрена команда "Десятичная коррекция", позволяющая
приспособить двоичные операции для обработки двоично-десятичных данных.
65
5.5. Представление чисел в формате с плавающей точкой
В ЭВМ вещественные десятичные числа представляются в формате с
плавающей точкой. При этом используется форма записи чисел с порядком
основания системы счисления: N=M*2p , где M – двоичная мантисса, а р –
порядок. При записи число представляют в нормализованном виде, выделив
порядок и мантиссу числа. Обычно результат нормализации представляется в
виде правильной дроби, т.е. с единицей после двоичной точки и нулем в целой
части числа. Однако, в IBM PC нормализованная мантисса содержит старший бит
слева от двоичной точки, т.е. записывается в нормализованном виде 1.n1n2…, где
n1n2…- дробная часть числа. Целая часть, всегда равная единице, прямо не
представляется в некоторых форматах чисел, а учитывается неявно (представляет
скрытый разряд). Следовательно, мантисса должна иметь значения в интервале
[1,
2). Ее первая цифра отлична
от нуля (равна единице): (1 М<2).
Нормализованная мантисса представлена в памяти ЭВМ в прямом коде. Старший
бит мантиссы, всегда равный 1, обычно в мантиссу не записывается и является
скрытым разрядом. Скрытый разряд участвует в арифметических операциях.
Вещественные числа в компьютерах различных типов записываются поразному, но все компьютеры поддерживают несколько международных
стандартных форматов, которые имеют структуру следующего вида:
…
Смещенный порядок
Знак мантиссы
…
Абсолютная величина мантиссы
Рис.5.5. Структура стандартного формата
Старший бит во всех форматах с плавающей точкой является знаковым и
несет знак числа: 0 означает положительное число, 1 – отрицательное. Число бит
для хранения мантиссы и порядка зависит от типа вещественного числа. Порядок
представляется в смещенной форме: если для задания порядка выделено k
двоичных разрядов, то к истинному значению порядка, прибавляют смещение,
равное (2k-1-1). Однако, IBM для вещественных чисел типа REAL использует
смещение равное (2k-1 +1).
Стандартные форматы представления вещественных чисел IBM (single, real,
double, extended) представлены в табл. 5.1.
66
Форматы чисел
Тип
Размер в
байтах
single
real
double
extended
4
6
8
10
Табл. 5.1.
Число
разрядов
порядка
8
8
11
15
Смещение
порядка
7Fh (127)
81h (129)
3FFh (1023)
3FFFh (16383)
Число
разрядов
мантиссы
23
39
52
64
Первая
единица
мантиссы
скрытая
скрытая
скрытая
явная
Для представления чисел в формате с плавающей точкой используется
несколько последовательных ячеек памяти, которые образуют 32, 48, 64 или 80разрядное двоичное слово. Так число типа single занимает 32 бита (четыре байта):
23 бита отводится под мантиссу, 8 бит – под порядок и один бит отводится под
знак числа (рис.5.6.). Мантисса имеет 24 разряда с учетом скрытого.
байт
бит
7 старший 0 7 6
31 30…24 23 22
0
содержимое знак
порядок
0
7
0 7
0
мантисса
Рис.5.6. Формат числа типа single.
Напомним, что в семействе *86 слова записываются в смежных байтах
памяти, начиная с младшего. Адресом числа является адрес его младшего байта.
Так при последовательном выводе числа типа single из памяти, начиная с
младшего байта (адреса числа), получим содержимое байтов
байт
7 младший 0 7
0 7
0 7 старший 0
бит числа 7 ……….. 0 15 …..
8 23 22 ….. 16 31 30 ….. 24
содержимое м …… … м м …… . .м р м ………. м Зн р ………р
Степень -16 ………–23 -8 ……. –15 0 -1 …… .. –7
7 ………1
разряда
где: Зн – знаковый разряд, р – смещенный порядок числа, м –
нормализованная мантисса.
Формат машинного представления данных типа REAL в IBM PC имеет вид
байт 7 … 0 7 … 0 7 … … 0 7 ….. 0 7 … 0 7 … 0
младший
старший
бит
7 ….. 0 15 ……8 23 … 16 31 … 24 39 … 32 47 46 …. 40
числа
содержи p …… р м … м м … м м … . .м м …. м Зн м…… м
мое
степень 7 … 0 -32 … -39 -24 … -31 -16… –23 -8 ... –15
-1 … -7
разряда
67
Для уточнения внутреннего представления данных сложной структуры
необходимо обращаться к технической документации на ЭВМ и программному
обеспечению.
Примеры представления чисел типа single
Представим число 1210. 1210 =11002 =23 *1.12 =8 *(1+1/2)
Порядок равен 3. Код порядка – 128-1+3=13010=7Fh+3=82h=1000 00102.
Мантисса равна 1.1 00 0000 0000 0000 0000 0000.
Первая 1 мантиссы является скрытым разрядом и не записывается.
Запишем содержимое ячеек памяти в двоичном формате.
0 100 0001 0 100 0000 0000 0000 0000 0000
знак| порядок | мантисса
При чтении содержимого четырех байтов числа, начиная с младшего, получим: 0
0000 0000 0000 0000 0 100 0000 0 100 0001 = 00004041h.
Представим число 110. Порядок равен 0. Код порядка – 128-1=12710=011111112.
Мантисса равна 1.0 00 0000 0000 0000 0000 0000.
Первая 1 мантиссы является скрытым разрядом и не записывается.
Запишем содержимое ячеек памяти в двоичном формате.
0 011 1111 1 000 0000 0000 0000 0000 0000
знак| порядок | мантисса
При чтении содержимого четырех байтов числа, начиная с младшего, получим: 0
0000 0000 0000 0000 1 000 0000 0 011 1111 = 0000803Fh.
Представим число (–15.37510). Порядок равен 3.
Код порядка – 128-1+3=13010=1000 00102.
Мантисса равна 1.111 0110 0000 0000 0000 0000.
Первая 1 мантиссы является скрытым разрядом и не записывается.
Запишем содержимое ячеек памяти в двоичном формате.
1 100 0001 0 111 0110 0000 0000 0000 0000
знак| порядок | мантисса
При чтении содержимого четырех байтов числа, начиная с младшего, получим: 0
0000 0000 0000 0000 0 111 0110 1 100 0001 = 000076С1h.
68
Примеры представления чисел типа real
Представим число 1210. Порядок равен 3.
Код порядка – 128+1+3=13210=1000 01002.
Мантисса равна 1.100 0000 0000 0000 0000 0000 0000 0000 0000 0000.
Запишем содержимое ячеек памяти, начиная с младшего байта
1000 0100 0000 0000 0000 0000 0000 0000 0000 0000 0 100 0000
порядок |
мантисса
|знак|
Представим число 110. Порядок равен 0.
Код порядка – 128+1+0=12910=1000 00012.
Мантисса равна 1.000 0000 0000 0000 0000 0000 0000 0000 0000 0000.
Запишем содержимое ячеек памяти, начиная с младшего байта
1000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0 000 0000
порядок |
мантисса
|знак|
Представим число (-15.37510). Порядок равен 3.
Код порядка – 128+1+3=13210=1000 01002.
Мантисса равна 1.111 0110 0000 0000 0000 0000 0000 0000 0000 0000.
Запишем содержимое ячеек памяти, начиная с младшего байта
1000 0100 0000 0000 0000 0000 0000 0000 0000 0000 1 111 0110
порядок |
мантисса
|знак|
69
6. СЕМЕЙСТВО ПРОЦЕССОРОВ Х86
6.1
6.2
Архитектура процессора 8086
Процессоры 80286
Изученный ранее процессор 580ИК80 является аналогом выпущенного
ранее (1974г.) фирмой Intel процессора i8080, архитектура которого получила свое
развитие в семействе х86. Первый, уже 16-разрядный, процессор i8086 появился в
1976г. Регистровая архитектура и система команд существенно отличались от
i8080, но использованы некоторые идеи. Рассмотрим процессор 8086, что
необходимо для понимания работы процессоров семейства х86.
Цель главы – ознакомление с архитектурой простейших микропроцессоров
семейства х86, функциональной схемой, распределением адресного пространства,
методами адресации и особенностями функционирования.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Регистры микропроцессоров 8086 и 80286, их разрядность и назначение,
способы формирования физического адреса в реальном и защищенном
режимах,
методы адресации,
распределение адресного пространства памяти,
функциональную схему микро-ЭВМ и особенности функционирования,
организацию векторной системы прерываний.
6.1. Архитектура процессора 8086
Процессор имеет 16-разрядную шину данных и 20-разрядную шину адреса,
что позволяет адресовать до 1Мбайта памяти. Процессор поддерживают
аппаратные и программные прерывания и прямой доступ к памяти.
Предусмотрено использование математического сопроцессора 8087, существенно
повышающего производительность вычислений с плавающей запятой. В
процессоре применена конвейерная архитектура, позволяющая выполнять
выборку команд из памяти и их декодирование во время выполнения внутренних
операций. Конвейер имеет 6-байтную очередь инструкций. Блок предварительной
выборки при наличии двух свободных байт в очереди старается ее заполнить в то
время, когда внешняя шина процессора не занята операциями обмена. Это
повышает производительность за счет сокращения времени простоя
операционных узлов процессора.
Функционально процессор можно разделить на 2 блока, работающие
независимо: блок сопряжения с магистралью (Bus Interface Unit, BIU) и
исполнительный блок (Execution Unit, EU). Такое разделение стало возможным
благодаря использованию конвейера (очереди) команд.
70
Блок сопряжения с магистралью заполняет этот конвейер командами,
ожидающими выполнения. В момент, когда исполнительный блок заканчивает
текущую команду, следующая команда, как правило, уже подготовлена для
немедленного исполнения. В случае перехода очередь сбрасывается и экономии
времени нет. Блок сопряжения с магистралью выполняет выборку команд из
памяти и пересылку данных между исполнительной аппаратурой и внешним
миром. Он содержит указатель команд, в котором хранится адрес очередной
выбираемой команды, байтовую очередь потока команд и регистры сегментов,
используемые для адресации физической памяти. Длина очереди - 6 байтов.
Исполнительный блок не имеет связи с системной магистралью. Если
команда требует обращения к памяти или к внешней магистрали исполнительный
блок посылает запрос блоку сопряжения на выборку или запись данных. Все
адреса, с которыми оперирует исполнительный блок -16-разрядные. Блок
сопряжения выполняет преобразование адресов,
РЕГИСТРЫ ДАННЫХ
чтобы иметь доступ к 1Мбайту памяти.
AL
AX
AH
Исполнительный блок в своем составе имеет 16BX
BH
BL
разрядное АЛУ, регистр флагов (признаков), набор
CX
CH
CL
регистров общего назначения, индексные и
DX
DH
DL
указательные регистры.
РЕГИСТРЫ УКАЗАТЕЛЕЙ И
ИНДЕКСОВ
Регистры процессора
Процессор имеет 14 16-разрядных регистров .
Операнды могут иметь 8 или 16 бит и
BASE
POINTER
BP
представлять двоичные и двоично-десятичные
числа. Структура регистров процессора приведена
SI
SOURCE INDEX
на рисунке 6.1. 16-битные регистры общего
DI
DESTINATION INDEX
назначения (РОН) AX, BX, CX, DX состоят из
двух 8-битных половинок, к которым можно
РЕГИСТРЫ СЕГМЕНТОВ
обращаться по именам AH, BH, CH, DH (старшие
байты) AL, BL, CL, DL (младшие байты). Это
CS
CODE
позволяет программам, разработанным для 8DATA
DS
раздядных ЭВМ (8080) выполняться после
STACK
SS
повторной трансляции. Регистры в командах могут
адресоваться явно. В ряде команд подразумевается
EXTRA
ES
неявное использование регистров. Например: AX
УКАЗАТЕЛЬ ИНСТРУКЦИЙ И
(аккумулятор)
используется
в
командах
РЕГИСТР ФЛАГОВ
умножения, деления, ввода и вывода слова; CXкак счетчик циклов и указатель длины строковых
IP
CODE
операций, DX - при умножении и делении слов,
FLAGS
FLAGS
при операциях ввода- вывода он содержит номер
Рис .6.1. Регистры процессора порта и т.д. (смотри описание команд).
Регистры-указатели SP (указатель стека), BP
(указатель базы) и индексные регистры SI (индекс источника), DI (индекс
приемника) допускают только 16-битное обращение. SI и DI предназначены для
SP
STACK POINTER
71
удобства доступа к данным в текущем сегменте данных; SP, BP - в текущем
сегменте стека.
16-битные сегментные регистры используются для задания текущих сегментов
(областей) памяти. В блок регистров - указателей сегментов входят: регистр
сегмента кодов команд CS (Code Segment), регистр сегмента данных DS (DATA
Segment ), регистр сегмента стека SS(Stack Segment ), регистр дополнительного
сегмента данных ES (Extra Segment). Эти регистры могут модифицироваться
только непосредственными командами их загрузки. Использование сегментных
регистров определяется типом обращения к памяти. Для некоторых типов
обращений возможно применение альтернативных сегментных регистров,
которое вводится префиксами команд CS:,SS:,DS:,ES. Это значит, что сегмент, из
которого считывается операнд, в общем случае, можно явно указать, если перед
командой поставить специальный однобайтный префикс. Он определяет, из
какого текущего сегмента считывается операнд. При отсутствии префикса
операнд берется из текущего сегмента данных.
Указатель команд IP содержит смещение следующей выполняемой команды
в текущем сегменте кода CS. Играет роль счетчика команд. Регистр-указатель
инструкций IP не доступен программисту, но он явно управляется командами
переходов, прерываниями и исключениями.
Регистр флагов (FLAGS) содержит расширенный набор признаков, по
которым возможны переходы, и биты управляющие режимом работы процессора:
разрешение прерывания, трассировка (пошаговое прохождение), направление
смещения индекса при работе со строками.
Данные
Процессор поддерживает следующие типы данных: байты, слова, целый без
знака, целый (8 и16-разрядный) в дополнительном коде, двоично-десятичный,
ближний указатель (16-разрядный логический адрес внутри сегмента), дальний
указатель (20-разрядный логический адрес, состоящий из адреса сегмента и
смещения), строка (последовательность байтов или слов длиной до 64Кбайт).
Инструкции процессора
Набор инструкций содержит основные группы операций: инструкции
пересылки данных, арифметические и логические инструкции, инструкции
работы со строками, инструкции передачи управления, инструкции управления
процессором. Каждая команда содержит один или два байта кода инструкции, за
которым может следовать 1, 2 или 4байта операнда или описателя его адреса.
Перед инструкцией возможно применение однобайтного префикса для указания
на использование заданного сегментного регистра вместо обычного, для указания
на необходимость повтора инструкции указанное в регистре CX число раз.
Процессор имеет 92 типа команд.
72
Сегментация памяти
Процессор предусматривает разделение пространства памяти и ввода- вывода.
20-разрядная шина адреса обеспечивает охват 1Мбайт физической памяти.
Логическая память разбивается на сегменты размером по 64 Кбайта. Физический
адрес формируется из двух 16-битных частей: адреса находящегося в сегменте
(Seg) и исполнительного адреса (EA) суммируемых со смещением на 4 бита
(A=16*Seg+EA). Исполнительный адрес может быть константой, содержимом
регистра или ячейки памяти или суммой нескольких величин. С сегментацией
связаны понятия ближнего и дальнего адреса. При ближнем (внутрисегментном)
обращении указывается только смещение, а адрес сегмента определяется текущим
содержимом
соответствующего
регистра
сегмента.
При
дальнем
(межсегментном) обращении указывается полный адрес, содержащий 16-битное
значение сегмента (загружаемое в сегментный регистр) и 16-битное смещение.
При адресации внешних устройств используются только 16 разрядов адресной
шины, следовательно, пространство ввода вывода ограничено 64Кбайт. Данные
при обмене с внешним устройством (ВУ) помещаются в регистр AL или AX и
выводятся из этих же регистров. Адрес устройства (регистра ввода-вывода)
задается либо в команде (только младший байт, старший - нулевой), либо берется
их регистра DX (16 - бит).
Методы адресации
Предусмотрено 24 способов адресации операндов. По существу режимы
(методы) адресации можно разбить на 7 групп.
1.
Регистровая адресация - операнд находится в регистре (mov AX,CL).
2.
Непосредственная адресация - 8 или 16-битовый операнд находится в
команде (mov AX, 0).
3.
Прямая адресация - исполнительный адрес является составной частью
команды (mov AX, ES:10).
4.
Косвенная регистровая адресация - исполнительный адрес операнда
содержится в базовом регистре BX, регистре указателя базы BP или
индексных регистрах SI и DI (mov [SI], 0).
5.
Адресация по базе - исполнительный адрес получается сложением
значения сдвига с содержимом регистров BX или BP (mov AX 10[BX]).
6.
Прямая адресация с индексированием - исполнительный адрес
вычисляется как сумма значений сдвига и одного из индексных регистров DI
или SI (mov AX, A[SI]).
7.
Адресация по базе с индексированием - исполнительный адрес
вычисляется как сумма значений базового регистра, индексного регистра и,
возможно, сдвига (mov AX, A[AX][SI]).
Для составления программ обычно используют макроассемблер MASM, в
котором формат команд имеет следующий вид:
Метка: мнемокод команды; комментарий .
73
Операнды, если они есть, перечисляются через запятую. Регистры
указываются своими именами. Запись имени регистра обозначает обращение к
самому регистру. Запись имени регистра в квадратных скобках эквивалентно
обращению к содержимому регистра.
Непосредственные операнды задаются константами или константными
выражениями ( mov AX, SI; mov BX, 5). Числовые константы применяются для
арифметических выражений и для адресов памяти. Ассемблер преобразует все
числовые константы в шестнадцатеричные числа и записывает байты в объектном
коде в обратной последовательности – справа налево. Десятичный,
шестнадцатеричный и двоичный формат обозначаются последней буквой
соответственно D, H, B. Число без указания системы счисления воспринимается
как десятичное.
Адреса записываются адресными выражениями, которые могут быть
модифицированы по одному или двум регистрам.
Например: mov X, AH; mov X[BX][DI], 5; mov [BX], CL; .
При записи в символьной форме необходимо следить за правильным
использованием типов операндов. Типы должны совпадать. В ассемблере тип
определяется по виду одного из операндов. Уточнение можно ввести с помощью
оператора PTR. Например: mov BYTE PTR [BX], 5; - пересылка байта.
Ассемблер имеет несколько директив определения данных, имеющих формат:
«Имя данных директива(выражение)».
Имя элемента данных не является обязательным. Некоторые директивы
записи: DB (байт), DW (слово), DD (двойное слово). Выражение может
содержать константу, знак вопроса для неопределенного выражения или
несколько констант разделенных запятыми. Выражение допускает повторение
констант в следующем формате: «Имя данных директива число повторений
выражение».
Примеры: DAT DB 25; выражение содержит константу.
DAT DB ? ; выражение содержит неопределенную
константу.
DAT 5 DB(14); выражение содержит 5 байт 0ЕН.
Символьная строка определяется только директивой DB, в которой
указывается более двух символов, заключенных в одиночные или двойные
кавычки.
Распределение памяти
Основная память отводится для системных и прикладных программ. 16
старших байтов, начиная с FFFF0h, отводятся под команды начальной загрузки
системы и используются процессором в момент включения питания. Первые 1024
байта отведены под адреса программ обработки прерывания (вектора). На каждое
прерывание (вектор) отводится 4 байта, которые содержат дальний адрес
программы обработки прерывания. Адрес первой выполняемой команды при
инициализации (при включении питания или сигнала "Сброс") определяется
значениями регистров: SS, DS, ES=0; CS=F000h; IP=FFF0h.
74
Прерывания
Процессор может выполнять прерывания 256 типов. Каждому прерыванию
соответствует свой вектор прерывания - двойное слово, содержащее дальний
адрес вызываемой процедуры обработки прерывания (CS:IP). Каждое прерывание
имеет свой номер. Некоторые номера заданы аппаратно. Когда возникает
прерывание, процессор использует номер как индекс в таблице адресов программ
обработки прерывания (векторов прерывания). Каждый элемент таблицы
занимает 4 байта и представляет полный логический адрес начала процедуры
обработки прерывания. Для хранения векторов прерывания в
памяти
зарезервирована область 0 - 3FFh (1024 ячеек). По действиям процессора
прерывания аналогичны дальним вызовам процедур (сохранение в стеке адреса
возврата, т.е. содержимого регистров CS и IP и передача управления по
указанному адресу). Порядок выполнения прерывания следующий.
1.
Вначале выполнения прерывания процессор помещает в стек регистр
флагов и сбрасывает бит разрешения прерывания IF (Interrupt Flag) в регистре
флагов.
2.
В стеке запоминается адрес возврата.
3.
По номеру вектора прерывания извлекается и загружается в регистры
дальний адрес программы обработки прерывания.
4.
По окончанию выполнения программы обработки прерывания по
инструкции (команде) IRET
из стека извлекаются и загружаются в
соответствующие регистры адрес возврата и содержимое регистра флагов.
По происхождению прерывания делятся на внутренние (прерывания
процессора при выполнении команд), аппаратные (вызываемые сигналами на
входах процессора, в том числе периферийными устройствами), программные
(при выполнении командного прерывания INT).
Внутренние прерывания,
называемые исключениями, вырабатываются
процессором по условиям, возникающим при выполнении очередной инструкции:
вектор 0 вырабатывается в случае деления на 0,
вектор 1 вырабатывается после выполнения каждой команды
при
установленном флаге трассировки TF в регистре флагов,
вектор 4 вырабатывается по команде INTO (Interrupt Overflow), если
установлен флаг переполнения OF в регистре флагов.
В отличие от прерываний после обработки исключений, кроме исключения 9
при работе с сопроцессором, управление возвращается снова к той же
инструкции.
Аппаратные или внешние прерывания могут возникать асинхронно
относительно выполняемой программы. Они делятся на маскируемые и
немаскируемые.
Маскируемые прерывания вызываются переходом в высокий уровень сигнала
на входе INTR (Interrupt Request - запрос прерывания) при установленном флаге
разрешения прерывания (IF=1). Процессор этом случае сбрасывает флаг IF
(запрещает прерывания) и вырабатывает два следующих друг за другом цикла
75
подтверждения прерывания, в которых генерируются управляющие сигналы
INTA# (Interrupt Acknowledge - подтверждения прерывания). По второму
импульсу внешний контроллер прерываний передает по шине данных байт,
содержащий номер вектора прерывания. Обработка текущего прерывания может
быть прервана немаскируемым прерыванием и другим маскируемым
прерыванием, если обработчик установит флаг IF.
Немаскируемое прерывание выполняется независимо от состояния флага IF
по сигналу NMI (Non Mascable Interrupt). Высокий уровень сигнала на этом входе
вызывает прерывание с вектором 2, которое не может прерываться под действием
сигнала NMI до выполнения инструкции возврата IRET.
Программные прерывания вызываются командой INT xx, где хх - номер
вектора прерывания. Программные прерывания исполняются независимо от
состояния флага IF. Программные прерывания позволяют быстро вызывать часто
используемые процедуры. Использование процедур обработки прерывания BIOS
и DOS дает разработчику мощный инструмент для написания программ.
Функционирование
По снятию сигнала RESET (сброс) процессор начинает выполнение
инструкции, находящейся по адресу FFFF0h. Сигнал RESET устанавливает
регистры в состояние CS=FFFFh, IP=0, DS=SS=ES=0 и сбрасывает все флаги.
Далее следуют обычные инструкции или инструкции передачи управления. Среди
инструкций следует выделить две.
Инструкция HALT (останов) переводит процессор в состояние останова, из
которого его может вывести только аппаратное прерывание или аппаратный
сброс. В этом режиме процессор не управляет шинами. Все тристабильные
буферы отключены.
Инструкция WAIT (ждать) заставляет процессор ожидать активного (низкого
уровня) сигнала на входе TEST#. До появления активного сигнала процессор
также не управляет локальной шиной. В случае аппаратного прерывания после
окончания его обслуживания процессор снова вернется в состояние ожидания.
Проверка состояния входа TEST#
используется для синхронизации с
математическим сопроцессором 8087.
76
6.2. Процессоры 80286
Процессоры 80286 -второе поколения 16-разрядных процессоров, имеющих
24-разрядную шину адреса. Самым существенным отличием является механизм
управления адресацией памяти. Он имеет специальные средства для работы в
многопользовательских и многозадачных системах. Остановимся на
существенных отличиях и дополнениях по сравнению с 8086.
В процессоре за счет улучшения архитектуры сокращено время выполнения
команд, повышена тактовая частота и предусмотрено использование
высокопроизводительного математического сопроцессора, предназначенного для
выполнения операций над числами в формате плавающей запятой.
В процессоре 8086 было 14 регистров (IBM/XT). В процессоре 80286
имеется уже 14+5 видимых регистров, доступных пользователю. Имеется также
ряд невидимых регистров. Назначение дополнительных регистров будет
объяснено позже. Процессор имеет расширенную систему команд и может
работать в двух режимах: режиме реальной адресации (Real Mode) и защищенном
режиме (Protected Mode). Процессор после сброса начинает работать в реальном
режиме (эмуляции 8086). Переключение в защищенный режим осуществляется
одной командой после размещения в реальном режиме специальных таблиц
дискрипторов в оперативной памяти. Обратное переключение - только по сигналу
сброса.
Реальный режим
В реальном режиме метод генерации физического адреса прост. Содержимое
сегментного регистра сдвигается влево на 4 бита и складывается со смещением. В
результате получается 20-разрядный адрес Объем адресуемой памяти 1Мбайт.
Под управлением операционной системы MS DOS процессор используют в
реальном режиме работы.
Защищенный режим
В защищенном режиме содержимое сегментного регистра (называемого
селектором) используется для поиска базового адреса в специальной таблице
базовых адресов находящейся в оперативной памяти и созданной операционной
системой при ее загрузке. Эта таблица называется дескрипторной таблицей или
таблицей описания сегментов памяти. В ней кроме базовых адресов начала
сегмента (24 разряда) содержится размер сегмента и байт с описанием доступа к
нему. Размер записи в дескрипторной таблице 8 байт. В защищенном режиме
процессор по селектору, хранящемуся в сегментном регистре, находит
соответствующую запись в дескрипторной таблице, считывает значение 24битового базового адреса сегмента, добавляет адрес-смещение и полученный
адрес используется как искомый физический адрес байта или слова. Для того
чтобы при каждом формировании адреса не обращаться к дескрипторной таблице
за базовым адресом сегмента имеется теневой регистр базового адреса сегмента.
77
При каждом изменении содержимого сегментного регистра процессор из
дескрипторной таблицы, хранящейся в ОЗУ, читает в этот теневой регистр
информацию о сегменте, в том числе и базовый адрес, который помещает в
теневой регистр. Затем при генерации физического адреса используется базовый
адрес из теневого регистра.
Теневые регистры (невидимые)
63
56 55
16 15
0 ← разряды
Права доступа Базовый адрес сегмента Размер
CS
DS
SS
ES
Видимый
GDTR
39
16 15
Базовый адрес таблицы Размер сегмента с таблицей
0 ← разряды
Для указания места расположения в ОЗУ дескрипторной таблицы имеется
видимый (доступный пользователю) регистр глобальной дескрипторной таблицы
(GDTR). GDTR имеет 40 разрядов и содержит данные о положении в ОЗУ
(базовый адрес) и размере дескрипторной таблицы. Для изменения содержимого
GDTR используются команды чтения и записи GDTR.
Кроме глобальной дескрипторной таблицы имеется и локальная
дескрипторная таблица. Селектор локальной дескрипторной таблицы содержится
в видимом регистре локальной дескрипторной таблицы (LDTR). Селектор
(содержимое LDTR) указывает на место (запись) в глобальной дескрипторной
таблице (GDT), содержащую информацию о положении локальной
дескрипторной таблицы. Эта информация переписывается в теневой регистр
локальной дескрипторной таблицы.
Теневой регистр LDTR
Видимый регистр LDTR
63
56 55
16 15
0
15
0
Права
Базовый адрес
Размер
Селектор LDTR
доступа
сегмента
Выбор таблицы (глобальной или локальной) при генерации адреса
указывается специальным битом выбора таблицы в селекторе сегмента
(сегментном регистре). Формат селектора сегмента (сегментного регистра)
приведен ниже.
15
3 2 1
0
Индекс (Index) TI
RTL
Младшие 2 бита указывают уровень привилегий, используемый для защиты
памяти. Второй бит указывает тип дескрипторной таблицы. Если TI=0,
используется глобальная дескрипторная таблица. Если TI=1, используется
78
локальная таблица. Старшие биты (3-15) содержат индекс, по которому
осуществляется поиск записи в соответствующей дескрипторной таблице.
Поиск нужной записи в дескрипторной таблице ведется по индексу,
который просто указывает номер 8-байтовой записи с информацией о положении
и длине сегмента. Начало записи указывает GDTR. Если используется локальная
таблица, то LDTR указывает номер записи в GDT, дающий адрес начала
локальной дескрипторной таблицы, из которой по индексу аналогично
определяется положение сегмента (адрес его начала).
Для переключения режима работы с обычного (при загрузки ОС) на
защищенный используется специальный регистр состояния машины MSW
(Machine State Word), содержащий слово состояния. Биты MSW управляют
режимом адресации и взаимодействием с сопроцессором. Установка нулевого
бита MSW переводит процессор в защищенный режим. Сброс этого флага
возможен только по сигналу сброса. Защищенный режим используют ОС XENIX,
UNIX, WINDOWS.
Прерывания
В процессоре 80286 можно размещать таблицу векторов прерывания в
произвольном месте, а не только в начале памяти. Для указания места размещения
таблицы векторов прерывания имеется специальный видимый регистр IDTR
(регистр дескрипторной таблицы прерываний). Он определяет начало и размер
таблицы векторов прерывания.
IDTR
Базовый адрес
Размер сегмента
Регистр состояния задачи
Для организации многозадачной работы в состав процессора входит регис тр
состояния задачи. В обычном режиме он не доступен. Этот регистр содержит
селектор сегмента состояния задачи. В защищенном режиме он доступен для
чтения и записи.
Некоторые особенности функционирования
В адресном пространстве ввода-вывода для использования сопроцессором
зарезервирована область 00F8 - 00FF. В защищенном режиме инструкции вводавывода являются привилегированными, т.е. они могут исполняться задачами
только с определенным уровнем привилегий, определяемым одним из полей
регистра флагов.
Набор и обработка исключений реального и защищенного режимов различны.
Под исключения Intel резервирует векторы 0-31 в таблице прерываний, однако в
PC часть из них перекрывается системными прерываниями BIOS и DOS. Адрес
программы обслуживания прерывания определяется по таблице с помощью 8битного номера вектора прерывания. Номер вектора для программных
прерываний задается командой, для маскируемых прерываний вводится от
79
внешнего контроллера во втором цикле INTA#, немаскируемое прерывание
имеет фиксированный вектор, а исключения генерируют и передают номер
вектора внутри процессора.
Каждому номеру прерывания соответствует элемент в таблице
дискрипторов прерываний IDT (Interrupt Discriptor Table). В реальном режиме
таблица прерываний организована как 8086. Она содержит дальние адреса
программ обслуживания и после сброса располагается начиная с нулевых адресов.
Однако инструкцией можно изменить ее положение в пределах 1Мбайта. В
защищенном режиме таблица может находиться в любом месте физической
памяти.
После аппаратного сброса процессор переходит в реальном режиме к
выполнению команды по физическому адресу FFFFF0h, при этом
устанавливаются следующие значения регистров: CS=F000h, IP=FFF0h,
DS=SS=ES=0000h. Только после сброса и до первой команды межсегментного
перехода или вызова (подпрограммы) в реальном режиме на шине адреса биты
A[20-23] в цикле выборки команд имеют значение "1". Таким образом, ROM
BIOS (играющий роль начального аппаратного загрузчика) должен располагаться
по адресам FFFFF0h - FFFFFFh. В то же время для 8086 ROM BIOS располагалась
под границей FFFFFh. В реальном режиме векторы прерываний, ссылающиеся на
BIOS, также могут адресоваться в диапазоне адресов 0 - FFFFFh. Поэтому на
процессоре 80286 (и старше) ROM BIOS отображается по крайней мере на две
области памяти, расположенных под первым и последним мегабайтом адресуемой
физической памяти.
Система команд 80286 расширена по сравнению с 8086. Вследствие
сложности системы команд программирование целесообразно вести на языке
Ассемблер или использовать языки более высокого уровня. Это позволит
воспользоваться инструментарием BIOS и операционных систем.
Функциональная схема PC AT
Функциональная блок схема процессора 80286 представлена на рис. 6.2.
Синхрогенератор генерирует
CLK
Микротактовый сигнал CLK для
АДРЕС
Синхропроцессор
синхронизации внутреннего
генератор RESET
ДАННЫЕ
функционирования
80286
82284
READY
процессора
и
других
УПРАВЛЕНИЕ
микросхем.
RESET
производит сброс процессора
в
начальное
состояние.
S0
S1
M/IO
Сигнал READY (готовность) ШИННЫЙ
для удлинения цикла при
КОНТРОЛЛЕР
работе
с
медленными
82 288
Готовность
периферийными
Рис.6.2. Функциональная схема
устройствами. Адресная шина
имеет 24 линии и позволяет
80
адресовать 16Мбайт памяти. Шина данных имеет 16 разрядов. По ней возможна
передача слов и байтов по старшим и младшим адреса. Шинный контроллер
(системный контроллер) на основании сигналов S 0 , S1 , M / IO формирует
управляющие сигналы шины управления определяющие перенос данных
(подтверждение прерывания, чтение-запись порта ввода-вывода, чтение-запись
памяти, останов).
Выходная шина процессора называется L-шина (рис 6.3.). Кроме L-шины
имеется еще 3 шины. Основной шиной, связывающей компьютер в единое целое
является S-шина. Она выведена на слоты -8 разъемов на системной плате. В них
стоят платы периферийных адаптеров (дисплея, флоппи дисков, винчестера,
мыши). Для передачи адреса на шину имеются буферные регистры-защелки. Они
не только передают адрес с L-шины на S-шину, но и разъединяют их в случае
необходимости. М-шина отделяет S-шину от оперативной памяти. Все
микросхемы системной платы, кроме сопроцессора, подключены к Х-шине.
БУФЕР
МИКРО- L ШИНА
S ШИНА
ПРОЦЕСБУФЕР
СОР
БУФЕР
X ШИНА ПЕРИФЕРИЙНЫЕ
МИКРОСХЕМЫ
НА СИСТЕМНОЙ
ПЛАТЕ
M ШИНА
ОПЕРАТИВНАЯ
ПАМЯТЬ
Рис.6.3. Система шин процессора
Ширина шин данных LD, SD и MD равна 16, а XD равна 8 битам. Ширина
шины адреса ХА равна 16 битам. Ширина адресной шины MA равна 10 линиям.
10 линий используются для передачи адреса с мультиплексированием. Сначала
передаются 10 младших разрядов адреса, затем 10 старших. Так требуется для
организации работы динамической памяти. Тут возможны варианты, зависящие
от типа ПК (например 8 линий).
В стандартном
PC AT часть системной
шины выведена
на 8
запараллеленных разъемов (рис.6.4.), имеющих 62 вывода (А1-А31, В1-В31 и
расположенных в 2 ряда для подключения печатной платы). Эти 8 разъемов
совместимы с шиной PC XT (8086).
1
AT
ШИНА XT
. . .
6
ШИНА XT
AT
7
ШИНА XT
XT
8
ШИНА XT
XT
Рис.6.4. Расположение разъемов на плате процессора
81
Другая часть системной шины выведена на шесть параллельных 36-выводных
разъемов расширения с двухрядным расположением выводов (С1-С18, D1-D18).
Они расположены как продолжение ХТ разъемов. Таким образом, образуется АТ
разъем шины АТ, или шина по стандарту ISA. Большинство интерфейсов
пользователей для сопряжения с объектами управления подключаются к этой
шине. Устройство интерфейса определяется системой сигналов в шине и
протоколами обмена.
82
7. ШИНА ISA И ИНТЕРФЕЙСЫ СОПРЯЖЕНИЯ С УСТРОЙСТВАМИ
УПРАВЛЕНИЯ
7.1. Конструкция шины ISA
7.2. Проектирование устройств сопряжения для шины ISA
Магистраль ISA разработана специально для персональных компьютеров
типа IBM PC AT и является фактически стандартом. Простота архитектуры шины
обусловили дешевизну интерфейсных плат сопряжения и сделали ISA шину
наиболее распространенной в системах автоматизации технологических
процессов, где не требуются большие скорости обмена. Слоты ISA шины имеются
практически во всех промышленных компьютерах.
Цель главы – ознакомление с системой сигналов и протоколами обмена
магистрали ISA, получение знаний по проектированию устройств сопряжения.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Основные сигналы магистрали ISA,
распределение адресов ввода-вывода на системной плате,
временные диаграммы циклов программного обмена,
функциональные схемы устройств сопряжения,
принципиальные схемы дешифраторов адреса,
принципиальные схемы подключения входных и выходных регистров,
принципиальные схемы формирования сигналов готовность и выбора цикла.
Реально во всех компьютерах выходные шины многократно буферизованы.
Кроме того в современном персональном компьютере имеются шины разных
типов, отличающиеся системой сигналов в них (протоколами обмена),
производительностью и электрическими параметрами. Это обусловлено разными
требованиями к скорости обмена со стороны подключаемых устройств.
Примерами могут служить шины ISA (Industrial Standard Architecture) и EISA
(Extended ISA), которая обеспечивает 32 разрядный обмен, автоматическую
конфигурацию системы (определения подключенных плат расширения), скорость
обмена до 33Мбайт/сек и совместима с шиной ISA.
Тип примененных локальных шин в компьютере зависит от производителя.
В раде компьютеров используются следующие шины.
PCI (Peripheral Component Interconnect) b и VLB (Video Local Bus)
локальные шины для подключения к компьютеру 32 разрядных плат расширения .
Они не привязаны к типу процессора, позволяют подключать до 10 устройств,
обеспечивают автоконфигурацию и скорость обмена 130Мбайт/сек. VLB шина
ориентирована на подключение видеоплаты и имеет малую нагрузочную
способность (2-3 устройства). Шина адреса имеет 30 разрядов.
83
VESA (Video Electronics Standard Association) предназначена для
подключения видеоустройств.
MCA (Micro Channel Architecture) - предложила и использует фирма MCA.
Шина имеет разрядность шин данных и адреса 32, что позволяет адресовать до
4Гбайт памяти при скорости 160Мбайт/сек, и автоматическую конфигурацию
системы. Недостаток- несовместимость с шиной ISA.
В последнее время для подключения высокоскоростных периферийных
устройств получил распространение интерфейс (шина) SCSI. Он позволяет
подключать к компьютеру до 7 внешних устройств через один адаптер (мост),
обеспечивающий при 8-разрядной синхронной передаче скорость до 34Мбайт/сек. Длина линии связи может достигать 6 метров при однопроводной
линии и до 25м при дифференциальной. Модернизацией этого интерфейса
является SCSI-II, обеспечивающий скорость обмена 30-40Мбайт при 16 и 32разрядных шинах данных. Его основное назначение - сопряжение с дисковыми
накопителями.
Шина ISA по существу является буферизированной шиной основной
системной магистрали распространенного процессора 80286. Простота
архитектуры шины и относительно малая скорость обмена (до 5 Мбайт/сек)
обусловили дешевизну интерфейсных плат сопряжения. Дешевизна плат
сопряжения сделали ISA шину наиболее распространенной, особенно в системах
автоматизации технологических процессов. Слоты ISA шины имеются
практически во всех промышленных компьютерах предназначенных для
построения систем автоматического управления.
7.1. Конструкция шины ISA
Система сигналов системной шины и протоколы обмена определяют
устройство схем сопряжения ЭВМ с технологическими объектами управления.
Рассмотрим основные сигналы шины ISA. ISA магистраль является расширением
магистрали компьютеров IBM PC и XT при переходе к IBM AT (на 286
процессоре). Тактовый сигнал шины не совпадает с тактовым сигналом
процессора. Конструктивно платы адаптеров, устанавливаемые в слоты
(разъемы), имеют приведенное на рисунке 7.1 расположение контактов. Такое
СТОРОНА НАВЕСНЫХ
ЭЛЕМЕНТОВ
РАЗЪЕМ
С18
С1 А31
РС
А1
РАЗЪЕМ
В1
РС
В31 D1
D18
Рис.7.1. Расположение контактов разъема шины ISA
расположение контактов разъемов принято, чтобы обеспечить возможность
использования устройств сопряжения, разработанных для РС и ХТ.
84
Выводы шины ISA
Отметим основные сигналы шины, определяющие структуру интерфейса. В
квадратных скобках приведены номера контактов. Черта над названием сигнала
означает, что активному состоянию сигнала соответствует низкий уровень.
SA0 - SA19 [A31-A12]- фиксируемые адресные разряды (20 линий для
адресации 1Мбайта памяти). Защелкивание адреса идет по падающему фронту
сигнала BALE. Сигналы действительны в течении всего цикла обмена. Они
используются и для адресации устройств ввода-вывода (SA0-SA15), в
действительности используются SA0-SA9. Значительная часть этих адресов
занята стандартными устройствами компьютера. Логика всех сигналов
положительная. В режиме MASTER эти сигналы вырабатывает устройство,
захватившее магистраль. Тип выходного каскада - каскад с 3 состояниями.
LA17 - LA23 [C8-C2] - не фиксируемые адресные разряды. Используются
для адресации памяти и выработки сигнала MEM CS 16 . Действительны только в
начале цикла обмена. Исполнитель должен фиксировать их по отрицательному
фронту сигнала BALE. При обращении к устройствам вводa-вывода имеют
уровень логического нуля. Для фиксации необходимо использовать регистр типа
"защелка" (КР1533ИР23, К555ИР22). При прямом доступе к памяти эти сигналы
действительны в течение всего цикла обмена. Сигнал вырабатывает устройство
MASTER. Тип выходного каскада - каскад с 3 состояниями.
BALE [B28] (Bus Address Latch Enable) - выходной сигнал разрешения
защелкивания адреса, т.е. сигнал стробирования адресных разрядов. Его
отрицательный фронт соответствует действительности адреса на линиях SA0 SA23. Высокий уровень показывает, что адрес на системной шине сформирован.
Это буферизированный вариант сигнала GATE ALE. Тип выходного каскада TTL.
SBHE [C1] (System Bus High Enable)- разрешение старшего байта. Сигнал
определяет тип передачи данных (8 или 16- разрядный), вырабатывается
параллельно с SA0-SA19 и может рассматриваться как дополнительный разряд
адреса. Он активен при передаче старшего байта или 16-разрядного слова.
Вырабатывается устройством MASTER, т.е. устройством, захватившим
магистраль. Выходной каскад имеет 3 состояния. Это буферизированный вариант
сигнала BHE процессора, который совместно с разрядом адреса А0 указывает на
одну из 3 ситуаций при передаче данных.
SBHE
0
0
1
1
A0
0
1
0
1
ПЕРЕДАЧА
перенос слова
перенос байта по верхней половине шины
перенос байта по нижней половине шины
не используется
85
SD0-SD7 [A9-A2] - линии передачи младшего байта; логика положительная;
выходной каскад имеет 3 состояния
SD8-SD15[C11-C18] - линии передачи старшего байта; логика
положительная; выходной каскад имеет 3 состояния
SD0 - SD15 - шина данных; при обмене с Х шиной шириной 8 бит происходит
передача на Х шину как с верхней, так и с нижней половины S-шины, что
достигается коммутацией.
SMEMR[B12], MEMR[C9] (Memory Read) - стробы чтения данных из
памяти формируются шинным контроллером и информируют о чтении слова или
байта из памяти. Первый сигнал вырабатывается только при обращении к адресам
не превышающим FFFFF (1Мбайт), второй- ко всем адресам. В ответ на этот
сигнал память выставляет данные. Вырабатывается устройством MASTER,
захватившим шину. Выходной каскад имеет 3 состояния.
SMEMW[B11], MEMW[C10] (Memory Write)- стробы записи в память,
исходят от шинного контроллера и информируют о записи слова или байта в
память. Память принимает данные по положительному заднему фронту сигнала.
Первый сигнал используется при обращении к первому мегабайту ОЗУ .
IOR[B14] (I/O Read) -строб чтения данных из устройств ввода-вывода.
Адрес порта находится на линиях SA0-SA15. Устройство должно выставлять свои
данные при активизации сигнала и снимать при его снятии.
IOW [B13](I/O Write)- строб записи данных в устройство ввода-вывода
Устройство должно принимать данные по положительному (заднему) фронту
сигнала. В линиях IOR, IOW тип выходного каскада - каскад с 3 состояниями и
сигналы вырабатывает устройство, захватившее магистраль (MASTER).
MEM CS16 [D1] (Memory Cycle Select)- выбор цикла из памяти. Сигнал
выставляется памятью для сообщения задатчику, что она имеет 16-разрядную
организацию. При отсутствии сигнала выполняется 8-разрядный обмен. Сигнал
вырабатывается при распознавании памятью своего адреса на линиях LA17-LA23.
Процессор фиксирует его по заднему фронту сигнала BALE. Выходной каскад
имеет открытый коллектор.
I/O CS16 [D2] (I/O Cycle Select) - выбор цикла для устройства ввода-вывода.
Сигнал используется для сообщения задатчику, что устройство имеет 16
разрядную организацию При отсутствии сигнала выполняется 8-разрядный
обмен. Сигнал вырабатывается при распознавании своего адреса на линиях SA0SA15. Выходной каскад имеет открытый коллектор.
I/O CH RDY [A10] (I/O Channel Ready) -готовность канала ввода-вывода и
устанавливается равным 0 (не готов) для увеличения цикла обмена. Сигнал
снимается (делается низким) устройством ввода-вывода по переднему фронту
сигналов IOR, IOW , если оно не успевает выполнить требуемую операцию в
темпе задатчика. При этом реализуется асинхронный обмен. Если исполнитель
успевает работать в темпе задатчика, сигнал не снимается (не устанавливается в
низкий уровень). Цикл обмена в ответ на снятие сигнала продлевается на целое
число периодов сигнала SYSCLK. Сигнал не должен сниматься на время большее
заданного в компьютере (по стандарту 15мксек, по другим данным 2.5 мксек, т. е.
86
30 циклов CLK) во избежание немаскируемого прерывания по отсутствию
регенерации. Выходной каскад имеет открытый коллектор.
I/O CH CK [A1](I/O Channel Check)- проверка канала ввода-вывода. Сигнал
вырабатывается любым исполнителем (устройством ввода-вывода или памятью)
для информирования задатчика о фатальной ошибке (например, ошибки четности
при обращении к памяти). Сигнал вызывает немаскируемое прерывание.
Выходной каскад имеет открытый коллектор.
0WS [B8] ( 0 Wait States) - 0 тактов ожидания. Сигнал формируется и
выставляется исполнителем (адаптером периферийного устройства) для
информирования задатчика о необходимости проведения цикла обмена без
вставки такта ожидания, если длительность стандартного цикла обмена велика
для него. Вырабатывается после перехода сигнала BALE в низкий уровень.
Сигнал OWS должен быть синхронизован с SYSCLK. Он используется редко.
Выходной каскад имеет открытый коллектор.
REFRESH [B19]-регенерация. Сигнал выставляется контроллером
регенерации для информирования всех устройств магистрали о выполнении
циклов регенерации динамического ОЗУ (каждые 15мксек). При регенерации
выполняется псевдочтение одного из 256 адресов ОЗУ (активизируются только
разряды SA0-SA7). Полный цикл регенерации- 4мсек. Выходной каскадоткрытый коллектор.
RESET DRV [B2] (Reset of Driver)- сброс устройства (буферизированный
сигнал RESET). Сигнал сброса всех устройств магистрали. Вырабатывается ЦП
при включении или при сбое питания. Внешние платы в ответ на этот сигнал
(длительностью 1мсек) должны перевести свои выходы в высокоимпендансное
состояние. Тип выходного каскада -TTL.
SYSCLK [B20] (System Clock) - сигнал системного тактового генератора со
скважностью 2 (меандр). В большинстве компьютеров его частота равна 8Мгц,
независимо от тактовой частоты процессора. Если в программе SETUP
предусмотрена возможность изменения тактовой частоты, то пользователь может
задавать ее в широких пределах. Но для совместимости с имеющимися платами
расширения ее нежелательно повышать ее выше 8Мгц. Выходной каскад имеет 3
состояния.
OSC [B30] - не синхронизированный с SYSCLK сигнал кварцевого
генератора с частотой 14.311818 и скважностью 2, одинаковый для всех
компьютеров. Может использоваться в расширениях как тактовый сигнал.
Выходной каскад -TTL-совместимый.
IRQ (Interrupt Request)- группа линий запроса прерывания. Запросом
является положительный переход на соответствующей линии IRQ. Сигнал должен
удерживаться до начала обработки процессором запрашиваемого прерывания.
Выходной каскад - TTL. На каждой линии должен быть один выход (лучше с 3
состояниями). Многие входы IRQ заняты системными ресурсами. Сигналы
IRQ0...IRQ2, IRQ8,IRQ13 заняты в системной плате и недоступны платам
расширения. В компьютерах используются 2 контроллера прерываний (IRQ0IRQ7, IRQ8-IRQ15). Вход IRQ2 задействован для каскадирования контроллеров
прерывания. Поэтому приоритеты распределены в порядке возрастания: IRQ7 ...
87
IRQ
Конт. IRQ
Конт. IRQ3, IRQ15, IRQ14, IRQ12... IRQ9. Заметим,
что большинство линий заняты устройствами,
IRQ3 B25
IRQ10 D3
входящими в ЭВМ, и пользователь для своих
IRQ4 B24
IRQ11 D4
расширений реально может использовать
IRQ5 B23
IRQ12 D5
только линии IRQ10, IRQ11, IRQ12, IRQ15.
IRQ6 B22
IRQ14 D7
IRQ7 B21
IRQ15 D5
IRQ9 B4
Номера некоторых аппаратных прерываний шины ISA:
Номер прерывания IRQ
INT
Назначение
0
08h
Программируемый таймер
1
09h
Контроллер клавиатуры
8
70h
Часы реального времени
13
75h
Математический сопроцессор
3
0Ch
Последовательный порт COM1
6
0Eh
Контроллер гибкого диска
7
0Fh
Параллельный порт LPT1
DRQ (DMA Request) - группа линий запроса прямого доступа к памяти
(ПДП). Запросом является положительный переход на соответствующей линии.
DRQ
Конт. Сигнал должен удерживаться до получения ответного сигнала
DACK с тем же номером. Тип выходного каскада - TTL. На
DRQ0 D9
каждой линии должен быть один выход. В компьютерах
DRQ2 B6
используются два контроллера ПДР. Сигналы DRQ0... DRQ3,
DRQ3 B16
соответствующие первому контроллеру, предназначены для 8DRQ5 D11
битного обмена, а DRQ5... DRQ7, соответствующие второму
DRQ6 D13
контроллеру - для 16-битного. Канал DRQ4 - используется для
DRQ7 D15
каскадирования контроллеров и недоступен пользователю.
Распределение приоритетов: DRQ0 имеет наивысший приоритет, DRQ7 - низший.
DACK (DMA Acknowledge) - группа линий подтверждения ПДП. Сигналы
DACK
Конт. подтверждения прерывания вырабатываются в ответ на
соответствующий сигнал DRQ, если прямой доступ
DACK1 B17
предоставлен данному каналу. Сигнал удерживается до
DACK2 B26
окончания прямого доступа. Выходной каскад - TTL.
DACK3 B15
AEN [A11] (Address Enable)- разрешение адреса.
DACK0 D8
Используется в режиме ПДП для сообщения всем платам
DACK5 D10
расширения, что производится цикл ПДП. Устанавливается и
DACK6 D12
снимается параллельно с адресом. При его переходе в
DACK7 D14
активное состояние все платы расширения, не участвующие в
данном ПДП, должны отключиться. Выходной каскад - TTL.
T/C [B27]- (Terminal Count) - окончание счета. Устанавливается в режиме
ПДП, когда по текущему каналу ПДП закончен счет циклов пересылки данных.
Тип выходного каскада - TTL.
88
MASTER - мастер, задатчик. Используется платой расширения желающей
стать задатчиком магистрали (например, для организации многопроцессорных
систем). Выходной каскад - открытый коллектор. Порядок установки сигнала:
выставить сигнал DRQ и в ответ на DACK установить сигнал MASTER. Через 1
период SYSCLK выставить адрес и через 2 периода выставлять стробы обмена.
В шине имеются выходы источника питания для плат расширения.
Стандартом магистрали предусмотрено максимальное значение тока,
потребляемого каждой платой. Ток определяется нагрузкой разъема. Суммарный
ток потребления от источника питания определяется его мощностью и для 200ваттного источника приведен в таблице 7.1.
Максимальная допустимая нагрузка
Табл. 7.1.
Напряжение питания
+5
-5
+12
-12 Общий
Максимальный
ток
3а
1.5а
1.5а
1.5а
платы
Суммарный ток
7-19а
0.3а 2.5-7а 0.3а
Контакты
D16, B29, B3
B5
B9
B7 D18, B31, B1
Источники имеют защиту от перенапряжения с временем включения 20 мсек.
Источник должен быть обязательно нагружен по напряжению +5в и +12в. Если по
ним не будет обеспечен минимальный ток, то это воспринимается как перегрузка.
Для выхода из перегрузки надо выключить питание и включить его через время
большее 1 сек.
Распределение адресов на системной плате АТ
Адресное пространство ввода-вывода используется в значительной мере
ЭВМ, что необходимо учитывать при разработке плат расширении (сопряжения с
внешними устройствами).
При разработке IBM PC/AT первые 256 байт в адресном пространстве
портов ввода-вывода зарезервировано за системной платой. 32 порта с адресами
00-1F отведены для первого контроллера ПДП. Следующие 32 порта с адресами
20-3F отведены для работы с первым контроллером прерываний, хотя
используются 2 порта (20-21). Адреса 40 -5F отведены для выбора
программируемого таймера (используются 40-43). Диапазон 60-7F отведен
программируемому параллельному интерфейсу PPI в XT. В АТ его функции
выполняет клавиатурный контроллер 8042. В АТ порты 60- 6F используются для
организации работы клавиатурного контроллера 8042, а 70-7F для обмена
данными с CMOS памятью (с батарейным питанием на которой функционируют
часы реального времени и хранятся установки системы). Для маскирования
прерываний используется порт 70h. Порты 80-9F предназначены для страничных
регистров, которые совместно с контроллерами ПДП формируют адрес. Адресное
пространство A0-BF предназначено для второго контроллера прерываний 8259, а
адреса C0-DF - для второго контроллера ПДП. Порты F0-FF используются
сопроцессором, при попадании адреса в этот интервал генерируется сигнал CS287
выбора сопроцессора.
89
Диапазон 100-3FF зарезервирован для использования в платах
периферийных адаптеров. Используют адреса портов:170-177 -второй накопитель
на жестком диске; 1F0-1F7 - первый накопитель на жестком диске; 200-207 игровой порт (джойстик); 278- 27F- параллельный порт LPT2; 2F8-2FFпоследовательный порт COM2; 360-36F- резервные адреса; 370-377 - второй
накопитель на гибком диске; 378-37F- порт LPT1; 3F0-3F7 - первый накопитель на
гибком диске; 3F8-3FF - последовательный порт COM1; и т.д.
Циклы магистрали
В магистрали в режиме программного обмена выполняется 4 типов циклов:
запись/чтение из памяти, запись/чтение из устройства ввода-вывода. Устройство
сопряжения проектируют как устройство ввода-вывода. Временная диаграмма
процедуры ввода приведена на рисунке 7.2.
Циклы начинаSYSCLK
ются с выставBALE
ления процессоSA0-SA15,
ром (задатчиком)
SBHE
адреса на линиях
I/O CS16
SA0-SA15
и
сигнала SBHE IOR
разрешение
I/O CH RDY
старшего байта.
Чаще
всего
SD0-SD15
используют
только 10
Рис.7.2. Диаграмма цикла чтения
младших линий,
т.к. большинство плат используют только их и нет необходимости обрабатывать
SA10-SA15. В ответ на получение адреса устройство ввода-вывода, распознавшее
свой адрес, должно сформировать и выставить сигнал I/0 CS16 в случае, если
обмен должен быть 16-разрядным и чтобы информировать процессор об этом.
При отсутствии этого сигнала идет 8-разрядный обмен. Сигнал формируется при
распознавании внешним устройством своего адреса. Выход сигнала - открытый
коллектор. Затем процессор вырабатывает сигнал IOR или IOW. В цикле чтения
процессор выставляет сигнал IOR, в ответ на который устройство ввода-вывода
должно выдать данные на шину данных. Эти данные должны быть сняты
исполнителем после снятия процессором сигнала IOR. В случае, когда устройство
сопряжения не успевает выполнить требуемую от него команду в темпе
магистрали, оно может приостановить завершение цикла чтения или записи на
целое число периодов сигнала SYSCLK с помощью снятия сигнала I/O CH RDY.
Это производится в ответ на получение сигнала IOR или IOW. Снятие сигнала
возможно на время не более 15мксек (иногда указывают 2.5мксек), иначе
процессор перейдет в режим обработки немаскируемого прерывания.
90
В цикле вывода процессор выставляет записываемые данные и
сопровождает их стробом записи IOW. Данные должны записываться по заднему
фронту сигнала IOW,
SYSCLK
т.к.
в
некоторых
BALE
компьютерах данных
в момент переднего
SA0-SA15,
фронта IOR еще не
SBHE
действительны.
I/O CS16
Временная диаграмма
IOW
цикла
вывод
I/O CH
представлена
на
RDY
рисунке 7.3.
Временные
SD0-SD15
диаграммы
циклов
Рис.7.3. Диаграмма цикла записи
программного обмена
определяют
аппаратную реализацию устройств сопряжения.
Аналогично выполняется обмен с памятью, но устройство, работающее как
память (в адресном пространстве памяти), должно обрабатывать все адресные
разряды, включая SA17- SA23.
Прямой доступ к памяти
Цикл ПДП начинается с запроса ПДП с помощью одного из сигналов DRQ.
После освобождения магистрали контроллер ПДП со стороны процессора
формирует сигнал DASK по линии с номером линии запроса, говорящий о
предоставлении ПДП запросившему устройству. Затем устройство, запросившее
ПДП, вырабатывает адрес ячейки памяти, с которой будет производиться обмен в
текущем цикле и сигнал AEN, который говорит, что идет обращение в режиме
ПДП. При чтении после этого устройство выставляется строб чтения (IOR или
MEMR) в ответ, на который источник передаваемых данных выставляет свою
информацию на шину данных. При записи устройство выставляет данные с строб
записи (IOW или MEMW ), по которому данные записываются в приемник
данных. Временная диаграмма ПДП представлена на рисунке 7.4.
Таким образом, если данные надо переслать из устройства ввода-вывода в
память, то одновременно производится чтение данных из устройства вводавывода по сигналу (IOR) и их запись в память по сигналу MEMW. Аналогично
производится пересылка из памяти в устройство ввода-вывода по сигналам
MEMR и IOR.
91
DRQ
DACK
AEN
SA0-SA19,
LA17-LA23,
SBHE
IOR,
(MEMR)
SD0-SD15
АДРЕС
ДАННЫЕ
MEMW,
(IOR)
I/O CH RDY
Рис.7.4. Диаграмма цикла ПДП
Регенерация памяти
Циклы регенерации памяти выполняет входящий в состав материнской
платы контроллер регенерации, который получает управление магистралью
каждые 15 микросекунд. Во время цикла регенерации производится чтение одной
из 256 ячеек памяти. Проведение 256 циклов регенерации, т.е. псевдочтения, из
256 последовательных адресов ОЗУ обеспечивает полное освежение информации.
Цикл использует сигналы REFRESH, SA0-SA7, MEMR.
Основные электрические характеристики линий ISA
При проектировании устройств сопряжения необходимо учитывать
электрические характеристики линий.
Выходные каскады передатчиков магистральных сигналов должны
выдавать ток низкого уровня не меньше 24ма, а ток высокого уровня не меньше
3ма (для выходов с 3 состояниями и TTL). Входные сигналы должны потреблять
ток низкого уровня не более 0.8ма, а входной ток высокого уровня не более
0.04ма.
Максимальная длина печатного проводника от контакта магистрали до
вывода микросхемы не должна превышать 65мм, а максимальная емкость по
каждому контакту относительно земли не более 20пф.
К некоторым линиям магистрали подключены нагрузочные резисторы,
идущие на шину питания +5в: к линиям IOR, IOW, MEMR, MEMW, SMEMR,
SMEMW, I/O CH CK - резисторы 4.7ком, к линиям I/O CS16, MEM CS 16,
REFRESH, MASTER, OWS- резисторы 300ом, I/O CH RDY - резистор 1ком.
Кроме того, к некоторым линиям магистрали подключены последовательно
резисторы: к линиям IOR, IOW, MEMR, MEMW, SMEMR, SMEMW, OSC 22ома, к линии SYS CLK- 27 ом.
92
7.2. Проектирование устройств сопряжения для шины ISA
Система сигналов шины и протокол обмена определяют функциональную схему
интерфейса. Обобщенная функциональная схема интерфейсной части устройства
сопряжения (УС) приведена на рисунке (7.5).
SA0-SA9
DI
DO

DC1
DB
AEN
DC2
STR - СТРОБЫ
ЗАПИСИ И ЧТЕНИЯ
РЕГИСТРОВ ВУ
IOR
DI
IOW
DO

DB
SBHE
ВХОДНЫЕ
SD0-SD15
ДАННЫЕ
DB
DI
ВЫХОДНЫЕ
DB
DO
E
ДАННЫЕ
УПРАВЛЕНИЕ ПЕРЕДАТЧИКОМ
I/O CS 16
DO
I/O CH RDY

DI
DB E
“1” - 16-РАЗРЯДНЫЙ ОБМЕН
СИГНАЛ ГОТОВНОСТИ (ОТ АЦП)
Рис.7.5. Функциональная схема интерфейсной части УС
Адрес и сигнал разрешения адреса через приемник поступают на первый
дешифратор, который на своих выходных линиях вырабатывает внутренний
номер регистра, к которому идет обращение и сигнал о 16-разрядном обмене.
Второй дешифратор на основании внутреннего адреса, сигналов чтения, записи и
сигнала о 16-разрядном обмене формирует группу стробов, управляющих
записью в выходные регистры, коммутаторами входных сигналов и
передатчиком. Двунаправленный вход приемопередатчика подключается к шине
данных, выходные линии подключаются к входам данных выходных регистров, а
входные линии - к входному (виртуальному) регистру или к коммутатору
входных сигналов. Сигналы готовности (от АЦП) и 16-разрядного обмена через
передатчик поступают в шину данных.
Рассмотренная обобщенная функциональная схема может изменяться при
своей реализации, что обусловлено особенностями разрабатываемого устройства
сопряжения. Для сигналов данных могут использоваться приемники, если УС
работает только в режиме записи, и передатчики, если УС работает только в
режиме чтения.
Рассмотрим возможные реализации отдельных узлов интерфейсной части.
93
7.2.1. Селекторы (дешифраторы) адреса
Одним из важных блоков устройства сопряжения работающего в режиме
программного обмена является блок дешифратора адреса. Заметим, что не
обязательно дешифрировать все разряды адреса. Для упрощения можно часть
разрядов (младших) отбросить и не заводить в дешифратор. Тогда ваше
устройство будет отзываться на группу адресов. Пример, если отбросить 2
младших разряда, то устройство будет отзываться на 4 последовательно
расположенных адреса. Дешифратор адреса должен формировать сигнал
"Устройство выбрано" если выставленный в шине адрес совпадает с адресом
устройства.
Реализовать селектор адреса
KP1533ЛА2
SA0=1
можно на микросхемах логических
SA1=1
элементов.
Пример
построения
SA2=1
KP1533ЛЕ1
селектора на 10-разрядный адрес
&
SA3=1
(1111001111) приведен на рис.7.6. В
1
SA4=0
1
селектор
включен
управляющий
АДРЕС 0
SA5=0
сигнал AEN, при нулевом значении
1
SA6=1
которого адрес действителен. Для
SA7=1
дешифрации входные разряды адреса,
содержащие 0 (4 и 5 разряды),
SA8=1
поступают на схемы инверторов,
SA9=1
&
чтобы далее на входах элементов
AЕN=0
1
”логическое И” для выбранного
KP1533ЛН1
KP1533ЛА4
адреса все разряды содержали
единицы. Содержащие 1 все разряды
Рис.7.6. Селектор адреса
адреса поступают на схему “И”,
выполненную на элементах “8И-НЕ”,
“3И-НЕ”
и
“2ИЛИ-НЕ”.
При
6
совпадении адреса в шине с
DC
установленным (инверторами) на
SA4-SA9
выходе селектора адреса появляется
АДРЕС 0
сигнал
логической
единицы
SA0
1
высокого уровня. Заметим, что
2
повышения разрядности возможно
SA1
4
как
параллельное
объединение
DC
SA2
8
логических
элементов,
так
и
SA3
использование
элементов
с
E1
повышенной
разрядностью,
E2
AEN
например КР531ЛА19.
А
ДРЕС15
КР1533ИД3
Селектор адреса может быть
построен
с
использованием
Рис.7.7. Селектор с
микросхемы дешифратора. Пример
дешифратором
построения селектора на группу
адресов представлен на рисунке 7.7.
94
Старшие разряды адреса поступают на дешифратор старших адресов, который
вырабатывает внутренний сигнал ”Устройство выбрано”. Этот сигнал может быть
подан на разрешающий вход дешифратора младших адресов (как на рисунке) или
на вход “Выбор кристалла”. Он же используется для формирования сигнала I/O
CS 16. Младшие разряды адреса поступают на вход дешифратора, который
вырабатывает строб “адрес n” только на адресуемом выходе.
Внутренние стробирующие сигналы можно сформировать с помощью
логических элементов. Пример построения схемы выработки стробов чтения и
записи приведен на рисунке 7.8. Сигналы стробов записи-чтения формируются
при совпадении внутреннего сигнал выбранного адреса (“адрес n”) и сигнала
записи или чтения.
В некоторых случаях удобно не разделять интерфейсную часть на селектор
адреса и формирователь внутренних стробов записи и чтения. Пример построения
такого обобщенного дешифратора приведен на рисунке 7.9. Объединение
селектора адреса и формирователя внутренних стробов возможно реализовать и
на ППЗУ или ПЗУ.
Формировать сигнал I/O CS 16 можно на элементах с тремя состояниями. Пример
такого формирователя приведен на рисунке 7.10.
Что
касается
формирователя сигнала I/O CH
Адрес 1
RDY, то он должен быть
&
привязан по времени
к
&
стробам чтения или записи и к
внутреннему
сигналу
&
КР1533ЛН1
готовности устройства. Сигнал
IOR
КР1533ЛА3
1
готовности
вырабатывает,
1
например,
АЦП.
Пример
IOW
построения схемы приведен на
Рис.7.8. Формирователь стробов чтения-записи
рисунке 7.11.
При разработке устройств
сопряжения
необходимо
SA0
КР1533ИД4
учитывать задержки сигнала
SA1
при его распространении в
Строб 0
&
SA2
0
цепях.
Если
устройство
SE1
Стробы
1
DC
...
DC 2
1
работает только в режиме
чтения
SA9
1
3
записи, то задержка сигнала
Строб 3
AEN
2
Строб 0
строба относительно сигнала
0
IOR
Стробы
1
IOW и задержка сигналов
записи
2
&
данных
должны
быть
IOW
3
SE2
Строб 3
примерно
одинаковыми.
Рис.7.9. Функциональная схема дешифратора Задержка сигнала стробов не
адреса с формирователем стробов
должна превышать задержку
данных более чем на 30нсек,
чтения-записи
иначе устройство сопряжения
Адрес 0
&
Строб чтения
из адреса 0
Строб чтения
из адреса 1
Строб записи
в адрес 0
Строб записи
в адрес 1
95
примет неверные данные. Разность задержки буферирования и селектирования
адреса и задержки буферирования сигнала IOW не должна превышать 91нсек,
иначе устройство не будет реагировать на свой адрес. Если устройство
сопряжения работает только в режиме чтения из него информации, то сумма
задержки сигнала строба относительно IOR и задержки буфера данных не должна
превышать 110нсек. Требования к буферу адреса и его селектору те же.
КР1533ЛП8
Строб
1
OE
I/O CS 16
Адрес 0
с дешифратора
Рис.7.10. Формирование
сигнала IO CS 16
готовность
(АЦП)
КР1533ЛА23
&
I/O CH RDY
1
Рис.7.11. Формирование сигнала
IO CH RDY
7.2.2. Операционная часть интерфейса
Записываемые данные могут быть записаны в выходные регистры, к
разрядам которых можно подключать линии дискретного управления
исполнительными механизмами. Подключение исполнительных механизмов
желательно производить, используя оптоэлектронную развязку для
гальванического разделения маломощных сигналов управления (обычно TTL
уровня) от силовых
ШИНА
ВЫХОДНЫХ
цепей. К выходам
DI
DO
ДИСКРЕТНЫЕ
ДАННЫХ ОТ
отдельных регистров
RG
ВЫХОДЫ
ПРИЕМОвозможно
К ОБЪЕКТУ
ПЕРЕДАТЧИКА
УПРАВЛЕНИЯ
подключение ЦАП
C
СТРОБ
для
получения
ДИСКРЕТНЫЕ
DI
DO
ЗАПИСИ 0
ВЫХОДЫ
аналоговых
RG
К ОБЪЕКТУ
СТРОБ
управляющих
УПРАВЛЕНИЯ
ЗАПИСИ 1
сигналов. Наличие
C
развязки необходимо
DI
DO
#/
и в этом случае.
RG
ДВА
Пример
АНАЛОГОВЫХ
СТРОБ
ВЫХОДА
ЗАПИСИ 2
подключения
C
С
выходных регистров
ЦАП
DI
DO
#/
приведен на рисунке
RG
7.12.
СТРОБ
ЗАПИСИ 3
Для
ввода
C
дискретных сигналов
Рис.7.12. Функциональная схема
от
объекта
подключения выходных регистров
управления
их
можно подключить к
96
входу передатчика или входам группы параллельно включенных передатчиков.
Управление передачей осуществляется стробом чтения, поступающим на вход
разрешения передачи. При этом для уменьшения числа передатчиков перед его
входом может быть установлен коммутатор управляемый или младшими
разрядами адреса SA или определенными разрядами выходного регистра
(рис.7.13.).
При
SD0-SD15
От
DO DB DI
использовании
дискретных
Строб
для управления
датчиков
чтения 0
E
коммутатором
младших
DO MUX DI1
DO DB DI
От
разрядов
Строб
дискретных
DI2
чтения 1
адреса они не
датчиков
A
E
АДРЕС
должны быть
использованы
Рис.7.13. Функциональная схема подключения
для целей
виртуальных входных регистров
селекции
адреса.
При вводе аналогового сигнала он подается на АЦП, с выхода которого
цифровой сигнал поступает на вход передатчика (виртуальный входной регистр)
и передается в шину данных по сигналам управления как цифра.
Для
регистрации
быстропротекающих процессов перед АЦП
устанавливается устройство выборки-хранения, обеспечивающее замораживание
сигнала на время преобразования.
Некоторые АЦП имеют выходы с тремя состояниями, что позволяет
подключать
их
От
датчика
непосредственно
к
SD0-SD15
DO
аналогового
/#
шине данных. Они
Готовность - к
сигнала
имеют
также
формирователю
RA
дополнительные
сигнала
ST
задержки цикла
Строб
входы-выходы,
E
чтения 0
обеспечивающие
подключение к шинам
Рис.7.14. АЦП с непосредственным
ЭВМ:
готовность,
подключением
разрешение передачи,
пуск (рис.7.14.).
Для ввода группы аналоговых сигналов перед АЦП устанавливают
аналоговый коммутатор (рис.7.15.). Управление аналоговым коммутатором
производят от выходного регистра, куда предварительно выводят номер
аналогового канала. Запуск АЦП производят от фронта строба чтения,
завершающего цикл обмена, или от разряда выходного регистра. Сигнал
готовности АЦП может быть использован двумя способами. При обмене по
опросу флага готовности используется входной регистр (регистр состояния), к
разряду которого подключается линия готовности АЦП. Сигнал готовности
может быть использован также для формирования сигнала задержки цикла
97
SD0-SD15
DO DB DI
DO
/#
Строб
чтения 0
E
Готовность - к
входному регистру при
обмене по опросу флага
или к формирователю
сигнала задержки цикла
RA
ST
DO MS
A
Строб запуска - от
выходного
регистра
От датчиков
аналогового
сигнала
Номер канала
– от выходного
регистра
Рис.7.15. Подключение многоканального АЦП
обмена IO CH
RDY. При этом
необходимо
учитывать, что
время преобразования
не
должно превышать
максимально допустимое время задержки. Сигнал
готовности
также
можно
использовать
для формирова-
ния сигнала требования прерывания.
7.2.3. Микросхемы для построения интерфейсов
Условные графические обозначения элементов цифровой техники
Элементы цифровой техники представлены на принципиальных схемах
условными обозначениями в
ОБОЗНАЧЕНИЕ ФУНКЦИИ ЭЛЕМЕНТА
виде
прямоугольника
(БУКВА, ЦИФРА, СПЕЦИАЛЬНЫЙ ЗНАК )
разделенного на поля (рис. 7.16).
УКАЗАТЕЛИ
В основном поле помещается
ВЫВОДЫ
*
*
*
обозначение функции элемента.
*
*
В
дополнительных
полях
УКАЗАТЕЛИ
ОСНОВНОЕ
помещают
информацию
о
МЕТКИ
ПОЛЕ
функциональном
назначении
выводов
(метки),
которые
ДОПОЛНИТЕЛЬНЫЕ ПОЛЯ
состоят из букв алфавита, цифр и
специальных знаков без пробела.
Рис.7.16. Обозначение цифрового элемента
В месте подведения вывода
ПРЯМОЙ СТАТИЧЕСКИЙ ВХОД
размещается указатель на тип
ПРЯМОЙ СТАТИЧЕСКИЙ ВЫХОД
вывода. Обозначение некоторых
указателей представлено на рис.
ИНВЕРСНЫЙ СТАТИЧЕСКИЙ
7.17. Обозначение некоторых
ВХОД
функций приведено в табл. 7.1.
ИНВЕРСНЫЙ СТАТИЧЕСКИЙ
Метки содержат информацию о
ВЫХОД
назначении выводов (таблица
ПРЯМОЙ ДИНАМИЧЕСКИЙ ВХОД
7.2). Вверху поля меток выхода
ИНВЕРСНЫЙ ДИНАМИЧЕСКИЙ
помещается
условное
ВХОД
обозначение типа выходного
Рис.7.17. Обозначение указателей
98
каскада микросхемы, если он имеет особенности (рис.7.18.).
Обозначение функции
обозначение
функция
ДС
дешифратор
СД
шифратор
CPU
процессор
RAM
память с
произвольным
доступом
ROM
постоянная память
M
память
L
логика
Функциональное назначение выводов
MO
R
RD
WR
S
ST
режим
сброс
чтение
запись
установка
пуск
DI
DO
DB
Е
RQ
Табл.7.1
функция
регистр
счетчик
мультиплексор
приемопередатчик
обозначение
RG
СТ
MUX
B
логическое "ИЛИ"
логическое "И"
исключающее
"ИЛИ"
1
&
=1
Табл.7.2
входные данные
выходные данные
входные и выходные данные
разрешение
запрос
О ТК Р Ы ТЫ Й В Ы В О Д
О ТК Р Ы ТЫ Й Э М И ТЕ Р
О ТК Р Ы ТЫ Й К О Л Л Е К ТО Р
3
С О С ТО Я Н И Я В Ы Х О Д А
Рис.7.18. Обозначения
типа выходного каскада
7.2.4. Микросхемы приемопередатчиков сигналов магистрали
При проектировании устройств сопряжения необходимо обеспечить
информационную,
электрическую
и
конструктивную
совместимость.
Конструктивная совместимость -это точное соблюдение всех размеров плат,
разъемов и крепежных элементов. Информационная совместимость - это точное
выполнение протоколов обмена и правильное использование сигналов
магистрали. Электрическая совместимость подразумевает согласование уровней
входных, выходных и питающих напряжений и токов. Наиболее важными
является выполнение требований на временные интервалы, которые для шины с
невысокой скоростью обмена (ISA) составляют:
1. Задержка между выставлением адреса и передним фронтом строба обмена (не
менее 91 нсек) определяет время распознавания своего адреса проектируемым
устройством сопряжения.
2. Длительность строба обмена (не менее 176 нсек)
3. Задержка между передним фронтом сигнала IOR и выставлением устройством
сопряжения (УС) читаемых данных (не более 110нсек) определяет требования к
быстродействию буфера данных УС.
Задержка между задним фронтом сигнала IOW и снятие записываемых
данных (не менее 30 нсек) определяет требования к быстродействию
принимающих данные узлов.
99
Буферизирование магистральных сигналов применяется для электрического
согласования и выполняет две основные функции: электрическая развязка и
передача сигналов в нужном направлении и в заданный момент. Для
буферизирования используются м/с магистральных приемников, передатчиков,
приемопередатчиков, буферных регистров ...
Требования к приемникам удовлетворяют следующие типы микросхем:
КР1533 (SN74ALS), К555 (SN74ALS), КР1554 (SN74AC) с величинами входных
токов соответственно 0.2, 0.4, 0.2ма и величинами задержки 15,20,10 нсек.
Можно использовать магистральные приемники серии К559 с Iвх=0.12ма и
задержкой 30нсек. Требованиям к приемника удовлетворяют и электрически
программируемые ППЗУ серии КР556, которые очень удобно использовать в
качестве селектора адреса. Входной ток не превышает 0.25ма.
Возможно использования
шинных формирователей К589АП16 и
К589АП26.
Требования к передатчикам - большой выходной ток и высокое
быстродействие. Часто они должны иметь отключаемый выход (для шины
данных), т.е. иметь выход с открытым коллектором или с тремя состояниями. Это
необходимо при переходе устройства сопряжения (УС) в пассивное состояние в
случае отсутствия обращения к нему. Такие передатчики присутствуют в каждой
серии.
Приемопередатчики должны удовлетворять требованиям к передатчикам и
приемникам. Желательно при большом количестве разрядов использовать
специальные схемы приемопередатчиков. Эти микросхемы бывают 2 основных
типов: с двумя двунаправленными шинами и с 3 шинами, одна из которых
двунаправленная. Для управления работой приемопередатчиков используется 2
управляющих сигнала.
Рассмотрим некоторые часто используемые микросхемы.
В качестве шинных формирователей (приемопередатчиков) часто
используются микросхемы КР589АП16, КР589АП26 (рис.7.19). Шинный
формирователь КР589АП26 отличается от КР589АП16 тем, что имеет инверсный
канал В. Управление каналами осуществляется в соответствии с табл. 7.3.
4
7
9
12
DI
1
2
3
4
15
E
1
CS
BD
DB
1
2
3
4
3
6
10
13
DO
1
2
3
4
2
5
11
14
U
GND
16
8
4
7
9
12
DI
1
2
3
4
15
E
1
CS
BD
DB
1
2
3
4
3
6
10
13
DO
1
2
3
4
2
5
11
14
U
GND
Рис. 7.19. КР580АП16 и КР580АП26
16
8
100
Направление передачи
Табл.7.3
Код на входе
CS
1
0
0
операция
NOP
(DB):=(DI)
(DO):=(DB)
E
*
0
1
выключ. состояние
DB, DO
DO
DB
Микросхемы приемников и передатчиков серии КР559 имеют управляющие
входы (рис.7.20). Так для приемника КР559ИП2 сигнальными входами являются
ламели 1,5,10,13, на ламели 2,6,9,14 подается логический "0"(заземляются). Вход
В приемопередатчика КР559ИП3 является двунаправленным и подключается к
шине ЭВМ. Приемопередатчик будет работать на передачу (DB):=(DI) при
Е1=Е2=0 и на прием (DI):=(DB) в противном случае. Отметим невозможность
отключения ее двунаправленной и выходной шин.
Вариант использования микросхемы приемопередатчика (КР559ИП3) для
подключения к шине данных представлен на рис.7.21. Аналогично можно
использовать микросхемы серии К589АП16(26). Расширение разрядности
достигается параллельным подключением необходимого количества корпусов.
1
2
5
4
10
11
15
13
КР559ИП1
КР559ИП2
ПЕРЕДАТЧИК
ПРИЕМНИК
&
3
&
6
&
9
&
12
1
2
5
6
10
9
13
14
&
КР559 ИП3
3
&
4
&
11
2
5
11
14
&
7
&
DI
1
2
3
4
12
9
E1
E2
ПРИЕМОПЕРЕДАТЧИК
BD
DB
1
2
3
4
1
4
12
15
DO
1
2
3
4
3
6
10
13
U
GND
16
8
Рис.7.20 Микросхемы серии КР559
.
При использовании ШФ
они устанавливаются для
развязки
между
шиной
DI
DB
В ХО Д Н Ы Е
DB
процессора
(ЭВМ)
и
ДАННЫЕ
559
К
РЕГИСТРУ
внутренними
элементами
E1 ИП3 DO
В Ы ХО Д Н Ы Х
УПРАВЛЕНИЕ
интерфейса.
Управляющие
ДАННЫХ
ПЕРЕДАЧЕЙ
Е2
сигналы, подаваемые на ШФ,
формируются интерфейсом в
Рис.7.21. Подключение приемопередатчика
соответствии с алгоритмом
его работы и определяют направление передачи и его выходное сопротивление.
Информационные каналы подключаются с одной стороны к шине ЭВМ, с другой
к информационным цепям интерфейса.
ШИНА ДАННЫХ
101
ДЛЯ подключения к шинам ЭВМ широко используются микросхемы
шинных формирователей с функциональном обозначением АП3, АП4, АП5, АП6
серий К555, К1533, К1531. Рассмотрим некоторые из них.
ШФ АП6 имеет две восьмиразрядные двунаправленные шины с тремя
состояниями. При подаче "1" на вход ОЕ (разрешение работы) выход переходит в
высокоимпендансное состояние. Вход Т определяет направление передачи. При
подаче на него "1" (высокого уровня) канал В является выходом, т.е В:= A. В
противном случае выходом является канал А. На двух микросхемах реализуется
управляемый восьмиразрядный приемопередатчик.
Отметим, что восьмиразрядный двунаправленный ШФ КР580ВА86(87)
имеет шины с различными выходными токами и только шина В удовлетворяет
стандарту.
Микросхемы селекторов адреса выходных регистров
В схемах селекторов адреса используют логические микросхемы серий
К555, К1533, К1531 обеспечивающие требуемые минимальные временные .
Заметим, что для повышения разрядности возможно как параллельное
объединение логических элементов, так и использование элементов с
повышенной разрядностью, например КР531ЛА19. Селекторы адреса можно
реализовать на микросхемах ППЗУ.
Для хранения выходных данных используют триггеры регистры этих серий.
Например: КР531ИР22, КР531ИР23.
102
8. ИНТЕРФЕЙС CENTRONICS
8.1
8.2
Порядок обмена по интерфейсу Centronics
Программируемый параллельный интерфейс ( ППИ)
Компьютеры имеют в своем составе стандартные интерфейсы для
подключения внешних устройств. Одним из таких интерфейсов является
параллельный интерфейс Centronics. Основное назначение интерфейса подключение принтеров. Поэтому аппаратные и программные средства
интерфейса ориентированы на это использование. Однако с его помощью можно
подключать к компьютеру и другие внешние устройства, имеющие разъем и
протокол обмена Centronics. Достоинство этого способа подключения - меньший
риск вывести компьютер из строя. Недостаток - малая скорость обмена.
Цель главы – ознакомление с системой сигналов и протоколами обмена
магистрали ISA, получение знаний по проектированию устройств сопряжения.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Основные сигналы интерфейса Centronics,
порядок обмена по интерфейсу Centronics,
регистры интерфейса, их адреса и назначение битов,
схемы подключения внешних устройств к интерфейсу Centronics,
назначение микросхемы программируемого параллельного интерфейса,
функциональную схему ППИ и режимы работы,
программирование ППИ,
схемы подключения ППИ к шинам процессоров.
8.1. Порядок обмена по интерфейсу Centronics
Рассмотрим основные сигналы интерфейса и их назначение. Черта над
названием сигнала означает, что активному значению сигнала соответствует
низкий уровень электрического сигнала в шине. Число в скобках указывает номер
контакта в разъеме. Для подключения интерфейса используется разъем DB25. В
интерфейсе используются TTL уровни сигналов.
Интерфейс имеет следующую систему сигналов шины.
D0-D7[2-9] -8-разрядная шина данных.
STROBE[1]- выходной сигнал стробирования данных; данные действительны по
переднему и заднему фронтам. По сигналу строба данные заносятся в буфер
принтера.
103
ACK[10] - входной сигнал подтверждения принятия данных и готовности
приемника (принтера) принять следующие данные. Здесь реализуется
асинхронный обмен.
BUSY[11] - входной сигнал занятости принтера обработкой полученных данных и
неготовности принять следующие данные; сигнал активен при отключении линии,
при ошибке и при отсутствии бумаги. Компьютер начинает новый цикл передачи
только после снятия ACK и после снятия BUSY.
AUTO FD[14] - выходной сигнал автоматического перевода строки; получив его
принтер переводит строку.
PE[12]- входной сигнал конца бумаги ;получив его компьютер переходит в режим
ожидания.
SLCT[13] - входной сигнал готовности приемника; с его помощью принтер
говорит, что он выбран и готов к работе. У многих принтеров постоянно имеет
высокий уровень.
SLCT IN[17] - выходной сигнал принтеру, что он выбран и последует передача
данных.
ERROR[15] - входной сигнал ошибки принтера; активен при внутренней ошибке,
при отключении линии и при отсутствии бумаги.
INIT[16] - выходной сигнал сброса принтера.
GND[18-25] - сигнальное заземление.
Временная диаграмма передачи данных в Centronics представлена на рисунке 8.1.
Временные интервалы даны в нсек.
Перед началом цикла
передачи компьютер
D0-D7
ДАННЫ
должен убедиться, что
Е
>500
>500 >500
сняты сигналы BUSY
STROBE
и ACK. После этого
СНЯТ
выставляются данные,
BUSY
СНЯТ
формируется строб,
>2500
снимается строб и
ACK
ЗАПРО
снимаются
данные.
С
Принтер (ВУ) должен
РИС.8.1. Временная диаграмма передачи данных
успеть
принять
данные с выбранным
темпом. При получении строба принтер формирует сигнал BUSY , а после
окончания обработки данных выставляет сигнал ACK, снимает BUSY и снимает
ACK. Затем начинается новый цикл.
Все сигналы передаются в уровнях TTL и рассчитаны на подключение
одного стандартного входа TTL. Максимальная длина соединительного кабеля по
стандарту 1.8м. Распайка кабеля связи порта с принтером приведена в таблице
8.1.
104
Таблица 8.1.
контак контакт
т
принтер
разъем а
а
1-14
1-14
15
32
16
31
17
36
18-25
16,7,1930,33
Формирование и прием сигналов интерфейса
Centronics
производится путем записи и чтения
выделенного для него порта ввода-вывода. Порт содержит
4 регистра.
В компьютере обычно могут использоваться порты
LPT1, LPT2 и LPT3, которые имеют базовые адреса
(относительно которых идет отсчет адресов регистров
порта) 378h, 278h и 3BCh соответственно. При этом LPT3
используется, когда контроллер принтера находится на
плате графического адаптера.
Адреса базовых портов хранятся в области данных
BIOS, начиная с адреса 0:408h и далее по слову на
принтер.
Прерывания портов принтеров (IRQ7 для LPT1 , вектор 0Fh и IRQ5 для LPT2,
вектор 0Dh) используются редко.
Регистр с базовым адресом служит для передачи данных (вывода данных).
Регистр с адресом базовый+1 служит для чтения битов состояния принтера (ввода
данных), а регистр с адресом базовый+2 служит для записи битов управления
(вывода данных). Регистр с адресом базовый+1 доступен только для чтения.
Регистр с адресом базовый+2 доступен только для записи и записью в него
данных формируются управляющие сигналы. Назначение разрядов регистров
приведено в таблице 8.2.
Регистр с адресом базовый+3 служит для установки режима работы порта.
Его содержимое заносится операционной системой и его нельзя изменять во
избежание выхода из строя порта!!!
Назначение разрядов регистров
Таблица 8.2.
Разряды всех трех
Регистр
с
адресом Регистр
с
адресом
регистров выведены на
базовый+1
базовый+2
разъем порта и к ним
бит назначение
бит назначение
возможно подключение
3
ERROR
0
STROBE
внешнего
устройства
4
SLCT
1
AUTO FD
(ВУ). Система сигналов
5
PE
2
INIT
интерфейса
позволяет
6
ASC
3
SLCT IN
к
нему
7
BUSY
4
"1" - разрешение подключать
нестандартные
ВУ
прерывания
от
различными способами.
принтера
Наиболее простой использовать стандартный протокол обмена. Тогда внешнее устройство должно,
эмулируя работу принтера, выставлять требуемые сигналы запроса обмена и
состояния "принтера". В этом случае можно использовать драйверы принтера и
обращаться в ВУ как принтеру. Однако, ВУ должно содержать схему
формирования ответных сигналов.
105
Другой простой способ обмена –
обращение
непосредственно
к
DI
DO
ДАННЫЕ
D0
D0
регистрам по их адресам, учитывая
К РАЗЪЕМУ
RG ...
К ВНЕШНИМ
...
назначение
регистров
(рис.8.2).
УСТРОЙСТВАМ
...
...
Использование регистра целесообразно
D7
D7
STROBE
для
буферизации
и
при
C
INIT
мультиплексировании
выходных
R
данных.
К РАЗЪЕМУ
1533ИР35
Число выходных сигналов (линий)
ВХОДНЫЕ
ДАННЫЕ
+5В
можно увеличить, если использовать
ОТ КЛЮЧЕЙ
управляющие выходные линии в
ERROR
качестве линий адреса одного из
SLCT
выходных регистров. Реально можно
PE
использовать 3 линии для передачи
ACK
адреса (рис.8.2) и, следовательно,
BUSY
адресовать 8 регистров.
Аналогично можно использовать
К РАЗЪЕМУ
мультиплексирование для увеличения
ВЫХОДНЫЕ ДАННЫЕ
числа входных линий. При этом до 3
SLCT IN
К ОБЪЕКТУ
выходных линий можно использовать
AUTO FD
УПРАВЛЕНИЯ
для управления коммутатором входных
INIT
данных. Пример мультиплексирования
Рис.8.2. Подключение ВУ
входных данных приведен на рисунке
8.3. Сигнал SLCT IN используется для
управления коммутатором.
1533KП14 К РАЗЪЕМУ
Заметим,
что
при
нестандартном
4 DI1
8 ЛИНИЙ
ERROR использовании интерфейса нельзя будет
MUX
использовать стандартные средства ОС
ОТ
SLCT
4
ОБЪЕКТОВ
для работы с ним. Обычно в качестве
PE
DI2
интерфейса используется микросхема
ASC
SLCT IN E
программируемого
параллельного
интерфейса или она входит в состав БИС
OS
вместе с другими контроллерами, но все
форматы обмена с ним в этом случае
Рис.8.3. Расширение ввода данных
сохраняются. Программирование его
работы осуществляется обращением к регистру по адресу базовый+3.
Программирование осуществляет ОС при запуске системы. Не трогайте этот
регистр во избежание выхода интерфейса из строя.
При выводе данных в режиме эмуляции принтера можно использовать
драйверы операционной системы и прерывания INT 21 DOS или INT 17 BIOS.
При использовании нестандартных устройств необходимо писать или драйвер или
писать программы обращения к порту.
В принципе порт может быть использован и как двунаправленный при его
программировании (так называемый расширенный параллельный порт).
ВЫХОДНЫЕ
ВЫХОДНЫЕ
ДАННЫЕ
106
Самостоятельно экспериментировать не рекомендуется во избежание выхода
порта из строя.
Отечественным аналогом интерфейса Centronics является интейсрфе ИРПРМ. Его система сигналов и протокол обмена повторяют интерфейс Centronics.
8.2. Программируемый параллельный интерфейс ( ППИ)
Для удобства реализации параллельных портов Intel выпустила м/с
программируемого параллельного интерфейса Intel 8255, которая имеет аналог
КР580ВВ55.
Выпускаемая промышленностью микросхема ППИ (Intel 8255, КР580ВВ55)
предназначена для построения параллельных интерфейсов и входит в состав
большинства из них, которые, в свою очередь, предназначены для организации
обмена между МП и периферийными устройствами (объектами управления). ППИ
может входить в БИ вместе с другими контроллерами, но все форматы обмена с
ним сохраняются неизменными. Упрощенная структурная схема интерфейса
приведена на рисунке 8.4.
МАГИСТРАЛЬ
ШИНА ДАННЫХ
БУФЕР
КАНАЛА
ДАННЫХ
8
СБРОС (INIT)
8
8
РЕГИСТР
УПРАВЛЯЮЩЕГО
СЛОВА
4
РЕГИСТР
БУФЕР
КАНАЛА А
КАНАЛА
РЕГИСТР
КАНАЛА С1
БУФЕР
РЕГИСТР
КАНАЛА С2
БУФЕР
РЕГИСТР
БУФЕР
КАНАЛ А
А
8
КАНАЛ
КАНАЛА С1
С1
4
ВВОД (RD)
ВЫВОД (WR)
АДРЕС 1 (A1)
УПРАВЛЯЮЩЕЕ
УСТРОЙСТВО
4
АДРЕС 0 (A0)
ВЫБОР КРИСТ.
(CS)
8
КАНАЛА
В
КАНАЛ
КАНАЛА С2
КАНАЛА
4
КАНАЛ
В
С2
В
8
Рис.8.4. Программируемый параллельный интерфейс
Разряды шины данных ППИ подключаются к одноименным разрядам
буферизированной шины данных компьютера, линии "адрес 0" и "адрес 1" к 0 и 1
разряду буферизированной шины адреса, линия "выбор кристалла" подключается
к дешифратору старших разрядов адреса, остальные выводы к одноименным
линиям шины управления. Периферийные устройства (объекты управления)
могут подключаться к каналам А, В, и С, причем канал С состоит из двух частей
КС1 и КС2. Каналы А, В и С снабжены регистрами, причем в канале А имеется
два регистра: один используется для приема данных поступающих с шины
данных (ШД) и выдачи периферийному устройству (ПУ), другой - для приема
данных от ПУ и выдачи на ШД. В каналах В, С1 и С2 - по одному регистру. Все
каналы снабжены буферными устройствами (формирователями), через которые
107
идет связь ППИ с внешними устройствами. Помимо 3 регистров имеется еще
один регистр управляющего слова (РУС), который определяет режимы обмена
ППИ с ПУ. Имеется три режима обмена: 0, 1, 2.
Обмен между МП и ПУ можно разбить на два этапа: обмен между МП и
регистром ППИ и обмен между регистром и внешним устройством. Обмен между
ШД и регистрами ППИ организуется под управлением сигналов, подаваемых на
входы устройства управления. Управляющие сигналы:
А0, А1 - содержимое 2 младших разрядов шины адреса, определяющие
обращение к одному из регистров: 0 -регистр А, 1-регистр В, 2-регистр
С, 3- РУС;
ВЫБОР КРИСТАЛЛА - сигнал выбора микросхемы, формируемый
дешифратором старших адресов памяти;
ВВОД и ВЫВОД - сигналы чтения и записи в регистры ППИ.
Перед началом работы микросхема должна быть запрограммирована путем
засылки управляющего слова в регистр управляющего слова (РУС). Формат
регистра управляющего слова представлен на рисунке 8.5.
УПРАВЛЕНИЕ
РЕЖИМОМ
ОТДЕЛЬНЫХ
РАЗРЯДОВ.
ОБЫЧНО
УСТАНАВЛИВАЕТСЯ
В"1"
РЕЖИМЫ
КАНАЛ ОВ А,
0 - РЕЖИМ 0,
1- РЕЖИМ 1
С2(4-7):
НАСТРОЙКИ КАНАЛОВ
РЕЖИМ
РЕГИСТР УПРАВЛЯЮЩЕГО СЛОВА
7
6
5
4
3
2
1
0
КАНАЛА С1:
1- ВВОД,
0 - ВЫВОД
РЕЖИМ
КАНАЛ А В:
1- ВВОД,
0 - ВЫВОД
РЕЖИМ
КАНАЛА А:
1- ВВОД,
0 - ВЫВОД
РЕЖИМ
КАНАЛА С2:
1- ВВОД,
0 - ВЫВОД
РЕЖИМЫ
КАНАЛ ОВ В,
0 - РЕЖИМ 0,
1- РЕЖИМ 1
С1(0-3):
Рис.8.5. Формат регистра управляющего слова
Канал А может работать в любом режиме, канал В - в режимах 0 и 1, канал
С - только в режиме 0. Рассмотрим функционирование различных режимов.
Режим 0 применяется при синхронном обмене или при программной
организации асинхронного обмена. Любой из каналов может быть установлен на
ввод или вывод информации. К каналам А,В, и С подключаются соответствующие
линии входных или выходных данных от внешнего устройства управления.
Режим 1 - стробируемый однонаправленный обмен информацией с ВУ. В этом
режиме передача данных осуществляется через каналы А и В , а канал С
используется для приема и выдачи сигналов управления. Использование каналов
в цикле ввод и временная диаграмма обмена с ВУ представлена на рисунке 8.6.
Назначение линий каналов следующее.
D - вход данных от внешнего устройства. STB - строб приема данных,
поступающий от внешнего устройства, по которому данные записываются во
входной буфер ППИ. IBF (входной буфер полон) - выходной сигнал ППИ. Сигнал
поступает к внешнему устройству. Он информирующий об окончании приема и
108
занятости входного буфера. Сигнал снимается чтением регистра данных. INTA сигнал требования прерывания, вызывается стробом. Он может быть подан на
линию требования прерывания процессора. Сигнал снимается чтением регистра
данных канала
При вводе данных от ВУ выполняется следующая последовательность
1
0
1
1
1/0
1
1
Х
РУС
D
РА
ППИ
D
STB
IBFA
STBA
INTAA
IBF
РС(7,6)
РС(5)
РС(4)
РС(3)
РВ
РС(2)
РС(1)
РС(0)
D
STBB
IBFB
INTAB
ДАННЫЕ
INTA
RD
Рис.8.6. Цикл ввод режима 1
действий. Внешнее устройство, убедившись, что входной буфер пуст (по
состоянию сигнала IBF), выставляет данные и формирует строб. По стробу
данные записываются в регистр канала. ППИ устанавливает сигнал IBF и
вырабатывает сигнал требования прерывания INTA, по которому в режиме
обмена по прерыванию, процессор читает регистр, содержащий данные. Сигнал
ввода снимает сигналы требования прерывания и занятости входного буфера.
Цикл закончен. Разряды РС(6,7) программируются на ввод или вывод.
Использование каналов в режиме вывода данных и временная диаграмма
обмена с ВУ представлена на рисунке 8.7.
При записи данных в выходной регистр по сигналу WR формируются
сигналы OBF (выходной буфер полон) и INTR (требования прерывания), которые
говорят ВУ о готовности данных к выводу. Внешнее устройство, считав данные,
формирует сигнал ACK, информируя ППИ, что данные считаны и оно готово к
приему следующих данных. По сигналу ACK снимаются сигналы требования
прерывания и полноты (готовности) буфера.
Для каждого из каналов А и В в ППИ имеется триггер разрешения
прерывания, который разрешает или запрещает выработку сигналов прерывания.
Установка и сброс триггеров осуществляется установкой и сбросом определенных
разрядов канала С. Так при вводе информации управление прерыванием по
каналам А и В осуществляется разрядами РС(4) и РС(2) соответственно; а при
выводе информации - разрядами РС(6) и РС(2) соответственно (рис.8.8).
109
1
0
1
0
1/0
1
0
РУС
Х
D
ППИ
РА
DA
РС(7)
OBFA
ACKA
ДАННЫЕ
WR
РС(6)
РС(5,4)
OBF
РС(3)
INTAA
РВ
DB
ACKB
РС(2)
РС(1)
INTA
ACK
OBFB
INTAB
РС(0)
Рис.8.7. Цикл вывод режима 1
Режим 2 предназначен для двунаправленной передачи данных, при котором
данные могут передаваться по каналу А в двух направлениях при использовании
соответствующих управляющих сигналов.
В режимах 1 и 2 возможно проведение контроля над процессом обмена
данными между ВУ и ППИ. Контроль осуществляется чтением содержимого
канала С (слова состояния). Разряды регистра отражают значение сигналов в
отдельных линиях связи между ВУ и ППИ. Формат слова состояния для режима
1 при вводе и выводе данных представлен на рисунке 8.8. Чтением содержимого
канала С со стороны процессора определяют состояние сигналов со стороны ВУ
(готовность к обмену), что необходимо для организации обмена данными между
процессором и ППИ по опросу готовности.
ВВОД
7
I/O
6
I/O
5
4
3
2
1
0
IBFA INTEA INTAA INTEB IBFB INTAB
ДОПОЛНИТЕЛЬНЫЕ
РАЗРЯДЫ. ПРОГРАММИРУЮТСЯ НА ВВОД
ИЛИ ВЫВОД
РАЗРЕШЕНИЕ
ВЫРАБОТКИ
СИГНАЛА
ПРЕРЫВАНИЯ
СИГНАЛ ПРЕРЫВАНИЯ
ИНФОРМИРУЕТ О ЗАВЕРШЕНИИ ПРИЕМА
ВЫВОД
7
6
OBFA INTEA
5
I/O
4
I/O
3
2
1
0
INTAA INTEB OBFB INTAB
Рис.8.8. Назначение разрядов регистра С в режиме 1
110
9. ОБМЕН ДАННЫМИ ПО ИНТЕРФЕЙСУ RS-232
9.1. Назначение линий связи RS-232
9.2. Подключение модема к RS-232
9.3. Подключение терминалов к RS-232
9.4. Подключение удаленных объектов управления
9.5. Назначение портов RS-232
Последовательный интерфейс RS-232 является промышленным стандартом
для последовательной асинхронной передачи данных. Он предназначен для
подключения к компьютеру принтеров, модемов, мыши. Использование этого
интерфейса позволяет реализовать обмен данными с удаленными объектами за
счет снижения скорости обмена
Цель главы – ознакомление с системой сигналов и схемами подключения
объектов.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Формат кадра и уровни сигналов в линиях,
назначение линий связи интерфейса,
схемы подключения к ЭВМ модема и другой ЭВМ,
функциональную схему подключения удаленных объектов управления,
регистры интерфейса, их адреса и назначение,
Интерфейс RS-232
предназначен для подключения к компьютеру
стандартных внешних устройств (принтера, сканера, модема, мыши), для связи
компьютеров между собой и с удаленными устройствами, поддерживающими
этот протокол. Его отечественным аналогом является интерфейс стык С2. Данные
в RS-232 передаются побайтно в последовательном коде, бит за битом, причем
младший бит передается первым. Это повышает возможность передачи данных на
большие расстояния и позволяет использовать простой соединительный кабель.
Каждый байт обрамляется битом проверки четности, предназначенным для
контроля правильности передачи, стартовым и стоповыми битами. Длительность
стоповой посылки – 1,
Отсутствие
Информационные биты
Стоповые
1.5 или 2 бита. Формат
передачи
биты
байта представлен на
0 1 2 3 4 5 6 7
Стартовый
рисунке 9.1. В формате
Бит четности
бит
может быть 5, 6, 7 или 8
информационных бита.
Рис.9.1. Формат байта
Получив стартовый бит
приемник выбирает из линии биты данных через определенные интервалы
времени. Необходимо, чтобы тактовые частоты приемника и передатчика были
одинаковыми (точность ~10%). Скорость передачи выбирается по соглашению из
111
ряда 110,150,300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/сек.
Данные могут передаваться как в одну, так и в другую сторону (дуплексный
режим).
Все
сигналы
В
В Передатчик
Приемник
передаются
специально
+15
+25
выбранными уровнями для
ВЫСОКИЙ
ВЫСОКИЙ
УРОВЕНЬ
повышения
+5 УРОВЕНЬ
+3
помехоустойчивости.
ЗОНА НЕОПРЕЗОНА НЕОПРЕ0
0
ДЕЛЕННОСТИ
ДЕЛЕННОСТИ
Данные
передаются в
-5
-3
инверсном коде: логической
НИЗКИЙ
НИЗКИЙ
"1" соответствует низкий
УРОВЕНЬ
-15 УРОВЕНЬ
-25
уровень. Стандарт на уровни
представлен на
Рис 9.2. Стандартные уровни сигналов сигнала
рисунке 9.2.
Электронное устройство (микросхема) генерирующее и принимающее
последовательные
данные
называется
универсальным
асинхронным
приемопередатчиком (UART). Большинство компьютеров используют UART
16450. В UART применяются ТТЛ уровни напряжения. При передаче и приеме
данных по каналу связи RS-232 сигналы проходят через специализированные
преобразователи уровня с инверсией, обеспечивающие электрическое сопряжение
с линиями связи.
Обмен данными происходит следующим образом. Приемник обнаруживает
первый фронт стартового бита и ожидает полтора тактового интервала, чтобы
дальнейшие считывания происходили в середине такта. Затем с периодичностью
в один такт производится считывание.
Стандартный интерфейс разработан для сопряжения терминалов (ЭВМ,
контроллеров) или другого оконечного оборудования данных (ООД) с модемом
или аппаратурой передачи данных (АПД). В связи с этим различают два типа
устройств: устройства типа ЭВМ называются в литературе DTE (Data Terminal
Equipment)
устройствами;
АППАРАТУРА
устройства типа модема
ШИНЫ
ИНТЕРФЕЙСА
называются
DCE
(Data
АДРЕСА,
ТЕЛЕФОННАЯ
RS-232
Communication
Equipment)
ДАННЫХ,
ЛИНИЯ
РАЗЪЕМ
устройствами. Подключение
УПРАВЛЕНИЯ
СВЯЗИ
ЭВМ
МОДЕМ
модема
к
терминалу
показано на рисунке 9.3.
Рис.9.3. Подключение модема
112
9.1. Назначение линий связи RS-232
Протокол обмена поддерживается следующей системой сигналов.
Назначение сигналов приведено для DTE устройств (ЭВМ).
TxD – выходные данные передаваемые в последовательном коде; для случая
ЭВМ через этот вывод сигнал передается в линию данных, а в АПД (модеме)
служит для приема данных ( как RxD в ЭВМ).
RxD – входные данные принимаемые в последовательном коде. В ЭВМ через этот
вывод сигнал поступает из линии данных, а в АПД через этот вывод данные
передаются в линию (как TxD в ЭВМ).
RTS (Request To Send) – выходной сигнал запроса на передачу, сигнал
показывает, что компьютер готов к приему данных (входной приемный буфер
пуст). Линия управляется со стороны компьютера. Сигнал должен быть активен
до конца передачи.
CTS (Clear To Send) – входной сигнал готовности внешнего устройства (модема)
к передаче (входной буфер модема чист). Используется приемником (модемом)
для информирования передатчика (ЭВМ) о готовности к приему данных. Должен
быть активен все время передачи. Если CTS переходит в неактивное состояние в
середине передачи, то передатчик прекращает передачу и выдается сообщение об
ошибке.
DTR (Data Terminal Ready) – выходной сигнал готовности терминала (ЭВМ),
указывающий, что компьютер включен и готов к связи. Линия управляется со
стороны компьютера.
DSR (Data Set Ready) – входной сигнал готовности внешнего устройства (модема)
к работе. Он информирует, что модем включен и готов к работе; сигнал
аналогичен DTR. Когда модем включен, DSR находится в активном состоянии.
Разъем RS-232
Таблица 9.1
DCD (Data Carrier Detect) – входной
СИГНАЛ
КОНТА КТ(25) КОНТА КТ(9)
сигнал обнаружения модемом несущей
PG
1
данных. Используется модемом для
TXD
2
3
информирования передатчика о том,
RXD
3
2
что
каналом
передачи
можно
RTS
4
7
пользоваться, что связь модемов
CTS
5
8
установлена. Обычно активизируется,
DSR
6
6
когда уже выдан сигнал "Запрос
SG
7
5
передатчика".
DCD
8
1
RI - индикатор вызова, говорит о
DTR
20
4
приеме модемом сигнала вызова по
RI
22
9
телефонной сети.
SG - сигнальное заземление, 0 провод.
PG - защитное заземление, соединяющее корпуса приборов; присоединяется
к экрану кабеля
Компьютер может иметь 25-контактный (DB-25) или 8 контактный (DB-9)
разъем. Распределение сигнальных линий в стандартном разъеме DTE устройства
представлено в таблице 9.1. В нестандартном 25-контактном разъеме
113
используются еще линии входов/выходов для организации линий передачи
данных типа токовая петля.
9.2. Подключение модема к RS-232
Разводка соединений и направление передачи сигналов между DTEустройством (ЭВМ) и DCE-устройством (модемом) представлено на рисунке 9.4.
В нормальном состоянии при включении устройств появляются сигналы DTR и
DSR.
Так
ЭВМ
МОДЕМ
ЭВМ
МОДЕМ
устройства узнают
о готовности к
TXD(2)
TXD(2)
TXD(2)
TXD(2)
RXD(3)
RXD(3)
работе друг друга.
RXD(3)
RXD(3)
Квитирование
RTS(4)
RTS(4)
RTS(4)
RTS(4)
CTS(5)
CTS(5)
CTS(5)
CTS(5)
(обмен
DSR(6)
DSR(6)
DSR(6)
DSR(6)
информацией
о
DCD(8)
DCD(8)
DCD(8)
DCD(8)
готовности)
DTR(20)
DTR(20)
DTR(20)
DTR(20)
осуществляется
RI(22)
RI(22)
RI(22)
RI(22)
сигналами CTS и
SG(7)
SG(7)
SG(7)
SG(7)
RTS.
DCEPG(1)
PG(1)
PG(1)
PG(1)
устройство (модем)
устанавливает
Рис.9.4 Подключение модема
положительное
напряжение
в
линии CTS, что оно готово к приему данных. Терминал воспринимает этот
сигнал, как готовность к приему данных ("путь свободен"). С другой стороны,
терминал устанавливает положительное напряжение RTS, когда он готов к
получению информации. Если оба сигнала CTS и RTS не положительны, то
информация не будет передаваться ни в одном направлении. Если нет CTS , то
терминал не передает информацию модему. Аналогично, если нет RTS, то DCEустройство (модем) не передает информацию терминалу.
Положительное значение сигнала DCD указывает, что модем получил
несущий сигнал с модема на другом конце линии. Отсутствие DCD говорит о
приеме шумов.
Перед началом работы компьютер и модем подтверждают готовность
сигналами DTR и DSR. Телефонный звонок вызывает сигнал RI поступающий в
компьютер. Этот сигнал может вызвать вывод сообщения на экран и переход к
программе обмена. Компьютер подтвердит готовность к обмену сигналом RTS, а
модем - CTS. Если у компьютера появится необходимость приостановить прием
информации (не успевает обработать), сигнал RTS буден убран и модем
прекратит передачу. Когда компьютер освободится, сигнал RTS будет установлен
и информация вновь будет передаваться через модем.
Для вывода сначала компьютер устанавливает сигнал DTR, а затем
инструктирует модем связаться с удаленной станцией. После того, как модем
установил связь, он устанавливает сигнал DSR Этот сигнал информирует
компьютер, что модем готов к связи и в этот момент компьютер может
114
установить сигнал RTS. Когда модем ответит сигналом CTS , то передача
начинается.
При выводе, если модем не может достаточно быстро передавать данные,
он снимает CTS, прося ЭВМ подождать с передачей. Установление CTS
компьютер воспринимает как приглашение к передаче. При отсутствии
квитирования процессор считает модем всегда готовым к обмену. Схема
соединений для этого случая представлена также на рисунке 9.4.
9.3. Подключение терминалов к RS-232
Очевидно, что приведенная выше схема соединения терминала и модема не
может быть использована для соединения двух терминалов (т.е. DTE-устройств),
т.к. не будет обеспечено функциональное сопряжение выводов. Так
принимающий
вывод
буден
соединен
с
ЭВМ
ЭВМ
ЭВМ
ЭВМ
принимающим,
а
TxD(2)
TxD(2)
TxD(2)
TxD(2)
передающий
с
RxD(3)
RxD(3)
RxD(3)
RxD(3)
передающим.
При
RTS(4)
RTS(4)
RTS(4)
RTS(4)
соединении
двух
CTS(5)
CTS(5)
CTS(5)
CTS(5)
терминалов
(DTEDCD(8)
DCD(8)
DCD(8)
DCD(8)
устройств) необходимо
DSR(6)
DSR(6)
DSR(6)
DSR(6)
перекоммутировать
DTR(20)
DTR(20)
DTR(20)
DTR(20)
линии
данных
и
RI(22)
RI(22)
RI(22)
RI(22)
квитирования. Для этого
SG(7)
SG(7)
SG(7)
SG(7)
PG(1)
PG(1)
PG(1)
PG(1)
используется
А
Б
специальный
кабель
получивший
название
ЭВМ
ЭВМ
ЭВМ
Принтер
адаптера
нуль-модема
TxD(2)
TxD(2)
TxD(2)
TxD(2)
(null modem adapter).
RxD(3)
RxD(3)
RxD(3)
RxD(3)
Схема соединения при
RTS(4)
RTS(4)
RTS(4)
RTS(4)
использовании
такого
CTS(5)
CTS(5)
CTS(5)
CTS(5)
кабеля представлена на
DCD(8)
DCD(8)
готов (19)
рисунке 9.5а. Возможная
DSR(6)
DSR(6)
DSR(6)
DSR(6)
схема
подключения
DTR(20)
DTR(20)
DCD(8)
DCD(8)
представлена на рисунке
RI(22)
RI(22)
DTR(20)
DTR(20)
SG(7)
SG(7)
9.5б. Для отключения
RI(22)
RI(22)
PG(1)
PG(1)
квитирования
SG(7)
SG(7)
PG(1)
PG(1)
устанавливаются
С
Д
перемычки как показано
на рисунке 9.5с или
Рис.9.5. Схемы соединения с ЭВМ
используются
программные средства. При этом получается наиболее часто используемая
четырех проводная (для двунаправленной передачи) связь. Для сокращения числа
линий часто объединяют сигнальную землю и линию защитного заземления и
115
получают трех проводную линию. Для двухпроводной линии связи (в одном
направлении) используются линии TxD и SG.
При подключении принтера к последовательному каналу для квитирования
используется линия принтера "Готовность". Одна из схем подключения DTEпринтера к ЭВМ приведена на рисунке 9.5d. Контакт 19 применяется фирмами
NEC и DEC для управления потоками данных.
9.4. Подключение удаленных объектов управления
В промышленности RS-232 используется для связи с
удаленным
контроллером, обслуживающим технологическую или лабораторную установку.
Именно этот контроллер играет в данном случае роль устройства сопряжения
ЭВМ с объектом управления. Чаще всего такой контроллер представляет собой
микроЭВМ, имеющую собственную магистраль и набор интерфейсов,
обеспечивающих передачу входных сигналов с разнообразных датчиков и выдачу
управляющих воздействий на органы управления. Для соединения через RS-232
чаще всего используется наиболее распространенная простейшая четырех или
трех проводная линия связи. Следует заметить, что для вывода/ввода информации
можно задействовать не только линии данных, но и линии квитирования.
Основные блоки контроллера, обеспечивающие связь через интерфейс,
представлены на рисунке 9.6.
ЭВМ
RS-232
УДАЛЕННЫЙ КОНТРОЛЛЕР
БЛОК
ПРЕОБРАЗОВАТЕЛЕЙ
УРОВНЯ
ПРЕОБРАЗОВАТЕЛЬ
КОДА
ШИННЫЙ
ИНТЕРФЕЙ
С
ШИНЫ
ДАННЫХ,
АДРЕСА И
УПРАВЛЕНИЯ
Рис.9.6. Подключение удаленного контроллера к шине RS-232
Блок преобразователей уровня обеспечивает согласование уровней сигналов
последовательного интерфейса ( 12в ) с уровнями сигналов присутствующими в
микропроцессорной системе (TTL). Преобразователи уровня реализуются на
дискретных элементах или на специализированных микросхемах. Часть
выпускаемых микросхем преобразователей требует для своей работы напряжения
+5в,+12в,-12в. Для этих целей используются микросхема передатчика IFC488
(КР559ИП19) и приемника IFC489 (КР559ИП20). Выпускаемые фирмой MAXIM
преобразователи уровня уже содержат требуемые преобразователи напряжения и
требуют напряжения питания +5в., например м/c MAX 235.
Блок преобразователя кода переводит последовательное представление
информации в параллельное и наоборот, осуществляет распознавание начала и
конца посылки, синхронизацию приема-передачи битов кадра, слежение за
116
наличием ошибок, информирование о готовности к выполнению операций.
Обычно преобразователь кода выполняется на базе микросхем универсальных
асинхронных последовательных приемопередатчиков. Одной из таких схем
является устаревшая микросхема универсального программируемого синхронно асинхронного приемопередатчика (УСАПП) i8251 ( КР580ВВ51) которая сейчас
почти не используется. Обычно интерфейс RS-232 реализуется на м/с
универсального асинхронного последовательного приемопередатчика i8250
(КР1847ВВ2) и м/c фирмы Texas Instruments -TL16C450 и TL16C550. Заметим,
что некоторые однокристальные контроллеры имеют в своем составе встроенный
последовательный порт.
Интерфейс шины обеспечивает сопряжение преобразователя кода с
локальной магистралью МП системы, осуществляя двунаправленную передачу
данных в соответствии с протоколом шины. К локальной шине контроллера или
микроЭВМ в свою очередь могут быть подключены интерфейсы,
обеспечивающие связь с датчиками и исполнительными механизмами
управляемого объекта.
Линии, по которым компьютер передает данные и управляет модемом,
доступны через регистры контроля модема.
В IBM РС обмен по RS-232 осуществляется с помощью обращений к
специально выделенным для этого портам последовательного обмена COM1
(адреса регистров 3F8h...3FFh, прерывание IRQ4), COM2 (адреса 2F8h...2FFh,
прерывание IRQ3),
COM3 (адреса
3E8h...3EFh, прерывание IRQ10),
COM4(адреса 2E8h...2EFh, прерывание IRQ11).
9.5. Назначение портов RS-232
Компьютер, совместимый с IВМ РС, может иметь до четырех последовательных
портов. Они маркируются как СОМ1 - СОМ4. Каждый СОМ-порт формируется
отдельным UART 16450, установленным внутри компьютера. UART содержит
восемь восьмибитовых регистров. Адреса ввода/вывода этих регистров
вычисляются добавлением смещения регистра к базовому адресу СОМ-порта
. Базовые адреса портов равны: COM1 – 3F8h, COM2 – 2F8h, COM3 – 3E8h,
COM4 – 2E8h. При включении компьютера BIOS проверяет адреса всех
установленных последовательных портов и заносит их в определенные ячейки
памяти. Так однобайтовая ячейка памяти 0000:0411h в трех младших битах
содержит общее количество установленных COM-портов. Информация о базовых
адресах установленных портов размещается в ячейках
COM1:
0000:0400h – 0000:0401h,
COM2:
0000:0402h – 0000:0403h,
COM3:
0000:0404h – 0000:0405h,
COM4:
0000:0406h – 0000:0407h.
Рассмотрим назначение портов.
Порт 3F8h (смещение 00h) при нулевом значении управляющего бита
служит для записи в него передаваемого байта данных и чтения из него
принимаемого байта. При единичном значении управляющего бита этот порт
117
используется для записи в него младшего байта кода делителя частоты тактового
генератора, определяющего скорость передачи и приема. В качестве
управляющего бита DLAB используется старший (восьмой) бит регистра формата
данных. Если по этому адресу записан байт, то он передается в регистр сдвига
передатчика и последовательно поступает на выход. Во время приема происходит
обратная операция: после того как данные успешно приняты и с помощью
регистра сдвига преобразованы в параллельный формат, они передаются в
буферный регистр приемника. Когда информация из этого регистра считана, он
очищается и готов к приему следующего блока данных.
Порт 3F9h (смещение 01h) при единичном значении того же управляющего
бита используется для записи старшего байта кода делителя частоты. При
нулевом значении управляющего бита порт используется для управления
прерываниями. Используя этот регистр разрешения прерываний, можно
настраивать прерывания, генерируемые UART, на различные события. Назначения
битов этого регистра приведены ниже:
бит 0 1 - прерывание при получении данных,
0 - нет прерывания,
бит 1 1 - прерывание, когда регистр передатчика пуст,
0 - нет прерывания,
бит 2 1 - прерывание при ошибке приема данных,
0 - нет прерывания,
бит 3 1 - прерывание по изменению состояния линий CTS, DSR, DCD, RI,
0 - нет прерывания,
биты с 7 по 4 всегда нули.
Порт 3FAh (смещение 02h) используется только для чтения и его
содержимое указывает на причину прерывания. При возникновении прерывания
нулевой бит этого регистра устанавливается в 0. Биты 1 и 2 указывают код
причины прерывания. Биты с 7 по 3 не используются и всегда равны 0.
Назначение битов регистра следующее:
бит 0
1 - нет прерывания
0 - прерывание
биты 2,1 00 - изменение входного сигнала (приоритет 3)
01 - регистр передатчика пуст (приоритет 2)
10 - в буферном регистре приемника данные готовы (приоритет 1)
11 - ошибка передачи данных или остановка (максимальный приоритет 0).
Установленное в UART прерывание должно быть сброшено для
корректности дальнейшего обмена данными. Сброс производится при обмене с
одним из регистров, в зависимости от причины прерывания. Для сброса
прерывания производится, в зависимости от кода события:
код 00 - чтение содержимого регистра состояния модема (смещение 06h),
код 01 - запись в регистр передатчика (смещение 00h) или чтение регистра,
идентификации прерываний (смещение 02h),
код 10 - чтение байта данных из буферного регистра приемника (смещение 00h),
код 11 - чтение регистра состояния приемопередатчика (смещение 05h).
Порт 3FBh (смещение 03h) доступен для чтения и записи и содержит биты,
управляющие форматом кадра (скорость, количество битов данных, количество
стоповых битов и настройка проверочного бита). Седьмой разряд содержит
118
управляющий бит для выбора назначения портов 3F8h и 3F9h. Назначение
остальных битов регистра:
биты 1,0 – код длины посылки (00 - 5 бит данных, 01 - 6 бит, 10 - 7 бит, 11 - 8 бит),
бит 2 – код длины стоповой посылки (1 - 2 стоповых бита, 0 - 1 столовый бит),
биты 5,4,3 – код проверки четности (000 - нет проверки, 001 - нечетная,
011 – четная, 101 - всегда 1, 111 – всегда 0),
бит 6 – включение остановки (1 - остановка включена, 0 - остановка выключена).
Когда установлен седьмой управляющий бит, регистры приемопередатчика (смещение
00h) и разрешения прерываний (смещение 01h) используются для загрузки делителя
скорости обмена. В первый записывается младший, во второй - старший байт
делителя. В компьютере тактовая частота, подаваемая в UART, составляет 1,8432
МГц. Внутри UART эта частота сначала делится на 16 и образует частоту равную
115200 Гц. Скорость обмена получается дальнейшим делением частоты 11520 Гц на
делитель. Так для получения скорости 9600 бод необходимо, чтобы делитель был
равен 12. Следовательно, в буферный регистр приемопередатчика должно быть
записано число 12, а в регистр разрешения прерываний - ноль.
Порт 3FCh (смещение 04h) используется для управления модемом. Он
управляет состоянием управляющих линий интерфейса RS-232, таких как DTR и
RTS . Используется редко. Биты 5-7 всегда равны 0. Четвертый бит управляет
обратной связью (1 – обратная связь доступна, 0 –недоступна). Нулевой бит
управляет сигналом DTR (1 – включено, 0 - выключено, присутствует на разъеме
RS-232). Нулевой бит управляет сигналом RTS (1 – включено, 0 - выключено,
присутствует на разъеме RS-232).
Порт 3FDh (смещение 05h) - регистр состояния приемопередатчика,
содержащий флаги готовности и ошибок. Совместное использование с регистром
идентификации прерываний позволяет установить источник прерываний.
Назначения битов регистра следующее:
бит 0 - принятые данные готовы (1 - принятые данные находятся в регистре
приемника, 0 - нет принятых данных),
бит 1 - ошибка переполнения (1 - обнаружена ошибка, 0 - нет ошибки),
бит 2 - ошибка проверки на четность (1 - обнаружена ошибка, 0 - нет ошибки),
бит 3 - ошибка блока (1 - обнаружена ошибка, 0 - нет ошибки),
бит 4 - остановка (1 – обнаружена остановка, 0 – нет остановки),
бит 5 – буфер передатчика пуст (1 - нет байта в регистре передатчика,
0 - в регистре передатчика один байт),
бит 6 – передатчик пуст (1 - нет байта в регистре передатчика и регистре сдвига,
0 - в регистре передатчика и регистре сдвига один байт),
бит 7 – равен 0.
Порт 3FEh (смещение 06h) - регистр состояния модема, содержит
состояние линий CTS, DSR, RI, DCD и признаки их изменения. Назначение
регистров:
бит 7 – обнаружена несущая передачи данных (1 - DCD активна, 0 – неактивна),
бит 6 – индикатор звонка (1 - RI активна, 0 – неактивна),
бит 5 – набор данных готов (1 – DSR активна, 0 – неактивна),
бит 4 - сброс для передачи (1 - CTS активна, 0 – неактивна),
119
бит 3 - изменение DCD ( 1 - DCD изменена с момента последнего считывания,
0 – DCD не изменена),
бит 2 - изменение RI ( 1 - RI изменена с момента последнего считывания,
0 – RI не менялось),
бит 1 - изменение DSR ( 1 - DSR изменена с момента последнего считывания,
0 – DSR не изменена),
бит - изменение CTS ( 1 - CTS изменена с момента последнего считывания,
0 – CTS не изменена).
Регистр 3FE ( смещение 07h) - байт памяти.
При инициализации универсального асинхронного приемо-передатчика
(UART) в IBM*86 необходимо:
записать по адресу 3FBh управляющий байт с единицей в 7 бите;
записать код делителя частоты по адресам 3F8h и 3F9h;
записать по адресу 3FBh управляющий байт с нулем в 7 бите и с
требуемыми значениями остальных битов;
записать управляющий байт по адреcу 3F9h;
записать управляющий байт по адреcу 3FCh.
Далее обмен информацией, в зависимости от выбранного и установленного
режима работы, осуществляется по прерываниям или опросу состояния линий
квитирования (опросу флага готовности).
120
10. ОТСЧЁТ РЕАЛЬНОГО ВРЕМЕНИ В ЭВМ
10.1. Программируемый таймер
10.2. Программируемый контроллер прерываний
10.3. Прерывания в IBM PC
10.4. Отсчёт реального времени в ЭВМ
10.5. Процедуры и функции для работы с прерываниями
Работа ЭВМ в реальном масштабе времени обеспечивается совокупностью
аппаратных и программных средств. К аппаратным средствам, прежде всего,
относятся элементы архитектуры, обеспечивающие механизм прерываний:
таймер, программируемый контроллер прерываний. К программным средствам
относятся прерывания DOS и BIOS, отдельные операторы языков высокого
уровня ориентированные на упрощение составления программ обработки
прерываний. Заметим, что использование внешнего таймера и механизма
прерываний расширяет возможности обработки сигналов в реальном масштабе
времени.
Цель главы – ознакомление с системой аппаратных и программных
средств, обеспечивающих работу ЭВМ в реальном масштабе времени.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Принцип работы векторной системы прерываний,
содержимое и размещение векторов прерываний,
назначение и функциональную структуру программируемого таймера,
режимы работы и программирование таймера,
назначение и функциональную структуру программируемого контроллера
прерываний,
программирование и работа контроллера прерываний,
написание собственных программ обработки прерываний,
встроенные функции PASCAL для создания программ обработки
прерываний,
включение функций пользователя в стандартные программы обработки
прерываний,
особенности использования прерывания 1CH,
При аппаратной реализации механизма отсчета реального времени в ЭВМ
используются входящие в ее состав программируемый таймер и программируемый
контроллер прерываний. Внутри ЭВМ они могут представлять собой как отдельные
микросхемы, так и входить в состав одной БИС, наряду с другими схемами. При
этом сохраняется полностью их совместимость на программном уровне.
Рассмотрим их устройство, принцип действия и использование в составе ЭВМ.
121
10.1. Программируемый таймер
Для задания временных интервалов и формирования сигналов с различными
временными параметрами используются программируемые таймеры 8253
(отечественный аналог КР580ВИ53) и 8254 (отечественный аналог К1810ВИ54).
Таймер 8254, имеющий повышенное быстродействие, полностью аналогичен 8253
и применяется в IBM PC АТ.
БИС таймера является функционально законченным периферийным
однокристальным устройством (ПУ) встраиваемого типа, предназначенным для
работы совместно с микропроцессорами. Интервальный таймер решает одну из
наиболее общих проблем любой микропроцессорной системы — генерацию
точных временных интервалов под программным контролем.
Микросхема выполнена в 24-выводном корпусе и имеет единственный
источник питания +5 В.
В состав таймера
CLK0
Буфер
(рис. 10.1) входят: буфер
D0-D7
Счетчик
шины
шины
данных,
схема
GATE0
1
данных
управления
вводом(СТ0)
OUT0
выводом,
и
три
RD
независимых
канала,
Логика
каждый
из
которых
WR
CLK1
чтения
содержит регистр режима,
Счетчик
A0
записи
GATE1
схему
управления
1
A1
каналом, буфер и 16(СТ1)
OUT1
CS
разрядный вычитающий
счетчик. Выводы D0-D7
предназначены
для
Регистры
CLK2
обмена
данными
и
CW
Счетчик
GATE2 подключаются к шине
1
данных ЭВМ. На входы
(СТ2)
OUT2
RD и WR подаются
стробы чтения и записи.
А0,А1 – младшие разряды
Рис. 10.1. Структурная схема таймера
адреса. Они соединяются
с соответствующими разрядами шины адреса. Вывод CS (выбор кристалла)
подключается в ЭВМ к дешифратору старших разрядов адреса. Каждый счетчик
имеет вход тактовых импульсов CLK, управляющий вход GATE, и выход OUT.
Программирование каналов осуществляется путем вывода управляющих
слов (CW) в регистр режима каждого канала и начального значения в его
счетчик. Каждый канал имеет управляющий вход GATE и выход OUT и может
работать в одном из шести программно -заданных режимов независимо от
других. Все счетчики программно доступны для записи и чтения с помощью слов
данных DW и могут работать как в двоичном коде, так и в двоично-десятичном
коде. Управление режимами выполняется с помощью управляющих (командных)
слов CW. Слово команды (рис. 10.2) определяет: режим работы (поле М), код
122
счета
(двоичный
или
двоично-десятичный),
формат обмена данными с
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
МП при операциях со
счетчиками
(только
Код 2/10
старшим байтом, только
младшим байтом или всем
0 0 0 Режим 0
словом) (поле RL). Поле SC
0 0 1 Режим 1
Х 1 0 Режим 2
используется для указания
Х 1 1 Режим 3
счетчика,
к
которому
1
0 0 Режим 4
относится
очередное
1
0 1 Режим 5
слово.
Связь
таймера
с
0
0
Защелкивание
микропроцессорной
0
1
Чтение/запись
системой осуществляется
младшего
через двунаправленную 8байта
разрядную шину данных
1
0
Чтение/запись
D0-D7 под управлением
старшего байта
пяти сигналов: A0, A1
1
1
Чтение/запись
(младшие
разряды
слова
адреса), WR (запись), RD
0
0 Выбор счетчика 0
(чтение),
SC
(выбор
0
1 Выбор счетчика 0
кристалла) в соответствии
1 0 Выбор счетчика 0
с таблице 10.1. При
1 1 Недопустимо
двухбайтовом формате
данных операция
со
счетчиками выполняется
Рис. 10.2. Формат управляющего слова
дважды:
сначала
записывается или считывается
Операции ввода-вывода Таблица 10.1
младший байт, затем —
старший.
Обслуживание
A1 A2 R D W R S C
Операция
счетчиков (СТ) выполняется
0
0
0
1
0 D
Счетчик 0
параллельно и независимо друг
0
1
0
1
0 D
Счетчик 1
от друга. При подаче питания их
1
0
0
1
0 D
Счетчик 2
состояния и режим работы
1
1
0
1
0 Нет операции
оказываются неопределенными.
0
0
1
0
0 Счетчик 0
D
Поэтому перед началом работы
0
1
1
0
0 Счетчик 1
D
каждый СТ должен быть
1
0
1
0
0 Счетчик 2
D
инициализирован
1
1
1
0
0 Управление
D
индивидуально
посылкой
х
х
1
1
0 Нет операции
соответствующего командного
х
х
х
х
1 Нет операции
слова CW. Каждое CW, за
исключением операции защелкивания, сопровождается 1-2 байтами слова
данных DW начального состояния выбранного СТ. Выполнение операции
начинается только после загрузки последнего байта данных. Последовательность
D7 D6
D5
D4
D3 D2 D1
D0
123
инициализации и переинициализации счетчиков произвольна. Допускается
приостановка
последовательности
инициализации
любого
СТ
на
неопределенное время с последующим ее продолжением или началом но вой.
10.1.1. Режимы работы таймера
Режим 0 (прерывание по окончанию счета). По окончании записи CW
на выходе OUT устанавливается 0 и остается таким до обнуления счетчика. После
загрузки DW счетчик начинает вычитать по каждому срезу CLK. При
переходе счетчика в 0 на выходе OUT устанавливается 1 и остается высоким.
Работа счетчика при этом не останавливается. Перезапуск канала производится
при загрузке новых данных DW. Запись первого байта останавливает счет, второй
байт запускает новый счет. Вход GATE разрешает счет при высоком и запрещает
при низком уровне напряжения.
Режим 1 (аппаратно запускаемый одновибратор). В этом режиме
формируется отрицательный импульс длительностью N тактов CLK, где N- число
загружаемое в счетчик. На выходе первоначально устанавливается высокий
уровень. Выход OUT генерирует 0 по первому срезу CLK после фронта GATE, и
счетчик начинает считать. При переходе СТ в 0 на выходе OUT устанавливается 1.
Перезагрузка СТ во время счета не изменяет длительности текущего импульса.
Однако появление нового фронта GATE перезапускает СТ с новым или старым
значением. Чтение счетчика возможно в любое время.
Режим 2 (генератор частоты) таймер генерирует периодический сигнал с
частотой в N раз меньшей частоты тактовых импульсов. Выход OUT= 0
устанавливается на последнем такте периода, который определяется значением
DW, и только в течение одного периода входной частоты CLK. Перезагрузка СТ
не приводит к изменению длительности текущего периода, но влияет на
длительность последующего. При подаче на управляющий вход GATE 0
осуществляется переход в 1 выхода OUT. Фронт GATE запускает СТ из
начального состояния. Он может служить для аппаратной синхронизации
счетчика.
Режим 3 (генератор прямоугольных импульсов) отличается от режима 2 тем,
что в течение первой половины периода на выходе формируется сигнал высокого
уровня, а в течение второй половины – низкого уровня. На выходе OUT единица
будет сохраняться до тех пор, пока не закончится одна половина счета. При нечетном
DW на протяжении (N+ 1)/2 тактов удерживается 1 и на протяжении (N- 1)/2 тактов 0. При перезагрузке СТ новое значение скажется на результате работы только при
переходе OUT в другое состояние. В остальном, режим подобен предыдущему.
Режим 4 (программная задержка строба). После записи CW на выходе OUT
устанавливается 1. Запуск счета осуществляется после загрузки DW. При
достижении 0 на выходе OUT генерируется импульс длительностью в один период
CLK, а СТ продолжает работать. Перезагрузка младшего байта в процессе
счета не влияет на текущий счет. Загрузка старшего байта приводит к
перезапуску СТ. Появление нуля на входе GATE приостанавливает счет.
124
Режим 5 (аппаратная задержка строба). Счетчик начинает работать только по
фронту GATE. Новый фронт перезапускает текущий счет. В остальном
режим подобен предыдущему.
Во всех режимах сигнал GATE является управляющим: запрещает счет
низким уровнем напряжения и (или) перезапускает фронтом.
В ряде случаев необходимо контролировать текущее состояние счетчика
(СТ), например, когда СТ используется в качестве счетчика событий или
реальных часов. Существуют два метода чтения содержимого СТ. Первый
метод состоит в обычном чтении 1 — 2 байтов выбранного СТ. Для устойчивого
чтения текущего состояния СТ функция счета может быть подавлена с
помощью входа GATE или внешним запретом импульсов CLK. Сначала
читается младший, затем старший байт. Если формат данных обмена с СТ слово, то оба байта должны быть сосчитаны до подачи на данный СТ новой
команды.
Второй метод заключается в чтении содержимого СТ «на ходу» _ без
запрета его работы. Для этого в таймер должна быть послана специальная
команда (Защелкивания), в которой поле выбора счетчика SC кодирует выбор
СТ. Остальные разряды CW могут быть произвольными. По команде
защелкивания текущее состояние выбранного СТ записывается в специальный
регистр, что не мешает работе СТ. Следующая за командой операция чтения
приводит регистр в исходное состояние. Операция чтения подвержена тем же
ограничениям, что и в предыдущем случае.
10.1.2. Таймер на системной плате IBM PC
В IBM PC тактовая частота всех каналов таймера равна 1.19318 Мгц, т. е.
период тактовых импульсов 0.84 мксек. Каналы таймера имеют следующее
назначение. Входы GATE нулевого и первого каналов всегда имеют высокий
уровень и следовательно, счет всегда разрешен.
Нулевой канал предназначен для работы системных часов. Его выход
подключен к нулевому входу контроллера прерываний (IRQ0). При начальной
загрузке BIOS инициализирует этот канал для работы в режиме 3 со счетчиком 0
(т. е. 65536 тактов на период). Поэтому частота прерываний для системных часов
равна 1.19Мгц/65536=18.2Гц и прерывание IRQ0 с вектором INT 8 происходит с
этой частотой, т. е. каждые 55мсек.
Первый канал таймера используется для регенерации памяти. С него
поступает запрос на 0 канал контроллера прямого доступа к памяти для
проведения регенерации. Канал работает в режиме 2 со счетчиком 18, поэтому
регенерация памяти происходит каждые 18мсек.
Второй канал таймера используется для генерации звука. Для этого
используется режим 3 с подходящим начальным значением счетчика. Значение
счетчика вычисляется по формуле N=1193181/f=1234DDh/f, где f- требуемая
частота звука. В схему звукогенератора входит логический элемент «И» и
выходной регистр (РВ) программируемого параллельного интерфейса (ППИ),
имеющего базовый адрес 60h. BIOS инициализирует порт 61h на вывод
125
информации при загрузке системы. Нулевой бит этого порта поступает на вход
GATE второго канала таймера, разрешая его работу. Выход второго канала
таймера поступает на один из входов элемента “И”, другой вход которого
подключен к первому биту порта РВ, разрешая прохождение звукового сигнала.
Таким образом, управление генерацией звука осуществляется 0 и 1 битами
регистра с адресом 61h.
10.2. Программируемый контроллер прерываний
Большое значение для микропроцессорных систем, работающих в реальном
масштабе времени, имеет обеспечение экстренного обслуживания внешних
устройств по их запросам. По принятию запроса процессор прерывает
выполнение своей программы и переходит на программу обслуживания ВУ,
пославшего запрос. Для организации системы прерываний от различных
устройств предназначены БИС программируемых контроллеров прерываний.
Задача контроллеров состоит в приеме запросов прерывания от ВУ, сравнении их
приоритетов, посылки в процессор запроса на прерывание и информации о месте
расположения соответствующей программы обслуживания.
В ЭВМ на базе процессоров INTEL*86 используется система векторных
прерываний. Система векторных прерываний наиболее эффективно реализуется с
помощью специальной БИС Intel 8259А (отечественный аналог КР580ВН59А) или
ее модификаций. Заметим, что микросхема 8259 (КР580ВН59) может быть
использована только совместно с процессором Intel 8080 (КР580ИК80А) из-за
отличий в протоколе обмена. Для управления аппаратными прерываниями в PC
на базе процессоров INTEL*86 используется микросхема программируемого
контроллера прерываний Intel 8259А или она входят в состав специализированной
БИС наряду с другими контроллерами. Так как контроллер 8259 хорошо описан в
технической литературе, рассмотрим архитектуру и принцип действия
контроллера 8259А.
Микросхема выполняется по n-МОП технологии, совместима по уровням с
ТТЛ-схемами, размещается в 28-выводном корпусе и имеет единственный
источник питания +5в. На основе ПКП формируется 8-уровневая приоритетная
система прерывания. Для расширения числа уровней прерывания до 64 несколько
ПКП соединяются каскадно.
Структурная схема, поясняющая логику работы ПКП, приведена на рисунке
10.3. Схема управления чтением/записью осуществляет прием команд от
микропроцессора и передачу ему информации о состоянии контроллера. Обмен с
микропроцессором ведется через 8-разрядный буфер данных. Схема управляется
входами CS (выбор кристалла), RD (чтение), WR (запись), A0 (нулевой разряд
адреса). В состав блока входят не показанные на рисунке регистры управляющих
слов, содержимое которых определяет режим работы контроллера.
Запросы на прерывание от внешних устройств (в том числе и от таймера)
поступают на входы IR0-IR7 и запоминаются в регистре запросов IRR (Interrupt
Request
Register) путем установки соответствующего бита.
Регистр
обслуживания ISR (In Service Register) содержит все запросы, которые в данное
126
время находятся в стадии обработки. Регистр маски IMR (Interrupt Mask Register)
используется для маскирования отдельных уровней (входов) прерываний. Запрет
некоторого уровня соответствует единице в соответствующем разряде IMR.
D0-D7
Буфер
шины
данных
INTA
INT
Логика управления
RD
WR
A0
Логика
чтениязаписи
CS
Регистр
обслуживания
ISR
Приоритетная
логика
CAS0
Буфер,
компаCAS2 ратор
CAS1
Регистр
запросов
IRR
IR0
IR1
… …
IR6
IR7
Регистр маски IMR
SP
Рис.10.3. Программируемый контроллер прерываний
Приоритетная логика выбирает разрешенный запрос на прерывание с
наивысшим приоритетом из числа поступивших и сравнивает его с текущим
приоритетом запросов, находящихся на обслуживании. Если приоритет
поступившего разрешенного запроса на прерывание превышает приоритет
запроса, находящегося на обслуживании, ПКП генерирует сигнал INT. Если флаг
разрешения прерывания IF регистра признаков процессора установлен
(прерывания разрешены), микропроцессор подтверждает прием запрос а INT
генерацией строба INTA. Под воздействием строба INTA запрос с высшим
приоритетом из IRR фиксируется в соответствующем разряде ISR. Принятый к
обслуживанию IRR-бит сбрасывается и прием нового запроса разрешается. После
получения второго сигнала подтверждения от процессора по линии INTA , ПКП
передает в шину данных 8-битовый номер прерывания (вектор). По вектору
процессор определяет положение программы обработки прерывания в
оперативной памяти машины.
Установленный в ISR бит остается в состоянии 1 до окончания процедуры
обслуживания. В конце процедуры в ПКП должна быть передана специальная
команда окончания прерывания EOI, которая сбрасывает соответствующий ISRбит.
До тех пор, пока некоторый ISR-бит установлен, все запросы с равным или
меньшим приоритетом игнорируются. В то же время запросы с более высоким
приоритетом приводят к генерации сигнала INT, инициируя вложенные
прерывания МП.
127
Каскадное соединение нескольких БИС типа ВН59 позволяет довести
число приоритетных уровней до 64. В данном случае одна БИС действует как
ведущая ( SP 1 , низкий уровень), а другие как ведомые ( SP 0 ).
В каскадном режиме генерация сигнала требования прерывания INT
возлагается на ведущую БИС, а генерация вектора прерывания - на ведомую.
При подключении ведомых контроллеров их выходы требования
прерывания INT соединяются, каждый со своим, входом запроса на прерывание
IR* ведущего контроллера, а одноименные выходы каскадирования CAS всех
контроллеров соединяются, образуя шину. Каждой ведомой БИС присваивается
идентификационный код, соответствующий номеру линии запроса на
прерывание ведущей БИС, к которой она подключена. При появлении запроса
на входе ведомого ПКП, он вырабатывает сигнал INT, поступающий на вход
запроса прерывания IR* ведущего, который и вырабатывает сигнал INT,
поступающий на процессор через шину управления.
Когда процессор возвращает сигнал INTA, ведущий контроллер не только
устанавливает бит в ISR и сбрасывает бит в IRR, но и выдает на шину CAS
номер уровня прерывания, к которому подключен пославший запрос ведомый.
Вместо генерации вектора ведущая БИС посылает по трехразрядной шине
CAS номер уровня, принятого к обслуживанию на второй строб INTA. Этот
номер сравнивается компараторами ведомых БИС с присвоенными им номерами.
В результате выбирается один из них. Выбранная БИС отвечает на второй
строб INTA генерацией своего вектора в шине данных.
10.2.1. Режимы работы ПКП
Отличительной чертой БИС типа 8259А является ее программируемость.
Путем программирования ПКП может быть установлен на разные режимы
работы.
1.
Режим фиксированных приоритетов. В этом режиме контроллер
находится сразу после инициализации. Запросы прерывания имеют
жесткое распределение приоритетов от 0 (высший) до 7. Запросы с
низшим приоритетом не будут обрабатываться, пока обрабатываются
запросы с высшим приоритетом.
2.
Автоматический сдвиг приоритетов. После обработки текущего
прерывания ему автоматически присваивается низший приоритет. При
этом приоритеты всех остальных уровней циклически сдвигаются и
прерывание следующего уровня (входа запроса) приобретает наивысший
приоритет. В этом режиме приоритеты прерываний всех уровней
оказываются равны.
3.
Программно-управляемый сдвиг. В команде контроллеру задается вход с
наивысшим приоритетом. Приоритеты остальных входов сдвигаются
циклически. Например, при присвоении наивысшего приоритета входу 4,
вход 3 будет иметь наименьший приоритет.
4.
Автоматическое завершение обработки прерывания. В обычном режиме
процедура обработки аппаратного прерывания должна при своем
128
5.
6.
завершении очистить свой бит в ISR специальной командой. Иначе
новые прерывания не будут обрабатываться. В режиме автоматического
завершения соответствующий бит в ISR автоматически сбрасывается в
тот момент, когда начинается обработка прерывания. В этом режиме не
нужно посылать в контроллер команду завершения обработки
прерывания.
Режим специальной маски. В этом режиме отменяется приоритетное
упорядочивание обработки запросов и запросы обрабатываются по мере
поступления.
Режим опроса (поллинг). В этом режиме аппаратные прерывания не
вызываются автоматически. Появление запросов на прерывание должно
определяться считыванием IRR. Чтение этого регистра позволяет
получить информацию о наличии запросов на прерывание и номер
уровня с максимальным приоритетом, по которому есть запрос.
10.2.2. Программирование ПКП
Программирование ПКП осуществляется двумя типами управляющих слов:
командами инициализации ICW (Initialization Command Word) и командами
управления OCW (Operation Command Word). Для вывода информации в
контроллер используются 2 регистра: порт с четным адресом А0=0 (обычно
порт 20h) и порт с нечетным адресом А0=1 (порт 21h).
Четыре команды инициализации ICW1-ICW4 загружаются перед началом
работы и служат для установки БИС в исходное состояние. Команды
управления OCW1—OCW3 могут быть переданы в ПКП в любое время после
окончания инициализации. Они предназначены для оперативного управления
работой контроллера. При каскадном включении каждая БИС программируется
независимо от других. В порт с четным адресом выводятся ICW1,OCW2 и
OCW3. OCW2 отличается от OCW3 тем, что бит3 в OCW2 равен 0, а в OCW3
равен 1.
Порт с нечетным адресом используется для вывода ICW2, ICW3, ICW4 и
OCW1. Неоднозначности в интерпретации данных в этом случае не возникает,
поскольку слова инициализации ICW2 - ICW4 должны непосредственно
следовать за ICW1, выведенным в порт с четным адресом .
Инициализация контроллера начинается с вывода ICW1 в порт 20h.
Отличительным признаком ICW1 является наличие 1 в 4-ом бите (счет идет от
0) команды инициализации. В процессе инициализации контроллер
последовательно принимает управляющие слова ICW2 - ICW4 с нечетного
порта. При наличии в системе одного контроллера ICW3 не выводится. Наличие
ICW4 определяется содержанием ICW1. При наличии каскада из нескольких
ПКП каждый из них инициализируется отдельно.
Формат ICW1следующий:
7
6
5
4
3
2
1
0
1
LTIM
ADI
SNGL IC4
При D4=l и А0 = 0 входной байт интерпретируется как ICW1.
129
Бит 3 (LTIM), равный 0, задает установку запросов в IRR фронтом, при
значении бита равным 0 запрос устанавливается уровнем.
Бит 2 (АDI) игнорируется; он используется только в ПЭВМ на базе
микропроцессоров Intel 8080.
Бит 1 указывает на наличие одного контроллера (SINGL=1) или каскада
контроллеров (SINGL=0). Если этот бит равен 1, то ICW3 не выводится в
процессе инициализации и следом за ICW2 должно следовать с ICW4.
Бит 0 (IC4) определяет, будет ли выводиться ICW4. Если бит равен 0, то
ICW4 не выводится, и оно автоматически заполняется нулями. Для Intel *86
обязательно задается значение бита равное 1 и, следовательно, ICW4 обязательно
выводится.
Управляющее слово ICW2 задает номер вектора прерывания для
прерываний уровня 0. Например, вектор 8 задается для IВМ РС, у которого по
уровню 0 происходит прерывание от таймера. Вектора аппаратных прерываний
располагаются подряд друг за другом и, следовательно, вывод во втором слове
инициализации числа 8 не только задает восьмой вектор для таймера, но и
девятый для прерываний уровня 1, десятый (0Ah) для прерываний уровня 2 и т. д.
Управляющее слово ICWЗ выводится только при наличии каскада. Оно
имеет разные форматы для ведущего и ведомых контроллеров. ICWЗ ведущего
контроллера указывает, к каким входам (IR0 - IR7) подключены ведомые
контроллеры. При этом соответствующие биты устанавливаются в 1. Остальные
биты равны 0.
ICWЗ ведомого (slave) ПКП в трех младших битах задается номер уровня,
на котором работает ведомый контроллер, т.е. номер входа ведущего, к которому
подключен выход INT ведомого. Например, для ведомого контроллера,
работающего на уровне 2 ICWЗ равно:
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
0
ICW4 имеет 0 в 5-7 разрядах. Нулевой бит определяет тип процессора: 0
– 8080, 1 – 8086. Первый бит определяет режим завершения процедуры
обработки прерывания: 1 – автоматическое завершение, 0 – процедура
обработки аппаратного прерывания должна сама сбрасывать свой бит в ISR.
Второй бит игнорируется, если третий бит (BUF-устанавливающий режим
буферизации) равен 0. При наличии одного контроллера и BUF=1, второй бит
устанавливается в 1. При каскадировании этот бит должен быть равен 1
только для ведущего контроллера. При единичном значении третьего бита
устанавливается режим буферизации. Четвертый бит устанавливает
специальный вложенный режим, применяемый при каскадировании для
определения приоритетов запросов от разных контроллеров.
После инициализации ПКП готов к работе в заданном режиме и можно
ввести 3 командных слова.
Первое командное слово OCW1 передается по нечетному адресу (21h) и
является байтом маски. Единичное значение битов маски означает, что
прерывания соответствующего уровня маскируются и не будут обрабатываться
контроллером.
130
Второе слово рабочих приказов OCW2 (адрес 20h) предназначено для
вывода команды завершения обработки аппаратного прерывания (ЕOI),
циклического сдвига и явного изменения приоритета уровней. Назначение битов
OCW2 следующее:
7
6
5
4
3
2
1
0
R
SL
EOI
0
0
L2
L1
L0
Три младших бита L0 – L2 указывают уровень прерывания, если это
необходимо в команде. Установленный пятый бит (EOI) является признаком
команды обычного завершения обработки прерывания, при котором сбрасывается
в ISR бит, соответствующий прерыванию с максимальным приоритетом.
Назначение седьмого и шестого битов:
00 – обязательно используется при установке в единицу бита нормального
завершения EOI;
01 - команда специального завершения, при которой в ISR сбрасывается,
независимо от приоритета, бит с номером указанным разрядами L0- L2;
10- бита команды циклического сдвига приоритетов влево на одну позицию;
11 – биты команды назначения низшего приоритета уровню с номером,
указанным битами L0 – L2, при этом приоритеты остальных уровней сдвигаются
циклически.
Отсюда видно, что команда обычного завершения имеет код 20h и должна
быть послана по адресу 20h.
Третье слово команды OCW3 устанавливает или отменяет режим
специальной маски и переводит контроллер в режим опроса регистров. Формат
командного слова
7
6
5
4
3
2
1
0
0
ESMM
SMM
0
1
P
RR
RIS
10- отменить режим специальной маски,
11 - установить режим специальной маски.
010 –чтение IRR,
011 – чтение ISR,
1** - установка режима опроса.
При P=0 (команда выбора порта для чтения) можно передать в контроллер
команду чтения IRR или ISR (порт 20h) и затем считать содержимое
соответственно регистров IRR или ISR из порта с нечетным адресом (21h). Если
бит опроса (поллинга, Polling) в команде установлен, ПКП переводится в режим
опроса. Прерывания в этом случае вызываться не будут. Для получения данных о
наличии запросов необходимо чтение порта с четным адресом. При этом
считанные данные из порта с четным адресом (20h) будут иметь вид
7
6
5
4
3
2
1
0
I
0
0
0
0
L2
L1
L0
Единица в старшем бите (I=1) указывает, что имеются запросы на
прерывания, а три младших разряда дают номер уровня с наивысшим
приоритетом, по которому имеется запрос.
131
В режиме специального маскирования каждый бит в регистре ISR
запрещает только собственный уровень, но разрешает все остальные. Во время
инициализации режим специального маскирования аннулируется.
132
10.3. Прерывания в IBM PC
Для управления аппаратными прерываниями в IBM PC AT используется два
контроллера прерывания, которые соединены иерархически. Каждая микросхема
имеет 8 входов прерываний. Поэтому имеется 16 типов прерываний поступающих
по соответствующим линиям IRQ контроллеров прерывания. Сигналы IRQ0-IRQ7
относятся к ведущему контроллеру, IRQ8-IRQ15 – к ведомому. Для
каскадирования второго контроллера прерываний задействован вход IRQ2. Тогда
распределение приоритетов в порядке убывания будет: IRQ0-IRQ2, IRQ8-IRQ15,
IRQ3-IRQ7. Сигналы IRQ0-IRQ2, IRQ8 и IRQ13 используются в системной плате
и недоступны платам расширения.
Назначение некоторых прерываний представлено в таблице 10 2.
Назначение векторов прерывания
Таблица 10.2
Номер
Вектор
прерывания
INT
Назначение
IRQ
0
08h
Программируемый таймер
1
09h
Контроллер клавиатуры
3
0Bh
Последовательный порт COM2
4
0Ch
Последовательный порт COM1
5
0Dh
Параллельный порт LPT2
6
0Eh
Контроллер гибкого диска
7
0Fh
Параллельный порт LPT1
13
75h
Математический сопроцессор
14
76h
Контроллер жесткого диска
Напомним, что каждая микросхема контроллера прерываний имеет 3
однобайтных регистра, которые управляют 8 линиями аппаратных прерываний.
Регистр запроса на прерывание (IRR) устанавливает соответствующий бит, когда
линия прерывания IRQ сигнализирует о запросе. Затем микросхема
автоматически проверяет, не обрабатывается ли другое прерывание. При этом
она запрашивает информацию регистра обслуживания (ISR). Дополнительная
цепь отвечает за схему приоритетов. Далее, перед вызовом прерывания
проверяется регистр маски прерываний (IMR), чтобы узнать разрешено ли
прерывание данного уровня в данный момент времени. Обычно программисты
обращаются только к регистру маски прерывания через порт 21Н и командному
регистру прерываний через порт 20Н. Программы на ассемблере могут запретить
аппаратные прерывания перечисленные выше. Другие аппаратные прерывания,
возникающие при некоторых ошибках (деление на 0) не могут быть маскированы.
Имеются две причины запрета аппаратных прерываний.
1. Прерывания маскируются для того, чтобы критическая часть кода была
выполнена, прежде чем машина произведёт какое-либо другое действие.
Например, прерывания запрещают при изменении вектора аппаратного
прерывания, избегая выполнения прерывания, когда вектор изменён только
наполовину.
133
2. Маскируются только определённые прерывания, когда некоторые
определённые прерывания могут взаимодействовать с операциями, критичными
к временам. Например, точно рассчитанная по времени процедура ввода/вывода
не должна быть прервана длительным дисковым прерыванием.
Выполнение прерываний зависит от значения флага прерывания (9 бит) в
регистре флагов процессора. Когда этот бит равен 1, то разрешены все
прерывания, которые разрешает маска. Когда бит равен 0, то все аппаратны е
прерывания запрещены. Чтобы запретить прерывания используется инструкция
(команда процессора) CLI, для восстановления прерываний – инструкция STI.
Заметим, что машина автоматически запрещает аппаратные прерывания при
вызове программных прерываний и автоматически разрешает их при возврате.
Можно начинать программу обработки прерывания с инструкции STI, если
допускаются аппаратные прерывания. Однако если за инструкцией CLI не следует
STI, это может привести к остановке машины, т. к. ввод с клавиатуры будет
заморожен. Для маскирования определённых аппаратных прерываний посылается
требуемая цепочка битов (байт) в порт с адресом 21h (для ведущего контроллера),
который соответствует регистру маски прерываний (IMR). Для маскирования
устанавливают те биты регистра маски, которые соответствуют маскируемым
номерам линий запросов прерывания. Регистр маски на второй микросхеме
контроллера прерываний имеет адрес порта А1h. Для возобновления прерывания
необходимо очистить соответствующий бит регистра маски.
Например: блокирование дискового прерывания. Контроллер дискет имеет
прерывание IRQ6. Поэтому необходимо установить 6-й бит регистра маски
первого контроллера прерывания.
mov AL, 01000000B; маскируем бит 6 пересылкой в регистр маски прерываний
out 21H, AL
;
.....
.....
; программа
.....
mov AL, 0
;
out 21H, AL
; очистка маски
.....
10.3.1. Векторы прерывания
Появление разрешенного запроса на линии IRQ вызывает передачу из
контроллера прерываний в процессор вектора прерывания по второму импульсу
сигнала предоставления прерывания INTA.
Вектор прерывания –это адрес программы обработки прерывания. Каждый
вектор имеет длину 4 байта. В первом слове хранится значение указателя команд
IP, а во втором – значение сегментного регистра кода (CS). Младшие 1024 байта
содержат векторы прерывания и, таким образом, возможны 256 векторов.
Совокупность векторов образует таблицу векторов. Вектор прерывания 0
начинается с ячейки 0000:0000, для прерывания 1 – с ячейки 0000:0004 и т. д.
Вектор прерывания от таймера, вызванный запросом IRQ0, имеет значение 8h и,
следовательно, размещается в памяти, начиная с адреса 0000: 0020h. Стартовый
134
адрес программы ПЗУ, выполняющей прерывания 8h равен F000:FEA5h. Заметим,
при чтении вектора, начиная с ячейки 0000:0020h, получим A5FE00F0 потому, что
байты размещаются, начиная с младшего.
При выполнении прерывания процессор помещает в стек содержимое
регистра флагов и адрес возврата (содержимое сегментного регистра кода CS и
указателя инструкций IP), затем в CS:IP загружается адрес программы обработки
прерывания из вектора прерывания. Процессор переходит к выполнения
программы обработки прерывания. Программа обработки прерывания должна
завершаться инструкцией IRET (возврат из прерывания), по которой из стека
извлекаются и загружаются в соответствующие регистры адрес возврата и старое
содержимое регистра флагов.
10.3.2. Прерывания BIOS и DOS
Базовая система ввода- вывода (BIOS) при загрузке создает в начале памяти
(по адресу 0) таблицу прерываний, которая содержит адреса обработчиков
прерываний, и выполняет две операции (командные прерывания): INT 11h
(запрос списка присоединенного оборудования) и INT 12h (запрос физической
памяти). Следующим шагом BIOS определяет, имеется на диске или дискете
операционная система и т.д.
Векторы прерываний системы BIOS делятся на 5 групп:
1. Векторы прерываний микропроцессора (0-7).
2. Векторы прерываний контроллера прерываний 8259А (8Н-0FH).
3. Входные точки процедур системы BIOS (10Н-1АН и 40Н)-функции
обмена данных.
4. Вызовы процедур пользователя (1BH и 1CH).
5. Указатели системных таблиц (1DH, 1EH, 1FH, 41H).
Некоторые функции прерывания BIOS:
INT 05h – печать экрана, выполняет вывод содержимого экрана на
печатающее устройство;
INT 08h – прерывание от таймера;
INT 10h – управление дисплеем;
INT 14h – управление коммуникационным адаптером;
Обмен данными и передача параметров в процедуры обработки ведется
через регистры. Некоторые векторы BIOS могут затем переопределяться
операционной системой. Заметим, что программы обработки прерываний BIOS во
много зависят от аппаратной реализации ЭВМ.
Операционные системы при своей загрузке создают свои векторы
прерывания с программами обработки, которые пользователь может включить в
свою программу. При их выполнении используются прерывания BIOS, как
прерывания низкого уровня.
Некоторые часто используемые функции прерывания DOS:
INT 20h – завершение программы и передача управления DOS;
INT 21h – запрос функций DOS, которая вызывает определенную функцию
в соответствии с кодом в регистре AH;
135
INT 25h – абсолютное чтение с диска;
INT 26h – абсолютная запись на диск.
Наиболее часто используется INT 21H. Код функции устанавливается в
регистре АН. Аргументы функции располагаются в регистрах, что уточняется по
описанию прерывания.
Коды некоторых функций:
01h - ввод символа с клавиатуры с эхом на экран;
02h - вывод символа на экран;
05h - вывод символа на печать;
0Вh - проверка наличия ввода с клавиатуры;
25h - установка вектора прерывания;
35h - возвращает текущее значение вектора прерывания.
Пользователь может использовать в своих программах прерывания BIOS и
DOS, список которых и особенности их выполнения приведены в технической
литературе.
10.3.3. Написание собственных прерываний
Способами написания собственных прерываний являются следующие.
Большинство прерываний операционной системы являются подобием обычных
процедур доступных всем программам. Мы можем пожелать добавить свою
процедуру в этот список (библиотеку подпрограмм). Для этого необходимо
написать резидентную программу, которая остается в памяти после ее
завершения, определить ее дальний адрес и поместить его в выбранный вектор
прерываний.
Вторым способом является использование отдельного своего аппаратного
прерывания, которое вызывается при возникновении определённых условий. В
этом случае в выбранный вектор прерывания необходимо поместить дальний
адрес загруженной программы обработки.
Можно также заменить одну из процедур обработки прерывания операционной
системы на свою, сменив содержимое вектора так, чтобы он указывал на другую
программу обработки.
Иногда бывает необходимо добавить свою программу (код) к существующей
программе обработки прерывания. В этом случае содержимое исходного вектора
перемещают в новый вектор, а в исходный вектор помещают дальний адрес
дополнительной программы обработки, в конце которой имеется командное
прерывание с новым вектором. Тогда при прерывании с исходным вектором будет
выполняться дополнительная программа, после которой будет вызвана исходная
программа обработки.
Некоторые программы обработки прерываний предусматривают механизмы
для встраивания дополнительных кодов (процедур) пользователя. В этом случае
они в своем составе содержат командное прерывание с вектором, который
указывает на процедуру, которая ничего не делает, а лишь содержит один
оператор возврата из прерывания IRET. Можно написать свою процедуру
обработки и изменить вектор командного прерывания так, чтобы он показывал на
неё. Для этого дальний адрес дополнительной программы пользователя
136
(процедуры) необходимо занести в вектор пустой программы обработки, тем
самым, заменив ее своей программой. Тогда при прерывании будет выполняться
новая процедура. Примером может служить прерывание от таймера Int 8h,
которое автоматически вызывается 18,2 раза в секунду. Программа обслуживания
этого прерывания содержит командное прерывание с вектором 1Ch, который
можно изменить.
Разработчик программ со сменой векторов прерывания должен предусмотреть
следующую последовательность действий.
1.
При инициализации основной программы необходимо:
загрузить новую программу обработки прерывания,
сохранить старый вектор прерывания,
запретить прерывания,
определить дальний адрес программы обработки прерывания пользователя,
установить новый вектор,
разрешить прерывания;
2.
При завершении основной программы необходимо:
запретить прерывания,
восстановить старый вектор,
разрешить прерывания.
3. Программы обработки прерываний, написанные на языке низкого уровня, при
своем завершении должны очистить свой бит в регистре обслуживания
прерываний ПКП засылкой числа 20h в порт 20h. Засылка числа 20h в порт 20h
разрешает таким образом вложенные прерывания. Последней командой
программы обработки должны бать команда возврата из прерывания IRET.
При написании программ следует (целесообразно) использовать
возможности операционной системы, функций DOS и BIOS. При составлении
программ, работающих с прерываниями, на языках высокого уровня, некоторые
действия, отмеченные в пунктах 1-3, уже включены в состав используемых
команд. Поскольку размещением программ в оперативной памяти занимается
операционная система, то при определении адресов необходимо пользоваться ее
функциями.
10.4. Отсчёт реального времени в ЭВМ
При написании программ на языках высокого уровня для отсчета интервалов
времени в ЭВМ обычно используют специальные процедуры. Так на языке
PASCAL имеется две процедуры работы со временем:
Procedure Delay(MS:Word) – ожидание в течении заданного числа
миллисекунд;
Procedure GetTime(var hour, min, sec, ssec:Word)-возвращает установленное в
системе время в часах, минутах, секундах и сотых долях секунды.
Однако, организовать эффективную работу в реальном масштабе времени с
использованием таких процедур не удается.
137
Для реализации работы в реальном масштабе времени используется
прерывание от таймера с частотой 18.2 гц, которое поступает с нулевого выхода
таймера на вход IRQ0 запроса прерывания первого контроллера прерываний.
Прерывание от таймера имеет высший приоритет и с частотой 18.2 гц контроллер
вырабатывает сигналы требования прерывания. При каждом сигнале
предоставления прерывания ПКП передает в процессор вектор прерывания от
таймера (установленный BIOS) 8h.
Каждое прерывание от таймера INT 8h вызывает обращение к программе
обработки прерывания TIMER_INT (F000: FEA5). Эта программа обработки
имеет 32 разрядный счётчик для регистрации времени дня. Счётчик расположен в
2 ячейках TIMER_LOW (0040:006С) и TIMER_HIGH (0040:006E). Программа
TIMER_INT вызывает перед своим завершением прерывание с вектором 1Ch.
Система BIOS делает вектор прерывания 1Ch указателем на команду IRET.
Прерывание с вектором 1Ch сделано для того, чтобы пользователь мог встроить
собственную программу обработки прерывания. Связь аппаратных и
программных средств при реализации прерывания от таймера представлена на рис
10.4.
Таким образом, прерывание ICh вызывается с частотой 18,2 Гц и ничего
не выполняет, кроме возврата. Поэтому это прерывание можно использовать в
пользовательских программах для отсчёта реального времени поместив в вектор
1Ch указатель на новую программу обработки.
IRET (процедура обcлуживания прерывания INT 1Ch)
INT 1Ch
INT 8h
Контроллер
прерываний
Таймер
Процедура времени суток
. . .. .
......
......
INT ICh
mov AL, 20h ; засылка команды разрешения
out 20h, AL ; прерывания более низкого уровня
IRET
Рис.10.4. Схема реализации прерывания INT 8h
Программа обработки прерывания завершается командой очистки бита
обслуживания прерывания с наивысшим приоритетом в регистре ISR ПКП. Для
этого необходимо перед выходом занести число 20h в порт 20h ПКП (рис.10.2).
При этом будут разрешены все прерывания с низшим или равным приоритетом (в
том числе и следующие прерывания от таймера).
Для включения пользовательской программы в качестве дополнения к
прерыванию INT8h необходимо написать дополнительную процедуру обработки
прерывания и поместить ее указатель (дальний адрес) в вектор 1Ch на место
138
прежнего, предварительно его запомнив. В этом случае обращения к
дополнительной программе обработки прерывания будут идти с частотой 18,2 Гц.
Если необходима более высокая частота, требуется перепрограммировать
таймер. Но при этом будут неправильно работать часы реального времени и могут
возникнуть проблемы с дисководами, т. к. в них предусмотрены временные
задержки.
При написании программ следует использовать возможности операционной
системы, языков высокого уровня, функций DOS и BIOS.
10.5. Процедуры и функции для работы с прерываниями
Программы, работающие с прерываниями могут быть написаны на языке
высокого уровня (Pascal) или низкого (Assembler). Приведем часто используемые
процедуры и функции.
На языке PASCAL заголовок процедуры обработки прерывания имеет вид:
Procedure Int(Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:word); INTERRUPT; где
Int- имя программы обработки прерывания. Список параметров обязательно
должен иметь указанный вид. Некоторые параметры в заголовке программы
могут быть опущены. Но они могут опускаться только подряд, начиная с первого
элемента списка. Опускать промежуточные элементы списка запрещено.
Параметры передаются в подпрограмму через новые значения регистров. При
вызове подпрограммы обработки прерывания старое содержимое регистров
помещается в стек, из которого восстанавливается при возврате. В регистры
загружаются новые значения. Ошибки, связанные с передачей параметров в
прерываниях, часто не отмечаются при трансляции.
Можно использовать процедуру без указания списка параметров, назначая
переменным процедуры абсолютные адреса, совпадающие с адресами
переменных в основной программе. В этом случае переменная подпрограммы и
переменная основной программы, которые должны быть одного типа, будут
располагаться в одном месте оперативной памяти. Они будут тождественны. Для
этого в разделе описания переменных подпрограммы используют следующее
описание переменных:
Var A: T absolute B; , где: A и B – переменные соответственно подпрограммы и
основной программы, T – тип переменной.
Тело процедуры обработки прерывания должно содержать все операции,
которые необходимо выполнить в процедуре. В конце программы обработки
должна быть команда разрешения контроллеру прерывания вновь реагировать на
очередное прерывание: port[$20]:=$20;.
Определение дальнего адреса процедуры или переменной производится с
помощью функции add(Arg), которая возвращает дальний адрес переменной или
процедуры, указанной в ее аргументе. Для определения адреса программы
обработки прерывания (например Int) в теле основной программы необходимо
присвоить некоторой переменной An типа pointer (указатель) значение функции
addr, возвращающей адрес процедуры. Например, An:=addr(Int);
139
Переменная An будет иметь значение дальнего адреса программы обработки
прерывания и, следовательно, размещена в векторе прерывания.
Процедура GetIntVec($1C, A_old);. используется для определения дальнего
адреса программы обработки прерывания заданного вектора и его запоминания.
Первый параметр процедуры – шестнадцатеричный номер вектора прерывания,
адрес программы обработки которого мы сохраняем. Знак $ указывает на
шестнадцатеричную систему счисления при указании номера вектора. В примере
сохраняется адрес программы обработки прерывания с векто ром $1C. Второй
параметр – имя переменной типа Pointer, в которой будет храниться адрес
найденной программы обработки
Установить новый адрес программы обработки прерывания заданного
вектора можно используя процедуру SetIntVec($1C,An);. Первый параметр
процедуры -номер вектора прерывания, адрес программы обработки которого мы
устанавливаем. Второй параметр – имя переменной типа Pointer, в которой
содержится адрес новой программы обработки. При выполнении смены программ
обработки процедура автоматически запрещает прерывания.
140
11. 32-РАЗРЯДНЫЕ ПРОЦЕССОРЫ И PENTIUM
11.1. Архитектура 32-разрядных процессоров
11.2. Страничное управление памятью
11.3. Кэширование памяти
Процессор Intel386 является первым из семейства 32-разрядных
процессоров фирмы Intel. Процессор имел 32-разрядные раздельные шины адреса
и данных и внутреннюю очередь команд размером 16 байт для организации
конвейерной обработки данных. Процессор Intel386 открывает ряд 32-разрядных
процессоров, которые, наряду с повышением разрядности регис тров, имеют
новые общие элементы архитектуры, позволившие существенно повысить
производительность ЭВМ.
Цель главы – ознакомление с основными элементами архитектуры 32разрядных процессоров.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Основные регистры процессора,
механизм определения физического адреса,
механизм страничной трансляции адресов,
механизм кэширования.
Процессор Intel386 имеет 32-разрядные раздельные шины адреса и данных
и внутреннюю очередь команд размером 16 байт для организации конвейерной
обработки данных. Предел физически адресуемой памяти отодвинулся до 4 Гбайт.
В этих процессорах снято ограничение на длину сегмента памяти в 64 Кбайта. В
защищенном режиме оно равно 4Гбайт - предела физически адресуемой памяти.
Процессоры имеют поддержку виртуальной памяти до 64Тбайт. Встроенный блок
управления памятью обеспечивает работу механизмов сегментации памяти и
страничной трансляции адресов. Применено кэширование памяти. Стало
возможным использование математического сопроцессора Intel387. Процессор
может работать в одном из двух режимов: режиме реальной адресации (до
1Мбайта физической памяти) и в защищенном режиме, позволяющим адресовать
до 4 Гбайт физической памяти. Для процессора стало возможным переключение
режимов работы с реального на защищённый режим и обратно. Защищенный
режим стал использоваться полностью. Процессоры обеспечивают
четырехуровневую защиту пространства памяти и ввода-вывода и переключение
задач. Расширена система команд. Процессоры могут оперировать с 8, 16 и 32битными операндами, строками байт, слов и двойных слов, с битами, битовыми
полями, со строками бит.
141
Процессоры 486 обладают всеми свойствами 386-х процессоров,
обеспечивая совместимость сверху вниз. В процессор введен внутренний кэш
(внутренняя промежуточная память) размером 8Кбайт для данных и инструкций.
Повышена производительность локальной шины путем введения пакетных
циклов, позволяющих передавать очередное слово данных в каждом такте шины.
Введены буферы отложенной записи, в которые производится временная запись
данных с случае занятой шины и из которой данные выгружаются в оперативную
память или устройства ввода-вывода по мере освобождения шины. В архитектуре
применено RISC ядро, позволяющее выполнять часто встречаемые инструкции за
один такт. В состав процессора введен высокопроизводительный сопроцессор.
Введены дополнительные регистры, добавлены новые инструкции и введена
защита страниц памяти от записи на уровне супервизора.
11.1. Архитектура 32-разрядных процессоров
11.1.1. Регистры процессора
Регистры общего назначения включают соответствующие регистры
процессоров 8086 и 80286 (Рис. 11.1.). Регистры имеют разрядность 32 бита. К
прежнему обозначению
регистров
прибавилась
31
16 15
0
15
0
приставка Е (Extended).
EAX
Код
AH AX AL
CS
Указатель
инструкции
EBX
Стек
BH BX BL
SS
содержит
смещение
следующей исполняемой
ECX
Данные
CH CX CL
DS
инструкции относительно
EDX
Данные
DH DX DL
ES
базы
сегмента
кода.
Регистр флагов расширен
ESI
Данные
SI
FS
до 32 бит и в него
EDI
Данные
DI
GS
добавлен ряд флагов.
EBP
BP
Регистры
сегментов
содержат
16-битные
ESP
SP
указатели (в реальном
режиме) или селекторы
31
16 15
0
дескрипторов
EIP
Указатель инструкций
IP
соответствующих
EFLAGS
Регистр флагов
FLAGS
сегментов.
Введены
дополнительные сегменты
Рис. 11.1. Основные регистры 32-разрядных
данных. С каждым из 6
процессоров
сегментных
регистров
связаны
программно
недоступные скрытые регистры дескрипторов, автоматически загружаемые при
загрузке соответствующих сегментных регистров. Каждый регистр дескрипторов
содержит 32-битный базовый адрес, 32-битный лимит и 15-битные атрибуты
сегмента (Рис. 11.2.). В реальном режиме лимит фиксирован (64Кбайта), атрибуты
не используются, а в качестве базового адреса заносится значение сегментного
142
32-битный
линейный
адрес
.
32-битный
линейный
адрес
Атрибуты
32-битный
лимит
сегмента
.
. . .
32-битный
лимит
сегмента
.
Атрибуты
Автоматически загружаемые
регистры дескрипторов
47
16 15
0
32-битный линейный базовый адрес Лимит
GDTR
32-битный линейный базовый адрес Лимит
IDTR
Системные указатели
15
0
Селектор
TR
Селектор
LDTR
Системные
сегментные регистры
Рис. 11.2. Системные адресные регистры
регистра, сдвинутое влево
на 4 бита. В защищенном
режиме
регистры
дескрипторов загружаются
из таблицы дескрипторов.
По содержимому регистров
дескрипторов при каждом
обращении
к
памяти
производится вычисление
линейного
адреса
и
проверка защиты.
Системные адресные
регистры
(рис.11.2.)
предназначены для ссылок
на сегменты и таблицы в
защищенном
режиме.
Регистр
глобальной
дескрипторной
таблицы
GDTR (Global Descriptor
Table Register) и регистр
дескрипторной
таблицы
прерываний IDTR (Interrupt
Descriptor Table Register)
программно загружаются и
содержат
32-битные
линейные базовые адреса и
16-битные лимиты таблиц
дескрипторов. В регистр
задачи TR (Task Register) и
Регистр селектора локальной таблицы дескрипторов LDTR загружаются
соответственно 16-битные селекторы сегмента состояния задачи и селектора
локальной таблицы дескрипторов.
Управляющие регистры (Control Registers) CR0, CR1, CR2,CR3 хранят признаки
состояния процессора, общие для всех задач: режим, управление кэшем и
переключением задач, управление расширением размера страницы и т. д.
Регистры отладки DR0… DR7 (Dedug Register) предназначены для задания
и управления отладочными точками останова. Регистры DR0… DR3 хранят 32битные адреса точек останова. Регистр DR6 отражает состояние контрольной
точки, а DR7 – управляет установкой контрольных точек.
В состав процессора входят регистры тестирования, которые предназначены
для тестирования процессора и варьируются в зависимости от типа процессора.
143
11.1.2. Организация памяти
В 32-разрядных процессорах используется побайтная адресация. Байты,
слова (16 бит), двойные слова (32 бит) записываются в последовательности
байтовых ячеек памяти, начиная с младшего байта. Адресом слова или двойного
слова является адрес его младшего байта.
Более крупными единицами являются страницы и сегменты. Память может
логически организовываться в виде одного или множества сегментов, которые
могут выгружаться на диск и по мере необходимости с него подкачиваться в
память. Кроме сегментации, в защищенном режиме (Paging) возможно разбиение
логической памяти на страницы размером 4 Кбайта, каждая из которых может
отображаться на любую область физической памяти. Сегментация и разбиение на
страницы могут применяться в любых сочетаниях. Сегментация является
средством организации логической памяти, которая используется на прикладном
уровне. Разбиение на страницы используется на системном уровне для
управления физической памятью.
Применительно к памяти различают три адресных пространства:
логическое, линейное и физическое. Основным режимом работы 32-разрядных
процессоров является защищенный режим, в котором работают все механизмы
преобразования адресных пространств.
Физическая память
Вычисление эффективного адреса
32
INDEX
x
SCALE 1,2,4,8
BASE
+
DISPLACEMENT
14
Селектор
32 Эффективный
адрес
Физический
адрес
Блок страничной переадресации
(необязательный)
Блок
сегментации
32
Линейный
адрес
Индекс дескриптора
логического адреса
Рис.11.3. Формирование физического адреса в защищенном режиме
Формирование физического адреса (Рис.11.3.) начинается с формирования
эффективного адреса, получаемого суммированием компонентов base, index,
displacement с учетом масштаба scale. Логический адрес, называемый
виртуальным, состоит из селектора сегмента (в реальном режиме – просто адреса
сегмента) и эффективного адреса, называемого смещением (offset). Блок
сегментации транслирует логическое адресное пространство в про странство
линейных адресов. Линейный адрес образуется сложением базового адреса сегмента
с эффективным адресом. Базовый адрес сегмента в реальном режиме получается
умножением содержимого используемого сегментного регистра на 16 (сдвигом влево
на 4 разряда). В защищенном режиме базовый адрес загружается из дескриптора,
144
хранящегося в таблице. Запись в дескрипторной таблице определяется по селектору,
загруженному в используемый сегментный регистр.
32-битный физический адрес памяти образуется после преобразования
линейного адреса блоком страничной переадресации. Он выводится на
внешнюю шину адреса процессора. В простейшем случае (при отключенном
блоке страничной переадресации) физический адрес совпадает с линейным.
Включенный блок страничной переадресации осуществляет трансляцию
линейного адреса в физический страницами размером 4 Кбайт (для старших
поколений процессоров также возможны страницы размером 2 или 4 Мбайт).
Блок переадресации может включаться только в защищенном режиме.
32-разрядная шина адреса позволяет адресовать 4 Гбайт физической
памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с
младших адресов. В реальном режиме при попытке использования эффективного
адреса, выходящего за границу 64-килобайтного сегмента вызывается исключение.
11.1.3. Режимы адресации
Система команд 32-разрядных процессоров предусматривает 11 режимов
адресации. При обращении к памяти эффективный адрес вычисляется с
использованием следующих компонентов:
смещения (Displacement или Disp) — 8-, 16- или 32-битное числа,
включенного в команду;
базы (Base) — содержимое базового регистра, обычно используемого
указания на начало некоторого массива;
индекса (Index) — содержимого индексного регистра, обычно
используемого для выбора элемента массива;
масштаба (Scale) — множителя (1, 2, 4 или 8), указанного в коде
инструкции. Этот элемент используется для указания размера элемента мас сива.
Метод доступен только при 32-битной адресации.
Эффективный адрес вычисляется по формуле
ЕА = Base + Index Scale + Disp.
Отдельные слагаемые в этой формуле могут отсутствовать.
Процессор может работать с 32- или 16-битной адресацией. 16-битна
адресация работает так же, как и в процессорах 8086 и 80286, при этом
используются младшие 16 бит соответствующих регистров. В реальном режиме
по умолчанию используется 16-битная адресация. Но, с помощью префикса
изменения разрядности адреса текущей инструкции, можно переключиться на 32битную.
В защищенном режиме адресация по умолчанию определяется битом D
дескриптора используемого кодового сегмента: при D=0 — 16 бит, при D=1
используется 32 бита. Префикс разрядности адреса переключает разрядность для
текущей инструкции на противоположную.
o
o
Процессор предусматривает 11 режимов адресации:
регистровый – операнд содержится в регистре;
непосредственный – операнд размещается за словом команды;
145
прямая адресация (Direct Mode) с эффективным адресом равным
o
EA=Disp;
косвенная регистровая адресация (Register Indirect Mode) с
эффективным адресом EA=Base;
o
базовая адресация (Based Mode) с эффективным адресом
EA=Base+Disp;
o
индексная адресация (Index Mode) EA=Index+Disp;
o
масштабированная индексная адресация (Scaled Index Mode)
EA=Scale Index+Disp;
o
базово-индексная
адресация
(Based
Index
Mode)
EA=Base+Index;
o
масштабированная базово-индексная адресация (Based Scaled
Index Mode) EA= Base +Scale Index;
o
базово-индексная адресация со смещением (Based Index Mode
with Displacement) EA=Base+Index+Disp;
o
масштабированная базово-индексная адресация со смещением
(Based Scaled Index Mode with Displacement) EA=Base+Scale Index+Disp.
При обращении к памяти использование сегментных регистров по умолчанию
определяется типом обращения. Для большинства типов обращения возможно на
время текущей инструкции использовать альтернативный сегментный регистр,
путем установки префикса замены регистра перед кодом инструкции.
o
11.1.4. Ввод и вывод
32-разрядные процессоры позволяют адресовать 64К однобайтных или 32 К
двухбайтных регистров в пространстве ввода/вывода. Возможно обращение и к 32битным портам. При операциях ввода/вывода линии А[16:31] не используются.
Адрес порта задается либо в команде (только младший байт, а старший байт —
нулевой) либо полный 16-битный адрес берется из регистра DX. Команды ввода/
вывода вызывают шинные циклы с активными сигналами IORD#, IOWR#.
Строчные команды обеспечивают блочный ввод/вывод. В адресном пространстве
ввода/вывода область 0F8-0FF зарезервирована для использования сопроцессором.
При обращении к сопроцессору процессор 80386 выставляет единицу на самой
старшей линии шины адреса, что используется для упрощения дешифрации адресов.
В
защищенном
режиме
инструкции
ввода/вывода
являются
привилегированными. Это означает, что они могут исполняться задачами только с
определенным уровнем привилегий, определяемым полем IOPL регистра флагов или
битовой картой разрешения ввода/вывода хранящейся в сегменте состояния
задачи. Несанкционированная попытка выполнения этих инструкций вызовет
исключение (прерывание) 13 — нарушение зашиты.
11.1.5. Прерывания и исключения
Прерывания и исключения нарушают нормальный ход выполнения
программы для обработки внешних событий или сообщения о возникновении
особых условий или ошибок. Прерывания подразделяются на аппаратные
(маскируемые и немаскируемые), вызываемые сигналами на входах процессора и
146
программные, выполняемые по команде INTxx. Программные прерывания – это
вызов процедур с использованием механизма прерываний. Аппаратные прерывания
подразделяются на маскируемые (вызываемые сигналами на входах INTR) и
немаскируемые (вызванные сигналом на входе NMI).
Маскируемые прерывания вызываются переходом в высокий уровень сигнала на входе INTR (Interrupt Request) при установленном флаге разрешения
(IF=l) в регистре состояния. В этом случае процессор сохраняет в стеке регистр
флагов, сбрасывает флаг IF и вырабатывает два следующих друг за другом
сигнала подтверждения прерывания INTA# (Interrupt Acknowledge). Высокий
уровень сигнала INTR должен сохраняться по крайней мере до подтверждения
прерывания. По второму импульсу внешний контроллер прерываний передает
по шине номер вектора прерывания, обслуживающего устройство требующего
прерывание. Обработка текущего прерывания может быть в свою очередь
прервана немаскируемым прерыванием, или
другим маскируемым
аппаратным прерыванием, если обработчик установит флаг IF. Немаскируемые
прерывания выполняются независимо от состояния флага IF. Высокий уровень на
входе NMI (Non Mascable Interrupt) вызывает прерывание с вектором 2.
Обработка немаскируемого прерывания не может прерываться другим
немаскируемым прерыванием.
Исключения (Exceptions), или особые случаи, подразделяются на отказы,
ловушки и аварийные завершения.
Отказ (fault) — это исключение, которое обнаруживается и обслуживается
до выполнения инструкции, вызывающей ошибку. После обслуживания этого
исключения управление возвращается снова на ту же инструкцию, которая
вызвала отказ. Отказы, использующиеся в системе виртуальной памяти,
позволяют, например, подкачать с диска в оперативную память требуемую
страницу или сегмент.
Ловушка (trap) — это исключение, которое обнаруживается и
обслуживается после выполнения инструкции, его вызывающей. После
обслуживания этого исключения управление возвращается на инструкцию,
следующую за вызвавшей ловушку. К классу ловушек относятся и
программные прерывания.
Аварийное завершение (abort) — это исключение, которое не позволяет
установить инструкцию, его вызвавшую. Оно используется для сообщения о
серьезной ошибке, такой как аппаратная ошибка или повреждение системных
таблиц.
Набор и обработка исключений реального и защищенного режимов различны.
Под исключения Intel резервирует векторы 0-31 в таблице прерываний, однако в
PC часть из них перекрывается системными прерываниями BIOS и DOS.
Процедура, обслуживающая прерывание или исключение, определяется по
таблице прерываний с помощью восьмибитного указателя (вектора) прерывания.
Номер для программных прерываний задается командой, для маскируемых
аппаратных прерываний вводится от внешнего контроллера во втором цикле INTA#
немаскируемое прерывание имеет фиксированный номер, а исключения генерируют
и передают номер вектора внутри процессора.
147
Каждому номеру (0-255) прерывания или исключения соответствует элемент
в таблице дескрипторов прерываний IDT (Interrupt Descriptor Table). В реальном
режиме таблица прерываний содержит дальние адреса (двойные слова)
обслуживающих процедур и после сброса располагается, начиная с нулевых адресов.
Командой LIDT можно изменять положение таблицы в пределах первого
мегабайта, а размер (0-3FFh) может быть уменьшен до 0-07Fh. При попытке
обслуживания прерывания с номером, выходящим за размер таблицы, генерируется исключение. В защищенном режиме дескрипторная таблица IDT содержит
8-байтные дескрипторы прерываний. Она может иметь размер от 32 до 256
дескрипторов и располагаться в любом месте физической памяти.
11.1.6. Процессоры Pentium
Процессоры Pentium фирмы Intel представляют пятое поколение процессоров
семейства х86. По базовой регистровой архитектуре и системе команд
процессоры совместимы с 32-разрядными процессорами, но имеют 64-битную
шину данных. По сравнению с предыдущими поколениями процессоры Pentium
имеют существенные качественные отличия. Некоторые из них:
суперскалярная архитектура: процессор имеет два параллельно
работающих конвейера обработки, благодаря чему способен одновременно
выполнять две инструкции;
технология динамического предсказания переходов совместно с
выделенным внутренним кэшем команд объемом 8 Кбайт обеспечивает
максимальную загрузку конвейеров;
внутренний кэш данных объемом 8 Кбайт работает с отложенной
(до освобождения внешней шины) записью;
внешняя шина данных в целях повышения производительности
сделана 64-разрядной;
встроенный сопроцессор за счет архитектурных улучшений
(конвейеризации) в 2-10 раз превосходит предшествующие по
производительности;
сокращено время (число тактов) выполнения инструкций;
реализован интерфейс построения двухпроцессорных систем с
симметричной архитектурой (начиная со второго поколения Pentium);
применена конвейерная адресация шинных циклов;
введена возможность оперирования страницами размером 4 Мбайт
в режиме страничной переадресации (Paging).
введены новые инструкции;
реализованы новые дополнительные средства тестирования и
отладки;
в последующих моделях проведено расширение базовой
архитектуры добавлением технологии ММХ, ориентированной на
мультимедийные приложения, при которой за одну инструкцию производится
обработка нескольких элементов данных.
148
11.2. Страничное управление памятью
Страничное управление (Paging) является средством организации
виртуальной памяти с подкачкой страниц по запросу. В отличие от сегментации,
которая организует программы и данные в модули различного размера, страничная
организация оперирует с памятью, как с набором страниц одинакового размера. В
момент обращения страница может присутствовать в физической оперативной
памяти, а может быть выгруженной на внешнюю (дисковую) память. При
обращении к выгруженной странице памяти процессор вырабатывает исключение
#PF — отказ страницы, а программный обработчик исключения (часть ОС) получит
необходимую информацию для свопинга — «подкачки» отсутствующей страницы с
диска. Страницы не имеют прямой связи с логической структурой данных или
программ. В то время как селекторы можно рассматривать как логические имена
модулей кодов и данных, страницы представляют части этих модулей. Учитывая
обычное свойство локальности (близкого расположения требуемых ячеек памяти)
кода и ссылок на данные, в оперативной памяти в каждый момент времени следует
хранить только небольшие области сегментов, необходимые активным задачам. Эту
возможность (а следовательно, и увеличение допустимого числа одновременно
выполняемых задач при ограниченном объеме оперативной памяти) как раз н
обеспечивает страничное управление памятью. В первых 32-разрядных процессорах
(начиная с 80386) размер страницы составлял 4 Кбайт. Начиная с Pentium, появилась
возможность увеличения размера страницы до 4 Мбайт, одновременно с
использованием страниц размером 4 Кбайт. Базовый механизм страничного
управления использует двухуровневую табличную трансляцию линейного адреса в
физический (рис. 11.4.).
Механизм имеет три части: каталог страниц (Page Directory), таблицы
страниц (Page Table) и собственно страницы (Page Frame). Механизм включается
установкой бита PG=1 в регистре CR0. Регистр CR2 хранит линейный адрес отказа
(Page Fault Linear Address) — адрес памяти, по которому был обнаружен последний
отказ страницы. Регистр CR3 хранит физический адрес каталога страниц (Page
Directory Physical Base Address). Его младшие 12 бит; всегда нулевые (каталог
выравнивается по границе страницы).
Каталог страниц размером 4 Кбайт содержит 1024 32-битных строки PDE
(Page Directory Entry). Каждая строка (рис. 11.4) содержит 20 старших бит адреса
и признаки (атрибуты) таблицы следующего, более низкого, уровня, которая
называется таблицей страниц. Младшие биты этого адреса всегда нулевые.
Индексом поиска в каталоге страниц являются 10 старших бит линейного адреса
(А22-А31).
Каждая таблица страниц также имеет 1024 строки PTE (Page Table Entry)
аналогичного формата, но эти строки содержат базовый физический адрес (Page
Frame Address) и атрибуты самих страниц. Индексом поиска в таблице являются
биты А12-А21 линейного адреса. Физический адрес получается из адреса страницы,
взятого из таблицы, и младших 12 бит линейного адреса.
Строки каталога и таблиц имеют следующие биты атрибутов. Некоторые
из них:
149
Р (Present) — бит присутствия. Р=1 означает возможность использования
данной строки для трансляции адреса. Бит присутствия вхождений в таблицы,
используемые текущим исполняемым кодом, должен быть установлен.
Программный код не должен его изменять «на ходу.
A (Accessed) — признак доступа, который устанавливается перед чтением
или записью по адресу, в преобразовании которого участвует данная строка.
D (Dirty) — признак, который устанавливается перед операцией записи
по адресу, в преобразовании которого участвует данная строка. Таким образом
помечается использованная — «грязная» страница, которую случае замещения
необходимо выгрузить на диск.
Другие атрибуты определяют политику записи при кэшировании и
механизм защиты страниц.
31
22 21
Directory
12 11
Offset
Table
0
Физический адрес
PTE
PDE
31
12 11
0
Базовый адрес таблицы страниц
Атрибуты
CR3
Строка каталога
31
12 11
0
Базовый адрес страницы
Атрибуты
Строка таблицы
Рис.11.4. Базовый механизм страничной переадресации
При каждой операции доступа к ячейкам памяти необходимо обращение к двум
таблицам, расположенным в памяти для определения физического адреса. Это
существенно снижает производительность. Для предотвращения этого
замедления в процессор введен буфер ассоциативной трансляции TLB
(Translation Look aside Buffer) для хранения интенсивно используемых строк
таблиц. В процессорах 80386 и 486 буфер представляет собой четырехканальный
наборно-ассоциативный кэш на 32 строки таблиц трансляции. Такой размер
позволяет хранить информацию о трансляции 128 Кбайт памяти (32 страницы по
4Кб), что в большинстве случаев мультизадачного использования дает
коэффициент кэш-попаданий 98%, то есть только 2% обращений к памяти
150
требуют дополнительных обращений к таблицам. В процессоре Pentium
имеются раздельные TLB для инструкций и данных.
Механизм страничной переадресации работает следующим образом. Когда
страничное управление разрешено (бит PG=1 в СR0), блок страничной
переадресации получает 32-битный линейный адрес от блока сегментации. Его
старшие 20 бит сравниваются со значениями из TLB, и, в случае попадания,
физический адрес вычисляется по начальному адресу страницы, полученному из
TLB, а затем выводится на шину адреса. Если соответствующей строки в TLB нет,
производится чтение строки из страничного каталога. Если строка имеет бит
Р=1 (таблица присутствует в памяти), в ней устанавливается бит доступа А и
производится чтение указанной ею строки из таблицы второго уровня. Если и в
этой строке Р=1, процессор обновляет в ней биты А и D, вычисляет физический
адрес и, наконец, производит обращение по этому адресу. Если на этих этапах
встречается Р=0, то вырабатывается исключение #PF, обработчик которого должен
принять меры по загрузке затребованной страницы в оперативную память. Поскольку это исключение классифицируется как отказ, после его обработки (успешной) повторяется доступ к затребованной ячейке памяти.
Обработчик исключения #PF, поддерживающий подкачку страниц по
запросу, должен скопировать страницу с внешней (дисковой) памяти в
оперативную, загрузить адрес страницы в строку таблицы и установить бит
присутствия Р. Поскольку в TLB могла оставаться старая некорректная копия
строки, необходимо объявить содержимое TLB недействительным (произвести
очистку). После этого процесс, породивший исключение, может быть
продолжен.
Буферы TLB для прикладных задач программно невидимы, с ними работает
только ОС. Операционная система должна корректно сгенерировать начальные
таблицы трансляции и обрабатывать исключения отказов. В случае изменения
таблиц (и при изменении значений бита Р в любых таблицах) она должна очищать
буферы TLB (целиком или конкретные вхождения). Очистка всех буферов (кроме
глобальных вхождений) происходит при загрузке регистра CR3, выполняемой
явно или по переключению задач. При изменении отображения одиночной
страницы очистка может выполняться по инструкции INVLPG, которая по
возможности очистит только конкретное вхождение в TLB, но в ряде случаев
может обновить и весь буфер.
Процессоры Pentium и старше кроме стандартных страниц 4 Кбайт могут
оперировать и страницами размером 4 Мбайт, что позволяет уменьшить накладные расходы на обслуживание страничного режима при возросших
потребностях программ в памяти.
11.3. Кэширование памяти
Основная память компьютеров реализуется на относительно медленной
динамической памяти (DRAM), обращение к которой вызывает такты ожидания.
Статическая память (SRAM), построенная на триггерных ячейках, по своей
природе способна работать в темпе процессора и сделать ненужными такты
151
ожидания. Поэтому для повышения производительности предложено
использовать иерархический способ организации оперативной памяти. Идея
заключается в сочетании основной памяти большого объема на DRAM с
относительно небольшой кэш-памятью на быстродействующих микросхемах
SRAM.
Кэш является дополнительным быстродействующим хранилищем копий
блоков информации из основной памяти, вероятность обращения к которым в
ближайшее время велика. Кэш не может хранить копию всей основной памяти,
поскольку его объем во много раз меньше основной памяти. Он хранит лишь
ограниченное количество блоков данных и каталог (cache directory) — список
их текущего соответствия областям основной памяти. Кроме того,
кэшироваться может не вся память, доступная процессору.
При каждом обращении к памяти контроллер кэш-памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше. Если она
там есть, то это случай кэш-попадания (cache hit), и данные берутся из кэш-памяти. Если действительной копии там нет, это случай кэш-промаха (cache miss),
то данные берутся из основной памяти. В соответствии с алгоритмом кэширования блок данных, считанный из основной памяти, при определенных условиях
заместит один из блоков кэша. От интеллектуальности алгоритма замещения
зависит процент попаданий и, следовательно, эффективность кэширования. Для
ускорения процесса кэширования используют одну из двух тактик. Или
обращение к основной памяти может начинаться одновременно с поиском в
каталоге, а в случае попадания — прерываться, что экономит время, но ведет к
увеличению энергопотребления. Либо обращение к внешней памяти начинается
только после фиксации промаха, но при этом теряется по крайней мере один
такт процессора, зато экономится энергия.
В современных компьютерах кэш обычно строится по двухуровневой
схеме. Первичный кэш встроен во все процессоры класса 486 и старше; это
внутренний кэш. Объем этого кэша невелик (8-32 Кбайт). Для повышения
производительности для данных и команд часто используется раздельный кэш.
Вторичный кэш для процессоров 486 и Pentium является внешним. Он
устанавливается на системной плате. Кэш-контроллер должен обеспечивать
согласованность данных кэш-памяти обоих уровней с данными в основной
памяти.
Контроллер кэша оперирует строками (cache line) фиксированной длины.
Строка может хранить копию блока основной памяти, размер которого,
естественно, совпадает с длиной строки. С каждой строкой кэша связана
информация об адресе скопированного в нее блока основной памяти и об ее
состоянии. Строка может быть действительной (valid) — это означает, что в
текущий момент времени она достоверно отражает соответствующий блок
основной памяти, или недействительной. Информация о том, какой именно
блок занимает данную строку (то есть старшая часть адреса или номер
страницы) и о ее состоянии называется тегом (tag) и хранится в связанной с
данной строкой ячейке специальной памяти тегов (tag RAM). В операциях
обмена с основной памятью строка участвует целиком (несекторированный
152
кэш), для процессоров 486 и старше длина строки совпадает с объемом данных,
передаваемых за один пакетный цикл. Возможен и вариант секторированного
кэша, при котором одна строка содержит несколько смежных ячеек — секторов,
размер которых соответствует минимальной порции обмена данных кэша с
основной памятью. При этом в записи каталога, соответствующей каждой
строке, должны храниться биты действительности для каждого сектора данной
строки. Секторирование позволяет экономить память, необходимую для
хранения каталога при увеличении объема кэша, поскольку большее количество
бит каталога отводится под тег и выгоднее использовать дополнительные биты
действительности, чем увеличивать глубину индекса (количество элементов)
каталога.
Строки кэша под отображение блока памяти выделяются при промахах
операций чтения, в Р6 строки заполняются и при записи. Запись блока, не имеющего копии в кэше, производится в основную память (для повышения быстро действия запись может производиться через буфер отложенной записи).
Поведение кэш-контроллера при операции записи в память, когда копия затребованной области находится в некоторой строке кэша, определяется его алго ритмом, или политикой записи. Существуют две основные политики записи
данных из кэша в основную память: сквозная запись WT (Write Through) и
обратная запись WB (Write Back).
Политика WT предусматривает выполнение каждой операции записи
(даже однобайтной), попадающей в кэшированный блок, одновременно и в
строку кэша, и в основную память. При этом процессору при каждой операции
записи придется выполнять относительно длительную запись в основную
память. Алгоритм обеспечивает целостность данных за счет постоянного
совпадения копий данных в кэше и основной памяти. Для него не нужно хранить
признаки присутствия и модифицированности — вполне достаточно только
информации тега (при этом считается, что любая строка всегда отражает какойлибо блок, а какой именно — указывает тег). Но этот алгоритм обладает низкой
эффективностью записи. Существуют варианты этого алгоритма с применением
отложенной буферированной записи, при которой данные в основную память
переписываются через FIFO-буфер во время свободных тактов шины.
Политика WB позволяет уменьшить количество операций записи на шине
основной памяти. Если блок памяти, в который должна производиться запись,
отображен в кэше, то физическая запись сначала будет произведена в эту действительную строку кэша, и она будет отмечена как грязная (dirty), или модифицированная, то есть требующая выгрузки в основную память. Только после
этой выгрузки (записи в основную память) строка станет чистой, и ее можно
будет использовать для кэширования других блоков без потери целостности
данных. В основную память данные переписываются только целой строкой. Эта
выгрузка контроллером может откладываться до наступления крайней
необходимости (обращение к кэшированной памяти другим абонентом,
замещение в кэше новыми данными) или выполняться в свободное время после
модификации всей строки. Данный алгоритм существенно эффективнее, чем WT.
Поддержка системной платой кэширования с обратной записью требует
153
обработки
дополнительных
интерфейсных сигналов
для
выгрузки
модифицированных строк в основную память, если к этой области производится
обращение со стороны других устройств.
В зависимости от способа определения взаимного соответствия строки кэша
и области основной памяти различают три архитектуры кэш-памяти: кэш прямого
отображения, полностью ассоциативный кэш.
Кэш прямого отображения
В кэш-памяти прямого отображения адрес памяти, по которому происходит
обращение, однозначно определяет строку кэша, в которой может находиться
требуемый блок. В качестве примера рассмотрим типичный кэш системной платы
для Pentium, который имеет объем 256 Кбайт с размером строки 32 байта и
объем кэшируемой основной памяти 64 Мбайт. Кэшируемая память разбивается
на страницы, размер которых совпадает с размером кэш памяти (256 страниц по
256 Кб). Кэш-память делится на 256К/32=8К строк.
Архитектура прямого отображения подразумевает, что каждая строка
кэша может отображать из любой страницы кэшируемой памяти только
соответствующую ей строку. Поскольку объем основной памяти много больше
объема кэша, на каждую строку кэша может претендовать множество блоков
памяти с одинаковой младшей частью адреса (смещением внутри страницы).
Одна строка в определенный момент может, естественно, содержать копию
только одного из этих блоков. Номер (адрес) строки в кэш-памяти называется
индексом (index). Тег несет информацию о том, какой именно блок занимает
данную строку (то есть старшую часть адреса или номер страницы). Память тегов
должна иметь количество ячеек, равное количеству строк кэша, а ее разрядность
должна быть достаточной, чтобы вместить старшие биты адреса кэшируемой
памяти, не попавшие на шину адреса кэш-памяти. Кроме адресной части тега с
каждой строкой кэша связаны биты признаков действительности и
модифицированности данных.
В начале каждого обращения к кэшируемой памяти контроллер первым
делом считывает ячейку каталога с заданным индексом, сравнивает биты адреса
тега со старшими битами адреса памяти и анализирует признак действительности. Если в результате анализа выясняется, что требуемый блок не находится в
кэше, то генерируется (или продолжается) цикл обращения к основной памяти
(случай кэш-промаха). В случае попадания запрос обслуживается кэш-памятью.
В случае промаха после считывания основной памяти приемником информации
новые данные помещаются в строку кэша (если она чистая), а в ее тег
помещаются старшие биты адреса и устанавливается признак действительности
данных. Независимо от объема затребованных данных из основной памяти
строка переписывается в кэш вся целиком (поскольку признак действительности
относится ко всем ее байтам). Если контроллер кэша реализует упреждающее
считывание (read ahead), то в последующие свободные циклы шины обновится и
следующая строка (если она была чистой). Такой кэш имеет самую простую
аппаратную реализацию и применяется во вторичном кэше большинства
системных плат.
154
Недостаток кэша прямого отображения памяти особенно ярко проявляется
при последовательных обращениях к одной строке разных страниц, что приводит
к непрерывным кэш-промахам и, следовательно, перезагрузкам кэша.
Тег строки 0
Строка 0
32 байта
32 байта
Тег строки 1
Тег строки 2
.
.
.
.
Тег строки 8к-1
32 байта
.
.
.
.
.
32 байта
Кэш память
.
.
.
.
.
. . . . .
32 байта
Страница 1
.
.
.
.
.
Строка
8к-1
Страница 255
256 страниц по 256 кбайт
Рис.11.5. Кэширование памяти
Ассоциативный кэш
У полностью ассоциативного кэша любая его строка может отображать любой
блок памяти, что существенно повышает эффективность использования его
ограниченного объема. При этом все биты адреса кэшированного блока, за вычетом
бит, определяющих положение (смещение) данных в строке, хранятся в памяти
тегов. В такой архитектуре для определения наличия затребованных данных в
кэш-памяти требуется сравнение со старшей частью адреса тегов всех строк, а не
одной или нескольких, как при прямом отображении. Это является сложной
аппаратной задачей, которая пока решена только для небольших объемов
первичного кэша в некоторых процессорах.
Наборно-ассоциативная архитектура кэша позволяет каждому блоку
кэшируемой памяти претендовать на одну из нескольких строк кэша,
объединенных в набор (set). Можно считать, что в этой архитектуре есть несколько
параллельно и согласованно работающих каналов прямого отображения, где
контроллеру кэша приходится принимать решение о том, в какую из строк набора
помещать очередной блок данных.
155
12. ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ
12.1. Однокристальный микроконтроллер К1816
12.2. AVR микроконтроллеры
12.3. Процессоры обработки сигналов
Отдельный
класс
микропроцессорных
систем
представляют
однокристальные (выполненные в виде одной микросхемы) микроконтроллеры.
Интеграция всех составных систем микроконтроллера в одном кристалле привела
к ряду ограничений на принципы его организации и к развитию архитектуры в
специфическом направлении. Современные однокристальные микроконтроллеры
обладают ресурсами и возможностями управления в реальном масштабе времени.
Область применения однокристальных микропроцессоров - встроенные и
распределенные системы управления.
Цель главы – ознакомление с основными элементами архитектуры
однокристальных контроллеров.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
Основные элементы архитектуры контроллеров,
организацию портов ввода-вывода,
методы расширения адресного пространства памяти программ и данных.
Однокристальные
контроллеры,
выпускаемые
различными
производителями, отличаются друг от друга, но имеют и общим характеристики.
Архитектура микроконтроллеров относится к гардвардскому типу, в которой
память данных и программ разнесены, т.е. отдельно есть память команд
(программ) и отдельно есть память данных, где хранятся переменные. Общим для
них является 8- или 16-разрядный процессор, перепрограммируемое ПЗУ
емкостью несколько Кбайт с электрическим или ультрафиолетовым стиранием,
небольшое ОЗУ данных, значительное число линий цифрового ввода-вывода. Для
организации работы в реальном масштабе времени контроллеры имеют таймер и
систему прерываний. Некоторые контроллеры имеют встроенные АЦП, ЦАП и
сторожевой таймер.
Физическое программирование контроллеров осуществляется с помощью
программаторов, пересылающими данные в ПЗУ программ в параллельном или
последовательном коде в соответствии с протоколом программирования. Для
написания программ обычно используется Ассемблер. Составленная программа
транслируется с помощью кросс-ассемблера на ЭВМ и загружается в контроллер
с помощью программатора. Используются также специальные среды разработки
и программирования.
Типичным примером однокристальных контроллеров является семейство
микроконтроллеров К1816, выпускаемое в различных модификациях.
156
12.1. Однокристальный микроконтроллер К1816
Семейство однокристальных микроконтроллеров серии К1816 имеет
базовый (простейший) вариант К1816ВЕ48 и наиболее сложный К1816ВЕ51. Все
модели семейства К1816 совместимы по принципу снизу-вверх. К1816ВЕ51 имеет
в своем составе последовательный приемопередатчик, что позволяет создавать
топологически распределенные система управления и регулирования. В этом
случае обмен информацией между множеством микроконтроллеров
осуществляется через локальную сеть.
В состав контроллеров семейства К1816 входит процессор,
перепрограммируемое ПЗУ емкостью 1-8 Кбайт с ультрафиолетовым или
электрическим стиранием, которое имеет возможность наращивания внешним
ПЗУ до 64 Кбайт, ОЗУ данных до 256 байт с возможностью наращивания.
Разрядность,
количество и назначение входов/выходов зависит от типа
контроллера (Рис.12.1.).
Генератор
Управление
режимом
ПЗУ программ
1/2/4/8
кбайт
ОЗУ данных
64/128/256
байт
Системный
адаптер
ПРОЦЕССОР
Внутренние шины адреса, данных и управления (4/8/16)
Управление
расширением
Таймеры,
счетчики
Логика
прерываний
Цифровой
ввод-вывод
Аналоговые
ввод-вывод
Тестовые
входы
Запросы на Паралл. и послед.
Аналоговые
Входы
прерывания
входы-выходы
входы-выходы
счетчиков
Рис. 12.1. Обобщенная функциональная схема
однокристального микроконтроллера
Простейший однокристальный контроллер К1816ВЕ48, функциональная
схема которого представлена на рисунке 12.2. имеет следующие аппаратные
средства:
8-разрядный процессор,
внутреннее ОЗУ данных емкостью 64байта с возможностью внешнего
расширения на 256 байт,
внутреннее ППЗУ программ с ультрафиолетовым стиранием емкостью 1Кбайт с
возможностью внешнего расширения до 4 Кбайт,
программируемый 8-разрядный таймер-счетчик,
3 программируемых 8-разрядных порта (24=3*8 линии прямого ввода-вывода
для связи с объектами) с возможностью внешнего расширения до 8 портов,
3 тестируемых входа (признаков вырабатываемых объектами),
157
одноуровневая векторная система прерываний с двумя источниками запросов,
генератор с частотой синхронизации до 6 Мгц.
Генератор
ПЗУ программ
1/2/4/8
кбайт
CLK
ALE
SS
PSEN
RD
WR
PROG
ПРОЦЕССОР
Внутренние шины адреса, данных и управления (8)
Таймерсчетчик
RESET
ОЗУ данных
64/128/256
байт
T
F
Логика
прерываний
Цифровой
ввод-вывод
8
IN
T
T1 T0
BUS
2*4
P1
2*4
P2
Рис. 12.2. Функциональная схема микроконтроллера К1816ВЕ48
Назначение основных выводов микросхемы:
PROG (ПРОГ) - выходной строб для расширителя ввода-вывода или
программирующий импульс 25в при программировании,
ALE (САВП) - строб адреса внешней памяти используемый для приема и
фиксации адреса внешней памяти на внешнем регистре, генерируется в
начале каждого машинного цикла для синхронизации внешних цепей,
PSEN (РВПП)- разрешение внешней памяти программ, сигнал выдается только
при обращении к внешней памяти программ,
EA (ОРПП)- отключение рабочей памяти программ, разрешение доступа к
внешней памяти, для запрета внутреннего ПЗУ в режимах эмуляции и
отладки,
SS (ШАГ) - сигнал, позволяющий при отладке выполнять программу с остановом
после очередной команды, т.е. пошаговый режим,
T0 - входной сигнал, опрашиваемый командами условного перехода для
ветвления по условию,
T1 - входной сигнал, опрашиваемый командам условного перехода, и вход
счетчика-таймера,
INT - сигнал запроса прерывания от внешнего источника,
RD - строб чтения из внешней памяти данных или устройства ввода-вывода,
WR - строб записи во внешнюю память данных или устройство ввода-вывода,
RESET - вход сигнала общего сброса,
Р1 (P10-P17) - 8-битный псевдодвунаправленный порт, каждый разряд может
быть запрограммирован на ввод или вывод,
Р2 (P20-P27) - 8-битный псевдодвунаправленный порт, каждый разряд которого
может быть запрограммирован на ввод или вывод; младшая тетрада
158
используется в качестве 4 старших разрядов адреса во время чтения из
внешней памяти программ (ВПП); старшая тетрада используется для
подключения БИС расширителя ввода-вывода (порты 4-7),
BUS - 8-битный двунаправленный многофункциональный порт ввода-вывода
информации; может выполнять прием и выдачи байтов синхронно с
сигналами RD и WR; при обращении к ВПП содержит 8 младших разряда
адреса и затем по сигналу PSEN (РВПП) принимает выбранную команду;
при обращении к внешней памяти данных (ВПД) содержит 8 бит адреса
синхронно с сигналом ALE (строб адреса внешней памяти) и байт данных
синхронно с сигналами RD и WR.
Процессор имеет два набора по 8 восьмиразрядных регистров в адресном
пространства внутреннего ОЗУ. Выбор одного из наборов регистров выполняется
специальной командой, что позволяет переключать контекст программы. Рабочие
регистры доступны по командам с прямой адресацией; ячейки внутренней памяти
данных доступны по командам с косвенной адресацией через регистры R0, R1 и
R0', R1'. Процессор имеет ограниченную систему команд: 12 арифметических, 28
логических, 19 передач управления и десятичную коррекцию. Методы адресации:
прямая регистровая, косвенная регистровая и непосредственная. Указатель стека трехразрядный. Стек расположен в адресном пространстве внутреннего ОЗУ
данных.
Память программ реализована в резидентном ППЗУ емкостью 1Кбайт.
Счетчик команд - 12 разрядный, что позволяет адресовать 4Кбайт. В счетчике
команд инкрементируется только 11 разрядов; старший разряд изменяется
программно специальной командой смены банка памяти. Память разбита на
страницы по 256 байт. В резидентной памяти программ находятся три
специализированных адреса:
адрес 0, по которому передается управление после общего сброса,
адрес 3, по которому расположен вектор прерывания от внешнего источника,
адрес 7, по которому расположен вектор прерывания от таймера.
В командах условного перехода задается 8-битный адрес передачи управления
внутри страницы. Для межстраничных переходов используется команды
безусловного перехода и перехода к подпрограмме.
Память данных содержит два банка рабочих регистров с адресами 0-7 и 2431. Адреса 8-23 используются 8-уровневым стеком, в котором фиксируется
только адрес возврата и флаги. При расширении памяти возможен доступ к 256
байтам внешней памяти данных через регистры косвенного адреса.
Загрузка прикладных программ требует использования программатора,
который имеет средства ввода адресов и данных, средства контроля за введенной
информацией и который генерирует необходимую последовательность сигналов
программирования в соответствии с техническими условиями (ТУ).
159
Программаторы
обычно
выполняются в виде отдельного
ППЗУ
A0-A11
RG
МК
модуля подключаемого к ЭВМ. Для
A
48
ALE
4
разработки
программного
P20обеспечения существуют отладочные
P23
PSEN
ВК
платы и эмуляторы ассемблера. При
программировании адрес и данные
ALE
последовательно устанавливаются на
PSEN
шине BUS, P2 (старшие разряды) и
заносятся подачей стробов на
АДРЕС КОМАНДА АДРЕС
BUS
управляющие входы микросхемы.
Расширение внешней памяти
Рис.12.3. Расширение внешней программ
выполняется
по
памяти программ
приведенной ниже функциональной
AD0-AD7
схеме
(Рис.12.3.).
Временная
BUS
D
ОЗУ
A0-A7
RG
диаграмма
работы
также
МК
A
48
представлена на рисунке. На шине
ALE
RD
RD
BUS выставляются 8 младших
WR
WR
разряда адреса, которые по срезу
ВК
Рис.12.4. Расширение внешней сигнала ALE (Address Latch Enable,
САВП -строб адреса внешней
памяти данных
памяти) запоминаются во внешнем
4
4
регистре. 4 старших разряда адреса
P20D
P4
580
P23
P5
выставляются в порту P2. Сигналом
МК
ВР43 P6
PSEN (Program Store Enable, РВПП48
PROG
PROG
P7
разрешение
внешней
памяти
Рис.12.5. Расширение
программ)
разрешается
работа
пространства ввода-вывода
внешней памяти. По спаду этого
сигнала производится ввод команды.
Подключение внешней памяти
AD0-AD7
8
BUS
D
PA
данных показано на функциональной
580
A0-A1
RG
МК
ВВ55 PB 8
A
схеме (Рис.12.4.). Выставленный
48
ALE
8
адрес запоминается во внешнем
RD
RD
PC
WR
WR
регистре по стробу адреса внешней
ВК
памяти, по сигналам чтения/записи
Рис.12.6. Расширение пространства
данные считываются/записываются
ввода-вывода
из/в память. При необходимости еще
8
AD0-AD7
BUS
большего увеличения памяти можно
D
PA
580
реализовать страничный механизм
МК
8
P20
A0 ВВ55 PB
48
ОЗУ (по 256 байт) используя регистр
P21
A1
8
RD
RD
PC
P2 в качестве страничного регистра.
WR
WR
Для расширения пространства
ВК
ввода/вывода
выпускается
Рис.12.7. Расширение пространства
специальная
микросхема
ввода-вывода
расширителя
КР580ВР43
BUS
8
AD0-AD7
D
160
подключаемая к порту P2 и имеющая 16 линий (Рис.12.5.). Но более удобно
использовать микросхему КР580ВВ55. Порты параллельного адаптера можно
адресовать или как ячейки памяти (Рис.12.6.) или использовать для этой цели
линии порта P2 (Рис.12.7.). Для ввода аналоговых сигналов возможно
использование числоимпульсного преобразования. Внешний блок формирует
пачки, в которых число импульсов пропорционально входному сигналу. Эти
пачки поступают на вход счетчика. Управление преобразователем реализуется
через выходные линии одного из портов P1 или P2. Примером системы
управления, реализованной на микроконтроллере серии 1816, является система "
Разрез", предназначенная для управления рабочими органами асфальтоукладчика.
161
12.2. AVR микроконтроллеры
Однокристальные микроконтроллеры фирмы “ATMEL” широко
используются для построения систем управления, поскольку они имеют все
необходимые аппаратные средства для этих целей. Контроллеры этого семейства
являются 8-разрядными микроконтроллерами, предназначенными для
встраиваемых приложений. Микроконтроллеры, выполненные по КМОП
технологии, имеют малое энергопотребление и достаточно высокое
быстродействие. Микроконтроллер может управлять различными устройствами
и принимать данные при минимуме дополнительных узлов, поскольку большое
число периферийных устройств имеется непосредственно на кристалле. Это
позволяет уменьшить размеры устройств управления и снизить потребление
энергии от источника.
Микроконтроллеры AVR также построены по Гарвардской архитектуре,
которая характеризуется раздельной памятью программ и данных, каждая из
которых имеет собственные шины доступа к ним. Такая организация позволяет
одновременно работать как с памятью программ, так и с памятью данных
(Рис.12.8).
Контроллеры имеют встроенную FLASH-память программ объемом от 1
до 8 Кбайт, память данных на основе ЭСППЗУ (EEPROM) объемом от 64 до 512
байт, статическое ОЗУ (SRAM) объемом до 512байт.
Последовательный
синхронный
интерфейс SPI
ПЗУ программ
(FLASH)
Регистр
команд
Дешифратор
команд
ПЗУ
(EEPROM)
Счетчик команд
ОЗУ
Регистры
управления
РОН
Многоканальный
АЦП
Устройство
управления
АЛУ
Асинхронный
приемопередатчик
Внутренняя шина
Сторожевой
таймер
Порты
ввода-вывода
Блок
прерываний
Таймеры
Рис. 12.8. Архитектура контроллеров AVR
Аналоговый
компаратор
162
Процессор (центральное процессорное устройство) имеет RISCархитектуру, позволяющую выполнять несколько сокращенный и упрощенный
набор команд за один такт. Он принимает из памяти программ коды команд,
декодирует и выполняет их. Он состоит из регистров общего назначения, АЛУ и
блока управления. Процессор имеет 32 РОН, размещенных в области ОЗУ и
подключенных непосредственно к АЛУ. Это позволяет избежать
дополнительных пересылок. Большинство команд выполняется за один
машинный цикл. Процессор поддерживает многоуровневую систему
прерываний.
В памяти программ хранятся коды команд, последовательность которых
формирует программу для
микроконтроллера. EEPROM память данных
предназначена для постоянного хранения неизменяемых при работе данных
(констант программы). В оперативной памяти данных хранятся переменные
программ, здесь расположен и стек.
Команды микроконтроллера занимают одно или два 16-разрядного слова.
Процессор при обращении к памяти использует пять методов адресации: прямой
регистровый, прямой адресации, косвенный, косвенный со смещением,
косвенный с предварительным декрементом, косвенный с постинкрементом.
Адресация констант в памяти программ осуществляется через специальный
регистр Z.
Регистры ввода-вывода располагаются в пространстве ввода-вывода
размером 64 байта и разделяются на служебные регистры микроконтроллера и
регистры периферийных устройств. Регистры имеют 8 разрядов. Распределение
адресов пространства ввода-вывода зависит от конкретной модели.
Контроллер имеет несколько портов ввода-вывода. Каждый вывод порта
цифрового ввода-вывода может быть запрограммирован как входной или
выходной независимо от других. Нагрузочная способность всех выводов равна
20ма.
Тактовый генератор определяет скорость работы микроконтроллера. В
качестве ГТИ используется или встроенный RC-генератор, или генератор на
внешнем резонаторе.
Для отсчета временных интервалов и счета входных импульсов в состав
контроллера входят один или несколько 8/16-разрядных таймера/счетчика.
Сторожевой таймер предназначен для предотвращения сбоев программы.
Таймер работает следующим образом: после запуска программы он начинает
отсчет заданного временного интервала. Если программа не перезапустит его до
истечения
этого
интервала,
то
сторожевой
таймер перезапустит
микроконтроллер.
В состав контроллера, в зависимости от типа, может входить
последовательный порт - полнодуплексный универсальный асинхронный
приемопередатчик(UART). В него также могут входить один или несколько
генераторов сигнала с широтно-импульсной модуляцией (ШИМ), аналоговый
компаратор, 10-разрядный АЦП (6 или 8 каналов).
Последовательный синхронный интерфейс SPI используется для
программирования контроллера. Вторым назначением интерфейса является
163
организация высокоскоростного обмена данными между микроконтроллером и
различными периферийными устройствами, в том числе и между несколькими
микроконтроллерами AVR.
Заметим, что выводы микросхем контроллеров могут быть
многофункциональными и используются по-разному, в зависимости от режима
работы.
При программировании микроконтроллера полученный в результате
компиляции программы машинный код загружается в память программ, а
требуемые данные заносятся в EEPROM.
Программирование контроллера (с использованием программатора)
выполняется по параллельному либо по последовательному (непосредственно в
системе через последовательный SPI-интерфейс) каналам.
Программирование по последовательному каналу памяти программ и
данных осуществляется через последовательный интерфейс SPI путем посылки
4-байтовых команд в последовательном формате на вывод контроллера. В
посылках содержатся команды программирования, адреса и данные в заданном
формате. При этом каждый бит посылки стробируется сигналами тактового
генератора. Данный режим используется, как правило, для программирования
или перепрограммирования микроконтроллера непосредственно в системе.
Наличие этого режима является большим достоинством контроллеров AVR., т.к.
он позволяет значительно упростить модернизацию программного обеспечения.
Для написания программ и отладки используются такие программные
средства как Ассемблер Wavrasm или отладчик AVR Studio.
12.3. Процессоры обработки сигналов
Наряду с микроконтроллерами для обработки аналоговых и цифровых
сигналов выпускаются специализированные процессоры обработки сигналов.
Архитектура таких процессоров ориентирована на обработку определенного
типа сигналов.
12.3.1. Однокристальный цифровой процессор обработки
аналоговых сигналов К1813ВЕ1
Процессор предназначен для цифровой обработки аналоговых сигналов в
реальном масштабе времени. Может быть использован в системах связи,
промышленной автоматике, для построения цифровых фильтров и
формирователей специальных функций. Процессор предназначен для работы в
полосе частот от 0 до 20 Кгц. Микросхема представляет собой
перепрограммируемую СБИС содержащую аналоговые системы ввода-вывода
информации,
блоки аналого-цифрового преобразования, блок цифровой
обработки, постоянную и оперативную память. Процессор имеет 4 аналоговых
входа и 8 аналоговых выходов и обрабатывает аналоговые сигналы с
разрешающей способностью 0.5% (8 двоичных разрядов и знак). Обработка
164
цифровых кодов ведется на 25-разрядном АЛУ, что обеспечивает необходимую
точность при решении задач фильтрации.
12.3.2. Цифровые процессоры обработки сигналов (ЦПОС)
Отдельный класс устройств, предназначенных для построения встроенных
систем управления и обработки сигналов, представляют цифровые процессоры
обработки сигналов.
ЦПОС - однокристальные ЭВМ, специализированные для решения класса
задач цифровой обработки сигналов в реальном масштабе времени. Их часто
называют сигнальными процессорами. В реальных системах процессоры
дополняют вспомогательными схемами, обеспечивающими связь с внешними
аналоговыми и цифровыми устройствами, подключение внешней памяти и
межпроцессорное
взаимодействие.
Система команд
и
архитектура
ориентированы на решение задач цифровой обработки сигналов. Примером
сигнального процессора может служить семейство TMS320 фирмы Texas
Instrument. В настоящее время сменилось уже 5 поколений процессоров от
простейшей (базовой 3210) до сложной 320С50. Совершенствование
процессоров шло по пути увеличения тактовой частоты и, соответственно,
уменьшения времени преобразования, повышения разрядности и объема
внутренней встроенной памяти, использования формата данных с плавающей
запятой. Так время выполнения алгоритма ПИД-регулятора у первого поколения
процессоров занимало 2.2 мксек, а у пятого -0.49 мксек. Процессоры,
предназначенные для обработки данных в формате с плавающей и
фиксированной запятой, имеют встроенное масочное ПЗУ, встроенное ОЗУ,
таймеры, порты параллельного и последовательного ввода-вывода, кэш 64 слова
и две шины: главную и расширения. Процессор имеет также аппаратный
умножитель, что позволяет выполнять умножение за один командный цикл.
Формат данных -32 разряда, адреса - 24, что позволяет адресовать до16М
памяти.
165
13. ПРОМЫШЛЕННОЕ ОБОРУДОВАНИЕ ДЛЯ ЦИФРОВЫХ СИСТЕМ
УПРАВЛЕНИЯ
13.1. Оборудование для централизованных систем управления
13.2. Оборудование для распределенных систем сбора данных
и управления
13.3. Прикладное программное обеспечение
В настоящее время цифровые системы управления и контроля почти
полностью вытеснили аналоговые системы. На рынке средств управления и
контроля существует множество фирм производителей оборудования и
программного обеспечения для построения систем сбора данных и управления
технологическими объектами.
Цель главы – ознакомление с основной номенклатурой выпускаемых
устройств для построения цифровых систем управления и сбора данных.
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ НЕОБХОДИМО ЗНАТЬ
основную номенклатуру цифровых устройств, предназначенных для сбора
данных и управления,
назначение, использование и области применения устройств.
Одной из наиболее продвинутых фирм в России на рынке оборудования для
автоматизации технологических процессов является фирма Advantech, на примере
которой рассмотрим номенклатуру изделий более подробно. Все выпускаемое
оборудование можно условно разделить на группы по назначению и области
применения.
13.1. Оборудование для централизованных систем управления
13.1.1. Персональные компьютеры для целей управления
Они выполняются в виде плоского устройства с вмонтированным
монохроматическим или цветным жидкокристаллическим индикатором на основе
активной матрицы, которая занимает всю переднюю панель. Предлагается
большая номенклатура устройств с различной комбинацией типов процессоров,
индикаторных
панелей
и
интерфейсов.
В
их
основе
лежит
высокоинтегрированные одноплатные компьютеры на базе различных
процессоров от Pentium ММХ до Intel 386SX-40. Они имеют отсеки для
установки накопителей на магнитных дисках , интерфейсы для подключения
НГМД и НЖМД, приводы CD-ROM, несколько последовательных и
параллельный порт, выход для подключения внешней клавиатуры. Для
расширения функциональных возможностей снабжаются гнездами расширения
PCI или ISA плат и имеют контроллер сети Ethernet. Могут быть оснащены
166
сенсорным экраном. При монтаже вставляются в раму. Типичные размеры от
375*285*93мм до 197*142*63мм.
13.1.2. Промышленные рабочие станции
Промышленная рабочая станция представляет собой ЭВМ с клавиатурой,
размещенные в едином корпусе и удовлетворяющие требованиям на защиту от
вредных внешних условий среды: пыли, влаги, доступу посторонних лиц,
введению инородных тел. Станции предназначены для применения в заводских
цехах при монтаже в стойки. Для дешевизны часто используют в качестве
индикатора электронно-лучевые трубки. Клавиатура встраивается в переднюю
панель. Станция выполнена на основе
расширительной
объединительной
платы, имеющей до 10 слотов разных
КЛАВИтипов (ISA,PCI, CPU) для подключения
АТУРА
ЭЛТ
платы процессора и плат расширения.
Могут снабжаться накопителями на
гибких и жестких магнитных дисках.
Клавиатура имеет, кроме рабочих
ПАНЕЛЬ
клавиш ввода данных и функциональных
УПРАВЛ.
ФУНКЦ. КЛАВИАТ.
клавиш, еще программируемые клавиши
микрокоманд. Типичный вид станции
представлен на рисунке 13.1.
Рис.13.1. Вид станции
Примером может служить AWS825P,
в
которой
пассивная
объединительная плата имеет кроме гнезда процессора еще 4 ISA и 2 PCI слота
(гнезда разъема). Станция имеет накопитель на ГМД и 15" цветной монитор,
НЖМД может быть установлен по заказу. Габариты - 482*450*356мм.
Другой пример - MIPC-50CT - малогабаритная рабочая станция. Она не
имеет встроенной клавиатуры, но по заказу может быть установлен сенсорный
экран. Станция имеет 4 гнезда ISA расширения, монохромный ЖКИ, НГМД.
НЖМД устанавливается по заказу. В станции используются платы ISA
половинного формата. Размер 344*260*152.
13.1.3. Шасси для IBM совместимых промышленных компьютеров
Они представляют собой металлические корпуса, обеспечивающие
повышенную защиту плат компьютера, установленных внутри, от вредных
условий цехов. Корпуса имеют объединительную плату и источник питания для
процессорной платы и плат расширения. В них предусмотрены места для НГМД и
НЖМД в ударопрочных отсеках. Объединительные платы имеют от 6 до 20
слотов расширения, куда устанавливаются плата процессора и платы связи с
объектами управления. Габариты: от 482*267*457 до 215*186*158мм.
167
13.1.4. Модульные промышленные компьютеры MIC-2000
Серия представляет собой семейство высокопрочных промышленных
компьютеров на базе IBM PC совместимых систем. В основе лежит технология
пассивной объединительной платы с магистралью ISA, что обеспечивает создание
модульной конструкции, облегчающей использование и модернизацию системы
путем замены периферийных и
процессорных модулей. Система
1 2 3 4 5 6 7 8
подобна "Ремиконту". Использование
СМЕННЫЕ БЛОКИ
БЛОК
фронтального
подключения
ПРОЦЕССОРА
ПИТАНИЯ
обеспечивает
непосредственный
И УСТРОЙСТВ
доступ к линиям ввода-вывода. Блок
ВВОДА-ВЫВОДА
питания имеет выходные клеммы,
расположенные на передней панели.
Процессорные модули на базе Pentium
или i486 имеют видеоподсистему с
РИС.13.2. MIC-2000
поддержкой
ЭЛТ
или
ЖКИ,
последовательные и параллельный интерфейсы, интерфейсы НЖМД и
сторожевой таймер. Для расширения имеются модули контроллеров НГМД и
НЖМД со встроенными накопителями. Для построения распределенных систем
имеются модули интерфейсов RS-232/RS-485, интерфейса CAN и адаптер
Ethernet. Сбор данных и управление выполняют модули: 16/32 канальные модули
дискретного ввода-вывода, 16-канальный АЦП, 4-канальный ЦАП. Для
управления движением механизмами выпускаются модули 2 и 4-координатного
управления.
13.1.5. Процессорные платы
Существует большая номенклатура процессорных плат предназначенных
для установки в промышленные рабочие станции и шасси. Они выполнены на
базе различных процессоров от Intel 386SX до Pentium MMX и имеют типы шин
PCI/ISA или ISA. Высокоинтегрированные платы обеспечивают высокую
надежность по отношению к ударам и вибрациям. Выполняются в полном и в
половинном размере. Они могут иметь сторожевой таймер, интерфейсы НГМД и
НЖМД, твердотельный диск, несколько последовательных и параллельный порт,
систему самодиагностики. Твердотельные диски позволяют реализовать
самозагружаемые бездисковые системы. Встроенный сторожевой таймер
автоматически перезагружает систему в случае ее "зависания". Светодиоды
самодиагностики облегчают процесс монтажа и обслуживания.
13.1.6. Устройства для сбора данных и управления
В настоящее время фирмы выпускают большое количество аппаратных
средств (плат расширения), устанавливаемых в IBM PC совместимые
компьютеры, для сбора, обработки и анализа аналоговых и дискретных сигналов
от первичных преобразователей (датчиков) и для управления исполнительными
устройствами. Для каждого устройства имеется программное обеспечение или/и
168
драйверы. Номенклатура плат столь обширна, что перекрывает практически
любые запросы потребителей. Приведем некоторые примеры.
PCL-818HG- плата АЦП с возможностью прямого измерения сигналов
термопар. Плата имеет 16 униполярных или 8 дифференциальных входа. В
комплект поставки входит клеммная плата со схемой компенсации холодного
спая термопар, что позволяет измерять непосредственные сигналы термопар без
устройств нормализации сигналов. Устройство имеет буфер на 1000 значений
АЦП и может обеспечить частоту выборки 100Кгц.
PCL-812PG- многофункциональная плата сбора данных. Плата имеет 16
каналов АЦП, 2 канала с ЦАП, 16 дискретных входа и 16 дискретных выхода,
программируемый таймер-счетчик. Возможна передача данных по прерыванию и
по каналу DMA (Direct Memory Access )
PCL-722 - 144 канальная плата ввода-вывода. Реализована на ППИ 8255 в
режиме 0.
PCL- 725 - плата дискретного ввода-вывода с релейными выходами. Она
имеет 8 опто-изолированных каналов дискретного ввода и 8 каналов вывода,
использующих электромагнитные реле с переключающим контактом. Каждое
реле на плате имеет светодиодный индикатор состояния для облегчения отладки.
Нагрузка до 1а при напряжении постоянного тока 30В и до 0.5а при 120в
переменного тока.
Выпускаются также платы и модули для нормализации и коммутации
аналоговых сигналов.
Следует также отметить множество плат последовательных интерфейсов
различных типов для реализации сетей. Все платы снабжены драйверами под
DOS и WINDOWS.
Интерфейс RS-232 предназначен для соединения 2 устройств. Передатчик
одного соединен с приемником другого, что обеспечивает полнодуплексный
режим обмена. Для управления подключенным устройством можно использовать
дополнительные линии порта или специальные символы, добавляемые к
сообщениям.
Стандарт RS-422 использует симметричную линию связи (витая пара) и
обеспечивает работу на расстоянии до 1200м. Каждый передатчик может быть
нагружен на несколько приемников. Полный дуплекс реализуется с двумя
линиями витой пары.
RS - 485 - наиболее распространенный в промышленности стандарт,
использующий
симметричную
двухпроводную
линию
связи
для
двунаправленного обмена. Он позволяет строить сети с числом абонентов до 32 и
протяженностью до 1200м. Система связи работает в полудуплексном режиме и
передача данных идет по одной витой паре проводов.
CAN - специально разработанный интерфейс для соединения между собой
датчиков, контроллеров и исполнительных механизмов. Интерфейс обеспечивает
режим обмена по витой паре в реальном масштабе времени благодаря
возможности инициативной передачи сообщений. Он имеет протокол с
коррекцией ошибок. Протяженность линии связи - до 1000м, число передатчиков
- 64, приемников - 64.
169
13.2. Оборудование для распределенных систем сбора данных и
управления
Серия приборов ADAM-5000 и ADAM-4000 предназначена для создания
распределенных систем сбора данных и управления на основе стандарта
последовательного интерфейса RS-485, а также промышленного интерфейса CAN
(Controller Area Network). Приборы обеспечивают гальванически изолированный
ввод-вывод аналоговых сигналов, дискретный ввод-вывод, релейный вывод.
Приборы позволяют организовать многоточечные промышленные сети,
управляемые центральным компьютером, в которых не требуется мгновенная
реакция на события связанные с контролируемым объектом.
13.2.1. Модули удаленного сбора данных и управления ADAM-5000
Серия ADAM-5000 представляет собой аппаратно-программный комплекс,
предназначенный для сбора информации о территориально-распределенном
контролируемом объекте, первичной обработки данных путем фильтрации и
нормализации аналоговых и дискретных сигналов, выдачи управляющих
воздействий на объект и обмена данными с центральной ЭВМ (Рис.13.3.).
Устройства серии (до 256) объединяются в многоточечную сеть на основе
симметричной двухпроводной линии связи (витая пара, радиоканал). Каждое
ЭВМ
ВИТАЯ ПАРА
ADAM5000
ПОВТОРИТЕЛЬ
ADAM5000
ADAM5000
ADAM5000
ADAM5000
ADAM5000
К объектам управления
13.3. Распределенная система управления
устройство имеет свой идентификационный номер, устанавливаемый
переключателями. Каждое устройство может обеспечить локальное
двухпозиционное регулирование независимо от ЭВМ.
Устройства осуществляют прием и дешифрацию команд от ЭВМ по
последовательному каналу связи,
ввод и вывод аналоговых и дискретных
сигналов, автоматическую проверку работоспособности. Имеется возможность
дистанционной настройки аварийных уставок и параметров
шкалы
измерительных каналов.
Устройства серии реализованы на процессоре 80188 и состоят из модуля
процессора и сменных модулей ввода-вывода. Внешний вид представлен на
рисунке 13.4..
170
Модуль процессора имеет ОЗУ и
ПЗУ по 256Кбайт, выполняется в
1
2
3
4
разных
модификациях.
Имеет
ПРОЦЕС- СМЕННЫЕ БЛОКИ
сторожевой таймер и часы, входы
235
СОР
RS-232/485 и обеспечивает обмен со
ВВОДА-ВЫВОДА
скоростью 1200-115200 бит/сек.
h= Имеются модули преобразования RS75 232/CAN (Controller Area Network)
обеспечивающие связь до 1000м.
Имеются сменные модули: 8-ми
канального аналогового ввода, 7-ми
235
канального ввода сигналов термопар,
Рис.13.4. Модуль ADAM-5000
4-х канального аналогового вывода,
16-канального дискретного ввода, 16-канального вывода, 6-канальный модуль
релейной коммутации.
Для надежного автономного функционирования в промышленных условиях
выпускается программируемый микроконтроллер серии ADAM-5510. Он подобен
устройствам серии 5000, но еще имеет встроенную операционную систему,
которая совместима с MS-DOS, что позволяет программировать на языках
высокого уровня. Правда, перед записью программы в ПЗУ ее необходимо
преобразовать в коды процессора 80188 с помощью сервисной программы.
Устройство допускает до 64 каналов дискретного ввода-вывода о да 32 каналов
аналогового ввода.
Для реализации сети на основе промышленной шины CAN выпускается
модификация ADAM-5000/CAN. Для преобразования интерфейса RS-232 в CAN
выпускается преобразователь.
13.2.2. Модули удаленного сбора данных и управления ADAM-4000
Модули серии ADAM-4000 являются малогабаритными интеллектуальными
многофункциональными устройствами связи с объектами, разработанными для
применения в промышленных условиях эксплуатации. Встроенный
микропроцессор обеспечивает функции ввода-вывода аналоговых и дискретных
сигналов, с последующей их фильтрацией и нормализацией и преобразованием в
форму, принятую для передачи по последовательному каналу. В модулях
реализована функция удаленной программной настройки диапазона принимаемых
аналоговых сигналов. Модули серии объединяются в многоточечную сеть на базе
управляющего компьютера. Устройства серии ADAM-4000 объединяются в сеть
на базе стандарта RS-485, который является одним из наиболее распространенных
промышленных стандартов последовательной двунаправленной передачи данных
по симметричной двухпроводной линии связи. Управление сетью осуществляется
центральным компьютером путем передачи команд и приема ответных
сообщений от модулей. Команды и данные передаются в символьном коде т.е. в
кодах ASCII.
171
60
СЕТЕВОЙ
РАЗЪЕМ
112
h=25
КЛЕММНАЯ
КОЛОДКА
Рис.13.5. ADAM-4000
Серия ADAM-4000 подобна серии ADAM5000,
но
ее
модули
имеют
меньшие
функциональные возможности и выполнены в
другом конструктиве. Так модуль ADAM-4018
имеет 6 дифференциальных и два униполярных
каналов аналогового ввода и позволяет подключать
непосредственно термопары. Модуль ADAM-4016
имеет 1 канал аналогового вывода. ADAM-4050
имеет 7 каналов дискретного ввода и 8 вывода, а
ADAM-4060 имеет 4 контакта реле. Все модули
имеют сторожевой таймер.
Вид модуля
представлен на рисунке 13.5.
13.3. Прикладное программное обеспечение
Фирма поставляет полный набор программного обеспечения, включая
драйверы и пакеты разработки прикладных программ, которые позволяют
создавать приложения сбора данных и управления без привлечения
профессиональных программистов. Следует выделить пакет разработки GENIE,
который является средой разработки и исполнения программного обеспечения
сбора данных и управления, с помощью которого можно решать задачи
автоматизации любой сложности. GENIE является инструментальной средой
разработки приложений сбора, обработки, графического представления данных и
управления, которая содержит множество встроенных функциональных блоков и
графических элементов отображения. Разработка приложения заключается в
выборе соответствующих функциональных блоков, установлении связей между
ними и создании из блоков графического интерфейса оператора. Это позволяет
сократить затраты на разработку системы.
Фирмой выпущен также пакет расширения Visual Basic DAQVBX
представляющий набор специализированных элементов управления для Microsoft
Visual Basic. Он позволяют добавить в панель инструментов элементы управления
и тем самым организовать программный интерфейс с модулями ввода-вывода.
Это существенно облегчит задачу построения системы управления.
Другие фирмы, наряду с аппаратными, производят и поддерживающие их
программные средства, обеспечивающие построение систем автоматизации.
Примером может служить распространенная система Trace Mode.
172
ЗАКЛЮЧЕНИЕ
Микропроцессорная техника является наиболее обширной и динамично
развиваемой областью знаний. Развитие микропроцессорной техники идет в
направлении повышения степени интеграции, увеличения объемов памяти,
усовершенствования архитектуры и скорости обмена данными с целью
повышения производительности и расширения функциональных возможностей
микропроцессорных устройств. Наряду с устройствами общего применения
получают развитие и специализированные устройства, ориентированные на
решение специальных задач обработки сигналов и управления. Ведется
разработка новых интерфейсов со своими протоколами обмена для повышения
скорости обмена и помехозащищенности. Это позволяет реализовывать
разнообразные сети микропроцессорных устройств и распределенные с истемы
сбора данных и управления.
В пособии и одном курсе невозможно рассмотреть все типы устройств, их
архитектуру, интерфейсы и протоколы обмена.
Поэтому круг вопросов, рассмотренных в пособии, ограничен изложением
основных принципов построения микропроцессорных устройств, реализующих
принципы микропрограммного и программного управления, начиная от
микропрограммного автомата и микропрограммируемых контроллеров и до
процессоров типа Pentium.
Большое внимание в пособии уделено вопросам построения устройс тв
сопряжения микропроцессорных устройств с объектами управления, что особенно
важно для инженеров по автоматизации технологических процессов. Несмотря на
то, что рассмотрены только некоторые интерфейсы, изучение протоколов обмена
в них поможет освоить и более сложные интерфейсные устройства.
Рассмотренные принципы организации работы микропроцессорных систем
в реальном масштабе времени особенно необходимы для построения систем
автоматического управления.
Пособие следует рассматривать как базовый курс являющейся основой для
дальнейшего изучения микропроцессорной техники в необходимом для работы
направлении.
Успешное изучение МП техники является необходимым условием
разработки, освоения и эксплуатации цифровых систем управления
технологическими процессами.
173
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Баранов С.И., Синев В,Н, Автоматы и программируемые матрицы. Минск:Вышэйш. Школа, 1980.-135с.
2. Баранов С.И. Синтез микропрограммных автоматов. - Л.: Энергия. 1974.216с.
3. Калабеков Б. А. Микропроцессоры и их применение в системах передачи
и обработки .сигналов: Учеб. пособие для вузов. -М. : Радио и Связь, 1988.
- 368 с.
4. Щелкунов Е. II. , Дианов А. П. Микропроцессорные средства и системы,
-М.: Радио и связь, 1989.- 288 с.
5. Хвощ С. Т., Варлинский Н.Н.,
Попов Е. А. Микропроцессоры и
микроЭВМ в системах автоматического управления, Справочник. –Л.:
Машиностроение, 1987.-640с
6. Немнюгин С.А. Turbo Pascal: -СПб.: Питер, 2000. - 496 с.
7. Новиков Ю.В., Калашников О.А., Гуляев С.Э. Разработка устройств
сопряжения для персонального компьютератипа IBM PC, -М.: ЭКОМ,
1997.- 224 с.
8. Пей Ан. Сопряжение ПК с внешними устройствами: Пер. с англ. –М.: ДМК
Пресс, 2003.-320с
9. Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC/
Под ред. У. Томпкинса иДж. Уэбстера: Пер. с англ. –М.:Мир, 1992.- 592с.
10. Нортон П. Программно-аппаратная организация IBM PC: Пер. с англ. –М.:
Радио и связь, 1991.- 368с.
11. Гук М. Процессоры Pentium II, Pentium Pro и просто Pentium – СПб: ЗАО
“Издательство ”Питер”, 1999.-288 с.
12. Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.М.: Высш. Шк., 1992.- 447 с.
13. Джордейн Р. Справочник программиста персональных компьютеров типа
IBM XT и AT: Пер с англ. – М.: Финансы и статистика, 1992 – 544 с.
14. Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.М.: Высш. Шк., 1992.- 447 с.
15. Турбо Паскаль 7.0 – К.: Торгово-издательское бюро BHV, 1995-448с.
16. Марченко А.И., Марченко Л.А. Программирование а среде Турбо Паскаль
7.0 –М.: Бином Универсал, К.: ЮНИОР, 1997.-496 с.
17. Мячев А.А. Интерфейсы средств вычислительной техники: Справочник. М.: Радио и связь,1993.-352с.
18. Уинн Л. Рош Библия по техническому обеспечению Уинна Роша -Мн.:
МХХК "Динамо", 1992-416с.
19. В.В.Сташин, А.В. Урусов, О.Ф. Мологонцева Проектирование цифровых
устройств
на
однокристальных
микроконтроллерах.
М.:Энергоатомиздат,1990.-224с.
174
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ………………………………………………………...……. введение
1.
МИКРОПРОГРАММНЫЕ АВТОМАТЫ …………………...….. глава 1
1.1 Автомат без памяти ……………………………………………...… пункт 1.1
1.2 Микропрограммный автомат ………………………………… …. пункт 1.2
1.3 Схемная реализация микропрограммных автоматов …….…..….. пункт 1.3
2.
МИКРОПРОГРАММИРУЕМЫЕ КОНТРОЛЛЕРЫ И
МИКРОПРОЦЕССОРЫ ……………………………………..…… глава 2
2.1 Блок микропрограммного управления ………………………..…. пункт 2.1
2.2 Блок обработки цифровых данных ………………………….….….. пункт 2.2
3.
ПРИНЦИПЫ ОРГАНИЗАЦИИ ЭВМ …………………….….…. глава 3
3.1 Выполнение команд в ЭВМ ………………………………………. пункт 3.1
3.2 Общие принципы организации ввода-вывода ………………….. пункт 3.2
4.
АРХИТЕКТУРА ОДНОКРИСТАЛЬНОГО
МИКРОПРОЦЕССОРА …………………………………….……… глава 4
4.1 Архитектура микропроцессора К580ИК80А ……………….……. пункт 4.1
4.2 Организация обмена в однокристальных микроЭВМ …………… пункт 4.2
5.
СИСТЕМЫ СЧИСЛЕНИЯ И АРИФМЕТИЧЕСКИЕ
ОПЕРАЦИИ НАД ЧИСЛАМИ ………………………….………. глава 5
5.1. Системы счисления для представления чисел в ЭВМ …………. пункт 5.1
5.2. Представление в ЭВМ целых двоичных чисел без знака ………. пункт 5.2
5.3. Представление в ЭВМ целых чисел со знаком ………………….... пункт 5.3
5.4. Двоично-десятичная система представления чисел …………….… пункт 5.4
5.5. Представление чисел в формате с плавающей точкой …………… пункт 5.5
6.
СЕМЕЙСТВО ПРОЦЕССОРОВ Х86 …………………………... глава 6
6.3 Архитектура процессора 8086 ……………………………….…….. пункт 6.1
6.4 Процессоры 80286 …………………………………………..……… пункт 6.2
7.
ШИНА ISA И ИНТЕРФЕЙСЫ СОПРЯЖЕНИЯ С
УСТРОЙСТВАМИ УПРАВЛЕНИЯ ………………………… глава 7
7.1 Конструкция шины ISA ……………………………………………. пункт 7.1
7.2 Проектирование устройств сопряжения для шины ISA ………… пункт 7.2
8.
ИНТЕРФЕЙС CENTRONICS …………………………………….... глава 8
8.1 Порядок обмена по интерфейсу Centronics ………………………. пункт 8.1
8.2 Программируемый параллельный интерфейс ( ППИ) ………….. пункт 8.2
9.
ОБМЕН ДАННЫМИ ПО ИНТЕРФЕЙСУ RS-232 ……………... глава 9
9.1. Назначение линий связи RS-232 …………………………………… пункт 9.1
9.2. Подключение модема к RS-232 ……………………………………. пункт 9.2
9.3. Подключение терминалов к RS-232 ………………………….... пункт 9.3
9.4. Подключение удаленных объектов управления …………………... пункт 9.4
9.5. Назначение портов RS-232 ……………………………………….… пункт 9.5
175
10. ОТСЧЁТ РЕАЛЬНОГО ВРЕМЕНИ В ЭВМ ………….…...… глава 10
10.1. Программируемый таймер ………………………………….……. пункт 10.1
10.2. Программируемый контроллер прерываний …………………… пункт 10.2
10.3. Прерывания в IBM PC …………………………………………….. пункт 10.3
10.4. Отсчёт реального времени в ЭВМ ……………………………..… пункт 10.4
10.5. Процедуры и функции для работы с прерываниями ……...…… пункт 10.5
11. 32-РАЗРЯДНЫЕ ПРОЦЕССОРЫ И PENTIUM ………..…….... глава 11
11.1. Архитектура 32-разрядных процессоров ……………………..… пункт 11.1
11.2. Страничное управление памятью …………………… …… пункт 11.2
11.3. Кэширование памяти ………………………………………..…… пункт 11.3
12. ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ ……..…….. глава 12
12.1. Однокристальный микроконтроллер К1816 …………………….. пункт 12.1
12.2. AVR микроконтроллеры ……………………………….………… пункт 12.2
12.3. Процессоры обработки сигналов ………………………………… пункт 12.3
13. ПРОМЫШЛЕННОЕ ОБОРУДОВАНИЕ ДЛЯ ЦИФРОВЫХ СИСТЕМ
УПРАВЛЕНИЯ …………………………… глава 13
13.1. Оборудование для централизованных систем управления ……… пункт 13.1
13.2. Оборудование для распределенных систем
сбора данных и управления ………………………………………. пункт 13.2
13.3. Прикладное программное обеспечение …………………………… пункт 13.3
ЗАКЛЮЧЕНИЕ ……………………………………………………...….. заключение
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ……………… библиографический список
Документ
Категория
Без категории
Просмотров
49
Размер файла
1 365 Кб
Теги
700
1/--страниц
Пожаловаться на содержимое документа