Материал: Программа для автомата подачи звонков в учебном учреждении

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Программа для автомата подачи звонков в учебном учреждении

Введение

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

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

Для достижения данной цели нами был разработан прибор на основе микроконтроллера AtMega8A-16PU и микросхемы часов реального времени DS1307. Прибор интуитивно прост в управлении и не прихотлив в использовании (внешний вид на рис.1.).

Разработка проекта длилась на протяжении четырех месяцев. В течение этого времени было освоено программирование микроконтроллеров семейства AVR на языке Си и закреплены навыки создания печатных плат и монтажа электронных элементов.

Рис. 1. Внешний вид устройства

Корпус устройства приобретён в магазине «Чип и Дип».

Марка корпуса для основной схемы G1022BF, для исполнительного элемента - G1017. Монтаж выполняется на верхней и боковых частях корпуса.

Описание устройства

Основные технические характеристики

Габариты блока управления, не более - 156х68х44мм;

Напряжение питания - от 9 до 12В;

Количество вариантов суточных программ (количество звонков) - 16;

Длительность звонка - 3 сек;

Календарь до 2100 года с компенсацией високосных годов;

Принципиальная схема

Рис 2. Принципиальная схема устройства

Список элементов

HG1

Lcd дисплей Мэлт 2YLG

R1

10 кOм

R2, R3

4,7 кОм

R4

330 Ом

R5, R6

470 Ом

С1

100 мкФ

С2, С3

0,1 мкФ

С4

47 нФ

С5, С6

100 нФ

VD1

1N4004

ZQ1

32 768 кГц

Т1

ВТ 139

IC1

DS1307

IC2

AtMega8A-16PU

IC3

МОС3041

VR1

LM7805


Принцип работы устройства

При разработке нашего автомата было решено применить микроконтроллер AtMega8A-16PU.

Применение микроконтроллеров AtMega8A-16PU приводит к резкому уменьшению размеров устройства потребляемой мощности и количества используемых элементов. При разработке устройств на микроконтроллерах разработчику электронной схемы необходимо выбрать частоту тактового генератора для поставленной задачи и следить за тем, чтобы максимальная нагрузка на порты ввода вывода не превышала допустимую. Кристаллы AtMega8A-16PU могут работать с четырьмя типами встроенных генераторов (1,2,4 и 8МГц). Если необходимо использовать другой генератор (не 1MГц), то в программе необходимо предусмотреть загрузку регистра OSCCAL соответствующим калибровочным байтом. Кристаллы AVR могут также тактироваться и от внешних источников (1 - 16МГц). Исходя из этих данных, для оптимальной работы микроконтроллера, нами была выбрана частота 1 МГц.

Так же для точной работы часов была использована микросхема «Часов реального времени» DS1307 (описание смотрите в приложении). Обмен данным с микроконтроллером производится по шине I2C.

Интерфейс I2CC - двухпроводный последовательный интерфейс, разработанный корпорацией Philips. В Первоначальном техническом требовании к интерфейсу максимальная скорость передачи данных составляла 100 Кбит/с. Однако позже появились стандартные более скоростные режимы работы шины I2C (400Кбит/с и 1Мбит/с). К одной шине I2C могут быть подключены устройства с различными скоростями доступа, если скорость передачи данных будет удовлетворять требованиям самого низкоскоростного устройства.

Протокол передачи данных по шине I2C разработан таким образом, чтобы гарантировать надежный качественный прием/передачу данных. При передаче данных одно устройство является "Ведущим", которое инициирует передачу данных и формирует сигналы синхронизации. Другое устройство "Ведомое", которое может начать передачу данных только по команде ведущего шины. Модуль SSP микроконтроллеров Р1С16СХХХ полностью поддерживает режим ведомого I2C, за исключением поддержки адреса общего вызова (режим ведущего реализуется программно) Модуль MSSP аппаратно поддерживает режим ведущего/ведомого I2C, адрес общего вызова и скорость обмена данными до 1Мбит/с. Скорость передачи данных 1Мбит/с используют некоторые микросхемы последовательной EEPROM памяти.

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

Ведущий передатчик - ведомый приемник.

Ведомый передатчик- ведущий приемник.

В обоих случаях ведущий формирует тактовый сигнал.поддерживает обмен данными по протоколу I2C по двухпроводной двунаправленной шине. Устройство, которое передаёт данные на шину, является передатчиком, а устройство, принимающее данные, - приёмником. Устройство, управляющее передачей данных, называется ведущим. Устройство, которым управляет ведущий, называется ведомым. Ведущее устройство генерирует синхроимпульсы (serial clock - SCL), управляет доступом к шине и генерирует условия START и STOP. DS1307 работает на шине как ведомое устройство. Типовая конфигурация шины с использованием протокола I2C показана на рис. 3.

Рис. 3. Типовая конфигурация двухпроводной шины

На рис. 4, 5 и 6 подробно показан процесс передачи данных по двухпроводной шине.

Основные принципы передачи данных по шине I2C:

) Передача данных может быть инициирована только когда шина свободна.

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

Таким образом, возможны следующие состояния шины:

Шина не занята - на линиях SDA и SCL сохраняется высокий уровень.

Начало передачи данных (условие START) - изменение состояния линии SDA с высокого на низкий, в то время как на линии SCL высокий уровень.

Окончание передачи данных (условие STOP) - изменение состояния линии SDA с низкого на высокий, в то время как на линии SCL высокий уровень.

Корректные данные - состояние линии SDA представляет корректные данные, если после условия START состояние линии SDA не меняется в течение высокого уровня тактового сигнала. Данные на линии должны меняться в течение периода низкого уровня тактового сигнала. На один бит данных приходится один тактовый импульс.

