
この記事では、SC14CVMDECTのDECTモジュールのプログラミングに精通し、LEDを点滅させ、このモジュールに基づいてSIPテレフォニーのソリューションを開発した経験を共有します。
DECTとは
DECT(Digital Enhanced Cordless Telephone)は、1.9 GHzでのワイヤレスデータ伝送のためのテクノロジーです。 主に電話の音声伝送に使用されます。
DECTに関連する多くの用語がありますが、その多くは純粋にマーケティングであり、電話仕様に存在することは、ハンドセットまたは基地局の互換性を保証しません。
以下にそれらの短いリストを示します。
- DECTは一般的な用語であり、各メーカーはDECTテクノロジーに基づいて独自の変更を行います。
- DECT GAP(一般アクセスプロファイル)-DECT電話の機能と手順を標準化する試み。
- DECT EU、US-さまざまな周波数範囲およびさまざまな電力レベルでのDECT操作。
- CAT-iq(コードレスアドバンストテクノロジー、インターネット、および品質)-サポートされる機能の仕様。 CAT-iq v1は主に音声伝送を規制し、CAT-iq v2-テキストデータ(アドレス帳など)を保存および同期する機能、CAT-iq v3-バイナリデータ転送、リモートファームウェアアップデート、HTTPコンテンツ転送を調整します。
- FP(固定部分)-ハンドセットを登録する基地局。
- PP(Portable Part)-携帯電話のレシーバー。
DECTを使用した最も簡単な例
- 音声伝送ポイントツーポイント(別名トランシーバーモード)-仲介なしで2人の加入者間の通信に使用できます。
- FP-PP-をハンドセットから転送し、ベースステーションを使用して通常の電話回線またはSIPサーバーに呼び出して接続することができます。
- FP伝送(複数のPP)は前の例に似ていますが、Tube-Tube呼び出し(FP経由のみ)、会議の手配、複数の並列呼び出しを行うことができます。
Wi-Fi、Bluetoothとの比較
DECTコードレス電話に加えて、Wi-Fi電話の人気が高まっています。通常のWi-Fiルーターがベースステーションとして使用されているため、組織のインフラストラクチャへの統合が容易です。 さらに、一部のWi-Fi電話にはイーサネット出力があります。 Wi-Fiネットワークアダプターを持たない固定PCを接続できます。
DECTには、議論の余地のない利点が1つあります。それは、別の周波数範囲で作業することです。 そして、Wi-Fiデバイスがますます増えていることを考慮すると、これは大きなプラスです。
Wi-Fiと比較したDECTの追加の利点は、遅延や中断のない高品質の音声伝送です。 Wi-Fiでは、Wi-Fi電話が電話として使用され、周囲に多くの無線干渉がない場合にのみ、品質も良好になります。 電話機の機能とPCの接続ポイントを組み合わせる場合は、QoS(サービスの品質)を構成して通話の優先順位を設定する必要があります。これは常に利用可能ではなく、必ずしも便利ではありません。
DECTとBluetoothを比較すると、DECTは間違いなく優れています。 DECTの範囲は広くなっています。 Bluetoothは、Wi-Fiなどの2.4 GHzの周波数で動作します。 干渉を受けやすくなり、その結果、音声品質が低下します。
その結果、DECT対Wi-Fiの選択肢が残っており、明確な解決策はありません。
SC14CVMDECT_AFキットの説明
詳細: http : //www.dialog-semiconductor.com/products/short-range-wireless/cordless-voice-module-(cvm)
クジラの一般的なビュー:


チップの 特徴 :
- DECT ULE(超低エネルギー)-超低エネルギー消費をサポート
- プロトコルサポートCAT-iq 1.0、2.0、3.0
- 1つのベースステーションに最大6台のハンドセットを登録する
- 周波数範囲で動作します:
- 1880-1900 MHz-ヨーロッパ
- 1920-1930 MHz-米国およびカナダ
- 1893.5-1906.1 MHz-日本
- 供給電圧:2.1-3.45 V
- 消費電流:
- レディモード-4.5 mA
- トーク-30 mA
- 内蔵アンテナ 外部アンテナを接続することが可能です
- 管理インターフェース-UART
- 音の伝達:
- マイクとヘッドフォンを接続する機能
- PCMバス-同時に最大4チャネル
- ユーザープログラムを保存するための324 KBのフラッシュメモリ
- ユーザープログラムデータを保存するための0.4 KB EEPROM
外部デバイスを接続するための一般的なスキーム:

