Михаил Туев, RA9FTM. Простой GSM-FXS шлюз (курсовая работа).
Целью работы являлось создание простого интерфейсного модуля к PABX (Private Automatic Branch Exchange – мини АТС) на основе AVR-микроконтроллера, эмулирующего телефонную линию для обеспечения возможности установления соединения через абонентскую GSM радиостанцию сотовой сети - GSM-шлюза с портом FXS (Foreign Exchange Subscriber). Интерфейсный модуль должен подключаться к PABX и радиостанции штатными соединителями (вмешательство в схемотехнику сертифицированных устройств означает формальный запрет их использования на Российских сетях общего пользования вследствие автоматического прекращения действия в отношении таких устройств сертификатов соответствия установленным нормам). Модуль может быть применен для организации запасного канала связи или для телефонизации удаленных объектов (загородных домов, дач и т.п.), возможно его использование так же и для минимизации затрат на сотовую связь. Питание модуля должно осуществляться от одного источника 13-15 Вольт для обеспечения возможности резервного питания от аккумуляторной кислотной батареи.
Выбор элементов системы и исходные данные.
В качестве радиостанции GSM, из соображений минимальной стоимости и доступности, использован аппарат фирмы SIEMENS типа А-40. Последний снабжен 12-ти пиновым разъемом для подключения аксессуаров, и имеет возможность обмена данными (управления) по последовательному интерфейсу (с уровнями, близкими к уровням ТТL). Назначение выводов разъема описано в [8] и приведено в табл. 1.
Номер вывода (Pin Nr) |
Наименование (Name) |
Направление Сигнала (IN/OUT) |
Назначение |
1 |
GND |
Общий провод (минус питания) |
|
2 |
SB |
I/O |
Управление схемой заряда (не используется) |
3 |
POWER |
I |
Вход напряжения заряда батареи |
4 |
FBatt+ |
O |
В модели SIEMENS A-40 вывод не задействован (свободен) |
5 |
TX |
O |
Линия передачи данных к внешнему устройству (последовательный порт) |
6 |
RX |
I |
Линия приема данных от внешнего устройства (последовательный порт) |
7 |
ZUB_CLK |
I/O |
Порт синхронизации периферии (DTC при передаче данных) |
8 |
ZUB_DAT A |
I |
Сигнал включения внешних устройств (CTS при передаче данных) |
9 |
GND_MIC |
Общий провод внешнего микрофона |
|
10 |
HF_MIC |
I |
Сигнальный провод внешнего микрофона |
11 |
AUDO |
O |
Выход на внешний громкоговоритель |
12 |
GNDA |
O |
Выход на внешний громкоговоритель |
Таблица 1. Выводы разъёма радиотелефона Siemens A40.
Собственно устройство выполнено на базе микроконтроллера фирмы ATMEL AT90S2313. Данный чип, хотя и является несколько устаревшим по современным меркам вариантом микроконтроллера, тем не менее содержит достаточные для решения поставленной задачи объемы ПЗУ и ОЗУ, а так же - снабжен встроенным последовательным портом, имеет два внешних прерывания и широкий спектр функциональных возможностей [6]. Запись управляющей микропрограммы осуществляется путем непосредственного подключения выводов микроконтроллера к LPT-порту компьютера. (Рис. 1). При этом для управления процессами записи-чтения использовалось доступное программное обеспечение [3] (программа «Uniprof»): скрин-шоты основных окон программы представлены на рис 2,3.
Рис. 1. Пример подключения контроллера AT90S2313 к LPT-порту IBM-совместимого компьютера для записи управляющей микропрограммы. |
Рис. 2. Скрин-шот основного окна программы «Uniprof» для управления записью-чтением внутренней Flash памяти микроконтроллера.
Рис. 3. Скрин-шот окна конфигурации подключения выводов микроконтроллера программы “Uniprof” |
Поскольку радиотелефоны А-40 при включении питания имеют установленную по умолчанию скорость передачи данных по последовательному порту 57600 бит/сек при асинхронном режиме передачи, - к точности формирования длительности посылок предъявляются достаточно высокие требования. Поэтому частота кварцевого резонатора, определяющая тактовую частоту процессора и тактирование встроенного последовательного порта, выбрана равной 4.608 МГц, - при такой частоте, ошибка формирования длительности битов на указанной скорости - отсутствует.
Как оказалось, GSM-радиотелефоны SIEMENS старых моделей, в т.ч. и А-40, по умолчанию общаются с внешними устройствами по определенном протоколу, который известен как «BFB». В [4] и [5] приводятся некоторые результаты эмпирического исследования данного протокола, откуда следует, что каждая команда-посылка имеет структуру:
[type] [len] [chk] [data] <CR>,
где:
- параметр [type] определяет тип команды (тип данных в поле [data]), например:
- параметр [Len] - содержит количество следующих байт поля [data], включая символ <CR> (значения от 1 до 32 максимум),
- параметр [Chk] – своеобразная контрольная сумма, равная результату сложения «по модулю два» первых двух параметров: [Chk]=[type] XOR [len].
На каждую правильно сконфигурированную команду процессор радиотелефона выдает ответ-отклик определенного формата, команды с ошибками формирования (например ошибки в байтах длины или контрольной суммы) игнорируются. Функционал АТ-команд, применяемых для управления встроенными контроллерами сотовых телефонов определен стандартом ETSi 07.07 [9]. Их конкретизированный перечень для радиотелефонов SIEMENS приведен в документации фирмы, например в [7]. Легко просматривается почти полная аналогия с АТ-командами, используемыми для управления телефонными модемами передачи данных.
Хотя данный радиотелефон Siemens A40 легко переводится в режим общения «обычными» АТ-командами (т.е. без необходимости посылать каждый раз преамбулу протокола BFB) и на сниженной скорости, делать это не имеет особого смысла, т.к. потеря питания возвращает процессор аппарата в исходное состояние и потребовалось бы каждый раз, при включении радиотелефона, проводить его инициализацию.
Изучение форматов ответных сообщений процессора радиотелефона на посылаемые команды было проведено опытным путем, - при подключении телефона (через преобразователь уровней на ИС MAX232) к последовательному порту компьютера, на котором запускалась обычная терминальная программа. АТ-команды, которые использованы для реализации функций разрабатываемого модуля приведены в таблице 2.
АТ-команда |
описание |
результат (ответ процессора А-40) |
|||||||||
[06] [04] [02] <ATA> [0D] |
Установить соединение (по входящему вызову) |
[06] [06] [00] [0D] [0A] <OK> [0D] [0A] |
|||||||||
Сообщение о поступившем входящем вызове |
[06] [08] [0E] [0D] [0A] <RING> [0D] [0A] |
||||||||||
Сообщение о завершении соединения |
[06] [0E] [08] [0D] [0A] <NO CARRIER> [0D] [0A] |
||||||||||
[06] [04] [02] <ATH> [0D] |
Разорвать связь |
[06] [06] [00] [0D] [0A] <OK> [0D] [0A] |
|||||||||
[06] [*] [06 XOR *] <ATD номер;> [0D] |
Набрать номер [*] – кол‑во цифр в номере + 6 |
[06] [06] [00] [0D] [0A] <OK> [0D] [0A] |
|||||||||
[06] [08] [0E] <AT+CPAS> [0D] |
Запросить статус телефона
|
[06] [0A] [0C] [0D] [0A] <+CPAS: N> [0D] [0A] |
Таблица 2. AT-команды, используемые в управляющей программе микроконтроллера.
Описание принципиальной схемы интерфейсного модуля.
Принципиальная схема представлена в Приложении 1 (69 kb, pdf) . Напряжения +5 и +12 Вольт, необходимые для питания элементов схемы формируется двумя стабилизаторами DA1 и DA2. Принимаемый НЧ-сигнал, с контактов 11 и 12 разъема радиотелефона, через согласующий трансформатор подается на базу транзистора VT2, с коллектора которого поступает прямо в порт PABX. Резистор R6 регулирует уровень этого сигнала. Схема на транзисторе VT3 выполняет роль электронного дросселя, несколько уменьшающего шунтирование НЧ-сигнала, поступающего от абонента PABX.
На микрофонный вход радиотелефона подается сумма сигналов, снимаемых с эмиттера и коллектора VT2. Поэтому НЧ-сигнал, поступающий от радиотелефона на базу этого транзистора в микрофонную цепь попадает уже существенно ослабленным (с коллектора он снимается в противофазе, а с эмиттера в фазе с источником), что предотвращает появление чрезмерного эха на стороне абонента GSM. Сигнал от абонента PABX такого ослабления не испытывает.
К сожалению таким простым способом подавить нежелательное проникновение мешающего принятого сигнала на микрофонный вход до действительно необходимого уровня не удается.[примечание 1] Баланс напряжений, подаваемых на микрофонный вход, (подавление эха) настраивается резистором R9, при этом громкость принимаемого сигнала (резистор R6) и сигнала на микрофонном входе радиотелефона (резистор R13), следует выставлять на минимально необходимые уровни. Необходимо отметить, что дискомфорт, вызванный наличием эха, является субъективным фактором и существенно зависит от величины задержки прохождения разговорного сигнала (при местных линках – основной вклад в эту задержку вносит время преобразования аналогового сигнала в цифровую форму и обратно, которое происходит в оборудовании GSM), - при использовании данного модуля он в большинстве случаев находится на терпимом уровне, с которым можно смириться.
Схема определения занятия линии (микротелефонная трубка взята) выполнена на транзисторе VT1: ток протекающий по переходу база-эмиттер открывает транзистор и сигнал логического нуля поступает на вывод порта PD5 микроконтроллера.
Вызывной сигнал, при поступлении вызова со стороны сети GSM, формируется простейшим преобразователем напряжения (ключ VT4 и трансформатор Т2). Поскольку подавляющее большинство известных PABX имеет электронные вызывные цепи, срабатывающие по напряжению и не анализирующие специально частоту вызывного сигнала, появилась возможность уйти от частоты, установленной ГОСТ 7153 в 25 Гц и минимизировать схему и размеры преобразователя. Ключ на транзисторе VT8 включает реле Р1, которое и подает вызывной сигнал в порт PABX.
В качестве DTMF декодера (который служит для приема номера, набираемого абонентом PABX при инициировании исходящего вызова через сеть GSM) использован готовый блок DTU-2 (Приложение 5 (75 kb, jpg) ) фирмы KENWOOD, применяемый в УКВ-радиостанциях ТК-708. Он содержит, в т.ч., собственно ИС DTMF-приемника и кварцевый резонатор на частоту 3.579 МГц. Этот блок без существенного изменения схемы может быть заменен любой микросхемой, выполняющей функции декодирования DTMF-сигналов (например М8870). Тетрада данных, соответствующая декодированной цифре, подается на порты РВ0-РВ3 микроконтроллера, а строб-сигнал, во время действия которого полученный код считается истинным, – на вход внешнего прерывания PD2.
Сигналы «ответ станции» и «занято» при необходимости формируются микроконтроллером на выводе порта PD4 и подмешиваются в разговорный тракт путем подачи на свободный вывод вторичной обмотки трансформатора Т1. Уровень сигнала «ответ станции» выбран таким, что бы его присутствие не мешало определять первую цифру набора.[примечание 2] Частота стандартна – около 400 Гц.
В процессе проведения работы выяснилась невозможность питания радиотелефона (при замене внутренней аккумуляторной батареи радиотелефона внешним источником питания) непосредственно от той же линии питания, что и разработанный интерфейсный модуль, в виду ощутимой наводки от собственного УКВ‑передатчика радиотелефона на разговорный тракт. Оказалось необходимым обеспечить гальваническую развязку контактов питания радиотелефона от общего провода.
Поэтому для организации внешнего питания радиотелефона применен простейший преобразователь напряжения (Приложение 2 (25 kb, pdf) ), выполненный на ИС КР1211ЕУ1. Преобразователь выполнен по типовой схеме [1], [2] и особенностей не имеет.
Преобразователь внешнего питания радиотелефона и интерфейсный модуль получают напряжение от стандартного блока бесперебойного питания, применяемого в системах тревожной сигнализации, обеспечивающего нормальное функционирование всего устройства при временном пропадании питающей сети.
Рис. 4. Внешний вид макета интерфейсного модуля (GSM шлюза).
Рис. 5. Общий вид готового блока интерфейсного модуля (GSM-шлюза), подключенного к мини-АТС.
Описание работы программы.
Исходный текст управляющей программы представлен в Приложении 3. Приложение 4 содержит таблицу кодов в HEX формате.
Рабочий цикл начинается с инициализации встроенных устройств и портов, после чего проверяется сигнал на входе PD5 состояния занятия линии PABX, а также проверяются данные, приходящие по последовательному порту.
При поступлении в последовательный порт микроконтроллера сообщения «RING» на некоторое время включается реле P1, управляемое портом PD6 микроконтроллера и в это же время на порту PD5 генерируется сигнал с частотой 560 Гц, необходимый для работы преобразователя вызывного сигнала. Таким образом сигнал вызова поступает в PABX.
При обнаружении занятия линии, проводится запрос через последовательный порт радиотелефона о его состоянии командой проверки статуса (в т.ч. – тем самым еще и проверяется наличие физического присоединения радиотелефона к модулю). Если отклик не был получен, микроконтроллер генерирует сигнал «занято». При получении отклика, в зависимости от результата, - либо устанавливается входящее соединение (если перед этим было получено сообщение «RING» и присутствует статус состояния вызова), либо генерируется сигнал «ответ станции» с переходом в режим приёма цифр DTMF (в случае. если абонентом PABX инициируется исходящее соединение).
В последнем случае, при подаче сигнала «ответ станции», микроконтроллер готов к приёму номера с DTMF приёмника. При получении первой цифры сигнал «ответ станции» выключается и инициируется пятисекундный таймер, который перезапускается каждый раз при приеме очередной цифры. По переполнению этого таймера, программа будет считать, что набор номера абонентом завершен и в радиотелефон будет отправлена команда набора, содержащая все принятые цифры. Специально задействован DTMF-код символа “#”, который используется для немедленной отправки команды набора номера без ожидания истечения пятисекундной паузы. Символ “*”, заменяется при отправке команды, на символ “+”, используемый в GSM сетях перед набором международных идентификаторов. При поступлении DTMF-кодов символов “A”,”B”,”C”,”D”, а также при приходе, первым после занятия линии, кода символа “#”, микроконтроллер генерирует сигнал «занято» и дальнейший набор не воспринимается.
При уже установленном соединении, микроконтроллер проверяет последовательный порт на предмет получения сообщения «NO CARRIER» и в случае его поступления, генерируется сигнал «занято».
В любом случае при освобождении линии, микроконтроллер отправляет в радиотелефон команду завершения GSM соединения.
ЛИТЕРАТУРА
[1] Подавление эха в данной схеме скорее всего может быть несколько улучшено увеличением питающего напряжения разговорной схемы, - однако эта возможность не исследовалась.
[2] При изготовлении макета исторически так сложилось, что вход DTMF-декодера оказался подключен непосредственно к порту внешней линии PABX, хотя наиболее логичным представляется его подключение в точку соединения С7 и R13, - при этом мешающее воздействие сигнала «ответ станции» будет минимизировано.