Передовые JAVA-модули Cinterion.
Особенности программирования

№ 3’2013
PDF версия
Java — динамично развивающийся язык программирования с почти 20-летней историей. Будучи разработанным в начале 90-х годов для управления электробытовыми приборами, сегодня он с легкостью обрабатывает 3D-модели. Java подразделяется на Java SE, EE и ME. В статье речь пойдет о Java ME (Micro Edition) — встраиваемой платформе, предназначенной для мобильных устройств, а также будут рассмотрены возможности и перспективы GSM-модулей Cinterion серий Evolution Java последнего поколения: 3G-модуля EHS5 и бюджетного 2G-модуля BGS5.

Java занимает первое место в ежемесячном рейтинге популярности средств программирования Tiobe Programming Community Index. В компании Tiobe считают, что популярность Java растет, скорее всего, благодаря успеху Android-устройств. По данным за август 2013 г. у Java рейтинг популярности 15,978%, а у С — 15,974% (рис. 1).

Использование Java отделяет процесс разработки программного обеспечения от циклов разработки аппаратного обеспечения, что обеспечивает высокую гибкость стратегий разработки продуктов и выхода на рынок. Java может быть внедрена в различные М2М-системы в самых разных отраслях. Кроме того, язык является кроссплатформным, что является значительным плюсом для программистов.

Рейтинг популярности языков программирования

Рис. 1. Рейтинг популярности языков программирования

Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Java-приложения обычно компилируются в специальный байт-код и работают на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры.

Java ME разработана для встраиваемых систем и применяется в промышленных компьютерах, контроллерах в конфигурации CDC (Connected Device Configuration). Для устройств с ограниченными ресурсами, такими как беспроводные модули, разработана аппаратная конфигурация CLDC (Connected Limited Device Configuration). Минимальные требования CLDC 1.1:

  • процессор 16,32-бит с частотой от 16 МГц;
  • ПЗУ 160 кбайт;
  • ОЗУ 192 кбайт;
  • низкое энергопотребление;
  • подключение к любому виду сети.

В отличие от мобильных телефонов, устройства без экранов должны соответствовать профилю IMP, который содержит в себе аналогичный набор библиотек за исключением графических. Аппаратная часть GSM-модулей Cinterion с Java соответствует CLDC 1.1 HI. Connected Limited Device Configuration HotSpot Implementation Virtual Machine — высокопроизводительная виртуальная Java-машина для устройств, ограниченных в ресурсах, разработанная компанией Oracle. Программная часть всех выпускаемых сегодня GSM-модулей Cinterion с Java соответствует профилю IMP-NG (NEXT Generation) c поддержкой I2C, SPI, эмуляторов АТ-команд, безопасных соединений и протоколов (HTTP) и др.

 

Cinterion — первый разработчик Java-продуктов

Первыми в мире, кто применил Java ME в GSM-модуле, была компания Siemens (сегодня Gemalto). Более 10 лет назад Siemens представила свой первый GSM-модуль TC45 со встроенной Java-машиной; прогресс не стоит на месте — GSM-модули совершенствуются, выпускаются новые, более производительные, функциональные и современные. В свою очередь развивается линейка Java-модулей Cinterion М2М Evolution (рис. 2). И, что характерно, Java появляется в большем количестве в новых продуктах Cinterion, включая 3G-модули. Обновляется в модулях и Java. В 2010 г. в связи с приобретением Sun Microsystems корпорацией Oracle Java получила новый импульс для развития и была версия 7.

Серия Cinterion М2М Evolution (GSM-модули с Java)

Рис. 2. Серия Cinterion М2М Evolution (GSM-модули с Java)

 

Новые GSM модули BGS5 и EHS5

Новые компактные модули Cinterion серии М2М Evolution BGS5 и EHS5 созданы в едином форм-факторе и на одной платформе. Платформа включает в себя новую Java-концепцию — мультимидлетность, то есть возможность одновременного запуска и работы нескольких мидлетов (Java-приложений). Модули устанавливают надежные TCP/IP-соединения благодаря обновленной политике безопасности (TLS/SSL-шифрование) и могут безопасно обновляться по беспроводным GSM-каналам (встроенное программное обеспечение — FOTA, Java-приложения — OTAP, теперь и по HTTPS). Использование стандартных методов разработки отделяет процессы получения разрешений на использование решения от процесса разработки программного обеспечения, что позволяет распараллелить процессы и сокращает время вывода изделия на рынок.

Модули выполнены на базе процессоров ARM11 (520 MГц), имеют встроенный расширенный TCP/IP-стек и оснащены интерфейсами: USB 2.0; два UART; 16 GPIO; ADC; I²C; один цифровой (аудио).

