WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 |
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ) Факультет электроники Подлежит возврату № Методические указания по выполнению лабораторной работы ИЗУЧЕНИЕ АРХИТЕКТУРЫ И ОСНОВ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ Для студентов специальностей 072000, 190400, 190700, 200100, 200300 МОСКВА 2003 -2Составители: В.И. Индришенок, В.В. Кузнецов, Е.Ф. Певцов Редактор Е.Ф. Певцов Учебно-методические указания для выполнения лабораторной работы «Изучение архитектуры и основ программирования микроконтроллеров», подготовлены преподавателями факультета электроники Московского государственного института радиотехники, электроники и автоматики. Они предназначены для студентов обучающихся по направлению 654300 и специальностям 072000, 190400, 190700, 200100, 200300, изучающих общие дисциплины по информационным технологиям, а также специализирующимся в области проектирования систем управления, сбора и обработки данных.

Печатаются по решению редакционно-издательского совета Московского государственного института радиотехники, электроники и автоматики (технического университета).

© Московский Государственный институт радиотехники, электроники и автоматики (технический университет) 2003 -3Введение Изобретение микропроцессора считается величайшим событием XX века. Создатели первого микропроцессора Тед Хофф, Федерико Феджина и Стен Мейзор работали в компании INTEL, их имена занесены в национальный зал славы США. Первый ЧИП микропроцессора 4004 (1971 г.) состоял из 2,3·103 транзисторов, работал с тактовой частотой 750 кГц, выполняя 60 тыс.

операций в секунду, и стоил около 200 долларов. Характеризуя современные темпы развития микропроцессорной техники, председатель совета директоров INTEL Гордон Мур высказал следующую аналогию: «Если бы автомобилестроение эволюционировало со скоростью полупроводниковой промышленности, то сегодня "Ролс-Ройс" стоил бы три доллара, мог бы проехать полмиллиона километров на одном галлоне бензина, и было бы дешевле его выбросить, чем платить за парковку».

Интенсивное развитие микроконтроллеры (МК) получили в середине 90-х годов. Это в значительной степени обусловлено развитием высоких технологий и удешевлением массового производства СБИС. До этого времени обработка сигналов от периферийных устройств осуществлялись по идеологии единого обрабатывающего центра, связанного общей шиной с другими устройствами системы (автомобильная электроника в это время требовала прокладки до 90 кг проводов!). Цена микроконтроллеров неуклонно снижалась, и стало выгоднее встраивать их в периферийные схемы и всю необходимую обработку проводить непосредственно в этих схемах, минимально загружая центр управления и выдавая ему только необходимую информацию.

С удешевлением производства СБИС и ростом их надежности связано также все большее распространение компьютеров, позволяющих ускорить процесс обработки информации за счет специальной архитектуры, главной особенностью которых является применение разделенных физически областей памяти для хранения программ и данных. Такие компьютеры принято называть еще компьютерами с гарвардской архитектурой, поскольку их идеология была в свое время разработана Гарвардским университетом. Эти устройства принципиально отличаются от ком-4пьютеров, в которых для хранения данных и для хранения программ используется общая память. По имени университета, где они впервые были разработаны, их называют компьютеры с принстонской архитектурой, а по имени ученого, создавшего теорию их работы – компьютеры с архитектурой Фон-Неймана.

То, что компьютеры Фон-Неймана получили вначале большее распространение связано, с недостаточной надежностью систем с параллельной обработкой того времени, поскольку они базировались на устройствах с малой степенью интеграции на электролампах и дискретных транзисторных схемах.

По набору команд, используемому микропроцессорами, принято разделять также компьютеры с сокращенной системой команд (RISC – Reduced Instruction Set Computers) и компьютеры с полной системой команд (CISC – Complex Instruction Set Computers).

