6 мая в 16:11 Знакомство с ... - promwad.ru · Тел. +7 (495) 642–82–43....

13
www.promwad.ru Тел. +7 (495) 6428243. Email: [email protected] www.promwad.com Тел. +375 (17) 3121246. Email: [email protected] Promwad l Electronics Design © 2014 1 6 мая в 16:11 Знакомство с программированием DECT-модуля SC14CVMDECT Беспроводные технологии*, Телефония*, Программирование*

Upload: trinhthuan

Post on 13-Apr-2018

233 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 1

6 мая в 16:11

Знакомство с программированием DECT-модуля SC14CVMDECT

Беспроводные технологии*, Телефония*, Программирование*

Page 2: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 2

В данной статье мы познакомимся с программированием DECT модуля SC14CVMDECT,

обязательно помигаем светодиодом, а также поделимся опытом разработки решения для

SIP-телефонии на базе этого модуля.

Что такое DECT

DECT (Digital Enhanced Cordless Telephone) – технология беспроводной передачи данных

на частотах 1,9 ГГц. Применяется в основном для передачи звука в телефонии.

Существует очень много терминов, связанных с DECT, многие из которых чисто

маркетинговые и их наличие в спецификации телефонного аппарата не гарантирует

совместимость трубок или базовых станций.

Вот краткий их перечень:

DECT – общий термин, каждый производитель делает свои модификации на базе

DECT-технологии.

DECT GAP (General Access Profile) – попытка стандартизации функций и процедур

DECT-телефонов.

DECT EU, US – работа DECT в разных частотных диапазонах, и с разными уровнями

мощности.

CAT-iq (Cordless Advanced Technology, Internet and Quality) – спецификации

поддерживаемых функций. CAT-iq v1 регламентирует в основном передачу звука,

CAT-iq v2 – возможность хранения и синхронизации текстовых данных (адресной

книги, например), CAT-iq v3 – передача бинарных данных, удалённое обновление

прошивки, передача HTTP-контента.

FP (Fixed Part) – базовая станция, регистрирующая трубки. PP (Portable Part) – переносная телефонная трубка.

Простейшие примеры использования DECT

Передача звука Точка-Точка (он же режим Walkie-talkie) – можно использовать для

общения двух абонентов без посредников.

Передача FP – PP – с трубки можно позвонить на обычную телефонную линию или

на SIP-сервер, используя базовую станцию для подключения к ним.

Передача FP — несколько PP – аналогично предыдущему примеру, к тому же

возможно совершать вызовы Трубка-Трубка (но только через FP), устраивать конференции, совершать несколько параллельных вызовов.

Сравнение с Wi-Fi, Bluetooth

Кроме беспроводных телефонов DECT, сейчас набирают популярность телефоны Wi-Fi – они проще

интегрируются в инфраструктуру организации, поскольку в качестве базовой станции используется

обычный Wi-Fi-роутер. К тому же некоторые Wi-Fi-телефоны имеют выход Ethernet – т.е. можно

подключать стационарные ПК, в которых нет сетевого адаптера Wi-Fi.

В DECT же есть одно неоспоримое преимущество – работа на отдельном диапазоне частот. А с

Page 3: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 3

учётом, что Wi-Fi-устройств становится всё больше и больше, это главный плюс.

Из дополнительных плюсов DECT по сравнению с Wi-Fi – качественная передача речи, без задержек и

разрывов. В Wi-Fi качество тоже может быть хорошим, но только если Wi-Fi-телефон используется как

телефон и вокруг не так много радиопомех. Если же он совмещает функции телефона и точки

подключения ПК, то нужно настраивать QoS (quality of service) для приоритезации звонков, а это не

всегда доступно и не всегда удобно.

Если сравнивать DECT с Bluetooth, то тут однозначно лучше DECT. У DECT радиус действия больше.

Bluetooth работает на частоте 2,4 ГГц, как и Wi-Fi, т.е. более подвержен помехам, и, как следствие,

качество передачи речи хуже.

В итоге, остаётся выбор DECT vs Wi-Fi, и однозначного решения, что лучше, нет.

Описание кита SC14CVMDECT_AF

Более подробная информация: http://www.dialog-semiconductor.com/products/short-range-

wireless/cordless-voice-module-(cvm)

Общий вид кита:

Page 4: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 4

Возможности чипа:

DECT ULE (Ultra Low Energy) – поддержка ультранизкого потребления энергии

Поддержка протоколов CAT-iq 1.0, 2.0, 3.0

Регистрация до 6 трубок к одной базовой станции Работа в частотных диапазонах:

1. 1880 – 1900 МГц – Европа

2. 1920 – 1930 МГц – США и Канада

3. 1893,5 – 1906,1 МГц – Япония

Напряжение питания: 2,1 – 3,45 В Потребление тока:

1. Режим готовности – 4,5 мА 2. Разговор – 30 мА

Встроенная антенна. Есть возможность подключения внешней антенны

Управляющий интерфейс – UART

Передача звука:

