Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка пргр МП.docx
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
16 Мб
Скачать
☆

Приложение а. Система ввода-вывода учебного лабораторного стенда sdk-1.1

А.1 Назначение стенда Учебный стенд представляет собой микропроцессорный контроллер, построенный на базе однокристальной микроЭВМ ADuC812 [3] (SDK-1.1/S на ADuC842) и имеющий в своем составе разнообразные устройства, типичные для современных встроенных систем и предназначенные для ввода, обработки и вывода информации в цифровом и аналоговом виде. SDK-1.1 можно применять в качестве аппаратной базы для обучения основам современной микропроцессорной техники и программируемой логики в университетах, колледжах, физико-математических школах и на предприятиях [88].

Необходимость в подобных стендах возникает из-за того, что современные персональные компьютеры, к сожалению, достаточно плохо позволяют демонстрировать студентам все тонкости организации вычислительного процесса. Во-первых, вся «начинка» современного компьютера скрыта от пользователя операционной системой. Во-вторых, аппаратная база компьютеров часто меняется, что сильно затрудняет поддержку учебных материалов в актуальном состоянии. В-третьих, аппаратура современных компьютеров общего назначения весьма сложна и на подробное еѐ изучение может просто не хватить времени, отведенного на курс учебной программой.

А.2 Состав стенда

В состав учебного стенда SDK-1.1 входят:

  1. Микроконтроллер ADuC812 (Analog Devices), 8 Кб FLASH, 256 байт ОЗУ, 640 байт E2PROM.

  2. Внешнее ОЗУ 128 Кб (с возможностью расширения до 512 Кб), подключение к МК ADuC812 по системной шине; используется для хранения пользовательских программ и данных.

  3. Расширитель портов ввода–вывода – ПЛИС MAX3064 (Altera), подключение к МК ADuC812 по системной шине.

  4. Внешняя память E2PROM 256 байт, подключение к МК ADuC812 по интерфейсу I2C.

  5. Часы реального времени – PCF8583 (Philips), подключение по интерфейсу I2C.

  6. Консоль оператора (подключение через ПЛИС к МК ADuC812): Символьный жидкокристаллический индикатор (ЖКИ) WH1602B-

YGK-CP (Winstar Display), 16 * 2.

Матричная клавиатура, 4 * 4.

Звуковой излучатель – 1 шт.

Управляемые светодиоды – 8 шт.

Ручные переключатели тестовых сигналов для аналоговых и дискретных портов ввода: коммутатор аналоговых каналов (подключен напрямую к МК ADuC812) и стимулятор дискретных портов.

А.3 Вычислительное ядро и система ввода-вывода

Вычислительное ядро – это оборудование и программные средства, которые непосредственно участвуют в решении заданной задачи (выполняют вычислительную работу). Таким образом, к вычислительному ядру контроллера SDK-1.1 относятся такие элементы, как процессор семейства MCS-51, внутреннее ОЗУ данных и FLASH-память программ (в ней располагаются резидентный загрузчик и системная таблица векторов прерываний) микроконтроллера ADuC812, внешняя память программ и данных SRAM, предназначенная для размещения пользовательских программ и данных.

Система ввода-вывода содержит элементы вычислительной системы, обеспечивающие общение вычислительного ядра с внешней средой. Таким образом, к системе ввода-вывода контроллера SDK-1.1 относятся все контроллеры ввода-вывода и периферийные устройства, находящиеся в микроконтроллере ADuC812: порты ввода-вывода, таймеры/счетчики, универсальный асинхронный приемопередатчик (UART), контроллеры интерфейсов I2C и SPI, АЦП, ЦАП и др. Доступ ко всей периферии в микроконтроллере осуществляется через регистры специального назначения (SFR). Также к системе ввода-вывода стенда относится расширитель портов ввода-вывода, выполненный на базе ПЛИС, и все подключенные к нему периферийные устройства: ЖКИ, матричная клавиатура, линейка светодиодов, звуковой излучатель, дискретные порты ввода-вывода. Необходимо отметить, что расширитель портов ввода-вывода разделяет единое внешнее пространство данных с внешним ОЗУ.

