Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Курсовой проект по дисциплине Микропроцессорные системы Выполнил- студент группы

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 23.11.2024

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет информатики и вычислительной техники

                                                                                           Кафедра ИВС

 

Блок управления стиральной машины

Курсовой проект

по дисциплине

Микропроцессорные системы

Выполнил: студент группы ВМ-41 Мокеев А. В.     

                                                                                                                                                                                   

       

Проверил: зав. кафедры ИВС Мясников В.И.           

                                                                                  

                                                                                          Оценка:

Йошкар-Ола

2006

АННОТАЦИЯ

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

СОДЕРЖАНИЕ

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Требуется спроектировать устройство управления стиральной машины. Необходимо предусмотреть режим набора и слива воды, ЖКИ, температурный режим, управлением двигателем, насосом и клапаном.

В устройстве необходимо реализовать следующий интерфейс:

  1.  переключатель режимов:
  2.  вывод информации на ЖКИ

ВВЕДЕНИЕ

Стиральная машина бытовая, предназначается для замочки, стирки, полоскания, подсинивания и отжима белья. Первая стиральная машина появилась в США в 80-х гг. 19 в. Основные узлы стиральной машины. — активатор (диск с выступающими ребрами), мешалка или барабан; отжимное устройство; насос; один или несколько электродвигателей для привода перечисленных узлов; стиральный бак.

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

1. ФУНКЦИОНАЛЬНАЯ СПЕЦИФИКАЦИЯ 

  1.  Функциональная спецификация должна содержать следующие функции, которые необходимо выполнять системе:
  2.  управление температурой, уровнем воды
  3.  управление двигателем
  4.  управление насосом, клапаном
  5.  переключение режимов

Векторы

Двигатель включен

Клапан включен

Насос 2 включен

Нагреватель включен

Z0

-

-

-

-

Z1

-

+

-

-

Z2

-

-

-

+

Z3

+

-

-

-

Z4

+

-

+

-

Z5

-

-

+

-

  1.  Описание интерфейса между системой и пользователем:
  2.  система должна реагировать на выбор режимов кнопками
  3.  система должна реагировать на срабатывания датчиков
  4.  система должна управлять двигателем, ЖКИ, насосом, клапаном.

Представим функциональную спецификацию в виде документа по категориям ВХОДЫ, ВЫХОДЫ и ФУНКЦИИ.

ВХОДЫ:

  1.  переключатель режимов
  2.  датчик температуры
  3.  датчик уровня воды

ВЫХОДЫ

  1.  управление двигателем
  2.  управление насосом, клапаном
  3.  управление нагревателем
  4.  ЖКИ

ФУНКЦИИ

  1.  система восстанавливается при зависаниях
  2.  система имеет защиту от дребезга контактов

-    режимы отжима и полоскания, стирки.

2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ

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

     ВХОДЫ:

           -   модуль датчика температуры;

           -   модуль переключателя режимов;

           -   модуль датчика уровня воды;

    ВЫХОДЫ:

          -    модуль управления двигателем;

  1.  модуль управления насосом, клапаном;
  2.  модуль управления нагревателем;
  3.  модуль ЖКИ;

ФУНКЦИИ:

  1.  модуль управления двигателя;
  2.  модуль силовых цепей управления насоса;
  3.  модуль защиты от зависания контроллера;
  4.  модуль силовых цепей клапана;
  5.  модуль силовых цепей нагревателя;

СТАНДАРТНЫЕ МОДУЛИ СИСТЕМЫ:

  1.  модуль контроллера;
  2.  модуль сброса и синхронизации;
  3.  модуль питания;

Программные модули также определяются на основе анализа функциональной спецификации, из которого следует, что система может быть разделена на три части ВХОД, ВЫХОД и ФУНКЦИИ.

Входной и выходной модули реализуют функции взаимодействия с аппаратной частью системы  и представляют нижний уровень модульной структуры.

