Контроллер сбора аналоговой информации

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

Контроллер сбора аналоговой информации

Содержание

 

1. Введение

2. Техническое задание

2.1 Параметры устройства

3. Краткое описание микроконтроллера

3.1 Общее описание микроконтроллера

3.2 Описание периферийных устройств

4. Описание функционирования устройства

4.2 Принципиальная схема

4.3 Описание элементов схемы

5. Схема устройства

6. Листинг прграммы

1. Введение

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

Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса.

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

2. Техническое задание


Необходимо спроектировать схему выполненную на основе однокристального микроконтроллера 51 серии для получения с 8 аналоговых входов информации о изменении их состояния с течением времени. Данные регистрируются сразу на всех восьми входах при поступлении импульса синхронизации от самого контролера и накапливаются в ОЗУ подключённом к микроконтроллеру. При подключении внешней эвм или при заполнении памяти, данные необходимо передавать на ЭВМ по интерфейсу RS232 со скоростью 9600 Бод при поступлении запроса от ЭВМ.

Необходимо написать программу для контроллера, которая будет обрабатывать поступающие данные, накапливать их в ОЗУ и передавать на ЭВМ.

 

2.1 Параметры устройства


Число каналов - 8;

Тип сигналов - аналоговые уровни в диапазоне 0-10В.

Передача информации - интерфейс RS232;

Скорость передачи по последовательному порту - 9600 Бод;

3. Краткое описание микроконтроллера


3.1 Общее описание микроконтроллера


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

наличие достаточного количества портов ввода-вывода, аналого-цифрового преобразователя желательно с восьмиканальным коммутатором и возможностью подключения внешнего ОЗУ.

Микроконтроллер ADuC812 удовлетворяет вышеперечисленным требованиям, и подходит для реализации поставленной задачи. Он является аналогом микро-ЭВМ 51-й серии, с которой он совместим программно и аппаратно, но имеет более развитую архитектуру. Данный микроконтроллер представляет собой следующую архитектуру:

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

-ми канальный 12-ти разрядный АЦП;

двенадцати разрядных ЦАП;

Кб FLASH ПЗУ;

байт FLASH данных;

Байт внутреннего ОЗУ;

позволяет адресовать 16 Мб внешнего ОЗУ;

позволяет адресовать 64 Кб памяти программ;

система прерываний имеет 9 источников, 2 уровня приоритетов;

Поддерживается последовательный канал стандарта I2C;

восьми разрядных порта ввода/вывода

Данный контроллер реализован в виде одноплатного модуля, имеющего в своем составе не только буферные элементы, но и внешнее ОЗУ, в которое производиться загрузка программы с персонального компьютера.

Название

Вывод

Тип

Назначение

AGND

22

I

Аналоговая земля.

DVdd

44

I

Питание +5V

P0.0-P0.7

43-46, 49-52

I/O

Порт P0. Двунаправленный порт с открытым стоком.

P1.0-P1.7

1-4, 11-14

I

Порт P1, только ввод, по умолчанию настраивается на ввод аналоговых сигналов,.

P2.0-P2.7

28-31, 36-39

I/O

Порт P2. Двунаправленный порт с внутренними подтягивающими резисторами.

P3.0-P3.7

16-19, 22-25

I/O

Порт P3. Двунаправленный порт с внутренними подтягивающими резисторами.

XTAL1

21

I

Вход тактового генератора

20

O

Выход тактового генератора


 

3.2 Описание периферийных устройств


Таймеры/счётчики:

ADuC812 содержит три 16-ти разрядных счетчика таймера: Таймер0, Таймер1 и Таймер2. Каждый таймер/счетчик состоит из двух 8-ми разрядных регистров THx и TLx (х = 0, 1 и 2). Все три можно сконфигурировать как таймеры, либо как счетчики событий.

В режиме "Таймера" регистр TLx инкрементируется в каждом машинном цикле. В этом режиме работу можно рассматривать как счет машинных циклов. Так как машинный цикл состоит из 12 периодов осциллятора, то максимальная скорость счета составляет 1/12 от частоты осциллятора. В режиме "Счетчика" регистр TLx инкреминтируется по перепаду 1 - 0 на соответствующем контакте микросхемы Т0, Т1 или Т2.

Счетчики/таймеры могут работать в 3-х основных режимах:

Оставлен для совместимости с 48-й серией, на таймер поступает OSC/32, разрядность 13 бит.

