Курсовые работы, лабораторные, доклады для студентов
можете скачать и поделиться с другими,
если не жалко.

 
на правах рекламы


Микроконтроллерная система обеспечения функций времени в жестких условиях эксплуатации


Дипломная работа на тему
"Микроконтроллерная система обеспечения функций времени в жестких условиях эксплуатации"


Это часть работы без картинок и таблиц.


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

Скачать Дипломную работу на тему:
Микроконтроллерная система обеспечения функций времени в жестких условиях эксплуатации
Diplom.rar [2,84 Mb] (cкачиваний: 115)


Микроконтроллерная система обеспечения функций времени в жестких условиях эксплуатации


Структурная схема устройства представлена в графической части проекта ПГУ1.230101.17.002 Э1. Функциональное устройство состоит из следующих модулей блоков:
- контроллер управления;
- ЖКИ;
- блок клавиш;
- преобразователь температуры;
- блок RTC;
- генератор 32kHz;
- излучатель звука;
- модуль питания;
- батарея.

Контроллер управления в зависимости от режима работы осуществляет функции по анализу и обработки информации, получаемой от подключенных к нему устройств. Передача информации от термометра к микроконтроллеру осуществляется посредством однопроводного интерфейса. Генератор 32kHz настроен на выработку тактового импульса каждую секунду и подключен как к микроконтроллеру, так и к микросхеме DS1307 RealTimeClock (далее RTC).
Подключение генератора 32kHz к микросхеме RTC выполнена по ряду
следующих причин. Микросхема RTC содержит в своём составе
собственный генератор частот, но во время подачи питания на устройство внутренний тактовый генератор запускается в течение нескольких секунд, также при отключении основного питания возможно кратковременное приостановление тактового генератора, что в свою очередь может повлиять на быстродействие и корректную работу всего разрабатываемого изделия. Также потребление электроэнергии у внутреннего генератора микросхемы RTC значительно больше, чем у генератора 32kHz. В связи с перечисленными недостатками внутреннего генератора микросхемы RTC было принято решение подключить внешний генератор 32kHz для более надёжной и долгосрочной работы изделия.
Микросхема RTC независимо от микроконтроллера выполняет основные функции часов и календаря благодаря подключенной к ней генератора частот и в случае отключения питания автономно работает от батареи.
Микроконтроллер программным способом настроен на то, что каждую секунду выполняет проверку состояния нажатых кнопок. При обнаружении на входе комбинацию кнопок соответствующей команде работы с таймером, микроконтроллер через интерфейс I2C, связывается c микросхемой RTC для получения запрашиваемой информации.
Алгоритм работы с однопроводным интерфейсом и интерфейсом I2C выполнен с использованием среды разработки Keil uVision3 на языке ассемблер.
Жидкокристаллический индикатор подключен к микроконтроллеру стандартным способом посредством параллельного периферийного интерфейса.
Использование интерфейса RS485 необходимо для передачи информации на расстоянии с разрабатываемого изделия.
Модуль питания(DC-DC) выполняет преобразование напряжения от бортовой сети плюс 27В в напряжение плюс 5В.

2.3 Обоснование и выбор элементной базы
Разрабатываемое микроконтроллерное устройство обеспечения функций времени должно обеспечивать надёжную работу в жёстких условиях эксплуатации, в связи с этим при отборе элементной базы особое внимание уделялось живучести и надёжности элементов. Поскольку разрабатываемое устройство постоянно будет подвергаться различного рода внешним воздействиям, производился отбор элементов способных работать при повышенной температуре до плюс 55°С, при пониженной температуре до минут 45°С, способных выдерживать постоянную вибрацию, различные виды ударов и т.д. Выход хотя бы одного элемента из строя может привести к полному отказу работоспособности изделия.
2.3.1 Выбор микроконтроллера
В качестве микроконтроллера было принято решение использовать отечественную интегральную микросхему 1882ВЕ53У. Интегральные микросхемы 1882ВЕ53У (далее МК53) представляют собой высокопроизводительные 8-разрядные микроконтроллеры, имеющие высокие технические характеристики и «сверху - вниз» программно и аппаратно совместимые с микросхемами предыдущих моделей. Данный микроконтроллер полностью удовлетворяет всем необходимым требованиям, как в надежности, так и в быстродействии работы. Принципиальная схема разрабатываемого устройства представлена в графической части проекта ПГУ1.230101.17.003 Э3.