В общем случае контроллер или микропроцессорная система управляет объектами, используя комбинированные аппаратнопрограммные реализации функций управления. Результатом работы являются данные на магистрали (специальной шине) и модифицированное содержимое регистров – специальных ячеек памяти данных. Функционально достижение этих результатов может быть реализовано программно с помощью микропроцессоров (МП) или аппаратно с помощью самостоятельно работающих специальных СБИС, таких как микроконтроллеры (МК), цифровые автоматы, преобразователи данных, синхронизированных с микропроцессором или привязанных к его сетке работы с помощью системы прерываний.

Микроконтроллер отличается от микропроцессора тем, что аппаратные операции, наиболее часто используемые в микропроцессорных системах управления, выполняются внутренними модулями, интегрированными на кристалле вместе с процессорным ядром. Кроме памяти программ и данных к таким модулям относятся: таймеры/счетчики, модули АЦП и ЦАП, модули управления электродвигателями и т.п. Для сегодняшних МК характерна тенденция к объединению многих функциональных модулей в одном кристалле.

-5Основные элементы архитектуры микроконтроллера Как правило, семейства МК имеют единые базовые структуры. В качестве типичного примера семейства МК AVR рассмотрим архитектуру МК AT90S8515 (см. рис. 1). С точки зрения изучения принципов работы и программирования можно выделить следующие основные элементы МК AT90S8515:



- генератор тактового сигнала (GCK);

- процессор (CPU);

- память программ, предназначенная для хранения программного кода и констант;

- память данных, в которой сохраняются данные и значения переменных;

- набор периферийных устройств (регистры, порты, таймер/счетчик, аналого-цифровой преобразователь и др.) для ввода и вывода данных, управляющих сигналов и выполнения других функций.

Рассмотрим назначение и организацию работы этих элементов.

МК семейства AVR – устройства синхронного типа, т.е.

операции, выполняемые МК, привязаны по времени к импульсам тактового сигнала. Для МК AT90S8515 в качестве генератора тактового сигнала используется либо внешний генератор (режим EXT), либо внутренний генератор с внешним кварцевым или керамическим резонатором (режим XTAL).

Процессор микроконтроллера выполняет три основные операции, обеспечивающие выполнение программы:

1) формирует адрес очередной команды;

2) выбирает команду из памяти;

3) организует выполнение команды.

Основные узлы процессора:

- счетчик команд или программный счетчик - (PC); дешифратор (декодер) команд;

- арифметико-логическое устройство (ALU);

- блок регистров общего назначения РОН (GPR);

- регистр состояния МК (SREG);

- регистр-указатель стека (SP).

РА0 – РА7 РС0 – РСДрайверы порта А Драйверы порта С Регистр данных Регистр направл Регистр данных Регистр направл порта А данных порта А порта С данных порта С XTAL8-разрядная шина данных Встроенный Генератор генератор Счетчик Указатель команд стека XTALСинхронизация Сторожевой и управление таймер PLASH память Аппаратный reset программ стек Регистр управления Регистры ALE Регистр общего команд назначения Таймер/ x счетчик Декодер y команд ICP z Блок прерываний Линии команд ЭСППЗУ АЛУ данных Регистр состояния Логика Последовательн.

UART программирования SPI канал Регистр данных Регистр направл Регистр данных Регистр направл порта В данных порта В порта D данных порта D Драйверы порта В Драйверы порта D PB0 – PB7 PB0 – PBАналоговый компаратор -7При работе МП под управлением программы реализуется алгоритмический принцип следования (не рассматриваются многопроцессорные системы). Программный счетчик является указателем на подлежащую выполнению команду и содержит адрес этой команды в памяти программ. Он работает в 3-х режимах:

1) сброс (при пуске и перезапуске МК очищается PC и выполнение программы начинается с команды, расположенной в памяти по нулевому адресу);

2) инкремент адресов (значение PC увеличивается, указывая на команду программы, следующую за выполняемой);

3) установка PC в соответствии с кодом команды условного или безусловного перехода.

