Построение и разработка систем на основе микроконтроллеров семейства MSP430

Проектирование устройства, измеряющего температуру в помещении. Выбор датчика температуры, микроконтроллера и отладочной платы. Изучение работы встроенного датчика температуры. Разработка программного обеспечения. Функциональная организация программы.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 26.12.2013
Размер файла 2,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. Анализ технического задания

2. Выбор и обоснование технического решения

2.1 Разделение функций между аппаратной и программной частями

2.2 Структурная схема

2.3 Выбор элементной базы

2.3.1 Выбор датчика температуры

2.3.2 Выбор микроконтроллера

2.3.3 Выбор отладочной платы

3. Функциональная схема

4. Разработка программного обеспечения

4.1 Выбор среды программирования

4.2 Алгоритм работы программы

4.3 Функциональная организация программы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ

  • ОПРЕДЕЛЕНИЯ И СОКРАЩЕНИЯ

ПЗУ - постоянное запоминающие устройство;

АЦП - аналогово-цифровой преобразователь;

ОЗУ - оперативное запоминающее устройство;

ЦПУ - центральное процессорное устройство;

ИОН - источник опорного напряжения;

MAB - шина адреса;

MDB - шина данных;

MIPS - Million Instructions Per Second(миллионом операций в секунду);

SFR - регистр специальных функций;

NMI - Non-maskable interrupt(немаскируемых прерывания);

I2C - последовательная шина данных

CCS - Code Composer Studio(код композер студио);

ВВЕДЕНИЕ

Регулирование и автоматизация многих промышленных процессов требует точного и достоверного измерения температуры. Управляемый микропроцессором датчик температуры представляет собой универсальное решение для измерения температуры в любых условиях эксплуатации. Благодаря простоте обслуживания, обширному набору функций и возможности расширения это техническое решение можно использовать в различных технологических процессах. Данные приборы используются в промышленных процессах изготовления лекарств, системах контроля и управления производственными циклами, климатических установках[1].

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

Данная задача очень важна, ведь, отслеживая температуру можно сделать жизнь человека более удобной и комфортней, а так же реализовать более экономичное использование энергоресурсов.

1. Анализ технического задания

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

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

Устройство рассчитано на работу внутри помещения, исходя из этого, будет подбираться элементная база, удовлетворяющая условиям работы в помещениях.

2. Выбор и обоснование технического решения

2.1 Разделение функций между аппаратной и программной частями

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

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

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

2.2 Структурная схема

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

Рисунок 2.1 - Структурная схема

Условные обозначения рисунка 2.1:

ДТ - датчик температуры;

МК - микроконтроллер.

ОП - отладочная плата (для демонстрации работы устройства);

ИН - индикаторы;

КН - кнопки управления;

2.3 Выбор элементной базы

2.3.1 Выбор датчика температуры

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

Таким датчиком может служить встроенный датчик микроконтроллера [1,2].

Датчик представляет собой терморезистор или термодиод, встроенный в корпус микроконтроллера.

Особенности:

· температурный диапазон, как правило: -40 до +85 °С;

· точность измерения во всем диапазоне температур: малая ±2, ±3,0°С;

· тип корпуса: встроен в корпус микроконтроллера.

Использование встроенного датчика температуры

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

При выборе датчика температуры встроенный генератор опорного напряжения автоматически задействуется в качестве источника напряжения для датчика. Однако вывод VREF+ при этом не включается и настройки источника опорного напряжения для преобразования не изменяются. Выбор опорного напряжения для преобразования сигнала от датчика температуры производится так же, как и для любого другого канала преобразования.

2.3.2 Выбор микроконтроллера

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

Таким требованиям удовлетворяет микроконтроллер со сверхнизким потреблением семейства MSP430G2553 компании Texas Instruments.

Общие сведения о микроконтроллере MSP430G2553 [1]

Архитектура

