Разработка программы для лабораторного стенда SDK 1.1

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,21 Мб
  • Опубликовано:
    2012-07-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы для лабораторного стенда SDK 1.1

РЕФЕРАТ

Карсаков А.А. Программирование лабораторного стенда SDK1.1.

Руководитель проекта - доцент Захаров М.В.

Курсовой проект. Пояснительная записка объемом 31 с. содержит 4 таблицы, 25 рисунков, список источников, состоящий из 2 наименований.

Ключевые слова: микроконтроллер, программирование, регистр, переменная, условие, цикл.

Цель работы - написание программы для лабораторного стенда SDK 1.1.

Основываясь на знаниях, полученных при выполнении лабораторных работ, составлен текст программы для стенда SDK 1.1 в соответствии с заданием. Приложены все необходимые пояснения к данной программе, а так же приведены порядок написания программы в среде Keil μVision2 и непосредственно запись программы в микроконтроллер при помощи программы T167B.

ВВЕДЕНИЕ

В настоящее время в связи с бурным и повсеместным развитием микропроцессорной техники все чаще применяются новые микроэлектронные устройства.

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

В данной работе будет рассмотрена работа с лабораторным стендом SDK1.1, построенным на базе микроконтроллера AduC812. Лабораторный комплекс предназначен для освоения студентами архитектуры и методов проектирования: систем на базе микропроцессоров и однокристальных микро-ЭВМ, встраиваемых контроллеров и систем сбора данных, периферийных блоков вычислительных систем. Подготовка программ для микроконтроллера AduC812 осуществляется на языке программирования СИ на ПК в обычном текстовом редакторе (или средах программирования, предназначенных для разработки программ под ядро MCS-51), далее программа компилируется в исполняемый модуль, доставляемый в стенд с помощью разработанного программного обеспечения.

Все это позволяет сказать, что данный микроконтроллер возможно запрограммировать в любом месте где есть компьютер с СОМ-портом и необходимым программным обеспечением.

1. ОБЩИЕ СВЕДЕНИЯ

1.1 Архитектура учебного лабораторного комплекса SDK-1.1

Учебный лабораторный комплекс SDK-1.1 представляет собой микропроцессорный стенд SDK-1.1, подключенный к персональному компьютеру через интерфейс RS232C (COM-порт компьютера), и установленное на ПК инструментальное программное обеспечение. Микропроцессорный стенд SDK-1.1 построен на базе микроконтроллера AduC812 (вычислительное ядро MCS-51) и имеет в своем составе разнообразные устройства, предназначенные для ввода, обработки и вывода информации в цифровом и аналоговом виде. Общий вид стенда SDK-1.1 представлен на рисунке 1.

Рисунок 1 - Общий вид стенда SDK-1.1

В состав учебного стенда SDK-1.1 входят следующие компоненты:

микроконтроллер ADuC812BS;

программируемая логическая интегральная схема (ПЛИС) MAX3064;

внешнее электрически стираемое программируемое ПЗУ (EEPROM) объемом 256 байт;

внешняя статическая оперативная память (SRAM) объемом 128 Kбайт;

- клавиатура AK1604A-WWB фирмы ACCORD;

жидкокристаллический индикатор (ЖКИ) WH1602B-YGK-CP фирмы Winstar Display;

- часы реального времени PCF8583;

набор сигнальных светодиодов;

пьезокерамический акустический излучатель;

набор DIP-переключателей.

На рисунке 2 представлена структура аппаратной части учебного стенда SDK-1.1.

Рисунок 2. Структура аппаратной части учебного стенда SDK-1.1

Стенд SDK-1.1 может работать без подключения к компьютеру.

На рисунке 3 показан процесс разработки программы для стенда SDK-1.1.

Рисунок 3. Процесс разработки программ для SDK-1.1

