Инструменты, цифровые технологии, связь, измерения

Модуль EHS6 и макетная плата Cinterion Concept Board в руках специалиста

28 октября 2014 г. в 11:22

В статье описан опыт начала работы с макетной платой Cinterion Concept Board Gemalto, на которой установлен однокорпусной модуль (System In a Package, SIP) Cinterion EHS6.

Общее описание однокорпусной системы EHS6

EHS6 — это модуль пятого поколения для построения интерфейсов типа M2M (Mashine to Mashine). В его основе лежит архитектура ARM11, на базе которой работает исполнительный модуль Java ME 3.2, оптимизированный для ограниченных в ресурсе M2M-приложений. Наличие большого количества готовых программных модулей позволяет сократить время разработки и уменьшить стоимость готовых изделий. Raspberry Pi также использует процессор на базе архитектуры ARM11.

По сути, EHS6 представляет собой сотовый модем с Java-машиной. Управлять системой можно как снаружи, AT-командами (например от внешнего процессора), так и Java-программой (изнутри). Модуль содержит сотовый интерфейс (пятидиапазонный 3G HSPA, четырехдиапазонный GPRS\EDGE Class12). На макетной плате имеется встроенная антенна сотовой связи и держатель SIM-карты стандартного размера с функцией определения ее наличия. Скорость передачи данных «вниз» достигает 7,2 Mbps, а «вверх» — 5,7 Mbps. Модуль поддерживает многопоточное и многопротокольное выполнение Java midlet (Multi MIDlet Java execution). Программе доступны 6 Mбайт RAM и 10 Mбайт Flash-памяти.

Технические характеристики EHS6 приведены в таблице 1. Модуль выполнен в корпусе LGA, мощность потребления и тепловыделение оптимизированы для промышленного применения в тяжелых условиях.

Таблица 1. Технические характеристики модуля EHS6

Частотный диапазон, МГц 800/850/900/1900/2100
Интерфейсы 2хUART, USB 2.0, SPI, I2C, 16xGPIO, SIM-интерфейс 1,8/3,3 В, цифровой звук
Специальные функции Встроенный TCP/IP-стек

Java ME Embedded 3.2

Мониторинг сетей без SIM-карты

Jamming Detection (обнаружение помех)

FOTA (обновление прошивки модема и ПО пользователя “по воздуху”)

Габариты, мм 27,6×25,4×2,2
Напряжение питания, В 3,3–4,5
Диапазон рабочих температур, °C –30…+85

Интерфейсы и вводы/выводы

16 выводов общего назначения (GPIO), доступных из Java-мидлета, могут быть использованы для нескольких интерфейсов (сигналы DSR, DTR, DCD интерфейса ASC0; RXD, TXD, RTS, CTS интерфейса ASC1; SPI; Fast-Shutdown; Network-Status-Indication; PWM; Pulse-Counter lines).

В таблице 2 приведены варианты использования GPIO для формирования разных интерфейсов. Если вывод применяется для работы в составе какого-либо интерфейса, то как вывод общего назначения его уже нельзя использовать. Например, если в приложении используется SPI, то выводы 3, 16, 17, 19 станут недоступными в качестве портов ввода/вывода общего назначения.

Цифровой аудиоинтерфейс, который можно использовать для передачи аудиоданных по каналу связи, требует использования внешнего соответствующего кодера/декодера.

Таблица 2. Варианты использования выводов GPIO для организации различных интерфейсов

Линии ввода\вывода

Сигнал выключения

Светодиод режима

Выход ШИМ

Счетчик импульсов

Порт сериал0

Порт сериал1

Порт SPI

Межмодульный Высокоскоростной интерфейс

Цифровой аудиоинтерфейс

GPIO1

       

DTR0

       

GPIO2

       

DCD0

       

GPIO3

       

DSR0

 

SPI_CLK

   

GPIO4

FST_SHDN

               

GPIO5

 

Status_LED

PWM2

           

GPIO6

   

PWM1

Counter

         

GPIO7

                 

GPIO8

                 

GPIO9

                 

GPIO10

                 

GPIO11

                 

GPIO12

                 

GPIO13

                 

GPIO14

                 

GPIO15

                 

GPIO16

         

RXD1

MOSI

AP_WAKEUP

 

GPIO17

         

TXD1

MISO

HOST_ACTIVE

 

GPIO18

         

RTS1

 

CP_WAKEUP

 

GPIO19

         

CTS1

SPI_CS

SUSPEND

 

GPIO20

               

TXDDAI

GPIO21

               

RXDDAI

GPIO22

               

TFSDAI

GPIO23

               

SCLK

GPIO24

       

RING0

       

Температурный контроль

В модуле присутствуют встроенные механизмы управления температурой (Advanced temperature management). При выходе температуры за допустимые пределы (–40…+90 °C) модуль выключится с выдачей соответствующего сообщения. Температура модуля контролируется NTC-резистором, установленным на плате, и может не соответствовать внешней температуре. Если выдача предупреждающих сообщений разрешена, то при возникновении угрожающего состояния будет выдано такое сообщение. Угрожающее состояние — подход близко к перегреву или переохлаждению. В этом состоянии модуль продолжит работу. Проектировщик системы может предусмотреть обработку таких сообщений и реакцию на них: например, включить подогрев или охлаждающий вентилятор (или холодильник на элементах Пельтье) для возврата температуры системы в норму. Если же температура модуля выйдет за пределы безопасной эксплуатации, то модуль выдаст тревожное сообщение и выключится. Запретить выдачу тревожного сообщения о перегреве или переохлаждении нельзя.

