(57)【特許請求の範囲】
【請求項１】
近距離無線通信手段を用いて、リンクを設定した後にパケット形式でのデータの送受信を行うことが可能な、通信機器間でのパケット伝送方法において、
第１の通信機器は、リンクを設定した第２の通信機器に対して伝送するパケットサイズの最大値を、該第１の通信機器が要求する該第２の通信機器宛のデータ伝送速度の平均値を示す第１の要求値と、該第２の通信機器から取得した該第２の通信機器が要求する該第１の通信機器宛のデータ伝送速度の平均値を示す第２の要求値との比率に基づき決定することを特徴とするパケット伝送方法。
【請求項２】
前記近距離無線通信手段は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格、前記リンクは、ＡＣＬリンク（非同期コネクションレスリンク）、記パケットは、ＡＣＬパケットであり、物理チャネルを時分割することにより得られるタイムスロットを単位として該ＡＣＬパケットが伝送されることを特徴とする請求項１に記載のパケット伝送方法。
【請求項３】
前記第１の通信機器は、前記第１の要求値と前記第２の要求値とを比較し、
前記第１の要求値が前記第２の要求値よりも小さくない場合は、該第１の通信機器が伝送するＡＣＬパケットサイズの最大値を、ＡＣＬパケットが占有可能なタイムスロットサイズの最大値の候補の中で、最も大きいタイムスロット値を占めることができるように設定し、
前記第１の要求値が前記第２の要求値よりも小さい場合は、前記タイムスロット値をＮ、該第１の要求値をＳ、該第２の要求値をＴとして、Ｕ＝Ｎ×Ｓ／Ｔにて得られる値Ｕを元に、前記第１の通信機器が伝送するＡＣＬパケットが占めることのできるタイムスロット数の最大値として、ＡＣＬパケットが占有可能なタイムスロットサイズの最大値の候補の中から値Ｕに最も近い値を選択して設定し、該タイムスロット数の最大値に従順するように、該第１の通信機器が伝送するＡＣＬパケットサイズの最大値を設定することを特徴とする請求項２に記載のパケット伝送方法。
【請求項４】
前記第１の通信機器が伝送するＡＣＬパケットが占めることのできるタイムスロット数の最大値として、ＡＣＬパケットが占有可能なタイムスロットサイズの最大値の候補の中から値Ｕを下回らない最小値を選択して設定することを特徴とする請求項３に記載のパケット伝送方法。
【請求項５】
ＡＣＬパケットが占有可能なタイムスロットサイズの最大値の候補は、１、３または５の値のうち、現在ＳＣＯリンク向けに予約済であるタイムスロットを除外したタイムスロットにおいて、占有可能であるタイムスロットサイズのみを抽出したものであることを特徴とする請求項３または４に記載のパケット伝送方法。
【請求項６】
前記第１の通信機器は、
ペイロード情報を含むＡＣＬパケットを前記第２の通信機器より一定時間受信しなかった場合、該第１の通信機器が伝送するＡＣＬパケットサイズの最大値を、ＡＣＬパケットが占有可能なタイムスロットサイズの最大値の候補の中で、最も大きいタイムスロット値Ｎに変更し、
この変更の後に、再びペイロード情報を含むＡＣＬパケットを前記第２の通信機器より受信した場合、該第１の通信機器が伝送するＡＣＬパケットサイズの最大値を、前記変更の前の値に戻すことを特徴とする請求項３または４に記載のパケット伝送方法。
【請求項７】
前記第１の通信機器は、
前記第２の通信機器との間に設定したＡＣＬリンクにおける伝送品質が劣化したと判断した場合、該第１の通信機器が伝送するＡＣＬパケットサイズの最大値を減少させ、
この減少の後に、前記第２の通信機器との間に設定したＡＣＬリンクにおける伝送品質の劣化が回避されたと判断した場合、該第１の通信機器が伝送するＡＣＬパケットサイズの最大値を、前記減少の前の値に戻すことを特徴とする請求項３、４または６に記載のパケット伝送方法。
【請求項８】
前記第１の通信機器は、該第１の通信機器にて伝送済のＡＣＬパケットに対する、前記第２の通信機器から送出されるアクノレッジ情報に基づき、該第２の通信機器との間に設定したＡＣＬリンクにおける伝送品質が劣化したか否かを判断することを特徴とする請求項７に記載のパケット伝送方法。
【請求項９】
他の無線通信装置との間でリンクを設定した後にパケット形式でのデータの送受信を行うための近距離無線通信手段と、
前記リンクを設定した後に前記他の無線通信装置に対して伝送するパケットサイズの最大値を、自装置が要求する該他の無線通信装置宛のデータ伝送速度の平均値を示す要求値と、該他の無線通信装置から取得した該他の無線通信装置が要求する自装置宛のデータ伝送速度の平均値を示す要求値との比率に基づき決定する決定手段とを備え、
前記近距離無線通信手段は、前記決定手段により決定された前記他の無線通信装置に対して伝送するパケットサイズの最大値に基づいて、データの送信を行うことを特徴とする無線通信装置。
【請求項１０】
近距離無線通信手段を用いてリンクを設定した後にパケット形式でのデータの送受信を行うことが可能な通信機器に内蔵されたコンピュータをパケット伝送に関する制御部として機能させるためのプログラムであって、
第１の通信機器は、リンクを設定した第２の通信機器に対して伝送するパケットサイズの最大値を、該第１の通信機器が要求する該第２の通信機器宛のデータ伝送速度の平均値を示す第１の要求値と、該第２の通信機器から取得した該第２の通信機器が要求する該第１の通信機器宛のデータ伝送速度の平均値を示す第２の要求値との比率に基づき決定する機能をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、近距離無線通信手段を用いて、リンクを設定した後にパケット形式でのデータの送受信を行うことが可能な無線通信装置、及び該無線通信装置間でのパケット伝送方法に関する。
【０００２】
【従来の技術】
近年、２．４ＧＨｚ帯の周波数ホッピング方式を用いて各機器間でデータの送受信を行うＢｌｕｅｔｏｏｔｈ規格を採用したシステムの開発が行われている。例えば、携帯電話、ＰＨＳ(Personal Handyphone System)、パーソナルコンピュータ、携帯情報端末といった機器にＢｌｕｅｔｏｏｔｈ規格の無線モジュールを搭載させ、無線モジュールを用いてデータの送受信を行うことで、それぞれの機器間でデータの送受信を行うことが可能となる。以下では、Ｂｌｕｅｔｏｏｔｈ規格の無線モジュールを搭載した機器を、ＢＴ機器と記す。
【０００３】
ＢＴ機器間が無線リンクを介して接続されたならば、これらのＢＴ機器間においてデータの送受信を行うことが可能となる。その際、いずれか一つのＢＴ機器はマスターとして動作し、その他のＢＴ機器はスレーブとして動作する。
【０００４】
Ｂｌｕｅｔｏｏｔｈでは、チャネルは長さ６２５μｓのタイムスロットに分割され、ピコネットマスターのＢｌｕｅｔｏｏｔｈクロックに従ってスロット番号が付与される。スロット番号は０から２27−１の順に付けられ、２27−１に達すると、０に戻る。ＢＴ機器は、マスター、スレーブ共にこれらのタイムスロットを用いてパケットを伝送する。
【０００５】
Ｂｌｕｅｔｏｏｔｈでは、マスターとスレーブが交互に伝送するＴＤＤ(Time Division Duplex)スキームが使用されている。マスターは、パケットの伝送を偶数番号のタイムスロットからのみ開始できる。そしてスレーブは、マスターより自身宛にパケットが送出された場合に限り、当該パケットが伝送されたタイムスロットの次に位置する奇数番号のタイムスロットからのみ、パケット伝送の開始が可能である。また、マスター、スレーブ共に最大５つのタイムスロットに拡張したパケット伝送が可能である。
【０００６】
ところで、Ｂｌｕｅｔｏｏｔｈのリンクタイプには、ＳＣＯ(Synchronous Connection-Oriented)リンクとＡＣＬ(Asynchronous Connection-Less)リンクが存在する。ＳＣＯリンクは、一定時間間隔毎にタイムスロットを予約して通信を行う回線交換型接続であり、音声トラヒックを取り扱うのに適している。一方、ＡＣＬリンクは、ＳＣＯリンクに予約されていないタイムスロットを使用して通信を行うパケット交換型接続であり、データトラヒックを取り扱うのに適している。
【０００７】
図１３は、ＡＣＬリンクを用いたマスターと、スレーブ１またはスレーブ２との間のパケット（ＡＣＬパケット）通信の一例を示す。図１３に示す例では、マスターは、スレーブ１に対して、偶数番号のタイムスロット２ｎよりタイムスロット長５のＡＣＬパケットを送出している。このとき、マスターからのＡＣＬパケットを受信したスレーブ１には、奇数番号のタイムスロット２ｎ＋５より、マスターに対しＡＣＬパケットを送出する権利が与えられる。図１３の例では、タイムスロット２ｎ＋５よりタイムスロット長３のパケットを送出している。なお、スレーブ１がマスターに対して送出すべき情報がない場合でも、他のスレーブは、タイムスロット２ｎ＋５を用いてＡＣＬパケットの送出を行うことはできない。図１３の例では、続けてマスターは偶数番号のタイムスロット２ｎ＋８よりタイムスロット長３のＡＣＬパケットをスレーブ２に対して送出し、これを受信したスレーブ２は、奇数番号のタイムスロット２ｎ＋１１よりタイムスロット長３のＡＣＬパケットをマスターに対して送出している。
【０００８】
【発明が解決しようとする課題】
ＢＴ機器がＡＣＬリンクを用いて通信を行う場合、ＳＣＯリンクにより予約されていないタイムスロットを用いて即座にＡＣＬパケットを伝送することが可能である。また、一回のＡＣＬパケット伝送に使用可能なパケットサイズとしては、最大５つのタイムスロットに跨ることができる。
【０００９】
しかしながら、一方のＢＴ機器が、他方のＢＴ機器を考慮することなくパケットサイズを決定してＡＣＬパケットを伝送した場合、ＡＣＬリンク資源の効率的な利用という観点から不都合が生じることがある。
【００１０】
図１４は、タイムスロット長１８に相当する時間間隔毎に、マスターよりスレーブに対してタイムスロット長１５に相当するデータの送信要求と、スレーブよりマスターに対してタイムスロット長３に相当するデータの送信要求とが同時に発生する場合の、ＡＣＬリンク上でのＡＣＬパケット通信の一例を示す。図１４の例では、マスター、スレーブとも、ＡＣＬパケット長の最大値として、タイムスロット長５に相当する大きさのＡＣＬパケットの送出が可能である。
【００１１】
図１４に示すように、タイムスロット位置α、β、γは、スレーブがマスターに対してパケット送出可能なスロット位置ではあるが、このとき、スレーブではタイムスロット長３に相当するデータを既に送信済であるため、スレーブには送信すべきデータが存在しない。そのため、当該タイムスロット（α、β、γ）はデータ伝送を行わない。つまり、図１４の例では、
３÷３６≒８．３％
のＡＣＬリンク資源がデータ通信に使用されなかったこととなる。
【００１２】
また、ＡＣＬリンク上でパケット伝送時に通信エラーが発生した場合、本パケットを再送することとなるが、この場合、パケットサイズが大きいほど再送に要する時間が大きくなり、その結果、パケット伝送品質の低下をもたらすこととなる。
【００１３】
本発明は、上記事情を考慮してなされたもので、Ｂｌｕｅｔｏｏｔｈ規格を用いて、ＡＣＬリンクを設定した後にＡＣＬパケット形式でのデータの送受信を行う際に、ＡＣＬリンク資源を効率よく利用することが可能なパケット伝送方法及び無線通信装置を提供することを目的とする。
【００１４】
また、本発明は、Ｂｌｕｅｔｏｏｔｈ規格を用いて、ＡＣＬリンクを設定した後にＡＣＬパケット形式でのデータの送受信を行う際に、パケット伝送品質の低下を低く抑えることが可能なパケット伝送方法及び無線通信装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明は、近距離無線通信手段を用いて、リンクを設定した後にパケット形式でのデータの送受信を行うことが可能な、通信機器間でのパケット伝送方法において、第１の通信機器は、リンクを設定した第２の通信機器に対して伝送するパケットサイズの最大値を、該第１の通信機器が要求する該第２の通信機器宛のデータ伝送速度の平均値を示す第１の要求値と、該第２の通信機器から取得した該第２の通信機器が要求する該第１の通信機器宛のデータ伝送速度の平均値を示す第２の要求値との比率に基づき決定することを特徴とする。
【００１６】
また、本発明に係る無線通信装置は、他の無線通信装置との間でリンクを設定した後にパケット形式でのデータの送受信を行うための近距離無線通信手段と、前記リンクを設定した後に前記他の無線通信装置に対して伝送するパケットサイズの最大値を、自装置が要求する該他の無線通信装置宛のデータ伝送速度の平均値を示す要求値と、該他の無線通信装置から取得した該他の無線通信装置が要求する自装置宛のデータ伝送速度の平均値を示す要求値との比率に基づき決定する決定手段とを備え、前記近距離無線通信手段は、前記決定手段により決定された前記他の無線通信装置に対して伝送するパケットサイズの最大値に基づいて、データの送信を行うことを特徴とする。
【００１７】
また、本発明は、近距離無線通信手段を用いてリンクを設定した後にパケット形式でのデータの送受信を行うことが可能な通信機器に内蔵されたコンピュータをパケット伝送に関する制御部として機能させるためのプログラムであって、第１の通信機器は、リンクを設定した第２の通信機器に対して伝送するパケットサイズの最大値を、該第１の通信機器が要求する該第２の通信機器宛のデータ伝送速度の平均値を示す第１の要求値と、該第２の通信機器から取得した該第２の通信機器が要求する該第１の通信機器宛のデータ伝送速度の平均値を示す第２の要求値との比率に基づき決定する機能をコンピュータに実現させるためのプログラムである。
【００１８】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【００１９】
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００２０】
本発明によれば、Ｂｌｕｅｔｏｏｔｈ規格を用いてＡＣＬリンクを設定した後にＡＣＬパケット形式でのデータの送受信を行う際に、通信相手のＢＴ機器との要求品質を比較することでＡＣＬパケット長の最大値を設定することで、ＡＣＬリンク資源を効率よく利用したパケット伝送の提供が可能となる。
【００２１】
また、通信相手のＢＴ機器における送信情報の有無に基づくＡＣＬパケット長の最大値の動的な変更を施すことで、ＡＣＬリンク資源をさらに効率よく利用できる。
【００２２】
そして、通信相手のＢＴ機器からのアクノレッジ情報に基づくＡＣＬパケット長の最大値の動的な変更を施すことで、ＡＣＬパケット再送に伴うパケット伝送品質の低下を低く抑えることが可能なパケット伝送の提供が可能となる。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２４】
なお、以下では、Ｂｌｕｅｔｏｏｔｈ規格を用いて、ＡＣＬリンクを設定した後にＡＣＬパケット形式でのデータの送受信を行う場合を例にとって説明する。
【００２５】
図１に、本発明の一実施形態に係るＢＴ機器の構成（プロトコルスタックに対応するものになっている）の一例を示す。
【００２６】
図１では、Ｂｌｕｅｔｏｏｔｈの物理レイヤ仕様であるベースバンド処理部１１上に、ＡＣＬリンクを利用するデータリンクレイヤ仕様(L2CAP;Logical Link Control and Adaptation Protocol)を実行するＬ２ＣＡＰ処理部１２が乗っている。そして、Ｌ２ＣＡＰ処理部１２を利用する上位プロトコルとして、サービスディスカバリープロトコル（ＳＤＰ）１３、ＲＦＣＯＭＭ１４、テレフォニーコントロール（ＴＣＳ）１５等のプロトコル（に対応する各処理部）が存在する。なお、ＳＣＯリンクを利用する場合は、Ｌ２ＣＡＰ処理部１２を用いずに、ＳＣＯ転送を利用する上位プロトコルが直接ベースバンド処理部１１の上に乗ることとなる。本実施形態では、ＢＴ機器内のＬ２ＣＡＰ処理部１２同士がＡＣＬリンクを介して通信を行う場合について説明していく。
【００２７】
図２は、Ｌ２ＣＡＰ処理部１２におけるパケット分割の例を示す。図中、２１は、Ｌ２ＣＡＰ処理部１２で定義されるパケット（Ｌ２ＣＡＰパケット）である。Ｌ２ＣＡＰパケットは、情報ペイロードサイズをオクテット単位で表示するＬｅｎｇｔｈフィールド（２オクテット長）、パケットの宛先チャネルエンドポイントを特定するＣＩＤ（チャネル識別子）フィールド（２オクテット長）、上位層プロトコルから受信した通信情報を格納するＰａｙｌｏａｄフィールド（０〜６５５３５オクテット長）からなり、ＬｅｎｇｔｈフィールドとＣＩＤフィールドとを併せてＬ２ＣＡＰヘッダと呼ぶ。
【００２８】
ベースバンド処理部１１内に実装するＳＡＲ(Segmentation And Reassembly;細分化と再構築)機能により、Ｌ２ＣＡＰパケット２１を、ベースバンド処理部１２で取り扱うＡＣＬパケットのペイロードに分割し、またＡＣＬパケットのペイロードよりＬ２ＣＡＰパケットを再構築する。なお、本ＡＣＬパケットを受信したＢＴ機器の（ベースバンド処理部１１内の）ＳＡＲ機能がこれをＬ２ＣＡＰパケットに再構築できるように、ＡＣＬパケットのペイロードヘッダにて定義されるＬ＿ＣＨ（論理チャネル）フィールド（２ビット長）を用いて、当該ＡＣＬパケットがＬ２ＣＡＰパケットの開始部であるか否か（継続部であるか）を陽に示す。より具体的に説明すると、Ｌ２ＣＡＰパケットの最初のセグメントを含むＡＣＬパケットでは（図２のＡＣＬパケット２２参照）、Ｌ＿ＣＨフィールドには値「１０」を設定し、後続のセグメントを含むＡＣＬパケットでは（図２のＡＣＬパケット２３，２４参照）、Ｌ＿ＣＨフィールドには値「０１」を設定する。
【００２９】
図３は、ベースバンド処理部１１のＳＡＲ機能に関する部分の内部構成の一例を示す。図３に示されるように、本ベースバンド処理部１１のＳＡＲ機能に関する部分は、Ｌ２ＣＡＰパケットの細分化を行うＬ２ＣＡＰパケット分割部３１、ヘッダ等を付与することでＡＣＬパケットを生成するＡＣＬパケット生成部３２、ＡＣＬパケットもしくはＳＣＯパケットのタイムスロット上への送出を制御するＴＸバッファ３３、タイムスロット上にて送出されたＡＣＬパケットもしくはＳＣＯパケットを受信するＲＸバッファ３４、ＡＣＬパケット内のペイロード情報を抽出するペイロード抽出部３５、ＡＣＬパケットを再構築してＬ２ＣＡＰパケットを生成するＬ２ＣＡＰパケット再構築部３６、ＡＣＬパケット長制御部３７を含む。
【００３０】
図３において、当該ＢＴ機器が送出するＡＣＬパケットのサイズは、ＡＣＬパケット長制御部３７において決定する。ＡＣＬリンクを設定するＢＴ機器間での要求通信品質や、実際のＡＣＬパケットの伝送状況等に依存して、ＡＣＬパケット長制御部３７は、ＡＣＬパケット長の最大値を動的に修正し、これをＬ２ＣＡＰパケット分割部３１へ通知する（図中、４２参照）。Ｌ２ＣＡＰパケット分割部３１は、ＡＣＬパケット長制御部３７から通知を受けた最大ＡＣＬパケット長を上回らないようなＡＣＬパケットが生成できるよう、Ｌ２ＣＡＰパケットの分割を行う。
【００３１】
図１に示した本発明の実施形態では、ベースバンド処理部１１上に直接Ｌ２ＣＡＰ処理部１２が乗っているが、さらなる実施形態として、図４に示すように、ベースバンド処理部１１とＬ２ＣＡＰ処理部１２との間に、ホストコントローラインタフェース仕様（ＨＣＩ）を実行するＨＣＩ処理部１６が存在する形態もある。
【００３２】
図４の形態として、例えばＬ２ＣＡＰ処理部１２のような上位レイヤのソフトウェアが搭載されたＢＴホスト（ＰＣ、等）と、ベースバンド処理部１１が搭載されたＢＴデバイスとを、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等を介して接続する場合が挙げられる。この時、ＢＴホストとＢＴデバイス間の通信は、ＨＣＩ仕様に基づいて行われる。
【００３３】
図４に示すようなＨＣＩ処理部１６を介した形態の場合、Ｌ２ＣＡＰパケットの分割は図５のように行われる。ＢＴホストより送出されるＬ２ＣＡＰパケットは、ＢＴホスト側のＨＣＩ処理部１６において、ＨＣＩ仕様にて定義されるパケット（ＨＣＩパケット）に一旦分割されてから、ＢＴデバイスに引き渡される。
【００３４】
ＨＣＩパケットは、コネクションの識別に用いるＣｏｎｎｅｃｔｉｏｎ  Ｈａｎｄｌｅフィールド（１２ビット長）、Ｌ２ＣＡＰパケットの最初のセグメントであるか否かを示すＰａｃｋｅｔ  Ｂｏｕｎｄａｒｙフラグ（ＰＢフラグ：２ビット長）、ポイントツーポイント通信かブロードキャスト通信かを示すＢｒｏａｄｃａｓｔフラグ（ＢＣフラグ：２ビット長）、データ長をオクテット単位で表示するＤａｔａ  Ｔｏｔａｌ  Ｌｅｎｇｔｈフィールド（２オクテット長）、そしてＬ２ＣＡＰパケットを分割して収納するＤａｔａフィールドからなる。
【００３５】
なおＨＣＩパケットの最大長は、ＨＣＩパケットが引き渡されるＢＴデバイスが保持するバッファサイズの最大値を越えないように設定される。ＨＣＩパケットを受け取ったベースバンド処理部１１内のＳＡＲ機能では、ＨＣＩパケットをＡＣＬパケットのペイロードに分割することとなる。
【００３６】
なお、図４に示すようなＨＣＩ処理部１６を介した形態の場合、ベースバンド処理部１１のＳＡＲ機能に関する部分の内部構成は、図６のようになる。
【００３７】
図７は、ＡＣＬパケット長制御部３７において、ＡＣＬパケット長の最大値を決定する際の処理手順の一例を示す。図７に示す処理手順は、ＢＴ機器ＡがＢＴ機器Ｂとの間にＡＣＬリンクを設定した際に、ＢＴ機器Ｂ向けに伝送するＡＣＬパケットに関するパケット長最大値を決定するときの処理手順を示している（ＢＴ機器Ｂにおける処理手順も同様である（図７の処理手順でＢＴ機器ＡとＢＴ機器Ｂを入れ替えればよい））。
【００３８】
ＢＴ機器ＡにおいてＡＣＬパケット長の最大値の変更を行うきっかけとしては、例えば、ＢＴ機器Ｂとの間にＡＣＬリンクを設定する場合、あるいはＢＴ機器ＡもしくはＢＴ機器ＢにおいてＡＣＬリンクを用いて提供するサービス内容に変更が生じた場合などがあげられる。
【００３９】
ＢＴ機器ＢにおけるＱｏＳパラメータに変更が生じたためにＢＴ機器ＢからＢＴ機器Ａへの通知を行う場合には、ＢＴ機器ＢにおけるＱｏＳパラメータは、コンフィグレーション要求(Configration Request)パケットのパラメータとして記載し、ＢＴ機器Ａに送出する（コンフィグレーション要求パケットのパラメータは、一方のＢＴ機器内のＬ２ＣＡＰ処理部１２と他方のＢＴ機器内のＬ２ＣＡＰ処理部１２との間においてＡＣＬリンクに関する取り決めを交渉する際に用いるものである）。この場合、ＢＴ機器Ａは、ＢＴ機器Ｂより、ＱｏＳパラメータの通知を受けることによって、ＢＴ機器ＢのＱｏＳパラメータを知ることになる。
【００４０】
このＢＴ機器ＢのＬ２ＣＡＰ処理部１２が要求するＱｏＳパラメータは、ＡＣＬパケット長制御部３７に対して通知される（図３の４１参照）。
【００４１】
他方、ＢＴ機器Ａ自身のＬ２ＣＡＰ処理部１２が要求するＱｏＳパラメータも、ＡＣＬパケット長制御部３７に対して通知される（図３の４１参照）。
【００４２】
なお、ＢＴ機器ＡにおけるＱｏＳパラメータに変更が生じた場合には、ＢＴ機器Ａは、同様に、ＢＴ機器Ｂへ、ＱｏＳパラメータを通知する。
【００４３】
さて、ＢＴ機器Ａは、ＢＴ機器Ａ自身及び又はＢＴ機器ＢにおけるＱｏＳパラメータに変更が生じた場合（ステップＳ５１）、ＱｏＳパラメータの一つであるトークンレート(Token Rate)を比較する（ステップＳ５２）。トークンレートは、継続的なデータ送信が可能な速度をバイト単位で示したものである。ＢＴ機器Ａでは、ＢＴ機器ＡにおけるトークンレートとＢＴ機器Ｂにおけるトークンレートとを比較し、いずれの機器におけるトークンレートが大きいかを判断する。
【００４４】
ＢＴ機器Ａの要求するトークンレートとＢＴ機器Ｂの要求するトークンレートとが等しいかまたは前者が後者よりも大きい場合には、ＢＴ機器ＡにおけるＡＣＬパケットの最大値として、現在ＡＣＬパケットとして占有可能なタイムスロット数の候補のうち最大の値Ｎを設定する（ステップＳ５３）。
【００４５】
ＢＴ機器Ａの要求するトークンレートがＢＴ機器Ｂの要求するトークンレートよりも小さい場合には、ＢＴ機器ＡにおけるＡＣＬパケットの最大値として、ＢＴ機器Ａの要求するトークンレートをＴ（Ａ）、ＢＴ機器Ｂの要求するトークンレートをＴ（Ｂ）とした場合に、式（１）により得られる値Ｕをもとに、現在ＡＣＬパケットとして占有可能なタイムスロット数の候補の中から選択する（ステップＳ５４）。
【００４６】
Ｕ＝Ｎ×Ｔ（Ａ）／Ｔ（Ｂ）  …（１）
値Ｕに基づく、ＢＴ機器ＡにおけるＡＣＬパケット長の最大値の選択方法として、例えば次のような手順があげられる。
【００４７】
▲１▼現在ＡＣＬパケットとして占有可能なタイムスロット数の候補のうち、Ｕを超えない最小の値を選択し、この選択した（Ｕを超えない最小の）値分のタイムスロットを占めることができるように、ＡＣＬパケット長の最大値を設定する。
【００４８】
▲２▼現在ＡＣＬパケットとして占有可能なタイムスロット数の候補のうち、Ｕに一番近い値を選択し、この選択した（Ｕに一番近い）値分のタイムスロットを占めることができるように、ＡＣＬパケット長の最大値を設定する。
【００４９】
ここで、ＡＣＬパケットとして占有可能なタイムスロット数の候補について、説明する。
【００５０】
Ｂｌｕｅｔｏｏｔｈ規格において、一つのＡＣＬパケットが占有可能タイムスロット数は、最大５タイムスロット迄である。マスターは常に偶数番号のタイムスロットよりパケットを送出すること、スレーブは常に奇数番号のタイムスロットよりパケットを送出することより、ＡＣＬパケット長の最大値として、（１、３、５）の中より選択して設定することとなる。
【００５１】
結局、図７の手順によって、ＢＴ機器Ａの要求するトークンレートとＢＴ機器Ｂの要求するトークンレートとが同じである場合には、ＢＴ機器ＡとＢＴ機器Ｂのいずれにおいても、ステップＳ５３で最大の値Ｎが選択され、ＢＴ機器Ａの要求するトークンレートとＢＴ機器Ｂの要求するトークンレートとが同じでない場合には、それが大きい方のＢＴ機器において、ステップＳ５３で最大の値Ｎが選択され、それが小さい方のＢＴ機器において、ステップＳ５４に従った値が選択される。
【００５２】
ところで、ＢＴ機器間には、ＡＣＬリンクの他に、ＳＣＯリンクも設定され得る。ＳＣＯリンクは、ＡＣＬリンクとは異なり、一定時間間隔毎にあらかじめタイムスロットを予約して通信を行う。ＡＣＬリンクとして使用可能なタイムスロットは、ＳＣＯリンクにより予約されていないタイムスロットに限定される。
【００５３】
図８に、ＳＣＯリンクによるタイムスロットの予約の概要を示す。図８の例では、マスター、スレーブ共に６スロット毎にＳＣＯリンク用にタイムスロットが予約されている。この場合、ＡＣＬパケット長の最大値として５を設定することはできない。つまり、ＡＣＬパケットとして占有可能なタイムスロット数の候補として、（１、３）のみが挙げられる。そして、図７に示した処理手順に従い、マスター、スレーブのうち要求トークンレートの大きいほうに、ＡＣＬパケット長の最大値としてタイムスロット長３を設定してしまうと、他方のＡＣＬパケット長の最大値は必然的にタイムスロット長１となってしまう。要求トークンレートの比率から、このような割り当て（最大タイムスロット長３：最大タイムスロット長１）が望ましくないと判断すれば、ＡＣＬパケット長の最大値として、マスター、スレーブ共タイムスロット長１と設定する。
【００５４】
このように、ＳＣＯリンクの設定状況に従い、ＡＣＬパケットとして占有可能なタイムスロット数の候補は変動してしまう。そのため、ＳＣＯリンクの新規設定や、既存ＳＣＯリンクの解放といったイベントが生じるたびに、ＡＣＬパケットとして占有可能なタイムスロット数を見直すといった処理を行う必要がある。
【００５５】
以下の例では、実施の形態の説明を簡略化するため、ＳＣＯリンクは設定されていない情況にて説明を行う。つまり、ＡＣＬパケットとして占有可能なタイムスロット数の候補は、常に（１、３、５）である。
【００５６】
図９に、図１７と同様の条件下のもとで、図７に示す処理手順に従いＡＣＬパケット長の最大値を定めた際の、ＡＣＬリンク上でのＡＣＬパケット通信の一例を示す。図１７で示した例では、マスター、スレーブ共にタイムスロット長５に相当するＡＣＬパケットの送信が可能であった。マスター側、スレーブ側が要求するＱｏＳパラメータの一つであるトークンレートが、図１７で示したデータの到着過程に等しいものとする。この場合、マスター側とスレーブ側のトークンレートの比率は５：１となるので、マスター側にて設定されるＡＣＬパケット長の最大値はタイムスロット長５に等しく設定される。一方、スレーブ側にて設定されるＡＣＬパケット長の最大値は、前記した式（１）に従い、
５×１／５＝１
となり、タイムスロット長１に等しく設定される。
【００５７】
図７に示す処理手順に従いＡＣＬパケット長の最大値を設定した場合、図９に示すように、図１７の例にて見られたデータ伝送が行われないタイムスロット（α、β、γ）が存在しない。これは、図１７の例よりも効率よいＡＣＬリンク資源の利用が行われていることを意味する。
【００５８】
ところで、要求ＱｏＳパラメータのトークンレートだけに基づき、ＡＣＬパケット長の最大値の設定を行った場合、トークンレート以外の要求ＱｏＳパラメータに対する違反が生じてしまう可能性がある。図１０は、図１７（ＡＣＬパケット長の最大値としてタイムスロット長５を設定）および図９（ＡＣＬパケット長の最大値としてタイムスロット長１を設定）にてそれぞれ示したスレーブより送出するＡＣＬパケットパターンを示す（（ａ）が図１７の場合を示し、（ｂ）が図９の場合を示す）。
【００５９】
同一のデータ（タイムスロット長３に相当）を送信するのに、ＡＣＬパケット長の最大値としてタイムスロット長５を設定した場合と、タイムスロット長１を設定した場合とでは、図１０の例だと、全データの送信を終了するのにタイムスロット長１０に相当する時間の差が生じる。一つのタイムスロット長は６２５μ秒なので、ＡＣＬパケット長の最大値をタイムスロット長１として設定した場合には、６．２５ｍ秒の遅延が生じる。このとき、スレーブ側にて要求するＱｏＳパラメータのレイテンシ（Ｌａｔｅｎｃｙ）として６．２５ｍ秒より短い値が設定されている場合は、これに違反することとなる。
【００６０】
図７に示す手順処理では、ＱｏＳパラメータとしてトークンレートにのみ着目してＡＣＬパケット長の最大値を定めているため、図１０に示したような問題が生じてしまう。
【００６１】
図１１に、ＡＣＬパケット長制御部３７において、ＱｏＳパラメータのレイテンシも考慮したＡＣＬパケット長の最大値を決定する際の処理手順の一例を示す。
【００６２】
図１１において、ステップＳ５１〜Ｓ５４までは、図７に示した処理手順と同様である。
【００６３】
図１１に示す処理手順では、ステップＳ５４において選択したＡＣＬパケット長の最大値を用いた場合に、ＱｏＳパラメータのレイテンシも併せて同時に満足するか否かを調べる（ステップＳ５５）。ステップＳ５４において選択したＡＣＬパケット長の最大値を用いてレイテンシも同時に満足できると判断すれば、その値を最大値として設定する（ステップＳ５６）。一方、レイテンシが満足できないと判断すれば、現在のＡＣＬパケット長の最大値を１ランク上昇させる（ステップＳ５７）。具体的には、現在ＡＣＬパケット長の最大値としてタイムスロット長１を選択している場合にはこれを３に修正し、タイムスロット長３を選択している場合にはこれを５に修正する。そして、再びレイテンシを満足できるか否かを調べる（ステップＳ５５）。
【００６４】
なお、図１１には示していないが、ＡＣＬパケット長の最大値をいかなる値に設定してもレイテンシを満足できない場合は、レイテンシを含めた要求ＱｏＳパラメータを修正するよう、Ｌ２ＣＡＰ処理部１２にて制御を行う。
【００６５】
ここで、図７、図１１に示した処理手順により、ＡＣＬパケット長の最大値をタイムスロット長１、もしくはタイムスロット長３に設定したＢＴ機器では、ＡＣＬリンクを用いた通信相手であるＢＴ機器においてデータ送信が中断した場合に、ＡＣＬパケット長の最大値を一時的に増加させることで、より効率の良いＡＣＬリンクの使用が可能となる。
【００６６】
図１２に、通信相手のＢＴ機器でのデータ送信の一時中断に伴いＡＣＬパケット長の最大値を一時的に増加させた場合のＡＣＬパケットの通信の一例を示す。なお、図１２において、（ＢＴ機器Ｂが送信する３つの）白抜きのＡＣＬパケットは、当該パケットのペイロードに通信情報が記載されていない旨（一つ前に受信したＡＣＬパケットに関するＡＣＫ情報等のみを記載）を示す。
【００６７】
図１２に示す例では、ＢＴ機器ＡがＡＣＬパケット長の最大値をタイムスロット長１に、ＢＴ機器ＢがＡＣＬパケット長の最大値をタイムスロット長５に設定されている。そして、ＢＴ機器Ａでは、ＢＴ機器Ｂよりペイロードに通信情報が記載されていないＡＣＬパケットを受信することで、ＢＴ機器Ｂにおいて送信すべきデータが存在しないものと判断する。図１２の例では、ＢＴ機器Ｂよりペイロードに通信情報を含まないＡＣＬパケットを２個連続して受信した場合に、ＢＴ機器Ａは、ＢＴ機器Ｂにおいてデータ送信を一時中断したものと判断する。そして、ＢＴ機器Ａでは、現在のＡＣＬパケット長の最大値を、タイムスロット長５に設定して以降のＡＣＬパケットを生成し、ＢＴ機器Ｂ宛に送出する。
【００６８】
再びＢＴ機器Ｂがデータ送信を再開した場合、ＢＴ機器Ａではペイロードに通信情報が記載されたＡＣＬパケットを受信することとなる。これをきっかけにＢＴ機器Ａでは、ＡＣＬパケット長の最大値を再び当初の値（図１２の例ではタイムスロット長１）に設定して以降のＡＣＬパケットを生成し、ＢＴ機器Ｂ宛に送出する。
【００６９】
上述のような、通信相手のＢＴ機器におけるデータ送信の一時中断に伴うＡＣＬパケット長の最大値の修正を実現するため、ＢＴ機器のベースバンド処理部１１では、受信したＡＣＬパケットよりＬ２ＣＡＰパケットを再構築する段階で、当該ＡＣＬパケットにペイロード情報が含まれているか否かをペイロード抽出部３５（図３）にて判断し、ペイロード情報が含まれていなければ、その旨をＡＣＬパケット長制御部３７（図３）へ通知する（図３の４３参照）。
【００７０】
なお、図１２の例では、通信相手のＢＴ機器がデータ送信を一時的に中断しているか否かを、ペイロード情報が空であるＡＣＬパケットを受信したか否かに基づき判断したが、通信相手のＢＴ機器がＡＣＬパケットを送出したか否かに基づいて同様の判断を行うことも可能である。この場合、ＡＣＬパケットを受信するＲＸバッファ３４（図３）にて、所定のタイムスロットにおいて通信相手のＢＴ機器からのＡＣＬパケットを受信したか否かを判断し、ＡＣＬパケットを受信しなければ、その旨をＡＣＬパケット長制御部３７（図３）へ通知する（図３の４４参照）。
【００７１】
次に、図１３と図１４に、ＡＣＬパケット伝送時にエラーが生じた場合のＡＣＬパケットの再送の様子を示す。なお、図１３、図１４ともに、ＢＴ機器ＡよりＢＴ機器Ｂ宛にタイムスロット長５に相当するデータの送信を行っており、同一タイムスロットにおいてエラーが発生している。また、図１３の例では、送信データをタイムスロット長５に相当するＡＣＬパケット１個（▲１▼）にて伝送し、図１４の例では、送信データをタイムスロット長１に相当するＡＣＬパケット５個（Ａ、Ｂ、Ｃ、Ｄ、Ｅ）にて伝送する。
【００７２】
図１３と図１４の結果を比較すると、図１３ではＡＣＬパケット▲１▼の再送が２回行われ（▲１▼’、▲１▼’’）、送信終了までに１８タイムスロットを要している。一方、図１４ではＡＣＬパケットＢ、Ｄの再送が一回ずつ行われ、送信終了までに１４タイムスロットを要している。つまり、ＡＣＬパケット長が大きい場合、エラー発生に伴う再送情報も大きくなるため、再送終了までに要する時間は大きくなってしまう。無線伝送においては、フェージング等により、部分的に集中するバースト誤りが発生し得るが、この場合、送出パケットの再送の頻度が極端に高くなる。そのため、無線伝送環境も考慮して、ＡＣＬパケット長の最大値を動的に変更することが必要となる。
【００７３】
次に、図１５に、伝送品質の劣化に基づくＡＣＬパケット長の最大値の変更の概念を示す。ＢＴ機器において伝送品質劣化が生じているか、もしくは伝送品質劣化が見られず正常化しているかを判断し、ＡＣＬパケット長の最大値を既定値とするか（図７もしくは図１１に示した処理手順に従い定めた最大値）、もしくはＡＣＬパケット長の最大値を減少させるか（タイムスロット長１に等しくする）といった変更を施す。
【００７４】
なお、伝送品質が劣化しているか否かを判断するための手段としては、通信相手であるＢＴ機器より送出されるＡＣＬパケットのヘッダに記載されるアクノレッジ情報を参照する方法が考えられる。ＡＣＬパケットのヘッダにはアクノレッジを表す１ビット情報（ＡＲＱＮ）が用意され、ＡＲＱＮ＝１であれば受信が正常に行われた旨を表し、ＡＲＱＮ＝０であれば受信が正常に行われなかった旨を表すことで、送信元のＢＴ機器にこれを通知する。例えば、ＢＴ機器において定められた時間内にＡＲＱＮ＝０のＡＣＬパケットを所定回数受信すれば、伝送品質が劣化していると判断し、送信ＡＣＬパケット長の最大値を減少させる。また、ＡＣＬパケット長の最大値を減少させた後にも、ＢＴ機器では受信したＡＣＬパケットのＡＲＱＮ値をチェックし、定められた時間内にＡＲＱＮ＝０のＡＣＬパケットを全く受信しなければ、伝送品質の劣化が解消されたと判断し、送信ＡＣＬパケット長の最大値を設定値に戻す。なお、ＢＴ機器においてアクノレッジ情報を要求しているにも関わらず、送信済ＡＣＬパケットに対するアクノレッジ情報を含むべきＡＣＬパケットが受信されない場合には、当該ＢＴ機器はＡＲＱＮ＝０のＡＣＬパケットを受信したものとして取り扱う。
【００７５】
なお、以上説明したきた構成部分のうち計算や制御などの処理を行う部分に相当する機能は、ソフトウェアとして実現することも可能である（この場合、ＢＴ機器にコンピュータ（ＣＰＵ、ＭＰＵ等）を内蔵し、該内蔵コンピュータで該ソフトウェアを実行すればよい）。
【００７６】
また、以上説明したきた構成部分のうち計算や制御などの処理を行う部分に相当する機能は、コンピュータに所定の手段を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【００７７】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【００７８】
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【００７９】
また、この発明の実施の形態は、個別装置としての発明、関連を持つ２以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
【００８０】
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【００８１】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【００８２】
【発明の効果】
本発明によれば、Ｂｌｕｅｔｏｏｔｈ規格を用いて、ＡＣＬリンクを設定した後にＡＣＬパケット形式でのデータの送受信を行う際に、ＡＣＬリンク資源を効率よく利用することができるようになる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るＢＴ機器の構成例を示す図
【図２】同実施形態に係るＢＴ機器のＬ２ＣＡＰ処理部におけるパケット分割例を示す図
【図３】同実施形態に係るＢＴ機器のベースバンド処理部内のＳＡＲ機能に関わる部分の内部構成例を示す図
【図４】他の実施形態に係るＢＴ機器の構成例を示す図
【図５】他の実施形態に係るＢＴ機器のＬ２ＣＡＰ処理部におけるパケット分割例を示す図
【図６】他の実施形態に係るＢＴ機器のベースバンド処理部内のＳＡＲ機能に関わる部分の内部構成例を示す図
【図７】図３のＡＣＬパケット長制御部におけるＡＣＬパケット長の最大値を決定する際の処理手順の一例を示すフローチャート
【図８】ＳＣＯリンクによるタイムスロットの予約の概要を示す図
【図９】図１７と同様の条件下で図７に示す処理手順に従いＡＣＬパケット長の最大値を定めた際のＡＣＬリンク上でのＡＣＬパケット通信の一例を示す図
【図１０】図１７、図９にて示したスレーブより送出するＡＣＬパケットパターンを示す図
【図１１】図３のＡＣＬパケット長制御部ＱｏＳパラメータのレイテンシも考慮したＡＣＬパケット長の最大値を決定する際の処理手順の一例を示すフローチャート
【図１２】通信相手ＢＴ機器でのデータ送信の一時中断に伴いＡＣＬパケット長の最大値を一時的に増加させた場合のＡＣＬパケット通信の一例を示す図
【図１３】ＡＣＬパケット伝送時にエラーが生じた場合のＡＣＬパケット（ＡＣＬパケット１個にて伝送）の再送の様子を示す図
【図１４】ＡＣＬパケット伝送時にエラーが生じた場合のＡＣＬパケット（ＡＣＬパケット５個に分割して伝送）の再送の様子を示す図
【図１５】伝送品質の劣化に基づくＡＣＬパケット長の最大値の変更の概念を示す図
【図１６】ＡＣＬリンクを用いたマスターとスレーブ間のＡＣＬパケット通信の一例を示す図
【図１７】マスターとスレーブとでデータ送信要求が同時に発生する場合のＡＣＬリンク上でのＡＣＬパケット通信の一例を示す図
【符号の説明】
１１…ベースバンド処理部
１２…Ｌ２ＣＡＰ処理部
２１…Ｌ２ＣＡＰパケット
２２…ＡＣＬパケット（Ｌ＿ＣＨ＝１０）
２３，２４…ＡＣＬパケット（Ｌ＿ＣＨ＝０１）
３１…Ｌ２ＣＡＰパケット分割部
３２…ＡＣＬパケット生成部
３３…ＴＸバッファ
３４…ＲＸバッファ
３５…ペイロード抽出部
３６…Ｌ２ＣＡＰパケット再構築部
３７…ＡＣＬパケット長制御部
【図１】
0004052633.tif 000002
【図２】
0004052633.tif 000003
【図３】
0004052633.tif 000004
【図４】
0004052633.tif 000005
【図５】
0004052633.tif 000006
【図６】
0004052633.tif 000007
【図７】
0004052633.tif 000008
【図８】
0004052633.tif 000009
【図９】
0004052633.tif 000010
【図１０】
0004052633.tif 000011
【図１１】
0004052633.tif 000012
【図１２】
0004052633.tif 000013
【図１３】
0004052633.tif 000014
【図１４】
0004052633.tif 000015
【図１５】
0004052633.tif 000016
【図１６】
0004052633.tif 000017
【図１７】
0004052633.tif 000018