1. Возможность подключения микрофона и наушников 2. PCM шина – до 4-х каналов одновременно

324 Кбайт доступной flash-памяти для хранения пользовательской программы

Page 5: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 5

0,4 Кбайт EEPROM для хранения данных пользовательской программы

Общая схема подключения внешних устройств:

На рисунке приведена схема типовой DECT-трубки на базе микроконтроллера и

SC14CVMDECT модуля. Микроконтроллер отвечает за управление ЖКИ-экраном и опрос

нажатых кнопок; функции определения уровня заряда батареи, приём и передача звука отведены для DECT-модуля.

Возможные варианты разработки приложений

Разрабатывать своё приложение, взаимодействующее с DECT-модулем, можно двумя

способами:

1. На отдельном устройстве (микроконтроллере) обрабатывать всю логику и

обмениваться управляющими данными с DECT-модулем по последовательному

порту (UART), используя протокол Busmail. Busmail-протокол имеет механизм для

предотвращения потери пакетов (схож с механизмом в HDLC-протоколе), содержит

проверку очерёдности пакетов и вычисление контрольной суммы. Одновременно

можно отправить максимум 7 пакетов. Подтверждение на приём пакета должно

быть отправлено в течение 100 мс.

2. Интегрировать свою логику в приложение на DECT-модуле. С внешним миром оно

будет общаться посредством GPIO-контактов и UART. Это называется разработка COLA-приложения (Co-Located Application).

Page 6: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 6

Эти варианты отображены на следующем рисунке:

Выбор определённого типа разработки зависит, в первую очередь, от сложности

приложения. Если приложение несложное, либо использование внешнего

микроконтроллера крайне нежелательно, то лучше — второй вариант.

В остальных случаях, безусловно, удобнее первый вариант:

Он более гибкий – нет жёсткой привязки к архитектуре отдельного DECT модуля.

Более наглядный – можно просматривать и анализировать все команды,

приходящие от DECT-модуля с ведением логов.

Более простой в отладке – узнать причину падения приложения на микроконтроллере проще, чем падения на DECT-модуле.

Примеры управления DECT-модулем

Для того чтобы проще было разбираться с протоколом DECT-чипа, лучше взять уже

готовую утилиту Sendmail.exe – она входит в состав SDK. Поскольку утилита написана для

Windows, то и проверять будем на Windows.

Эта утилита позволяет отправлять команды в сыром виде. Сам формат команд нужно

смотреть в спецификации API_PpCVMDECT_v0808.pdf

Для начала, два простых примера – управление светодиодом и проигрывание мелодий.

Page 7: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 7

Как помигать светодиодом:

Первый аргумент Sendmail – номер COM-порта в 10м формате, т.е. у нас DECT-

модуль подключен к COM31.

Второй аргумент – номер задачи в DECT-модуле, которой адресуется команда. Для

сторонних разработчиков это значение всегда равно 1.

Третий – уникальный идентификатор команды в 16м формате. 0x5902 – это запрос

API_HAL_LED_REQ на управление светодиодом. Четвёртый и последующие – аргументы команды в 16м формате.

Для запроса API_HAL_LED_REQ эти аргументы значат:

02 — LedNr – номер светодиода

03 – CmdCount – количество заданий

01 FF 00 – 1е задание, включить светодиод на 255 мс (ALI_LED_ON)

00 FF 00 – 2е задание, выключить светодиод на 255 мс (ALI_LED_OFF) 02 0A 00 – 3е задание, повторить все задания 10 раз (ALI_REPEAT_SEQUENCE)

Как проиграть мелодию:

5306 – запрос API_PP_AUDIO_START_TONE_REQ на включение проигрывания тона

или мелодии

16 – ToneIndex – номер тона/мелодии

00 – VolumeDb – громкость в дБ (±127дБ)

00 – TrackGenVol – требуется ли регулировать громкость относительно общего

уровня громкости 02 – Dest – устройство вывода звука (API_TONE_HANDSFREE_LSR – через динамик)

Page 8: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 8

Получение версии прошивки DECT-модуля:

в ответ должны получить что-то похожее на:

09 88 00 00 – VersionHex – версия прошивки, т.е. 0x00008809

12 09 06 17 32 – LinkDate – дата сборки прошивки, 06 сентября 2012 в 17:32

f – DectType – частотный режим приёмо-передатчика (API_DECT_TYPE_INVALID).

Этот параметр важен, если модуль работает в режиме FP. Может быть EU, US, China и др. Для изменения режима нужно отправить запрос API_PROD_TEST_REQ.

Если данные примеры не воспроизводятся, восстановите заводские настройки (включается режим PP):

Подождите секунд 10 и отключите COLA (Co-Located Application):

А затем перезапустите модуль:

Пример Walkie Talkie (Pp2Pp) — возможность вызова абонентами друг друга

Page 9: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 9

Pp2Pp – двусторонняя беспроводная связь между двумя абонентами.

В составе SDK есть уже пример Pp2Pp, причём и для случая запуска приложения на DECT-