3G-модуль EHS5, в отличие от 2G-модуля BGS5, функционирует на базе HSPA + Intel-чипсета и относится к новейшему поколению модулей серии Evolution, которое характеризуется высокой скоростью передачи данных: до 7,2 Мбит/с (UL) и до 5,76 Мбит/с (DL). Если сравнивать с ранее упомянутым модулем TC65i:

  • на 68% выше производительность;
  • на 58% быстрее TCP/IP время обращения;
  • на 66% быстрее время передачи данных (открытие TCP/IP-сессии).

 

Компоненты Java-среды на GSM-модулях Cinterion

Java ME делится на наборы прикладных программных интерфейсов (API), конфигурации, профили и дополнительные пакеты, например CLDC и MIDP (Mobile Information Device Profile — профиль для мобильных информационных устройств). Конфигурация для мобильных устройств называется CLDC (Connected Limited Device Configuration) и является фундаментальной составной частью архитектуры платформы Java ME.

Java-компоненты 3G модуля EHS5

Рис. 3. Java-компоненты 3G модуля EHS5

На рис. 3 схематично представлены Java-компоненты новых модулей BGS5 и EHS5. Приведем некоторые пояснения:

  • JVM (Java Virtual Machine) — виртуальная Java-машина для запуска мидлетов. Мидлетами называются приложения Java ME.
  • JSR 139 (Java Specification Request) CLDC 1.1 — конфигурация CLDC и профиль MIDP1.
  • JSR 228 IMP-NG — API профиля информационного модуля нового поколения (TCP/IP и ASC0/1).
  • JSR 75 FileConnection — работа с файловой системой модуля.
  • ATCommand— API-интерфейс Java к синтаксическому AT-анализатору. Поддерживает выполнение АТ-команд аналогично управлению модулем через последовательный интерфейс.

Разработчики ПО могут использовать только те API, которые аппаратно поддерживаются модулем (по шине I2C/SPI, контактам GPIO и др.):

  • I2C/SPI API.
  • GPIO API.
  • ADC/DAC API — считывание значений сигнала со входов АЦП и управление широтно-импульсной модуляцией (ШИМ) выходов ЦАП.

Это позволяет более эффективно использовать JVM, так как сокращает размер библиотек и не вводит в заблуждение программистов.

Программистами Cinterion написаны следующие собственные библиотеки:

  • cinterion.io — классы доступа к функционалу модуля.
  • c.c.location — классы для работы с GPS-навигацией/тригонометрическими вычислениями.
  • c.misc — другие классы, например Watchdog.

К новым Java API в модулях BGS5 и EHS5 можно отнести следующие:

  • JSR177 Security&Trust — поддержка криптографических сервисов.
  • JSR280 XML — «парсинг» и создание XML.
  • Передача данных между мидлетами (PipeConnections, AT^SJAM) и «внутри» мидлетов; двунаправленные потоки; принцип «клиент–сервер».

JSR177 Security & Trust относится к стандартным API J2ME. В принципе модель безопасности в GSM-модулях Cinterion с Java охватывает две основные области. Одна из них — это обеспечение безопасных соединений для передачи данных мидлетов (HTTPS, защищенное соединение). Вторая — это выполнение подписанных/неподписанных мидлетов. Некоторым приложениям (мидлетам) требуется доступ к файловой системе для своей работы. Однако модель безопасности MIDP требует, чтобы приложение было подписано, ибо в противном случае мидлет не сможет получить доступ к закрытым функциям и не будет работать. Сертификаты копируются через последовательный интерфейс во flash-память модуля.

 

Средства разработки

