Набранная клавиша (цифра)
|
Q4
|
Q3
|
Q2
|
Q1
|
1
|
0
|
0
|
0
|
1
|
2
|
0
|
0
|
1
|
0
|
3
|
0
|
0
|
1
|
1
|
4
|
0
|
1
|
0
|
0
|
5
|
0
|
1
|
0
|
1
|
6
|
0
|
1
|
1
|
0
|
7
|
0
|
1
|
1
|
1
|
8
|
1
|
0
|
0
|
0
|
9
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
*
|
1
|
0
|
1
|
1
|
#
|
1
|
1
|
0
|
0
|
В качестве микроконтроллера был выбран ATmega8 [8]. Изначально
предполагалось использование его предшественника, микроконтроллера АТ89С51, как
наиболее широко распространённого, но в его составе не было компаратора,
необходимого для отслеживания напряжения линии и источника внутреннего
образцового напряжения (ИОН). Поэтому был выбран микроконтроллер ATmega8 [9].
Их стоимость на рынке является практически одинаковой. Технические
характеристики ATmega8:
§ 8-разрядный высокопроизводительный AVR микроконтроллер с малым
потреблением;
§ прогрессивная RISC архитектура;
§ 130 высокопроизводительных команд, большинство команд выполняется за один
тактовый цикл;
§ 32 8-разрядных рабочих регистра общего назначения Полностью статическая
работа;
§ приближающаяся к 16 MIPS (при тактовой частоте 16 МГц)
производительность;
§ встроенный 2-цикловый перемножитель;
§ энергонезависимая память программ и данных;
§ 8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)
Обеспечивает 1000 циклов стирания/записи;
§ дополнительный сектор загрузочных кодов с независимыми битами блокировки;
§ обеспечен режим одновременного чтения/записи (Read-While-Write);
§ 512 байт EEPROM (Обеспечивает 100000 циклов стирания/записи );
§ 1 кбайт встроенной SRAM;
§ программируемая блокировка, обеспечивающая защиту программных средств
пользователя;
§ встроенная периферия;
§ два 8-разрядных таймера/счетчика с отдельным предварительным делителем,
один с режимом сравнения;
§ один 16-разрядный таймер/счетчик с отдельным предварительным делителем и
режимами захвата и сравнения;
§ счетчик реального времени с отдельным генератором;
§ три канала PWM;
§ 8-канальный аналого-цифровой преобразователь (в корпусах TQFP и MLF);
§ 6 каналов с 10-разрядной точностью;
§ 2 канала с 8-разрядной точностью;
§ 6-канальный аналого-цифровой преобразователь (в корпусе PDIP);
§ 4 канала с 10-разрядной точностью;
§ 2 канала с 8-разрядной точностью;
§ байт-ориентированный 2-проводный последовательный интерфейс;
§ программируемый последовательный USART;
§ последовательный интерфейс SPI (ведущий/ведомый);
§ программируемый сторожевой таймер с отдельным встроенным генератором;
§ встроенный аналоговый компаратор и ИОН;
§ специальные микроконтроллерные функции;
§ сброс по подаче питания и программируемый детектор кратковременного
снижения напряжения питания;
§ встроенный калиброванный RC-генератор;
§ внутренние и внешние источники прерываний;
§ пять режимов пониженного потребления: Idle, Power-save, Power-down,
Standby и снижения шумов ADC;
§ выводы I/O и корпуса;
§ 23 программируемые линии ввода/вывода;
§ 28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус
MLF;
§ рабочие напряжения - 4,5
- 5,5 В;
§ рабочая частота - 0 -
16 МГц.
Функциональное назначение выводов ATmega8 приведено на рис. 5.
Рис. 5 - Функциональное назначение выводов ATmega8
Микроконтроллер обладает Гарвардской архитектурой, т. е. с раздельной
памятью программ и данных [10]. Его блок-схема приведена на рис. 6.
Рис. 6 - Внутренняя структура микроконтроллера ATmega8
Его расположение выводов приведено на рис. 7.
Рис. 7 - Расположение выводов микроконтроллера ATmega8
Микроконтроллер обладает необходимыми характеристиками для реализации его
в данном устройстве [11]. Его порты D2 - D5 будем использовать как входа
четырёхразрядной шины данных с DTMF декодера. Бит порта D7 задействуем как вход
внутреннего компаратора, так как одной из альтернативных функций этого бита
является использование его как инверсный вход компаратора. При этом прямой вход
компаратора будет программно подключён к внутреннему ИОН микроконтроллера.
Оставшиеся бита порта D0 и D1 будут использованы так же как альтернативные
функции микроконтроллера и будут использованы как RxD и TxD интерфейса USART
для обмена по протоколу RS232. Порт C задействуем для вывода информации на
LCD-модуль (ЖК индикатор). Оставшийся порт B будем использовать для подключения
блока управления устройством, подключения кварцевого резонатора и управления
коммутатором, обеспечивающим блокировку дозвона в линию.
В качестве наглядного и удобного узла отображения информации для
устройства был выбран LCD-модуль
WH2002A [12]. Это ЖК дисплей, отображающий две строки по 20 символов в каждой
строке. В своём составе WH2002A имеет встроенный контроллер HD44780,
позволяющий модулю LCD принимать стандартные символы в формате ANSII [13]. Его
внутренняя структура приведена на рис. 8.
Рис. 8 - Внутренняя структура контроллера дисплея WH2002A
Команды, получаемые контроллером HD44780, от микроконтроллера ATmega8 могут вести обмен как в 8-ми
битном, так и в 4-х битном режиме. Для экономии выводов порта выберем 4-х
битный режим. На скорости отображения информации на экране, визуально это
заметно не будет. Список команд контроллера HD44780 приведён в таблице 6.
При подаче питания на модуль-LCD, его нормальная работа может быть
обеспечена только после его правильной инициализации. Сначала контроллер
ЖК-индикатора переводят в режим приёма команд. Затем следует задать размер
матрицы в отображаемых символах. Затем определяют параметры курсора, режим
смещения счётчика адреса, разрядность шины данных и после этого контроллер
переводят в режим приёма данных. Сразу после этого делают очистку экрана, после
чего дисплей готов к приёму символов от основного микроконтроллера. Контроллер
LCD-модуля поддерживает как режим записи в него, так и режим чтения. Мы будем
использовать только режим чтения.
Таблица 6 - Команды контроллера HD44780
Символы, принимаемые контроллером HD44780 по стандарту ANSI приведены в
таблице 7.
Таблица 7 - Символы ANSI видеопамяти контроллера HD44780
Таблица видеопамяти используемого ЖК-индикатора в данном проекте не имеет
русификации, поэтому в области видеопамяти от A0h - FFh отсутствуют русские символы. По этой причине мы
задействуем область памяти с 20h - 7Fh.
Сам модуль LCD представлен на рис. 9.
Рис. 9 - Вид спереди LCD-модуля WH2002A
Назначение выводов LCD-модуля WH2002A представлено в таблице 8.
Таблица 8 - Назначение выводов LCD-модуля WH2002A
Расположение символов адресного пространства видеопамяти WH2002A представлено на рис. 10.
Рис. 10 - Адресное пространство LCD-модуля WH2002A
Для реализации возможности обмена устройства с компьютером, используем
микросхему - преобразователь уровней ТТЛ - RS232 и наоборот фирмы MAXIM MAX232. Данная микросхема показала устойчивую работу в
преобразовании уровней напряжения и поэтому была выбрана для данного проекта
[14].
Расположение выводов приведено на рис. 11.
Рис. 11 - Расположение выводов MAX232
Типичная схема включения приведена на рис. 12.
Рис. 12 - Схема включения MAX232
Вывод микросхемы Vs-
формирует отрицательное напряжение минус 10 В. Это позволяет задействовать его
как источник отрицательного напряжения для подачи на вывод регулировки
контрастности LCD-модуля, для которого необходимо подать отрицательный
потенциал минус 3 В.
Для передачи данных используем асинхронный режим передачи. При
асинхронной передачи данных каждому байту предшествует старт-бит,
сигнализирующий приемнику о начале очередной посылки, за которым следуют биты
данных и, возможно, бит паритета (контроля четности). Завершает посылку
стоп-бит, гарантирующий определенную выдержку между соседними посылками.
Старт-бит следующего посланного байта может посылаться в любой момент после
окончания стоп-бита, то есть между передачами возможны паузы произвольной
длительности. Старт-бит, имеющий всегда строго определенное значение (лог. 0),
обеспечивает простой механизм синхронизации приемника по сигналу от
передатчика. Подразумевается, что приемник и передатчик работают на одной
скорости обмена, измеряемой в количестве передаваемых бит в секунду. Внутренний
генератор синхронизации приемника использует счетчик-делитель опорной частоты,
обнуляемый в момент приема начала старт-бита. Количество бит данных может
составлять 5, 6, 7 или 8 (5- и 6-битные форматы мало распространены).
Количество стоп-бит может быть 1, 1,5 и 2 ("полтора бита"
подразумевает, естественно, только длительность стопового интервала).
Для реализации интерфейса RS232 используем один из возможных режимов
обмена - это асинхронный обмен на скорости 9600 бит/с, без проверки на
чётность, 1 стоповый бит, без управления потоком. Данные передаются побайтно.
Это проиллюстрировано на рис. 13.
Рис.13 - Диаграмма посылок интерфейса RS232
При выборе коммутатора, рассматривалось несколько вариантов, среди
которых были малогабаритные реле и современные электронные основанные на
полупроводниках [15]. Выбор был в пользу последних. Появившиеся в последнее
время твердотельные оптореле обладают малыми габаритами, весом и отвечают
заданным характеристикам. Было выбрано твердотельное оптическое реле KAQV412 c MOSFET выходом,
нормально замкнутое, на 60 В и 200 мА [16]. Его графическое изображение приведено
на рис. 14.
Рис. 14 - Графическое изображение KAQV412
Технические характеристики оптореле KAQV412 показаны на рис. 15.
Рис. 15 - Технические характеристики оптореле KAQV412
Определив элементную базу, разработаем принципиальную схему устройства.
Внутренний источник опорного напряжения (ИОН), входящий в состав
микроконтроллера DD1 ATmega8, и подключаемый программно, формирует напряжение
1,22 В. Для того, чтобы можно было отслеживать напряжение телефонной линии,
надо рассчитать резисторы R1 и R2, используемые в делителе напряжения. Часть
схемы представлена на рис. 16.
Рис. 16 - Делитель напряжения и компаратор
Так как на инверсный вход компаратора в исходном случае должно приходить
напряжение выше чем установлено программно на положительном входе компаратора,
то пусть это будет 2 В, т.к. 2 В > 1,22 В.
Когда абонент снимет трубку телефона, то напряжение на инверсном входе
компаратора должно стать ниже порога компарации, что приведёт к формированию
внутреннего активного уровня единицы бита ACO = 1.
Принципиальная схема разработанного устройства показана на рис. 17.
Рис. 17 - Принципиальная схема устройства выборочного ограничения
исходящей междугородной связи
.3 Разработка программного обеспечения контроллера
Для обработки поступающих сигналов в узел набора и анализа номеров,
главная часть этого узла - микроконтроллер, должен быть запрограммирован на
анализ поступающих тоновых посылок набора и контроля сеанса разговора. Для
этого разработаем управляющую программу, с использованием среды
программирования Bascom AVR. Эта среда поддерживает Basic - подобный язык, а
так же язык Assembler AVR. Данная среда удобна тем, что содержит средства
быстрой разработки программного обеспечения и сочетает в себе сразу три
необходимых инструмента для успешной работы с МК фирмы Atmel:
. среда написания на языке Basic и Assembler;
. компилятор программного кода;
. средства для работы с программатором МК.
Перед написанием программы, необходимо сформулировать основные требования
к ней, т.е. управляющая программа (УП) должна выполнять следующие операции:
. постоянно следить за логическим состоянием портов МК, на которые
поступают сигналы от декодера DTMF;
. измерять напряжение телефонной линии;
. по условиям алгоритма опрашивать состояние кнопок управления;
. правильно декодировать для операций анализа и сравнения
набираемые цифры;
. в любых случаях, при разном количестве цифр в телефонном номере
- исключать ситуации, приводящие к неопределённому поведению работы алгоритма
устройства;
. при пропадании напряжения питания устройства, обеспечивать сохранность
набранного номера в EEPROM.
Листинг разработанной программы приведён в приложении А.
3. Моделирование сервисного устройства
.1 Тестирование устройства и анализ результатов
Произведём расчёт аттенюатора. Исходя из того, что допустимой нагрузкой
делителя напряжения на линию будет ток в 1 мА, установим общее входное
сопротивление делителя 22 кОм. Рабочее напряжение современных АТС (в данном
случае АТС63) составляет около 22 В. Исходя из этого, рассчитаем резисторы R1 и
R2.
Ом (20
кОм),
Ом (2
кОм),
где
U1 = падение напряжения на R1, U2 = падение напряжения на R2,
I =
ток протекающий через делитель R1, R2.
Для получения результатов проекта, соберём макет устройства выборочного
ограничения исходящей междугородной связи и затем протестируем его в реальной
среде, а также в программах-симуляторах (Результаты работы с
программами-симуляторами рассмотрим в следующем разделе моделирования
процессов). Оно собрано на плате из одностороннего фольгированного
стеклотекстолита размерами 80х120 мм. Часть деталей, таких как микросхема
интерфейса RS232 MAX232 смонтирована со стороны монтажа, так как она была
приобретена в корпусе типа SO для поверхностного монтажа. Собранный макет
представлен на рис. 18.
Рис. 18 - Макет собранного устройства
Далее соберём простой программатор для микроконтроллера. Принципиальная
схема одного из подходящих программаторов типа STK200 приведена на следующем
рис. 19.
Рис. 19 - Принципиальная схема программатора STK200
В собранном виде, программатор представляет устройство в виде переходника
с LPT порта на SPI интерфейс, по которому происходит программирование
микроконтроллера ATmega8. Его видно на рис. 20.
Рис. 20 - Внешний вид собранного программатора STK200
Для непосредственного программирования микроконтроллера используем
простую программу Uniprof.
Особенность её в том, что она надёжно «прошивает» микроконтроллеры без ошибок
связи. Её интерфейс представлен на рис. 21.
Рис. 21 - Интерфейс программы Uniprof (экранная копия)
Полученные результаты собранного макета устройства позволяют сделать
выводы о том, что устройство показало стабильную работу на реальной телефонной
линии и безошибочно запоминает и анализирует для сравнения телефонные номера.
Одним из преимуществ данного устройства явилось наличие в микроконтроллере
устройства энергонезависимой памяти EEPROM [17]. Поэтому при многократном
отключении питания устройства, это никак не повлияло на сохраненные в памяти
устройства номера к запрету.
Также проведём тестирование макета устройства с его опциональной
возможностью связи с компьютером [18]. Подключим макет по нуль-модемному кабелю
интерфейса RS232 с COM портом компьютера в соответствии с рис. 22.
Рис. 22 - Схема распайки кабеля COM - COM
Для наглядного отображения на экране монитора используем входящую в
состав операционной системы Windows XP, программу Hyper Terminal. Затем выставим одинаковые параметры
связи с собранным макетом устройства, как показано на рис. 23.
Рис. 23 - Настройки программы Hyper Terminal (экранная
копия)
После того, как все необходимые установки произведены, подключаем макет
устройства к телефонной линии и при условии, что телефонный номер к запрету уже
введён в EEPROM устройства, снимаем трубку телефона и начинаем набирать
какой-нибудь телефонный номер. При снятии трубки видим, что макет устройства
посылает символ «В», что означает Begin, т. е. начало времени отсчёта занятости линии. При написании
специализированной программы для сбора информации о совершённых звонках с
данной телефонной линии, этот символ является скрытым и не показывается
пользователю. Далее видим отображение набранного телефонного номера. В конце
разговора, когда будет положена трубка на базу, будет сформирован ещё один
служебный символ «E» (т. е. End).
Совместно эти два служебных символа обеспечивают «привязку» к системному
времени компьютера. Это позволяет вести учет начала и конца звонков, а также
высчитывать программно длительность разговора абонента.
Всё вышесказанное проиллюстрировано на рис. 24.
Рис. 24 - Окно программы Hyper Terminal (экранная
копия)
Проведённое тестирование макета устройства, позволяет сделать вывод о его
практической пригодности в различных сферах, как устройства, функционально
расширяющего сервисные возможности телефонной линии. В случае реализации
мелкосерийного производства, рекомендуется использовать пластиковые корпуса,
изготовляемые фирмой TEKO [19].
.2 Схемотехническое моделирование в программной среде Proteus 7.4 SP3
Смоделируем макет данного устройства в программной среде Proteus 7.4.
Общая принципиальная схема для данной среды представлена на рис. 25.
Рис. 25 - Принципиальная схема устройства в среде Proteus 7.4 SP3
(экранная копия)
Так как в среде Proteus отсутствует библиотека декодера DTMF, применим
альтернативное задание двоичного четырёхразрядного кода с выхода декодера DTMF,
набором переключателей и кнопки, имитирующей формирование сигнала DSO. Фрагмент
альтернативного варианта показан на рис. 26.
Рис. 26 - Аналог части схемы формирования двоичного кода декодером
(экранная копия)
Для наглядного отображения осциллограмм используем встроенный в среду
Proteus осциллограф. Его изображение показано на рис. 27.
Рис. 27 - Осциллограф в среде Proteus (экранная копия)
Рассмотрим процессы, происходящие в макете устройства. При подаче
питающего напряжения (кнопка запуска моделирования процесса) внутри
микроконтроллера, происходит первоначальная инициализация LCD-модуля. Это
приводит к установке сигнала «RS» в состояние низкого уровня и формировании
сигнала строба «E». Продемонстрируем это на рис. 28.
Рис 28 - Формирование управляющих сигналов для LCD-модуля (экранная
копия)
Жёлтым цветом обозначен сигнал «RS», а синим строб «E». Когда завершается
программа инициализации, происходит переход сигнала RS в состояние высокого
уровня, для того чтобы LCD-модуль перешел в режим чтения данных. Далее
происходит проверка того, был ли какой-либо номер телефона введён ранее в
EEPROM устройства. Предположим, что нам требуется очистить всю память номеров
устройства и ввести другие телефонные номера. Для этого, при включении
устройства удерживаем около одной секунды кнопку SB3, согласно схеме на рис.
17. При этом происходит очистка всей «памяти номеров». Это показано на рис. 29.
Рис. 29 - Фрагмент очистки EEPROM макета устройства (экранная копия)
Очистка EEPROM происходит около 3-х секунд и сразу после этого устройство
переходит к началу следующей программы. В течении некоторого времени выводится
информация о изготовителе устройства и учебном заведении, группе и дате
представления макета. Это видно из рис. 30.
Рис. 30 - Демонстрационный промежуточный режим LCD-модуля (экранная
копия)
Далее микроконтроллер переходит к непосредственному режиму работы.
Предлагается ввести телефонный номер к запрету для набора. Следует заметить, что
количество цифр в номере не ограничено. Это может быть всего одна цифра «8» для
блокировки всех междугородних звонков или цифра «9» для блокировки выхода на
городскую АТС с внутренней АТС предприятия, так и длинный междугородний номер.
В данной реализации ограничение составляет 20 цифр в номере, чтобы это удобно
отображалось на LCD-модуле.
Ввод номера происходит по последовательному 2-х кнопочному интерфейсу.
Первоначально предполагалось использование плёночно - матричной клавиатуры для
набора номера. Но из-за её дороговизны по сравнению с двумя кнопками, решено
было использовать последовательный интерфейс. Это также положительно сказалось
на конечном размере устройства, в сторону его уменьшения.
Вводимые цифры номера сразу отображаются на экране LCD-модуля. Это видно
на рис. 31.
Рис. 31 - Ввод междугороднего телефонного номера к запрету (экранная
копия)
Увеличение значения каждой цифры в одном знакоместе происходит при каждом
очередном нажатии кнопки SB1. Переход к вводу следующей цифры номера,
производится нажатием кнопки SB2. Когда все необходимые цифры номера набраны,
нужно нажать кнопку SB3. При этом макет устройства переходит к следующему циклу
работы программы и переключается в режим анализа телефонной линии. Это показано
на рис. 32.
Рис. 32 - Режим анализа данных с линии (экранная копия)
Устройство определяет уровень напряжения в телефонной линии и если трубка
положена на базу, ждёт её поднятия. При поднятии трубки происходит падение
напряжения в телефонной линии с 30 В до 8 В. При этом в точке соединения
резисторов R1 и R2 согласно рис. 17, происходит падение напряжения с 2,2 В до
0,7 В. Это показано на рис. 33 верхней (жёлтой) линией. При этом спустя один
такт работы микроконтроллера формируется сигнал с выхода внутреннего
компаратора, обозначенный на том же рис. 33 нижней (синей) линией.
Рис. 33 - Формирование сигналов снятия трубки (экранная копия)
После того как трубка снята и абонент начинает набор первых цифр номера,
в телефонной линии появляются посылки DTMF кода, соответствующего каждой
набранной цифре. Форма сигнала посылок DTMF кода видна на рис. 34.
Рис. 34 - Форма сигналов посылок DTMF кода
При посылке каждого DTMF сигнала в линию, декодер DTMF производит
распознавание посылки и затем, когда сигнал будет равен 40 мс, он подаётся на
выход в виде двоичного четырёхразрядного кода. Сразу после правильного
распознавания сигнала формируется сигнал готовности DSO, как управляющий сигнал
для микроконтроллера. Это продемонстрировано верхней (жёлтой) линией на рис. 35.
Рис. 35 - Формирование сигнала управления DSO (экранная копия)
Непосредственно в процессе моделирования, имитация декодера DTMF в среде
Proteus, согласно рис. 26, осуществляется набором блока переключателей DSW2. Им
набирают двоичный код, а кнопкой SB4 формируется сигнал управления DSO. При
совпадении набранного номера и номера телефона, находящегося в памяти макета
устройства, формируется сигнал сброса, который поступает на коммутатор,
осуществляющий временный сброс линии согласно рис. 17, а в среде Proteus порт
PB2 микроконтроллера формирует секундный сигнал сброса и тем самым включает
светодиод D1. Все последующие наборы различных
номеров будут приводить либо к срабатыванию того же сигнала сброса на порту PB2, если номер опять совпадёт или
устройство никак не будет влиять на набор номеров, не совпадающих с заданным по
условиям алгоритма.
Сервисные возможности устройства расширяются за счёт его опциональной
возможности связи с компьютером. В среде Proteus предусмотрен виртуальный
терминал последовательного интерфейса. При каждом набранном номере, в
соответствии с протоколом передачи RS232 формируется байтовая посылка данных
вместе со стартовым битом и стоп-битом. Сигнал TxD, формируемый на выходе
микроконтроллера U1, показан на рис. 36 верхней (синей) линией. Преобразователь
интерфейса RS232 U2,
непосредственно связанный с микроконтроллером ATmega8, получая сигнал RxD, преобразует и инвертирует его из
сигналов ТТЛ логики в уровни напряжений COM порта, т. е. в +10 В и минус 10 В. Это показано на
рис. 36 нижней (жёлтой) линией.
Рис. 36 - Сигналы интерфейса RS232 (экранная копия)
Сам терминал RS232 при
моделировании процесса отображает окно, через которое возможно как
просматривать выводимую информацию, так и осуществлять ввод. Мы используем
только режим приёма данных на терминал. Окно терминала показано на рис. 37.
Рис. 37 - Окно терминала (экранная копия)
Перейдём к моделированию программного обеспечения микроконтроллера.
3.3 Моделирование работы программы в среде Bascom AVR
Моделирование процесса работы программы рассмотрим в среде разработки
Bascom AVR. Тактовая частота МК - 11,0592 МГц [20]. Частота выбрана из-за
возможности работы с COM портом компьютера, чтобы осуществлять обмен на
скорости 9600 бод/с. Для этого в настройках программы выберем кварц с рабочей
частотой 11,0592 МГц. Режим симуляции автоматически произведёт целочисленное
деление на 1152 и тем самым будет определена единственная скорость
последовательного интерфейса микроконтроллера 9600 бод/с.
Общий вид программы представлен на рис. 38.
Рис. 38 - Общий вид программы BASCOM AVR (экранная копия)
Cмоделируем
две основные ситуации, которые могут возникнуть при работе устройства на линии:
§ Абонент снял телефонную трубку, произвел набор телефонного номера - номер
не совпал;
§ Абонент снял телефонную трубку, произвел набор телефонного номера - номер
совпал.
При старте программы происходит инициализация переменных процесса. При
этом также устанавливается и программно подключается источник опорного
напряжения ИОН к положительному выводу компаратора микроконтроллера.
Программируются выводы микроконтроллера:
§ Pind.2 Pind.3 Pind.4 Pind.5 Pinb.0
Pinb.1 Pinb.3 Pinb.5 = как входы;
§ Pinb.2 = как выход;
§ Acsr = &B01000000 (настройка внутреннего компаратора).
В режиме симуляции отображается окно конфигурации регистров. При этом
выводы портов, которые запрограммированы на выход, подсвечены ярким красным
цветом. Это окно приведено на рис. 39.
Рис. 39 - Окно состояния регистров (экранная копия)
Также в режиме симуляции доступно окно состояния регистров специальных
функций, таких как регистр компаратора ACSR. На рис. 40 видно, что в этом
регистре записано число 40h в шестнадцатеричной системе, что эквивалентно числу
01000000b, записанному в регистр при написании программы.
Рис. 40 - Окно состояния регистров специальных функций (экранная копия)
На рис. 41 приведено окно состояния рабочих регистров, которые при
написании программы могут явно не использоваться. Но переменные, определённые в
программе, используют эти регистры в ходе выполнения алгоритма программы.
Рис. 41 - Окно состояния рабочих регистров (экранная копия)
Весь код программы разбит на четыре основных цикла (приложение Б):
§ Очистка памяти EEPROM;
§ Проверка наличия записей в EEPROM;
§ Опрос кнопок;
§ Опрос кода с декодера DTMF.
Остальную часть составляют подпрограммы. После инициализации переменных
программа переходит к проверке наличия записей в EEPROM и если номер уже записан,
то сразу переходит к анализу линии. Это произойдёт и в случае снятия напряжения
и подаче его вновь на макет устройства. Очистка EEPROM происходит в
принудительном порядке, удержанием кнопки SB3 при включении. После этого
происходит переход к циклу опроса кнопок для введения нового номера к запрету.
В остальных случаях происходит постоянный анализ кода с выхода декодера
DTMF. В первой из предполагаемых
ситуаций, когда абонент набрал номер, но он не совпал, программа очистит вторую
строку LCD-модуля и затем снова вернётся к анализу линии. Во втором случае,
когда набранный номер абонента совпал с запрограммированным, на выходе порта
PB2 формируется сигнал сброса в течении 1 с и затем вновь возвращается к чтению
данных с портов, запрограммированных на приём двоичного кода с декодера DTMF.
Результатом успешной работы программы среде Bascom AVR, является файл прошивки для микроконтроллера, который
в этой же среде компилируется в бинарный код. Полученный файл имеет расширение
имени файла *.hex. Загрузка в память микроконтроллера
осуществляется уже упоминавшейся программой Uniprof.
Заключение
В ходе выполнения дипломной работы были получены следующие результаты.
1. Проведен анализ конструкции и принципа работы абонентской
телефонной линии.
2. На основе проведенного анализа было спроектировано сервисное
устройство выборочного ограничения исходящей междугородной связи.
. Разработано программное обеспечение для микроконтроллера в среде
Bascom AVR.
. Проведено схемотехническое моделирование разработанного устройства
в программной среде Proteus 7.4 SP3.
. Проведено физическое моделирование и тестирование устройства.
Разработанное устройство имеет следующие достоинства:
· при выпуске устройства в производство, может иметь малый вес
и размеры при использовании корпусов микросхем поверхностного монтажа типа SO;
· устройство не вмешивается в протокол работы АТС и ТА, так как
имеет высокое входное сопротивление (около 22 кОм по постоянному току);
· низкое энергопотребление, измеряемое единицами миллиампер;
· может быть отконфигурировано при существующей физической
реализации в устройство другой сервисной функции телефонии, путём смены
дополнительного программного обеспечения;
· имеет простую настройку и малое количество элементов
управления.
Список литературы
1. Материалы
сервера. Анализ аналоговых телефонных сетей.
#"524561.files/image047.gif">
Графический алгоритм программы МК (подпрограмма 1)
Графический алгоритм программы МК (подпрограммы 2 и 3)
Приложение В
Порядок настройки разработанного устройства
§ Очистка телефонных номеров, введённых в энергонезависимую память
устройства:
При включении удерживать в течении 1 с. Кнопу SB3. После этого через 1 с.
Устройство автоматически перейдёт в главное меню ввода номеров.
§ Ввод нового номера к запрету:
Последовательным нажатием кнопки SB1 набрать нужную цифру номера и затем
нажать кнопку SB2 для ввода следующей цифры номера. Произвести эти действия
столько раз, сколько цифр содержится в номере к запрету.
§ Получение детальной статистики звонков для создания электронного архива
на компьютере:
При отключенном питании устройства и компьютера соединить их
нуль-модемным кабелем RS232. Затем в компьютерной программе сбора статистики
звонков, выставить правильное значение COM порта и следующие параметры обмена:
скорость обмена 9600 кбит/с, 8 бит данных, контроля чётности - нет, 1 стоповый
бит, управление потоком - нет.
§ Использование основного режима работы:
Просто включить устройство и при уже введённом номере к
запрету, если не используется передача данных на компьютер, наблюдать
отображение набираемых номеров на LCD-модуле устройства.