Автор: Пользователь скрыл имя, 04 Ноября 2012 в 20:00, дипломная работа
Работа посвящена разработке программно-аппаратного комплекса, предназначенного для обеспечения и поддержания заданной температуры узлов блока путем регулирования скорости вращения вентиляторов, а также для мониторинга температуры контролируемых узлов.
Тестовый образец блока реализован на отладочной плате микроконтроллера фирмы Atmel AT89C5131 с двухстрочным ЖК-индикатором. Плата состоит из микроконтроллера АТ89C5131A, необходимого набора элементов, перемычек и разъёмов, обеспечивающих работу микроконтроллера и подключение его к USB и RS-232. Питание схемы может быть как от USB, так и от внешнего источника напряжением 5В. На плату установлен двухстрочный жидкокристаллический индикатор (с контроллером аналогичным HD44780 фирмы HITACHI и KS0066 фирмы SAMSUNG) со светодиодной подсветкой. Устанавливается индикатор на 16-ти контактный разъём. Для демонстрации возможностей портов микроконтроллера управление подсветкой индикатора осуществляется посредством подключенных через перемычки четырех портов. При необходимости перемычки могут быть отключены, и пользователь может использовать данные порты в собственных целях при макетировании. Для удобства работы с индикатором предусмотрена регулировка его контрастности с помощью переменного резистора. Внешний вид отладочной платы представлен на рисунке 15.
Рисунок 15 Внешний вид демокомплекта STK-AT89C5131
Данная отладочная плата полностью подходит для разработки блока контроля и поддержания температуры. На основе демокомплекта была собрана схема рассмотренная выше. Помимо описанных элементов также на стадии тестирования использовался ЖК индикатор. С его помощью выводились промежуточные данные о температуре и передаваемых данных. Использование отладочной платы позволило упростить разработку и отладку разработанных программ.
Для разработки программного обеспечения контроллера AT98C5131 на языке С использовалась среда разработки Keil uVision4. Для загрузки скомпилированной программы во флеш-память контроллера использовалась программа Flip 3.1.0, поставляемая фирмой Atmel.
Целью разработки программного обеспечения контроллера является перевод алгоритма его работы в машинный язык. В этом случае общий проект можно разделить на несколько составляющих: обеспечение работы самого контроллера, обеспечение связи по USB, обеспечение связи с датчиками по 1-wire, управление вентиляторами.
Структура созданного проекта представлена на рисунке 12.
Рисунок 16 Структура программного обеспечения контроллера AT89C5131
Проект состоит из следующих компонентов:
Библиотеки USB хранят в себе процедуры инициализации, получения, а также отправки USB пакета. Для управления контроллером используется пакет команд, что заметно сокращает время передачи данных от управляющего компьютера к AT89C5131. В свою очередь микроконтроллер может отправить два вида пакета: инициализационные данные или данные о текущем состоянии. Инициализационные данные представляют собой информацию о количестве задействованных каналов (в данном проекте всегда равно 3-м), максимально возможном количестве датчиков на одном канале, количество датчиков на каждом из каналов, информацию о вентиляторах, а также поддерживаемую температуру и режимы сравнения. Пакет, содержащий информацию о текущем состоянии, представляет собой следующий набор данных: количество каналов (используется для проверки правильности передачи), количество датчиков на каждом из каналов, температурные данные каждого датчика, а также информацию о вентиляторах.
Библиотеки регистров содержат адреса всех регистров, а также их имена, что упрощает дальнейшее их использование.
Файл Onewire.c содержит функции для обмена данными и командами по шине 1-wire. Основная сложность при написании данной библиотеки было обеспечение требуемых задержек. Разработанная библиотека используется в файле DS18B20.c, которая в свою очередь описывает взаимодействие контроллера и датчика температуры на более высоком уровне.
DS18B20.c содержит следующие функции:
Основным модулем, объединяющим весь проект, является файл main.c, который содержит следующие блоки:
Инициализация USB представляет собой вызов функции из соответствующей библиотеки. Далее происходит инициализация датчиков путем опроса каждого из каналов и считывания необходимых данных из памяти датчиков. Следующий этап – инициализация вентиляторов, которая проходит путем перевода PCA в режим широтно-импульсной модуляции.
После инициализации
следует основной цикл в соответствии
с алгоритмом, изложенным выше. Особенностью
реализации является использование
чисел в формате с
В соответствии с техническим заданием пользовательское приложение должно выполнять следующие функции:
Для разработки пользовательского приложения для ОС Windows использовалась среда разработки Embarcadero RAD Studio 2010. Для решения поставленной задачи на первоначальном этапе необходимо обеспечить связь блока с компьютером по USB. Также следует учитывать, что связь может прерваться во время работы управляющего компьютера, следовательно, необходимо обеспечить постоянный опрос устройства. После установления связи пользовательское приложение должно инициировать передачу данных. В случае необходимости изменения поддерживаемых температур целесообразнее использовать короткие команды по сравнению с созданием потока передачи данных. Помимо обмена информацией с блоком пользовательское приложение также должно визуализировать полученные значения температуры и скорости управляемых вентиляторов.
В результате разработана программа, интерфейс которой представлен на рисунке 13.
Рисунок 17 Интерфейс разработанной программы
Разработанная
программа позволяет задавать значение
поддерживаемой температуры для
каждого канала, изменять режимы сравнения,
изменять скорость вращения вентилятора,
просматривать графики
Пользовательское приложение состоит из двух процессов:
Второй процесс необходим, чтобы при приеме данных реакция визуального интерфейса на действия пользователя не запаздывала. В этом случае опрос Блока происходит в фоновом режиме. В случае отключения Блока второй процесс переходит в спящий режим. Далее тестирование подключения устройства к компьютеру проводит основной процесс, который и включает вторую нить в случае нового подключения блока.
Программный проект состоит из следующих модулей:
Использование шаблонов страницы контролируемого узла позволяет применить данную программу для устройства с любым количеством каналом. При подключении устройства происходит его инициализация, т.е. устройство посылает управляющей программе инициализационный пакет, который содержит данные о количестве каналов. После этого основной процесс создает необходимое количество страниц и связывает каждую из них с соответствующим каналом.
Выводы
Рассмотренное
программное обеспечение
Первоначально к блоку подключаются датчики температуры. В максимальной комплектации на каждый канал приходится по три датчика температуры, что позволяет обеспечить наилучшие условия контроля. При использовании блока для охлаждения персонального компьютера датчики и вентиляторы следует подключать следующим образом:
На следующем шаге к собранному блоку следует подключить провод от блока питания и установить в соответствующий режим переключатель S1. В этом случае при включении компьютера будет начинать свою работу и блок контроля и поддержания температуры. В случае первоначального подключения блока или необходимости изменения температурного режима следует подключить кабель USB к плате и запустить программу Cooling_control и при необходимости установить драйвер устройства. В данном ПО можно проводить контроль температуры каждого из узлов и изменять температуру, которую необходимо поддерживать вентиляторами.
Тестирование работы всего комплекса проводились с вентилятором, позволяющим регулировать скорость в пределах 10% от максимальной. На начальном этапе 2 температурных датчика были подключены к 30-градусному источнику тепла без подключения вентилятора. Как видно из рисунка 16, при данных режиме и значении поддерживаемой температуры в 28°С имеет место перегрев.
Рисунок 18 Перегрев при отсутствии вентилятора
Далее был подключен вентилятор (рисунок 18). После начала работы вентилятор имеет максимальную скорость и как следствие происходит быстрое охлаждение исследуемого образца до 28°С.
После некоторого
времени температура
На следующем этапе тестирования было произведено изменение значения поддерживаемой температуры на 26°С, а также режима сравнения с «Максимального» на «Минимальный». В результате блок обнаружил, что текущая температура превышает поддерживаемую и стал увеличивать обороты вентилятора (рисунок 20). После того как значения температур не превышали заданную больше, чем на 1°С система стабилизировалась.
Рисунок 19 Работа блока при подключении вентилятора
Рисунок 20 Работа блока после охлаждения системы до нужной температуры
Рисунок 21 Работа блока после изменения значения поддерживаемой температуры
Проведенные исследования
показали полное соответствие функций
разработанного блока и функционала,
заложенного в техническом
Выводы
Тестовый образец блока контроля и поддержания температуры был реализован на отладочной плате микроконтроллера AT89C5131. Описана методика работы с устройством. Разработан алгоритм тестирования спроектированного устройства. Результаты показали, что разработанный блок полностью соответствует требованиям, заявленным в ТЗ.
Информация о работе Устройство контроля и поддержания температуры