Разработка контроллера сбора информации и передачи по GSM-каналу

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    396,28 Кб
  • Опубликовано:
    2012-11-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка контроллера сбора информации и передачи по GSM-каналу















Разработка контроллера сбора информации и передачи по GSM-каналу

Содержание

Техническое задание

Введение

. Разработка функциональной схемы

. Разработка принципиальной схемы

.1 Выбор управляющего микроконтроллера

.2 Выбор электронных элементов

.Описание используемых интерфейсов

. Разработка программы управления

.1 Общий алгоритм работы

.2 Описание работы программы

Заключение

Список литературы

Техническое задание

микроконтроллер информация управляющий

Необходимо разработать контроллер обеспечивающий реализацию комплекса сбора информации. Контроллер рассчитан на фиксирование данных в ОЗУ и одновременную передачу её по GSM-каналу в виде SMS-сообщения.

Для обеспечения интерфейса с пользователем предусмотрена простейшая клавиатура. Для вывода информации во время диалога с пользователем используется специализированный LCD, который обеспечивает вывод как текстовой, так и цифровой информации по состоянию датчиков.

Для связи с удалённым компьютером используется GSM-модуль или телефон, подключённый через последовательный порт контроллера

Для сбора информации предусмотрено использование матрицы датчиков бинарного типа размерностью 16х16. Для обеспечения связи с контроллером должна быть предусмотрена развязка.

Дополнительно предусматривается 4 цифровых датчика температуры и 4 аналоговых канала с разрядностью 16бит. Для аналоговых каналов необходимо предусмотреть наличие нормирующих усилителей с коэффициентами усиления от 1 до 100.

Опрос задается с периодичностью от 1 секунды до нескольких минут или по изменению датчиков.

Введение

микроконтроллер информация управляющий

Общие особенности управляющих микроконтроллеров

Основные требования, которые потребители предъявляют к управляющим блокам приборов можно сформулировать следующим образом:

· низкая стоимость,

· высокая надежность,

· высокая степень миниатюризации,

· малое энергопотребление,

· работоспособность в жестких условиях эксплуатации;

· достаточная производительность для выполнения всех требуемых функций.

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

Выполнение всех этих довольно противоречивых условий одновременно затруднительно, поэтому развитие и совершенствование техники пошло по пути специализации и в настоящее время количество различных моделей управляющих микроконтроллеров чрезвычайно велико.

Однако можно выделить некоторые черты архитектуры и системы команд, общие для всех современных микроконтроллеров, это:

· так называемая Гарвардская архитектура - то есть раздельные области памяти для хранения команд (программы) и данных. Они могут иметь разную разрядность, в системе команд для обращения к ним предусмотрены различные команды и т.д.

· интеграция в одном корпусе микросхемы (на одном кристалле) практически всех блоков, характерных для полнофункционального компьютера - процессора, ПЗУ, ОЗУ, устройств ввода-вывода, тактового генератора, контроллера прерываний и т.д. Поэтому в русскоязычной литературе подобные устройства часто называются однокристальные ЭВМ (ОЭВМ).

Микроконтроллеры обычно классифицируют по разрядности обрабатываемых чисел:

· четырехразрядные - самые простые и дешевые;

· восьмиразрядные - наиболее многочисленная группа (оптимальное сочетание цены и возможностей), к этой группе относятся микроконтроллеры серии MCS-51 (Intel) и совместимые с ними, PIC (Microchip), HC68 (Motorola), Z8 (Zilog) и др.;

· шестнадцатиразрядные - MCS-96 (intel) и др. - более высокопроизводительные но более дорогостоящие;

· тридцатидвухразрядные - обычно являющиеся модификациями универсальных микропроцессоров, например 180186 или I386EX.

1.      
Разработка функциональной схемы


ОР - опторазвязка с контактными датчиками

БРА - Буферный регистр адреса

ПИ - преобразователь интерфейса

НУ - нормирующие усилители с регулировкой усиления для датчиков температуры Д1-Д4.

АЦП - аналого-цифровой преобразователь для оцифровки аналоговых величин.

К1 - многоканальный коммутатор для съёма цифровых данных, полученных с опторазвязок.

ЖКИ - специализированный жидкокристаллический дисплей, необходимый для отображения параметров работы системы, введённых пользователем.

Данная функциональная схема отражает основные элементы необходимые для построения системы сбора информации.

Для опроса комплекса из 256 контактных датчиков решено использовать матричную систему опроса. Для обеспечения опторазвязки с ключевыми элементами используется транзисторная оптопара АОТ101АС.

Резистор подбирается в зависимости от напряжения ключевого элемента, что позволяет подключать как низкому напряжению (от 3В), так и к высокому (до 220В). Дополнительно рекомендуется вводить защитный диод или стабилитрон.

Для указания какой сканируется столбец используется коммутатор КП16 обеспечивающий выбор контролируемого столбца, а для контроля строки используется буферный регистр на который выдаётся управляющий сигнал (DD7, DD8). При этом на все остальные строки выдаётся 0. На одну выдаётся 1.