Рисунок 2.15. Выводы микросхемы DS18B20
GND – вывод заземления;
Vdd – вывод питания, для того чтобы переключить микросхему на паразитное питание вывод Vdd заземляется;
DQ – информационный вход/выход однопроводного интерфейса. Также обеспечивает питание микросхемы, когда используется режим паразитного питания.

Рисунок 2.16. Карта памяти микросхемы DS18B20
2.3.4 Выбор генератора частот
Для данного дипломного проекта необходимо отобрать генератор способный обеспечивать высокую точность и стабильность в течение больших промежутков времени и способный работать как при повышенной, так и при пониженной температуре. Одной из основных недостатков большинства генераторов является значительное отклонение частот и потеря точности при изменении температуры. Микросхема DS32kHz, фирмы DALLAS, является одной из немногих, которая имеет температурный компенсатор, который позволяет генератору работать при повышенных и пониженных температурах без значительных потерь точности.


Данная микросхема автоматически переключается на питание от батареи при выключении от основного источника питания, что обеспечивает надежную работу совместно подключенной микросхемы RTC. Питание микросхемы осуществляется подачей напряжения от 4.5 В до 5.5 В. Микросхема не требует калибровки и обладает очень низкой потребляемой мощностью. Расположение выводов и блок-схема микросхемы представлены на рисунке 2.17 и 2.18 соответственно.

Рисунок 2.17. Выводы микросхемы DS32kHz
GND – вывод заземления;
Vcc – вывод питания микросхемы;
Vbat – вывод питания от батареи;
32KHZ OUT – вывод частот микросхемы;
N.C. – не используются.


Рисунок 2.18. Блок-схема DS32kHz.
Во время работы микросхема DS32kHz периодически опрашивает измеритель температуры и в зависимости от полученного значения подстраивает компенсатор. На рисунке 2.19 представлен график зависимости потери точности под влиянием температур.

Рисунок 2.19. Зависимость потери времени от температуры.
Из графика видно, что использование генератора без компенсатора температур может привести к существенной потери точности измерения.


2.3.5 Выбор жидкокристаллического индикатора
Основной проблемой существующих ЖК индикаторов является потеря работоспособности при пониженной температуре. В связи с этим было принято решение использовать ЖК индикатор 16S2R-3YLG фирмы МЭЛТ который обеспечивает работоспособность в диапазоне температур от минус 30 °C до плюс 70 °C. Принципиальная схема ЖКИ представлена в графической части проекта ПГУ1.230101.17.004 Э1.
Жидкокристаллический модуль MT–16S2R-3YLG


