6. Базовое програмное обеспечение

 

6.1 Блок-схема алгоритма работы микроконтроллера

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

Работа программы начинается с инициализации контроллера и переменных. В инициализацию контроллера входит:

настройка портов на вывод или ввод и отключение подтягивающих резисторов;

включение таймеров TMR0, TMR1, TMR2 и настройка их предделителей;

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

включение периферийных модулей MSSP, USART, ADC и их настройка;

очистка регистров общего назначения.

Настройка портов ввода-вывода выполняется согласно таблице 6.1.1:

Таблица 6.1.1 – направление портов ввода-вывода

Порт и номер бита Направление

PORTA,0

PORTA,1

PORTA,2

PORTA,3

PORTA,4

PORTA,5

ввод

ввод

ввод

ввод

вывод

вывод

PORTB,0

PORTB,1

PORTB,2

PORTB,3

PORTB,4

PORTB,5

PORTB,6

PORTB,7

ввод

ввод

ввод

ввод

ввод

ввод

ввод

ввод

PORTC,0

PORTC,1

PORTC,2

PORTC,3

PORTC,4

PORTC,5

PORTC,6

PORTC,7

вывод

вывод

вывод

ввод

ввод

вывод

ввод

ввод

PORTD,0

PORTD,1

PORTD,2

PORTD,3

PORTD,4

PORTD,5

PORTD,6

PORTD,7

вывод

вывод

вывод

вывод

вывод

вывод

вывод

вывод

PORTE,0

PORTE,1

PORTE,2

вывод

вывод

вывод

Перед каждым таймером должен быть включен предделитель. Предделители настраиваются согласно таблице 6.1.2. Для опроса ИК-пульта используется таймер TMR0. Он необходим для измерения периода между двумя соседними импульсами в передаваемом пакете данных.

Для опроса датчиков, вкл.\выкл. нагрузки и переключения ступени в СИФУ использован таймер TMR1.

Таймер TMR2 используется при управлении нагрузкой методом импульсно-фазового управления. Значение, записанное в регистр данного таймера, определяет промежуток времени от перехода фазы сетевого напряжения через нулевой порог до включения триака VS4.


Таблица 6.1.2 – значение предделителя для таймеров.

Таймер Разрядность Предделитель Постделитель Период
TMR0 8 бит 1:64 - 16 мс
TMR1 16 бит 1:1 - 65 мс
TMR2 8 бит 1:16 1:2 8 мс

Прерывающая программа состоит из прерываний высокого и низкого уровня. Прерывание INT0, которое возникает при переходе логического уровня с “0” в ”1” нулевого бита порта B, имеет высокий приоритет. Все остальные прерывания выполняются с низким приоритетом. Это необходимо для корректного опроса ИК-приёмника, подключенного к нулевому биту порта B.

ИК-пульт работает следующим образом. Выдается пакет, состоящий из 6 байт. Формат каждого передаваемого байта состоит из импульса сброса, стартового, 8 информационных и импульса чётности. Диаграмма передаваемого байта изображена на рисунке

Рисунок 6.1.1 – формат ИК-команд

Кодирование информации происходит следующим образом. Длительность паузы в 10 мс от импульса сброса R до стартового импульса S означает, что начата передача байта. Длительность паузы от стартового импульса до информационного (и между информационными) в 2 мс означает кодирование логического “0” а длительность в 4 мс – логической “1”. Таким же образом кодируется 9 бит чётности. Если длительность паузы не укладывается в данный диапазон, то считается что при передаче возникла ошибка, в результате чего данный пакет игнорируется. Пауза измеряется с помощью таймера TMR0. Если пауза была слишком большой, то TMR0 переполняется и начинает отсчет сначала, при этом выставляется влаг прерывания в регистре INTCON. Именно поэтому при измерении паузы необходимо проверять данный флаг прерывания. После того как весь пакет будет принят правильно, выставляется специальный флаг, который сообщает основной программе, что была принята команда с пульта. После проверки данного флага основная программа выполняет принятую команду. Формат передаваемого пакета изображён в таблице 6.1.3.

Таблица 6.1.3 – формат ИК протокола.

№ байта Обозначение в программе значение
1 ID_KEY Идентификатор пульта
2 COMMAND Передаваемая команда
3 PASS1 1 и 2 цифры пароля
4 PASS2 3 и 4 цифры пароля
5 PASS3 5 и 6 цифры пароля
6 PASS4 7 и 8 цифры пароля