Определение подавления радиосигнала

Рассмотрим механизм определения подавления радиосигнала (RLS monitoring\jamming detection). Если модуль используется в составе охранной системы и сигнал сотовой связи подавляется внешними устройствами, то модуль определит факт такого подавления. Выполняемая программа сможет отреагировать на факт недоступности канала связи и изменить ход выполнения в соответствии с заложенной программистом логикой.

Обновление программного обеспечения

Механизм загрузки обновленных программ через сотовый интерфейс (FOTA) можно настраивать под собственные потребности. Он бесплатен, так как представляет собой Java-мидлет с открытым кодом. Возможности FOTA в EHS6 очень широки: можно обновлять не только ПО модуля но и Java-мидлеты пользователя; ПО можно загружать с обычного HTTP/FTP-сервера; команда на обновление может быть как локальной, так и удаленной (через IP-соединение или SMS). Наличие такого механизма предоставляет широчайшие возможности для разработчика по удаленному управлению модулем и системой на базе такого модуля. Можно корректировать ошибки и загружать исправленные версии, можно добавлять новые возможности в программу и т.д. И, что особенно приятно, автоматизированно загружать исправленное ПО без вмешательства конечного пользователя.

Макетная плата Cinterion Concept board

Рис. 1. Внешний вид макетной платы Cinterion Concept Board Gemalto

На макетной плате Cinterion Concept Board (рис. 1) смонтирован модуль EHS6 и вспомогательная электроника. Структурная схема показана на рис. 2.

Рис. 2. Структурная схема макетной платы Cinterion Concept Board Gemalto

Разработчики макетной платы предусмотрели физическую совместимость с интерфейсом популярного семейства «Ардуино»: физические размеры разъема, электрические параметры и набор сигналов позволяют прямое подключение платы «Ардуино» и/или разнообразных датчиков из бесчисленного множества предназначенных для нее устройств.

На плате установлен вспомогательный микропроцессор типа STM8L151GX. Разработчики назвали его CCU — configuration and control unit, что можно перевести как «устройство конфигурирования и контроля». CCU позволяет программно управлять направлением каналов ввода/вывода, выбирать один из четырех каналов аналогово-цифрового преобразователя и выбирать либо asc1 либо канал SPI.

Выбор делается либо переключателем на плате, либо программно. Может возникнуть ситуация, когда переключатель и CCU дают разные команды. Управление от CCU всегда имеет более высокий приоритет над микропереключателями. Состояние вывода (вход или выход) отображается светодиодом на плате всегда правильно, независимо от положения соответствующего переключателя.

Рис. 3

Рис. 4. Упрощенная схема коммутации

Упрощенная схема коммутации представлена на рис. 4. Рассмотрим, как она работает.

Режим ручного управления. Выход микросхемы IC1 находится в третьем состоянии и не влияет на потенциал в точке соединения резисторов R1 и R2. Потенциал этой точки определяется состоянием контактов микропереключателя S1. По умолчанию (в режиме заводской поставки) контакты микропереключателя S1 замкнуты, что дает высокий потенциал на входе микросхемы IC2, и схема преобразования направления и уровней находится в режиме «выход», обеспечивая на GPIO сигналы в диапазоне от 0 до +5 В.

При разомкнутом переключателе схема согласования уровней переходит в режим входа, обеспечивая трансляцию уровней 0…+5 В в уровни 0–1,8 В.

Режим программного управления. Для перехода в режим программного управления выход микросхемы IC1 надо переключить из режима третьего состояния в режим активного выхода. Поскольку выходной импеданс микросхемы пренебрежимо мал по сравнению с импедансом резисторного делителя (разница примерно на трипорядка), то уровень сигнала на выходе системы управления будет целиком определяться состоянием выхода микросхемы IC1. А состояние контактов ключа S1 влиять на выходной сигнал не будет.

Транзистор T4 показан, чтобы напомнить о возможности перевести вывод микросхемы IC1 в режим ввода и программно опросить состояние микропереключателя S1.

CCU подключен к модулю EHS6 по каналу I2C. Адрес CCU — 0x69. Линии интерфейса I2C (кроме CCU) также выведены на разъем и позволяют подключение внешних I2C-контроллеров. Линии I2C также выведены на внешний разъем через двунаправленные преобразователи уровней 1,8–5 В на основе полевых транзисторов.

Модуль CCU может управлять направлением передачи информации в портах GPIO0‑GPIO7 выбором одного из четырех каналов АЦП, подключением порта ASC0 к разъему “Ардуино” или к преобразователю FT232 и подключением порта ASC1 либо к выводам сериал порта на разъеме “Ардуино”, либо к выводам SPI.

На макетной плате имеется коммутатор аналогового сигнала 0 ‑5 В в один канал 0 ‑1,2 В. Выбор канала можно делать либо блоком микропереключателей, либо программно. ADC в EHS6 может преобразовывать напряжение максимум в 1,2 В. Для расширения входного диапазона до 5 В применен преобразователь на операционном усилителе. Для корректной обработки результатов следует использовать коэффициент 4,17. Так, например, если в Java-программе считан результат 1 В, то его следует умножить на 4,17 и этот результат как раз и будет истинным входным напряжением.

