Сид Катцен
Ольстерский университет, Джорданстаун
Декабрь, 2000 г.
Часть I
ОСНОВЫ
Эта книга посвящена микроконтроллерам. Микроконтроллеры представляют собой цифровые устройства, построенные по образу и подобию ЭВМ с хранимой программой и объединенные вместе со вспомогательными узлами, памятью различного типа и блоками сопряжения в микросхемах сверхвысокой степени интеграции. Хотя, говоря о микроконтроллерах, часто имеют в виду их более известных «двоюродных братьев» — микропроцессоры, которые являются важнейшим узлом персональных компьютеров, подавляющее большинство как микроконтроллеров, так и микропроцессоров, помимо ПК, используются и во многих других электронных устройствах. Первые микропроцессоры, появившиеся на рынке в начале 70-х, позиционировались в качестве альтернативного способа реализации цифровых схем. Выполняемые функции определялись последовательностью инструкций, хранящихся в виде двоичных чисел в постоянном запоминающем устройстве (ПЗУ). Это решение обладало большей гибкостью по сравнению с традиционной схемой соединения различных микросхем. Современный микроконтроллер является одним из воплощений такого интегрированного вычислителя.
Использованию встраиваемых микроконтроллеров в контексте собственно цифровых вычислений посвящены 2-я и 3-я части книги. Пока же нам требуется заложить фундамент для понимания этого материала. Итак, в первой части мы с вами рассмотрим:
• Цифровые коды.
• Двоичную арифметику.
• Основы цифровой схемотехники.
• Архитектуру вычислительных устройств и их программирование.
Разумеется, мы не сможем в полной мере охватить все указанные вопросы, однако существует много других превосходных книг[5] по этой тематике, с помощью которых вы сможете продолжить изучение на более глубоком уровне.
Заглядывая внутрь микросхемы
Глава 1
Цифровое представление
Как для компьютера, так и для микроконтроллера окружающий мир представляется в виде различных чисел. В десятичной системе счисления числовые величины описываются с помощью десяти цифр: 0, 1…., 9. Используя при необходимости символы «+», «—» и «.»[6], можно выразить любое число из диапазона . На самом деле, с помощью чисел можно выражать даже нечисловые понятия. К примеру, в коде ASCII (американский стандартный код обмена информацией) символу «А» соответствует число 65, символу «В» — 66…., «Z» — 90, «а» — 97, «Ь» — 98…., «z» — 122 и т. д. Соответственно, слово «Microcontroller» можно закодировать в виде последовательности чисел «77, 105, 99, 114, 111, 99, 111, 110, 116, 114, 111, 108, 108, 101, 114». При условии, что нам известен контекст, т. е. какие числа описывают реальные числовые величины, а какие — текст, с их помощью можно закодировать практически любые символы[7].
Электронные схемы не очень хорошо подходят для хранения и обработки множества различных значений. Да, первая американская цифровая вычислительная машина ENIAC (электронный цифровой интегратор и калькулятор), созданная в 1964 году, выполняла арифметические операции в десятичном виде[8], однако все компьютеры, появившиеся впоследствии, оперировали уже данными в двоичной (с основанием 2) системе. В действительности десятичная система счисления удобна только для человека, поскольку у нас на руках 10 пальцев[9]. Так что в этой главе мы будем рассматривать исключительно свойства двоичных разрядов, их группирование, а также операции над двоичными числами. Прочитав главу, вы:
• Поймете, почему двоичное представление данных является наиболее удобным для цифровых схем.
• Узнаете, как одну и ту же величину можно выразить в двоичном, шестнадцатеричном и двоично-десятичном (BCD) виде.
• Научитесь выполнять сложение и вычитание двоичных чисел.
• Узнаете, как выполнять умножение посредством сдвига влево.
• Узнаете, как выполнять деление посредством сдвига вправо с копированием знакового бита.
• Познакомитесь с логическими операциями НЕ, И, ИЛИ и Исключающее ИЛИ.
5
См., например:
6
В данной книге для отделения целой части числа от дробной используется точка, а не запятая. —
7
Разумеется, существует множество других цифровых кодировок, к примеру 6-точечный код Брайля для слепых.
9
И десять пальцев на ногах, однако система счисления по основанию 20 используется очень редко (но все-таки она существует).