После получения пакета в прерывании проверяется байт идентификатора. Если он равен 15, то принятый пакет принадлежит пульту от данной ОС и выставляется флаг, который сообщает основной программе о том что была принятя команда с ПДУ. Пульт передаёт 4 различных команды. Их код приведён в таблице 6.1.4.

Таблица 6.1.4 – коды команд ПДУ.

Код, hex Значение
#A0 Вкл.\выкл. силовой канал №1
#B0 Вкл.\выкл. силовой канал №2
#C0 Вкл.\выкл. силовой канал №3
#EE Переключить режим охранной системы

В подпрограмме прерывания по переполнению таймера TMR1 производится опрос подключенных датчиков. Если какой-либо датчик выдаст логическую “1” на вход то если его срабатывание разрешено байтами SENSOR_MODE и HL_STAT устанавливается флаг, проверяемый в цикле главной программы. Также в данном векторе прерывания производится увеличение ступеньки СИФУ на 25.

При возникновении прерывания таймера TMR2 производится подача импульса на триак VS4, длительность которой составляет 100 мкс. Этот импульс открывает данный триак, в результате чего нагрузка включается. Закроется триак лишь когда сетевое напряжение достигнет нулевого значения.

Значение ступени для импульсно-фазового управления заносится в таймер TMR2 при возникновении прерывания INT1. Данное прерывание происходит при переходе сетевого напряжения через нулевое значение.

Цикл основной программы состоит из следующих этапов:

чтение данных с термометра и АЦП;

Приём данных с ПК;

Передача данных на ПК;

Проверка наличия невыполненной команду ПДУ;

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

Вывод данных на экран.

Цикл главной программы начинается с чтения данных цифрового термометра и АЦП, после чего производится приём данных. Если данные не поступают в течение 500 мс, значит соединение прервано, и весь цикл будёт начат заново. Формат принимаемых данных описан в таблице 6.1.6

После того как будут приняты все 10 байт, начинается передача 6 байт в ПК. Формат передаваемых данных приведен в таблице 6.1.5.

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

Следующий этап главного цикла состоит в установке переменных в соответствии с данными, полученными с ПК. Здесь производится установка порогов срабатывания датчика и сравнение их с текущим значением. Если какой-либо датчик сработал, включается режим оповещения.

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

Таблица 6.1.5 – формат передаваемых данных в ПК.

Название Назначение
1 Address Сетевой номер охранной системы
2 SENS1_STAT

0 – флаг дверного датчика

1 – флаг оконного датчика

2 – флаг лазерного датчика

3 – знак измеренной температуры объекта

4 – десятая часть градуса температуры

5 – была команда с ПДУ на вкл.\выкл. силового канала №1

6 – была команда с ПДУ на вкл.\выкл. силового канала №2

7 – была команда с ПДУ на вкл.\выкл. силового канала №3

3 SENS2_STAT

0 – флаг доп. датчика №1

1 – флаг доп. датчика №2

2 – флаг доп. датчика №3

3 – флаг доп. датчика №4

4 – флаг доп. датчика №5

5 – флаг доп. датчика №6

6 –была команда с ПДУ

7 – была команда с ПДУ на переключение режима ОС

4 AD Значение, полученное с аналогового датчика
5 TERMAL Измеряемая температура объекта
6 ADD_BYTE

0 – флаг “пароль не верен”

1…7 – не используются

Таблица 6.1.6 – Формат принимаемых данных с ПК.

Название Назначение
1 Address Сетевой адрес охранной системы
2 HL_STAT

0 – флаг состояния силового канала №1

1 – флаг состояния силового канала №2

2 – флаг состояния силового канала №3

3 – вкл.\выкл. режим охраны

4 – отбой тревоги, очистка флагов

5 – режим оповещения (мерцание\включение)

6 – вкл.\выкл. дверной датчик

7 – команда ПДУ передана на ПК

3 TERMAL_L Нижний порог срабатывания термометра
4 TERMAL_H Верхний порог срабатывания термометра
5 AD_VREF Порог срабатывания аналогового датчика
6 SENSOR_MODE

0 – вкл.\выкл. доп. датчик №1

1 – вкл.\выкл. доп. датчик №2

2 – вкл.\выкл. доп. датчик №3

3 – вкл.\выкл. доп. датчик №4

4 – вкл.\выкл. доп. датчик №5

5 – вкл.\выкл. доп. датчик № 6

