Смекни!
smekni.com

Апаратно–програмний комплекс GSM-МТМ (стр. 5 из 11)

Випадок коли абонент GSM телефонує в місто.

Мобільний телефон через інтерфейс RS232C та конвертор А4 надсилає програмі номер телефону користувача. Програма аназалізує таблицю відповідності номерів телефонів. У тому випадку коли номер телефону прописаний у таблиці комутатор А2 піднімає трубку на лінії МТМ і користувачеві подається звуковий сигнал (два коротких гудки). Після цього користувач повинен набрати у форматі DTMF номер телефону, куди він хоче зателефонувати. Після того як мобільний телефон повідомить через СОМ порт, що розмова завершилася комутатор A2 покладе трубку в мережі МТМ. Час розмови також фіксується і відображений у log.txt файлі, куди записуються всі вхідні та вихідні дзвінки у форматі:

початок розмови. тривалість (сек) вартість (коп) номер телф. GSM Напрямок дзвінка DTMF набір

Також ведеться облік використаних користувачем комплексу грошей. У тому випадку коли авансова сума внесена користувачем вичерпана, комплекс автоматично відмовляється обслуговувати такого користувача.


3. Практична частина

3.1 Підключення компонентів та настроювання апаратної частини

Відладка апаратної частини пристрою полягає у встановлені відповідності рівнів сигналів між мобільним телефоном та СОМ портом.

Вона проводиться при виготовленні комплексу один раз. Для цього використовується мікросхема MAX232 яка перетворює рівнень 5В у 12В і навпаки окремо для ліній Rx та Tх. Ця мікросхема являє собою генератор тактової частоти, помножувач напруги, та перетворювач змінної напруги в постійну. Вона підключається за стандартною схемою включення. Також необхідно встановити робочі режими на підсилюючих транзисторах, та використати стандартне включення DTMF мікроконтроллера.

Для того, щоб підключити роз'єм динаміка до телефонної лінії необхідно підключити його через резистор 100 Ом до напруги 5В а від резистора через конденсатор до телефонної лінії. Схема зображена на рис. 1. Таке підключення зумовлене специфікою побудови PC Speakerа на материнській платі. Його вихід зроблено за схемою з відкритим колектором.

Перевірити правильність підключення мобільного телефону до СОМ порта можна за допомогою програми HiperTerminal.


3.2 Розробка драйвера послідовного інтерфейсу

Драйвер повинен забезпечувати буферизований ввід-вивід з СОМ порта в програму. А після закінчення роботи програми відновлювати старий контролер переривань.

Інтерфейс драйвера з програмою складається з наступних функцій:

Іnstаllсом(comNo) – У залежності від номеру СОМ порту встановлює процедуру обробки апаратного переривання

OpenCOM(speed:byte) – готує СОМ порт для роботи для порту визначеного в процедурі InstallCOM визначає швидкість обміну даними, кількість стопових бітів, контроль передачі. Функція реалізує апаратний протокол встановлення зв'язку

Sread() – функція читає з програмного буфера символ, що надійшов, та видаляє його з буфера і передає програмі, що визвала цю функцію.

Swrite(b:byte) – процедура записує символ у програмний буфер для передачі його через СОМ порт, символ буде передано коли наступить переривання “буфер передавача порожній”.

CloseCOM() – закінчує роботу з СОМ портом на встановленій швидкості. Функція реалізує апаратний протокол закінчення роботи DTE та DCE обладнання.

RestoreCOM() – процедура проводити заміну процедури обробки апаратних переривань. Відновлює попередні настроювання, що були до початку роботи програми.

IsRing():byte – перевіряє чи був виклик з МТМ і якщо був виклик з МТМ те функція повертає число > 0 в іншому випадку функція повертає код 0.

Буфер для передачі має розмір 512 байт. Буфер для прийому даних має розмір 1024байти. Буферів з такими розмірами достатньо для забезпечення надійної передачі даних між мобільним телефоном та СОМ портом.

Тексти функцій приведені в додатку 4


3.3 Розробка програми bridge для комплексу МТМ↔GSM

Програма взаємодіє з драйвером і реалізує роботу комплексу. Текст програми приведений в додатках. Програма складається з наступних процедур та функцій:

Void main(void) – основна процедура з якої починається виконання програми. У цій процедурі спочатку викликається завантаження поточної конфігурації процедура getConfig() після чого проводитися ініціалізація мобільного телефону. Після ініціалізації програма переходить у режим очікування. У разі виклику з телефонних мереж програма викликає функції Void PhoneMobiline(), Void PhoneCity().

Int getUserID(int char) – ця функція визначає чи є код, який увів користувач МТМ або телефон, номер якого надійшов з GSM, у таблиці відповідності користувачів комплексу. Процедура також перевіряє значення авансової суми внесеної абонентом комплексу.