При создании программного обеспечения для данной дипломной работы использовалась среда разработки Keil uVision3. Среда разработки Keil uVision3 позволяет разрабатывать сколь угодно сложные проекты, состоящие из разных модулей, написанных как на языке высокого уровня, так и на языке низкого уровня. Keil uVision3 включает в себя готовый набор библиотек, содержащий огромное количество файлов для моделирования и отладки работоспособности микроконтроллеров. Для написания управляющей программы использовался язык ассемблера. Отличие использования языка низкого уровня от языков высокого уровня заключается в том, что написанная программа будет занимать меньше объема памяти и повыситься её быстродействие, однако написание и отладка программы на языке низкого уровня занимает значительно больше времени.
2.4.1 Описание управляющей программы
Работа программы начинается с инициализации всех портов микроконтроллера, присвоение каждому регистру области памяти, установка начальных значений флагов, установка значений констант, установка регистров содержащих начальные адреса хранения данных счётчика часов и микросхемы термометра. Алгоритм работы основной программы представлен в виде блок-схемы в приложении на листе ПГУ1.230101.17.005 Д1.
Основная программа начинается с очистки и проверки памяти данных, поскольку при включении микроконтроллера в управляющих регистрах могут оказаться случайные значения которые могут привести к неопределённым состояниям микроконтроллера.
Далее происходит установка значений регистров специальных функций, установка регистра режима работы таймера/счётчика, управление блокировкой, установка регистра управления/статуса таймера, установка фронтов прерываний, установка регистров масок прерываний, установка начального значения стека. После этого происходит начальная инициализация буферов клавиатуры при подаче питания на микроконтроллер. Следом происходит загрузка начальной высветки термометра и вызов подпрограммы считывания данных из Flash-памяти микроконтроллера. На этом заканчивается начальная инициализация и загрузка всех необходимых данных.
После установки всех начальных значений начинает свою работу основное тело программы. Основное тело программы представляет собой бесконечный цикл и ряд условий в зависимости от которых запускается выполнение соответствующих им подпрограмм. Генератор DS32 посылает импульсы микроконтроллеру, микроконтроллер в свою очередь принимает на вход данные сигналы и каждую секунду генерирует программное прерывание по таймеру 0, во время которого проверяет состояния всех ключевых флагов. Происходит вызов подпрограммы обработки прерывания и в первую очередь вызывается подпрограмма обработки нажатых кнопок KEY1234. Во время обработки данной подпрограммы происходит считывание поступающих на входы микроконтроллера P0.0, P0.1, P0.2 сигналов от нажатых кнопок. В зависимости от полученной комбинации, которые отвечают за определённые действия, устанавливаются соответствующие флаги для того, чтобы с помощью них вызвать соответствующие им подпрограммы обработки запрашиваемых действий. После успешной обработки подпрограммы нажатых кнопок, устанавливается соответствующий флаг, и управление вновь передаётся основному циклу программы.
В случае установки флага после внешнего прерывания от устройств происходит поочерёдный вызов всех основных подпрограмм, таких как: подпрограмма обработки чтения данных из микросхемы RTC, подпрограмма чтения из микросхемы DS18B20, подпрограмма счётчика времени, подпрограмма работы с будильником. Все вышеперечисленные подпрограммы во время работы также устанавливают флаги, в зависимости от которых происходит ряд действий, например: срабатывание будильника, высветка текущей температуры, вызов подпрограммы очистки EEPROM.