Часть спецификации функции может быть разделена на три различных модуля:

  1.  Входное состояние кнопок и датчиков считывается с помощью процедуры входного модуля. Однако прежде, чем должно быть предпринято какое-либо действие, необходимо проверить состояние этих входов. Все процедуры, выполняющие проверку и определяющие, какие действия должны быть предприняты по результатам проверки, необходимо сгруппировать вместе в модуле проверки;
  2.  Модуль обслуживания охранного таймера;
  3.  Если результат проверки одной из процедур модуля проверки указывает на то, что кнопка была нажата или изменилась температура, то должна быть вызвана процедура для последовательного установления выходных состояний;
  4.  Модуль подавления дребезга контактов;

Модули, которые могут быть реализованы как аппаратным, так и программным способом:

  1.  модуль таймера, для формирования временных интервалов;

Наиболее производительное решение – это использование встроенного модуля таймера, а программный модуль таймера будет осуществлять управление аппаратным узлом.

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

В результате разработки проекта системы можно построить её структурную схему:

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

3. ПРОЕКТИРОВАНИЕ АППАРАТНОЙ ЧАСТИ УСТРОЙСТВА

3.1. Разработка функциональной схемы устройства
Элементная база МПУ требует напряжения питания +5В.

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

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

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

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

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

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

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

В качестве модуля ЖКИ можно выбрать любой одно строчный индикатор с восемью символами в строке.

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

Модуль питания в нашем случае преобразует переменное напряжение  ~220 В в напряжение питания для схемы контроллера. Остановимся на промышленном модуле питания АС/DC, имеющем меньшие габариты, повышенную надежность по сравнению с классическим источником питания на трансформаторе и линейном стабилизаторе.

3.2. Разработка принципиальной схемы устройства

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

Модуль защиты от помех может быть реализован на дискретных элементах. Однако в настоящее время лучшим выходом является использование специализированных микросхем, разработанных для подключения механических переключателей. Так серия  МАХ681х защищает от статического электричества  ( 15кВ), большого напряжения на входах (до уровня   25В) и применима для жестких промышленных условий. Кроме того, она снабжена схемой защиты от дребезга контактов, что делает ее идеальным устройством съема состояния с переключателей. Для нашего случая подойдет микросхема МАХ6816. Её внутренняя структура содержит защитные диоды, аппаратную схему подавления дребезга и защиту от статики, типовая схема включения приведена на рис. 2.1.

В качестве датчика температуры выберем модель фирмы Analog Devices TMP03. Она обеспечивает диапазон измерения температуры от –55 до +125 С, с дискретностью 0,5 С.

Остановимся на выборе микроконтроллера AVR   АТ90LS8515. Его характеристики: 40-выводной корпус –35 программируемых линий ввода/вывода с выходными буферами; 16-разрядный таймеры/счетчики; 3 внешних прерывания; программируемый сторожевой таймер, интерфейс SPI и др.

Схема синхронизации наиболее просто реализуется путем использования внутреннего тактового генератора с подключенным внешним кварцевым резонатором. Так как разрабатываемая схема не критична к быстродействию, то зададимся частотой процессора 1МГц. Данная частота позволяет легко формировать необходимые временные задержки и энергопотребление микроконтроллера в этом случае незначительное.

При выборе схемы сброса (супервизора питания) необходимо обратить внимание на то, чтобы длительность импульса, генерируемого схемой по включению питания, была больше длительности, требуемой для сброса микроконтроллера. Кроме того, у АТ90LS8515 сброс низким уровнем.

Выберем супервизор фирмы Dallas – DS 1813-5, удовлетворяющий указанным условиям.

В качестве двигателя выбирается любой питающийся от сети в 220 В 50 Гц.

Схему драйвера управления нагревателем, насосом и клапаном построим на мощных симисторах, которыми будем управлять через оптоэлектронную развязку. Например, фирма MOTOROLA предлагает симисторы серии МАС для токов до 40А и напряжений до 800В. Для управления симисторами фирма выпускает оптоэлектронные приборы серии МОС3хх.

