У статті детально розкриті розширені функціональні можливості GSM-модемів виробництва компанії «телеофіси», показано, що цими пристроями можна керувати віддалено, а також можна запрограмувати їх під завдання збору, обробки і передачі інформації через GPRS.
ВАТ «телеофіси», м.Москва
GSM-модеми давно стали звичним елементом систем автоматизації та телеметрії. Але поки ще не всі інтегратори і користувачі знають, що сучасні GSM-модеми вже перевищили стандартний і знайомий функціонал. Розглянемо нові корисні функ-ції на прикладі модемів марки TELEOFIS.
Мал. GSM-модем TELEOFIS RX608 # 8209; R2 (з вбудованим блоком живлення)
Інший часто виникає проблемою є складність програмування GSM-модему під завдання збору, обробки і передачі інформації через GPRS. # 8239; Модеми TELEOFIS мають вбудований інтерпретатор мови Python, що дозволяє реалізовувати рішення задач користувача безпосередньо в GSM-модулі.
Для передачі даних по TCP через GPRS скрипт на мові Python використовує вбудований в GSM-модуль TCP / IP-стек, призначений для забезпечення простої процедури управління TCP-со-єднаннями і передачею даних. Управління TCP-стеком здійснюється розширеним набором AT-команд, що включає в себе команди настройки, управління з-єднаннями та ін.
Нижче ми розглянемо докладніше ці та інші можливості нових модемів TELEOFIS.
Віддалене управління по TCP
Крім звичайного режиму роботи з AT-командами через COM-порт, GSM-модеми TELEOFIS мають можливість віддаленого управління через TCP-з'єднання в режимі TCPATRUN. При цьому логічний інтерфейс обробки AT-команд підключається безпосередньо до TCP-з'єднання.
Використання віддаленого управління дозволяє:
- оперативно і без виїзду на місце установки змінювати параметри роботи модуля;
- перевіряти і встановлювати швидкість порту;
- управляти роумінгом (вибір оператора);
- віддалено перезавантажувати модуль.
Більш простим і цікавим видається режим, коли модем підключається по TCP до заданого сервера. На комп'ютері можна встановити віртуальні TCP-COM-порти і приймати на них TCP-з'єднання від GSM-модему. При значній кількості пристроїв, що підключаються рекомендується застосування спеціалізованого серверного ПО, наприклад m2m.teleofis.ru.
Розглянемо процедуру роботи з TCPATRUN. # 8239; Насамперед необхідно встановити з'єднання GPRS. # 8239; Для цього контекст PDP її потрібно активувати:
Віддалене адміністрування через SMS
GSM-модемом можна дистанційно керувати за допомогою SMS-повідомлень в режимі SMSATRUN. # 8239; Пристрій наділене функцією, яка дозволяє йому віддалено виконувати AT-команди, відіслані в SMS-повідомленні. Відповіді на команди теж приходять через SMS.
Можливі два типи повідомлень: шифровані і нешифровані. Шифровані кодуються з використанням алгоритму MD5, що дозволяє виключити можливість несанкціонованого перехоплення повідомлень.
Функція переходу в режим дистанційної роботи по SMS виконується командою:
Текст SMS-повідомлення необхідно набирати символами в верх-ньому регістрі, додавати новий рядок (Enter) в кінці тексту не потрібно. При надходженні SMS в залежності від налаштувань команди AT # SMSATRUNCFG в порт буде виведено повідомлення. Наприклад, при відправці «AT»:
Відповідь (ОК) на команду приходить у відповідному повідомленні від GSM-модему.
Застосовуючи режим SMSATRUN, ви завжди будете мати доступ до налаштувань GSM-модему і зможете управляти модемом віддалено.
Мал. Інтерфейси взаємодії Python-скриптів з функціями GSM-модему:
MDM, MDM2 - два логічних інтерфейсу між скриптом і обработчиками АТ-команд; SER, SER2 - доступ до фізичних послідовним портам ASC0 і ASC1 відповідно; GPIO - управління лініями введення / виведення;
MOD - службові функції; IIC, SPI - реалізація інтерфейсів IIC і SPI на вільних лініях введення / виведення
Скрипти користувача. Вбудований інтерпретатор мови Python
GSM-модеми TELEOFIS здатні реалізувати логіку управління без використання зовнішнього мікроконтролера, шляхом завантаження призначених для користувача скриптів на мові високого рівня Python. Призначені для користувача скрипти є текстовими файлами, які зберігаються в незалежній пам'яті модему. Пам'ять являє собою файлову систему, яка дозволяє записувати і зчитувати файли з різними іменами на єдиному рівні (директорії не підтримуються).
Технічно призначений для користувача скрипт виконується у вигляді завдання вбудованої операційної системи, яка має найнижчий пріоритет, щоб не впливати на основні функції GSM / GPRS. Призначені для користувача Python-скрипти можуть взаємодіяти з функціями GSM-модему за допомогою спеціальних вбудованих інтерфейсів, опис яких представлено на схемі.
Призначені для користувача скрипти можуть застосовуватися для виконання таких завдань:
- моніторинг стану ліній введення / виводу і рівня сигналу на вході АЦП, а також управління ними за допомогою SMS-повідомлень, голосового виклику або через TCP-з'єднання;
- моніторинг місця розташування GSM-модему;
- організація прозорого каналу зв'язку з пристроями, що мають послідовні інтерфейси (RS # 8209; 232, RS # 8209; 485), через мережу Інтернет або CSD-з'єднання;
- дистанційне конфігурування GSM / GPRS-модему.
Наведемо приклад простої функ-ції на мові Python, що виконує управління LED індикатором:
IP Easy - вбудований TCP / IP-стек
Управління додатком через Інтернет, за допомогою GPRS-модему, дозволяє отримати доступ до нього в будь-якій точці земної кулі за вартістю GPRS-з'єднання. Вартість ця розраховується виходячи з обсягу переданих даних, а не часу з'єднання, що дозволяє додатку залишатися на зв'язку постійно і завжди бути готовим до прийому і передачі даних.
Однак у технології GPRS є і недолік. Оскільки передача даних здійснюється через мережу Інтернет, пристрій потребує мати власну реалізацію стека протоколів TCP / IP.
Крім стандартного набору протоколів TCP / IP, GSM-модеми також містять клієнти для протоколів HTTP, FTP і E # 8209; MAIL.
GSM-модеми TELEOFIS мають вбудовану підтримку мультиплексування послідовного порту. Це дозволяє розділити завдання користувача по трьом різним каналам обробки АТ-команд, а також отримати один додатковий порт для отримання налагоджувальної інформації, і все це на основі одного фізичного послідовного порту. Наприклад, можна вести передачу даних або голосовий виклик в одному каналі і одночасно працювати з АТ-командами по інших каналах (працювати з SMS, проводити моніторинг рівня сигналу мережі та ін.) Без застосування другого каналу RS # 8209; 232.
Зазвичай закриття з'єднання CSD відбувається в два етапи: спочатку GSM-модуль перекладається з режиму передачі даних в командний режим, а потім надсилається АТ-команда «повісити трубку» (ATH). Переклад модуля з режиму даних в командний режим здійснюється спеціальною послідовністю +++. Таким чином, на закриття з'єднання потрібно приблизно 3 с. У разі застосування мультиплексного протоколу немає необхідності переходити в командний режим, щоб послати АТH-команду, оскільки її можна послати по другому віртуальному каналу і завершити з'єднання практично миттєво.
Ще одним великим плюсом при використанні мультиплексування порту є можливість паралельно отримувати дані відразу з декількох каналів. Наприклад, по одному мультиплексированную порту йде прийом файлу великого розміру з FTP-сервера, а на інший віртуальний порт прийшло SMS-повідомлення, яке необхідно обробити. Таким чином, мультиплексування в GSM-модеми TELEOFIS дозволяє побудувати систему, де дані, що надходять з різних каналів, обробляються з високою швидкістю, де користувачеві забезпечені гнучкі можливості в роботі з джерелами даних.
Вбудований таймер перезавантаження
Основна причина зависання GSM-модемів - це перепідключення між базовими станціями. Навіть якщо модем встановити на нерухомому об'єкті, він буде періодично міняти базові станції. Справа в тому, що модем підключається до конкретної соте не тільки через рівень сигналу, але і через її завантаженості в конкретний момент часу. Ця та деякі інші причини можуть привести до зависання GSM-модему.
Практично у всіх сферах застосування від GSM-модемів потрібно стабільна і надійна робота, при цьому модем повинен бути доступний в будь-який момент часу. Для забезпечення надійної роботи модему рекомендується застосовувати режим періодичної перезавантаження GSM-модуля.
У модемах TELEOFIS періодична перезавантаження проводиться за допомогою вбудованого в GSM-модуль таймера перезавантаження. Контролер таймера перезавантаження незалежний від RF-частини GSM-модуля, тому в разі зависання останнього контролер залишається працездатним і перезавантажує модем.
Мал. GSM-модуль Telit GL868-DUAL