Сериал порт ASC0 модуля EHS6 может быть подключен системой управления (CCU + микропереключатели) либо напрямую к выводам разъема «Ардуино», либо к микросхеме трансляции сериал-порта в USB FTDI FT232RQ. Интерфейс ASC0 содержит девять сигналов для управления потоком данных. Можно использовать подключение через FT232 по USB c драйвером виртуального сериал-порта. Питание модуля также возможно через второй миниUSB-разъем.

Выводы GPIO3, GPIO16-19 модуля EHS6 могут быть использованы либо как сериал-порт ASC1, либо как SPI. В обоих случаях автоматически обеспечивается нужное направление преобразования сигналов 1,8–5 В для согласования электрических параметров интерфейса. Для включения интерфейса ASC1 или SPI нужно в программе выполнить две операции: дать соответствующую команду CCU и создать SPI-соединение и потоки данных. Интерфейс ASC1 содержит четыре сигнала: RX, TX, RTS,CTS.

На макетной плате предусмотрены выводы для подключения внешнего литиевого аккумулятора. Зарядка батареи происходит током порядка 250 мА. При выборе аккумулятора следует иметь в виду, что при работе модуля на передачу он потребляет значительный ток (порядка 2 А), и нельзя допустить просадку напряжения ниже 3,3 В, так как при этом модуль отключится. Изготовитель рекомендует емкость аккумулятора не ниже 800 мАч.

В модуле EHS6 имеются часы реального времени, но для их работы нужно чтобы к макетной плате был постоянно подключен аккумулятор.

Ни EHS6, ни макетная плата не поддерживают прерываний. Единственный способ реакции на изменение входных сигналов — опрос.

На макетной плате также имеются места под установку разъема и вспомогательных радиоэлементов, помеченных “GPS” (рис. 5). В производственной гамме Gemalto имеются модули с поддержкой ГЛОНАСС и даже ЭРА-ГЛОНАСС (например модуль EHS5). Этот модуль полностью совместим по выводам с описываемым EHS6.

Рис. 5. Места под установку вспомогательных элементов

Также на плате имеется U-Fl разъем для подключения внешней сотовой антенны. По спецификации модуль EHS6 полностью защищен от несогласованной антенны и способен выдержать совсем несогласованную антенну без повреждений. Учитывая, что по спецификации модуль способен отдавать в нагрузку до 2 вт и если нагрузка предельно не согласована — то вся эта мощность будет рассеяна внутри модуля. Модуль оснащен встроенными средствами контроля температуры и должен будет при перегреве отключиться. Однако всегда следует помнить один из законов Мэрфи «транзистор, защищенный предохранителем, вылетит первым, защитив предохранитель!» и быть аккуратным с внешней антенной. Ну и лишнее СВЧ излучение организму тоже неполезно.

Рис. 6

На макетной плате отсутствуют источники питания для поддержки часов реального времени, чтобы получить такую поддержку — надо припаять литиевую батарею к выводам BATT.

Рис. 7

На макетной плате установлены четыре кнопки (рис. 8).

Рис. 8

Кнопка Start служит для подачи сигнала Ignition для EHS6, кнопка OFF выключает модуль. Оставшиеся две кнопки (BTN-A и BTN-B) подключены к выводам GPIO11 и GPIO12 и могут произвольным образом использоваться в программе пользователя.

Установка программного обеспечения

Для начала следует зарегистрироваться на m2m.gemalto.com и указать IMEI-номер системы. Этот номер находится на модуле EHS6 в нижней строке (рис. 9), в данном случае это 358884 05 007431 4.

Рис. 9. IMEI-номер системы

Через некоторое время (в моем случае ожидание заняло около двух часов) приходит письмо с логином и паролем. С их помощью осуществляем вход в систему и заходим в Cinterion® Concept Board Support. Нам нужны файлы, названия которых показаны на рис. 10.

cinterion_concept_board_support_faily_neobkhodimye_dlya_ustanovki_po_10

Рис. 10. Файлы, необходимые для установки ПО

Распаковываем Installation Package и производим установку путем запуска Setup. Я поставил систему на виртуальную машину под управлением Windows 7 (32 бит), но, по информации специалистов Gemalto, можно использовать и 64-бит систему.

В процессе установки надо будет подключить плату и нажать кнопку «Старт». В моем случае драйвера платы установились автоматически. Но если от вас потребуется указать драйвера, они находятся в файле eh6_drivers_1112.

Установщик не размещает ссылку на eclipse.exe нигде, так что это нужно сделать вручную. Программа лежит по такому пути: C:\Users\Public\Eclipse\eclipse\eclipse.exe

В системе появятся новые устройства (рис. 11).

Рис. 11. Устройства, появившиеся после установки драйверов платы

Для общения с устройством по сериал-интерфейсу можно воспользоваться какой-либо доступной программой, например Putty (рис. 12).

Рис. 12. Окно «общения» с устройством

Первая команда — запрос идентификации. Вторая — запрос напряжения питания, в данном случае это 3,664 В. Третья — запрос регистрации в сотовой сети. В нашем случае модуль зарегистрирован в сети «Билайн».

После успешной установки Eclipse можно импортировать в Workspace демонстрационные программы и исследовать возможности Java-мидлетов. Демонстрационных программ вполне достаточно чтобы показать работу системы и взаимодействие приложения с аппаратурой на плате. Есть традиционный Hello World и не менее традиционное моргание светодиодом на плате.

Импорт готовых проектов делается так, как показано на рис. 13.

Рис. 13

В результате получаем рабочее пространство, показанное на рис. 14.

Рис. 14