Для обеспечения считывания температуры с четырёх точек используется цифровой термометр DS1820.

Для сбора аналоговой информации используется четыре нормирующих усилителя (НУ) на четырёх канальной ОУ К1420УД2, обеспечивающей за счёт резисторов обратной связи требуемый коэффициент усиления.

Для преобразования аналогового сигнала используется АЦП.

В качестве буферного регистра для обращения к статическому ОЗУ используется К15ИР33 или N74ALS573. Данные микросхемы идентичны.

Для индикации используется двухстрочный ЖКИ.

При этом отображает не только цифровые значения но и их показатели.

Для передачи по GSM используется специализированный модуль SIM300, который обеспечивает полноформатный интерфейс по сотовой сети связи за счёт передачи SMS удалённому компьютеру.

На входе компьютера может быть использован любой GSM-модем.

Дешифровка и преобразование SMS осуществляется программно на стороне компьютера.

2.      
Разработка принципиальной схемы

2.1     Выбор управляющего микроконтроллера

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

-       наличие достаточного количества портов ввода-вывода. К микроконтроллеру необходимо подключить 4 датчика температуры, ЖКИ, многоканальный коммутатор для съёма цифровых данных, GSM-модуль, АЦП.

-       наличие программного пакета для написания и отладки программы микроконтроллера.

-       достаточная изученность микроконтроллера.

Для реализации МПС были выбраны 3 контроллера: МК AT89S52, AVR Atmega8 и PIC16F628. Для выполнения выбора подробнее рассмотрим каждый из контроллеров.


AVR (ATmega8)

PIC (16F628)

MK-51 (AT89C52)

ПЗУ(память программ)

8 Кб

2 Кб

8 Кб

Таймеры/счетчики

2(8 разрядов) 1(16 разрядов)

1(8 разрядов)

3(16 разрядов)

Число портов ввода/вывода

23

13

32

Питание

4,5-5,5

3,0-5,5

4,0-5,5

Архитектура

RISC

RISC

CISC

Тактовая частота

16МГц

10МГц

24МГц

Память данных

128 байт

68 байт

256 байт

Стоимость

400 руб.

75 руб.

60 руб.


МК ATmega8 имеет следующие отличительные особенности:

-       8ми-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением RISC архитектура;

-       130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл;

-       32 8ми-разрядных рабочих регистра общего назначения;

-       полностью статическая работа;

-       приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность;

-       энергонезависимая память программ и данных;

-       8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash);

-       обеспечен режим одновременного чтения/записи 512 байт EEPROM;

-       1 Кбайт встроенной SRAM.

Встроенная периферия:

-       два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения;

-       один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения;

-       счетчик реального времени с отдельным генератором;

-       6-канальный аналого-цифровой преобразователь (в корпусе PDIP);

-       4 канала с 10-разрядной точностью;

-       2 канала с 8-разрядной точностью;

-       байт-ориентированный 2-проводный последовательный интерфейс;

-       программируемый последовательный USART;

-       последовательный интерфейс SPI (ведущий/ведомый);

-       программируемый сторожевой таймер с отдельным встроенным генератором;

-       встроенный аналоговый компаратор;

-       специальные микроконтроллерные функции;

-       встроенный калиброванный RC-генератор;

-       внутренние и внешние источники прерываний;

-       выводы I/O и корпуса;

-       23 программируемые линии ввода/вывода;

-       28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус MLF;

-       рабочие напряжения - 2,7 - 5,5 В (ATmega8L) 4,5 - 5,5 В (ATmega8);

-       рабочая частота - 0 - 8 МГц (ATmega8L) 0 - 16 МГц (ATmega8).

Как видно из приведенных технических характеристик контроллер имеет высокую производительность достаточную программную память и необходимые АЦП и порты. Имеется среда разработки на С. Недостаток отсутствие функций умножения и деления требуют написания специальных подпрограмм необходимых для перевода получаемых значений в цифровой вид и разделения значащих разрядов на сотни единицы и десятки.

Рис. 1.1. Расположение выводов AVR.

Далее рассмотрим следующую серию МК PIC16F628 она имеет следующие основные особенности:

-       RISC архитектуру и всего 35 простых для изучения инструкции;

-       Все инструкции исполняются за один такт (400 нс);

-       Скорость работы: тактовая частота до 10 МГц;

-       Память программ 2K FLASH;

-       Память данных ОЗУ (байт) 68;

-       15 аппаратных регистров специального назначения;

-       четыре источника прерывания;

-       внешний вход RB0/INT;

-       переполнение таймера TMR0;

-       прерывание при изменении сигналов на линии порта B (PORTB<7:4>);

-       по завершению записи данных в ЭСППЗУ (EEPROM);

-       8-разрядный таймер/счетчик;

-       8-разрядный программируемый предварительный делитель;

-       1000 циклов записи/стирания FLASH памяти программы.

Периферия:

-       13 линий ввода/вывода с индивидуальным контролем направления;

