HOME > ソフテックだより > 第187号(2013年6月5日発行) 技術レポート「Bluetooth通信アプリケーション開発について」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第187号(2013年6月5日発行)
技術レポート

「Bluetooth通信アプリケーション開発について」

1. はじめに

工場ではHandy Terminal(ハンディターミナル、以下、HT)などのモバイル端末を用いて、作業の効率化を行うシステムの導入がすすんでいます。その際、周辺機器との無線通信手段の一つとして、Bluetooth(ブルートゥース)があります。今回は、HTを使用したBluetooth通信アプリケーションの開発事例について紹介させていただきます。

2. Bluetoothの概要

2-1. Bluetoothとは?

2.4GHz帯を使用して比較的低速度のデジタル情報の無線通信を行う用途に採用されている無線規格のことです。Bluetoothは全世界で共通仕様となっており、マウスやキーボードなどのPCの周辺機器やスマートフォンなどのモバイル端末に幅広く利用されています。

2-2. 特徴

(1)通信距離について

Bluetooth製品は3つのClassに分かれており、Classによって通信距離の有効範囲が異なります。

  • Class1・・・100m
  • Class2・・・10m
  • Class3・・・1m

(2)低消費電力

Bluetoothは、「パークモード」 、「ホールドモード」、「スニフモード」の3つの省電力モードがあります。また、Classの通信距離が短いほど、低消費電力が可能になります。

(3)障害物に強い

Bluetoothは障害物に強く、ポケットなどにBluetooth通信機器を入れていても外部の通信機器へ電波が届きます。

(4)シリアル通信の無線化がしやすい

Bluetoothには、SPP(Serial Port Profile)というシリアル通信を無線化するプロファイル(※1)が策定されています。このプロファイルを使用すると、ユーザ(開発者)は通常のシリアル通信と同じような手順でプログラムを作成することができます。

2-3. 通信規格

現在、以下の通信規格が策定されています。

バージョン 最大通信速度
(対称性通信時)
主な変更点
1.x 432.6kbps 普及バージョン
2.x 1306.9kbps ペアリングの簡略化、EDA(※2)追加
3.x 24.0Mbps HS(※3)追加
4.x 1.0Mbps 省電力化

表1. BlueTooth通信規格

2-4. 注意点

Bluetoothで使用する2.4GHz帯は無線LANの使用する帯域と同じです。
そのため、無線LANの電波とBluetoothの電波が干渉して、速度の低下が起こる可能性があります。

3. 開発事例

工場向けのHTのアプリケーションで、Bluetoothを使用したときの開発事例について紹介いたします。

3-1. システム構成について

開発目的はBluetooth通信で計測結果を取得し、計測結果の手入力を自動化することになります。
図1. システム構成図

従来、計測機器の計測結果はHTアプリケーション上で手入力を行っており、HT上での数値入力に手間がかかっていました。
開発目的はBluetooth通信で計測結果を取得し、計測結果の手入力を自動化することになります。

3-2. 開発環境について

今回の開発環境は以下の通りです。

  • DT-5300・・・カシオ社製HT
  • Visual Studio 2008 (C#) SP1・・・開発環境
  • .NET Compact Framework3.5開発・・・実行環境(※4)
  • DT-5300-SDK・・・カシオ社提供の開発ライブラリ(※5)

3-3. 通信処理の流れ

本開発では、計装機器に合わせてSPPで通信を行っています。
通信処理の流れは以下の図の通りです。

本開発では番号順でSPPの通信を行っています。
図2. 通信処理の流れ

計測機器が、HTからのペアリング要求の受付を開始します。
Bluetoothのためのデバイスの初期化を実行します。
ペアリングを実行します。 ペアリングとは2台のBluetoothデバイスの接続設定を行うことです。
ペアリングモードの要求の受付を終了します。
仮想COMポートをオープンします。
計測機器側からマスタへ接続操作を行います。 今回の計測機器は、④の後に接続処理が成功するまで、一定周期で接続処理を繰り返すようになっています。
計測結果を送信します。 今回の計測機器は、1秒間に3〜4回の計測結果を送信します。
受信した計測結果を自動入力します。
仮想COMポートをクローズします。
Bluetoothのためのデバイスの終了処理をします。

3-4. 開発で苦労した点について

今回の開発環境は以下の通りです。

(1) デバッグ実行時の動作が通常時と異なる。

HTで通常にアプリを起動する分には問題なくても、デバッガからデバッグ実行を行う時には、通信ができないケースがありました。タイミングの問題と推測できますが、デバッガを有効活用できず、問題点の原因追究に時間がかかりました。

(2) 計測結果にノイズが乗る場合がある。

計測結果は、決められたフォーマットの送信メッセージに準拠して送られてきます。しかし、受信したメッセージが、決められたフォーマットから若干異なっている場合が稀にありました。そういった場合、そのメッセージを破棄するようにしています。

(3) Bluetoothデバイスの接続と切断を繰り返すと、通信できなくなる場合がある。

まず、決められた手順以外で接続/切断を行わないと、Bluetoothデバイスが制御不能状態になってしまい、通信ができなくなってしまうことがあります。そういった場合、HTをリセットして、初めから処理をやり直さないと、通信を再開することができません。

しかし、決められた手順で接続/切断を行っても、通信ができなくなってしまう現象が発生しました。この場合も、HTをリセットするしか、通信を再開する手段がありません。発生頻度は、1日数時間の使用で、1週間に1〜2回です。

Bluetoothの問題と関係するかはわかりませんが、メーカのQ&Aで、「おかしいと思ったら、すぐリセット」、「定期的なリセット(例:1日1回)を行うようにしてください。」という記載があります。
そこで、通信ができなくなったときにリセットができる機能を追加し、1日の使用が終わった段階でリセットを行う運用として、問題の発生の頻度を減らす対策を行っています。

4. おわりに

今回は、Bluetoothの概要とそれを使用した開発事例についてご紹介させていただきました。
拙い文章ですが、お読みくださりありがとうございました。本稿が皆様の参考になれば、幸いです。

(K.S.)

[注釈]
※1
Bluetoothは様々なデバイスでの通信に使用される為、機器の種類ごとに策定されたプロトコルがあり、これをプロファイルと呼び標準化しています。
※2
Enhanced Data Rate: 容量の大きいデータを通信する際に高速通信に切り替えるオプション
※3
High Speed: 無線LAN規格IEEE 802.11を利用して通信速度を向上するオプション
※4
Windows CEベースのモバイル・組み込みデバイス上で動作するように設計されたアプリケーション開発・実行環境
※5
Bluetooth通信ライブラリも含まれます。

関連ページへのリンク

関連するソフテックだより

ページTOPへ