МИНИСТЕРСТВО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Курганский государственный университет
Счетчик времени исходящих телефонных разговоров
расчетно-пояснительная записка
Дисциплина: Электроника
Студент группы М-3130 Скидин А.С. подпись ___________
Направление: 210200_______________________________________
Специальность: Автоматизация и управление__________________
Руководитель:
Доцент, к.т.н. _______________________________/Кудряшов Б.П./
Дата защиты: _________________
Оценка: ______________________
1. Введение______________________________________________3
2. Теоретический раздел___________________________________4
3. Заключение____________________________________________19
4. Список литературы______________________________________20
1. Введение
В условиях грядущего введения в действие системы повременной оплаты телефонных разговоров возникает потребность следить за временем, проведенным у телефонного аппарата. Для этой цели можно применять разного рода устройства, и с разной эффективностью. Однако в общем случае применяются специальные устройства.
Таким образом, поставленная задача заключается в том, чтобы спроектировать устройство, которое бы могло с достаточной точностью анализировать «проговоренное» время, работало бы в автономном режиме (или от телефонной сети), а также способное хранить информацию о времени разговоров в течение долгого времени.
По прецеденту повременной оплаты телефонных разговоров, как известно, берется плата только за исходящее соединение. Это означает, что если кто-либо звонит абоненту, аппарат которого снабжен счетчиком, то счет времени не должен происходить. В то же время, счет не должен начинаться и при поднятой трубке в случае, если соединение не прошло, а также во время ожидания ответа принимающей стороны.
В спроектированном устройстве учтено большинство нюансов, о которых речь шла выше. Основу устройства составляет микроконтроллер PIC16C55, задачей которого является хранение времени разговоров и обеспечение счета этого самого времени.
Питание устройства осуществляется от телефонной сети.
2. Теоретический раздел
2.1. Постановка задачи
Для учета времени телефонных разговоров применяют специальные счетчики. Предлагаемое устройство отличается от ранее описанных тем, что оно учитывает время разговоров более точно, так как анализирует сигналы в телефонной линии.
Принцип повременной оплаты внутригородских телефонных разговоров предполагает оплату времени только исходящих от абонента звонков. Естественно, что пользователям телефонной сети интересно и полезно знать свое «проговоренное» время, чтобы, например, вовремя перейти на режим «разговорной экономии» или оценить в конце месяца дополнительные затраты.
2.2. Описание функциональной схемы устройства
Алгоритм работы устройства поясняет функциональная схема (см. приложение 1). При наличии вызывного сигнала блок 5 формирует и выдает управляющее напряжение на узел запрета счета времени (блок 7), который в этом случае разрывает цепь прохождения импульсов счета. Индикатор времени (блок 9) отображает предыдущие показания без их изменения. При этом счет времени отсутствует независимо от того, поднял абонент трубку своего телефона или нет.
При поднятии трубки абонентом срабатывает устройство анализа наличия «своего» вызова (блок 2) и подготавливает цепь прохождения импульсов счета через узел разрешения счета времени (блок 3).
Необходимыми условиями прохождения импульсов счета с генератора (блок 8) через узел запрета (блок 7) являются отсутствие звонкового сигнала до поднятия трубки и окончание сигналов «не отвечает» после набора номера абонентом. Таким образом, счет происходит только при состоявшемся исходящем соединении. В случае появления сигнала «занято» счет также не начнется.
Текущее время разговора отображается на индикаторе времени (блок 9). Блок 4 работает в режиме накопления. Для его обнуления предусмотрена кнопка «Сброс». Питание всех элементов устройства осуществляется от источника питания, который, в свою очередь, питается от телефонной линии.
2.3. Описание принципиальной схемы устройства
Принципиальная схема устройства показана в приложении 1. Генератор импульсов счета собран на микросхеме DD2. Особенностью его построения является отсутствие, для упрощения, кварцевого резонатора, используемого в типовой схеме включения. На выходе 9 микросхемы DD2 (вывод 1) присутствуют импульсы счета с частотой 1 Гц, а на выходе K – импульсы с частотой 512 Гц, которые используются для работы жидкокристаллического индикатора HG1.
Устройство анализа наличия звонка работает следующим образом: сигнал вызова (переменное напряжение с частотой 25 Гц и амплитудой до 110 В) из линии через конденсатор C3 поступает на диодный ограничитель VD7 – VD10. Примененное включение диодов позволяет преобразовать синусоидальное напряжение звонка в почти прямоугольные импульсы с амплитудой 2,1 В, которые переключают триггер DD1.1 по входу C. Так как на входе D триггера DD1.1 в этот момент присутствует высокий уровень с выхода элемента DD4.1, на прямом выходе DD1.1 также появится высокий уровень. Этот сигнал запрещает прохождение импульсов счета через элемент DD3.1, которые поступают с микросхемы DD2. Если при этом абонент поднимет трубку телефона для разговора, счета времени не произойдет.
При снятии трубки абонентом происходит переключение триггера Шмитта на элементе DD4.1. На его вход поступает сигнал с делителя R2R3. В этом случае произойдет изменение уровня с высокого на низкий, но с некоторым запаздыванием, обусловленным наличием конденсатора C2. Конденсатор C2 необходим для отфильтровывания сигналов набора номера, звонка, а также помех, которые могли бы приводить к ложному срабатыванию триггера DD4.1. Низкий уровень с выхода DD4.1 поступает на вход D триггера DD1.1 (который теперь не будет изменять исходного нулевого состояния, независимо от любых сигналов на входе C, если до этого не было звонка) и вход элемента DD3.2, который разрешает счет времени.
С выхода DD3.2 импульсы счета поступают на элемент DD3.3, на второй вход которого (вывод 8) подается управляющий уровень с выхода устройства анализа наличия сигнала «не отвечает» (посылки синусоидальных импульсов с частотой заполнения 425 Гц, длительностью 1 с и паузой 4 с) или «занято» (аналогичные посылки с паузой 1 с). Импульсы выделяются на диодах VD7 – VD10, усиливаются транзисторами VT3, VT4 и заряжают конденсатор C5 почти до напряжения источника питания. Во время паузы конденсатор C5 разряжается через подстроечный резистор R9. Транзистор VT2 в это время закрыт. Резистором R9 устанавливают такую постоянную времени, чтобы в течение 4 с (паузы) не происходило переключение триггера Шмитта DD4.3, преобразующего экспоненциальные фронты на своем входе в крутые на выходе.
Таким образом, пока на конденсаторе C5 выделяется сигнал «не отвечает», триггер DD4.3 находится в единичном состоянии и своим выходным сигналом запрещает прохождение импульсов счета через элемент DD3.3 на разъем X3.1 и далее на вход счетчика времени «своих» разговоров. Одновременно эти импульсы поступают на вход C триггера DD1.2 и вход формирователя импульсов индикации счета (элемент DD4.2). Триггер DD1.2 переключается и открывает транзистор VT2, который шунтирует вход устройства анализа сигналов. Это необходимо для исключения зарядки конденсатора С5 речевыми сигналами и сигналами помех в линии.
Обнуление триггеров DD1.1 и DD1.2 происходит подачей импульса, формируемого дифференцирующей цепью C4R13, возникающего при опускании телефонной трубки на аппарат и переходе, вследствие этого, триггера DD4.1 в единичное состояние. В случае поступления вызывного сигнала в отсутствие абонента (трубка не будет поднята) триггеры DD1.1, DD1.2 переключаются так же, как в рабочем режиме, описанном выше, а их обнуление осуществляется импульсом с дифференцирующей цепи C9R13, возникающем в момент переключения триггера Шмитта DD4.3 в нулевое состояние после окончания звонковых сигналов.
Элемент DD4.4 предотвращает обнуление триггера DD1.1 в случае поступления звонка и поднятия трубки, так как в этом случае обнуляющий импульс с выхода DD4.4, возникающий при поднятии трубки, делится пополам на конденсаторах C4, C9 и его амплитуды становится недостаточно для переключения триггера DD1.1. Низкий уровень на входе D триггера DD1.1 (при поднятии трубки) позволяет триггеру оставаться в нулевом состоянии при воздействии по цепи C3R12 импульсов набора номера и импульсов помех в линии на его вход C.
Счет времени «своих» разговоров осуществляется с помощью PIC-контроллера (модель PIC16C55, 4 МГц). Максимальное время, которое может пройти до переполнения счетчика, составляет 99 часов 59 минут 59 секунд. Часы и минуты отображаются на жидкокристаллическом индикаторе HG1. Работа устройства в режиме счета определяется по мигающей с частотой 1 Гц средней децимальной точке (вывод 9 HG1). Обнуление таймера происходит при подаче импульса на вход RA2 микроконтроллера, формируемого дифференцирующей цепью C10R17 при нажатии кнопки SB1.
Питание устройства осуществляется от телефонной линии с использованием микромощного стабилитрона VD6, рабочий ток которого задает стабилизатор тока VT1. Диодный мост VD1 – VD4 обеспечивает независимость от полярности при подключении устройства к линии. Ток, потребляемый устройством в режиме ожидания, не превышает 100 мкА.
2.4. Описание процесса обработки импульсов счета
Требования, которым должна удовлетворять программа для PIC-контроллера, состоят в следующем. Прежде всего, она должна адекватно реагировать на каждый импульс счета, то есть ее основной задачей является обработка каждого импульса, но в то же время без его повторной обработки. Таким образом, для решения поставленной задачи нужно либо постоянно анализировать определенный вход PIC-контроллера с целью выявления прихода импульса счета, либо использовать внутренние возможности PIC. В первом случае возникает возможность двойной обработки одного и того же импульса, что требует дополнительной коррекции программы для микроконтроллера. В случае, когда используется внутренний таймер-счетчик PIC TMR0 (вывод T0CK1), нет нужды дополнительно вводить в программу проверку на то, был ли уже этот импульс обработан, или еще нет. Достаточно организовать главный цикл, который будет отслеживать состояние счетчика таймера и, как только дождется его изменения, можно будет однозначно сказать о приходе импульса счета. В этом случае нужно увеличить внутренние счетчики времени. В качестве счетчиков с программной точки зрения удобнее всего завести отдельно счетчики единиц минут, единиц часов, десятков минут, десятков часов. Альтернативой такому подходу может считаться счетчик большой разрядности, который будет считать не в формате часы:минуты:секунды, а просто количество импульсов, пришедших на PIC-контроллер с момента сброса. Недостаток такого подхода очевиден, ведь как бы ни велся счет времени внутри PIC-контроллера, устройство всегда обязано выводить результат на жидкокристаллический экран HG1. И в случае, когда часы, минуты и секунды «спрессованы» в одну единицу данных (как показывает расчет, для компактного представления данных о числе импульсов с тем же пределом необходимо 3 байта), необходимо провести обработку этого числа. Эта обработка сводится к делению по модулю 60 и к нахождению частного от этого деления. Как известно, PIC16C55 не содержит в своем наборе команд деления по модулю. поэтому программа должна была бы провести большую подготовительную работу перед такими операциями.