Работает как 16-ти разрядный счетчик. При переполнении состояние изменяется с FFFFh на 0000h. При необходимости изменения коэффициента деления после переполнения в каждом такте необходимо записывать заданную константу.

Счетчик работает как 8-ми разрядный, причем используется младшая часть - TL. В старшей части (TH) находится делитель, который по переполнению TL автоматически перегружается из TH в TL.

Режимы работы таймеров Таймер0 и Таймер1 задают два регистра специальных функций (SFR - Special Function Register): регистр режима - TMOD, расположенный по адресу 89h в регистровой памяти и регистр управления таймерами и внешними прерываниями - TCON (88h). Для управления работой таймера Таймер2 служит регистр T2CON.

Регистр TMOD условно разбит на две половины: первая его часть отвечает за Таймер0, а вторая - за Таймер1.

Распределение битов регистра TMOD следующее:

Бит0 - (М0) - Младший байт поля управления режимом;

Бит1 - (М1) - Старший байт поля управления режимом;

Бит2 - (С/Т0) - Выбор функции таймера или счетчика для Таймера0: 0 - таймер; 1 - счетчик;

Бит3 - (GATE0) - Флаг управления входом:

- работа канала разрешается (INT0=1, TR=1)

- работа счетчика зависит только от TR0

Распределение битов регистра TCON следующее:

Бит0 - (IT0) - Управление типом входа INT0:

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

- статическое состояние входа.

Бит1 - (IE0) - Флаг запроса прерывания INT0 при динамическом входе. Сбрасывается, когда происходит режим подтверждения прерывания.;

Бит2,3 - (IT1/IE1) - Тоже, что и предыдущие биты, но для Таймера0;

Бит4 - (TR0) - Флаг программного запуска Таймера0

Бит5 - (TF0) - Флаг переполнения Таймера0, который вызывает запрос прерывания. При подтверждении прерывания флаг сбрасывается;

Бит6,7 - (TR1,TF1) - Для Таймра1;

Для работы с таймером используется механизм прерываний, работой которого можно управлять через регистр маски прерываний IE (Interrupt Enable). Назначение битов регистра IE следующее:

Бит0 - (EX0) - Бит разрешения внешнего прерывания INT0.

Бит1 - (ET0) - Бит разрешения прерывания по переполнению Таймера0;

Бит2 - (EX1) - Бит разрешения внешнего прерывания INT1;

Бит3 - (ET1) - Бит разрешения прерывания по переполнению Таймера1;

Бит4 - (ES) - Бит разрешения прерывания от последовательного порта UART.

Бит5 - (ET2) - Бит разрешения прерывания по переполнению Таймера 2

Бит6 - (EADC) - Бит разрешения прерывания АЦП

Бит7 - (EA) - Бит разрешения глобального прерывания. Если EA=0, то все прерывания запрещены;

12-ти разрядный 8-ми канальный АЦП;

Блок АЦП представляет собой восьмиканальный пяти микросекундный преобразователь с однополярным питанием. АЦП позволяет работать как в однократном режиме измерения, так и в циклическом. Запуск на преобразование осуществляется или по внешнему сигналу, подаваемому на 23-й контакт (CONVST/) или по сигналу переполнения Таймера2.

Для управления АЦП имеется 3 основных SFR-регистра: ADCCON1, ADCCON2, ADCCON3.

Регистр ADCCON1 производит управление преобразованием, временем переключения и режимами. Структура управл бит ADCCON1 следующая:

№ бита

Мнемоника

Описание

0

EXС

Бит разрешения внешнего запуска. Если установлен, то контакт 23 (CONVST/) будет использоваться как сигнал запуска (активный низкий должен быть не менее 100 нс).

1

T2C

Бит запуска преобразования от Таймера2. Если бит установлен, то сигнал переполнения Таймера2 используется для запуска АЦП.

2

AQ0

Биты задержки переключения, выбирают время, необходимое для перезарядки УВХ при переключении мультиплексора: AQ1 AQ0 Число тактов задержки запуска АЦП 0 0 1 0 1 2 1 0 3 1 1 4

3

AQ1


4

CK0

Биты деления тактовой частоты, выбирают коэффициент деления основной частоты микропроцессора для получения тактовой частоты АЦП. Цикл преобразования АЦП занимает 16 тактов, в дополнении к числу тактов переключения. Коэффициент выбирается из: CK1 CK0 Делитель для MCLK 0 0 1 0 1 2 1 0 4 1 1 8