Микроконтроллеры семейства MSP430 имеют фон-неймановскую архитектуру (Рис. 2.2) и содержат 16битное RISC ЦПУ, периферийные модули, а также гибкую систему тактирования, объединённые общими шинами адреса (MAB) и данных (MDB). Сочетание современного ЦПУ и отображаемых в памяти аналоговых и цифровых периферийных модулей делает семейство MSP430 пригодным для работы в приложениях, связанных с обработкой смешанных сигналов.

Рисунок 2.2 - Архитектура MSP430

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

- архитектура со сверхнизким потреблением, позволяющая увеличить время работы при питании от батарей:

- ток сохранения содержимого ОЗУ -- не более 0.1 мкА;

- ток потребления в режиме часов реального времени -- не более 0.8 мкА;

- ток потребления в активном режиме -- 250 мкА/MIPS.

- высокоэффективная аналоговая подсистема, позволяющая выполнять точные измерения:

- таймеры, управляемые компаратором, для измерения сопротивления резистивных элементов.

- 16битное RISC ЦПУ:

- большой регистровый файл устраняет ограничения рабочего регистра;

- произведённое по меньшему техпроцессу ядро позволяет снизить потребление и уменьшает стоимость кристалла;

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

- набор команд состоит всего из 27 инструкций; поддерживается 7 режимов адресации;

- векторная система прерываний с расширенными возможностями.

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

Адресное пространство

Семейство MSP430 имеет фон-неймановскую архитектуру с единым адресным пространством, которое разделено между регистрами специальных функций(SFR), периферийными устройствами, ОЗУ и флэш-памятью в соответствии с Рис. 2.3. Подробное распределение памяти для конкретной модели микроконтроллера можно узнать из соответствующей документации. Обращение к исполняемому коду всегда выполняется по чётным адресам. Доступ к данным может осуществляться как побайтно, так и пословно. В настоящее время общий объём адресуемой памяти составляет 128 КБ.

Рисунок 2.3- Карта памяти

Флэш/ПЗУ

Начальный адрес области флэш/ПЗУ зависит от объёма этой памяти и отличается для разных устройств. Конечный адрес области флэш/ПЗУ всегда равен 0x1FFFF. Флэш-память может использоваться как для хранения кода, так и для хранения данных. Двухбайтные и однобайтные данные (или таблицы данных) могут располагаться во флэш-памяти и использоваться непосредственно оттуда, без предварительного копирования в ОЗУ.

Таблица векторов прерываний занимает верхние 16 слов нижней области памяти размером 64 КБ. При этом вектор прерывания с наивысшим приоритетом располагается в последнем слове области по адресу 0x1FFFF.

ОЗУ

Область ОЗУ начинается с адреса 0200h. Конечный адрес области зависит от объёма ОЗУ и меняется от модели к модели. ОЗУ может использоваться как для хранения данных, так и для хранения программного кода. Организация флэш-памяти. В микроконтроллерах MSP430 вся флэш-память поделена на сегменты. Записывать в флэш-память можно отдельные биты, байты или же слова, однако наименьшей единицей флэш-памяти, которую можно стереть, является сегмент.

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

Рисунок 2.4-Организация флэш-памяти

Использование прерываний

Приоритеты прерываний фиксированы и зависят от местонахождения конкретного модуля в цепочке, как показано на Рис. 2.5. Чем ближе расположен модуль к ЦПУ, тем выше приоритет его прерывания. Приоритеты определяют порядок обработки прерываний при одновременной генерации нескольких запросов.

В MSP430 имеется три типа прерываний:

- сброс системы;

- немаскируемые (NMI);

- маскируемые.

Рисунок 2.5-Приоритеты прерываний

Режимы работы

Семейство MSP430 было разработано для приложений со сверхнизким потреблением, поэтому микроконтроллеры семейства имеют различные режимы работы, показанные на Рис. 2.6.