2.4.2 Описание подпрограммы работы с таймером
В данной подпрограмме был реализован механизм обмена данными между микроконтроллером и микросхемой RTC по шине I2C. Алгоритм работы программы представлен в виде блок-схемы в приложении на листе ПГУ1.230101.17.006 Д1.
Работа подпрограммы начинается с запрета всех прерываний, поскольку передача данных осуществляется побитно и возможна потеря значащих бит во время обработки прерывания. Далее происходит загрузка указателя начального адреса микроконтроллера и микросхемы RTC в регистры PO_AD_MC и PO_AD_DS соответственно. После этого устанавливаем значение счётчика равным числу читаемых байт из микросхемы RTC и вызываем подпрограмму записи адреса микросхемы RTC Write_adres_DS.
Подпрограмма Write_adres_DS содержит в себе несколько подпрограмм для передачи данных по шине I2C. Работа начинается с вызова ещё одной подпрограммы Start, которая формирует сигнал «Старт» на линии SDA и SCL означающий начало обмена данными между устройствами. После этого происходит загрузка адреса RTC и бита направления чтения в аккумулятор и происходит вызов подпрограммы Shout. Подпрограмма Shout осуществляет побитовую передачу данных от микроконтроллера к микросхеме RTC путём циклического сдвига аккумулятора и бита регистра C с помощью команды rlc Acc с дальнейшей пересылкой бита C микросхеме RTC. После того как был передан последний бит, управление вновь получает подпрограмма Write_adres_DS. После этого, в зависимости от того, какие данные мы хотим получить от микросхемы RTS, мы записываем указатель адреса из карты адресов микросхемы RTC в аккумулятор и снова вызываем подпрограмму Shout для побитовой передачи нужного нам адреса. На этом заканчивается работа подпрограммы Write_adres_DS, и управление возвращается основной подпрограмме работы с RTC.
После того как мы передали указатель адреса с необходимыми нам данными в микросхему RTC вызывается подпрограмма считывания передаваемых данных от RTC к микроконтроллеру Read_block.
Подпрограмма Read_block представлена в приложении на листе ПГУ1.230101.17.006 Д1. Подпрограмма начинает свою работу с вызова подпрограммы Start, описанной выше, для формирования стартового импульса. Далее осуществляется загрузка адреса подчинённого устройства и загрузка бита направления чтения. В регистр R0 осуществляется запись указателя памяти микроконтроллера, куда будут сохранены полученные данные. После этого вызывается подпрограмма Shin.
Подпрограмма Shin осуществляет побитовую передачу данных от микросхемы RTC к микроконтроллеру. Передача бит осуществляется с помощью команды rlc Acc, которая выполняет циклический сдвиг аккумулятора и бита регистра C после того как состояние шины SDA было записано в регистр С. После передачи очередного бита происходит декремент счётчика и как только он станет равным нулю осуществляется выход из подпрограммы Shin.
После выполнения подпрограммы Shin необходимые нам данные находятся в аккумуляторе. Выполняется их сохранение путем косвенной передачи их в регистр R0 с последующим его инкрементом. После этого осуществляется декремент счётчика принятых байтов и если он равен нулю, то вызывается подпрограмма NACK соответствующая команде интерфейса I2C отсутствие подтверждения и окончание передачи данных. После этого вызывается подпрограмма Stop формирующая импульс команды «Стоп». Если счётчик не равен нулю, то происходит вызов подпрограммы ACK соответствующая команде интерфейса I2C подтверждения бита присутствия, которая означает, что передача данных не закончена и управление вновь передаётся подпрограмме Shin для принятия очередного байта данных, данный цикл продолжается до тех пор, пока счётчик не станет равным нулю.
После того, как отработает подпрограмма Read_block, осуществляется восстановление всех прерываний, и установка флага F_CT_DV свидетельствующего о том, что происходил обмен данными между микроконтроллером и микросхемой RTC. На этом работа подпрограммы обмена данными между микроконтроллером и микросхемой RTC заканчивается, и управление передаётся основной программе.
2.4.3 Описание подпрограммы работы с датчиком температуры
Подпрограмма содержит в себе механизм обмена данными по однопроводному интерфейсу между микроконтроллером и микросхемой DS18B20. Подпрограмма представлена в приложении на листе ПГУ1.230101.17.007 Д1. Работа подпрограммы начинается с проверки текущего режима работу, поскольку было принято решение осуществлять обмен данными с датчиком температуры только в режиме 00. Если режим не соответствует требуемому, то осуществляется выход из подпрограммы. После этого выполняется ограничение счётчика SECONDS_T по модулю 3 и выполняется его инкремент. Далее осуществляется проверка флага присутствия и если он не установлен, то осуществляется проверка счётчика на равенство нулю. Если счётчик равен нулю, то вызывается подпрограмма Initialization, в противном случае происходит выход из подпрограммы работы с датчиком температуры.
Подпрограмма Initialization осуществляет выполнение команды однопроводного интерфейса под названием сброс/присутствие. Работа подпрограммы начинается с вызова вложенной подпрограммы TOUCHRESET которая устанавливает значение лог. 0 на шине и выполняет программную задержку, для того чтобы сформировать сигнал сброс и после задержки устанавливает шину в лог.1. После этого происходит считывание шины для обнаружения на нём ответа от датчика температуры в виде подачи на шину лог 0. в течение некоторого промежутка времени. В случае ошибки устанавливается флаг C. Далее управление возвращается подпрограмме Initialization.
Происходит проверка флага ошибок C и если он установлен, то осуществляется вызов функции высветки кода отсутствия температуры с последующей установкой флага F_Show_T. В другом случае происходит установка флага присутствия F_Presen и осуществляется загрузка специальной команды Skip Rom в аккумулятор с последующей передачей её с использованием подпрограммы TOUCHBYTE в микросхему DS18B20. Команда Skip Rom необходима для адресации микроконтроллера к микросхеме DS18B20.
Подпрограмма TOUCHBYTE устанавливает значение счётчика цикла для передачи 8 бит информации, после этого происходит выполнение команды RCC A, содержимое аккумулятора сдвигается вправо вместе с битом регистра C, данные, которые оказались в бите C передаются через подпрограмму TOUCHBIT на однопроводную шину. Подпрограмма TOUCHBIT в зависимости от бита C осуществляет запись лог. 0 или лог. 1 на однопроводную шину, с выставлением необходимых задержек, после этого дожидается ответа от датчика температуры, освобождает шину, и возвращает управление подпрограмме TOUCHBYTE. После того как значение счётчика становится равным нулю, снова осуществляется выполнение операции RCC A для передачи последнего бита информации и управление передаётся подпрограмме Initialization.
Далее происходит аналогично описанной выше запись и передача специальной команды Convert_T которая инициализирует преобразование температуры. Результат преобразование хранится в памяти датчика температуры в двухбайтовом формате, который необходимо передать в микроконтроллер. На этом заканчивается работа подпрограммы Initialization и управление возвращается основной подпрограмме работы с датчиком температуры.
После того, как отработала подпрограмма Initialization, происходит проверка счётчика SECONDS_T на равенство двум, и если счётчик содержит другое значение, то происходит выход из основной подпрограммы работы с датчиком температуры. Сделано это для того, чтобы передача данных от микросхемы DS18B20 осуществлялась раз в 4 секунды, поскольку нет большой необходимости в измерении температуры каждую секунду. Если счётчик SECONDS_T равен двум, то запускается выполнение подпрограммы Read_Temper, которая осуществляет передачу данных о температуре от датчика к микроконтроллеру.
Подпрограмма Read_Temper представлена в приложении на листе ПГУ1.230101.17.007 Д1. Read_Temper начинает свою работу с вызова подпрограммы TOUCHRESET для передачи команды сброс/присутствие, который свидетельствует о готовности датчика вести обмен данными. Далее происходит посылка команды Skip Rom с использованием подпрограммы TOUCHBYTE для непосредственного подключения к датчику температуры. После этого с помощью подпрограммы TOUCHBYTE посылается команда чтения данных из микросхемы DS18B20, далее осуществляется приём микроконтроллером передаваемых ему данных. Данные передаются побайтно, сначала передаётся младший байт, затем старший. Запись осуществляется в регистры Temperature_LSB и Temperature_MSB соответственно. После того как данные были приняты, вызывается подпрограмма работы со знаком температуры. Далее происходит вызов подпрограммы преобразования из 4х байтного двоичного в 5ти байтное десятичное упакованное число. Преобразование происходит путём алгоритма четырёхбайтного умножения. Далее выполняется очистка флага присутствия F_Presen и установка флага F_Show_T и выполняется выход из подпрограммы Read_Temper. После того как основная подпрограмма получает управление, происходит завершение подпрограммы работы с датчиком температуры.