Каждая передача данных инициируется условием START и завершается условием STOP. Число байтов данных, передаваемых между условиями START и STOP, не ограничено и определяется ведущим устройством. Информация передаётся побайтово, и каждый байт приёмник подтверждает девятым битом (бит подтверждения - ACK). В спецификации двухпроводного интерфейса определены обычный режим (с тактовой частотой 100 кГц) и быстрый режим (с тактовой частотой 400 кГц). DS1307 работает только в обычном режиме (100 кГц).

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

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

* - бит чтения/записи или бит направления

Рис. 4. Передача данных по двухпроводной последовательной шине

В зависимости от состояния бита возможны два типа передачи данных:

) Передача данных от ведущего передатчика ведомому приёмнику.

Первый байт, передаваемый ведущим, - это адрес ведомого. Далее следует некоторое количество байтов данных. Ведомый возвращает подтверждающий бит после каждого принятого байта. Данные передаются, начиная со старшего бита (most significant bit - MSB).

) Данные передаются от ведомого передатчика ведущему приёмнику.

Первый байт (адрес ведомого) передаётся ведущим. Ведомый возвращает подтверждающий бит. За ним следует передаваемое ведомым некоторое количество байтов данных. Ведущий возвращает подтверждающий бит после всех принимаемых байтов кроме последнего байта. В конце последнего принятого байта возвращается "неподтверждение". Ведущее устройство генерирует все последовательные синхроимпульсы, а также условия START и STOP. Передача заканчивается условием STOP или повтором условия START. Поскольку повторение условия START также является и началом следующей последовательной передачи, шина не освобождается. Данные передаются, начиная со старшего бита.может работать в следующих двух режимах:

) Режим ведомого приёмника (режим записи DS1307).

Последовательные данные принимаются по SDA и синхронизируются по SCL. После каждого принятого байта передаётся бит подтверждения. Условия START и STOP распознаются как начало и конец последовательной передачи. Распознавание адреса выполняется аппаратно после приёма адреса ведомого и бита направления (см. рис. 5).

Байт адреса - это первый байт, принятый после генерации ведущим условия начала. Он содержит 7 битов адреса DS1307, который имеет значение 1101000, и следующий за ним бит направления (), который для записи равен 0. После приёма и декодирования адресного байта DS1307 выдаёт на линию SDA подтверждение, после чего ведущий передаёт в устройство адрес регистра. Это установит регистровый указатель. Затем ведущий начинает передачу байтов данных, каждый из которых будет подтверждаться DS1307. Чтобы завершить запись данных, ведущий генерирует условие окончания.

Рис. 5. Запись данных - режим ведомого приёмника

2) Режим ведомого передатчика (режим чтения DS1307).

Первый байт принимается и обрабатывается так же, как и в режиме ведомого приёмника. Однако в этом режиме бит направления будет указывать, что направление передачи инвертировано. DS1307 передаёт последовательные данные по линии SDA пока на линию SCL поступают последовательные синхроимпульсы. Условия START и STOP распознаются в начале и в конце последовательной передачи (см. рис. 6).

Байт адреса - первый байт, принимаемый после стартового условия, генерируется ведущим. Байт адреса состоит из 7-битного адреса DS1307, который равен 1101000, и следующего за ним бита направления передачи (), который для чтения равен 1. После приёма и декодирования байта адреса, устройство выдаёт подтверждение на линию SDA. Затем DS1307 начинает передавать данные, начиная с указанного адреса, находящегося в регистровом указателе. Если перед началом чтения указатель регистра не записан, то первый читаемый адрес - это адрес, который был сохранён в нём последним. DS1307 должен принять "неподтверждение" для окончания чтения.

Рис. 6. Чтение данных - режим ведомого передатчика

Удобства применения шины I2C очевидны - малое количество соединительных линий и высокая скорость обмена, простота аппаратной реализации линии связи. Наиболее широко поддерживает шину I2C, конечно же, фирма Philips, производящая множество ИС различной сложности с управлением по I2C. В первую очередь, можно выделить микросхемы энергонезависимой памяти (EEPROM) серии 24Схх в 8-ми выводных корпусах, фактически ставшие промышленным стандартом. Из широко распространенных ИС можно выделить: микросхемы часов PCF8583, параллельный порт PCF8574, 4-х канальный 8-ми разрядный АЦП PCF8591. Существует множество модификаций этих ИС и более специализированные контроллеры.

С использованием I2C разработано множество продуктов, особенно в области бытовой электроники.

Разработка, изготовление печатной платы

С помощью программы Sprint-Layout по принципиальной электрической схеме нами была разработана печатная плата автомата.

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

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

Заготовка печатной платы вырезается из медного стеклотекстолита. Она шлифуется наждачной бумагой №0 и стиральной резинкой, после этого промывается водой и обезжиривается спиртом или ацетоном.

После того как готова заготовка печатной платы. Мы переносим изображение с фотобумаги на стеклотекстолит при помощи утюга.

После этого производят травление платы. Травят плату обычно в растворе персульфата аммония. Нормальной концентрацией раствора можно считать 20…50%. Разводят, примерно, 500 г порошка персульфата аммония в горячей кипяченой воде до получения общего объема раствора, равного 1 л. Раствор переливается в обычную ванночку (например использовать фотографический кювет). Продолжительность травления - 10…60 мин, она зависит от температуры, концентрации раствора, толщины медной фольги. Травление проводят под вытяжкой или в хорошо проветриваемом помещении.

Промытую плату просушивают, залуживают, рассверливают отверстия под выводы радиоэлементов (при этом используются сверла диаметром 0,6…0,8мм.)

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