Данное разделение компонентов стенда SDK-1.1 по принципу принадлежности вычислительному ядру или системе ввода-вывода выполнено на логическом уровне. В следующих подразделах приведена более подробная информация о компонентах стенда, при этом «выделение» компонентов выполнено на физическом уровне, т.е. на основе принципиальной электрической схемы.

А.3.1 Микроконтроллер ADuC812

Микроконтроллер ADuC812 является клоном Intel 8051 (8052) со встроенной периферией, а значит, является представителем Гарвардской архитектуры.

Основные характеристики: 1. Рабочая частота 11,0592МГц.

  1. 8 Кб FLASH-памяти (10000-50000 циклов «стирание-запись-чтение») для хранения программ. В стенде SDK-1.1 в этой памяти располагаются резидентный загрузчик и системная таблица векторов прерываний.

  2. 256 байт ОЗУ данных.

  3. 640 байт программируемого E2PROM со страничной организацией (160 страниц по 4 байта, 10000-50000 циклов доступа к памяти/стираниезапись-чтение) для хранения данных (например, различных настроек).

  4. Адресное пространство памяти программ 64 Кб.

  5. Адресное пространство внешней памяти данных 16 Мб.

  6. Четыре 8-разрядных порта ввода-вывода (три двунаправленных, один порт ввода).

  7. Три 16-битных таймера/счетчика и один таймер WatchDog.

  8. 8-канальный 12-битный АЦП, который может работать в режиме (максимальная частота выборки-дискретизации 200 кГц).

  9. 2-канальный 12-битный ЦАП.

  10. Внутренний термодатчик.

  11. Режим управления питанием.

  12. Универсальный асинхронный приемопередатчик (UART).

  13. Интерфейс I2C (используется в стенде SDK-1.1), интерфейс SPI (не используется в стенде SDK-1.1).

Рис. 117. Микроконтроллер ADuC812 на принципиальной электрической схеме стенда SDK-1.1.

А.3.2 Внешняя память программ и данных Внешняя память программ и данных стенда SDK-1.1 – статическое ОЗУ (SRAM), имеющее страничную организацию и предназначенное для размещения пользовательских программ и данных. Размер страницы 64 Кб. Первая страница (страница 0) доступна для выборки и команд, и данных микроконтроллером ADuC812. Остальные страницы доступны только для размещения данных (логическое адресное пространство внешней памяти данных составляет 16 Мб). Однако реально для пользовательских программ доступно не 64 Кб, а 52 Кб, так как в младшие адреса отображается 8 Кб FLASH-памяти ADuC812 (адреса 0000h-1FFFh). Кроме того, 4 Кб зарезервировано резидентным загрузчиком МК (адреса F000h-FFFFh).

Если в пользовательской программе используются прерывания, то ее рекомендуется загружать с адреса 2100h, так как в пространстве адресов 2000h2100h располагается пользовательская таблица векторов прерывания.

Физическое адресное пространство внешней памяти данных в стенде SDK-1.1 ограничено 512 Кб (т.е. не может быть 16 Мб), потому что, начиная с 8 страницы, располагается адресное пространство ПЛИС (MAX 3064).

Внешняя память программ и данных подключается к МК ADuC812 по системной шине (как и ПЛИС).

Рис. 118. Подключение внешней памяти программ и данных к МК ADuC812.

А.3.3 Порты ввода-вывода

Порт можно определить как точку, через которую осуществляется взаимодействие с каким-либо блоком в системе ввода-вывода, многоразрядный вход или выход устройства. Порт ввода-вывода – это логическая адресуемая единица системы ввода-вывода, которая характеризуется, в первую очередь, следующими тремя признаками:

Адресом.

Форматом данных, пересылаемых через него (под форматом данных подразумевается как их разрядность, так и положение значащих разрядов).

