Файл: Дипломный проектработа тема работы Разработка gsmконтроллера для систем управления беспроводным.pdf
Добавлен: 12.01.2024
Просмотров: 307
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
5.3 Расчет реле
Для обеспечения гальванической развязки микроконтроллера и канала управления в качестве основного управляющего элемента выберем электромагнитное реле TRQ2-12VDC-R с параметрами: сопротивление обмотки
– 1028 Ом напряжение обмотки - 12 В, максимальное постоянное напряжение контактов – 30В, 1 А. Реле имеет как нормально-замкнутые контакты так и нормально-разомкнутые.
Подключить реле напрямую к порту МК не получится, т.к. максимальное напряжение 5В и не более 20 мА, что недостаточно для срабатывания реле.
Поэтому для управления работой реле будет использоваться транзисторный ключ на биполярном транзисторе. Для открытия реле требуется
12 11 1028
Обмотки
Обмотки
Обмотки
U
I
мА
R
(5.2)
Пэтому необходим транзистор с коллекторным током более 11мА. Выбран
2N2222. Номинал резистора R16 – 4,7 кОм. Схема включения показана на рисунке 5.11:
+12B
K1
K1.1
R17
R16
VT2 10
VD12
Цепь
1 2
3
Реле 1
Реле 2
Реле 3
Конт.
XT3
Рисунок 5.11 – Схема исполнительного механизма
Транзисторный ключ, при пропускании тока через цепь База-Эмиттер, будет пропускать через цепь Коллектор-Эмиттер ток:
К Э
fe
Б
I
h
I
(5.3)
40
Максимальное напряжение вывода микроконтроллера при подаче в порт единицы равно 3,3В. Сопротивление в базовой цепи равно 4700 Ом. Значит ток, по закону Ома, будет равен 3,3/4700=0,7 мА (максимальная нагрузка на порт 15 мА), что не создаст на МК большой нагрузки.
На выходе транзистора будет:
0,0007 50 0,035 .
К
Б Э
fe
I
I
h
А
(5.4)
Это означает, что транзистор будет полностью открыт и пропустит максимальный ток, достаточный для срабатывания реле. В данном случае ток будет определяться сопротивлением обмотки реле
Во избежание пробоя транзистора от всплесков напряжения при переключении реле установлен диод VD12, при нормальной работе диод включен встречно напряжению и ток через него не идёт. А при выключении напряжения на индуктивности будет уже в другую сторону и пройдёт через диод.
Защитный диод VD12 должен выдерживать ток равный току коллектора –
11 мА, применим диод LL4148 выдерживающий ток 150мА и напряжение до
100В.
Выходы реле подключены к разъёму ХТ3.
5.4 Подключение EEPROM
Т.к. количество номеров пользователей системы контроля доступа может быть до 1024. Для их хранения/добавления/удаления необходима внешняя память EEPROM. Для этих целей выберем микросхему двухпроводного последовательного EEPROM емкостью 128 кбит
AT24C128 [8].
Отличительные особенности:
работа при пониженном и стандартном напряжении питания - 2.7В (Vсс
= 2.7В..5.5В)- 1.8В (Vсс = 1.8В..3.6В);
организация памяти 16384 x 8 и 32768 x 8;
двухпроводной последовательный интерфейс I2C;
41
триггеры Шмита на входах для подавления шума;
двунаправленный протокол передачи данных;
совместимость с частотами синхронизации 1 МГц (5В), 400 кГц (2.7В,
2.5В) и 100 кГц (1.8В);
вход защиты от записи для аппаратной и программной защиты данных;
режим записи 64-байтных страниц (возможность частичной записи страницы);
самосинхронизированный цикл записи (не более 5 мс);
высокая надежность - Износостойкость: 1 миллион циклов записи-
Сохранность данных: 40 лет;
расширенный температурный диапазон [8].
Т а б л и ц а 5.1 – Контакты AT24C128
Название контакта
Функция
A0…A1
Адресные входы
SDA
Последовательный ввод данных
SCL
Вход последовательной синхронизации
WP
Вход защиты от записи
NC
Не присоединён
GND
Общий
42
Рисунок 5.12 – Структурная схема AT24C128
DD1
A0 1
ROM
+3,3В
A1 2
A2 3
Gnd
4
Vcc
8
WP
7
SLK
6
SDA
5
R8
R9
R10
C5
PC3 26
PC5 28
PC4 27
Рисунок 5.12 – Подключение AT24C128 к МК ATmega8
Описание выводов:
SCL - синхронизация последовательной связи
Вход SCL используется для ввода данных нарастающим фронтом и вывода данных падающим фронтом.
SDA - последовательная передача данных и адреса
43
Вывод SDA используется для двунаправленной последовательной передачи данных. Он является выводом с открытым стоком и может быть соединен с несколькими аналогичными выводами (с открытым стоком или коллектором).
A1, A0 - входы задания адреса
Входы A1 и A0 предназначены для задания адреса. Их можно оставить неподключенными в целях аппаратной совместимости с другими представителями серии AT24CXX. Если данные выводы задействованы, то до 4 четырех 128/256 кбитных микросхем можно адресовать на одной последовательной шине.
Если выводы задания адреса оставить неподключенными, то уровни на них будут образованы встроенными подтягивающими резисторами (подтягивание к уровню GND), но при условии, что емкостная связь с VCC на печатной плате < 3 пФ. Если данная емкостная связь более 3 пФ, то рекомендуется подключить адресные входы к GND.
WP - вход защиты от записи
При подключении данного входа к GND операция записи разрешена. Если же его подключить к VCC, то все команды записи в память игнорируются. Если данный вывод оставить отключенным, то он будет подтягиваться к уровню GND встроенным подтягивающим резистором при условии, что емкостная связь с
VCC на печатной плате не более 3 пФ. Если емкостная связь более 3пФ, то рекомендуется подключить данный вывод к GND.
5.5 Блок светодиодов
Система индикации контроллера состоит из трех индикационных светодиодов – красного, желтого и зеленого.
Красный светодиод отражает состояние связи с сетью GSM. Возможно два состояния – частые вспышки (примерно 1-2 раза в секунду) означают, что контроллер по какой-либо причине не может зарегистрироваться в сети GSM.
Редкие вспышки (примерно 1 раз в 3-5 секунд) означают, что контроллер
44 зарегистрировался в сети GSM и готов к работе (его расчет приведен в пункте
5.2.5).
Зеленый светодиод отражает состояние реле. Когда реле включено, светодиод горит, когда выключено - погашен.
Желтый светодиод при регистрации каждого нового пользователя мигает три раза.
24
R1
PC1
VD1 23
R2
PC0
VD2
Рисунок 5.12 – Подключение светодиодов к МК
В качестве VD1, VD2 выберем светодиоды LED Green 0805 и LED Yellow
0805, обладающие высокой яркостью свечения, большим углом обзора [9].
Имеющие следующие параметры:
- номинальный прямой ток необходимый для засветки одного индикатора
5мА;
- постоянное прямое напряжение (при номинальном токе) 1,5 В.
Резисторы R1-R2 предназначены для ограничения тока светодиодов и равны:
R1,R2 = (U
пит
-U
VD
)/I
VD
=(3,3-2)/5·10
-3
= 270 Ом где I
VD
– ток светодиода 2..10мА, зададимся 5мА;
U
пит
– напряжение питания;
U
VD
– падение на светодиоде.
5.6 Расчёт блока питания
Опишем требования, предъявляемые к блоку питания:
первичное напряжение 12В;
питание катушки реле 12В;
45
питание микроконтроллера 3,3В;
питание GSM-модема 4В;
питание сигнализирующего светодиода NETLIGHT 4В;
питание драйвера RS-232 3,3В;
питание EEPROM 3,3В;
минимальные массогабаритные показатели;
гальваническая развязка от сети питания.
Рассчитаем ток, потребляемый микросхемами:
I = I1+I2+I3+I4
(8.6)
I = 10+200+3+3 = 216 мА где I1 – ток необходимый для питания микроконтроллера (при напряжении питания Vcc = 5В и тактовой частоте 16МГц) ток потребления в активном режиме не превышает 10 мА;
I2 – питание GSM-модуля 200 мА;
I3 – питание сигнализирующего светодиода NETLIGHT 3мА;
I4 – питание сигнализирующего светодиода STATUS 3мА.
В данном устройстве для питания схемы применены регулируемый стабилизатор напряжения и тока LM317 (рисунок 5.13) [9].
4
DA1
Vin
Vout
1 3
*STU
+4В
Цепь
Конт.
Питание
Общий
1 2
XТ4 2
Vout
ADJ
+12В
VD9
C9
C10
R11
R14
VD11
C12
C11
+3,3В
Рисунок 5.13 – Принципиальная схема блока питания
Технические характеристики стабилизатора LM317:
обеспечение выходного напряжения от 1,2 до 37 В.
ток нагрузки до 1,5 A.
наличие защиты от возможного короткого замыкания.
46
надежная защита микросхемы от перегрева.
погрешность выходного напряжения 0,1%.
Сумма сопротивлений резисторов R11 и R14 должна иметь такое значение, которое бы обеспечивало ток примерно 8 мА при необходимом выходном стабилизированном напряжении (Vo).
Суммарный номинал резисторов R11 и R14.
R11 + R14 = Vo/0.008= 4/0.008=500
Выходное напряжение стабилизатора (Vo) есть функция от соотношения сопротивлений резисторов R11 и R14. Переменный резистор R14 используется для установки желаемого выходного напряжения стабилизации. Формула для расчета значения сопротивлений резисторов R11 и R14:
Vo = 1.25 (1 + R14/R11) отсюда
0 14 4
1 1
2, 2 11 1, 25 1, 25
V
R
R
Выберем R11 130Ом, R14 270Ом.
5.7 Подключение программатора
На рисунке 5.14 изображена схема разъема для программирования микроконтроллера и описание выводов на микроконтроллере для его программирования (таблица 5.2) [7].
GND
VCC
21 4
+3,3B
XP1
RESET
29
GND
3
Цепь
Конт.
1 2
3 4
5 6
VCC
MOSI
MISO
SCK
GND
RESET
MISO
16
MOSI
15
SCK
17
GND
5
VCC
6
C8
Рисунок 5.14 - Подключение программатора к МК
47
Отличительная особенность микроконтроллеров семейства AVR, возможность внутрисхемного программирования.
Т а б л и ц а 5.2 - Описание выводов на микроконтроллере для программирования
Обозна чение
Тип вывода
Описание вывода
MOSI
I/O
Выход (Master) или вход (Slave) данных канала SPI
MISO
I/O
Выход (Master) или вход (Slave)данных канала SPI
SCK
I/O
B5 (Выход(Master) или вход(Slave)тактового сигнала SPI
RESET
I/O
C6 (Вход сброса)
Vcc
P
Вывод источника питания
GND
P
Общий вывод
Данные выводы выведены отдельно на плате устройства разъем XP1. В качестве разъема XP1 выбрана вилка PLS6.
5.8 Итоговая принципиальная схема
Итоговая принципиальная схема приведена в приложении Б
Перечень элементов приведён в Приложении В
48
6
Разработка управляющей программы работы GSM-
контроллера
Диалог микроконтроллера с GSM модулем происходит посредством AT команд [6]. Мы отправляем модулю нужную команду или запрос, а он её выполняет и отвечает.
Перед включением модуля важно задать параметры работы UART микроконтроллера равной параметрам UART модуля по умолчанию, иначе после включения модуль не ответит [7].
6.1 AT команды
6.1.1 – Инициализация
Т а б л и ц а 6.1 - Список команд используемых при инициализации
AT- команда
Назначение
AT+IFC=2,2
Включить аппаратный контроль приема и передачи
ATE0
Выключение режима эхо
ATV0=0
Возврат только цифрового кода ответа
AT+GOI
Чтение имени модуля
AT+COPS?
Чтение имени ОПСОСа
AT+CREG?
Чтение состояния регистрации в сети
AT+CSQ
Чтение уровня сигнала
AT+CPIN?
Необходим ввод PIN-кода или нет?
AT+CPIN=«PIN»
Запись PIN кода
AT+CMEE=0
Выключение вывода кода ошибок
AT+GSMBUSY=1
Запрет всех входящих звонков
6.1.2 Команды отправки сообщений
Перед отправкой сообщения необходимо провести подготовку модуля.
Сначала перевести формат передаваемого модулю текста сообщения в текстовый
49 режим командой «AT+CMGF=1\r». По умолчанию включен режим PDU — сообщения передаются в HEX-виде. [6]
Затем переключаем кодировку на GSM - «AT+CSCS=«GSM»\r».
Кодировка определяет в каком виде будут передаваться номера телефонов, тексты сообщений и USSD-запросы. Самый простой — «GSM», где символы представлены в удобных ASCII кодах.
Отправка СМС-сообщения.
Формат такой - посылаем «AT+CMGS=«+79XXXXXXXXX»\r», получаем в ответ приглашение набрать текст сообщения — символ ‘>’.
Отправляем текст. По окончании нужно отправить код комбинации клавиш Ctrl+Z (код 0x1A), только тогда модуль «поймет», что текст набран и можно посылать сообщение адресату.
Получаем «OK», сообщение отправлено.
При получении нового сообщения модуль уведомит отправкой в UART
«+CMTI: «SM»,INDEX\r». Следовательно в программе МК надо постоянно проверять приемный буфер на наличие данного сообщения
Прочитать одно сообщение - «AT+CMGR=INDEX,0\r», второй параметр: 0
— обычный режим (по умолчанию), 1 — не изменять состояние сообщения.
Получаем ответ вида:
«+CMGR:
“REC
UNREAD”,“+79XXXXXXXXX”,
«»
,”DATE,TIME”\r\nMessage text\r\n\r\nOK»
REC UNREAD — группа сообщений (см. ниже), DATE – дата формата
YY/MM/DD, TIME – время в формате hh:mm:ss±hh.
Удалить одно сообщение по индексу — «AT+CMGD=INDEX\r».
Удалить сообщения по критерию — «AT+CMGD=INDEX,FLAG\r», где
FLAG: 0 — удалить сообщение по индексу (по умолчанию), 1 — удалить все прочитанные сообщения, 2 — удалить прочитанные и отправленные сообщения,
3 — удалить прочитанные, отправленные и не отправленные сообщения, 4 — удалить все сообщения.
Исходя из вышеуказанного, удалить все сообщения — «AT+CMGD=1,4\r».
50
Т а б л и ц а 6.2 – Список команд при отправки сообщений
AT- команда
Назначение
AT+CMGF=1
Включение текстового режима данных
AT+CSCS=«GSM»
Выбор ASCII кодировки
AT+CM
GS=(см. выше)
Отправка SMS-сообщения
+CMTI: «SM»,INDEX
Получение индекса нового SMS-сообщения
AT+CMGR=INDEX,0
Чтение сообщение по индексу
AT+CMGD=INDEX
Удаление одного сообщения по индексу
AT+CMGD=INDEX,FLAG
Удаление сообщения по критерию
AT+CMGL=”GROUP”
Чтение группы сообщений
6.2 Схема алгоритма
Схема алгоритма управляющей программы приведена на рисунке 6.1.
Инициализация – установка констант настройка портов ввода/вывода
(параметры UART передачи данных (скорости, четности и т.д.)). Инициализация флешь-памяти.
Далее производится запуск GSM-модуля, для этого опускаем уровень на время, 2с. Запуском управляет вывод РB1 микроконтроллера.
После чего даем модулю запуститься в течение двух секунд.
Микроконтроллер ожидает пока пройдет инициализация GSM модема, т.е. модуль должен считать SIM карту и подключиться к GSM сети, которую она поддерживает.
После запуска происходит настройка GSM модуля рисунок 6.2.
После удачной инициализации микроконтроллер посылает AT команду, что означает выбор памяти модуля в качестве хранилища SMS. Должен быть ответ модуля на эту команду, в противном случае команда посылается еще раз.
После выбора памяти микроконтроллер посылает следующую команду.
Данная команда указывает модулю, что сообщения будут считываться в текстовом формате.
51
Начало
Инициализация портов контроллера
Инициализация флэш
Считывание с EEPROM время удержания контактов реле
Считывание с EEPROM
Режим работы
Считывание с EEPROM
Номера мастера
Загрузка в EEPROM
«первый запуск»
Считывание с EEPROM
Номера пользователя
Запуск GSM-модуля
PB1 (PWRKEY)=«лог0»2сек
Настройка GSM-модуля
Обработка входящего звонка
Обработка входящих СМС- сообщений
Нет
Да запуск программы впервые?
Ожидание инициализации GSM- модуля
Нет
Да
Ожидание входящих звонков
Нет
Да
Ожидание входящих СМС
Нет
Да
Нет ответа от
GSM-модуля
Нет
Да
Рисунок 6.1 – Алгоритм работы контроллера доступа
Настройка GSM- модуля
Подача команд для автоопределения скорости
Включение текстового режима СМС
Возврат
Рисунок 6.2 – Алгоритм настройки GSM модуля
52
Затем следует команда, благодаря которой из текста SMS сообщения будет удаляться некоторая информация, номер SMS сервера, дата и время. Это сделано с целью уменьшения SMS и упрощения работы микроконтроллера с ними.
Следующая команда предназначена для чтения SMS, сохраненного по первому адресу в памяти модуля.
После всех этих операций микроконтроллер удаляет SMS сообщение находящееся по первому адресу в памяти модуля и переходит к ожиданию получения следующего SMS-сообщения [7].
Обработка входящих СМС
Добавление пользователя
Удаление пользователя
Смена номера мастера
Удалить всех пользователей
Смена режима работы
Удалить SMS-сообщение
Рисунок 6.3 – Обработка входящих СМС
Для обеспечения гальванической развязки микроконтроллера и канала управления в качестве основного управляющего элемента выберем электромагнитное реле TRQ2-12VDC-R с параметрами: сопротивление обмотки
– 1028 Ом напряжение обмотки - 12 В, максимальное постоянное напряжение контактов – 30В, 1 А. Реле имеет как нормально-замкнутые контакты так и нормально-разомкнутые.
Подключить реле напрямую к порту МК не получится, т.к. максимальное напряжение 5В и не более 20 мА, что недостаточно для срабатывания реле.
Поэтому для управления работой реле будет использоваться транзисторный ключ на биполярном транзисторе. Для открытия реле требуется
12 11 1028
Обмотки
Обмотки
Обмотки
U
I
мА
R
(5.2)
Пэтому необходим транзистор с коллекторным током более 11мА. Выбран
2N2222. Номинал резистора R16 – 4,7 кОм. Схема включения показана на рисунке 5.11:
+12B
K1
K1.1
R17
R16
VT2 10
VD12
Цепь
1 2
3
Реле 1
Реле 2
Реле 3
Конт.
XT3
Рисунок 5.11 – Схема исполнительного механизма
Транзисторный ключ, при пропускании тока через цепь База-Эмиттер, будет пропускать через цепь Коллектор-Эмиттер ток:
К Э
fe
Б
I
h
I
(5.3)
40
Максимальное напряжение вывода микроконтроллера при подаче в порт единицы равно 3,3В. Сопротивление в базовой цепи равно 4700 Ом. Значит ток, по закону Ома, будет равен 3,3/4700=0,7 мА (максимальная нагрузка на порт 15 мА), что не создаст на МК большой нагрузки.
На выходе транзистора будет:
0,0007 50 0,035 .
К
Б Э
fe
I
I
h
А
(5.4)
Это означает, что транзистор будет полностью открыт и пропустит максимальный ток, достаточный для срабатывания реле. В данном случае ток будет определяться сопротивлением обмотки реле
Во избежание пробоя транзистора от всплесков напряжения при переключении реле установлен диод VD12, при нормальной работе диод включен встречно напряжению и ток через него не идёт. А при выключении напряжения на индуктивности будет уже в другую сторону и пройдёт через диод.
Защитный диод VD12 должен выдерживать ток равный току коллектора –
11 мА, применим диод LL4148 выдерживающий ток 150мА и напряжение до
100В.
Выходы реле подключены к разъёму ХТ3.
5.4 Подключение EEPROM
Т.к. количество номеров пользователей системы контроля доступа может быть до 1024. Для их хранения/добавления/удаления необходима внешняя память EEPROM. Для этих целей выберем микросхему двухпроводного последовательного EEPROM емкостью 128 кбит
AT24C128 [8].
Отличительные особенности:
работа при пониженном и стандартном напряжении питания - 2.7В (Vсс
= 2.7В..5.5В)- 1.8В (Vсс = 1.8В..3.6В);
организация памяти 16384 x 8 и 32768 x 8;
двухпроводной последовательный интерфейс I2C;
41
триггеры Шмита на входах для подавления шума;
двунаправленный протокол передачи данных;
совместимость с частотами синхронизации 1 МГц (5В), 400 кГц (2.7В,
2.5В) и 100 кГц (1.8В);
вход защиты от записи для аппаратной и программной защиты данных;
режим записи 64-байтных страниц (возможность частичной записи страницы);
самосинхронизированный цикл записи (не более 5 мс);
высокая надежность - Износостойкость: 1 миллион циклов записи-
Сохранность данных: 40 лет;
расширенный температурный диапазон [8].
Т а б л и ц а 5.1 – Контакты AT24C128
Название контакта
Функция
A0…A1
Адресные входы
SDA
Последовательный ввод данных
SCL
Вход последовательной синхронизации
WP
Вход защиты от записи
NC
Не присоединён
GND
Общий
42
Рисунок 5.12 – Структурная схема AT24C128
DD1
A0 1
ROM
+3,3В
A1 2
A2 3
Gnd
4
Vcc
8
WP
7
SLK
6
SDA
5
R8
R9
R10
C5
PC3 26
PC5 28
PC4 27
Рисунок 5.12 – Подключение AT24C128 к МК ATmega8
Описание выводов:
SCL - синхронизация последовательной связи
Вход SCL используется для ввода данных нарастающим фронтом и вывода данных падающим фронтом.
SDA - последовательная передача данных и адреса
43
Вывод SDA используется для двунаправленной последовательной передачи данных. Он является выводом с открытым стоком и может быть соединен с несколькими аналогичными выводами (с открытым стоком или коллектором).
A1, A0 - входы задания адреса
Входы A1 и A0 предназначены для задания адреса. Их можно оставить неподключенными в целях аппаратной совместимости с другими представителями серии AT24CXX. Если данные выводы задействованы, то до 4 четырех 128/256 кбитных микросхем можно адресовать на одной последовательной шине.
Если выводы задания адреса оставить неподключенными, то уровни на них будут образованы встроенными подтягивающими резисторами (подтягивание к уровню GND), но при условии, что емкостная связь с VCC на печатной плате < 3 пФ. Если данная емкостная связь более 3 пФ, то рекомендуется подключить адресные входы к GND.
WP - вход защиты от записи
При подключении данного входа к GND операция записи разрешена. Если же его подключить к VCC, то все команды записи в память игнорируются. Если данный вывод оставить отключенным, то он будет подтягиваться к уровню GND встроенным подтягивающим резистором при условии, что емкостная связь с
VCC на печатной плате не более 3 пФ. Если емкостная связь более 3пФ, то рекомендуется подключить данный вывод к GND.
5.5 Блок светодиодов
Система индикации контроллера состоит из трех индикационных светодиодов – красного, желтого и зеленого.
Красный светодиод отражает состояние связи с сетью GSM. Возможно два состояния – частые вспышки (примерно 1-2 раза в секунду) означают, что контроллер по какой-либо причине не может зарегистрироваться в сети GSM.
Редкие вспышки (примерно 1 раз в 3-5 секунд) означают, что контроллер
44 зарегистрировался в сети GSM и готов к работе (его расчет приведен в пункте
5.2.5).
Зеленый светодиод отражает состояние реле. Когда реле включено, светодиод горит, когда выключено - погашен.
Желтый светодиод при регистрации каждого нового пользователя мигает три раза.
24
R1
PC1
VD1 23
R2
PC0
VD2
Рисунок 5.12 – Подключение светодиодов к МК
В качестве VD1, VD2 выберем светодиоды LED Green 0805 и LED Yellow
0805, обладающие высокой яркостью свечения, большим углом обзора [9].
Имеющие следующие параметры:
- номинальный прямой ток необходимый для засветки одного индикатора
5мА;
- постоянное прямое напряжение (при номинальном токе) 1,5 В.
Резисторы R1-R2 предназначены для ограничения тока светодиодов и равны:
R1,R2 = (U
пит
-U
VD
)/I
VD
=(3,3-2)/5·10
-3
= 270 Ом где I
VD
– ток светодиода 2..10мА, зададимся 5мА;
U
пит
– напряжение питания;
U
VD
– падение на светодиоде.
5.6 Расчёт блока питания
Опишем требования, предъявляемые к блоку питания:
первичное напряжение 12В;
питание катушки реле 12В;
45
питание микроконтроллера 3,3В;
питание GSM-модема 4В;
питание сигнализирующего светодиода NETLIGHT 4В;
питание драйвера RS-232 3,3В;
питание EEPROM 3,3В;
минимальные массогабаритные показатели;
гальваническая развязка от сети питания.
Рассчитаем ток, потребляемый микросхемами:
I = I1+I2+I3+I4
(8.6)
I = 10+200+3+3 = 216 мА где I1 – ток необходимый для питания микроконтроллера (при напряжении питания Vcc = 5В и тактовой частоте 16МГц) ток потребления в активном режиме не превышает 10 мА;
I2 – питание GSM-модуля 200 мА;
I3 – питание сигнализирующего светодиода NETLIGHT 3мА;
I4 – питание сигнализирующего светодиода STATUS 3мА.
В данном устройстве для питания схемы применены регулируемый стабилизатор напряжения и тока LM317 (рисунок 5.13) [9].
4
DA1
Vin
Vout
1 3
*STU
+4В
Цепь
Конт.
Питание
Общий
1 2
XТ4 2
Vout
ADJ
+12В
VD9
C9
C10
R11
R14
VD11
C12
C11
+3,3В
Рисунок 5.13 – Принципиальная схема блока питания
Технические характеристики стабилизатора LM317:
обеспечение выходного напряжения от 1,2 до 37 В.
ток нагрузки до 1,5 A.
наличие защиты от возможного короткого замыкания.
46
надежная защита микросхемы от перегрева.
погрешность выходного напряжения 0,1%.
Сумма сопротивлений резисторов R11 и R14 должна иметь такое значение, которое бы обеспечивало ток примерно 8 мА при необходимом выходном стабилизированном напряжении (Vo).
Суммарный номинал резисторов R11 и R14.
R11 + R14 = Vo/0.008= 4/0.008=500
Выходное напряжение стабилизатора (Vo) есть функция от соотношения сопротивлений резисторов R11 и R14. Переменный резистор R14 используется для установки желаемого выходного напряжения стабилизации. Формула для расчета значения сопротивлений резисторов R11 и R14:
Vo = 1.25 (1 + R14/R11) отсюда
0 14 4
1 1
2, 2 11 1, 25 1, 25
V
R
R
Выберем R11 130Ом, R14 270Ом.
5.7 Подключение программатора
На рисунке 5.14 изображена схема разъема для программирования микроконтроллера и описание выводов на микроконтроллере для его программирования (таблица 5.2) [7].
GND
VCC
21 4
+3,3B
XP1
RESET
29
GND
3
Цепь
Конт.
1 2
3 4
5 6
VCC
MOSI
MISO
SCK
GND
RESET
MISO
16
MOSI
15
SCK
17
GND
5
VCC
6
C8
Рисунок 5.14 - Подключение программатора к МК
47
Отличительная особенность микроконтроллеров семейства AVR, возможность внутрисхемного программирования.
Т а б л и ц а 5.2 - Описание выводов на микроконтроллере для программирования
Обозна чение
Тип вывода
Описание вывода
MOSI
I/O
Выход (Master) или вход (Slave) данных канала SPI
MISO
I/O
Выход (Master) или вход (Slave)данных канала SPI
SCK
I/O
B5 (Выход(Master) или вход(Slave)тактового сигнала SPI
RESET
I/O
C6 (Вход сброса)
Vcc
P
Вывод источника питания
GND
P
Общий вывод
Данные выводы выведены отдельно на плате устройства разъем XP1. В качестве разъема XP1 выбрана вилка PLS6.
5.8 Итоговая принципиальная схема
Итоговая принципиальная схема приведена в приложении Б
Перечень элементов приведён в Приложении В
48
6
Разработка управляющей программы работы GSM-
контроллера
Диалог микроконтроллера с GSM модулем происходит посредством AT команд [6]. Мы отправляем модулю нужную команду или запрос, а он её выполняет и отвечает.
Перед включением модуля важно задать параметры работы UART микроконтроллера равной параметрам UART модуля по умолчанию, иначе после включения модуль не ответит [7].
6.1 AT команды
6.1.1 – Инициализация
Т а б л и ц а 6.1 - Список команд используемых при инициализации
AT- команда
Назначение
AT+IFC=2,2
Включить аппаратный контроль приема и передачи
ATE0
Выключение режима эхо
ATV0=0
Возврат только цифрового кода ответа
AT+GOI
Чтение имени модуля
AT+COPS?
Чтение имени ОПСОСа
AT+CREG?
Чтение состояния регистрации в сети
AT+CSQ
Чтение уровня сигнала
AT+CPIN?
Необходим ввод PIN-кода или нет?
AT+CPIN=«PIN»
Запись PIN кода
AT+CMEE=0
Выключение вывода кода ошибок
AT+GSMBUSY=1
Запрет всех входящих звонков
6.1.2 Команды отправки сообщений
Перед отправкой сообщения необходимо провести подготовку модуля.
Сначала перевести формат передаваемого модулю текста сообщения в текстовый
49 режим командой «AT+CMGF=1\r». По умолчанию включен режим PDU — сообщения передаются в HEX-виде. [6]
Затем переключаем кодировку на GSM - «AT+CSCS=«GSM»\r».
Кодировка определяет в каком виде будут передаваться номера телефонов, тексты сообщений и USSD-запросы. Самый простой — «GSM», где символы представлены в удобных ASCII кодах.
Отправка СМС-сообщения.
Формат такой - посылаем «AT+CMGS=«+79XXXXXXXXX»\r», получаем в ответ приглашение набрать текст сообщения — символ ‘>’.
Отправляем текст. По окончании нужно отправить код комбинации клавиш Ctrl+Z (код 0x1A), только тогда модуль «поймет», что текст набран и можно посылать сообщение адресату.
Получаем «OK», сообщение отправлено.
При получении нового сообщения модуль уведомит отправкой в UART
«+CMTI: «SM»,INDEX\r». Следовательно в программе МК надо постоянно проверять приемный буфер на наличие данного сообщения
Прочитать одно сообщение - «AT+CMGR=INDEX,0\r», второй параметр: 0
— обычный режим (по умолчанию), 1 — не изменять состояние сообщения.
Получаем ответ вида:
«+CMGR:
“REC
UNREAD”,“+79XXXXXXXXX”,
«»
,”DATE,TIME”\r\nMessage text\r\n\r\nOK»
REC UNREAD — группа сообщений (см. ниже), DATE – дата формата
YY/MM/DD, TIME – время в формате hh:mm:ss±hh.
Удалить одно сообщение по индексу — «AT+CMGD=INDEX\r».
Удалить сообщения по критерию — «AT+CMGD=INDEX,FLAG\r», где
FLAG: 0 — удалить сообщение по индексу (по умолчанию), 1 — удалить все прочитанные сообщения, 2 — удалить прочитанные и отправленные сообщения,
3 — удалить прочитанные, отправленные и не отправленные сообщения, 4 — удалить все сообщения.
Исходя из вышеуказанного, удалить все сообщения — «AT+CMGD=1,4\r».
50
Т а б л и ц а 6.2 – Список команд при отправки сообщений
AT- команда
Назначение
AT+CMGF=1
Включение текстового режима данных
AT+CSCS=«GSM»
Выбор ASCII кодировки
AT+CM
GS=(см. выше)
Отправка SMS-сообщения
+CMTI: «SM»,INDEX
Получение индекса нового SMS-сообщения
AT+CMGR=INDEX,0
Чтение сообщение по индексу
AT+CMGD=INDEX
Удаление одного сообщения по индексу
AT+CMGD=INDEX,FLAG
Удаление сообщения по критерию
AT+CMGL=”GROUP”
Чтение группы сообщений
6.2 Схема алгоритма
Схема алгоритма управляющей программы приведена на рисунке 6.1.
Инициализация – установка констант настройка портов ввода/вывода
(параметры UART передачи данных (скорости, четности и т.д.)). Инициализация флешь-памяти.
Далее производится запуск GSM-модуля, для этого опускаем уровень на время, 2с. Запуском управляет вывод РB1 микроконтроллера.
После чего даем модулю запуститься в течение двух секунд.
Микроконтроллер ожидает пока пройдет инициализация GSM модема, т.е. модуль должен считать SIM карту и подключиться к GSM сети, которую она поддерживает.
После запуска происходит настройка GSM модуля рисунок 6.2.
После удачной инициализации микроконтроллер посылает AT команду, что означает выбор памяти модуля в качестве хранилища SMS. Должен быть ответ модуля на эту команду, в противном случае команда посылается еще раз.
После выбора памяти микроконтроллер посылает следующую команду.
Данная команда указывает модулю, что сообщения будут считываться в текстовом формате.
51
Начало
Инициализация портов контроллера
Инициализация флэш
Считывание с EEPROM время удержания контактов реле
Считывание с EEPROM
Режим работы
Считывание с EEPROM
Номера мастера
Загрузка в EEPROM
«первый запуск»
Считывание с EEPROM
Номера пользователя
Запуск GSM-модуля
PB1 (PWRKEY)=«лог0»2сек
Настройка GSM-модуля
Обработка входящего звонка
Обработка входящих СМС- сообщений
Нет
Да запуск программы впервые?
Ожидание инициализации GSM- модуля
Нет
Да
Ожидание входящих звонков
Нет
Да
Ожидание входящих СМС
Нет
Да
Нет ответа от
GSM-модуля
Нет
Да
Рисунок 6.1 – Алгоритм работы контроллера доступа
Настройка GSM- модуля
Подача команд для автоопределения скорости
Включение текстового режима СМС
Возврат
Рисунок 6.2 – Алгоритм настройки GSM модуля
52
Затем следует команда, благодаря которой из текста SMS сообщения будет удаляться некоторая информация, номер SMS сервера, дата и время. Это сделано с целью уменьшения SMS и упрощения работы микроконтроллера с ними.
Следующая команда предназначена для чтения SMS, сохраненного по первому адресу в памяти модуля.
После всех этих операций микроконтроллер удаляет SMS сообщение находящееся по первому адресу в памяти модуля и переходит к ожиданию получения следующего SMS-сообщения [7].
Обработка входящих СМС
Добавление пользователя
Удаление пользователя
Смена номера мастера
Удалить всех пользователей
Смена режима работы
Удалить SMS-сообщение
Рисунок 6.3 – Обработка входящих СМС