чипе и в случае его запуска с PC. Он универсален, и от того первое знакомство с ним

может привести в шок.

Мы же рассмотрим, как реализовать связь двух трубок между собой с помощью всё той же

консольной утилиты Sendmail.exe.

Схема подключения КИТ’ов к PC:

Процедура установления связи с использованием Sendmail.exe

1) Вход в режим Pp2Pp

Sendmail.exe 30 1 4920 02 02 30

Sendmail.exe 31 1 4920 02 02 31

Sendmail.exe 30 1 5324

Sendmail.exe 31 1 5324

2) Вызов абонента

Sendmail.exe 30 1 4924

Sendmail.exe 30 1 4926 31

Sendmail.exe 31 1 5306 16 00 00 02

3) Подъём трубки

Sendmail.exe 31 1 4929

Page 10: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 10

4) Включение звука

Sendmail.exe 30 1 5303 0

Sendmail.exe 30 1 5323 01

Sendmail.exe 30 1 5301 03

Sendmail.exe 31 1 5303 0

Sendmail.exe 31 1 5323 01

Sendmail.exe 31 1 5301 03

Ура! Звук пошёл!

За этими магическими наборами цифр кроется управление машиной состояний DECT-

модуля. Поэтому очерёдность вызовов очень важна. К сожалению, Sendmail.exe не

дожидается прихода подтверждающих уведомлений от модуля, и полная картина обмена

сообщениями не ясна.

А вот на следующем рисунке отображена полная последовательность Busmail-сообщений

между ПК и двумя DECT-модулями:

Page 11: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 11

Трудности, с которыми мы столкнулись при реальной разработке

Реальная задача, в которой использовались DECT-модули – это реализация SIP-телефонов

для 6 одновременно зарегистрированных трубок. Причём трубки могут быть различных

производителей, главное, чтобы они поддерживали в полном объёме базовый CAT-iq. В

качестве DECT-модуля использовался SC14CVMDECT-AF. Одновременно разговор может

вестись по 4м трубкам. Каждая трубка может вызывать одновременно несколько SIP-

абонентов и переключаться между ними. Для трубок CAT-iq 2.0 поддерживается общая

телефонная книга, информация о пропущенных вызовах и wideband-звонки.

Page 12: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 12

Трудности:

1. В первоначальных редакциях SDK настоятельно предлагалось использовать AT-

команды. Они похожи на AT-команды модемов, но более специфические. Эти AT-команды

генерировало и обрабатывало отдельное приложение, выполняющееся на DECT-модуле.

Работали они кое-как, хорошо, что были исходники этого приложения, мы уже начали

исправлять какие-то ошибки, как вдруг оказалось, что Dialog Semiconductor отказывается

от -команд и заменяет их более низкоуровневыми -командами.

На тот момент не было ещё чудо-утилиты Sendmail.exe и её исходников, так что пришлось

самим писать парсер и генератор для -протокола, что было, конечно, не самой простой

задачей.

Но в последних редакциях документацию хорошо подготовили, примеров полно. Так что

пользоваться можно без опасений.

2. Многообразие «совместимых» CAT-iq трубок усложняет процедуру установления связи

между FP и PP: последовательность Busmail-сообщений может меняться, и об этом в

документации мало данных, т.к. одни трубки присылают набранный номер в одном

сообщении, другие – в нескольких или в дополнении к иному сообщению.

Очень порадовали трубки — 2.0. По сравнению с — 1.0, они гораздо стабильнее работают

и процесс взаимодействия наиболее схож с описанным в документации.

3. На момент разработки с трудом нашли трубки CAT-iq 2.0, пришлось заказывать в

Германии. Они только появлялись на рынке. Возможно, сейчас ситуация получше.

4. Для UART нужен отдельный драйвер (согласователь уровней), поскольку для него

сигнал логической «1» равен 1.8В.

5. Busmail-интерфейс предполагает подтверждение ответа в течении 100 мс. Поэтому

обработка Busmail-сообщений должна выполнятся как можно быстрее.

Заключение

SC14CVMDECT довольно неплохой модуль для реализации поддержки DECT. У него много

возможностей, и поэтому его применение только в качестве средства связи двух точек

слегка избыточно. Но вот если нужна реализация CAT-iq 2.0, регистрация и

одновременная работа нескольких трубок или при отсутствии внешнего микроконтроллера

SC14CVMDECT – очень даже неплохой вариант.

Жаль только, что в нём не реализовано управление по SPI (для встраиваемых применений

SPI иногда удобнее, чем UART).

Page 13: 6 мая в 16:11 Знакомство с ... - promwad.ru ·  Тел. +7 (495) 642–82–43. Email: info@promwad.ru  Тел. +375 (17) 312–12–46. Email: info@promwad.com

Блог компании: habr.ru/users/Promwad/

www.promwad.ru Тел. +7 (495) 642–82–43. Email: [email protected] www.promwad.com Тел. +375 (17) 312–12–46. Email: [email protected] Promwad l Electronics Design © 2014 13

Источник: http://habrahabr.ru/post/221997/