Void PhoneMobiline() – у цій процедурі реалізований алгоритм роботи комплексу у випадку коли дзвінок надійшов з GSM.

Void PhoneCity() – у цій процедурі реалізований алгоритм роботи пристрою у випадку коли дзвінок надійшов з МТМ.

Void StartToking() – продерура очікує коли встановиться зв‘язок з віддаленим абонентом, і інспектує час розмови. Після цього викликає функції SaveLog() та SaveMoney() для збереження інформації про розмову та авансовий внесок абонента.

Void SaveLog() – ця процедура відкриває файл Log.txt та записує туди стрічку результату розмови в форматі:

початок розмови. тривалість (сек) вартість (коп) номер телф. GSM Напрямок дзвінка DTMF набір

Void SaveMoney() – Процедура записує нове значення кредиту абонента комплексу у файлі Users.txt.

Формат файлу:

код № тел. GSM Вартість вхідного дзвінка з МТМ(за 1 хв) Вартість вихідного дзвінки з GSM (за 1 хв) Кредит наданий користувачеві комплексу в копійках(макс. 99999 коп) Напрямок дзвінка

Void getConfig() – Процедура занходить файл setup.cfg і завантажує з нього параметри програми. До параметрів входять:

Void SendStr() – ця процедура надсилає до мобільного телефону стрічку сиволів, по черзі викликаючи функцію swrite(char ch).

Крім основних функцій у програмі реалізований інтерфейс з користувачем через телефонну лінію. Для того, щоб використати допоміжні функції, які реалізовані у комплексі необхідно увести пароль, який записаний у файлі конфігурації setup.cfg. Для використання тієї чи іншої сервісної функції необхідно зателефонувати на комплекс з МТМ і після двох гудків увести значчення пароля. (пароль складається з цифр від 0..9), у випадку коли пароль був введений вірно, комплекс відповість двома короткими гудками і буде очікувати вводу сервісної функції. При одержанні значення (коду) сервісної функції комплекс одразу виконає її.

3.4 Програма обробки інформації про дзвінки

При експлуатації комплексу групою людей, виникає потреба у аналізі різного роду інформації з подальшим представленням рахунку клієнтам для оплати. Для аналізу табличних даних зручно використати Microsoft Access 2000, який є сам по собі універсальним редактором баз даних і найкаще підходить для проектування невеликих баз даних.

Обробка результатів комплексу здійснюється за наступним алгоритмом:

Вставити чисту дисекту типу FDD 3,5’’ у дисковод на комплексі;

Зателефонувати на комплекс;

Після запрошення (два коротких гудки) ввести пароль;

Після підтвердження (два коротких гудки) увести код сервісної функції. Якщо все зроблено правильно, то комплекс запише дані про користувачів та дзвінки на дискету FDD 3,5’’

На коп’ютері де всановлений Microsoft Accsess 2000 необхідно запустити програму GSM_MTM.mdb обробки телефонних дзвінків.

При завантаженні програми з’явиться стартова форма.

Програма складається з наступних підпрограм:

Підпрограма друку та перегляду звітів

Підпрограма аналізу інформації

Підпрограма сервісних функцій

Також у стартовій формі необхідно ввеси звітний період, тобто початкову та кінцеву дату звітного періоду.

Підпрограма сервісних функцій визивається при натисканні клавіші “Сервіс”. На екрані виводиться форма з сервісними функціями:


До сервісних функцій входять:

Імпорт даних у програму обробки дзвінків;

При виборі цієї команди виконується імпорт даних з дискети FDD3,5’’ у програму обробки. При цьому вважається, що після імпорту, дані на дискеті знищуються.

Експорт файлу користувачів

Програма обробки дзінків експортує таблицю з користувачами у зрозумілому для комплексу форматі у файлі users.txt.

Експорт файлу протоколу.

Ця функція реалізує перенесення даних з БД Access 2000 у текстовий файл. Вона реалізована для сусісності з майбутніми версіями та архівування даних. Програма експортує дані про дзвінки у текстовий файл log.txt

Також у цій формі запам‘ятовується виконання сервісних функцій.

Функція Аналіз

Після імпортування даних необхідно вибрати у основній формі підопцію “Аналіз”. Завантажиться форма з наступними сервісними функціями:

1. Показати користувачів у яких завдаток менше за 3 грн.

На екрані відобразиться відповідний запит

2. Показати файл протоколу за звітній період (звітній період вводиться в основній формі)

Інколи необхідно переглянути статистику або переконатися у правильній роботі комплексу. Тому зазвичай ця функція програми не використовується, але на прохання замовника не була видалена з робочої версії, оскільки комплекс працює у режимі тестування.