5

CK1


6

MD0

Биты режима выбирают режимы работы АЦП следующим образом: MD1 MD0 Режим АЦП 0 0 Дежурный 0 1 Нормальный 1 0 Дежурный, если не выполняется цикл преобразования 1 1 Холостой, если не выполняется цикл преобразования

7

MD1



Регистр ADCCON2 управляет выбором канала и режимами преобразования. Он имеет следующий формат:

№ бита

Мнемоника

Описание

CS0

Биты выбора входных каналов. Позволяют осуществлять выбор номера канала АЦП под управлением программы. Преобразование будет выполняться для канала, номер которого указан данными битами. В режиме ПДП выбор номера канала осуществляется из ID канала, записанного во внешней памяти. CS3 CS2 CS1 CS0 CH# 0 n2 n1 n0 Номер входного канала (n2n1n0) 1 0 0 0 Температурный сенсор 1 x x x Другие комбинации 1 1 1 1 Останов ПДП

1

CS1


2

CS2


3

CS3


4

SCONV

Бит запуска однократного преобразования. Устанавливается пользователем для однократного запуска АЦП. Бит сбрасывается автоматически по завершению преобразования.

5

CCONV

Бит циклического преобразования. Устанавливается пользователем для установки АЦП в режим непрерывного циклического преобразования. В этом режиме АЦП выполняет преобразование в соответствии с типом синхронизации и конфигурацией каналов, выбранными в других SFR.

6

DMA

Бит разрешения режима ПДП. Устанавливается пользователем для начала операции ПДП со стороны АЦП.

7

ADCI

Бит прерывания АЦП устанавливается аппаратно по окончанию однократного цикла преобразования АЦП или по окончанию передачи блока в режиме ПДП. ADCI очищает аппаратно при переходе по вектору на процедуру обслуживания прерывания.


Регистр ADCCON3 является регистром статуса АЦП и используется только для чтения. Бит 7 этого регистра - бит занятости, автоматически устанавливается в 1 во время преобразования, по окончанию цикла преобразования автоматически очищается. Биты с 0-го по 6-й зарезервированы и в программе пользователя не используются.

Как только АЦП сконфигурирован и установлен бит SCONV регистра ADCCON2, начинается преобразование аналоговых входных сигналов и выдача 12-разрядных выходных кодов в регистры ADCDATAH и ADCDATAL.состоит из двух частей: номер канала (старшие четыре бита) +старшие разряды (младшие четыре бита), ADCDATAL содержит младшие разряды АЦП:

ADCDATAH


ADCDATAL


















не используются

старшие 4 разряда 12-разрядного слова АЦП


младшие 8 разрядов 12-разрядного слова АЦП



4. Описание функционирования устройства


Микроконтроллер снимает со входов информацию о состоянии аналоговых уровней, данная съемка стробируется внутренним тактовым импульсом что позволяет зафиксировать на запоминающих конденсаторах одновременно состояние всех восьми входных уровней и в дальнейшем переключая каналы коммутатора оцифровать их. При приходе от компьютера команды запроса контроллер передаёт накопленную в ОЗУ информацию в ЭВМ по интерфейсу RS232 со скоростью 9600 Бод.

 

4.2 Принципиальная схема


Принципиальная схема приведена на чертеже в приложении 1.

На входе перед повторителями установлены простейшие делители приводящие уровень 0-10В к уровню 0-5В. Каждый повторитель подключен к аналоговому коммутатору который на некоторое время подключает запоминающий конденсатор и фиксирует напряжение на входе. Так как далее конденсатор отключается, от повторителя то на нем на определенное время фиксируется принятый с повторителя уровень напряжения. Входы коммутатора АЦП микроконтроллера высокоомные поэтому мы даже при медленном цикле оцифровки успеваем снять точные измерения всех входных потенциалов, на всех восьми каналах.

 

4.3 Описание элементов схемы


Микросхема DА1 - операционный усилитель К544УД1 широко используемый в измерительной технике в данном случае включен как повторитель аналогового сигнала.

контроллер программа аналоговая информация

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

Микросхема DD2 - преобразователь уровня ТТЛ - СОМ-порт, необходима для согласования электрических уровней микроконтроллера и COM-порта компьютера. Уровень логического нуля и единицы у микроконтроллера равны 0 и +5В, а у COM-порта компьютера +12В и - 12В соответственно. Микросхема питается напряжением +5В, а напряжения ±12В она генерирует с помощью встроенных преобразователей напряжения.