Программы для стенда располагаются в ОЗУ объемом 128 Кбайт. Из этих 128 Кбайт как память программ (особенности MCS-51) могут использоваться лишь 56 Кбайт (в стенде первые 8 Кбайт памяти программ заняты ПЗУ, в котором располагается системное программное обеспечение, отсюда 64 Кбайт - 8 Кбайт = 56 Кбайт). Однако, как показывает практика, программы такого размера для стенда подготавливать не требуется. SDK-1.1 позволяет на практике ознакомиться с управлением периферийными устройствами, взаимодействующими с вычислителем посредством различных интерфейсов, освоить некоторые специфические аспекты программирования встраиваемых вычислительных систем, эффективного управления ресурсами. В стенде предусмотрена возможность симулировать некоторые внешние сигналы без использования дополнительного оборудования: сигналы внешних прерываний, счетные импульсы таймеров, аналоговые сигналы на входах АЦП. Интересно отметить возможность программного инициирования прерываний, не предусмотренную в MCS-51, однако реализованную в стенде через механизм программного управления состоянием входа внешнего прерывания INT0 AduC812. ПЗУ с резидентным программным обеспечением реализовано на кристалле ОКЭВМ AduC812 по технологии FLASH/EE и может быть перепрограммировано через интерфейс RS-232C с обычного ПК. Новые версии резидентного ПО могут доставляться в стенд без использования специальных программаторов, а тем более новых микросхем ПЗУ - достаточно иметь лишь образ доставляемой программы в виде файла и специальную утилиту на ПК.

Некоторые устройства стенда подключены к вычислителю через периферийный расширитель, реализованный на базе ПЛИС небольшой емкости, перепрограммируемой через имеемый в SDK-1.1 JTAG-порт, что дает возможность при желании изменять механизмы работы с этими устройствами.

Иногда при программировании SDK-1.1 возникает необходимость сохранять программу и после выключения питания. Так как стенд создавался для массового использования студентами, такая возможность в базовой его конфигурации имеется лишь за счет замены содержимого FLASH-памяти вычислителя. Однако ее размер составляет всего 8Кбайт, что не всегда достаточно для более серьезных программ, таких как курсовые и дипломные проекты, бакалаврские и другие исследовательские работы. К тому же, во FLASH-память AduC812 может быть записан только один образ, то есть либо одна программа, либо несколько программ, но скомпонованных в один файл. Это затрудняет обновление отдельной программы в наборе, так как, во-первых, для этого необходимо заново компоновать все программы из набора, во-вторых, невозможно перезаписать часть FLASH-памяти AduC812 без стирания всего ее содержимого.

На рисунке 4 представлено схематическое изображение стенда SDK-1.1, а расшифровка обозначений на схеме дана в таблице 1 [1].

Рисунок 4 - Схематическое изображение стенда SDK-1.1

Таблица 1

Расшифровка обозначений на лицевой панели стенда SDK-1.1

Обозначение

Расшифровка обозначения

LCD

Жидкокристаллический индикатор WH1602B-YGK-CP

KEYBOARD

Матричная клавиатура AK1604A-WWB

Z1

Звуковой пьезокерамический излучатель

SW1

Переключатель, замыкающий каналы 0 и 1 ЦАП на входы соответствующих (0, 1) каналов АЦП

SW2

Кнопка сброса RESET

SW3

Набор переключателей, замыкающих соответствующие выводы J3 на корпус (переключение в логический «0»)

J1

Выводы каналов АЦП и ЦАП

J2

Выводы JTAG-интерфейса ПЛИС MAX

J3

16 линий параллельного порта ПЛИС MAX и 4 линии параллельного порта P3 микроконтроллера AduC812 (INT0/1, T0/1)

J4

Разъем питания стенда 9 В

JDP1

Разъем последовательного порта стенда

JP1

Перемычка, замыкающая вывод PSEN микроконтроллера AduC812 на корпус

D9-D16

1.2 Микроконтроллер AduC812BS и ПЛИС MAX3064

выпускается фирмой Analog Devices - мировым лидером в области аналоговой схемотехники. AduC812 является микроконвертором и содержит в себе 12-битный АЦП со встроенным микропроцессором. Процессорное ядро AduC812 является клоном ядра Intel MCS-51.

Основные характеристики микроконтроллера:

рабочая частота 11,0592 МГц;

8-канальный 12-битный АЦП со скоростью выборок 200 Kбит/c;

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

