Man On a Mission

システム運用屋が、日々のあれこれや情報処理技術者試験の攻略を記録していくITブログ…というのも昔の話。今や歴史メインでたまに軍事。別に詳しくないので過大な期待は禁物。

T90Chiその後…というかBluetoothの話

ASUSの2in1 PC、T90CHI-3775を購入後、いくつか記事を書いてきました
T90CHIの使い勝手を中心に感想を書いてきたのですが、今やごく普通に日常に溶け込んだ状態で、もはや取り立てて書くことも大してありません。
しかし、前回記事にて取り上げたキーボードの誤動作についてどうにか対策できたっぽいので、そこだけフォローします。

キーボードの誤動作

T90CHIの付属キーボードはなかなか打ちやすいのですが、残念ながらたまに誤動作することがありました。
キーボード入力してる際、なにかの拍子で打ち込んだキーが押しっぱなしにされているような状態になります。
これが発生すると、数分間はこの状態が続き、作業が中断させられてしまい困っていました。
一応の対処として、キーボードの電源を切り、いったんスリープまたはサスペンドに入ることで復旧できます。

対策方法

ある対策を取るようにしてから、この誤動作が起こらなくなりました。
もったいぶるほどのことでも無いので、早速、対策内容について書きます。

WiFi接続した後にキーボード電源を入れる」

これだけです。

一応の説明

なぜ、これだけで誤動作しなくなったのか?
一応、理由について書いておきます。とは言え、正直なところ確たる根拠はなにも無く、ほとんどカンにすぎないのですが…。
(なお、ほぼBluetoothの話になりますので、興味の無い方には、これから先、無用の情報となります。)

最初の検討

前回記事で書いたとおり、この現象はT90CHIに限らないようで、Bluetoothキーボードで類似の事象が散見されます。
それで、電波状況の問題ではないかと疑っていました。
Bluetoothでは2.4GHz帯の周波数帯域を利用しています。
しかしながら、この2.4GHz帯、Bluetooth以外にも、無線LANWiFi)、コードレス電話、電子レンジなど結構な数の機器が利用しており、これらの機器との電波干渉が発生すると、通信が不安定になることがあります。

と、ここまではご存知の方も多い話ですね。
私の自宅でも無線LANは利用してますので、当初、無線LANのチャネルをずらしてみようかと思ったのですが、よくよく考えると、我が家では隣近所のWiFi電波が入り乱れております。その状態でチャネルをちょっとずらしたところで、どれほどの効果があるかは疑問です。
あと、この対処法だと、チャネルをずらす→誤動作しないかしばらく様子見、といったことを何度も繰り返す羽目になりかねません。かなり気長かつ面倒な対処です。
そんなわけで、めんどくせえ、やりたくねえ、けど誤動作うぜえし…と懊悩していたのですが、ここで、そもそもBluetoothの原理についてあまり知らないことに思い当たりました。
Bluetoothについて大した知識もないくせに、わかったつもりになってチャネルずらそうとしてねえか?そもそもその対処法は無線LANの話じゃねえのか。
などと、心の中のツッコミ魔から責められたので、しかたなくBluetoothの仕組みから調べはじめました。

Bluetoothについて

で、色々調べた結果、参考になりそうな以下のサイトに行き当たりました。

検索結果|Wireless・のおと|サイレックス・テクノロジー株式会社

上の中の、特に以下の記事。

Bluetoothのはなし(5)|Wireless・のおと|サイレックス・テクノロジー株式会社

以下、上記記事よりWiFiとの干渉について主だったところをまとめます。

  • 同じ2.4GHz帯を使用していても、WiFiBluetoothでは使い方が異なる。
  • WiFiが固定されたチャネル22MHz分の全体を占有するのに対し、Bluetoothでは約80MHzの帯域幅の間から、ランダムかつ瞬間的に1MHz占有する(周波数ホッピング方式)。
  • WiFiBluetoothの電波が衝突すると、出力強度の関係上、Bluetoothが負けることが多い(衝突したフレームが消える)。
  • 干渉によりフレームが消失すると、Bluetoothはパケット損失をタイムアウトで検出し再送する(再送時は違う周波数で送出する確率が高い)。
  • 小型機器では、実装面積の関係上、WiFiBluetoothのアンテナが隣接するため干渉の影響が大きい。
  • Bluetooth1.2では、干渉軽減技術AFH(Adaptive Frequency Hopping)が導入されており、パケット損失が頻発するチャネルは使わないようにする。
  • WiFiBluetooth間で情報連携を行い、アンテナを「譲り合って」使うPTA(Packet Traffic Arbitration)という方式があるが、チップメーカーごとに実装が異なる。

上記を見ると、それほどBluetoothWiFiの干渉は起こらなそうなのですが、実際にはそこそこの頻度でキーボードが誤動作してます。

干渉軽減するAFHについて調べたところ、以下サイト(リンク先はPDF)からAFHの実装についてはシリコンベンダーに依存していること、PCによってWiFi接続時から帯域回避を行うもの、実際の通信が発生した時に帯域回避を行うものが見られたという情報を得ました。

BEX400を用いたWLANのBluetooth 干渉確認例 Rev2(PDF)

上記を見て、T90CHIのAFHの挙動が関係しているのでは?と考えました。
そこで、WiFi接続を確立してからBluetoothをオンにして使ってみることを思いつき(お察しの通り技術的根拠はありません。)試してみると…嘘のように誤動作が起こらなくなりました。

このやり方で使い始めてから、そろそろ1ヶ月ほどになりますが、その間、誤動作は起こっていません。
まあ、ちょっとWebで調べた程度ですので、実際にT90CHIのAFHの挙動が関係していたのかは分かりません。
とりあえず、多少Bluetoothについて勉強できたし、トラブルも解決したので、まあ良いかと。
なにやら中途半端な記事になってしまいましたが…。