-       сильноточные схемы (до 25мА) для управления светодиодами.

Особенности микроконтроллера:

-       программирование на плате через последовательный порт (ICSPT)

-       таймер включения питания (PWRT) и таймер запуска генератора (OST)

-       сброс по падению напряжения питания

-       сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы

-       широкий рабочий диапазон напряжений питания - от 2,0В до 6,0В

-       низкое потребление энергии:

-       < 2 мА при 5,0 В, 4,0 МГц

Рис. 1.2. Расположение выводов PIC.

Данный контроллер к сожалению не имеет встроенного АЦП и не имеет команд деления и умножения в остальном он удовлетворяет нашей задаче.

Последним для рассмотрения был выбран МК 51 серии - AT89C52. Этот контроллер имеет встроенный АЦП и по предварительной оценке по параметрам полностью подходит для выполнения поставленной задачи.

Рис. 1.3. Контактная группа выводов AT89C52.

Отличительные особенности:

-       совместимость с серией MCS-51 SISC архитектура;

-       8 кБ флэш-памяти с внутрисхемным программированием (ISP) со стойкостью ПЗУ программ: 1000 циклов записи/стирания;

-       рабочий диапазон питания 4.0…5.5В;

-       полностью статическое функционирование: 0…24 МГц;

-       внутреннее ОЗУ размером 256x8;

-       32 программируемые линии ввода-вывода;

-       три 16-разрядных таймера-счетчика;

-       восемь источников прерываний;

-       полнодуплексный канал последовательной связи на УАПП.

Достоинство данного контроллера не только в большом числе периферии, но и наличии команд умножения и деления, что значительно упрощает программу и позволяет реализовать её с меньшими временными затратами. Также данная архитектура изучена хорошо в курсе лабораторных работ, что позволяет упростить разработку, так как часть программного кода уже написана и отлажена. Также контроллер имеет невысокую цену 60р. Что важно для практической реализации управляющего устройства.

Учитывая все вышесказанное окончательно было решено использовать контроллер 51 серии как наиболее доступный и подходящий по параметрам.

.2 Выбор электронных элементов

Транзисторная оптопара АОТ101АС

Для обеспечения опторазвязки с ключевыми элементами используются транзисторная оптопара АОТ101АС.

Оптопары АОТ101 АС/БС, транзисторные, двухканальные, состоящие из эпитаксиальных излучающих диодов на основе соединения галлий-алюминий-мышьяк и кремниевых фототранзисторов. Применяются для электронной коммутации однополярного тока с гальванической развязкой между входом и выходом. Выпускаются в пластмассовом корпусе. Масса прибора не более 3 грамм.

Электрические параметры

·        Входное напряжение при Iвх = 15 мА,

не более - 1,7 В

типовое значение - 1,3 В

·        Входное напряжение при Iвх = 5 мА,

не более - 1,6 В

типовое значение - 1,2 В

Выходное остаточное напряжение при Iвх = 2,5 мА, Iвых = 0,5 мА,

не более - 0,4 В

типовое значение - 0,2 В

·        Выходное остаточное напряжение при Iвх = 10 мА, Iвых = 1,5 мА для АОТ101АС, Iвых = 10 мА для АОТ101БС, не более           0,4 В

·        Ток утечки на выходе при Iвх = 0, Uком = 10 В,

не более - 10 мкА

типовое значение - 1 мкА

·        Сопротивление изоляции при Uиз = 500 В,

не менее - 1011 Ом

типовое значение - 1012 Ом

·        Время нарастания и спада выходного сигнала при Uком = 10 В, Iвх = 10 мА, Rн = 100 Ом,

не более - 10 мкс

типовое значение - 3мкс

Предельные эксплуатационные данные

Коммутируемое напряжение         15 В

Обратное входное напряжение 1,5 В

Напряжение изоляции при T = +25 ±10 °C 1,5 кВ

Входной ток1 при T = -10...+50 °C 20 мА

Выходной ток2 при Iвх макс        

АОТ101АС - 5 мА

АОТ101БС - 10 мА

Входной импульсный ток при tи <= 10мкс      50 мА

Температура окружающей среды   -10...+70 °C

Датчик температуры DS18B20

Выбирая датчик температуры, я проанализировал существующие аналоговые и цифровые датчики я пришёл к выводу, что использование аналогового датчика требует дополнительных элементов: усилителя и АЦП, что заметно усложняет схему, поэтому я предпочёл цифровой вариант, в виде чипа DS18B20. Для выполнения моего курсового задания необходима точность +/-1, а эти датчики сертифицированы как измерительные приборы и обеспечивают точность до 0.1. Соответственно, возможно их использование в качестве надёжного средства измерения. При этом не требуется АЦП, так как выполнение операции преобразования полученных данных в цифровой вид ими обеспечивается самостоятельно. Второй важный момент, то что данный датчик может быть подключен по однопроводной сигнальной линии и передает данные по протоколу 1-Wire. Благодаря обеспечению возможности адресного обращения возможно использование одной линии связи для всех датчиков.