Режимы пониженного энергопотребления 0…4 конфигурируются с помощью битов CPUOFF, OSCOFF, SCG0 и SCG1 регистра состояния SR. Преимущество размещения битов управления режимом работы в регистре состояния состоит в том, что текущий режим работы сохраняется в стеке на время выполнения процедуры обработки прерывания. Если в обработчике сохранённое значение SR не изменялось, то после завершения процедуры обработки прерывания предыдущий режим работы восстанавливается. Выполнение программы может продолжиться и в другом режиме, если процедура обработки прерывания изменит значение регистра состояния, находящееся в стеке. Обращение к битам управления режимом работы и к стеку может производиться с помощью команды любого типа. При установке любого из битов управления режимом микроконтроллер сразу же переключается в выбранный режим. При отключении любого тактового сигнала также блокируется работа использующих его периферийных устройств. Периферийные устройства могут отключаться и по отдельности с помощью соответствующих регистров управления. Состояние портов ввода/вывода и содержимое ОЗУ и регистров при изменении режима работы остаются неизменными. Выход из режима пониженного потребления возможен по любому разрешённому прерыванию.

Рисунок 2.6- Режимы работы основной системы тактирования MSP430x2xx

Модуль 10-и битного АЦП ADC10

Модуль ADC10 представляет собой быстродействующий 10битный аналого-цифровой преобразователь.

Модуль ADC10 обеспечивает быстрое выполнение 10битных аналого-цифровых преобразований. В составе модуля имеется 10битное ядро с регистром последовательного приближения, блок управления выборкой, генератор опорного напряжения и контроллер пересылки данных (DTC).

Контроллер DTC позволяет модулю сохранять результаты преобразований в пределах всего адресного пространства без использования ЦПУ. Модуль может конфигурироваться пользовательской программой в соответствии с требования ми различных приложений.

Модуль ADC10 имеет следующие особенности:

- максимальная скорость преобразования -- более 200 тыс. выборок/с;

- 10битный преобразователь с монотонной характеристикой без пропуска кодов;

- устройство выборки/хранения с программируемым временем выборки;

- запуск преобразования производится программно или по сигналу от Таймера;

- программно конфигурируемый внутренний генератор опорного напряжения (1.5 В или 2.5 В);

- внешний или внутренний источник опорного напряжения (выбирается программно) ;

- восемь каналов преобразования внешних сигналов ;

- каналы преобразования для внутреннего датчика температуры, напряжения VCC и внешних опорных напряжений;

- конфигурируемый источник тактового сигнала;

- четыре режима преобразования: одноканальный, многократный одноканальный, последовательный и многократный последовательный;

- ядро АЦП и ИОН могут выключаться независимо друг от друга;

- контроллер пересылки данных для автоматического сохранения результатов преобразований.

Рисунок 2.7- Блок-схема модуля ADC10

Ядро 10битного АЦП

Ядро АЦП преобразует аналоговый сигнал в 10битный цифровой код и сохраняет результат в регистре ADC10MEM. Верхний и нижний пределы преобразования определяются двумя программируемыми уровнями напряжения (VR+ и VR-). Результат преобразования равен максимальному значению (03FFh), если уровень входного сигнала больше или равен VR+, и нулю, если уровень входного сигнала меньше или равен VR-. Входной канал и уровни опорных напряжений (VR+ и VR-) задаются регистрами управления модуля. Результат преобразования может быть представлен в обычном виде или в дополнительном коде.

Конфигурирование ядра АЦП осуществляется двумя регистрами управления ADC10CTL0 и ADC10CTL1. Включается ядро АЦП установкой бита ADC10ON.

За некоторыми исключениями биты управления модуля ADC10 можно изменять только при ENC = 0. Перед выполнением любого преобразования бит ENC должен быть установлен в 1.

Выбор тактового сигнала преобразования

Сигнал ADC10CLK используется как в качестве тактового сигнала преобразования, так и для формирования периодов выборки. Источник сигнала ADC10CLK задаётся битами ADC10SSELx. Выбранный сигнал поступает на АЦП через предделитель, коэффициент деления которого (1, 2, 4 или 8) определяется битами ADC10DIVx. Для формирования сигнала ADC10CLK могут использоваться системные тактовые сигналы SMCLK, MCLK, ACLK, а также сигнал внутреннего генератора ADC10OSC.

