Назад
Министерство образования Российской Федерации
Государственное образовательное учреждение высшего профессионального
образования «Комсомольский - на - Амуре государственный технический университет»
Институт дистанционного образования
Государственное образовательное учреждение высшего профессионального
образования «Комсомольский - на - Амуре государственный технический университет»
В.А. Егоров
ОСНОВЫ МИКРОПРОЦЕССОРНЫХ
СИСТЕМ УПРАВЛЕНИЯ
Ученым советом Государственного образовательного учреждения высшего
профессионального образования «Комсомольский - на - Амуре государственный
технический университет»
Комсомольск-на-Амуре 2002
Первый элемент
нулевой ячейки
Ячейка с адресом 2
УДК 681.325.5-181.4(075)
ББК 32.973.26я7
Е 302
Егоров В.А.
Е 302 Основы микропроцессорных систем управления: Учебно-методическое пособие.
Комсомольск-на-Амуре: Государственное образовательное учреждение высшего
профессионального образования «Комсомольский-на-Амуре государственный
технический университет», 2002. – 61 с.
Кратко изложены вопросы аппаратной организации основных узлов цифровой
микросхемотехники, необходимые для успешного освоения микропроцессорной
техники и её использования в управляющих системах.
Предназначено для студентов заочной формы обучения.
ББК 32.973.26я7
© Государственное образовательное учреждение
высшего профессионального образования
«Комсомольский–на–Амуре государственный
технический университет», 2002
© Институт дистанционного образования
Государственное образовательное учреждение
высшего профессионального образования
«Комсомольскийа-Амуре государственный
технический университет», 2002
Первый элемент
нулевой ячейки
Ячейка с адресом 2
ВВЕДЕНИЕ
Бурное развитие технологий изготовления цифровых интегральных схем,
характерное для конца двадцатого века, привело к появлению микропроцессоров
(процессоров выполненных на одном кристалле кремния), а затем и однокристальных
микроЭВМ. Малогабаритные и недорогие (от одного доллара США) эти устройства
стали широко использоваться при реализации электронных схем, всё более и более
тесня своих аналоговых собратьев. В результате на сегодняшний день трудно найти
современную систему управления, выполненную на базе аналоговых электронных
элементов. МикроЭВМ встраиваются в бытовую технику, автомобильную технику и
даже в игрушки. Управляющие системы на производстве организованы в
иерархические вычислительные сети с суперЭВМ на верхнем уровне и локальными
управляющими контроллерами – на нижнем.
Такое положение вещей не могло не привести к соответствующей корректировке
программы обучения специалистов по автоматизации технологических процессов и
производств. В программе появились курсы, знакомящие: с цифровой
микросхемотехникой; принципами организации и функционирования
микропроцессорных систем; дающие навыки программирования и практического
использования микропроцессоров. К ним и относится данный курс «Основы
микропроцессорных систем управления».
Микропроцессорная система управления или микроконтроллер представляет
собой совокупность программно-аппаратных средств, поэтому специалист по
цифровым системам управления – это, прежде всего, специалист по программированию
и цифровой электронике. Этим и обусловлен круг вопросов, рассматриваемых в данном
пособии. В главах один и два рассмотрены способы представления и кодирования
информации в ЭВМ. В третьей главе изложены математические основы построения
цифровых схем (алгебры Буля). Четвертая глава посвящена описанию типовых узлов
цифровой микросхемотехники. В пятой главе рассмотрены принципы организации
микропроцессоров.
Таким образом, данный курс является вводным в блоке дисциплин, посвящённых
использованию микропроцессоров в системах управления, и содержит сведения об
аппаратных средствах.
Хотелось бы выразить благодарность людям, в разное время работавшим на
кафедре ЭПиАПУ КнАГТУ и участвовавшим разработке базовой концепции данного
курса и учебноетодического обеспечения - доцентам Прокопову А.А. и Мурашко Ю.П.,
а также студентам специальности 210100 «Управление и информатика в технических
системах», внесших посильный вклад в проработку отдельных вопросов и создание
рукописи, и в частности Урасову Д.
Автор
Первый элемент
нулевой ячейки
Ячейка с адресом 2
3
1. СИСТЕМЫ СЧИСЛЕНИЯ ЦИФРОВЫХ ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВ
1.1. Понятие о позиционных системах счисления
Под системой счисления понимается способ представления любого числа
посредством некоторого алфавита символов, называемых цифрами. Существуют
различные системы счисления.
Римская система счисления является примером очень сложного способа записи
чисел и имеет громоздкие правила арифметических действий. Число 35 в этой системе
счисления будет записываться: ХХХУ. Такая система счисления называется
непозиционной, так как цифры здесь всегда имеют одно и то же значение независимо
от того, на каком месте они стоят (Х в римской системе счисления всегда обозначает
десяток).
Система счисления называется позиционной, если одна и та же цифра имеет
различные значения, определяемые позицией цифры в последовательности цифр,
изображающей число. Эти значения меняются в зависимости от позиции, занимаемой
цифрой, по некоторому закону. Примером такой системы счисления является
десятичная система, используемая в повседневной жизни. В числе двести двадцать два
222 крайняя справа двойка обозначает две единицы, в середине - два десятка,
крайняя слева - две сотни.
Количество P различных цифр, употребляемых в позиционной системе,
называется её основанием. Эти цифры обозначают P целых чисел от 0 до P -1. В
десятичной системе используются десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
следовательно, эта система имеет основанием число десять.
В общем случае в позиционной системе с основанием P любое число X может
быть представлено в виде полинома от основания P:
,PaPaPaPaX
0
0
1
1
1n
1n
n
n
(1)
где в качестве коэффициентов
i
a
могут стоять любые из P цифр, используемых в
системе счисления.
Принято представлять числа в виде последовательности соответствующих
выражению (1) цифр:
...a,aaaaX
1011nn
В этой последовательности запятая отделяет целую часть числа от дробной
(коэффициенты при положительных степенях, включая нуль, от коэффициентов при
отрицательных степенях). Запятая опускается, если нет отрицательных степеней.
Позиции цифр, отсчитываемые от запятой, называют разрядами. В позиционной
системе счисления значение каждого разряда больше значения соседнего справа
разряда в число раз, равное основанию системы P.
С учетом сказанного, в десятичной системе счисления запись 6097.108 означает
число:
.108100101107109100106
3210123
В цифровой автоматике и вычислительных машинах применяют позиционные
системы счисления с недесятичным основанием: двоичную, восьмеричную и
шестнадцатеричную. В дальнейшем для обозначения используемой системы счисления
будем заключать число в скобки и в индексе указывать основание системы счисления.
Первый элемент
нулевой ячейки
Ячейка с адресом 2
4
1.1.1. Двоичная система счисления
В двоичной системе счисления используются только две "двоичные" цифры: 0 и
1. Любое число в этой системе может быть представлено последовательностью двоич-
ных цифр, что согласно (I) соответствует сумме степеней числа 2, взятых с
коэффициентами, равными 0 или 1. Например:
.21212021212021)1,101101(
1012345
2
Вычисление этой суммы в десятичной системе счисления даёт десятичное
значение числа
.
Применение двоичной системы счисления создает большие удобства при
проектировании цифровых систем управления, обработки и передачи информации, так
как для представления разряда двоичного числа может быть использован любой
простой элемент, имевший всего два устойчивых состояния, например реле или
триггерные схемы. Другим важным достоинством двоичной системы является простота
двоичной арифметики, двоичные числа часто встречаются в технической литературе и
могут использоваться в языках высокого уровня, таких, как «Си», «Паскаль» и т.д.
Иногда для их отличия от чисел, представленных в других системах счисления, после
цифр ставится буква В (от английского слова Binary). Например:
B101,101101)101,101101()625,45(
210
При программировании микропроцессоров и микроЭВМ часто возникает
необходимость писать большие массивы двоичных чисел, но большое количество
разрядов и однообразие символов служат источником ошибок программистов, поэтому
для записи двоичных чисел широко применяются восьмеричная и шестнадцатеричная
системы счисления. Основания этих систем кратны основанию двоичной системы
счисления, что обеспечивает удобство преобразования из одной системы счисления в
другую. Обычно это выполняется для целых чисел, поэтому дроби рассматривать в
дальнейшем не будем.
1.1.2. Восьмеричная система счисления
В восьмеричной системе счисления используются восемь цифр: 0, 1, 2, 3, 4. 5,
6, 7. Любое число в восьмеричной системе представляется последовательностью этих
цифр. Восьмеричное число также может быть представлено полиномом (1) с
разложением по степеням основания 8. Например:
.)451(838087)703(
10
012
8
1.1.3. Шестнадцатеричная система счисления
В шестнадцатеричной системе для изображения чисел используют 16 знаков,
которые изображаются десятью десятичными цифрами и шестью латинскими буквами:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A , B, С, D, E, F. Существуют и другие формы записи
шестнадцатеричных цифр, но такая используется чаще. В этой форме - буквы
используются для обозначения цифр, больших 9: А соответствует десятичному числу
10, В -десятичному числу 11, С - 12, D - 13, E - 14, F - 15. В шестнадцатеричной
системе счисления любое число записывается последовательностью
шестнадцатеричных цифр, и оно тоже может быть представлено полиномом ( 1) с
разложением по степеням основания 16. Вычисление этого полинома в десятичной
системе счисления позволяет получить десятичное значение данного числа. Например:
Первый элемент
нулевой ячейки
Ячейка с адресом 2
5
.)2862(141622561116141621611)E2B(
10
012
16
Для того чтобы отличать восьмеричные и шестнадцатеричные числа от записи
чисел в других системах счисления, иногда используют буквенное обозначение. В
конце восьмеричного числа добавляют букву Q (от английского octal), а в конце
шестнадцатеричного числа букву Н (от английского hexadecimal). Например: число
8
(217)
может быть записано 217Q и число
16
(1FC3)
может быть записано 1FC3H.
1.2. Перевод чисел из одной системы счисления в другую
1.2.1. Перевод чисел из десятичной системы счисления в двоичную
В общем случае перевод целого числа из одной системы счисления в другую
выполняется по следующему принципу: для перевода целого числа из Р-системы
счисления в К-систему нужно последовательно делить это число и получаемые
частные на основание К новой системы, представленное в старой Р-системе, до тех
пор, пока частное не станет меньше К. Старшей цифрой в записи числа в К-системе
служит последнее частное, а следующие за ней цифры дают остатки, выписываемые в
последовательности, обратной их получению. Например, при переводе числа
10
(75)
в
двоичную систему получим:
75 2
74 37 2
1 36 18 2
1 18 9 2
0 8 4 2
1 4 2 2
0 -2 1 (75)
10
= (1001011)
2
0
Для обратного перевода из двоичной, восьмеричной, шестнадцатеричной систем
счисления в десятичную можно воспользоваться этим же правилом или
представлением числа в виде полинома (1) как это сделано в примерах.
1.2.2. Перевод чисел в двоичной, восьмеричной и шестнадцатеричной
системах счисления
Для перевода восьмеричного числа в двоичную систему счисления достаточно
заменить каждую цифру восьмеричного числа её представлением в двоичной системе
счисления (трехразрядным двоичным числом). Например:
2
8
)100011110110001010(
111
7
001
1
010
2
101
5
000
0
011
3)305217(
Таким же образом для перехода от шестнадцатеричной системы счисления к
двоичной каждая цифра шестнадцатеричного числа заменяется ее представлением в
двоичной системе счисления (четырехразрядным двоичным числом), например:
2
16
)10101001010111101100(
0101
5
1010
A
0010
2
1011
B
0111
7)5A2B7(
Первый элемент
нулевой ячейки
Ячейка с адресом 2
6
Для перехода от двоичной системы счисления к восьмеричной (или
шестнадцатеричной) поступают следующим образом: двигаясь влево, разбивают
разряды двоичного числа на группы по три (четыре) разряда. Затем каждую группу из
трех (четырех) двоичных разрядов заменяют соответствующей восьмеричной
(шестнадцатеричной) цифрой. Например, число 11111110010100011 при переводе в
восьмеричную систему счисления будет иметь вид:
8
2
)376243(
3
011
4
100
2
010
6
110
7
111
3
011)01000111111111001(
Это же число в шестнадцатеричной системе счисления имеет вид:
16
2
)3FCA1(
3
0011
A
1010
C
1100
F
1111
1
0001)01000111111111001(
1.3. Двоичная арифметика
Правила выполнения арифметических действий в двоичной системе счисления
определяются таблицами сложения, вычитания и умножения:
1 1 11 1 10 10 1 1
0 0 10 1 11 0 1
0 1 0 1 0 11 1 0
0 0 0 0 0 0 0 0 0
Правила арифметики для всех позиционных систем аналогичны, поэтому
сложение двух чисел в двоичной системе можно выполнить столбиком, начиная с
младшего разряда, подобно тому, как это делается в десятичной системе. В каждом
разряде в соответствии с таблицей двоичного сложения производится сложение двух
цифр слагаемых или двух этих цифр и 1, если имеется перенос из соседнего младшего
разряда. В результате получается цифра соответствующего разряда суммы и, возможно,
также единица переноса в старший разряд.
Выполнение операции вычитания в некоторых случаях требует заёма из старших
разрядов. При этом необходимо учитывать, что в двоичной системе счисления одна
единица старшего разряда равна двум единицам соседнего младшего разряда.
Умножение двоичных многоразрядных чисел производится путем образования
частичных произведений и последующего суммирования со сдвигом в соответствии с
разрядами множителя. При этом если в разряде множителя 0, то частичное
произведение равно нулю, если 1, то - равно множимому. Таким образом, операция
умножения многоразрядных двоичных чисел сводится к операциям сдвига и сложения.
Примеры выполнения арифметических операций над двоичными числами:
Первый элемент
нулевой ячейки
Ячейка с адресом 2
7
+
(1011011)
2
(111000)
2
(10010011)
2
--
(11001101)
2
(1011110)
2
(1101111)
2
*
(1011011)
2
(101)
2
+
1011011
+
0000000
1011011
(111000111)
2
Благодаря простоте правил двоичного сложения, вычитания и умножения
применение в ЭВМ двоичной системы счисления позволяет упростить схемы
устройств, выполняющих арифметические операции. При этом обычно аппаратно
реализуются простые операции, например сложение и вычитание целых чисел с
ограниченным числом разрядов. Для более сложных операций: сложения и вычитания
многоразрядных чисел с дробной частью, умножения и деления используются
подпрограммы, постоянно находящиеся в вычислительном устройстве.
1.4. Двоично-десятичный код
В случаях, когда цифровое устройство часто обменивается информацией с
человеком в привычной для него десятичной системе счисления (например: в
калькуляторах, счетчиках, устройствах ввода-вывода, цифровых приборах), используют
специальные коды, где десятичные цифры представлены посредством букв двоичного
алфавита (0 и 1). Такие коды называют двоично-десятичными или двоично-
кодированными десятичными числами.
Способов кодирования существует несколько. Одним из широко применяемых
является код 8421, в котором каждая цифра десятичного числа заменяется
соответствующим четырехразрядным двоичным числом так же, как и для
шестнадцатеричных чисел, но комбинации большие 9 не используются. Например,
число (19 205 463)
10
в двоично-десятичном коде имеет вид:
0011
3
0110
6
0100
4
0101
5
0000
0
0010
2
1001
9
0001
1
.
1.4.1. Арифметические действия над двоично-десятичными кодами
Арифметические действия над двоично-десятичными кодами происходят по
более сложным правилам, так как при описании каждого разряда десятичного числа
используются не все кодовые комбинации двоичного числа, что затрудняет
организацию переноса из разряда в разряд. В устройствах, использующих только
двоично-десятичные коды, операция переноса реализуется аппаратно. В ЭВМ, где
обрабатываются как двоичные, так и двоично-десятичные числа, используются
дополнительные операции.
При выполнении операции сложения одного разряда двух десятичных чисел
перенос возникает, если их сумма больше девяти, а в двоичной тетраде (четырех
разрядах двоичного числа) перенос будет, если число больше 15. Поэтому если при
сложении одного разряда двух двоично-десятичных кодов на двоичном сумматоре
сумма получилась больше 9 или есть перенос, то к этому разряду прибавляют ещё
число 6 (дополнение до полной кодовой комбинации 15). При этом выполняется
Первый элемент
нулевой ячейки
Ячейка с адресом 2
8
перенос в старшую тетраду, а в тетраде складываемого разряда получается число,
соответствующее десятичному сложению. И так поступают с каждым разрядом
двоично-десятичного кода.
Например, надо сложить два числа (79)
10
= (0111 1001) и (38)
10
= (0011
1000) в двоично-десятичном коде.
Складываем младший разряд: 1001 + 1000 = 0001 + перенос в следующий
десятичный разряд. Проводим десятичную коррекцию (прибавляем число (6) = 0110)
и получаем младший разряд суммы 0001 + 0110 = 0111.
Складываем числа следующего десятичного разряда и с учетом переноса
получаем: 0111 +0011 + 1(перенос) = 1011. Эта двоичная комбинация
соответствует числу, большему 9. Поэтому проводим десятичную коррекцию в этом
разряде: 1011 + 0110 = 0001 + (перенос в следующий разряд). В третьем разряде
слагаемые имеют цифру 0, с учетом переноса получим двоичный код 0001. Таким
образом, двоично-десятичный код суммы имеет вид:
10
)117(
7
0111
1
0001
1
0001
Наличие операций десятичной коррекции увеличивает время вычислений,
поэтому в ЭВМ десятичная арифметика используется редко. Чаще вводимые
десятичные числа переводятся в двоичную систему счисления и в этой системе
обрабатываются. При выводе происходит преобразование результата из двоичной
системы в десятичную.
1.5. Вопросы для повторения
1. Что называется системой счисления?
2. Что такое позиционная система счисления?
3. Что такое основание системы счисления?
4. Что такое разряд числа?
5. Какие системы счисления используют в цифровых устройствах?
6. Каковы достоинства двоичной системы счисления?
7. Когда применяется шестнадцатеричная и восьмеричная системы счисления?
8. Когда используется двоично-десятичный код?
2. ДВОИЧНЫЕ КОДЫ ПЕРЕДАЧИ ИНФОРМАЦИИ
И ЗАЩИТА ИХ ОТ ПОМЕХ
2.1. Стандартные коды обмена информацией
Применение алгоритмических языков для записи алгоритмов и автоматизации
программирования делает необходимым вводить в цифровые управляющие устройства
и ЭВМ не только числовую, но и текстовую (алфавитно-цифровую) информацию,
содержащую цифры, буквы, знаки препинания, математические и другие символы. Для
передачи информации от одного устройства (например, центральной ЭВМ) к другому
(например, системе ЧПУ станка) по каналам связи каждый символ сообщения должен
быть представлен последовательностью бит, количество которых определяется
принятой системой кодирования. В разное время было разработано несколько кодов,
позволяющих передавать алфавитно-цифровую информацию по каналам связи.
Рассмотрим двоичный семиразрядный стандартный код обмена информацией
КОИ-7, который приведён в табл. 1. Из семи разрядов старшие три разряда
Первый элемент
нулевой ячейки
Ячейка с адресом 2
9
определяются номером столбца, а младшие четыре разряда - номером строки таблицы,
на пересечении которых находится кодируемый символ. Сочетаниями букв задаются
значения служебных кодовых комбинаций, например: (звонок) - выдача звукового
сигнала, ПС (перевод строки) - переход на следующую строку, ВК - возврат курсора
или каретки печатающего устройства и т.д.
Первый элемент
нулевой ячейки
Ячейка с адресом 2
10