Датчик DS18B20 имеет следующие отличительные особенности:

1.       Точность ±0.5°C от -10°C до +85°C,

.        Разрешение от 9 до 12 бит, которое настраивается пользователем,

.        Передача данных посредством 1-проводного последовательного интерфейса,

.        64-битный уникальный и неизменяемый серийный номер,

.        Многоточечное считывание,

.        Рабочее напряжение от 3.0В до 5.5В,

.        Вариант датчика с запиткой с линии данных (DS18B20-PAR),

.        O-92, 150mil 8-контактный SOIC, или 1.98x1.37мм корпус с шариковыми выводами (±2.0°C).

Данные в микросхеме DS18B20 считываются через 1-проводную последовательную шину в дополнительном от 9 до 12 битном (программируется пользователем) коде с ценой младшего разряда от 0.5°C до 0.0625°C. Она является термометром с цифровым вводом/выводом, работающим с точностью ±0.5°C.

У каждой микросхемы DS18B20 имеется уникальный и неизменяемый 64-битный серийный номер, используемый как узловой адрес датчика. При этом появляется возможность сосуществовать множеству микросхем DS18B20 на одной 1-проводной шине. Микросхема DS18B20 может быть локально запитана от 3.0В до 5.5В или она может быть сконфигурирована таким образом, чтобы быть запитанной посредством 1-проводной линии данных.

Осуществление передачи команды начала преобразования и других команд, а также считывания значения измеренной температуры производится с помощью 1-проводного интерфейса (1-WireTM).

Обмен с датчиком всегда начинается с процесса инициализации. Инициализация производится в следующей последовательности:

.Формируется импульс сброса не менее 480мкс

.Далее линия отпускается и через некоторое время не более 60мкс она закорачивается самим датчиком это как сигнал готовности к обмену.

.Далее следует выполнить передачу команды и адреса конкретного датчика установленного на шине.

Рис. 2.1. Временная диаграмма инициализации.

После того, как мастер обнаружил ответ, он может передать датчику одну из команд. Передача ведётся путём формирования мастером специальных временных интервалов (time slots). Каждый временной интервал служит для передачи одного бита. Первым передаётся младший бит. Интервал начинается импульсом низкого уровня, длительность которого лежит в пределах 1 - 15 мкс. Поскольку переход из единицы в ноль менее чувствителен к ёмкости шины (он формируется открытым транзистором, в то время как переход из ноля в единицу формируется подтягивающим резистором), именно этот переход используют 1-проводные устройства для синхронизации с мастером. В подчиненном устройстве запускается схема временной задержки, которая определяет момент считывания данных. Номинальное значение задержки равно 30 мкс, однако, оно может колебаться в пределах 15 - 60 мкс. За импульсом низкого уровня следует передаваемый бит. Он должен удерживаться мастером на шине в течение 60 - 120 мкс от начала интервала. Временной интервал завершается переводом шины в состояние высокого уровня на время не менее 1 мкс. Длительность интервала зависит от собственной емкости линии определяемой длиной. Так как в моем устройстве датчики находятся на большом расстоянии от контроллера, то рекомендуется не мене 15мкс.

Рис 2.2. Временная диаграмма передачи 0го бита.

Рис. 2.3. Пример передачи 1 бита.

Первой командой, которую должен передать мастер для DS18S20 после инициализации, является одна из команд реализуемых устройством функций.

При приеме данных от подчиненного устройства временные интервалы для принимаемых битов тоже формирует мастер. Интервал начинается импульсом низкого уровня длительностью 15 мкс. Затем контроллер отпускает шину и если через 30мкс он считывает 0, то этот бит удерживает термометр, иначе считывается 1. Таким способом, последовательно тактируя каждый бит, контроллер считывает все требуемые ему данные. Прием байта начинается с младшего бита.

Рассмотрим особенности протокола обмена. Вначале после проведения процедуры инициализации передается команда на выполнение определенных функций. Так как на линии подключено 4 термометра, то можно выполнить запуск измерения температуры сразу для всех термометров и чтобы исключить обмен номерами передаем команду пропустить передачу номера 0xCC. Далее посылаем команду Convert T - 0х44. Это сразу в четырех микросхемах термометров запускает измерение и преобразование в цифровой вид температуры. Далее необходимо сформировать задержку от 500 до 750мкс (зависит от конкретного типа микросхемы, поэтому выбираем наибольший интервал). Далее процедура сброса повторяется и теперь для выборки измеренной температуры необходимо передать команду 0xCD после чего передается номер конкретного термометра, а далее посылаем команду Read Scratchpad - BEh. Первый байт содержит знак, если температура «+», то он заполнен нулями, если «-», то единицами. Если температура отрицательна, то значение температуры передается в инверсном дополнительном коде, что требует преобразования температуры.

Для DS18S20 температура представляется в виде 9-битного значения в дополнительном коде. Поскольку это значение занимает 2 байта, все разряды старшего байта равны знаковому разряду. Дискретность представления температуры составляет 0.5°C.

Зависимость выходного кода от температуры

Температура

Выходной код (Binary)

Выходной код (Hex)


Ст. байт

Мл. байт


+125°C

0000 0000

1111 1010

00FAh

+25°C

0000 0000

0011 0010

0032h

+0.5°C

0000 0000

0000 0001

0001h

0°C

0000 0000

0000 0000

0000h

-0.5°C

1111 1111

1111 1111

FFFFh

-25°C

1111 1111

1100 1110

FFCEh

-55°C


1111 1111

1001 0010

FF92h


Знакосинтезирующий LCD

Рис. 3. Условное графическое обозначение ЖКИ.

Для вывода информации используется знакосинтезирующий LCD индикатор размером 32х4. Для управления им используется две дополнительные шины.

RS - выбор команды;

E - стробирующая запись данных в индикатор;

GND- потенциал общего провода ("земли");

E- линия стробирования/синхронизации;

RS- линия выбора регистра;

RW- линия выбора операции;

CS- Chip Select;

DB(0-7)- линия данных.

АЦП DS 2450

Для преобразования аналоговых сигналов в цифровую форму решено использовать 4-канальный 16-разрядный аналого-цифровой преобразователь последовательного приближения для линии MicroLAN DS 2450 фирмы Dallas Semiconductor.

Он может сопрягаться с широким множеством датчиков и приборов, оцифровывать сигнал и передавать его на устройства сбора и обработки данных по простой однопроводной сети 1-Wire. Встроенный уникальный серийный номер позволяет объединить множество DS2450 с помощью однопроводной сети 1-Wire и получить доступ к конкретному датчику в пределах сети.

Особенности:

·        четырехканальный АЦП на одном последовательном порту;

·        питание через вход Vcc или паразитное через линию передачи данных;

·        8-битная точность, 16-битная разрешающая способность;

·        два диапазона входных измерений: 0В-2.56В и 0В-5.12В;

·        напряжение питания от 4.5B до 5.5В; рабочий диапазон температур от -40°С до +85°С;

·        неиспользуемые аналоговые каналы могут быть сконфигурированы для работы в качестве ключа с открытым коллектором;

·        время преобразования - 80 мкс/бит (в худшем случае). Пример: 3 канала, разрешение 9 бит = 3х9х80мкс+160мкс инициализация=2.32мс=140 выборок по каждому каналу в секунду;

·        уникальный серийный номер (ID) позволяет однозначно определить конкретный датчик в качестве источника измерений;

·        возможность объединения нескольких устройств по однопроводной сети 1-Wire;

·        передача данных по дешевому кабелю типа “витая пара”.

Рис. 4. Назначение выводов

АЦП DS 2450S выпускается в компактном, дешевом 8-выводном корпусе SOIC для поверхностного монтажа. Он представляет собой преобразователь аналогового сигнала в цифровой, работающий в режиме последовательного приближения с аналоговым мультиплексором 4 в 1. Каждый канал имеет собственный регистр, в котором устанавливается и хранится диапазон входного напряжения, разрешающая способность и значение сигнальных порогов, используемых для установки сигнальных флажков. Если входное напряжение выходит за указанный диапазон, флажки разрешают участие прибора в «условном поиске». На каждый канал устанавливается по два сигнальных флажка, которые без требования к ведущему шины просто указывают, было ли измеренное напряжение выше или ниже установленных порогов. Каждое преобразование АЦП инициализируется ведущим шины. Канал, не используемый как аналоговый вход, может служить цифровым выходом с открытым стоком. После отключения входа ведущий шины может непосредственно включать или выключать МОП-транзистор в выбранном канале. Все параметры настройки прибора хранятся в статическом ОЗУ и сохраняются до тех пор, пока прибор получает питание.

После включения флажка «сброс питания» ведущему шины сообщается о необходимости восстановить параметры настройки прибора для продолжения нормальной работы. Все регистры прибора организованы в три восьмибайтовые страницы памяти. Генератор кода контрольной суммы CRC 16, входящий в состав микросхемы, осуществляет защиту передаваемой информации от ошибок передачи.

Питание прибора осуществляется через вывод Vcc или через однопроводную шину. При питании прибора от однопроводной шины в течение времени, пока сигнал на линии имеет высокий логический уровень, на внутреннем конденсаторе накапливается заряд. Далее, когда уровень сигнала на шине близок к нулевому, прибор питается от этого «паразитного» конденсатора, после чего, при появлении на шине сигнала высокого уровня, конденсатор снова подзаряжается. Энергии «паразитного» источника хватает только для обмена информацией с ведущим шины. Для выполнения аналого-цифрового преобразования требуется непрерывный его подзаряд от однопроводной шины, которая все время должна находиться в единичном состоянии, а если это невозможно, то необходимо прямое подключение источника Vcc к соответствующему выводу микросхемы.

GSM-модуль SIM300