Частота сигнала ADC10OSC, формируемого внутри модуля, не превышает 5МГц и зависит от конкретного устройства, напряжения питания и температуры.

Пользователь должен гарантировать, что тактовый сигнал, используемый для формирования ADC10CLK, останется активным до завершения процесса преобразования. Если тактовый сигнал будет остановлен во время преобразования, то операция завершена не будет, а полученный результат будет неверным.

Входной аналоговый мультиплексор

Входной аналоговый мультиплексор позволяет выбирать для преобразования один из 8 внешних и 4 внутренних аналоговых сигналов. Мультиплексор выполнен по схеме break_before_make (разрыв перед включением) для уменьшения перекрёстных помех, возникающих при переключении каналов.

Кроме того, ключи мультиплексора выполнены по T образной схеме, позволяющей свести к минимуму взаимное влияние каналов. Неиспользуемые в данный момент времени каналы отключаются от АЦП, а средняя точка подключается к аналоговой земле VSS. В результате паразитная ёмкость заземляется, что помогает устранить перекрёстные помехи.

Рисунок 2.8- Аналоговый мультиплексор

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

Генератор опорного напряжения

Модуль ADC10 содержит встроенный генератор опорного напряжения, способный формировать напряжение двух номиналов. Генератор опорного напряжения включается установкой бита REFON = 1. При REF2_5V = 1 внутреннее опорное напряжение равно 2.5 В, а при REF2_5V = 0 внутреннее опорное напряжение составляет 1.5 В. Это напряжение может использоваться внутри кристалла, а также может быть выведено на вывод VREF+ при REFOUT = 1. Уровни V+ и V- могут задаваться внешними источниками, подключаемыми к выводам A4 и A3 соответственно. При использовании внешних источников опорного напряжения или же при использовании в качестве опорного напряжения питания VCC, внутренний генератор опорного напряжения можно отключить для уменьшения потребления устройства.

Внешнее положительное опорное напряжение VeREF+ может буферироваться-- для этого следует установить в 1 биты SREF0 и SREF1. Наличие буфера даёт возможность использовать источник с большим внутренним сопротивлением, но ценой увеличения тока потребления микроконтроллера. Если бит REFBURST = 1, то потребляемый ток увеличивается только во время выборки и преобразования.

Автоматическое отключение

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

Режимы преобразования

Модуль ADC10 поддерживает четыре режима работы, задаваемые битами CONSEQx. Эти режимы перечислены в таблице 2.9.

Таблица 2.9- Режимы работы

Таблица 2.10- Регистры модуля ADC10

ADC10CTL0, регистр управления 0 модуля ADC10.

SREFx Биты 15…13 Выбор источника опорного напряжения.

000 VR+ = VCC, VR- = VSS

001 VR+ = VREF+, VR- = VSS

010 VR+ = VeREF+, VR- = VSS

011 VR+ = буферизованное VeREF+, VR- = VSS

100 VR+ = VСС, VR- = VREF-/VeREF-

101 VR+ = VREF+, VR- = VREF-/VeREF-

110 VR+ = VeREF+, VR- = VREF-/VeREF-

111 VR+ = буферизованное VeREF+, VR- = VREF-/VeREF-

ADC10SHTx Биты 12…11 Время выборки.

00 4 такта ADC10CLK

01 8 тактов ADC10CLK

10 16 тактов ADC10CLK

11 64 такта ADC10CLK

ADC10SR Бит 10 Частота выборок. Этот бит определяет максимальную частоту выборок, поддерживаемую буфером встроенного ИОН. Установка бита ADC10SR уменьшает ток потребления буфера.

0 Буфер поддерживает скорости до ~200 тыс. выборок/с

1 Буфер поддерживает скорости до ~50 тыс. выборок/с

REFOUT Бит 9 Выход источника опорного напряжения.

0 Выход источника опорного напряжения отключен

1 Выход источника опорного напряжения включён

REFBURST Бит 8 Управление буфером встроенного ИОН.

0 Буфер ИОН включён постоянно

1 Буфер ИОН включается только на время выборки/преобразования