Микросхема DD3 - однокристальный микроконтроллер ADUC812 описание не привожу так как имеется по тексту ранее.

Микросхема DD4 - буферный регистр К580ИР22 используется для фиксации части адреса при выполнении цикла обмена с ОЗУ.

Микросхема DD5 - статическое ОЗУ с разрядностью 8 бит объемом 32Кбайта в нем производиться сохранение принятой информации.

 


5. Схема устройства



6. Листинг программы


dataIN: do; /* устройство сбора аналоговой информации*/

include (reg812. dcl)(32000) byte auxiliary,/*массив сохраняемых данных*/

(hADC,LADC,hADC1,lADC2,pp) byte,/*переменные для расчета*/

(i,j,n,k,s,t) byte,/* переменные для работы в цикле*/

(AdrL,AdrH) byte,/*адрес обращения*/

Data (8) byte,/*массив для промежут хранен даных*/

Pr byte;

/*----------------------------------------------------------------------------*/_int: procedure interrupt 1; /* прерывание t0 */=0; /* sbros flaga perepolneniya */(time_out<per_t0) then /*если время ожидания превышено */;

if (fl_key=0) then

do; /* проверка найн код или нет*/

P0.3=1; call delay (255);.3=0; /* сброс компьютера если не найден */_t0=0; /* обнуление счетчика переполнения*/

end;

else

do;fl_key=3 then tr0=0; /*использован обычный ключ блокируем таймер*/=n_key; /* передаем регистрационный номер введенного ключа */;;_t0=per_t0+1; /* увеличиваем счетчик переполнений */

/*далее выполняем вывод на семисегментный индикатор номера пользователя*/

segment=segment+1;segment>=4 then segment=1;segment=1 then do;_buf (1) = (n_key/100);

P1= (ind_buf (1) or 10h); /*выводим 100 на пеpв сегм*/

end;segment=2 then do;_buf (3) = (n_key mod 100);_buf (2) =ind_buf (3) /10;= (ind_buf (2) or 20h); /*выводим на втоpой сегмент десятки*/;segment=3 then do;

ind_buf (3) = (ind_buf mod 10); /*вычисляем значение единиц*/= (ind_buf (3) or 40h); /*выводим натpетий индикатоp единицы*/

end;timer_int;

/*----------------------------------------------------------------------------*/: procedure interupt 2; /* int1 */

IE1=0; /* zaprechaem prerivanie int1 */_input=1;

tr0=1; /* ragreshaem raboty tai'mera */.2=0;

end power;: procedure; /* пpоцедуpа инициализации*/

econ=1; /*устанавливаем pежим чтения FLASH памяти пользователя*/=0; /*устанавливаем указатель на начало флеш*/=1; /*pазpешаем все пpеpывания*/=1; /*pазpешаем пpеpывание Т0*/=1; /*запускаем таймеp 0*/=1; /*pазpешаем внешнее пpеpывание*/=1; /*pазpешаем пpеpывание UART*/=00010001b; /*пеpвый pежим таймеpа для 0 и 1*/=1; /*пpеpывание по фpонту сигнала пеpеполнения*/,tl0=0; tr0=1; /*обнуляем счетчики и pазpешаем pаботу 0го Таймеpа*/

/*инициализация второго таймера для синхронизации UART*/=1; /*2й как таймеp*/=1; /*режим захват*/=1;=0; /*8ми битный pежим*/=1; /*1ин стоп бит*/h=0feh; rcap2l=0b8h; /*установка скоpости UART 2400*/

fl_key=0;

end init;

/*___________ тело основной пpогpаммы______________*/

call init;while 1; /*бесконечный цикл pаботы*/

t=0;while (fl_inIB<>0) and (t<255); t=t+1;

call in_ibutton; end; /*выполняем процедуру чтения ключа пока. */find; /*ищем ключ в памяти*/

p10_old=1; p11_old=1; p12_old=1;fl_key=1 then do;while 1;(p1.0=0) and (p10_old=1) then do; /*вызов пеpезаписи ключа*/add_IB; p10_old=0; end;(p1.1=0) and (p11_old=1) then do;_key=n_key+1; if n_key>255 then n_key=255; p10_old=0; end;(p1.2=0) and (p12_old) then do;_key=n_key-1; if n_key=0 then n_key=1; p12_old=0; end;;dataIN;

Похожие работы на - Контроллер сбора аналоговой информации

 

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