6 – вкл.\выкл. оконный датчик

7 – вкл.\выкл. лазерный датчик

7 DEF_PASS1 1 и 2 цифры устанавливаемого пароля
8 DEF_PASS2 3 и 4 цифры устанавливаемого пароля
9 DEF_PASS3 5 и 6 цифры устанавливаемого пароля
10 DEF_PASS4 7 и 8 цифры устанавливаемого пароля

6.2 Разработка программы поддержки

Для создания удобного интерфейса управления ОС необходимо написать программу на ПК. Эта программа должна обеспечить наглядное отображение состояния всех подключенных датчиков, а также дать возможность управления режимами ОС. Для создания данной программы будем использовать визуальную среду программирования Delphi 7.0. При работе с последовательным портом необходим дополнительный компонент под названием “Comport”, который доступен в Интернете на сайте http://www.torry.ru. Программа должна иметь удобное управление, а также голосовое озвучивание событий.

Создание главной формы.

Главная форма программы изображена на рисунке 6.2.1. В верхней части формы расположены клавиши управления ОС.

Подключить – данная кнопка служит для установления связи с устройством.

Параметры – вызывает форму с настройками системы, изображённую на рисунке 6.2.2.

Отбой – отключает режим оповещения, сбрасывает флаги сработавших датчиков.

Помощь – Вызывает форму с описанием программы.

Закрыть – завершает связь с ОС и закрывает программу.

Рисунок 6.2.1 – основная форма программы

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

В верхнем левом углу отображается текущий режим ОС и расположена клавиша управления режимом. Когда ОС находится в режиме охраны, кнопка загорается красным светом.

В середине расположены кнопки для управления трёмя силовыми каналами. Если какой-либо канал включен, соответствующая кнопка загорается жёлтым цветом. В том случае, когда с ПДУ была команда на вкл./выкл. какого-либо канала, программа автоматически зажигает или гасит соответствующую кнопку.

Ниже расположена картинка, которая наглядно отображает текущее состояние (откл., вкл., тревога) ОС.

Меню настроек программы.

Здесь расположены все элементы управления программой.

ИК-ключ. Здесь вводится пароль, который сравнивается в паролем, выдаваемым с ПДУ. Если он совпадает, система воспринимает команды ПДУ. По умолчанию “12345678”.

Термометр\термостат. Здесь задаются верхний и нижний порог срабатывания цифрового термометра. По умолчанию соответственно “40” и ”10”.

Аналоговый датчик. Здесь задаётся пороговое значение, полученное с АЦП. Если считано значение выше заданного, выдаётся сигнал тревоги.

Тип сигнализации. Устанавливает режим оповещения: либо мерцание лампы на четвертом силовом канале, либо просто его включение. По умолчанию выбран пункт “свет”.

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

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


Рисунок 6.2.2 – окно настроек программы

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

Рисунок 6.2.3 – окно предупреждения при разрыве связи.


Информация о работе «Охранная система с дистанционным управлением»
Раздел: Информатика, программирование
Количество знаков с пробелами: 114489
Количество таблиц: 21
Количество изображений: 10

Похожие работы

Скачать
109723
12
32

... , элементы питания – 2400 мм2) высота пульта управления с учётом ширины корпуса будет равна 10 мм. 7. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ 7.1 Характеристика проекта Проектируемая система представляет собой систему охранной сигнализации автомобилей. В разрабатываемой системе будут реализованы функции, как автономной охраны, так и централизованной. Так, например, она будет в режиме «Тревога» ...

Скачать
76986
14
2

... полностью выключена и автомобиль в таком состоянии можно отдавать в сервис, сняв со связки ключей все брелки. Вам не придется обучать слесаря, которого вы видите в первый раз, всем премудростям охранной системы автомобиля. Зачем ему это! Таким образом, никто кроме вас не будет знать где и какие охранные системы установлены на вашем автомобиле. Другой функцией выключателя «Valet» является то, что ...

Скачать
15444
0
0

... (магнитные защелки, задвижки и т.п.) закрывающих элементов с возможностью перемещения их вручную при открывании или закрывании в экстремальных условиях Рассмотрим требования к основным компонентам СКУД. Требования к устройствам идентификации   Считыватели должны обеспечивать надежное считывание кода с идентификаторов преобразование его в электрический сигнал и передачу на контроллер. ...

Скачать
22025
1
0

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

0 комментариев


Наверх