MSC Бит 7 Многократные выборки/преобразования. Используется только в последовательном или циклических режимах.

0 Каждая выборка/преобразование инициируется нарастающим фронтом сигнала SHI

1 Таймер выборки запускается по первому нарастающему фронту сигнала SHI, а остальные выборки/преобразования запускаются автоматически после завершения предшествующего преобразования

REF2_5V Бит 6 Величина внутреннего опорного напряжения.

Также должен быть установлен бит REFON.

0 1.5В

1 2.5В

REFON Бит 5 Включение генератора опорного напряжения.

0 Генератор опорного напряжения выключен

1 Генератор опорного напряжения включён

ADC10ON Бит 4 Включение модуля ADC10.

0 Модуль ADC10 выключен

1 Модуль ADC10 включён

ADC10IE Бит 3 Разрешение прерывания модуля ADC10.

0 Прерывание запрещено

1 Прерывание разрешено

ADC10IFG Бит 2 Флаг прерывания модуля ADC10.

Данный флаг устанавливается при загрузке в регистр ADC10MEM результата преобразования. Этот флаг сбрасывается автоматически при обработке прерывания или может быть сброшен программно. При использовании контроллера DTC флаг ADC10IFG устанавливается после завершения пересылки блока данных.

0 Не было запроса прерывания

1 Есть запрос прерывания

ENC Бит 1 Разрешение преобразования.

0 Работа ADC10 запрещена

1 Работа ADC10 разрешена

ADC10SC Бит 0 Запуск выборки/преобразования. Этот бит используется для программного запуска процесса выборки и преобразования. Биты ADC10SC и ENC могут быть установлены одной командой. Бит ADC10SC сбрасывается автоматически. 0 Не начинать выборку/преобразование

1 Начать процесс выборки/преобразования

ADC10CTL1, регистр управления 1 модуля ADC10

INCHx Биты 15…12 Выбор входного канала.

Эти биты определяют конкретный канал для однократных преобразований или канал с максимальным номером для последовательных преобразований.

0000 A0

0001 A1

0010 A2

0011 A3

0100 A4

0101 A5

0110 A6

0111 A7

1000 VeREF+

1001 VREF-/VeREF-

1010 Датчик температуры

1011 (VCC - VSS)/2

1100 (VCC - VSS)/2, A12 в моделях MSP430x22xx

1101 (VCC - VSS)/2, A13 в моделях MSP430x22xx

1110 (VCC - VSS)/2, A14 в моделях MSP430x22xx

1111 (VCC - VSS)/2, A15 в моделях MSP430x22xx

SHSx Биты 11…10 Источник сигнала запуска выборки/преобразования.

00 Бит ADC10SC

01 Модуль вывода 1 Таймера А

10 Модуль вывода 0 Таймера А

11 Модуль вывода 2 Таймера А (модуль вывода 1 в моделях MSP430x20x2)

ADC10DF Бит 9 Формат результата преобразования.

0 Обычный двоичный код

1 Дополнительный код

ISSH Бит 8 Инвертирование сигнала запуска выборки/преобразования.

0 Сигнал запуска выборки/преобразования не инвертируется

1 Сигнал запуска выборки/преобразования инвертируется

ADC10DIVx Биты 7…5 Коэффициент деления тактового сигнала модуля ADC10.

000 1

001 2

010 3

011 4

100 5

101 6

110 7

111 8

ADC10SSELx Биты 4…3 Выбор источника тактового сигнала модуля ADC10.

00 ADC10SC

01 ACLK

10 MCLK

11 SMCLK

CONSEQx Биты 2…1 Выбор режима преобразования.

0 Однократный одноканальный

01 Однократный последовательный

10 Циклический одноканальный

11 Циклический последовательный

ADC10BUSY Бит 0 Модуль ADC10 занят. Этот бит показывает активность операций выборки или преобразования.

0 Нет активности

1 Производится выборка, преобразование или выполняется последовательность преобразований

2.3.3 Выбор отладочной платы