В качестве ЖКИ выберем индикатор HDM08111H-1 фирмы Hantronix. Это однострочный 8-символьный индикатор. Его корпус имеет 14 выводов: 8 – под данные, один для сигнала чтения/записи, сигнала разрешения, питания и др.

В качестве источника питания, как отмечалось выше, проще всего выбрать промышленный АС/DC модуль. Данные модули выпускаются на разное входное/выходное напряжение с широкой номенклатурой выходной мощности. В нашем случае входное напряжение равно ~220В, выходное +5В. Можно остановиться на AC/DC преобразователях фирмы Franmar.

Для систем управления маломощными двигателями  специально разработана серия высокофункциональных IGBT-модулей (AS IPM), которые сочетают силовые, защитные и управляющие функции в одной корпусе. Оптимизация эффективности всей управляющей системы была достигнута благодаря интеграции специальных функций, используемых в конкретных приложениях. Выберем модуль фирмы Mitsubishi Electric серии PS.

Фирма Crydom выпускает широкий ассортимент герконовых датчиков уровня жидкости горизонтального и вертикального (серия RSF5x) исполнения, изготавливаемых из различных материалов и предназначенных для работы в различных средах, в том числе и агрессивных, в диапазоне рабочих температур

от -20 до +120 °C. В датчиках уровня жидкости поплавкового типа в качестве коммутирующего элемента используются герконы. При достижении жидкостью уровня размещения датчика, поплавок со встроенным магнитом поднимается вместе с уровнем жидкости и замыкает или размыкает контакты геркона.

Выберем датчик RSF4-x.

4. ПРОЕКТИРОВАНИЕ ПРОГРАММНОЙ ЧАСТИ УСТРОЙСТВА

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

В разделе проектирования системы была определена функционально-модульная структура ПО контроллера.

Эта структура должна быть дополнена еще двумя модулями, которые не могут быть выведены из функциональной спецификации – модуль ИНИЦИАЛИЗАЦИИ и модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ. Когда система включается, она должна быть инициализирована, таким образом данный модуль должен находиться на втором уровне нисходящей иерархии – сразу за главным модулем. Разрешение общего прерывания не будем включать в модуль ИНИЦИАЛИЗАЦИИ, с целью лучшей читаемости программы.

В соответствии с функционально модульной структурой процедура MAIN будет иметь вид:

MAIN()

{

   ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ();

   РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ();

   while (1)          

     {

ПРОВЕРКА ();

СБРОС WDT();

      }

}

Первая операция процедуры MAIN обращается к процедуре ИНИЦИАЛИЗАЦИЯ, далее к процедуре РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ. После выхода из этой процедуры осуществляется переход к другим процедурам, которые содержаться внутри бесконечного цикла while. Таким образом в системе обеспечивается проверка нажатия кнопки, проверка состояния датчика температуры и сброс охранного таймера. Эти операции выполняются до тех пор, пока система подключена к источнику питания.

Модуль ИНИЦИАЛИЗАЦИИ должен содержать процедуры, которые выполняют функции инициализации и восстановления после зависания. При включении питания необходимо настроить следующие узлы микроконтроллера: порты, таймеры, систему прерываний, охранный таймер. Порты настраиваются на ввод или вывод информации. Таймер служит для отсчета временных интервалов и  для часов реального времени. Настройка системы прерывания заключается в определении источников прерывания и их разрешения. У охранного таймера настраивается время задержки до его срабатывания, если не будет к нему обращения. Данный модуль является не сложным, поэтому не имеет смысла разбивать его на отдельные процедуры:

ИНИЦИАЛИЗАЦИЯ()

   {   

установка портов на ввод/вывод и задание выходного вектора;

настройка таймера на минимальный дискрет отсчета времени;

настройка постоянной времени охранного таймера;

настройка системы прерывания, разрешение отдельных прерываний;

    }

Модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ разрешает системе реагировать на прерывания. Для контроллера это внешнее прерывание от кнопок/датчика и внутреннее от таймера. Разрешение индивидуальных прерываний выполнено в модуле ИНИЦИАЛИЗАЦИЯ.

Модуль ПРОВЕРКИ проверяет состояние флага нажатия. Если флаг установлен, то запускается процедура соответствующая нажатой кнопке. Эти процедуры содержатся в ВЫХОДНОМ модуле, такие как включения/выключения ламп, запуск электродвигателя вывод информации на ЖКИ.

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

ПРОВЕРКА()

  {        

           Если  флаг нажатия установлен, то выполнить

{

ВЫХОДНОЙ (параметры);      

Сброс флага нажатия;

  Разрешение прерывания по нажатию;

    }

    }

Модуль СБРОС WDT устанавливает охранный таймер в исходное состояние, не позволяя ему сбросить всю систему. Это библиотечная функция языка.

Модуль ТАЙМЕРА выполняет отсчет времени с определенной точностью. Для систем реального времени наиболее просто данный модуль реализуется в виде подпрограммы обработки прерывания по переполнению внутреннего таймера. В теле модуля должна располагаться переменная – счетчик текущего времени, значение которой будет увеличиваться с каждым вызовом прерывания. Синхронизация текущего времени с временем срабатывания кнопки должна осуществляться во входном модуле путем сброса счетчика времени в ноль.

ТАЙМЕР()

   {

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

увеличение счетчика текущего времени;

    }

ВХОДНОЙ модуль должен реагировать на изменение сигнала от кнопок/датчика. Реализуем данный модуль в виде подпрограммы прерывания по входному сигналу. При возникновении прерывания необходимо установить флаг нажатия.

ВХОДНОЙ()

   {

установка флага нажатия;

сброс счетчика текущего времени;

сканирование клавиатуры;

подавление дребезга контактов;

опрос термометра;

    }

 