Можно запустить традиционный «Hello World» и посмотреть на вывод в консоль (рис. 15).

Рис. 15

Можно запустить программу мигания светодиодом Test_routine из проекта GPIO5v_lib. С ней будет не все так гладко. В этой программе не сделан перевод вывода GPIO7 в режим ввода. Поэтому вывод будет выглядеть вот так, как показано на рис. 16. А на самой плате Cinterion будет мигать только один светодиод.

Рис. 16.

Как видим, сигнал InPort всегда “0”, а должен быть равным сигналу OutPort. Исправить ситуацию можно двумя путями: либо использовать микропереключатель, либо сделать это программным путем. Для ручного переключения GPIO7 в режим ввода надо перевести микропереключатель D5 в нижнее положение. Вместо желтого светодиода включится рыжий.

Практический пример

Подробное описание протокола обмена с CCU содержится в документе concept_board_hd_v01a.pdf. Его можно загрузить с сайта m2m.gemalto.com, который становится доступным после регистрации. Приведу лишь практическую «выжимку» для конкретного случая.

Адрес CCU на шине I2C 0x69 или 1101001 в двоичном виде. Команда запись (“1″) или чтение (“0″) добавляется в конец посылки и становится восьмым битом. Таким образом, получаем либо 0xD2 для записи, либо 0xD3 для чтения.

Следующий байт — адрес внутреннего регистра CCU. Нас интересует GPIO7, его адрес 0x13.

И последний байт посылки — команда включить канал GPIO на ввод 0x00 (на вывод — 0x01.

Итак, полная команда для перевода GPIO7 в режим чтения будет выглядеть так:

aD21300.

Префикс «a» в начале строки — Message ID, может быть только одной буквой.

Допишем в текст программы следующие строки:

I2cBusConnection cc = (I2cBusConnection) Connector.open(“i2c:0;baudrate=400″);

//int baudrate = cc.getBaudRate(); InputStream inStream = cc.openInputStream();
OutputStream outStream = cc.openOutputStream();

String data = “<aD21300>”;

outStream.write(data.getBytes(), 0, data.length());
outStream.flush();

byte[] inBuf = new byte[12];
if (inStream.available()>0)
inStream.read(inBuf);

inStream.close();
outStream.close();
cc.close();

Теперь в процессе выполнения программы канал GPIO7 будет автоматически переключен на ввод и программа целиком заработает так, как задумано без необходимости манипулировать вручную микропереключателями (рис. 17).

Рис. 17

Соответственно получим синхронное мигание светодиодов (рис. 18).

Рис. 18

Обратите внимание на положение микропереключателя D5, управляющего направлением порта GPIO7. Он стоит в положении «вывод», но включен рыжий нижний светодиод: программно от CCU включен режим «ввод» и команда от CCU имеет более высокий приоритет.

Также я добавил в программу чтение показаний ADC:

ADC adc = new ADC(0,0);

И в основной цикл:

System.out.println(“; ADC: ” + adc.getValue() *4,17 + ” mV”);

Не забываем умножить на 4,17 — учитывая поправочный коэффициент преобразователя напряжения на входе. Полученные 4,75 В — это как раз напряжение питания минус падение напряжения на развязывающих элементах.

Добавим считывание нажатия кнопок на макетной плате и изменим программу так, чтобы она останавливалась по нажатию любой из кнопок.

Добавим в текст программы строки:

Vector pins1 = new Vector(2);

pins1.addElement(“GPIO11″);
pins1.addElement(“GPIO12″);

InPort inport1 = new InPort(pins1);

Изменим условие продолжения цикла:

while (inport1.getValue()==0)

Теперь программа крутится бесконечно, пока не будет нажата любая из кнопок на макетной плате.

И в качестве «вишенки на торте» добавим посылку SMS после нажатия любой из кнопок. Такая программа может рассматриваться как proof of concept работы системы, реагирующей на срабатывание внешнего датчика и посылающего SMS, информирующие пользователя о возникновении некоего условия. Модуль EHS6 правильно работает с АТ-командами посылки текстовых SMS, что позволило не заниматься генерацией PDU-сообщения и решить задачу простым путем. В функции посылки SMS предварительно проверяется статус модуля — зарегистрирован ли он в сотовой сети. Здесь я покажу только дополнения.

В начале программы надо указать:

import com.cinterion.io.ATCommand;import com.cinterion.io.ATCommandFailedException;

Добавить модуль:

protected void sendSMS() { try { System.out.println(“Sending SMS in progress…”);

ATCommand m_Cmd = new ATCommand(false);

String registration_response = m_Cmd.send(“AT+CREG?\r”); //Checking if module is registered to the network

System.out.println(registration_response);

int localy_registered = registration_response.indexOf(“,1″);System.out.println(localy_registered);int roaming_registered = registration_response.indexOf(“,5″);if((localy_registered >-1 ) || (roaming_registered >-1)){

System.out.println(“Module registered to the network”);
String Response = m_Cmd.send(“AT+cmgf = 1\r”); System.out.println(Response); Response = m_Cmd.send(“AT+CMGS=\”+79030189102\”\r”); //here you put your number System.out.println(Response); Response = m_Cmd.send(“(c) Sergey Dronsky” + (char)26); //here you put text that is inside the SMS System.out.println(Response);

}else{System.out.println(“Module not registered to the network”);

}

} catch (ATCommandFailedException ex) { ex.printStackTrace(); } catch (IllegalStateException ex) { ex.printStackTrace(); } catch (IllegalArgumentException ex) { ex.printStackTrace(); }}

И добавить вызов подпрограммы посылки СМС в конец программы:

outPort.release();
inPort.release();
sendSMS();

Текст программы, в котором красным выделены внесенные изменения:

/*

*

* Copyright (C) Gemalto M2M GmbH 2013. All Rights reserved.

*

* Gemalto M2M GmbH ("Gemalto") grants Licensee a non-exclusive,

* non-transferable, limited license to transmit, reproduce, disseminate, utilize

* and/or edit the source code of this Software (IMlet, LIBlet, batch files,

* project files) for the sole purpose of designing, developing and testing

* Licensee's applications only in connection with a Gemalto Wireless Module.

*

* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,

* EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED

* WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.

*

* GEMALTO, ITS LEGAL REPRESENTATIVES AND VICARIOUS AGENTS SHALL - IRRESPECTIVE

* OF THE LEGAL GROUND - ONLY BE LIABLE FOR DAMAGES IF THE DAMAGE WAS CAUSED

* THROUGH CULPABLE BREACH OF A MAJOR CONTRACTUAL OBLIGATION (CARDINAL DUTY),

* I.E. A DUTY THE FULFILMENT OF WHICH ALLOWS THE PROPER EXECUTION OF THE

* RESPECTIVE AGREEMENT IN THE FIRST PLACE OR THE BREACH OF WHICH PUTS THE

* ACHIEVEMENT OF THE PURPOSE OF THE AGREEMENT AT STAKE, RESPECTIVELY, AND ON THE

* FULFILMENT OF WHICH THE RECIPIENT THEREFORE MAY RELY ON OR WAS CAUSED BY GROSS

* NEGLIGENCE OR INTENTIONALLY. ANY FURTHER LIABILITY FOR DAMAGES SHALL -

* IRRESPECTIVE OF THE LEGAL GROUND - BE EXCLUDED. IN THE EVENT THAT GEMALTO IS

* LIABLE FOR THE VIOLATION OF A MAJOR CONTRACTUAL OBLIGATION IN THE ABSENCE OF

* GROSS NEGLIGENCE OR WILFUL CONDUCT, SUCH LIABILITY FOR DAMAGE SHALL BE LIMITED

* TO AN EXTENT WHICH, AT THE TIME WHEN THE RESPECTIVE AGREEMENT IS CONCLUDED,

* GEMALTO SHOULD NORMALLY EXPECT TO ARISE DUE TO CIRCUMSTANCES THAT THE PARTIES

* HAD KNOWLEDGE OF AT SUCH POINT IN TIME. GEMALTO SHALL IN NO EVENT BE LIABLE

* FOR INDIRECT AND CONSEQUENTIAL DAMAGES OR LOSS OF PROFIT. GEMALTO SHALL IN NO

* EVENT BE LIABLE FOR AN AMOUNT EXCEEDING Ђ 20,000.00 PER EVENT OF DAMAGE. WITHIN

* THE BUSINESS RELATIONSHIP THE OVERALL LIABILITY SHALL BE LIMITED TO A TOTAL

* OF Ђ 100,000.00. CLAIMS FOR DAMAGES SHALL BECOME TIME-BARRED AFTER ONE YEAR AS

* OF THE BEGINNING OF THE STATUTORY LIMITATION PERIOD. IRRESPECTIVE OF THE

* LICENSEE'S KNOWLEDGE OR GROSS NEGLIGENT LACK OF KNOWLEDGE OF THE CIRCUMSTANCES

* GIVING RISE FOR A LIABILITY ANY CLAIMS SHALL BECOME TIME-BARRED AFTER FIVE

* YEARS AS OF THE LIABILITY AROSE. THE AFOREMENTIONED LIMITATION OR EXCLUSION

* OF LIABILITY SHALL NOT APPLY IN THE CASE OF CULPABLE INJURY TO LIFE, BODY OR

* HEALTH, IN CASE OF INTENTIONAL ACTS, UNDER THE LIABILITY PROVISIONS OF THE

* GERMAN PRODUCT LIABILITY ACT (PRODUKTHAFTUNGSGESETZ) OR IN CASE OF A

* CONTRACTUALLY AGREED OBLIGATION TO ASSUME LIABILITY IRRESPECTIVE OF ANY

* FAULT (GUARANTEE).

*

* IN THE EVENT OF A CONFLICT BETWEEN THE PROVISIONS OF THIS AGREEMENT AND

* ANOTHER AGREEMENT REGARDING THE SOURCE CODEOF THIS SOFTWARE (IMLET, LIBLET,

* BATCH FILES, PROJECT FILES) (EXCEPT THE GENERAL TERMS AND CONDITIONS OF

* GEMALTO) THE OTHER AGREEMENT SHALL PREVAIL.

*

*/

import gpio.GPIO5V_Factory;

import gpio.InPort5V;

import gpio.OutPort5V;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Vector;

import javax.microedition.io.Connector;

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

//import AtCmdDemo.AtCmdDemo.Listener;

import com.cinterion.io.ADC;

import com.cinterion.io.ATCommand;

import com.cinterion.io.ATCommandFailedException;

import com.cinterion.io.I2cBusConnection;

import com.cinterion.io.InPort;

publicclass Test_routine extends MIDlet {

public Test_routine() {

// TODO Auto-generated constructor stub

}

protectedvoid destroyApp(boolean unconditional)

throws MIDletStateChangeException {

notifyDestroyed();

}

protectedvoid pauseApp() {

// TODO Auto-generated method stub

}

protectedvoid startApp() throws MIDletStateChangeException {

test();

destroyApp(true);

}

protected void sendSMS()

{

try {

System.out.println("Sending SMS in progress...");

ATCommand m_Cmd = new ATCommand(false);

String registration_response = m_Cmd.send("AT+CREG?\r"); //Checking if module is registered to the network

System.out.println(registration_response);

int localy_registered = registration_response.indexOf(",1");

System.out.println(localy_registered);

int roaming_registered = registration_response.indexOf(",5");

if((localy_registered >-1 ) || (roaming_registered >-1)){

System.out.println("Module registered to the network");

String Response = m_Cmd.send("AT+cmgf = 1\r");

System.out.println(Response);

Response = m_Cmd.send("AT+CMGS=\"+79030189102\"\r"); //here you put your nummber

System.out.println(Response);

Response = m_Cmd.send("(c) Sergey Dronsky" + (char)26); //here you put text that is inside the SMS

System.out.println(Response);

}else{

System.out.println("Module not registered to the network");

}

} catch (ATCommandFailedException ex) {

ex.printStackTrace();

} catch (IllegalStateException ex) {

ex.printStackTrace();

} catch (IllegalArgumentException ex) {

ex.printStackTrace();

}

}

/**

* To run this Test, connect the GPIO6 and GPIO7 pins. Then the Output

* should be like this:<br>

* <b> 0; OutPort: 0; InPort: 0<br>

* 1; OutPort: 1; InPort: 1<br>

* 2; OutPort: 0; InPort: 0<br>

* 3; OutPort: 1; InPort: 1<br>

* <br>

* Note:</b> In case of error the InPort values are always 0 or 1.

*/

privatevoid test() {

InPort5V inPort = null;

OutPort5V outPort = null;

GPIO5V_Factory factory = new GPIO5V_Factory(GPIO5V_Factory.CONCEPT);

try {

int counter = 0;

Vector outPins = new Vector(1);

Vector values = new Vector(1);

outPins.addElement("GPIO6");

values.addElement(Integer.valueOf("0"));

outPort = factory.getOutPort5V(outPins, values);

ADC adc = new ADC(0,0);

I2cBusConnection cc = (I2cBusConnection) Connector.open("i2c:0;baudrate=400");

//int baudrate = cc.getBaudRate();

InputStream inStream= cc.openInputStream();

OutputStream outStream = cc.openOutputStream();

String data = "<aD21300>";

outStream.write(data.getBytes(), 0, data.length());

outStream.flush();

byte[] inBuf = newbyte[12];

if (inStream.available()>0)

inStream.read(inBuf);

inStream.close();

outStream.close();

cc.close();

//Write Transfer Frame, where a = message ID, AE = Slave Address and write request:String data = "<aAE000102030405060708090A0B0C0E0F>";

// outStream.write(data.getBytes(), 0, data.length());

// outStream.flush();

Vector inPins = new Vector(1);

inPins.addElement("GPIO7");

//inPins.addElement("GPIO9");

inPort = factory.getInPort5V(inPins);

Vector pins1 = new Vector(2);

pins1.addElement("GPIO11");

pins1.addElement("GPIO12");

InPort inport1 = new InPort(pins1);

System.out.println("GO");

while (inport1.getValue()==0 ) { //or counter < 40

System.out.print(counter + "; OutPort: " + counter % 2);

try {

outPort.setValue(counter);

} catch (IOException e1) {

e1.printStackTrace();

}

try {

System.out.print("; InPort: " + inPort.getValue());

System.out.print("; ADC: " + adc.getValue()*4.17 + " mV");

System.out.println("; InPort1: " + inport1.getValue());

} catch (IOException e) {

e.printStackTrace();

}

try {

Thread.sleep(20);

} catch (InterruptedException e) {

e.printStackTrace();

}

counter = 1 + counter;

}

outPort.release();

inPort.release();

sendSMS();

} catch (IOException e) {

e.printStackTrace();

}

}

}

Заключение

В статье рассмотрен модуль EHS6 и макетная плата Cinterion Concept Board. Приведены простейшие способы общения с аппаратурой, вывод информации на разъем, считывание данных с разъема и аналогового-цифрового преобразователя, посылка SMS из мидлета, установка и использование системы Eclipse для создания и отладки программ на Java ME 3.2. Все это возможно реализовать на базе модуля EHS5, который являться продолжением линейки Industrial и полностью совместим с модемами2G BGS2 и BGS5. Отметим также, что полноценное использование модуля возможно только после детального изучения всей сопутствующей документации — и той, что размещена на сайте, и той, что устанавливается на компьютер.

Сергей Дронский
Предоставлено PT Electronics

👉 Подписывайтесь на Elec.ru. Мы есть в Телеграм, ВКонтакте и Одноклассниках

Ивченко Евгений
Все новости и публикации пользователя Ивченко Евгений в персональной ленте вашего личного кабинета на Elec.ru
Подписаться
Читайте также
Новости по теме
Объявления по теме

ПРОДАМ: Панели оператора Siemens Simatic

Уважаемые Партнеры! Если Вы не нашли интересующий товар или информацию - свяжитесь с менеджерами компании "Prom-Zip" в форме обратной связи, по e-mail или любым удобным для Вас способом - и мы Вам обязательно поможем! Панели оператора Siemens Simatic любой конфигурации для решения самых разнообразных задач на Вашем производстве. 6AV6647-0AA11-3AX0 SIEMENS SIMATIC KTP400 BASIC MONO PN 3,8" 6AV6647-0AB11-3AX0 SIEMENS SIMATIC KTP600 BASIC MONO PN 5,7" 6AV6647-0AC11-3AX0 SIEMENS SIMATIC KTP600 BASIC COLOR PN 5,7" 6AV6647-0AD11-3AX0 SIEMENS SIMATIC KTP600 BASIC COLOR PN 5,7" 6AV3688-3AA03-0AX0 SIEMENS SIMATIC PP7, КНОПОЧНАЯ ПАНЕЛЬ 6AV3688-3CD13-0AX0 SIEMENS SIMATIC PP17-I, КНОПОЧНАЯ ПАНЕЛЬ 6AV3688-3ED13-0AX0 SIEMENS SIMATIC PP17-II, КНОПОЧНАЯ ПАНЕЛЬ 6AV6641-0AA11-0AX0 SIEMENS SIMATIC OP 73, ПАНЕЛЬ ОПЕРАТОРА, 3" 6AV6641-0BA11-0AX1 SIEMENS SIMATIC, ПАНЕЛЬ ОПЕРАТОРА OP 77A 6AV6641-0CA01-0AX1 SIEMENS SIMATIC, ПАНЕЛЬ ОПЕРАТОРА OP 77B 6AV6642-0AA11-0AX1 SIEMENS SIMATIC, СЕНСОРНАЯ ПАНЕЛЬ ОПЕРАТОРА TP 177A 6AV6642-0BA01-1AX1 SIEMENS SIMATIC, СЕНСОРНАЯ ПАНЕЛЬ ОПЕРАТОРА TP 177B 6AV6642-0BC01-1AX1 SIEMENS SIMATIC, СЕНСОРНАЯ ПАНЕЛЬ ОПЕРАТОРА TP 177B 6AV6642-0BD01-3AX0 SIEMENS SIMATIC ПАНЕЛЬ ОПЕРАТОРА TP177B 4" 6AV6642-0DA01-1AX1 SIEMENS SIMATIC, ПАНЕЛЬ ОПЕРАТОРА OP 177B 6AV6642-0DC01-1AX1 SIEMENS SIMATIC, ПАНЕЛЬ ОПЕРАТОРА OP 177B 6AV6642-0EA01-3AX0 SIEMENS SIMATIC MP 177 6" TOUCH 6AV6642-8BA10-0AA0 SIEMENS SIMATIC TOUCHPANEL TP177B 6AV6645-0AA01-0AX0 SIEMENS SIMATIC MOBILE PANEL 177 DP 6AV6645-0AB01-0AX0 SIEMENS SIMATIC MOBILE PANEL 177 DP 6AV6645-0AC01-0AX0 SIEMENS SIMATIC MOBILE PANEL 177 DP 6AV6645-0BA01-0AX0 SIEMENS SIMATIC MOBILE PANEL 177 PN 6AV6645-0BB01-0AX0 SIEMENS SIMATIC MOBILE PANEL 177 PN 6AV6645-0BC01-0AX0 SIEMENS SIMATIC MOBILE PANEL 177 PN 6AV6643-0AA01-1AX0 SIEMENS SIMATIC TP 277 6", СЕНСОРНАЯ ПАНЕЛЬ, 5.7" 6AV6643-0BA01-1AX0 SIEMENS SIMATIC OP 277 6", ПАНЕЛЬ ОПЕРАТОРА,...
Дубровская Ирина · Touch-Mall · 16 апреля · Россия · г Москва
Панели оператора Siemens Simatic

ПРОДАМ: Продажа SIEMENS SIMODRIVE 611 LT-MODUL E/R-MODUL, а также платы управления 6SN1118.

Продается приводная техника SIEMENS SIMODRIVE 611 LT-MODUL E/R-MODUL, и платы управления 6SN1118. Блоки исправные, Б/У, ГАРАНТИЯ 6 МЕСЯЦЕВ. Блоки проверены на испытательном стенде с подключенным мотором SIEMENS. Вышлем видео проверки блоков с читаемыми серийными номерами. В случае самовывоза, подключим и продемонстрируем представителю покупателя работу блоков на испытательном стенде. Отгрузка немедленно после поступления оплаты. Блокам проведена профилактика, замена компонентов утрачивающих параметры, ревизия пайки. В наличии имеется следующее оборудование SIEMENS SIMODRIVE 611: 6SN1145-1BA02-0CA1 E/R MODUL INT.36/47KW — 191180 руб. НЕТ В НАЛИЧИИ. 6SN1145-1BA01-0BA1 E/R MODUL INT.16/21KW — 153780 руб. НЕТ В НАЛИЧИИ. 6SN1145-1AA01-0AA1 U/E MODUL INT.10/25KW — 122500 руб. НЕТ В НАЛИЧИИ. 6SN1146-1AB00-0BA1 UE-MODUL INT/ EXT 5/10KW — 106150 руб. НЕТ В НАЛИЧИИ. 6SN1123-1AA01-0FA1 LT-MODUL INT.200A — 203500 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AA00-0EA1 LT-MODUL INT.160A — 200500 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AA00-0EA0 LT-MODUL INT.160A — 142500 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AA00-0LA1 LT-MODUL INT.108A — 138490 руб. НЕТ В НАЛИЧИИ. 6SN1123-1AA00-0DA0 LT-MODUL INT. 80A — 115600 руб. НЕТ В НАЛИЧИИ. 6SN1123-1AA00-0DA1 LT-MODUL INT. 80A — 132600 руб. ОЖИДАЕТСЯ. 6SN1123-1AA00-0DA2 LT-MODUL INT. 80A — 136600 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AA00-0BA2 LT-MODUL INT. 25A — 99700 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AA00-0BA1 LT-MODUL INT. 25A — 98700 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AB00-0CA1 LT-MODUL INT.2X50A — 136840 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AB00-0BA2 LT-MODUL INT.2X25A — 124200 руб. ЕСТЬ В НАЛИЧИИ. 6SN1123-1AB00-0HA1 LT-MODUL INT.2X8A — 87500 руб. ЕСТЬ В НАЛИЧИИ. 6SN1121-0BA12-0AA0 CONTROL UNIT — 34300 руб. ЕСТЬ В НАЛИЧИИ. 6SN1122-0BA11-0AA1 CONTROL UNIT — 34300 руб. ЕСТЬ В НАЛИЧИИ. 6SN1118-0AE11-0AA1 CONTROL UNIT — 33200 руб. ЕСТЬ В НАЛИЧИИ. 6SN1118-0NH11-0AA1 CONTROL UNIT — 44300 руб. ЕСТЬ В НАЛИЧИИ. 6SN1118-0NJ01-0AA1 CONTROL UNIT — 44300 руб. ЕСТЬ В НАЛИЧИИ. 6SN1118-0DH23-0AA1...
Ашугян Александр · ООО "ВОЛГА ЭЛЕКТРО СЕРВИС" · 28 марта · Россия · Самарская обл
Продажа SIEMENS SIMODRIVE 611 LT-MODUL E/R-MODUL, а также платы управления 6SN1118.

КУПЛЮ: Контроллеры процессоры ПЛК PLC панели Siemens Simatic B&R Schneider Omron Allen-Bradley Emerson DeltaV Fanuc частотники

Куплю комплектующие для систем промышленной автоматики АСУТП (складские остатки, неликвиды, остатки после монтажа и модернизации), контроллеры, ПЛК: Siemens Simatic S7-200, S7-300, S7-400, S7-1200, S7-1500, LOGO!, Omron, Schneider Electric, Allen Bradley, B&R, Emerson DeltaV, GE Fanuc, Wago, Beckhoff, сетевое и серверное оборудование и др. Так же покупаю сенсорные и кнопочные панели оператора, частотные преобразователи, датчики и энкодеры. Цена договорная, наличная и безналичная оплата, работаем по Росси и СНГ.
Тимофеев Василий · ООО КИП-АВТОМАТИКА · Вчера · Россия · Липецкая обл
контроллеры процессоры ПЛК PLC панели Siemens Simatic B&R Schneider Omron Allen-Bradley Emerson DeltaV Fanuc частотники

ПРОДАМ: Конфорки электрические для плит ЭП-6ЖШ; ЭП-4ЖШ; ЭП-6П

КЭТ-0,12 электроконфорка чугунная подходит для установки на плиты производства: Тулаторгтехника: ПЭ-0,24; ПЭ-0,48; ПЭ-0,72, Тулатехмаш: ПЭЖШ, Чувашторгтехника: ЭП-6ЖШ; ЭП-4ЖШ; ЭП-6П, Тверьторгтехника-ПЭСМ-4, «Гомельторгмаш»-ПЭМ-4-010; ПЭМ-2-020; ЭПК-48; ПЭЖШ, Конфорки чугунные электрические КЭТ-0,12/3 используются в качестве элементов поверхности нагрева в электрических плитах для предприятий общественного питания. Площадь рабочей поверхности, м2 0,12 Размеры, мм (415х295) ± 3 Мощность, кВт 3, 0 Вид конфорки чугунное литье Масса, кг 11 Номинальное напряжение, В 220 Температура рабочей поверхности, ?С не более 400 Рабочие режимы нагрева слабый, средний, сильный Цена 2900 руб/шт с НДС. В наличии.. Скидки! Звоните! ООО ЧебЭнерго Данилов Евгений
Макаров Евгений · ЧебЭнерго · 9 апреля · Россия · Чувашская республика - Чувашия
Конфорки электрические для плит ЭП-6ЖШ; ЭП-4ЖШ; ЭП-6П

ПРОДАМ: Продам электронные платы

Продам электронные платы фирмы SIMATIK: 6DC 2002-8AC 6EC1 710-0A 6RG 1146-6DC 6EC1 001-0A 6EC1 040-0A 6EC1 110-0A 6EC1 220-0A 6EC1 621-0A 6EC1 700-0A Продам электронные платы фирмы SIEMENS: 6EV1420-5AC 6EV1411-5DC Продам электронные платы фирмы STEREMAT: 320.46-8/1 320.47 Дорожание с 20.03.20г
Новиков Вячеслав · ЭлТехПриборМашАвтоматика · 9 апреля · Россия · Калининградская обл
Компания «ФАТО Электрик» является производителем и прямым поставщиком низковольтной электротехнической продукции торговой марки HLT. На сегодняшний день ассортимент продукции бренда HLT уже включает в себя более 4000 наименований продукции. Офис и склад общей площадью свыше 1000 м2 находятся в Москве для удобства развития региональной сети дистрибьюции бренда. Фато Электрик осуществляет поставки не только по всей территории Российской Федерации, но и тесно сотрудничает с Республикой Беларусь.