Выбирать отладочную плату будем с учетом выбранного микроконтроллера. Отладочная плата должна быть легко доступна для покупки. Так же для наиболее удобной демонстрации отладочная плата должна иметь возможность подключения к компьютеру. Таким требованиям отладочная плата LaunchPad MSP-EXP430G2 Rev1.5 фирмы Texas Instruments [3].

MSP-EXP430G2 LaunchPad - простой в использовании программатор FLASH-памяти и отладчик, обеспечивающий все необходимое для начала разработки на микроконтроллерах серии MSP430 Value Line. Комплект включает целевую плату с панелькой под 14-/20-выводной корпус DIP, интегрированной схемой эмулятора для быстрого внутрисистемного программирования и отладки микроконтроллеров MSP430 Value Line посредством протокола Spy Bi-Wire (2-проводной JTAG). Микромощная FLASH-память микроконтроллера MSP430 может быть стерта и записана в течение нескольких секунд без использования внешнего источника питания. Микроконтроллеры отличаются крайне низким энергопотреблением.

Рисунок 2.11- Выводы устройства

Рисунок 2.12- Назначение выводов

Характеристики макетной платы LaunchPad:

· DIP-гнездо с поддержкой до 20 выводов позволяет выполнять разработки на любых устройствах серии MSP430 Value Line в корпусе DIP (N).

· встроенный эмулятор флэш-памяти соединяет основанные на флэш-памяти устройства серии MSP430 Value Line с ПК при помощи кабеля мини-USB в режиме реального времени для осуществления внутрисистемного программирования и отладки.

· эмулятор флэш-памяти может программировать все устройства серии Value Line MSP430, а также любое устройство MSP430 с интерфейсом Spy Bi-Wire (2-проводной JTAG), что обеспечивает полную масштабируемость для старших моделей устройств MSP430.

· 2 программируемых светодиодных индикатора

· 1 светодиод индикации питания

· 2 программируемых кнопки (1 кнопка сброса)

Рисунок 2.13 - Эмулятор

Рисунок 2.14 - Эмулятор

Рисунок 2.15- Схема гнезд

Таблица 2.16 - Перечень элементов

3. Функциональная схема

Рисунок 3.1 - Функциональная схема

На рисунке 3.1 представлена функциональная схема устройства. Её принципиальное отличие от структурной схемы, представленной ранее, заключается в том, что на данном этапе уже выбран микроконтроллер, датчик.

Датчик температуры встроен в микроконтроллер.

Информация о значение температуры отображается с помощью двух светодиодов LED1 и LED2. Если температура преодолевает пороговое значение, загорается красный светодиод, иначе горит зеленый.

С помощью двух кнопок управления S1 и S2 происходит управление устройством. По нажатию кнопки исходит перезагрузка устройства, а по нажатию кнопки S2 устройство начинает работу.

4. Разработка программного обеспечения

4.1 Выбор среды программирования

В качестве среды разработки выбран программный пакет Code Composer Studio [4] фирмы Texas Instruments Incorporated.

Интегральная среда проектирования, предназначенная для создания программного обеспечения. Представляет собой единый графический интерфейс для пошаговой разработки и отладки программного кода. Интуитивно понятное меню позволяет разработчикам быстро освоиться в программе, а со временем, изучая новые функции, улучшать производительность своих работ. Среда включает в себя редактор исходных текстов, отладчик, линковщик, компилятор, средства визуализации, симулятор любого встроенного процессора от Texas Instruments, а также целый набор вспомогательных инструментов. Встроенный отладчик приспосабливается к используемым микросхемам, он способен выставлять и работать с многофункциональными контрольными точками. Менеджер событий останавливает работу центрального процессора или вызывает иные действия, следуя определенным заранее условиям. Среда поддерживает режим трассировки, помогающей проводить отладку программного кода и находить некоторые ошибки «невидимые» для других методов. Компиляторы C/C++, используя классические методы оптимизации, подстраиваются под конкретный тип микропроцессора для повышения эффективности кода и уменьшения его размера. Интегрированный симулятор делает возможным начать разработку в отсутствии реальной отладочной платы. При этом предлагается широкий выбор средств для визуализации процесса исполнения программного кода. Среда CCS позволяет одновременно работать с несколькими проектами, после закрытия программы все настройки проектов сохраняются и восстанавливаются при повторном запуске.