электрически стираемое программируемое ПЗУ (EEPROM) объемом 640 байт со страничной организацией (256 страниц по 4 байта);

Flash-память программ объемом 8 Кбайт;

ОЗУ данных объемом 256 байт;

адресное пространство 16 Мбайт;

режим управления питанием;

контроллер системной шины;

универсальный асинхронный приемник-передатчик (UART);

интерфейс I2C;

три 16-битных таймера/счетчика;

сторожевой таймер (WatchDog);

параллельные порты;

внутренний температурный датчик.

На рисунке 5 представлено условно-графическое обозначение микроконтроллера AduC812 [1].

Рисунок 5. Микроконтроллер AduC812

В SDK-1.1 используется программируемая логическая интегральная схема (ПЛИС) MAX3064 фирмы Altera. В очень упрощенном виде ПЛИС представляет собой набор макроячеек и механизм для организации связи между ними. Микросхема MAX3064 содержит 64 макроячейки. Информация о связях между макроячейками хранится в энергонезависимой памяти находящейся внутри самой микросхемы. Для программирования MAX3064 использовался специальный САПР Max+PlusII. Электрическая принципиальная схема расширителя портов ввода-вывода была нарисована в этом САПР и преобразована в базис макроячеек ПЛИС и, далее, в конфигурационный файл, необходимый для соединения нужных логических ячеек ПЛИС. Конфигурационный файл доставляется в память ПЛИС через интерфейс JTAG. Условно-графическое обозначение ПЛИС приведено на рисунке 6.

Рисунок 6. ПЛИС MAX3064

В стенде SDK-1.1 MAX3064A используется как расширитель портов ввода-вывода. Микросхема MAX3064A подключена к внешней шине AduC812. Адресная линия A19 используется как сигнал CS (chip select) для MAX3064A. ПЛИС выбирается, когда на линии A19 логическая единица. Физический адрес ПЛИС таким образом равен 0x80000, что соответствует восьмой странице памяти.

К ПЛИС подключены следующие устройства: клавиатура, ЖКИ, линейка светодиодов, звуковой излучатель, 16 дискретных портов ввода-вывода. Для программиста расширитель портов представлен в виде нескольких однобайтовых регистров находящихся в начале восьмой страницы памяти данных.

Рассмотрим регистры ПЛИС, представленные в таблице 2.

Таблица 2

Перечень регистров ПЛИС

Адрес

Регистр

Доступ

Назначение

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

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


Обозначение R/W означает, что регистр доступен для чтения и для записи, обозначение W означает, что регистр доступен только для записи [1].

Ниже приведена информация о регистре ENA, так как в данной работе необходимо работать с данным регистром.

Схематическое изображение регистра управления ENA представлено на рисунке 7.

Рисунок 7

Регистр управления ENA

7

6

5

4

2

1

0

-

W

W

W

W

W

W

W

-

KB

INT0

SND2

SND1

SND0

EN_HI

EN_LO


Адрес регистра ENA в памяти равен 080004H. Значение регистра после сброса равно x0100000B. Назначение битов регистра ENA указано в таблице 3 [1].

Таблица 3

Назначение битов регистра ENA

Биты

Поле

Описание

0

EN_LO

В полной конфигурации бит EN_LO нужен для управления младшими 8 разрядами (биты 0-7) 16-разрядного порта ввода-вывода. Если записать в EN_LO логический «0», то порт ввода-вывода переводится в Z-состояние и появляется возможность чтения данных из EXT_LO. При записи в данный бит логической «1» порт переключается на вывод и данные, записанные в регистр EXT_LO, попадают на выход порта ввода-вывода. В упрощенной конфигурации этот бит управляет всеми 16 разрядами порта ввода-вывода. Если записать в EN_LO логический «0», то весь порт ввода-вывода переводится в Z-состояние и появляется возможность чтения данных из регистров EXT_LO и EXT_HI. При записи в данный бит логической «1» порт переключается на вывод и данные, записанные в регистры EXT_LO и EXT_HI, попадают на выход порта ввода-вывода.

1

EN_HI