この図は、マイクロコントローラーとSC14CVMDECTモジュールに基づいた一般的なDECTチューブの図を示しています。 マイクロコントローラーは、LCD画面の制御と押されたボタンのポーリングを行います。 バッテリーレベル、音声の受信および送信を決定する機能は、DECTモジュール専用です。
可能なアプリケーション開発オプション
DECTモジュールと対話するアプリケーションを開発するには、2つの方法があります。
- 別のデバイス(マイクロコントローラー)で、すべてのロジックを処理し、Busmailプロトコルを使用してシリアルポート(UART)を介してDECTモジュールと制御データを交換します。 Busmailプロトコルには、パケット損失を防ぐメカニズム(HDLCプロトコルのメカニズムと同様)があり、パケットシーケンスのチェックとチェックサムの計算が含まれています。 一度に最大7パケットを送信できます。 パケットの受信確認は、100ミリ秒以内に送信する必要があります。
- ロジックをDECTモジュール上のアプリケーションに統合します。 GPIOコンタクトとUARTを介して外部と通信します。 これは、COLAアプリケーション(Co-Located Application)の開発と呼ばれます。
これらのオプションを次の図に示します。

特定のタイプの開発の選択は、まず、アプリケーションの複雑さに依存します。 アプリケーションが単純な場合、または外部マイクロコントローラーを使用することが非常に望ましくない場合は、2番目のオプションの方が適しています。
もちろん、最初のオプションの方が便利な場合もあります。
- より柔軟性があります-別のDECTモジュールのアーキテクチャへの厳密なバインドはありません。
- より直感的に-DECTモジュールからのすべてのコマンドをログで表示および分析できます。
- デバッグが簡単-アプリケーションがマイクロコントローラーでクラッシュする理由を見つけるのは、DECTモジュールでクラッシュするよりも簡単です。
DECTモジュール制御の例
DECTチップのプロトコルを扱いやすくするために、すでに完成したSendmail.exeユーティリティを使用することをお勧めします。これはSDKの一部です。 このユーティリティはWindows用に作成されているため、Windowsで確認します。
このユーティリティを使用すると、生の形式でコマンドを送信できます。 コマンド形式自体は、仕様API_PpCVMDECT_v0808.pdfで調べる必要があります
手始めに、2つの簡単な例はLED制御とメロディー再生です。

LEDを点滅させる方法:
Sendmail.exe 31 1 5902 02 03 01 FF 00 00 FF 00 02 0a 00
- Sendmailの最初の引数は、10m形式のCOMポート番号です。 COM31に接続されたDECTモジュールがあります。
- 2番目の引数は、コマンドの宛先となるDECTモジュール内のタスク番号です。 サードパーティ開発者の場合、この値は常に1です。
- 3番目は16m形式のチームの一意の識別子です。 0x5902は、LED制御のためのAPI_HAL_LED_REQ要求です。
- 4番目以降は、16番目の形式のチームの引数です。
API_HAL_LED_REQリクエストの場合、これらの引数の意味は次のとおりです。
- 02-LedNr-LED番号
- 03-CmdCount-タスクの数
- 01 FF 00-最初のタスク、255ミリ秒間LEDをオンにする(ALI_LED_ON)
- 00 FF 00-2番目のタスク、255ミリ秒間LEDをオフにする(ALI_LED_OFF)
- 02 0A 00-3番目のタスク、すべてのタスクを10回繰り返します(ALI_REPEAT_SEQUENCE)

メロディーの演奏方法:
Sendmail.exe 31 1 5306 16 00 00 02
- 5306-トーンまたはメロディーの再生を有効にするAPI_PP_AUDIO_START_TONE_REQ要求
- 16-ToneIndex-トーン/メロディー番号
- 00-VolumeDb-dB単位の音量(±127dB)
- 00-TrackGenVol-全体的な音量レベルに対して音量を調整する必要がありますか
- 02-Dest-サウンド出力デバイス(API_TONE_HANDSFREE_LSR-スピーカー経由)
DECTモジュールのファームウェアバージョンの取得:
Sendmail.exe 31 1 5200 5200 - API_PP_GET_FW_VERSION_REQ
応答として、次のようなものを受け取るはずです。
Result: Primitiv: 5201, Data: 09 88 00 00 12 09 06 17 32 ff 5201 - API_PP_GET_FW_VERSION_CFM
- 09 88 00 00-VersionHex-ファームウェアバージョン、つまり 0x00008809
- 12 09 06 17 32-LinkDate-ファームウェアのビルド日、2012年9月6日17:32
- f-DectType-トランシーバーの周波数モード(API_DECT_TYPE_INVALID)。 モジュールがFPモードの場合、このパラメーターは重要です。 EU、US、中国などを指定できます。モードを変更するには、API_PROD_TEST_REQリクエストを送信する必要があります。
これらの例が再生されない場合は、工場出荷時の設定を復元してください(PPモードが有効になっています)
Sendmail.exe 31 1 4FFE 02 01 00 01 01
10秒待ってからCOLA(Co-Located Application)をオフにします。
Sendmail.exe 31 1 5802 FF 00
そして、モジュールを再起動します。
Sendmail.exe 31 1 5202
例のトランシーバー(Pp2Pp)-互いのサブスクライバーを呼び出す機能

