// установлюємо регістр керування перериваннями
//ICR - адреса регістра керування перериваннями
outp(port_adr+ICR, 1);
На цьому етап ініціалізації регістрів UART можна вважати закінченим. Тепер COM-порт готовий до обміну через нього даними з мобільним телефоном.
Ініціалізація мобільного телефону
Ініціалізація мобільного телефону здійснюється через передачу мобільному телефону АТ команд, які реалізовані в стандарті 07.07, 05.07 міжнародної організації ETSI 15.03.2000 року.
Для ініціалізації мобільного телефону завантажимо стандартну (заводську) конфігурацію параметрів стільникового термінального обладнання.
Для цього передамо мобільному телефону команду ATZ. Якщо ініціалізація пройшла успішно мобільний телефно поверне “ОК”. Після цього задамо режим передачі номеру телефону на СОМ порт: АТ+CLIP = 1
Список основних команд приведений у пункці 2.2 цього розділу [4].
Після ініціалізації мобільного телефону, комплекс переходить у режим очікування дзвінків. Якщо у процесі роботи мобільний телефон повернув на СОМ порт команду <ОК>, то команда розпізнана, виконана без помилок.
Завершення програми
Для завершення комунікаційної програми, що використовує переривання, необхідно скинути сигнали DTR і RTS і заборонити через контролер переривань переривання від COM-порту:
// зчитуємо стан регістра маски переривань
mov dx,21h
in dx,al
// забороняємо переривання від порту COM1
or al,00010000b
// записуємо нове значення в регістр
// маски переривань
out dx,al
Потім потрібно відновити старий вектор оброблювача переривань і вийти з програми. Якщо програму завершити некоректно, то при наступних завантаженнях драйвер СОМ порту буде працювати некоректно.
2.4 Аналіз елементної бази, інтерфейси комплексу
При виборі елементної бази враховувалась ціна деталей. Вибір зроблено на мобільному телефоні Motorola який підтримує інтерфейс через СОМ порт на швидкості 9600кбіт/с, Система команд управління мобільним телефоном схожа з системою HYPES і визначена міжнародною організацією ETSI.
Для управління мобільним телефоном використовується інтерфейс RS232C через СОМ порт комп'ютера. Швидкість 9600 є відносно малою швидкістю обміну даними, тому ЕОМ використовується малопотужна IBM PC 486DX4. Вона має менші габарити і вартість. Але за рахунок цього збільшились вимоги до часових характеристик програмного забезпечення оскільки без втрат необхідно передати та прийняти дані з мобільного телефону. Для того, щоб була можливість впевниного прийому–передачі даних необхідно використовувати буферизований ввід–вивід. Такий (буферизований) ввід–вивід досягаєтсья за допомогою використання апаратних переривань. При реалізації апаратного буфера для мікроконтроллера UART16xxx без помилок реалізована лише мікросхема UART1685A, яка не використовується в комп'ютерах IBM PC486DX2, тому для виконання поставленого завдання потрібно реалізувати програмний буфер даних. Його можна реалізувати написавши додатковий драйвер СОМ порту. Тобто написати спеціальну програму, яка обслуговуватиме апаратне переривання.
Використавши мікроконтроллер DTMF cерії M8870 фірми Motorola, та DTMF набір з телефонного апарату комплекс реалізує інтерфейс між користувачем. У якості узгоджуючого пристрою використовується мікросхема MAX232. У якості підсилювачів телефонного сигналу використовуються підсилювачі на базі транзисторів серії КТ1023.
Для розділення вхідних та вихідних сигналів, та узгодження НЧ сигналу з телефонною лінією використовується узгоджуючий трансформатор.
Опис інтерфейсів комплексу
Живлення
Комутуюча плата комплексу вмонтована вередину системного блоку комп’ютера IBM486DX4, тому її живлення здійснюється безпосередньо від системного блоку живлення. Системний бок живлення живиться від міської електромережі з напругою 220В, 50Гц. Потужність системного блоку з комутуючою платою < 100Вт
Роз‘єм RJ11
Для підключення тональної телефонної лінії або міні АТС у комплекс вмонтований роз’єм RJ11. Структурна схема цього роз’єму приведена на рис 1.
рис. 1 Підключення телефонної лінії до роз’єму RJ11
Підключення мобільного телефону до СОМ порту
рис. 2. Стандартний роз’єм мобільного телефону
В мобільний телефон вмонтований роз’єм приведений на рис. 2. Позначення виводів цього роз’єму приведене в таблиці 1.
Таблиця 1. Позначення та назви сигналів для мобілього телефону
№ | Назва | Функція | Вхід/вихід |
1 | DC in | DC для заряда батереї | Вхід/вихід |
2 | Data in | Прийом даних | Вхід |
3 | DG | Цифрова земля | |
4 | Data out | Відправка даних | Вихід |
5 | Vcc | +5V вихід | Вихід |
6 | Test | Ключ для виключення телефону підключивши +5V. | Тест |
7 | Mute | 0 - номрмальний, 1- музика при визові | |
8 | Ext/Int | Протативний / віддалений вхід | |
9 | GND | Аналогова земля | |
10 | Accsessory | Зв’язаний з мікрофоном / динаміком | |
11 | BF in | BF вхід | Вхід |
12 | BF out | BF вихід | Вихід |
Для СОМ та LPT портів приведені лише схематичні позначення, оскільки вони входять до стандартного комплекту системного блоку IBM486DX4
Таблиця 2. Позначення виводів для СОМ порта:
№ | Назва | Функція | Вхід/вихід |
1 | DCD | Детектор прийнятого з лінії сигналу(Data Carrier Detect, DCD) | Вхід |
2 | RD | Прийняті дані(Received Data, RD) | Вхід |
3 | TD | Передані дані(Transmitted Data, TD) | Вихід |
4 | DTR | Готовність вихідних даних(Data Terminal Ready, DTR) | Вихід |
5 | SG | Сигнальне заземлення(Signal Ground, SG) | - |
6 | DSR | Готовність даних(Data Set Ready, DSR) | Вхід |
7 | RTS | Запит для передачі(Request to send, RTS) | Вихід |
8 | CTS | Скидання для передачі(Clear to Send, CTS) | Вхід |
9 | RI | Індикатор виклику(Ring Indicator, RI) | Вхід |
Таблиця 3. Позначення виводів для LPT порта:
№ | Назва | Функція | Вхід/вихід |
9 | D7 | D7=1 підняти трубку в МТМ, D7=0 – опустити трубку в МТМ | Вихід |
10 | ACK | Четвертий розряд цифри ДТМФ декодера | Вхід |
11 | BUSY | Строб ДТМФ декодера | Вхід |
12 | PE | Третій розряд цифри ДТМФ декодера | Вхід |
13 | SCLPT | Другий розряд цифри ДТМФ декодера | Вхід |
15 | ERROR | Перший розряд цифри ДТМФ декодера | Вхід |
20 | GND | Сигнальна земля | - |
Інтерфейс з комутуючою платою є внутрішній, але для розуміння алгоритму роботи комплексу приведемо позначення виводів на комутуючій платі
Таблиця 4. Комутуючий пристрій
№ | Назва | Функція | Вхід/вихід |
1 | BF out | Аналоговий вихід | Вихід |
2 | BF in | Аналоговий вхід | Вхід |
3 | K1 | Сигнал підняти | Вхід |
4 | RI out | Сигнал дзвінок з МТМ | Вихід |
5 | DTMF STROBE | Строб ДТМФ декодера | Вихід |
6 | DTMF D1 | Перший розряд цифри ДТМФ декодера | Вихід |
7 | DTMF D2 | Другий розряд цифри ДТМФ декодера | Вихід |
8 | DTMF D3 | Третій розряд цифри ДТМФ декодера | Вихід |
9 | DTMF D4 | Четвертий розряд цифри ДТМФ декодера | Вихід |
10 | ком. МТМ | D7=1 підняти трубку в МТМ, D7=0 – покласти трубку в МТМ | Вихід |
Алгоритм роботи комплексу приведений в альбомі схем. На функціональній блок-схемі зображені:
А1 – блок генерування сигналу дзвінок, A2 – блок підняття та опускання трубки, A3–блок введення виведення та підсилення аналогових сигналів, A4– конвертор TTL / RS232C, A5– DTMF контролер, A6 –живлення комплексу, A7 – зарядний та комутуючий пристрій, 1– кабель з’єднувальний мобільного телефону з комутуючою платою, 2 – кабель з’єднувальний комутуючої плати з СОМ портом, 3–кабель RJ11 з’єднує телефонну лінію з комутуючою платою, 4– кабель з’єднання комутуючої плати з LPT портом.
Розглянемо два випадки:
Пристрій очікує дзвінка з міста;
У разі надходження дзвінка з міста, спрацьовує блок A2, після чого в ТЛ (телефонна лінія) подається звуковий сигнал. Почувши звуковий сигнал (два коротких гудка) користувач повинен набрати код. Набір проводитися у тональному режимі з абонентського телефону. При натисканні користувачем клавіші, спрацьовує DTMF контролер (А5), який на LPT порт виводи подає розкодований двійковий код набраної клавіші. Програма оборобки зчитує з LPT порту кілька таких сигналів, запам’ятовує їх. Після того як ідентифікаційний код користувача комплексу набраний програма переглядає таблицю всіх кодів абонентів комплексу і знаходить запис з даним кодом. У тому випадку, коли користувач не набрав код, або набрав його неправильно подається звуковий сигнал (три гудка), що сповіщає про те, що система відмовила користувачу в доступі. Після цього спрацьовує блок В, який кладе трубку і система переходить у початковий стан. Якщо користувач набрав правильний код, програма посилає в порт СОМ команду АТD###########; де ########### - номер телефону, що відповідає набраному користувачем коду. Мобільний телефон одержавши таку команду з СОМ порта негайно починає її виконувати. Тобто набирає номер телефону. Попередні установки мобільного телефону настроєні таким чином, що після того, як номер телефону набраний низкочастотні сигнали подаються з мобільного телефону у телефонну лінію мережі МТМ, тобто відбувається комутація. Програма обробки телефонних дзвінків перевіряє чи віддалений абонент відповів на телефонний дзвінок. У тому випадку коли абонент відповів на телефонний дзвінок Якщо так, то відбуваєтсья телефонна розмова двох абонентів. Після закінчення розмови мобільний телефон передає комплексу час початку та кінця розмови, і за допомогою комутуючого блока В комплекс кладе трубку МТМ. У мережі GSM мобільний телефон кладе слухавку автоматично.