В полной конфигурации бит EN_HI нужен для управления старшими 8 разрядами (биты 8-15) 16-разрядного порта ввода-вывода. Если записать в EN_HI логический «0», то порт ввода-вывода переводится в Z-состояние и появляется возможность чтения данных из EXT_HI. При записи в данный бит логической «1» порт переключается на вывод и данные, записанные в регистр EXT_HI, попадают на выход порта ввода-вывода. В упрощенной конфигурации бит EN_HI не влияет на функционирование порта ввода-вывода. Все управление портом производится битом EN_LO.

2-4

SND0-SND2

Выход звукового ЦАП. Задает уровень напряжения на динамике. Позволяет формировать звуковые сигналы различной тональности и громкости.

5

INT0

При записи логического «0» в этот бит на вход INT0 AduC812 также попадает логический «0». Бит можно использовать для формирования внешнего прерывания для микроконтроллера.

6

KB

В полной конфигурации при записи логического «0» прерывание от клавиатуры запрещается. Если бит установлен в «1», то прерывание от клавиатуры разрешено. В упрощенной конфигурации бит KB всегда равен нулю, то есть прерывание клавиатуры запрещено.


2. ПРОГРАММИРОВАНИЕ СТЕНДА SDK-1.1

2.1 Демонстрационный режим

Существует два режима работы SDK-1.1: обычный (запуск загрузчика HEX202 для загрузки пользовательских программ) и демонстрационный (выбор и запуск демонстрационных программ).

Режим работы определяется при старте системы положением переключателя EP7, изображенного на рисунке 8.

Рисунок 8. Переключатель EP7

Если переключатель включен (положение ON), то система стартует в демонстрационном режиме, если выключен (положение OFF), система стартует в обычном режиме. При старте в обычном режиме управление сразу передается программе-загрузчику HEX202.

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

Рисунок 9. Функциональное назначение клавиш

Меню в программном комплексе организовано следующим образом: первая строка двухстрочного дисплея SDK-1.1 содержит название меню, вторая строка используется для отображения пунктов меню. Нажатие клавиш «вверх» или «вниз» приводит к отображению соответственно предыдущего или последующего пункта. Клавишами «влево» или «вправо» можно перейти соответственно в начало или в конец меню. Выбор можно подтвердить клавишей «Enter» («Ввод») или отменить (выйти в меню верхнего уровня) клавишей «Cancel» («Отмена»). Каждое нажатие клавиши сопровождается звуковым сигналом. При длительном удержании клавиши включается режим автоповтора нажатия клавиши.

Программа-загрузчик HEX202 обеспечивает доставку в ОЗУ стенда SDK-1.1 пользовательских программ в формате Intel HEX. Доставка осуществляется с ПК по последовательному каналу RS232 с помощью инструментальных систем, поставляемых в комплекте со стендом. Процесс написания, компиляции и доставки программ для стенда SDK-1.1, а также протокол загрузки HEX-модулей детально описан в следующем разделе. При выборе из главного меню комплекса программы-загрузчика возврат из нее возможен только при перезапуске системы [1].

2.2 Работа с модулем SDX-09 системы автоматического управления на базе комплекса SDK-1.1

Модуль дискретного и аналогового ввода-вывода SDX-09 предназначен для использования в составе лабораторного комплекса совместно с учебными лабораторными стендами SDK-1.1 и SDK-1.1s с целью изучения: систем на базе микропроцессоров и однокристальных микроЭВМ; встраиваемых контроллеров и систем сбора данных; периферийных блоков вычислительных систем; подсистем ввода-вывода встраиваемых систем.

Модуль SDX-09 позволяет подключать внешние устройства, через аналоговые порты ввода-вывода и гальванически изолированные дискретные порты ввода-вывода к контроллеру SDK-1.1. Модуль SDX-09 представляет собой печатную плату с двухсторонним расположением электронных компонентов. Печатная плата крепится в корпус профиль UM-108. Внешний вид модуля SDX-09 представлен на рисунке 10.

Рисунок 10. Внешний вид модуля SDX-09

Похожие работы на - Разработка программы для лабораторного стенда SDK 1.1

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!