2.5 Моделирование устройства
Моделирование и отладка устройства производилось с использованием пакета автоматизированного проектирования Proteus.
Пакет представляет собой систему схемотехнического моделирования, базирующуюся на основе моделей электронных компонентов принятых в PSpice (программа симуляции аналоговой и цифровой логики). Отличительной чертой пакета Proteus

На рисунке 2.32 представлен внешний вид рабочего стола программы Proteus ISIS.

Рисунок 2.32 – Внешний вид программы Proteus ISIS
2.5.1 Создание схемы устройства
Первое что нужно сделать для начала проектирования, подключить все необходимые библиотеки с нужными нам элементами. Менеджер библиотек Proteus ISIS изначально содержит огромное количество различных библиотек, для всех широко используемых элементов, однако если всё же требуемой библиотеки элемента не было найдено, всегда можно заказать необходимую библиотеку на официальном сайте программы. На рисунке 2.33 показано добавление микроконтроллера с использованием менеджера библиотек.

Рисунок 2.33 – Добавление микроконтроллера с использованием менеджера библиотек Proteus ISIS
Аналогичным образом с использованием менеджера библиотек добавляются все необходимые элементы: ЖКИ, датчик температуры, генератор, таймер и источник питания. На рисунке 2.34 представлен внешний вид готовой схемы разрабатываемого устройства. Подключение всех элементов осуществляется с использованием листа схемы соединений ПГУ1.230101.17.008 Э4.

