Автор работы: Пользователь скрыл имя, 28 Января 2014 в 22:02, курсовая работа
На сегодняшний день производители микропроцессоров все больше и больше сближают их с однокристальными микроконтроллерами, сочетая в одном кристалле вычислительную мощь и возможность реализации функций контроля и управления. Использование микроконтроллеров в оборудовании позволяет повысить производительность, качество работы, помогает снизить затраты некоторых ресурсов. Даёт возможность решать сложные проблемы программного регулирования, существенно улучшает технические и экономические характеристики автоматизированного оборудования.
Введение 6
1 Обзор литературы. 7
2 Анализ технического задания. 12
3 Разработка структурной схемы системы и ее описание. 21
4 Разработка функциональной схемы системы и ее описание 24
4.1 Микроконтроллер ADuC812 24
4.2 Внешняя память E2PROM 25
4.3 Матричная клавиатура AK1604A-WWB 26
4.4 Жидкокристаллический индикатор WH1602B-NGK-CP 28
4.5 Часы реального времени PCF8583P 29
4.6 ПЛИС PM3064ATC100 30
4.7 Интерфейс RS232 (COM порт) 32
4.8 Интерфейс процессора с памятью 33
5 Разработка схемы электрической принципиальной системы и ее описание 36
6 Разработка программного обеспечения. 37
6.1 Разработка программы для микроконтроллера 37
6.1.1 Создание нового проекта 38
6.1.2 Резидентный загрузчик НЕХ202 38
6.1.3 Загрузка программ в лабораторный стенд SDK-1.1 39
6.1.4 Описание основной части кода программы для микроконтроллера 40
6.2 Разработка программы для ПК 42
Заключение. 44
Список использованных источников. 45
Внешняя память. Внешняя память SDK-1.1 разбита на следующие области: AduC812 Flash/EE, SRAM, MAX. Распределение адресов внешней памяти представлено в таблице 3.
Таблица 3. Распределение адресов внешней памяти
Flash/EE |
SRAM | |||
Page 1 |
Pages 2..7 |
Page 8 |
Диапазон адресов | |
0x0000 |
0x02000 |
0x10000 |
0x80000 | |
0x2000 |
0x0FFF |
0x7FFFF |
0x8FFFF |
ADuC812 Flash/EE. Память Flash/EE представляет собой постоянную память, в которой хранится сервисная программа обслуживающая стенд, в ней находится набор тестов оборудования и драйвер RS232, позволяющий загружать пользовательский программы. При подаче питания или сбросе управление передаётся по нулевому адресу и происходит инициализация всех регистров.
Если пользовательская программа обратится к адресу 0, то стенд пройдёт процедуру реинициализации, что равносильно нажатию кнопки «сброс». Запись в эту область памяти возможна только в режиме программирования Flash-памяти, в простом режиме доступ к ним закрыт. Это необходимо учесть при разработке программы - код должен располагаться по адресам не ниже 0x2000. Это область, в которой располагается таблица векторов прерываний и резидентный загрузчик файлов в формате HEX в память SRAM.
Память SRAM (Внешнее ОЗУ). Статическая память имеет страничную организацию и представляет собой восемь страниц размером 64Кб каждая. Условно всю память SRAM разделяют на три участка: первая страница, страницы со второй по седьмую и восьмая страница.
Выборка кода может осуществляться только из первой страницы, и поэтому весь код должен располагаться именно здесь. Страницы со второй по седьмую могут быть использованы только для хранения данных. Восьмая страница особенна тем, что в первых 8 байтах расположены регистры микросхемы MAX 8064.
В младших адресах восьмой страницы адресного пространства (080000h-080007h) располагается 8 ячеек регистров ПЛИС МАХ8064 (МАХ8128). Эта область предназначена для взаимодействия с периферийными устройствами стенда.
Таблица 4. Модели и селекторы памяти
Селек-тор |
Область памяти |
data |
128 байт во встроенной RAM – непосредственная адресация |
bdata |
16 байт во встроенном RAM - непосредственная битовая/байтовая адресация |
idata |
256 байт во встроенном RAM - косвенная адресация |
pdata |
256 байт в страничной внешней RAM |
xdata |
64 Kбайт расширенной RAM |
code |
64 Kбайт памяти программ |
far |
16 Мбайт памяти data/const, размер объекта 64 Kбайт |
near |
64 Kбайт непосредственно |
huge |
16 Мбайт косвенно адресуемой памяти, объект произвольного размера |
edata |
96 байт расширенной побитно |
Рассчитаем объем памяти буферного ОЗУ, которое необходимо для хранения данных, которые будут получены за 1 секунду работы АЦП.
Согласно техническим параметрам стенда SDK1.1, быстродействие встроенного АЦП, т.е время, которое требуется АЦП на преобразование одной выборки равно 20 тактам (периодам) частоты АЦП. Диапазон частот АЦП 400КГц – 3 МГц. Частота тактового генератора стенда FBQ=11,059. Тактовая частота АЦП выбирается программистом с помощью регистра ADCCon1. Программный делитель частоты, задаются битами 4 и 5 этого регистра след значение -1,2,4,8
Fтактовое АЦП=
где k – принимает значение 1,2,4,8
Fтакт ацп= = 1,382375 МГц
Tпреобр АЦП =20*Такт=20
По теореме Котельникова следует, что частота дискретизации должна быть минимум вдвое выше верхней частоты спектра (по заданию 20КГц), следовательно, частота дискретизации будет равна 40КГц.
Период дискретизации =
Это означает, что временной интервал между выборками составляет 25 микросекунд. Мы получаем 40 тысяч выборок за одну секунду. Размер каждой выборки равен двум байтам, соответственно, нам необходим объем памяти равный 80 тысячам байт или 80 килобайтам для одного канала и 640 килобайтам для восьми каналов, соответственно. Следовательно, мы получим слишком большой объем данных. Так как 8кб внутренней памяти программ нам недоступно, а 640 Байт внутренней памяти данных нам явно недостаточно, мы вынуждены будем использовать для хранения данных внешнее ОЗУ, а точнее его 456 килобайт (первые 64 Кб из 512Кб используются для хранения программ). Подробнее структурная организация внешнего ОЗУ описана выше. Распределение адресов внешней памяти приведено в таблице 3.
Нам необходимо решить ситуацию с размещением данных в памяти без их потери. Решений проблемы несколько – понижение частоты ГТИ или уменьшение частоты дискретизации. Можно также использовать стенд в режиме прямого доступа к памяти для приложений, в которых ЦП не может поддерживать высокую скорость оцифровки.
Так как в данном стенде используется микроконтроллер ADuC812, мы не можем изменить частоту тактового генератора (она жестко фиксирована), а лишь с использованием делителя частоты (к=8). Есть еще вариант выключать АЦП и производить обработку данных и запись их в память, затем включать АЦП и получать следующую порцию данных. Понижение верхней частоты спектра с 20КГц до 10КГц мы добьемся уменьшения частоты дискретизации также в два раза. (Уменьшив частоту дискретизации вдвое, уменьшится количество выборок, время преобразования АЦП увеличится). Но и эти действия не позволят целиком решить проблему,
Нам необходимо разбить 1 секунду на интервалы, которые позволят АЦП успеть оцифровать данные и записать их в память. Период дискретизации будем задавать при помощи таймера счетчика.
Следующей задачей является запись данных из внешнего ОЗУ стенда на ЖМД компьютера через интерфейс RS-232. Проблема заключается в согласовании обмена данными между стендом и ПК. Появляется необходимость написания управляющей программы, которая бы принимала данные от стенда через СОМ порт и записывала их на ЖМД в нужном нам формате.
По ТЗ необходимо в записываемых данных учитывать также номер канала, и время начала оцифровки.
Для программирования стенда может использоваться любой транслятор ассемблера или C для ядра 8051, например, пакет µVision (Keil Software). До
начала программирования на языке C рекомендуется внимательно ознакомиться с документацией по используемому компилятору, так как компиляторы для микроконтроллеров имеют нестандартные расширения.
Основные этапы
– подготовка программы в текстовом редакторе или среде программирования;
– транслирование исходного текста и получение загрузочного HEX-модуля программы;
– подготовка и загрузка HEX-модуля в стенд через интерфейс RS232C с помощью поставляемых инструментальных систем. Под подготовкой понимается добавление в конец модуля строчки со стартовым адресом программы, то есть адреса, по которому передается управление после загрузки в стенд;
– прием и обработка HEX-модуля резидентным загрузчиком HEX202,передача управления загруженной программе.
На рисунке 2 показаны этапы программирования стенда SDK-1.1.
Рисунок 2. Этапы программирования на стенде SDK-1.1
Напишем алгоритм приблизительной работы нашей будущей программы:
При написании программ для стенда будем пользоваться средой программирования Keil Vision. Для приема данных от стенда и последующей их записи была выбрана программа Terminal v1.9b. Для написания программы работы с уже полученными данными выбрана среда программирования Borland Delphi 7.
3 Разработка структурной схемы системы и ее описание.
Рисунок 3. Структурная схема стенда системы накопления.
Учебный лабораторный комплекс SDK–1.1 разработан на базе микроконтроллера ADuC812 с ядром MCS–51.
В состав учебного стенда SDK-1.1 входят:
Технические и эксплуатационные характеристики
Модуль дискретного и
Технические и эксплуатационные характеристики
Рисунок 4. Структурная схема стенда-расширителя SDX-09
4 Разработка функциональной схемы системы и ее описание
В этой главе будут рассмотрены основные функциональные блоки стенда SDK-1.1: микроконтроллер ADuC812, внешняя память, матричная клавиатура, жидко кристаллический индикатор, часы реального времени, ПЛИС, интерфейс RS 232, интерфейс процессора с памятью и будет разработана функциональная схема всего стенда.
4.1 Микроконтроллер ADuC812
Микропроцессорный стенд SDK-1.1 построен на базе однокристальной микро-ЭВМ фирмы Analog Device типа ADuC812 (вычислительное ядро MCS-51). ADuC812 - интегральная 12-разрядная система сбора информации, включающая в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП и программируемое 8-битное микропроцессорное ядро (совместимое с 8051, MCU). MCU поддерживается внутренними 8К FLASH ЭРПЗУ программ, 640 байт ЭРПЗУ памяти данных и 256 байт статической памяти данных с произвольной выборкой (RAM). MCU поддерживает следующие функции: сторожевой таймер, монитор питания и канал прямого доступа к памяти для АЦП. Для мультипроцессорного обмена и расширения ввода/вывода имеются 32 программируемые линии, I2C, SPI и UART интерфейсы. Для гибкого управления в приложениях с низким потреблением в MCU и аналоговой части предусмотрены 3 режима работы: нормальный, холостой и дежурный. Продукт специфицирован для +3/+5В работы в индустриальном диапазоне температур и поставляется 52-выводном пластмассовом корпусе (PQFP).
Микроконтроллер имеет
стандартный набор из 4-х 8-разрядных
портов ввода/вывода дискретных сигналов
P0, P1, P2 и P3. Они характеризуются многофункц