Трехдиапазонные GSM/GPRS модули SIM300 предназначены для работы в приложениях, связанных с высокоскоростной передачей данных посредством GPRS канала: для передачи голоса, коротких (SMS) и факсимильных сообщений в системах удаленного контроля и мониторинга, в измерительных системах и телеметрии, системах безопасности и оповещения. Данные модули имеют низкое энергопотребление и малые размеры, благодаря чему могут быть легко интегрированы в большинство вышеупомянутых приложений.

В качестве обвязки для модуля необходим системный разъём (60 pin connector) и антенный переходник GSC/FME или GSC/SMA (в зависимости от разъёма, установленного на подключаемой антенне).

Основные характеристики GSM модуля Sim 300:

-       компактные размеры 40x33x2.85мм;

-       GPRS класс 10;

-       интегрированный TCP/IP стек;

-       диапазоны частот 900/1800/1900 МГц;

-       совместимость со стандартом GSM Phase 2/2+;

-       выходная мощность 2 Вт/900 МГц, 1 Вт/1800/1900 МГц;

-       напряжение питания 3,4…4,5В;

-       диапазон температур: рабочая - 20…+55С, температура хранения - 40…+80С;

-       вес 8 г.

Интерфейс GSM модуля Sim 300:

-       внешний интерфейс SIM - карт 3V 1.8V;

-       разъем 60 pin;

-       2 аналоговых аудио интерфейса;

-       интерфейс клавиатуры;

-       интерфейс LCD дисплея.

Данные I/О:

-       8xI/O UART.

SMS особенности:

-       текст и PDU;

-       передача point - to - point.

TCP/IP:

-       UDP протокол;

-       доступ к встроенному TCP/IP стеку с помощью АТ команд.

Другие особенности GSM модуля Sim 300:

-       поддержка телефонной книги SIM карточки;

-       наличие встроенного таймера реального времени;

-       управление аудио;

-       звонки на фиксированные номера;

-       сетевая регистрация.

Команды SIM300 для работы с SMS-сообщениями


3.      
Описание используемых интерфейсов

Интерфейс 1-Wire

Протокол 1-WIRE определяет структуру сообщений, которая используется и распознаётся устройствами, подключёнными к однопроводному интерфейсу.

Обмен сообщениями по 1 WIRE начинается с инициализирующей последовательности, состоящей из импульса сброса, передаваемой ведущим и ответным импульсом присутствия. Появление импульса присутствия является признаком наличия в линии одного или нескольких ведомых устройств.

Команды для работы с датчиками:

CCh - пропустить передачу кода, работать безадресно;

44h - запустить преобразования;

h - выбор датчика для работы по заданному адресу;

B8h - считать измеренное значение.

Вначале посылается безадресное обращение CCh для работы со всеми датчиками, что позволяет следующую команду 44h (запуск преобразований) применить ко всем устройствам, находящимся на шине. В частности для температурных датчиков и АЦП. Цикл преобразований у АЦП длится 300 мкс, для термометров - 750 мкс.

4.      
Разработка программы управления

4.1     Общий алгоритм работы

Сначала производится инициализация всех параметров. По умолчанию тактирование происходит раз в одну секунду.

Затем контроллер переходит в режим автоматического опроса и выполняет сканирование матричного поля датчиков с выводом информации в ОЗУ и одновременно формируется первая часть SMS-сообщения. Следующим этапом выполняется оцифровка температуры и съём показателей по аналоговым каналам.

Далее формируется и передаётся SMS-сообщение. Параллельно с этим производится отображение информации на ЖКИ. В случае нажатия первой клавиши «-» уменьшается частота опроса, при нажатии второй клавиши «+» частота увеличивается кратно одной секунде.

Нажатие обоих клавиш позволяет задать время в часах, следующее нажатие - в минутах, следующее - в секундах. И последнее нажатие переводит систему в режим нормальной работы - опроса датчиков и пересылки информации через SMS-сообщение.

1

0

:

2

5

:

3

3



0

0

-

6

4



P

e

r

i

o

d

-

0

1

0






T

1

=

+

1

1

4


T

2

=

-

0

8

0

 

T

3

=

+

0

8

4


T

4

=

-

0

5

0


A

D

C

1

-

6

5

5

3

6



A

D

C

2

-

0

0

0

0

0











A

D

C

3

-

0

0

0

0

0



A

D

C

4

-

0

0

0

0

0












4.2     Описание работы программы

В начале программы идёт объявление необходимых переменных, массивов, флагов, привязка к портам. Затем идёт процедура для задержки на 5мкс. Следующими идут процедуры сброса, чтения и записи 1-Wire. После идёт процедура UART, в которой отрабатывается отправка и получение SMS-сообщений с использованием GSM-модуля SIM300. Затем идёт процедура обработки таймера, в которой просчитывается текущее время.

В главной процедуре MAIN сначала идёт инициализация параметров: задание режимов таймера, установка периода опроса, разрешение прерываний, задание начального адреса ОЗУ.