Cinterion выпускает программный инструментарий CMTK (Cinterion Mobility Toolkit), интегрируемый в свободно распространяемую среду разработки Java IDE Netbeans (Oracle) или Eclipse (IBM). Откомпилированные Java-приложения сохраняются в виде файлов *.jar. С помощью пакета Module Exchange Suite (MES) или по радиоканалу производится копирование файла *.jar во flash-память модуля. Наличие файла *.jad также является обязательным. В нем содержится информация о фактическом содержимом соответствующего файла *.jar (включая имя файла, размер, версию и т.д.). В программе Cinterion MES при отключении функции доступа к модулю с помощью команды AT^SJSEC доступ к файловой системе модуля блокируется.

  • Свободно распространяемый (бесплатный) компилятор.
  • Встроенная flash-память (8 Мбайт в модуле EHS5, 4 Мбайт — в BGS5).
  • Собственные библиотеки (API). В новых модулях Cinterion все интерфейсы, в том числе USB, стали доступны через Java API.
  • Постоянно совершенствуемый программный инструментарий CMTK.
  • Многозадачность и мультиапплетность играет немаловажную роль в современных программных мобильных решениях. В модулях последнего поколения одновременно можно запускать несколько многопотоковых мидлетов.
  • Возможность передачи данных между мидлетами.
  • Высокий уровень безопасности Java-приложений обеспечивается защитой от несанкционированного запуска и копирования, от запуска нескольких приложений и защитой передачи данных по беспроводным каналам связи благодаря протоколам шифрования TLS/SSL (HTTPS, защищенные соединения), сертификату X.509 и др.
  • Возможность удаленной установки, обновления или удаления мидлетов — OTAP (Over The Air Provisioning — «по воздуху») по беспроводным GPRS/3G/CSD-каналам. Запуск производится с помощью AT-команды или SMS с парольной защитой. Имеются возможность отслеживания процесса по последовательному интерфейсу, передача на сервер «кода», операция удаления с перезапуском модуля и пошаговое обновление малых фрагментов кода.
  • Возможность отлаживать мидлеты в интегрированной среде разработки (NetBeans/Eclipse) на ПК. Для этого модуль подключается к ПК по USB-интерфейсу (или RS-232). Мидлеты можно редактировать, компилировать, отлаживать и запускать с ПК.

 

Пример использования Java

Ниже приведен пример кода по управлению GPIO-контактами Java-модуля Cinterion в качестве выходов.

//Импортируем стандартные библиотеки и библиотеку Cinterion для работы с GPIO
import java.io.IOException;
import javax.microedition.midlet.*;
import com.cinterion.io.OutPort;
import java.util.Vector;

public class IMlet extends MIDlet {
 public void startApp() {
 //инициализируем экземпляр класса и вспомогательные данные 
 OutPort oport = null;
 Vector pins = new Vector (2);
 Vector values = new Vector (2);
 pins.addElement("GPIO6");
 values.addElement(Integer.valueOf("1"));
 pins.addElement("GPIO7");
 values.addElement(Integer.valueOf("1"));
 //пробуем создать экземпляр и прочитать состояние портов
 try {
  oport = new OutPort(pins, values);
  System.out.println(oport.getValue());
 } catch (IOException ex) {
  ex.printStackTrace();
 }
//останавливаем выполнение на 10 с
 try {
  Thread.sleep(10000);
 } catch (InterruptedException ex) {
  ex.printStackTrace();
 }
 //пробуем установить GPIO6 выкл., GPIO7 вкл.
 try {
  oport.setValue(2);
  System.out.println(oport.getValue());
 } catch (IOException ex) {
  ex.printStackTrace();
 }
//останавливаем выполнение на 10 с
 try {
  Thread.sleep(10000);
 } catch (InterruptedException ex) {
  ex.printStackTrace();
 }
// освобождаем GPIO от работы с JAVA (теперь они доступны через АТ-команды) 
 try {
  oport.release();
 } catch (IOException ex) {
  ex.printStackTrace(); }
 destroyApp(true);
 }

 public void pauseApp() {
 }
 
 public void destroyApp(boolean unconditional) {
 notifyDestroyed();
 }
}

 

Заключение

Новые ультракомпактные модули EHS5 (3G) и BGS5 (2G) сочетают в себе весь накопленный опыт Gemalto по созданию М2М-продуктов и решений на базе JAVA. По сравнению с младшим в серии Evolution модулями разработчикам удалось весьма значительно повысить их производительность. Java ME позволяет клиентам, работающим в сфере M2M, в максимальной степени расширить функциональные возможности своих разработок. Все возможности и преимущества — «в руках» Java-программистов. Благодаря наличию огромного числа разработчиков во всем мире, Java позволяет легко находить специалистов для создания приложений. Наличие JAVA сокращает затраты на дополнительные внешние процессоры и карты памяти. Плюс к этому с BGS5 разработчики могут быстрее перейти от 2G- к 3G-диапазонам передачи данных (в ближайшем будущем и к 4G(LTE)), т.к. модули EHS5 Rel. 2 и BGS5 выполнены в едином форм-факторе.

Литература
  1. http://euromobile.ru/produkciya/gsm-moduli/ehs5-rel-2
  2. http://euromobile.ru/produkciya/gsm-moduli/bgs5-lga-java
  3. http://m2m.gemalto.com/products.html
  4. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  5. Рональдо Робль, Зелько Марич. Прогрессивные GSM-модули на J2ME // Беспроводные технологии. 2010. № 2.
  6. Java User Guide. EHS5/BGS5. Gemalto, Германия.
  7. Маркус Энк. EHS5/6 – A new generation of embedded Java. Gemalto, июнь 2013.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *