【紹介動画も公開中】ムセンコネクト著書『Bluetooth無線化講座―プロが教える基礎・開発ノウハウ・よくあるトラブルと対策―』絶賛発売中

【最重要】ハードウェアフロー制御を軽視するとBluetoothモジュールはどうなるのか?

こんにちは、ムセンコネクトCMOの清水です。(プロフィール紹介はこちら

今回はBluetoothモジュールのトラブル原因に関するお話です。

目次

動作不良の原因No.1は「ハードウェアフロー制御なし」

Bluetoothモジュールのトラブルの原因として一番多い理由は何か?

それは、「ハードウェアフロー制御をしていない」です。

事実、これまで前職も含めると15年以上、数多くのお問い合わせに対応してきましたが、お客様からお問い合わせいただく不良動作の大半は「ハードウェアフロー制御をしていない」ことが原因でした。

Bluetoothモジュールとマイコン間のUART接続では「ハードウェアフロー制御」が必要であり、ムセンコネクトのBluetoothモジュールLINBLEでは「ハードウェアフロー制御が動作保証条件」となっています。マニュアルにもその旨は記載しているのですが、残念ながらハードウェアフロー制御なしで利用されているエンジニアの方も一定数いらっしゃいます。

BluetoothモジュールのUART制御にはハードウェアフロー制御が必要です

お客さまがフロー制御をしない理由は様々です。
『使用するマイコンにCTS/RTSがない。』
『出来るだけUART制御に手間をかけたくない。』
など、制御しない理由が明確なケースもある一方、
『深い意味はないが、ただなんとなくフロー制御しなくて良いと判断した。』
というケースもあるようです。

つまり、なんとなくハードウェアフロー制御を軽視してしまっているのです。

では、ハードウェアフロー制御を軽視すると、Bluetoothモジュールはどうなるのでしょうか?

「ハードウェアフロー制御なし」は万病の元

ストレスや喫煙は万病の元と言われます。これは、カラダのあらゆる病気や体調不良はストレスや喫煙が原因になり得るというものです。

Bluetoothモジュールにおける「ハードウェアフロー制御なし」も同じことが言えます。過去の経験上、ハードウェアフロー制御を行わないことによって、ありとあらゆる不良動作の原因となり得ることがわかっています。

そして、どのような不良が、どれくらいの頻度で起きるのか、それはモジュールメーカーであるわたしたちでもわかりません。Bluetoothチップ(コアモジュール)やライブラリはハードウェアフロー制御を前提とした仕様となっており、ブラックボックスになっている部分もあるため、わたしたちでも予期することができないのです。

データ落ちやデータ化けはハードウェアフロー制御をしない場合のリスクとして、ある程度認知されていると思うのですが、一見、ハードウェアフロー制御は全く関係なさそうな不良動作であっても、適切にフロー制御を行うことで不良動作が改善された例が少なくありません。わたしたちでも想像だにしなかった不良動作の原因がフロー制御だったこともありました。

ハードウェアフロー制御なしで動作させた場合の不良動作例
  • (特定の条件下において)Bluetoothモジュールが応答しなくなる(フリーズしてしまう)
  • (特定の条件下において)BTコマンドが実行できなくなる(エラーになる)
  • (特定の条件下において)接続ができなくなる

それ故、お客さまから不良動作に関するお問い合わせをいただいたとき、わたしたちは真っ先に「ハードウェアフロー制御の有無」をヒアリングします。そして、もし「ハードウェアフロー制御なし」でご利用いただいていた場合は、まず「ハードウェアフロー制御あり」での動作確認をお願いしております。

「ハードウェアフロー制御なし」でご利用いただいている状況下では、それ以上の調査を進めることができないからです。

多くのサポート経験に基づき、ハードウェアフロー制御は「動作保証条件」となった

このように、LINBLEがハードウェアフロー制御を動作保証条件としているのは、カスタマーサポートを通じて得た多くの経験に基づいた根拠があり、「とりあえず動作保証条件にしておこう」といった軽いものではありません。ハードウェアフロー制御はなんとなく軽視して良いものではないのです。

LINBLEシリーズはハードウェアフロー制御が動作保証条件です

LINBLEの前身となったBluetoothモジュールZEALシリーズでは、当初、ハードウェアフロー制御は「推奨」としておりました。しかしながら、不良動作をご報告いただいたお客様の多くが「ハードウェアフロー制御なし」で利用されており、しかも適切にフロー制御を行うことで改善されるケースが多数ありました。そのようなサポート経験を重ねた結果、LINBLEではハードウェアフロー制御を「動作保証条件」と変更し、お客さまに注意喚起するようになりました。

後から回路変更するのは大変だからこそ、はじめから「ハードウェアフロー制御あり」で設計しましょう

過去には、『ハードウェアフロー制御をすれば改善されるのはわかった。だけど今さら回路変更なんてできない』という、八方塞がりの状況になってしまうお客さまもいらっしゃいました。不良動作が発覚し、後から回路を変更するのは容易ではありません。だからこそ、『何か問題が起きたらフロー制御やればいいや』では遅いのです。

BluetoothモジュールLINBLEシリーズをご利用の際は、必ず「ハードウェアフロー制御あり」でご利用くださいますようお願いいたします。

まとめ

  • Bluetoothモジュールをハードウェアフロー制御なしでご利用いただいた場合、ありとあらゆる不良動作を引き起こす恐れがあります。
  • 不良動作に関するお問い合わせに対しては、必ず「ハードウェアフロー制御の有無」を確認させていただきます。
  • もし「ハードウェアフロー制御なし」でご利用いただいていた場合は、まず「フロー制御あり」での動作確認をお願いしております。
  • 「ハードウェアフロー制御あり」での動作環境下における不良動作につきましては、不具合や故障等の可能性がございます。お手数ですが、ムセンコネクトまでお問い合わせください。
よろしければシェアをお願いします
目次