Основы микропроцессорной техники с элементами моделирования в среде Multisim
Покупка
Новинка
Автор:
Васильев Игорь Александрович
Год издания: 2018
Кол-во страниц: 60
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7038-5070-1
Артикул: 837817.01.99
Даны основы применения микроконтроллеров для управления электронными устройствами. Приведены примеры подключения к микропроцессору внешних устройств с параллельным и последовательным интерфейсом. Рассмотрено управление программой микропроцессора по флагам простейшего кнопочного пульта и прерывание исполнения программы от внешнего устройства и таймера микроконтроллера. Для студентов МГТУ им. Н.Э. Баумана, обучающихся по специальности «Техническая физика» и изучающих курс «Цифровая электроника».
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)» И.А. Васильев Основы микропроцессорной техники с элементами моделирования в среде Multisim Учебное пособие 2-е издание, исправленное
УДК 621.3.049.77 ББК 32.973 В19 Издание доступно в электронном виде по адресу ebooks.bmstu.press/catalog/72/book1945.html Факультет «Фундаментальные науки» Кафедра «Электротехника и промышленная электроника» Рекомендовано Научно-методическим советом МГТУ им. Н.Э. Баумана в качестве учебного пособия Васильев, И. А. В19 Основы микропроцессорной техники с элементами моделирования в среде Multisim : учебное пособие / И. А. Васильев. — 2-е изд., испр. — Москва : Издательство МГТУ им. Н. Э. Баумана, 2018. — 56, [4] с. : ил. ISBN 978-5-7038-5070-1 Даны основы применения микроконтроллеров для управления электронными устройствами. Приведены примеры подключения к микропроцессору внешних устройств с параллельным и последовательным интерфейсом. Рассмотрено управление программой микропроцессора по флагам простейшего кнопочного пульта и прерывание исполнения программы от внешнего устройства и таймера микроконтроллера. Для студентов МГТУ им. Н.Э. Баумана, обучающихся по специальности «Техническая физика» и изучающих курс «Цифровая электроника». УДК 621.3.049.77 ББК 32.973 ISBN 978-5-7038-5070-1 © МГТУ им. Н.Э. Баумана, 2017 © МГТУ им. Н.Э. Баумана, 2018, с изменениями © Оформление. Издательство МГТУ им. Н.Э. Баумана, 2018
Предисловие Предлагаемое вниманию читателей учебное пособие разработано на основе учебного курса, читаемого автором на протяжении пяти лет студентам, обучающимся по специальности «Техническая физика» на факультете «Фундаментальные науки» МГТУ им. Н.Э. Баумана. Лекции рассчитаны на студентов, имеющих начальную подготовку по курсу «Аналоговая и цифровая электроника», и могут быть использованы студентами других специальностей, изучающими основы микропроцессорной техники. Цель настоящего учебного пособия — помочь студентам развить теоретические и практические навыки применения микропроцессорных систем. Автор предлагает оригинальный подход к изучению микропроцессоров с элементами моделирования в программной среде Multisim. Примеры и схемы разработаны автором. Примеры программ прошли отладку и полностью работоспособны. Предлагаемая методика изучения позволяет практически с первых шагов реализовать схемные и программные решения в виде функционирующей модели с возможностью подключения цифровых индикаторов, осциллографа и клавиатуры. Возможность практической реализации решений способствует усвоению теоретического материала лекций. Изложение материала основано на использовании алгоритмического языка С. Это позволяет сосредоточиться на изучении применения устройств, а не тратить время на разработку алгоритмов на языке Ассемблер, так как он сложен для изучения: даже простейшие написанные на нем алгоритмы могут иметь довольно сложный вид. Утверждение, что ассемблерный код всегда оптимален по сравнению с кодом на языке С, утратило свою актуальность, поскольку современные компиляторы языка С для микропроцессоров имеют несколько уровней оптимизации кода. Для изучения лекций студенты должны иметь навыки моделирования в среде Multisim. Существует множество различных пособий по применению этой моделирующей программы, однако лучшие результаты дает изучение среды с помощью раздела Help. Скачать программную среду с ограниченными правами использования можно с сайта разработчика Multisim (ni.com/multisim/try), пройдя процедуру регистрации. Можно также пользоваться лицензионной программной средой, установленной на компьютерах в компьютерном зале кафедры электротехники. При моделировании примеров и собственных разработок нужно соблюдать правила построения схемы модели. Рекомендуется продвигаться от простого варианта решения к более сложному, иначе трудности, возникающие при отладке модели, могут оказаться непреодолимыми. При необходимости можно получить консультацию по электронной почте автора ivasiliev@rslab.ru. Использование рассмотренного в лекциях метода моделирования микропроцессоров в среде Multisim позволит студентам самостоятельно разрабатывать и отлаживать микропроцессорные системы. 3
Введение Микропроцессорная техника — современное направление в области науки и техники. Бурное развитие этого направления началось в 1970-е годы, после появления на рынке первых микропроцессоров. Потребности в микропроцессорных устройствах с различными функциональными возможностями непрерывно растут. Собственно микропроцессоры не производятся в виде отдельных микросхем — микропроцессор является основным компонентом широкого класса микросхем, называемых микроконтроллерами. Микроконтроллер представляет собой законченное устройство контроля и управления, предназначенное для построения различных автоматизированных устройств. Однокристальные микроконтроллеры помимо микропроцессора содержат, как правило, многоканальные аналого-цифровые преобразователи (АЦП), цифроаналоговые преобразователи (ЦАП) и таймеры времени. Это позволяет создавать автоматизированные системы, используя АЦП для контроля состояния их устройств и вырабатывая сигналы управления устройствами с помощью ЦАП. При этом таймеры времени позволяют создавать различные временные диаграммы для управляющих сигналов. Однако более сложные системы требуют применения дополнительных микросхем, не входящих в микросхему однокристального микроконтроллера. Такое изделие обычно называют контроллером, дополнительно указывая имя системы (контроллер экрана, контроллер клавиатуры и т. п.). Особое значение микропроцессорные устройства имеют при автоматизации научных исследований. Трудно представить современного исследователя, записывающего в блокнот показатели стрелочных приборов при проведении экспериментов. Микропроцессорные средства автоматизации позволяют проводить многопараметрические измерения и получать результаты в виде цифровых файлов в реальном масштабе времени. Такие данные легко систематизировать и обрабатывать. Рассмотрим, как реализовать схемные и программные решения в виде функционирующей модели. 4
Основные условные обозначения АЛУ — арифметико-логическое устройство АЦП — аналого-цифровой преобразователь ОЗУ — оперативное запоминающее устройство ПЗУ — постоянное запоминающее устройство РОН — регистр общего назначения ЦАП — цифроаналоговый преобразователь CISC — компьютеры c полной системой команд (Complex Instruction Set Computers) COM — коммуникационный порт (Communications Port) CS — выбор микросхемы, выбор ведомого (Chip Select) GND — заземление (Ground) LIFO — последним пришел, первым ушел (Last In, First Out) MISO — вход ведущего, выход ведомого (Master Input, Slave Output) MOSI — выход ведущего, вход ведомого (Master Output, Slave Input) RISC — компьютеры с сокращенной системой команд (Reduced Instruct Set Computers) SCLK — последовательный тактовый сигнал (Serial Clock) SPI — последовательный периферийный интерфейс (Serial Peripheral Interface) USB — универсальная последовательная шина (Universal Serial Bus) VCC — напряжение постоянного тока + 5 В (Voltage Constant Current)
Лекция 1 1.1. Понятие «архитектура процессора» Процессор — электронный логический автомат, способный исполнять конечное число команд и реализующий строго заданную программу. Процессор состоит из большого числа элементарных переключателей (транзисторов) — миллиарда и более для современных многоядерных процессоров. Изменение структуры процессора осуществляется путем переключения транзисторов под управлением команд процессора. Число команд относительно невелико (обычно менее 250 для универсальных процессоров или нескольких десятков для специальных совсем простых процессоров). Огромное разнообразие функций процессорного устройства можно наблюдать на примере ЭВМ, поскольку из сравнительно небольшого набора команд может быть создано огромное число программ с различными функциями и вычислениями. Этим свойством процессор радикально отличается от обычных логических автоматов, выполняющих простые логические операции. Для изменения функций такого автомата необходимо преобразовать его структуру (заменить микросхему , переключить перемычки и т. п.). Для изменения функций процессора достаточно переработать программу процессора, тогда один и тот же процессор сможет обслуживать станок с числовым программным управлением или синтезировать музыку в караоке-микрофоне. На основе процессора может быть создана сложная ЭВМ или сравнительно простое устройство в виде отдельной микросхемы, называемой микроконтроллером. Простейшая структура ЭВМ показана на рис. 1.1. Ядром ЭВМ является центральный процессор. Задача процессора — после выполнения команды «Пуск» выполнить программу управления, размещенную в памяти компьютера. Ритм работы процессора задается кварцевым тактовым генератором частоты. Именно частоту тактового генератора называют рабочей частотой процессора. После выбора команды «Пуск» специальный программный счетчик PC (Program Counter) указывает адрес первой команды, после исполнения которой содержимое РС увеличивается на единицу (инкремент), что обеспечивает переход к следующей команде программы. Далее процесс продолжается до завершения выполнения всей программы. Описанная процедура работы слишком примитивна для конструирования процессора, но вполне пригодна для пояснения принципа его действия. 6
Рис. 1.1. Простейшая структура ЭВМ В конце 1940-х годов правительство США поручило научным коллективам Принстонского и Гарвардского университетов разработку вычислительного устройства для решения задач прицеливания при управлении зенитным огнем. Коллектив Принстонского университета, возглавляемый фон Нейманом, предложил процессор с последовательной структурой выбора команд и данных из постоянного и оперативного запоминающих устройств (ПЗУ и ОЗУ соответственно). Память в этом процессоре адресуется как единое целое, что значительно упрощает его конструкцию. Г арвардский университет представил разработку процессора, где программа, данные и оперативная информация о состоянии процессора (стек) располагались в разных банках памяти. Это значительно усложняет процессор, однако при этом увеличивается быстродействие благодаря возможности выполнения параллельных (одновременных) операций. Выбор следующей команды может происходить одновременно с исполнением предыдущей, и нет нужды прерывать работу процессора на время выбора команды. В итоге за основу разработок была принята концепция фон Неймана, поскольку в эпоху ламповой электроники простота и надежность имели решающее значение. Справедливости ради следует отметить, что работы над машиной с памятью для команд программы и результатов вычислений были практически завершены, когда к проекту присоединился фон Нейман. Но благодаря личному авторитету фон Нейман опубликовал доклад о машине от своего имени, обходя препятствия, связанные с режимом секретности. В университетах США и Великобритании доклад фон Неймана был распространен 7
ограниченным тиражом, тем не менее являлся первой научной публикацией по проблемам создания вычислительных машин. В современных процессорах применяются обе концепции организации памяти, при этом в «принстонских» процессорах введен режим предвыбора последующей команды во время выполнения предыдущей, что еще более сократило принципиальные различия между двумя концепциями. Под архитектурой процессора понимают его внутреннюю организацию: структуру распределения адресного пространства, число регистров общего назначения, число портов ввода-вывода и т. п. Часто в литературе по микропроцессорам при определении их архитектуры используют термины «гарвардская» и «принстонская». В настоящее время различные фирмы-производители развивают ту или иную архитектуру. Применение того или иного процессора в значительной мере зависит от вкусов разработчика и типа решаемой задачи. Дать однозначный ответ на вопрос о том, какая архитектура лучше, практически невозможно. При обсуждении вопроса об архитектуре процессора часто используют следующие обозначения: • RISC (Reduced Instruct Set Computers) — компьютеры с сокращенной системой команд; • CISC (Complex Instruction Set Computers) — компьютеры со сложной системой команд. Обычно считается, что процессоры RISC имеют большее быстродействие. 1.2. Как устроен компьютер. Регистры общего назначения, арифметико-логическое устройство, стек Как должен быть устроен компьютер? Приведем дословную цитату из доклада фон Неймана, первой научной публикации на эту тему: «Поскольку законченное устройство будет универсальной вычислительной машиной, оно должно содержать несколько основных органов, таких как органы арифметики, памяти, управления и связи с оператором. Мы хотим, чтобы после начала вычислений работа машины не зависела от оператора. <…> Очевидно, что машина должна быть способна запоминать некоторым образом не только цифровую информацию, необходимую для данного вычисления, но также и команды, управляющие программой, которая должна производить вычисления над этими числовыми данными. <…> Если, однако, приказы (команды) машины свести к числовому коду и если машина сможет некоторым образом отличать число от приказа (команды), то орган памяти можно использовать для хранения как чисел, так и приказов (команд). <…> Если память для приказов (команд) является просто органом памяти, то должен существовать еще орган, который может автоматически выполнять приказы (команды), хранящиеся в памяти. Мы будем называть этот орган управляющим. <…> Поскольку наше устройство должно быть вычислительной машиной, в нем должен иметься арифметический орган — устройство, способное складывать, вычитать, умножать и делить. <…> Наконец, должен 8
существовать орган ввода и вывода, с помощью которого осуществляется связь между оператором и машиной». Таким образом, уже на начальном этапе создания ЭВМ были заложены основные принципы ее построения, актуальные и до настоящего времени. Однако в цитате нет современной терминологии. Попробуем прокомментировать цитату из доклада фон Неймана. ЭВМ должна иметь память для хранения программы вычислений (память программы). Программа содержит набор команд (инструкций) процессора (см. в цитате: «Мы будем называть этот орган управляющим»). Процессор может выполнять строго определенные команды, но для проведения вычислений он привлекает арифметическое логическое устройство — АЛУ (см. в цитате: «Поскольку наше устройство должно быть вычислительной машиной, в нем должен иметься арифметический орган — устройство, способное складывать, вычитать, умножать и делить»). Память нужна для хранения чисел, необходимых для проведения вычислений и хранения данных вычислений (память данных). В цитате не упоминается возможность прерывания вычислительного процесса (например, для обращения к клавиатуре, экрану или для выполнения отдельной процедуры вычислений, т. е. изменения порядка выбора команд процессора). Команды процессора имеют безусловный приоритет исполнения. Исполнение команды процессора не может быть прервано никогда. После завершения исполнения команды процессора может возникнуть необходимость, например, обратиться к внешнему накопителю (диску) для считывания или размещения данных. Состояние машины перед моментом прерывания вычислительного процесса называют вектором прерывания, а адрес последующей инструкции — адресом точки возврата. После выполнения прерывания состояние машины должно быть восстановлено, а управление передано по адресу точки возврата. Программу, обеспечивающую выполнение прерывания и продолжение вычислительного процесса, называют обработчиком прерывания. Обработчик прерывания должен разместить в памяти машины вектор прерывания и адрес точки возврата, обеспечить работу внешнего устройства (обслуживание). После завершения обслуживания из памяти считывается вектор прерывания и адрес точки возврата, состояние машины до прерывания восстанавливается, процессору сообщается инструкция «продолжить вычислительный процесс (исполнение программы) с точки возврата». Прерывание — часто реализуемый режим работы ЭВМ, запись вектора прерывании и адреса точки возврата должны быть организованы оптимальным образом. Для этой цели существует определенная процедура и область памяти машины. Эту область памяти машины называют областью стека, а данные, размещенные в ней, — стеком. Стек организован особым образом. Процедура его формирования осуществляется по принципу LIFO (Last In, First Out — последним пришел, первым ушел). Обычно для пояснения принципа LIFO служит стопка бумаг, в которую кладут и из которой берут листы только сверху. Такая организация стека позволяет размещать и извлекать данные простым инкрементом или декрементом начального адреса стека. Для помещения данных в стек служит команда процессора Push — 9
положить («втолкнуть») в стек, а для извлечения из стека — команда Pop («вытолкнуть» из стека). Регистры общего назначения (РОН) располагаются непосредственно в ядре процессора. Они предназначены для хранения переменных и выполнения операций. При обращении программы к РОН используется только прямая регистровая адресация. Это означает, что каждый регистр имеет свое имя и к его содержимому можно обращаться, используя имя регистра, а не относительные или абсолютные адреса оперативной памяти. Регистр общего назначения — основной инструмент вычислительного процесса. Сам процессор не выполняет арифметические действия. Для этого предназначено АЛУ, обращение к которому осуществляется через регистры общего назначения. Помимо РОН в процессоре имеется целый ряд специальных регистров. Их назначение будет обсуждаться по мере изложения материала. 1.3. Интерфейс «общая шина» Все ячейки памяти и устройства ЭВМ имеют свои адреса, система этих адресов образует адресное пространство компьютера. Все адресуемые элементы ЭВМ подключены своими адресными выводами к системе проводов, образующих общую адресную шину. Число адресных проводников в шине адресов (адресной шине) называют ее разрядностью. Например, если число адресных проводов в шине 16, то разрядность шины 16, а число подключаемых адресуемых устройств 216, или 65 534. Обычно говорят, что память машины составляет 64 Килобайта (Кб) после деления на 1024 при байтовой структуре (по 8 бит) адресуемых устройств. Приставку «Кило» пишут с прописной буквы, подчеркивая, что исходное значение делится на 1024, а не на 1000. В простейшем случае разрядность шины равна разрядности процессора, однако она может быть значительно больше за счет постраничного построения адресного пространства. Старшие адреса в адресном пространстве образуют адреса страниц (в нашем случае более 64 Кб), а младшие (менее 64 Кб) — текущий адрес на странице. При этом выставку адреса на шине адреса осуществляют в два этапа: сначала выставляют старшие биты адреса (т. е. заходят на страницу), а далее — младшие биты (т. е. выбирают адресуемое устройство на данной странице). Число проводников в шине адреса обычно больше, чем ее разрядность, поскольку необходимо подавать импульсы стробирования выбора адреса и сигналы чтения и записи. Адресуемые устройства (в простейшем случае — ячейки памяти) содержат информацию, которую получают или обмениваются ею по шине данных. Шина данных имеет два режима взаимодействия с ячейкой памяти — запись данных и чтение данных. Число проводников, по которым передаются данные от одного адресуемого устройства к другому, называют разрядностью шины данных. Обычно разрядность шины данных равна разрядности процессора. Предположим, что мы разработали программу получения суммы S двух чисел A и B на некотором языке программирования. После обработки тек10