4.2 Алгоритм работы программы

Основной алгоритм работы представлен на рисунке 4.1.

Рисунок 4.1- Алгоритм работы программы

4.3 Функциональная организация программы

Программа предназначена для работы с микроконтроллером MSP430G2553 компании Texas Instruments. Работоспособность с другими микроконтроллерами не гарантируется. Программа, загружается на микроконтроллер и предназначается для управления им и управления его периферийными устройствами, необходимыми для измерения температуры. Функционально программа состоит из: основной функции программы(main), функций обработки прерываний(Interrupt ADC10_ISR и Interrupt ta0_isr).

Функция main типа void, является основной функцией программы и предназначается для реализации ее работы.

Состоит из: объявления начальных настроек программы и бесконечного цикла.

В начальных настройках происходит инициализация АЦП для работы с встроенным датчиком температуры, осуществляется настройка таймера.

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

Функция обработки прерывания Interrupt ADC10_ISR типа void предназначена для обработки прерывания от АЦП. Делает ЦПУ активным и активирует все разрешенные тактовые сигналы.

Функция обработки прерывания Interrupt ta0_isr типа void предназначена для обработки прерывания от таймера. Обнуляет значение счетчика и осуществляет выход микроконтроллера из режима энергосбережения.

датчик температура микроконтроллер программный

ЗАКЛЮЧЕНИЕ

В ходе выполнения данного курсового проекта были получены знания о принципах построения и разработки систем на основе микроконтроллеров семейства MSP430, о порядке и процессе выбора элементной базы, и построения единой системы на ее основе. При разработке программы были получены навыки в написании программ на языке С семейства MSP430. При помощи документации-первоисточника от производителя были изучены принципы работы встроенного в микроконтроллер АЦП, а так же изучена работа встроенного датчика температуры.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Датчики температуры: http://www.sensor.ru/articles/299/element_1110.html (10.04.2013)

2. Семейство микроконтроллеров MSP430x2xx. Архитектура, программирование, разработка приложений / пер. с англ. Евстифеева А. В. -- М. : Додэка_XXI, 2010. -- 544 с.: ил. -- (Серия «Мировая электроника»). --ISBN 978_5_94120_221_8

3. Отладочная плата: http://www.uccs.edu/~mlaubhan/common/MSP430/MSP430LaunchPad.pdf (14.04.2013)

4. Code Composer Studio: http://www.ti.com/tool/ccstudio&DCMP=dsp_ccs_v4&HQS=Other+OT+ccs (2.05.2013)

ПРИЛОЖЕНИЕ

Текст программы

#include "msp430g2553.h"

#define red_LED BIT0

#define grn_LED BIT6

#define BTN BIT3

long temp;

long IntDegF;

long IntDegC;

long count;

unsigned int customtemp;

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // Остановка WDT

ADC10CTL1 = INCH_10 + ADC10DIV_3; // Инициализация АЦП на работу с датчиком температуры

ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;

__enable_interrupt(); // Разрешаем прерывания.

TACCR0 = 30; // Устанавливаем время выборки

TACCTL0 |= CCIE; // Режим сравнения прерывания.

TACTL = TASSEL_2 | MC_1; // Выбор источника тактового сигнала TACLK = SMCLK, таймер считает от 0000h до TACCR0.

LPM0; // спать, проснется с прерывая от АЦП, где получит установку продолжить работу

TACCTL0 &= ~CCIE; // Отключить прерывание таймера

__disable_interrupt();

customtemp=25;//Установка пороговой температуры

P1OUT = 0;//Выключение светодиодов

P1DIR |= red_LED + grn_LED; // Выводы светодиодов на выход

while ((P1IN & BTN) == BTN); // ждем нажатия кнопки запускаем программу