Установку программного счетчика для выбора следующей команды реализует дешифратор команд (логика программирования). Дешифратор, также, по коду команды вырабатывает управляющие сигналы, обеспечивающие её выполнение. Для полного выполнения командного цикла может требоваться несколько тактов синхронизации, а некоторые команды выполняются за несколько командных циклов.

Арифметико-логическое устройство (Arithmetic Logic Unit) служит исключительно для выполнения арифметических операций (сложение, вычитание, логические И и ИЛИ, сравнение, сдвиг разрядов, установка регистра состояния в соответствии с результатом операции). Данные, с которыми напрямую работает АЛУ, содержатся в РОН. Результат операции (кроме операций сравнения) помещается в РОН и, дополнительно, в регистре состояния МК SREG устанавливаются признаки результата (флаги нуля, переноса, переполнения и др.).

Регистры микроконтроллера представляют собой специальные элементы памяти, предназначенные для: 1) хранения данных внутри процессора (аккумуляторы, регистр состояния, индексные регистры и т.д.); 2) организации управления (управление прерываниями, таймерами и т.д.); 3) ввода/вывода данных (регистры данных последовательных или параллельных портов и т.д.). Для процессоров с RISC архитектурой характерно, что обращение к регистрам реализуется через указания их адресов. Адреса регист-8ров располагаются в адресном пространстве памяти данных, как это показано на рис. 2, (отображение регистров на память).

Память программ Область регистров Область Адресное общего регистров пространство ввода- данных $32 x $64 x $Внутренняя память SRAM $FFFF Внешняя память Рис.2. Распределение адресов в микроконтроллере AT90S8515.

Блок регистров общего назначения содержит 32 восьмиразрядных регистра с шестнадцатиричными адресами $00 - $1F в пространстве памяти данных. К ним можно обращаться и по именам R0 – R31. Шесть регистров с именами от R24 до R31 могут образовывать пары для хранения шестнадцатиразрядных слов, причем регистр с четным номером хранит младший байт, а регистр с нечетным номером – старший байт. Этим спаренным регистрам присвоены имена X, Y, Z. Они могут использоваться как индексные регистры в командах обращения к памяти данных. Регистр Z может также использоваться для чтения из памяти программ отдельных байтов, что позволяет хранить в ней таблицы данных.

Дополнительно из объема памяти данных может быть выделена специальная область - стек, организованный по принципу Команды -9"последний вошел - первый вышел" или Last In First Out (LIFO).

При этом в процессорах с Гарвардской архитектурой операции со стеком могут производиться одновременно с выполнением других действий.





Для увеличения объема хранения данных к МК может быть подключена внешняя память. Имеется два варианта подключения: 1) как к микроконтроллеру; 2) как к устройству ввода/вывода.

Память программ предназначена для хранения кодов команд программы и констант и представляет собой электрически перепрограммируемое постоянное запоминающее устройство – FlashROM (выполненное по специальной полупроводниковой технологии). Объем памяти программ в МК AT90S8515– 8 Кбайт.

Ячейка памяти содержит 16 двоичных разрядов. При чтении кодов команд адрес в ПЗУ программ поступает из счетчика команд.

При чтении констант адрес поступает из спаренного регистра Z, при этом он должен содержать адрес байта. Отличительной особенностью МК является то, что для большинства из них реализована возможность перепрограммирования в аппаратуре, где они должны работать (функция Downloading, перепрограммирование в системе или In-System Programming).

Память данных включает в себя регистровый файл РОН, область регистров ввода/вывода и оперативное запоминающее устройство статического типа (Static Random Access Memory - SRAM). Оперативное запоминающее устройство предназначено для временного хранения данных, получаемых в ходе работы программы. Адреса SRAM начинаются с $60. Объем встроенной в МК SRAM обычно ограничен (512 байт в AT90S8515). Ячейка памяти содержит 8 разрядов. Единственным типом операций является обмен данными между SRAM и РОН – загрузка (load) байта в РОН и сохранение (store) байта в SRAM. Адрес байта при обращении к памяти данных может быть указан в коде команды (прямая адресация) или предварительно записан в пару регистров X, Y или Z (косвенная адресация).

