Разработка узла управления для автоматизированной системы прочистки мусоропроводов
Автор: Пользователь скрыл имя, 07 Апреля 2014 в 00:17, дипломная работа
Краткое описание
Целью работы является разработка узла управления для автоматизированной системы прочистки мусоропровода. Проектируемый узел управления разрабатывается непосредственно под нужды фирмы ООО «Антал». Его применение планируется на строительных объектах фирмы. Основная задача - разработать принципиальную схему узла управления для автоматизированной системы прочистки мусоропровода на основе микроконтроллера, произвести настройку микроконтроллера и разработать алгоритм работы узла управления.
Оглавление
АННОТАЦИЯ 5 ВВЕДЕНИЕ 6 1. ПОСТАНОВКА ЗАДАЧИ 7 1.1. Анализ предпроектной ситуации 7 1.2. Техническое задание 10 2. СХЕМОТЕХНИКА 12 2.1. Разработка и описание функциональной схемы автоматизированной системы прочистки мусоропровода 12 2.2. Разработка и описание структурной схемы узла управления для автоматизированной системы прочистки мусоропровода 16 2.3. Разработка и описание принципиальной электрической схемы узла управления для автоматизированной системы прочистки мусоропровода 19 3. ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРА 26 3.1. Инициализация микроконтроллера 26 3.2. Автоматика пожаротушения 32 3.3. Сканирование датчиков и кнопок 34 3.4. Алгоритм работы узла управления для автоматизированной системы прочистки мусоропровода 34 3.5. Разработка ПО 36 4. ТЕСТИРОВАНИЕ И ОТЛАДКА 38 4.1. Методика тестирования и отладки 38 4.2 Выводы 41 5. ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ ЖИЗНЕДЕЯТЕЛЬНОСТИ 42 5.1. Этапы создания и функционирования электрооборудования 42 5.2. Содержание нормативных документов 42 5.3. Безопасное проведение работ в действующих электроустановках 44 5.4. Выдержки нормативных документов 45 6. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 53 6.1. Обоснование необходимости разработки 53 6.2. Затраты на проектирование и создание узла управления 53 6.3. Затраты на эксплуатацию 58 6.4. Экономическая эффективность 59 6.5. Технико-экономические показатели 62 ЗАКЛЮЧЕНИЕ 64 СПИСОК ЛИТЕРАТУРЫ 65
В портах ввода/вывода микроконтроллеров
семейства Tiny реализована истинная функциональность
вида «чтение/модификация/запись». Благодаря
этому, используя команды SBI и CBI, можно
выполнять операции над любым выводом,
не воздействуя на другие выводы порта.
Это относится к изменению режима работы
контакта ввода/вывода, к изменению выходного
значения и к изменению состояния внутреннего
подтягивающего резистора (для входов).
Отличительной особенностью
моделей семейства, выпускающихся в
8-выводном корпусе, является совмещение
функций ввода/вывода с функциями управления
(выводы для подключения внешнего резонатора
и вывод сброса). Соответственно в распоряжении
пользователя оказываются до 6 линий ввода/вывода,
т.к. эти модели могут быть сконфигурированы
для работы без внешнего резонатора и
без вывода аппаратного сброса.
Конфигурация порта
ввода/вывода микроконтроллера
Микроконтроллер ATtiny13 имеет
один 6-разрядный порт ввода/вывода (порт
B). Контактов ввода/вывода – 6.
Обращение к порту производится
через регистры ввода/вывода. Всего имеется
3 таких регистра:
PORTB - регистр данных порта;
DDRB – регистр направления данных;
PINB – регистр выводов порта.
Вообще говоря, «регистр» PINB
регистром не является. По его адресу осуществляется
доступ к физическим сигналам на выводах
порта. Соответственно он доступен только
для чтения, тогда как остальные регистры
доступны и для чтения и для записи.
Таким образом, запись в порт
означает запись требуемого состояния
для каждого вывода порта в соответствующий
регистр данных порта PORTB. А чтение состояния
порта выполняется чтением либо регистра
данных порта PORTB, либо регистра выводов
порта PINB. При чтении регистра выводов
порта PINB происходит считывание сигналов,
присутствующих на выводах порта. А при
чтении регистра данных порта PORTB происходит
считывание данных, находящихся в регистре-защелке
порта (как для входных, так и для выходных
контактов). При нахождении микроконтроллера
в состоянии сброса выводы порта находятся
в третьем состоянии (состоянии высокого
импеданса Hi-Z).
Конфигурирование порта происходит
путем изменения содержимого битов регистров.
Каждому выводу порта соответствуют три
бита регистров ввода/вывода: PORTBn, DDBn и
РINBn. Действительные названия битов регистров
получаются подстановкой номера бита
вместо символа «n». Порядковый номер вывода
порта соответствует порядковому номеру
бита регистров этого порта.
Бит DDBn регистра DDB определяет
направление передачи данных через контакт
ввода/вывода. Если этот бит установлен
в «1», то n-й вывод порта является выходом,
если же сброшен в «0» — входом.
Бит РORТBn регистра PORTB определяет
состояние вывода порта. Если бит установлен
в «1», на выводе устанавливается напряжение
высокого уровня. Если бит сброшен в «0»,
на выводе устанавливается напряжение
низкого уровня.
Бит PINBn информирует о состоянии
вывода микроконтроллера (независимо
от установок бита DDBn). Оно может быть получено
путем чтения бита PINBn регистра PINB.
Формат регистра DDRB (табл. 3.1.).
Таблица 3.1.Формат регистра
DDRB
Бит
7
6
5
4
3
2
1
0
-
-
DDB5
DDB4
DDB3
DDB2
DDB1
DDB0
Чтение(R)/Запись(W)
R
R
R/W
R/W
R/W
R/W
R/W
R/W
Начальное значение
0
0
0
0
0
1
1
0
Формат регистра PORTB (табл.3.2.).
Таблица 3.2. Формат регистра
PORTB
Бит
7
6
5
4
3
2
1
0
-
-
PORTB5
PORTB4
PORTB3
PORTB2
PORTB1
PORTB0
Чтение(R)/Запись(W)
R
R
R/W
R/W
R/W
R/W
R/W
R/W
Начальное значение
0
0
0
0
0
0
0
0
В нашем случае, 1-ый и 2-ой выводы
порта являются выходами, поэтому мы устанавливаем
в «1» DDB2 и DDB1. Соответственно все остальные
выводы являются входами.
Настройка таймера/счетчика
и сторожевого таймера
Микроконтроллер ATtiny13 имеет
в своем составе один 8-разрядный таймер/счетчик
общего назначения.
Таймер/счетчик может использоваться
для формирования временных интервалов
или для подсчета числа внешних событий.
В его состав входят 2 регистра (регистр
управления TCCR0 и счетный регистр TCNT0),
а также блок управления таймером. Разрешение/запрещение
прерываний от таймера осуществляется
установкой/сбросом флага TOIE0 регистра
TIMSK.
Для разрешения прерывания
установим в «1» разряд TOIE0 регистра TIMSK
и разрешим общее прерывание, установив
в «1» флаг общего разрешения прерываний
I регистра SREG. Таким образом мы устанавливаем
разрешение прерывания по переполнению
таймера/счетчика.
Управление таймером/счетчиком
осуществляется с помощью регистра управления
TCCR0. Выбор режима работы (источника тактового
сигнала), а также запуск и остановка таймера/счетчика
осуществляется с помощью разрядов CS02…CS00
регистра TCCR0. Соответствие между состоянием
этих разрядов и режимом работы таймера/счетчика
приведено в Табл.3.3.
Табл.3.3. Выбор источника тактового
сигнала для таймера/счетчика
CS02
CS01
CS00
Источник тактового сигнала
0
0
0
Таймер/счетчик остановлен
0
0
1
СК (тактовый сигнал микроконтроллера)
0
1
0
СК/8
0
1
1
СК/64
1
0
0
СК/256
1
0
1
СК/256
1
1
0
Вывод таймера/счетчика, инкремент счетчика производится
по спадающему фронту импульсов
1
1
1
Вывод таймера/счетчика, инкремент счетчика производится
по нарастающему фронту импульсов
В качестве источника тактового
сигнала был выбран тактовый сигнал микроконтроллера
с коэффициентом деления 64. Для этого мы
устанавливаем значения разрядов CS01 и
CS00 в «1».
При конфигурировании порта
ввода/вывода и таймера/счетчика следует
также подключить сторожевой таймер. Основная
его функция – защита микроконтроллера
от сбоев в процессе работы. Благодаря
сторожевому таймеру можно прервать выполнение
зациклившейся программы или выйти из
других непредвиденных ситуаций, препятствующих
нормальному выполнению программы.
Если сторожевой таймер включен,
то через определенные промежутки времени
(при наступлении тайм-аута) выполняется
сброс микроконтроллера. При нормальном
выполнении программы сторожевой таймер
должен периодически (через промежутки
времени, меньшие его периода) сбрасываться
командой WDR.
Для управления сторожевым
таймером предназначен регистр WDTCR. Формат
этого регистра приведен в Табл.3.4.
Табл.3.4. Формат регистра WDTCR
Бит
7
6
5
4
3
2
1
0
WDIF
WDIE
WDP3
WDCE
WDE
WDP2
WDP1
WDP0
Чтение(R)/Запись(W)
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Начальное значение
0
0
0
1
1
0
0
0
Для включения сторожевого
таймера мы устанавливаем разряд WDE в «1».
Чтобы избежать непреднамеренного
выключения сторожевого таймера, предназначен
разряд WDCE. Дело в том, что выключение сторожевого
таймера (сброс разряда WDE) можно осуществить
только при установленном разряде WDCE,
который аппаратно сбрасывается через
4 машинных цикла после установки в «1».
За счет этого практически исключается
возможность случайного выключения сторожевого
таймера.
Период наступления тайм-аута
сторожевого таймера задается с помощью
разрядов WDP2…WDP0 регистра WDCTR согласно
Табл.3.5.
Табл.3.5. Задание периода сторожевого
таймера
WDP2
WDP1
WDP0
Число тактов генератора
Период наступления тайм-аута
0
0
0
16К
16мс
0
0
1
32К
32мс
0
1
0
64К
64мс
0
1
1
128К
0,125с
1
0
0
256К
0,25с
1
0
1
512К
0,5с
1
1
0
1024К
1с
1
1
1
2048К
2с
Мы задаем тайм-аут равный 16мс.
Считывание данных из EEPROM
Микроконтроллер ATtiny13 имеет
в своем составе энергонезависимую память
данных (EEPROM – память). Эта память расположена
в собственном адресном пространстве,
а ее объем составляет 64 байта.
Для обращения к EEPROM-памяти
используются три регистра ввода/вывода:
EEAR – регистр адреса EEPROM-памяти расположен по адресу $1E. В этот регистр загружается адрес ячейки, к которой будет производиться обращение. Регистр адреса доступен как для записи, так и для чтения. Поскольку для адресации 64-х ячеек достаточно 6-разрядного адреса, содержимое двух старших разрядов регистра EEAR игнорируется;
EEDR – регистр данных EEPROM-памяти расположен по адресу $1D. При записи в этот регистр загружаются данные, которые должны быть помещены в EEPROM, а при чтении в этот регистр помещаются данные, считанные из EEPROM;
EECR – регистр управления EEPROM-памяти расположен по адресу $1C. Как следует из названия, данный регистр используется для управления доступом к EEPROM-памяти. Формат этого регистра показан в Табл.3.6.