Pp2Pp-2人の加入者間の双方向ワイヤレス通信。
SDKには、DECTチップでアプリケーションを起動する場合とPCから起動する場合の両方のPp2Ppの例が既に含まれています。 それは普遍的であり、それから最初の知り合いはショックにつながる可能性があります。
同じコンソールユーティリティSendmail.exeを使用して、2つのハンドセットの相互接続を実現する方法を検討します。
KIT'ovを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
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はモジュールからの確認通知を待たず、メッセージングの全体像は明確ではありません。
ただし、次の図は、PCと2つのDECTモジュール間のBusmailメッセージの完全なシーケンスを示しています。

実際の開発で遭遇した困難
DECTモジュールが使用された実際のタスクは、同時に登録された6台のハンドセットにSIP電話を実装することです。 さらに、チューブはさまざまなメーカーのものにすることができますが、主なことは、基本的なCAT-iqを完全にサポートすることです。 SC14CVMDECT-AFがDECTモジュールとして使用されました。 同時に、会話は4つのハンドセットで行うことができます。 各ハンドセットは、複数のSIPサブスクライバーを同時に呼び出して、それらを切り替えることができます。 CAT-iq 2.0ハンドセットでは、共有電話帳、不在着信情報、およびワイドバンドコールがサポートされています。
問題点:
1.初期のSDKでは、ATコマンドの使用を強く推奨しました。 ATモデムコマンドに似ていますが、より具体的です。 これらのATコマンドは、DECTモジュールで実行されている別のアプリケーションによって生成および処理されました。
彼らは何とか働いた、このアプリケーションのソースコードがあったことは良いことだ、私たちはすでにいくつかのエラーを修正し始めたとき、Dialog Semiconductorは突然コマンドを拒否し、それらを下位レベルのコマンドに置き換えることが判明しました
当時はまだ奇跡のユーティリティSendmail.exeとそのソースがなかったため、プロトコルのパーサーとジェネレーターを自分で作成する必要がありましたが、これはもちろん簡単な作業ではありませんでした。
しかし、最新版では、ドキュメントは十分に準備されており、多くの例があります。 だから、あなたは恐れることなくそれを使うことができます。
2.さまざまな「互換性のある」CAT-iqチューブにより、FPとPP間の通信を確立する手順が複雑になります。Busmailメッセージのシーケンスは変更される可能性があります。 一部のハンドセットは、ダイヤルされた番号を1つのメッセージで送信し、他のハンドセットは複数のメッセージで、または別のメッセージに追加して送信します。
チューブに非常に満足しています-2.0。 -1.0と比較すると、動作ははるかに安定しており、対話プロセスはドキュメントで説明されているものと最も類似しています。
3.開発時には、CAT-iq 2.0チューブはほとんど見つかりませんでした。ドイツで注文する必要がありました。 彼らはちょうど市場に登場しました。 おそらく今は状況が良くなっているでしょう。
4. UARTには論理「1」信号が1.8Vであるため、別のドライバー(レベルコーディネーター)が必要です。
5. Busmailインターフェースは、100ミリ秒以内に応答の確認を想定しています。 したがって、Busmailメッセージの処理はできるだけ早く実行する必要があります。
おわりに
SC14CVMDECTは、DECTサポートを実装するための非常に優れたモジュールです。 多くの可能性があるため、2つのポイント間の通信手段としてのみ使用することはわずかに冗長です。 ただし、CAT-iq 2.0の実装が必要な場合、複数のハンドセットの登録と同時操作、または外部マイクロコントローラーSC14CVMDECTがない場合は非常に優れたオプションです。
SPI制御を実装していないのは残念です(組み込みアプリケーションの場合、SPIはUARTよりも便利な場合があります)。
[!?]質問やコメントを歓迎します。 Promwad Electronics Design CenterのソフトウェアエンジニアであるDmitry Valentoの記事の著者が回答します。