После инициализации начинаем преобразования, сохраняем в ОЗУ время и затем начинаем опрашивать матрицу датчиков. На линию регистров посылаем 0, выбираем поочерёдно строки и проверяем столбцы. Если в строке и в столбце появляется 0, мы распознаём это как сработавший датчик и сохраняем в ОЗУ его расчетный номер. Затем мы командой 55h выбираем датчик для работы и командой B8h считываем измеренные данные. Так мы опрашиваем 4 температурных датчика и АЦП. Выводим полученные данные на LCD. И последним в программе идёт обработка клавиш.

Заключение

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

Вторым этапом реализации проекта стало написание программной части, которая обеспечивает управление оборудованием по заданному алгоритму. Для реализации функций обмена с температурными датчиками был изучен протокол 1-Wire, который и был далее реализован в виде части программного кода. Также было выполнено описание программы и представлен её код.

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

Приложения

Приложение (Схема устройства)


Приложение (Листинг программы)

#include<reg52.h>

#include<stdlib.h>xdata ram[65635]; /* xdata massiv dannih v OZU*/int adresram;int pert,period;

char sec,min,chas; //shethiki vremeni

char poz,nkey,pd; //otobragaem segmentint interruptcnt;

char iw, command, step;iware=P3^2;lin=P3^3;rs=P3^4e=P3^5;k1=P1^6;k2=P1^7;fok; /* flag ispolnen sobitia*/

char lcd1[]={0,0,0x3a,0,0,0x3a,0,0,0x20,0x20,0x2d,0x36,0x34,0x20,0x20,0x50, 0x65,0x72,0x69,0x6f,0x64,0x2d,0,0,0};char lcd2[]={0x54,0x31,0x3d,0,0,0,0,0x20,0x54,0x32,0x3d,0,0,0,0,0x20,0x54,0x33, 0x3d,0,0,0,0,0x20,0x54,0x34,0x3d,0,0,0,0};char lcd3[]={0x41,0x44,0x43,0x31,0x2d,0,0,0,0,0,0x20,0x20,0x41,0x44,0x43, 0x32,0x2d,0,0,0,0,0};char lcd4[]={0x41,0x44,0x43,0x33,0x2d,0,0,0,0,0,0x20,0x20,0x41,0x44,0x43, 0x34,0x2d,0,0,0,0,0};char dat0[]={0x23,0x34,0xdf,0xde};char dat[]={0,0,0,0,0,0,0,0,0,0,0,0};char const lcdini[]={0x08,0x3c,0x06,0x0f, 0x01} /*inicializacia LCD*/char const nt1[]={0xDD ,0x05 ,0xEC ,0xAD ,0x35 ,0xb9 ,0x4f, 0xed };char const nt2[]={0xDD ,0x05 ,0x35 ,0xb9 ,0xa3 ,0xfd ,0xbd ,0x02 };char const nt3[]={0xDD ,0x05 ,0x67 ,0xe4 ,0x32 ,0xde ,0xae ,0x34 };char const nt4[]={0xDD ,0x05 ,0xEC ,0xb9 ,0x56 ,0x0D, 0x23 ,0x94 };char const nadc[]={0x0f ,0x00 ,0x68 ,0x35 ,0xb9 ,0xF9, 0xBD ,0x24 };

delay (void char t) { unsigned char dd; for (dd=0;dd<t;dd++)} //+++timeuot na 5*t mksiwreset (void)           //-------------- reset