Рисунок 2.34 – Внешний вид схемы устройства
2.5.2 Проверка работоспособности устройства
После создания и подключения всех элементов, необходимо загрузить программный файл в микроконтроллер. Формат загружаемого файла должен иметь расширение .hex. Разработка программного обеспечения производилась с использованием пакета Keil uVision3 который способен преобразовать написанную программу в необходимое нам расширение. На рисунке 2.35 показан процесс подключения программного файла к микроконтроллеру.

Рисунок 2.35 – Подключение программного файла к микроконтроллеру
После того, как были выполнены все необходимые действия можно приступать к запуску моделирования. Для отладки разрабатываемого устройства на схему были добавлены светодиоды, загорание которых свидетельствует о прохождении по линии импульса. Ниже приведены рисунки доказывающие работоспособность разрабатываемого устройства. На рисунке 2.36 изображено начальное состояние разрабатываемого изделия в момент запуска процесса моделирования. В качестве даты берётся текущее время и дата компьютера, на котором происходит моделирование устройства. Индикатор счётчика наработки показывает 07070.7, поскольку оно считывает информацию из Flash памяти микроконтроллера, которая не сохраняется после остановки сеанса моделирования, однако для проверки можно вручную задать необходимые нам данные и проверить работоспособность изделия выполнять считывание из Flash памяти микроконтроллера. Состояние датчика температуры можно изменять во время моделирования путём нажатия соответствующих кнопок «плюс» и «минус» на элементе и отслеживать реакцию изделия на изменение температуры.

Рисунок 2.36 – Состояние изделия в момент запуска моделирования
Далее на рисунках показаны различные режимы работы разрабатываемого устройства. На рисунке 2.37 показан режим работы установки даты. Режим работы выбирается путём нажатия кнопки подключенной к контакту P0.2. Перемещение курсора осуществляется нажатием на кнопку, подключенную к контакту P0.0. Изменение значений времени и даты происходит путём нажатия на кнопку, подключенную к контакту P0.1. На рисунке 2.38 представлен режим работы установки будильника.
Проведённое моделирование доказывает работоспособность разрабатываемого микроконтроллерного устройства обеспечения функций времени способного работать в жестких условиях эксплуатации.

Рисунок 2.37 – Режим работы установки даты

Рисунок 2.38 – Режим работы установки будильника


РЕЦЕНЗИЯ
на дипломный проект студента группы *****
***** государственного университета
Иванова Ивана Петровича
на тему: "Микроконтроллерная система обеспечения функций времени в жестких условиях эксплуатации"

Дипломный проект Ларченко Е.В. посвящен решению актуальной для ООО НПП "Рубин" задачи разработки микроконтроллерной системы способной обеспечивать функции времени и работать в тяжелых условиях эксплуатации.
Предлагаемая разработка представляет собой универсальную систему позволяющую обеспечивать измерение температуры и выполнять функции часов и календаря.
Дипломником были разработаны структура устройства, принципиальная схема устройства, ПО микроконтроллерной системы написанное на Ассемблере. Проведено моделирование работы системы, которая показала правильность функционирования системы.
В процессе работы Ларченко Е.В. проявил себя грамотным специалистом, способным самостоятельно решать сложные технические задачи. Работа выполнена качественно и аккуратно, соответствует заданию, отвечает требованиям ЕСКД и ЕСПД. Пояснительная записка составлена грамотно и раскрывает заданную тему в полном объеме.
Достоинствами разработки можно считать способность устройства работать в жестких условиях эксплуатации, измерять температуру окружающего воздуха и обеспечивать стандартные функции часов и календаря.
К недостаткам работы можно отнести

Результаты проекта могут быть использованы в ОАО НПП "Рубин".
Считаю, что дипломный проект Иванова И.П. может быть допущен к защите в ГАК, заслуживает оценки "отлично", а его автор квалификации инженера по специальности 777777.

Комментарии:

Оставить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.