Память данных может быть расширена до 64 Кбайт при подключении внешних микросхем статической памяти к портам МК. При этом имеются возможности работы с внешней памятью -10как с периферийным устройством, когда протокол обмена данными реализуется программно, и как со встроенной памятью, когда обращение к обоим видам памяти производится с помощью одинаковых команд. В последнем случае внешняя память выбирается, если адрес больше верхнего адреса встроенной SRAM.

Регистры ввода-вывода – это блок из 64-х байтов, в котором содержатся как регистры управления процессором, так и регистры интерфейса ввода-вывода. Существует два способа обращения к регистрам ввода-вывода и РОН:

1) прямое обращение к каждой из этих областей данных (используется в основном при выполнении арифметических операций);

2) объединение всех трех областей регистров и памяти в общее адресное пространство данных.

Как это показано на рис. 2, в адресное пространство МК, помимо адресов, по которым выполняется обращение к ячейкам ОЗУ данных, включены 32 адреса для обращения к РОН (адреса от $00 до $1F) и 64 адреса для обращения к регистрам вводавывода (адреса от $20 до $5F). Первой ячейке SRAM соответствует адрес $60. Адрес для обращения к РОН по команде обращения к SRAM совпадает с номером регистра, а адрес для обращения к регистру ввода-вывода зависит от вида команды. В командах LOAD и STORE используются общие адреса всего пространства памяти данных, включая РОН и регистры ввода/вывода; а в командах IN и OUT, применяемых для обмена данными между РОН и этими регистрами, и в командах очистки CBI или установки SBI бит указывается номер регистра – адрес в области ввода/вывода (номера с $00 по $3F).

Адреса некоторых регистров, общих для всех моделей AVR, в пространстве регистров ввода-вывода приведены в таблице. Как видно, если применяются команды LOAD или STORE, то к абсолютному адресу следует прибавить начальное смещение $20.

Таким образом, структуру процессора можно представить в упрощенном виде, приведенном на рис. 3. Такое представление удобно для программирования, поскольку оно отражает все доступные операнды и на ней может быть прослежено выполнение всех команд данного семейства МК.

-11Регистры Область Имя регистра Назначение ввода-вывода данных $3F $5F SREG регистр состояния $3E $5E SPH указатель стека (старший байт) указатель стека (младший $3D $5D SPL байт) $3B $5B GIMSK регистр маски прерываний $3A $5A GIFR регистр запросов прерываний регистр управления микрокон$35 $55 MCUCR троллера Кроме параллельных портов ввода/вывода в группу периферийных устройств входят: последовательные порты SPI (Serial Peripheral Interface), UART (Universal Asynchronous ReceiverTransmitter), таймеры-счетчики общего назначения и другие устройства.

В случае выборки команды по неправильному адресу поведение МП перестает быть предсказуемым. Чтобы отслеживать такие ситуации, возникающие, например, при воздействии электрических помех, в состав МК включают специальное устройство (сторожевой таймер), инициирующее сброс МК (т.е. обращение по адресу запуска), если содержимое таймера не будет обновлено в течение заданного промежутка времени.

Для долговременного сохранения данных при отключенном электропитании, записанных при программировании МК или получаемых в ходе выполнения программы, используется 8-ми разрядное ПЗУ на основе EEPROM (Electrical Erased Programmable Memory).

EEPROM имеет обособленное адресное пространство. При обращении к EEPROM адрес предварительно записывается в расположенные в области ввода вывода регистры адреса этой памяти:

младшая часть адреса в регистр EEARL (номер $1E) и старшая в регистр EEARH (номер $1F).

Байт, предназначенный для записи, а также, получаемый при чтении заносится в регистр данных EEDR (номер $1D). Управление процедурами записи или чтения осуществляется через регистр управления EECR (номер $1C).

Pages:     || 2 | 3 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.