{ =0;=1;(iware) //start proc

{ iware=0; delay(100);    //timeout 500mks=1;delay(14);                   //timeout 70 mks(!iware) { delay(100);        //500mks(iware) {fok=1;} } } readiw (void)          //--------------read IWare

{ unsigned char pp,nn;=0; for(nn=0;nn<8;nn++)

{ iware=0; delay (3);      //start obmena bit=1; delay(6); //+30mks dla chtenia=iware;pp=pp>1;(14);iware=1;(3);} iw=pp;}                 //save rezultatwriteiw (void char pp1)         //----------write IWare

{unsigned char pp,nn;=pp1; (nn=0;nn<8;nn++)

{ iware=0; delay (3);=pp>1; iware=CY;(20);iware=1;(3); }}uart (void) interrupt 5 using 2/*obmen s SIM300*/

{if (RI)

{if(SBUF==0xff){P3^7=1; (i=0;i<2000;i++) delay(200);P3^7=0; }//vse sovpalo na 2 sek open door(SBUF==0){sec=0; min=0;chas=0;}}(TI)

{TI=0; if (++step<18) SBUF=dat0[step];

}

}

timer0 (void) interrupt 1 using 2 /*Function interrupt timer0*/

{ =0xfc; /*set timer0=64614 1000perrepolnen v sek*/=0x66;

(++pert==1000){pert=0;if (++sec==60){sec=0;if(++min==60){min=0;if(++chas==24){chas=0;}}}}c=1;(pert==30)

{ lcd1[0]=chas/10+0x30;          lcd1[1]=chas%10+0x30;[3]=min/10+0x30;          lcd1[4]=min%10+0x30;[6]=sec/10+0x30;    lcd1[7]=sec%10+0x30; }

} /*end Function interrupt timer0*/

main (void)

{

/*Ini parametr*/=0; /*priority = 0*/=0x21; /*1 regim*/=1; /*start timet0*/=0x50;                                //obmen 8bit takt for timer1=0xFD;=0; /*time 1s*/

=1;=1; /*enable interrupt timer0*/=1; /*enable interrupt*/

=0;(1)

{;(fok){writeiw(0xCC);writeiw(0x44);} /*start preobrazovanii*/[++adresram]=chas;[++adresram]=min;[++adresram]=sec;

/*read pole datchikow*/=0;iware=1; /*reset DD6*/(j=0;j<16;j++)

{=1;P1=0xfe;rs=0;rs=1;(i=0;i<8;i++)

{if !(lin)pd=pd|(~P1);P1=P1<<1;rs=0;rs=0; }[++adresram]=pd;=1;P1=0xfe;e=0;e=1;(i=0;i<8;i++)   

{if !(lin)pd=pd|(~P1);P1=P1<<1;e=0;e=0; }[++adresram]=pd;=0; iware=1;

}(pert<750); /*end preobrazovania*/(j=0;j<4;j++)

{ resetiw;(fok){writeiw(0x55);} /*start preobrazovanii*/

(i=0;i<8;i++)

{ write(nt1[i+j*8]);}        /*send nomer dathika*/(0xB8);                            /*komand read data*/();(iw==0xff){readiw();dat[j]=0x80|((~iw)+1);}{readiw();dat[j]=iw;}[++adresram]=dat[j];

};       (ox55);(i=0;i<8;i++)

{ write(nadc[i]);}   /*send nomer dathika*/(0xB8);                            /*komand read data*/(i=0;i<8;i++)

{readiw();dat[++j]=iw;[++adresram]=iw;

}

/*send SMS data*/=0;=dat0[0];

}

          

}(i=0;i<8;i++)

{ write(nt1[i+j*8]);}        /*send nomer dathika*/(0xB8);                            /*komand

//vyvod na displey znachenii acp[5]=dat[5]*256+dat[4]/10000+0x30;[6]=dat[5]*256+dat[4]%10000/1000+0x30;[7]=dat[5]*256+dat[4]%10000%1000/100+0x30;[8]=dat[5]*256+dat[4]%10000%1000%100/10+0x30;[9]=dat[5]*256+dat[4]%10000%1000%100%10+0x30;

[17]=dat[7]*256+dat[6]/10000+0x30;[18]=dat[7]*256+dat[6]%10000/1000+0x30;[19]=dat[7]*256+dat[6]%10000%1000/100+0x30;[20]=dat[7]*256+dat[6]%10000%1000%100/10+0x30;[21]=dat[7]*256+dat[6]%10000%1000%100%10+0x30;

[5]=dat[9]*256+dat[8]/10000+0x30;[6]=dat[9]*256+dat[8]%10000/1000+0x30;[7]=dat[9]*256+dat[8]%10000%1000/100+0x30;[8]=dat[9]*256+dat[8]%10000%1000%100/10+0x30;[9]=dat[9]*256+dat[8]%10000%1000%100%10+0x30;

[17]=dat[11]*256+dat[12]/10000+0x30;[18]=dat[11]*256+dat[12]%10000/1000+0x30;[19]=dat[11]*256+dat[12]%10000%1000/100+0x30;[20]=dat[11]*256+dat[12]%10000%1000%100/10+0x30;[21]=dat[11]*256+dat[12]%10000%1000%100%10+0x30;

(!k1)&&(k2)&&(regedit==0)

{ period++;[22]=period/100+0x30;[23]=period%100/10+0x30;[24]=period%100%10+0x30;

};(k1)&&(!k2)&&regedit==0)

{ period--;[22]=period/100+0x30;[23]=period%100/10+0x30;[24]=period%100%10+0x30;}; (!k1)&&(!k2)

{regedit++;(regedit=4) regedit=0;(!k1)&&(k2)&&(regedit==1)

{chas++;(chas=24) chas=0;[0]=chas/10+0x30;     [1]=chas%10+0x30; }(k1)&&(!k2)&&(regedit==1)

{chas--;(chas=0) chas=23;[0]=chas/10+0x30;       [1]=chas%10+0x30; }(!k1)&&(k2)&&(regedit==2)

{min++;(min=60) min=0;[3]=min/10+0x30;           [4]=min%10+0x30;}(k1)&&(!k2)&&(regedit==2)

{min--;(min=0) min=59;[3]=min/10+0x30;    [4]=min%10+0x30;}(!k1)&&(k2)&&(regedit==3)

{sec++;(sec=60) sec=0;[6]=sec/10+0x30;   [7]=sec%10+0x30;}(!k1)&&(k2)&&(regedit==3)

{sec--;(sec=0) sec=59;[6]=sec/10+0x30;    

Похожие работы на - Разработка контроллера сбора информации и передачи по GSM-каналу

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!