while(1)

{

ADC10CTL0 |= ENC + ADC10SC; // Разрешение и запуска процесса выборки и преобразования

__bis_SR_register(CPUOFF + GIE); // Вход в режим LPM0

// Результат каждого преобразования заносится в регистр ADC10MEM

// oF = ((A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468

temp = ADC10MEM;

IntDegF = ((temp - 630) * 761) / 1024;

// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278

temp = ADC10MEM;

IntDegC = ((temp - 673) * 423) / 1024;

//for (count = 0; count < 90000; count++);

if(IntDegC<=customtemp)

{

P1OUT &= ~red_LED; // выключаем красный светодиод

P1OUT |= grn_LED; // включаем зеленый светодиод

}

else

{

P1OUT &= ~grn_LED; // выключаем зеленый светодиод

P1OUT |= red_LED; // включаем красный светодиод

}

__no_operation(); // Установка точки остановки

}

}

// ADC10 прерывание

#pragma vector=ADC10_VECTOR

__interrupt void ADC10_ISR (void)

{

__bic_SR_register_on_exit(CPUOFF); // Обнуляем CPUOFF бит до 0(SR) ЦПУ активно, все разрешённые тактовые сигналы активны

}

#pragma vector=TIMER0_A0_VECTOR

__interrupt void ta0_isr(void)

{

TACTL = 0;

LPM0_EXIT; // Выход из режима LPM0 по возвращению

}

Размещено на Allbest.ru


Подобные документы

  • Разработка и создание электронного устройства с датчиком температуры DS18B20 на базе PIC16F628A и их трансляцией на семи-сегментный индикатор. Выбор устройства отображения информации, программного обеспечения. Блок-схема работы микроконтроллера.

    дипломная работа [2,1 M], добавлен 25.06.2017

  • Технические характеристики и условия эксплуатации отладочной платы. Осуществление патентного поиска. Выбор конденсаторов, резисторов, светодиодов, транзисторов, микроконтроллера. Расчет надежности устройства. Технология изготовления печатной платы.

    курсовая работа [1,9 M], добавлен 26.06.2012

  • Разработка и выбор функциональной схемы датчика электромагнитного расходомера. Формирование и исследование аналоговой, цифровой схемы. Расчет блока питания устройства. Порядок разработки алгоритма работы и программного обеспечения микроконтроллера.

    курсовая работа [1,9 M], добавлен 19.08.2012

  • Разработка структурной и принципиальной схем электронного тахометра. Изучение принципа работы датчика магнитного поля. Выбор микроконтроллера. Проектирование управляющей программы для микроконтроллера. Адаптация устройства к промышленному применению.

    курсовая работа [1,1 M], добавлен 22.01.2015

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

    курсовая работа [491,6 K], добавлен 03.04.2017

  • Выбор и обоснование принципа работы узла аналого-цифрового преобразования. Создание измерительного преобразователя для датчика термопары. Определение максимальной погрешности нелинейности характеристики в заданном диапазоне температуры; линеаризация.

    курсовая работа [585,9 K], добавлен 05.11.2011

  • Разработка и сборка устройства передачи данных по каналу GSM. Принцип измерения расстояния при помощи датчика. Изготовление печатной платы устройства. Основные технические характеристики ультразвукового датчика HC-SR04 и микроконтроллера PIC16F628A.

    дипломная работа [2,4 M], добавлен 10.11.2017

  • Выбор датчика температуры. Разработка структурной и функциональной схем измерительного канала. Основные технические характеристики усилителей. Настройка программного обеспечения. Оценка случайной погрешности. Классы точности измерительных приборов.

    курсовая работа [2,2 M], добавлен 19.11.2012

  • Разработка функциональной схемы измерительного устройства для измерения температуры раскаленного металла. Определение оптимальной конструкции датчика и устройства. Выбор основных элементов: микроконтроллера, фотодиодов, оптической системы и блока питания.

    курсовая работа [13,1 M], добавлен 15.04.2015

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

    дипломная работа [1,7 M], добавлен 23.05.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.