Набором допустимых с ним операций (чтение, запись или и то, и другое).

В стенде SDK-1.1 ввод-вывод данных осуществляется с помощью портов микроконтроллера и микросхемы ПЛИС (расширитель портов ввода-вывода).

Порты P0, P1, P2, P3 микроконтроллера ADuC812 являются квазидвунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией микроконтроллера с внешними устройствами, образуя 32 линии ввода-вывода. Каждый из портов содержит восьмиразрядный регистр, имеющий байтовую и битовую адресацию для установки (запись «1») или сброса (запись «0») разрядов этого регистра с помощью программного обеспечения. Выходы этих регистров соединены с внешними ножками микросхемы.

Кроме работы в качестве обычных портов ввода-вывода внешние выводы портов Р0-Р3 могут выполнять ряд дополнительных (альтернативных) функций.

Порт P0 может быть использован для организации шины адреса/данных при работе микроконтроллера с внешней памятью данных или программ (см. принципиальную схему стенда SDK-1.1), при этом через него выводится младший байт адреса (A0-A7), выдается из микроконтроллера или принимается в микроконтроллер байт данных.

Порт P1 – аналоговые входы.

Порт P2 может быть использован для организации шины адреса при работе микроконтроллера с внешней памятью данных или программ, при этом через него выводится старший байт адреса (A8–A15) для доступа к памяти программ; средний и старший байт адреса (A8 – A15, A16 – A23) для доступа к памяти данных.

Каждая линия порта Р3 имеет индивидуальную альтернативную функцию, которая может быть задействована простым обращением к устройству, соединенному с ножкой порта:

Р3.0 RxD – вход последовательного порта (UART);

Р3.1 TxD – выход последовательного порта (UART);

Р3.2 INT0 используется как вход 0 внешнего запроса прерываний;

Р3.3 INT1 используется как вход 1 внешнего запроса прерываний;

Р3.4 Т0 используется как вход счетчика внешних событий 0;

Р3.5 Т1 используется как вход счетчика внешних событий 1; Р3.6 WR – строб записи во внешнюю память данных; Р3.7 RD – строб чтения из внешней памяти данных.

ПЛИС имеет 8 регистров, отображаемых во внешнее адресное пространство данных процессора. К ПЛИС в SDK-1.1 подключены:

Клавиатура.

ЖКИ.

Линейка светодиодов.

Звуковой излучатель.

16 дискретных портов ввода-вывода.

Таблица 12. Перечень регистров расширителя портов ввода-вывода.

Адрес

Регистр

Доступ

Назначение

080000H

KB

R/W

Регистр клавиатуры

080001H

DATA_IND

R/W

Регистр шины данных ЖКИ

080002H

EXT_LO

R/W

Регистр данных параллельного порта (разряды 0-7)

080003H

EXT_HI

R/W

Регистр данных параллельного порта (разряды 8-15)

080004H

ENA

W

Регистр управления портами ввода-вывода, звуком, сигналом INT0 и прерыванием от клавиатуры

080006H

C_IND

W

Регистр управления ЖКИ

080007H

SV

W

Регистр управления светодиодами

А .3.4 Расширитель портов ввода-вывода

В SDK-1.1 используется программируемая логическая интегральная схема (ПЛИС) семейства MAX3000A фирмы Altera (EPM3064A) как расширитель портов ввода-вывода.

К ПЛИС подключены:

Клавиатура.

ЖКИ.

Линейка светодиодов.

Звуковой излучатель.

16 дискретных портов вводавывода.

Для программиста расширитель портов представлен в виде нескольких однобайтовых регистров, находящихся

в начале восьмой страницы внешней памяти данных.

Далее будет представлен обзор периферийных устройств, подключенных к расширителю портов ввода-вывода, их обозначение на принципиальной электрической схеме стенда SDK-1.1.

А.3.5 Периферийные устройства, подключенные к расширителю портов ввода-вывода