СОДЕРЖАНИЕ
1. Задание на разрабатываемое устройство
1.1 Требования к охранным, пожарным шлейфам
1.3 Требования к конфигурированию и настройке устройства
2. Электронные компоненты печатной платы
.1 Технические характеристики и параметры основных компонентов печатной платы
.2 Применяемые схемотехнические решения
3. Программное обеспечение микроконтроллера
.2 Задачи операционной системы реального времени
3.3 Взаимодействие задач и прерываний
.4 Функции обработчиков прерываний
.6 Передача параметров настройки по USB
4. Программное обеспечение Windows Form C#
.1 Определение общей структуры приложения
4.2 Создание библиотеки из ссылочных типов содержащие поля данных
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
"Разработка GSM-сигнализации
"
Содержание
Список принятых сокращений
Введение
1. Задание на разрабатываемое устройство
1.1 Требования к охранным, пожарным шлейфам
1.2 Требования к входным и выходным исполнительным органам
1.3 Требования к конфигурированию и настройке устройства
2. Электронные компоненты печатной платы
2.1 Технические характеристики и параметры основных компонентов печатной платы
2.2 Применяемые схемотехнические решения
3. Программное обеспечение микроконтроллера
3.1 Основная структура проекта
3.2 Задачи операционной системы реального времени
3.3 Взаимодействие задач и прерываний
3.4 Функции обработчиков прерываний
3.5 RTOS задачи проекта
3.6 Передача параметров настройки по USB
4. Программное обеспечение Windows Form C#
4.1 Определение общей структуры приложения
4.2 Создание библиотеки из ссылочных типов содержащие поля данных
4.3 Основная сборка проекта
Заключение
Список литературы
Приложения
Список
принятых сокращений
МК - микроконтроллер
ПО - программное обеспечение
ПП - печатная плата
ОСРВ - операционная система реального времени
ДУ - дистанционное управление
СФР - специальный функциональный регистр
ПК - персональный компьютер
Разрабатываемая GSM-сигнализация предназначена для оповещения, персонала зданий и сооружений о нарушении охранного режима и состояния пожарной обстановки при срабатывании пожарных датчиков (температурного, датчика задымления и т.д.). Сигнал от сработавшего датчика охранной или пожарной сигнализации с помошью сотовой связи, отправляется на запрограммированный номер. Данное устройство не содержит, каких либо дополнительных средств защиты от различных генераторов шума и блокираторов, но в нем заложена возможность дополнительного канала связи в виде подключения устройства к локальной сети Ethernet (программирование и подключение к локальной сети в данной работе не описывается).
Данная работа содержится описание двух основных направлений работы над устройством:
разработка ПО микроконтроллера;
разработка ПО для конфигурирования устройства.
В качестве основного исполнительного модуля сигнализации GSM используется 32 битный микроконтроллер STM32F407VGT [1], разработка приложения для встраиваемой системы выполняется на языке Си с использованием среды разработки Keil uVision4, используя компилятор armcc.
ПО для конфигурирования устройства разрабатывалось, используя Windows Form, Visual Studio2010.
Дополнительно при программировании использовались уже готовые
примеры и библиотечные модули, например для ядра микроконтроллера
использовалась библиотека CMSIS, для применения USB - пример
STM32_USB_Device_Library от STMicroelectronics для ядра системы реального
времени операционная система FreeRTOS [2].
Основные функции, которые должно выполнять устройство:
подключение и контроль состояния различных датчиков, отправка сообщений
владельцу GSM-сигнализации о нарушении охранного режима, пожарной обстановке.
Сигнализация должна иметь входные и выходные исполнительные органы где входа
используются для активации например какого-либо шлейфа сигнализации или его
деактивации, выходы могут быть использованы для включения сирены, мигающей
лампы или включение дополнительных устройств.
Основное требование к устройству способность подключения пожарных (дымовые оптические - ДИП34А, ИП212 тепловые ИП114), охранных датчиков (инфракрасные датчики движения АСТРА5,6) и простых магнитоконтактных герконовых датчиков (ИО-112).
Также должна обеспечиваться возможность подключения дополнительных датчиков например датчиков влажности с возможностью задания порогов срабатывания датчиков с помощью программного обеспечения. Почти все современные датчики по типу действия являются активными - питаются от цепей напряжением от 10 до 30 Вольт и при изменении своего состояния например при срабатывании пожарного датчика или нарушении охранной зоны изменяют внутреннее сопротивление датчика тем самым изменяя напряжение снимаемого с делителя напряжения подключенного параллельно данному шлейфу в нашем устройстве.
Шлейф для охранно-пожарной сигнализации это электрическая цепь, соединяющая выходные цепи извещателей, включающая в себя вспомогательные элементы и соединительные провода и предназначенная для передачи на приемно-контрольный прибор <#"804202.files/image001.jpg">
Рис 2.2.1 Модуль сигнализации KIT MP324
Для дополнительной возможности постановки и снятия с охраны устройство должно быть снабжено входом для подключения iButton по однопроводному интерфейсу 1-Wire разработанной Dallas Semiconductor. Вход для подключения iButton должен иметь супрессорную защиту от статических разрядов порта микроконтроллера.
Также устройство должно иметь входы для подключения дополнительных датчиков температуры DS18B20 для температурного контроля помещений.
Требования к выходам устройства. Устройство должно содержать
не менее двух выходных реле, с контактами коммутирующими нагрузку 1кВт, четыре
выхода для коммутации реле 12 Вольт 0.5 Ампер и дополнительно резервные выходы
без гальванической и каскадной развязки для возможности будущего расширения
контактных групп выходов.
сигнализация должна конфигурироваться используя программное обеспечение работающей под операционной системой Windows 7. Программное обеспечение должно предусматривать возможность настройки таких параметров как количество используемых каналов (шлейфов) сигнализации, настройке телефонов по которому выполняется оповещение при наступлении определенного события, должны вводиться данные о владельце телефона. Каждый канал должен иметь два настраиваемых уровня входного напряжения для оповещения об аварии на данном шлейфе (короткое замыкание, обрыв) и два дополнительных уровня для оповещения (пожарные датчики работают в паре и имеют два порога, срабатывании одного датчика соответствует сообщению - предупреждение, срабатывание двух - пожар). Для каждого канала должна быть возможность активации данного порога или деактивации с помощью брелока и программируемой выдержкой времени, и при срабатывании определенного порога срабатывание программируемого выхода.
Конфигурирование устройства должно выполняться используя USB интерфейс.
сигнализация оповещение пожарный датчик
Пред программированием и воплощением сигнализации в железе согласно техническому заданию на устройство, составляется принципиальная электрическая схема, для него подбираются необходимые электронные компоненты согласно питающему напряжению, требованиям к суммарному потреблению и дополнительным требованиям. Затем проектируется печатная плата для отладки и проверке функционирования, и после этого с учетом отладочных работ выполняется внесение изменений либо в схемотехнические решения, если это необходимо по результатам работы устройства, либо внесение изменений на программном уровне и производится плата уже под готовое устройство. В данной выпускной работе рассматривается только этап работы с отладочной платой.
К основным компонентам применяемым в нашем устройстве являются: микроконтроллер STM32F407VGT в корпусе LQFP - 100, GSM модуль SIM900E. Так как микроконтроллер имеет 100 выводов и при начальном проектировании, количества выводов было недостаточно, то были применены аналоговые мультиплексоры в цепях аналоговых и дискретных входов.
Основные характеристики микроконтроллера STM32F407VGT:
максимальная тактовая частота 168 МГц Cortex-M4F, 1 Мб флэш-памяти программ,
192 Кб ОЗУ, 3 x 12-разрядных АЦП, 2 x 12-разрядных ЦАП, Ethernet MAC 10/100,
USB FS/HS OTG, 2 x CAN, 4 х USART, 3 х SPI, 3 x I2C, SDIO. Основными
параметрами для нас здесь являются - объем оперативной памяти. Так как мы
используем FreeRTOS, а за использование ядра операционной системы реального
времени OCPB приходится платить: расходом памяти для хранения ядра, расход
памяти для хранения стэка каждой задачи, таймеров семафоров, мьютексов и других
объектов ОСРВ. Вторым важным параметром является тактовая частота ядра
микроконтроллера и частота периферийных шин, от них зависит и суммарное
потребление устройства. Источником опорной частоты служит внешний кварцевый
резонатор 8MHz, используется контур фазовой автоподстройки частоты ФАПЧ для
разгона системной частоты до 168 MHz. Настройки частот можно выполнить вручную
в файле system_stm32f4xx. c задаются с использованием директив define. Либо
воспользоваться специальным программным обеспечением STM32CubeMX Рис. 3.1.1.
Рис. 3.1.1 Настройка тактовых частот ядра и периферии
микроконтроллера
Основные характеристики GSM модуля SIM900E: два диапазона GSM 900/1800 МГц (частота работы определяется при вставленной Sim карте), управление AT командами, класс мощности 4 (2 Вт в диапазонах 900 МГц), класс мощности 1 (1 Вт в диапазонах 1800 MГц). Основными параметрами данного модуля является управление AT командами. Все команды делятся на базовые, так называемые S-команды и расширенные. Практически все команды работают в 3 режимах - тестовом, чтения и записи. Так как основное назначение сигнализации является отправка SMS сообщения то для нас важно отправка сообщений на русском языке. SIM900E поддерживает два режима: отправка сообщений в текстовом режиме (в этом режиме все буквы кодируются в ASC2 формате отправка сообщений только латиницей) и в режиме PDU - специальный режим когда сообщение кодируется hex кодом и сообщение обрамляется специальными параметрами, такими как длинна сообщения, длинна номера, интернациональный формат номера и. т.д. При этом текущей кодировкой в этом режиме является формат UCS2 - аналог формата Unicod16.
От выполнения данных решений Рис. П.2.1 напрямую зависит
реализация программного кода микроконтроллера. Ввод и измерение аналоговых
сигналов с шлейфов сигнализации Рис 3.2.1, всего данных шлейфов в устройстве
шестнадцать.
Рис 3.2.1 Реализация аналогового входа одного шлейфа
сигнализации
Датчики пожарной и охранной сигнализации подключаются к
клемной колодке справа XS1,XS3…XS16. Текущее напряжение с датчиков снимается с
выводов SH_ADC1… SH_ADC16 - это аналоговые входа, они подаются в
микроконтроллер не на прямую, а мультиплексируются аналоговыми мультиплексорами
Рис 3.2.2.
Рис 3.2.2 Мультиплексирование аналоговых входов МК
На Рис 3.2.2 шлейфа сигнализации SH_ADC1 - SH_ADC8 мультиплексируются на два вывода ключа 1D и 2D напряжение с этих выводов подаются для измерения в микроконтроллер. Наше устройства содержит два таких ключа для ввода напряжений шлейфов, таким образом мы экономим 8 выводов микроконтроллера (4 - вывода используется для управления мультиплексором и 4 - для ввода сигнала в МК). Однако за экономию выводов приходится усложнять программное обеспечение, необходимо контролировать текущее положение ключей чтобы сохранять результаты замеров в соответствующую ячейку буфера для дальнейшей обработки.
Ввод дискретных сигналов от кнопки и от пульта дистанционного
управления Рис 3.2.3 также выполняется через мультиплексор. Ввод сигналов от
брелока выполняется так, что при нажатии на кнопку и соответствии положения
ключа мультиплексора напряжение 5В (вход МК RF должен быть толерантен к
напряжению 5В) с входа RF пропадает. Вход key от кнопок в МК должен быть
подтянут к напряжению питания 3.3 Вольт, при нажатии на соответствующую кнопку
падение напряжения на входе key =0Вольт.
Рис 3.2.3 Ввод дискретных сигналов в МК
Реализация выходных сигналов Рис 3.2.4 Четыре выхода
предназначены для управления слаботочной нагрузкой 12В 0.5А, остальные без
каскадов соединены напрямую с выводами МК.

Проект для микроконтроллера создан в среде разработки Keil uVision4. При написании кода вначале были составлены отдельные проекты и проверена их работа из примеров STM32F4xx_USB_Exemple для работы с USB, составлен отдельный проект для проверки АЦП и вывода их значений в окно терминала по USART, проект для работы с Sim900 опробована отправка сообщений, проект для работы с однопроводным интерфейсом 1-Wire проверена работа считывания 64 битного ключа iButton и работа термодатчиков. Основным проектом стал проект работы ОСРВ FreeRTOS. В этот проект затем добавлялся код из всех остальных вышеописанных проектов. Основная проблема соединения проектов заключалась в том, что некоторые из проектов содержали разную настройку частоты тактирования периферии. В настоящий момент существует программное обеспечение STM32F4 CubeMX позволяющее настроить все используемые выводы на нужную периферию, задать настройки необходимых прерываний, добавить ОСРВ, включить в проект использование драйверов USB, при необходимости добавить стек протоколов TCP/IP LwIP, после чего данная программа сгенерирует готовый шаблон кода со всеми необходимыми настройками.