ВЫХОДНОЙ модуль устанавливает выходной вектор на выходной порт микроконтроллера. Данные сигналы управляют ЖКИ и через драйвер освещением и компрессором.   

    ВЫХОДНОЙ(параметры)

   {        /* начало процедуры*/

установка на порту выходного вектора;  

    }            /* возврат

4.2. Разработка заданного программного модуля

Для реализации выберем модуль ПРОВЕРКИ. Представим его в графическом виде при помощи блок-схемы алгоритма.   

Приведём представление архитектуры ПО контроллера холодильника в виде графа состояний системы.

 

4.3. Руководство программиста

Программа управления написанная на языке С. Программа создана  в соответствии с разработанным алгоритмом и состоит из 4-х модулей: обработки прерывания таймера – TimerOverFlow, обработки внешнего прерывания по входу INT0, проверки флага сработки\нажатия и установки выходного состояния – Contr_out, сброса охранного таймера- _WDR() и процедуры инициализации – INIT. Модули представляют собой отдельные задачи. С целью организации простой системы переключения задач в каждой из них выполняется только одно состояние, после чего осуществляется выход из задачи. Для организации приоритетного обслуживания использована система прерываний. Переключение задач организовано путем помещения их в бесконечный цикл while(1) в основной программе main. Процедуры инициализации каждой задачи объединены в процедуре INIT.

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

#include <io8515.h>

#include <ina90.h>

#define time_otsim 10*1800 //время отжима 10 мин.

#define time_stirka 10*2400 //время стирки 30 мин

//определение масок прерывания

#define MskInt0=0x40

#define MskTIE1=0x80

//Определение номеров состояний

#define Q1 1

#define Q2 2

#define Q3 3

#define Q4 4

#define Q5 5

// определение периода счета таймера1

#define T1_H 0x3C

#define T1_L 0xB0

unsigned int xdsec // счетчик интервалов

char Q //номер состояния

//прерывание по переполнению таймера1

Interrupt[TIMER1_OVF1_VECT] void TimerOverFlow(void)

{TCNT1H=T1_H;TCNT1L=T1_L;

Xdsec++;

If (xdsec>time_otsim) xdsec=0;}

//внешнее прерывание по входу INT0

Interrupt[INT0_VECT] void Int0(void)

{xdsec=0;GIMSK &= ~MskInt();}

void nabor(void)         

void nagrev(void)      

void stirka(void)      

void otsim(void)

void sliv(void)      

                                 

void INIT(void)                                   // инициализация контроллера

 {

   // Настройка таймера 1

TCCR1B |= 0x02; //коэффициент деления частоты генератора

TCCR1B &= 0xFA;                                 

TCNT1H = T1_H; TCNT1L=T1_L;

_WDR();

WDTCSR |=0x0F;

 WDTCSR &=0xFA;

          // Настройка портов

    DDRD = 0x00;                               // РD7...РD0 – на вход

    DDRA = 0xFF;                               // PA7…PA0 – на выход

    DDRC = 0xFF;    // PC7…PC0 – на выход

DDRB = 0x7F;       //PB7-вход, ост. - выход

  //настройка прерываний

TIMSK |=MskTIE1;

GIMsk |=MskInt0;

_SEI();

 }

Void CONTR_OUT (void)

{char t;

GIMSK &= ~MskInt0;

t=xdSec;

GIMSK |=MskInt0;

Switch(Q)

{case Q1:

If(Urwater1=1)

{nagrev();}

Break;

case Q2:

If(TEMP=1)

{stirka();}

Break;

case Q3:

 If(t>time_stirka) {otsim();}

Break;

case Q4:

 If(t>time_otsim)

 {sliv(); }

Break;

case Q5:

 If(Urwater2=0)

 {Z=Z0;Q=Q0}

Break;

}

}

 

void main(void)

 {

   INIT();                 //инициализация контроллера

     _SEI();                     // Общее разрешение прерываний

DIODE=1;           

              // Бесконечный цикл

    while (1)

      {if(start)

 { CONTR_OUT;

         _WDR(); }// Сброс охранного таймера

        

      }

  }

5. ЗАКЛЮЧЕНИЕ

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

6. ЛИТЕРАТУРА

  1.  Мясников В.И. Микропроцессорные системы. Учебное пособие.- Йошкар-Ола: МарГТУ, 2005.




1. тематическому анализу 632 1-2 6331-2 6351-2 Множества
2. Реферат - Семейные конфликты
3. Лабораторная работа 3 ПРОГРАММИРОВАНИЕ ВЕТВЯЩИХСЯ ПРОЦЕССОВ 1 Цель и порядок работы Цель работы
4. Понятие, предмет, метод и система трудового права
5. Rqreqentb что может быть расшифровано используя ROT13 как
6. ЛАБОРАТОРНАЯ РАБОТА 4 символьный и строковый типы 1
7. Параллельное моделирование компьютерной сети в системе Prime
8. расходятся В иных случаях мы имеем дело совсем с другими видами взаимодействия
9. рефератов Системный анализ и его применение в сфере сервиса
10. Экономика Великобритании
11. По теме- Создание анимации Выполнил-
12. как чисто на копировальношлифовальном станке допускается mx 2 мм шлифовать нельзя если износ более 2х мм
13. тематичне моделювання та обчислювальні методи Автореферат дисертації на здобуття наукового ступеня
14. реферат дисертації на здобуття наукового ступеня кандидата економічних наук КИЇВ ~ 1999
15. ТОРГОВЛЯ И УСЛУГИ НАСЕЛЕНИЮ 21
16. люкс малое или среднее по вместимости гостиничное предприятие обычно расположенное в центре города
17. И ЛЕНИН ЛУЧШЕ МЕНЬШЕ ДА ЛУЧШЕ В вопросе об улучшении нашего госаппарата Рабкрину следует по моему мнени
18. Подключение руб
19. Основное количество дел по спорам о праве собственности на землю возникают в связи с реализацией права гр
20. Он основал исламское государство в Аравии которое за одно столетие захватило многие страны вне Аравии