(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】同期装置及び同期方法
(51)【国際特許分類】
H04L 7/02 20060101AFI20241209BHJP
H04R 1/10 20060101ALI20241209BHJP
H04R 3/00 20060101ALI20241209BHJP
【FI】
H04L7/02
H04R1/10 104Z
H04R3/00 310
(21)【出願番号】P 2021567140
(86)(22)【出願日】2020-12-03
(86)【国際出願番号】 JP2020045105
(87)【国際公開番号】W WO2021131583
(87)【国際公開日】2021-07-01
【審査請求日】2023-10-16
(31)【優先権主張番号】P 2019235135
(32)【優先日】2019-12-25
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(72)【発明者】
【氏名】石井 道人
(72)【発明者】
【氏名】近藤 将斗
【審査官】阿部 弘
(56)【参考文献】
【文献】特開2001-186180(JP,A)
【文献】特開2002-252606(JP,A)
【文献】特表2013-504937(JP,A)
【文献】米国特許出願公開第2019/0261089(US,A1)
【文献】特開2003-273853(JP,A)
【文献】特開2018-011204(JP,A)
【文献】田中 邦夫 Kunio Tanaka,コイン電池で長時間動作! サッと起きてパッと寝る 最新規格 Bluetooth 4.0のLEモード,Interface 第39巻 第5号 ,日本,CQ出版株式会社 CQ Publishing Co.,Ltd.,2013年05月01日,第39巻、第5号,pp. 36-41
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/02
H04R 1/10
H04R 3/00
(57)【特許請求の範囲】
【請求項1】
マスタとスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
第1基準クロック信号に基づいてカウント動作を行う第1カウンタと、
第2基準クロック信号に基づいて、情報提供端末から送信された複数のパケットの間隔をカウントする第2カウンタと、
前記第1カウンタのカウント値と前記第2カウンタのカウント値とを含むパケットを前記スレーブに送信する第1パケット送信部と、を有し、
前記スレーブは、
第3基準クロック信号に基づいてカウント動作を行う第3カウンタと、
第4基準クロック信号に基づいて、前記情報提供端末から送信された前記複数のパケットの間隔をカウントする第4カウンタと、
前記第3カウンタのカウント値と前記第4カウンタのカウント値とを含むパケットを前記マスタに送信する第2パケット送信部と、
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値とに基づいて、前記第4基準クロック信号の周波数を調整する周波数調整部と、を有する、
同期装置。
【請求項2】
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値との差分を算出する差分算出部を備え、
前記周波数調整部は、前記差分に基づいて、前記第4基準クロック信号の周波数を調整する、
請求項
1に記載の同期装置。
【請求項3】
前記第1カウンタのカウント値と、前記第3カウンタのカウント値とは、前記マスタと前記スレーブとでパケット通信を行うたびに、同じ値になるか、又は差分が同一になるように調整される、
請求項
1又は2に記載の同期装置。
【請求項4】
前記スレーブは、
前記情報提供端末から送信された複数のパケットに含まれる送信終了時刻に関する情報を取得する終了時刻情報取得部と、
前記送信終了時刻に関する情報に基づいて、時系列データの再生又は処理の開始時刻に関する情報を算出する開始時刻算出部と、
前記第3カウンタのカウント値と、前記周波数調整部で前記第4基準クロック信号の周波数を調整後の前記第4カウンタのカウント値と、前記周波数調整部で前記第4基準クロック信号の周波数を調整後の前記差分算出部で算出された前記差分と、前記開始時刻に関する情報と、に基づいて、時系列データの再生又は処理を行う時刻を前記マスタとの間で同期させる同期化部と、を有する
、
請求項
2に記載の同期装置。
【請求項5】
前記スレーブは、
再生又は処理された時系列データの区切りをカウントする第5カウンタと、
前記第5カウンタがカウントアップするたびに、前記第3カウンタのカウント値と、前記第4カウンタのカウント値とを取得するカウント値取得部と、を備え、
前記第2パケット送信部は、前記カウント値取得部で取得された前記第3カウンタのカウント値と、前記第4カウンタのカウント値とを前記マスタに送信する、
請求項
1乃至4のいずれか一項に記載の同期装置。
【請求項6】
前記時系列データは、オーディオデータであり、
前記第5カウンタは、前記オーディオデータのフレーム数をカウントする、
請求項
5に記載の同期装置。
【請求項7】
前記周波数調整部は、前記マスタ及び前記スレーブがパケット通信を開始する際に、前記差分に基づいて前記第4基準クロック信号の周波数を調整し、
前記同期化部は、前記マスタ及び前記スレーブが前記情報提供端末との間でパケット通信を行う合間に、時系列データの再生又は処理を行う時刻を前記マスタとの間で同期させる、
請求項
4に記載の同期装置。
【請求項8】
前記マスタ及び前記スレーブの一方は、前記情報提供端末から左耳用のオーディオデータを受信する第1イヤホンであり、他方は、前記情報提供端末から前記第1イヤホンとは別個のタイミングで右耳用のオーディオデータを受信する第2イヤホンである、
請求項
1乃至7のいずれか一項に記載の同期装置。
【請求項9】
前記第1イヤホン及び前記第2イヤホンのそれぞれが、互いにパケットを送受して、前記第1イヤホン及び前記第2イヤホンのそれぞれにおいて受信されたパケットに含まれるプロファイル情報にて、自装置が前記マスタ又は前記スレーブであることを確定するマスタ/スレーブ確定部を有する、
請求項
8に記載の同期装置。
【請求項10】
前記マスタと前記スレーブとは、Bluetooth(登録商標) Low Energyの規格に準拠したパケット通信を行う、
請求項
1乃至9のいずれか一項に記載の同期装置。
【請求項11】
マスタとスレーブとの間で無線通信により時系列データを同期させる同期方法であって、
前記マスタは、
第1基準クロック信号に基づいて第1カウンタでカウント動作を行い、
第2基準クロック信号に基づいて、情報提供端末から送信された複数のパケットの間隔を第2カウンタでカウントし、
前記第1カウンタのカウント値と前記第2カウンタのカウント値とを含むパケットを前記スレーブに送信し、
前記スレーブは、
第3基準クロック信号に基づいて第3カウンタでカウント動作を行い、
第4基準クロック信号に基づいて、前記情報提供端末から送信された前記複数のパケットの間隔を第4カウンタでカウントし、
前記第3カウンタのカウント値と前記第4カウンタのカウント値とを含むパケットを前記マスタに送信し、
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値とに基づいて、前記第4基準クロック信号の周波数を調整する、
同期方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、同期装置及び同期方法に関する。
【背景技術】
【0002】
Bluetooth(登録商標)を用いたTWS(True Wireless Stereo)イヤホンが急速に普及しつつある。小型・低電力化の要求から、従来のBluetooth規格に対して、より低電力な規格であるBluetooth Low Enerty(BLE)規格の策定が進められている。
【0003】
TWSイヤホンによるステレオ・オーディオ再生時には、左右の音楽再生同期を、いかに定位を保った状態で達成するかが非常に重要であり、信頼性の高いオーディオ再生同期技術の提供が求められている。
【0004】
従来のBluetooth規格では、オーディオ再生時にスマートフォンや音楽プレーヤ等の再生デバイスから時刻情報が送信され、この時刻情報に同期させることで再生同期を実現していた。一方、BLE規格では、この時刻情報がパケットに含まれていないため、従来技術とは 別の手法を用いて オーディオ再生同期を実現する必要がある
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、無線通信を行うマスタとスレーブの間で精度よく同期を取ることができる同期装置及び同期方法を提供するものである。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本開示の一態様によれば、マスタとスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
複数のパケットを生成するパケット生成部と、
前記複数のパケット中の任意のパケットを所定の間隔で前記スレーブに送信するパケット送信部と、を有し、
前記スレーブは、
前記任意のパケットを受信するパケット受信部と、
基準クロック信号に基づいて、前記任意のパケットの間隔をカウントするカウンタと、を備え、
前記カウンタのカウント値に基づいて、前記基準クロック信号の周波数を調整することで、前記マスタと前記複数のスレーブ間での同期を図る、同期装置が提供される。
【0008】
また、本開示の他の一態様によれば、マスタと複数のスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
複数のパケットを生成するパケット生成部と、
前記複数のパケット中の任意のパケットを所定の間隔で前記複数のスレーブのうち一つに送信するパケット送信部と、を有し、
前記複数のスレーブのうちの一つは、
前記任意のパケットを受信するパケット受信部と、
基準クロック信号に基づいて、前記任意のパケットの間隔をカウントするカウンタと、を備え、
前記カウンタのカウント値に基づいて、前記基準クロック信号の周波数を調整することで、前記マスタと前記複数のスレーブ間での同期を図る、同期装置が提供される。
【0009】
前記複数のパケットは、パケットの間隔に関する情報と時系列データとを含んでおり、
前記パケット受信部で新たなパケットが受信されるたびに、前記カウンタのカウント値をラッチするラッチ部と、
前記パケット受信部で受信されたパケットに含まれるパケットの間隔に関する情報を抽出する情報抽出部と、
前記抽出されたパケットの間隔に関する情報に基づいて、理想的なカウント値を算出する理想カウント値算出部と、
前記ラッチ部でラッチされた前記カウンタのカウント値と、前記理想的なカウント値との差分を算出する差分算出部と、
前記差分に基づいて、前記基準クロック信号の周波数を調整する周波数調整部と、を備えてもよい。
【0010】
前記周波数調整部は、前記ラッチ部でラッチされた前記カウンタのカウント値が前記理想的なカウント値よりも大きければ、前記基準クロック信号の周波数を低くし、前記ラッチ部でラッチされた前記カウンタのカウント値が前記理想的なカウント値よりも小さければ、前記基準クロック信号の周波数を高くしてもよい。
【0011】
前記スレーブは、
前記差分の時間変化に基づいて、前記差分が所定値以下になるように前記基準クロック信号の周波数を調整するための制御値を算出する制御値算出部を有し、
前記周波数調整部は、前記制御値に基づいて、前記基準クロック信号の周波数を調整してもよい。
【0012】
前記スレーブは、
前記差分の単位時間当たりの変化値を示す速度成分を抽出する速度成分抽出部と、
前記速度成分の単位時間当たりの変化値を示す加速度成分を抽出する加速度成分抽出部と、を有し、
前記制御値算出部は、前記速度成分及び前記加速度成分に基づいて、前記制御値を算出してもよい。
【0013】
前記スレーブは、前記制御値のばらつきが所定範囲内に収まるように調整する制御値調整部を有し、
前記周波数調整部は、前記制御値調整部で調整された制御値に基づいて、前記基準クロック信号の周波数を調整してもよい。
【0014】
前記パケット送信部は、前記複数のパケットを含むパケット群を、予め定めた間隔で複数回送信し、
前記スレーブ内の前記カウンタは、前記パケット群に含まれる各パケットの間隔をそれぞれ計測し、
前記スレーブは、
前記パケット群に含まれる各パケットの間隔のうち、カウント値を計測し損ねたパケットの間隔が存在する場合には、カウント値を補間する補間部と、
前記カウンタでカウントしたカウント値のうち、許容範囲を逸脱しているカウント値を除去する除外部と、を有し、
前記差分算出部は、前記補間部による補間と、前記除外部による除外とを行ったカウント値と、前記理想的なカウント値との差分を算出してもよい。
【0015】
前記時系列データは、生体情報を含むデータ又はオーディオデータであってもよい。
【0016】
前記複数のスレーブのそれぞれにおける前記パケット受信部は、前記マスタとそれぞれ異なるタイミングで無線通信を行って、前記マスタから送信された固有の時系列データを含む前記複数のパケットを受信してもよい。
【0017】
前記マスタは、オーディオデータを記憶する記憶部を有する情報提供端末であり、
前記情報提供端末とそれぞれ異なるタイミングで無線通信を行う2台の前記スレーブを備え、
前記2台のスレーブのうち一方は前記マスタから送信された左耳用のオーディオデータを再生するイヤホンであり、他方は前記マスタから送信された右耳用のオーディオデータを再生するイヤホンであってもよい。
【0018】
本開示の他の一態様によれば、マスタとスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
第1基準クロック信号に基づいてカウント動作を行う第1カウンタと、
第2基準クロック信号に基づいて、情報提供端末から送信された複数のパケットの間隔をカウントする第2カウンタと、
前記第1カウンタのカウント値と前記第2カウンタのカウント値とを含むパケットを前記スレーブに送信する第1パケット送信部と、を有し、
前記スレーブは、
第3基準クロック信号に基づいてカウント動作を行う第3カウンタと、
第4基準クロック信号に基づいて、前記情報提供端末から送信された前記複数のパケットの間隔をカウントする第4カウンタと、
前記第3カウンタのカウント値と前記第4カウンタのカウント値とを含むパケットを前記マスタに送信する第2パケット送信部と、
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値とに基づいて、前記第4基準クロック信号の周波数を調整する周波数調整部と、を有する、同期装置が提供される。
【0019】
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値との差分を算出する差分算出部を備え、
前記周波数調整部は、前記差分に基づいて、前記第4基準クロック信号の周波数を調整してもよい。
【0020】
前記第1カウンタのカウント値と、前記第3カウンタのカウント値とは、前記マスタと前記スレーブとでパケット通信を行うたびに、同じ値になるか、又は差分が同一になるように調整されてもよい。
【0021】
前記スレーブは、
前記情報提供端末から送信された複数のパケットに含まれる送信終了時刻に関する情報を取得する終了時刻情報取得部と、
前記送信終了時刻に関する情報に基づいて、時系列データの再生又は処理の開始時刻に関する情報を算出する開始時刻算出部と、
前記第3カウンタのカウント値と、前記周波数調整部で前記第4基準クロック信号の周波数を調整後の前記第4カウンタのカウント値と、前記周波数調整部で前記第4基準クロック信号の周波数を調整後の前記差分算出部で算出された前記差分と、前記開始時刻に関する情報と、に基づいて、時系列データの再生又は処理を行う時刻を前記マスタとの間で同期させる同期化部と、を有してもよい。
【0022】
前記スレーブは、
再生又は処理された時系列データの区切りをカウントする第5カウンタと、
前記第5カウンタがカウントアップするたびに、前記第3カウンタのカウント値と、前記第4カウンタのカウント値とを取得するカウント値取得部と、を備え、
前記第2パケット送信部は、前記カウント値取得部で取得された前記第3カウンタのカウント値と、前記第4カウンタのカウント値とを前記マスタに送信してもよい。
【0023】
前記時系列データは、オーディオデータであり、
前記第5カウンタは、前記オーディオデータのフレーム数をカウントしてもよい。
【0024】
前記周波数調整部は、前記マスタ及び前記スレーブがパケット通信を開始する際に、前記差分に基づいて前記第4基準クロック信号の周波数を調整し、
前記同期化部は、前記マスタ及び前記スレーブが前記情報提供端末との間でパケット通信を行う合間に、時系列データの再生又は処理を行う時刻を前記マスタとの間で同期させてもよい。
【0025】
前記マスタ及び前記スレーブの一方は、前記情報提供端末から左耳用のオーディオデータを受信する第1イヤホンであり、他方は、前記情報提供端末から前記第1イヤホンとは別個のタイミングで右耳用のオーディオデータを受信する第2イヤホンであってもよい。
【0026】
前記第1イヤホン及び前記第2イヤホンのそれぞれが、互いにパケットを送受して、前記第1イヤホン及び前記第2イヤホンのそれぞれにおいて受信されたパケットに含まれるプロファイル情報にて、自装置が前記マスタ又は前記スレーブであることを確定するマスタ/スレーブ確定部を有してもよい。
【0027】
前記マスタと前記スレーブとは、Bluetooth(登録商標) Low Energyの規格に準拠したパケット通信を行ってもよい。
【0028】
本開示の他の一態様によれば、マスタと複数のスレーブとの間で無線通信により時系列データを同期させる同期方法であって、
前記マスタは、
複数のパケットを生成し、
前記複数のパケット中の任意のパケットを所定の間隔で前記複数のスレーブのうち一つに送信し、
前記複数のスレーブのうち一つは、
前記任意のパケットを受信し、
基準クロック信号に基づいて、前記任意のパケットの間隔をカウンタでカウントし、
前記カウンタのカウント値に基づいて、前記基準クロック信号の周波数を調整することで、前記マスタと前記複数のスレーブ間での同期を図る、同期方法が提供される。
【0029】
本開示の他の一態様によれば、マスタとスレーブとの間で無線通信により時系列データを同期させる同期方法であって、
前記マスタは、
第1基準クロック信号に基づいて第1カウンタでカウント動作を行い、
第2基準クロック信号に基づいて、情報提供端末から送信された複数のパケットの間隔を第2カウンタでカウントし、
前記第1カウンタのカウント値と前記第2カウンタのカウント値とを含むパケットを前記スレーブに送信し、
前記スレーブは、
第3基準クロック信号に基づいて第3カウンタでカウント動作を行い、
第4基準クロック信号に基づいて、前記情報提供端末から送信された前記複数のパケットの間隔を第4カウンタでカウントし、
前記第3カウンタのカウント値と前記第4カウンタのカウント値とを含むパケットを前記マスタに送信し、
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値とに基づいて、前記第4基準クロック信号の周波数を調整する、同期方法が提供される。
【図面の簡単な説明】
【0030】
【
図1】本実施形態による同期装置の概略構成を示す図。
【
図2】BLEの規格に準拠したパケット通信のタイミングを示す図。
【
図3】
図2のサブインターバル内に送信される1つのパケットのデータ構成を示す図。
【
図4】本実施形態による同期装置の一部を構成するマスタ又はスレーブのハードウェア構成の一例を示すブロック図。
【
図5】マスタ及びスレーブが行うソフトウェア処理の機能ブロック図。
【
図6】PCDカウント値と理想PCDカウント値の関係の一例を示す図。
【
図7】マスタMがスマートフォン等の情報提供端末で、スレーブがイヤホンである場合の処理動作を示すフローチャート。
【
図8】マスタとスレーブの一方が左のイヤホンで、他方が右のイヤホンである場合の処理動作を示すフローチャート。
【
図9】
図7及び
図8のフローチャートにおけるクロックリカバリ処理の詳細フローチャート。
【
図10】スレーブが行うクロックリカバリ処理の手順を矢印線で示した図。
【
図13】左右イヤホンの音出しタイミング調整の概念図。
【
図14】スレーブが行う左右イヤホンの音出しタイミング調整と出音タイミングのずれ確認処理の手順を矢印線で示した図。
【発明を実施するための形態】
【0031】
以下、本開示の実施の形態について、詳細に説明する。
【0032】
(同期装置の概略説明)
本実施形態による同期装置は、マスタとスレーブとの間で無線通信により時系列データを同期させる。マスタは、スレーブに時系列データを含むパケットを無線通信にて送信し、スレーブは受信されたパケットに含まれる時系列データを、マスタの時系列データに同期させる処理を行う。
【0033】
マスタとスレーブで送受される時系列データの種類は問わない。一例として、時系列データは、生体情報を含むデータ又はオーディオデータであってもよい。以下では、マスタとスレーブがオーディオデータを同期させる例を主に説明する。この場合、マスタは、オーディオデータを提供する情報提供端末で、スレーブはイヤホンであってもよい。あるいは、マスタは左右いずれか一方のイヤホンで、スレーブは他方のイヤホンであってもよい。
【0034】
図1は本実施形態による同期装置1の概略構成を示す図である。
図1の同期装置1は、例えば、スマートフォンやタブレット、携帯電話、携帯型音楽プレーヤ等の情報提供端末2と、情報提供端末2からオーディオデータを受信して音声出力する左右のイヤホン3a,3bとを備えている。情報提供端末2がマスタMで、左右のイヤホン3a,3bがスレーブS1,S2になりうる。あるいは、左右いずれか一方のイヤホン3aがマスタMで、他方がスレーブSになりうる。
【0035】
本実施形態では、上述したBluetooth(登録商標)Low Energy(BLE)でマスタMとスレーブS1,S2が無線通信を行うことを想定している。BLEは、通常のBluetoothよりも低消費電力であり、バッテリ容量が限られているイヤホン3a,3b等の小型の通信機器では、連続使用時間を延ばせることから、今後の普及が期待されている。
【0036】
例えば、マスタMが情報提供端末2で、スレーブS1,S2が左右のイヤホン3a,3bである場合、BLEの規格では、マスタMから各イヤホン3a,3bに、そのイヤホン3a,3b用のオーディオデータのみを送信する。すなわち、一方のイヤホン3a,3bには、他方のイヤホン3a,3b用のオーディオデータは送信されない。各イヤホン3a,3bは、無線で通信を行うため、各イヤホン3a,3bが受信したオーディオデータの同期を取る処理を、情報提供端末2と各イヤホン3a,3bとの間で行うととともに、各イヤホン3a,3b同士でも同期を取る必要がある。本実施形態は、マスタMとスレーブS1,S2との間で行う同期処理に技術的特徴を有する。まず、BLEの規格について説明する。
【0037】
さらに、BLE機器内で使用されるBLE-PHYカウンタ用のクロックの精度に関して、±2μ秒以下のずれを有する、と記載されている。
【0038】
また、接続要件とクロック要件に関して、BLEの規格では、同期型接続(ISO:Isochronous connection)と一般データ用フレーム接続(ACL:Asynchronous Connection Interval)が規定されている。
【0039】
本実施形態では、マスタMとスレーブS1,S2は同期型接続(ISO)にてオーディオデータの伝送とクロックリカバリを行い、一般データ用フレーム接続(ACL)にて、GATT(Genetic Attribute)のプロファイルを介して、左右のイヤホン3a,3bでカウンタ値を交換し、カウンタのずれを調整する。
【0040】
図2はBLEの規格に準拠したパケット通信のタイミングを示す図である。
図2では、マスタM(情報提供端末2)から、2つのスレーブS1,S2(左右のイヤホン3a,3b)に再生用のオーディオデータを含むパケットを送信する例を示している。ISOインターバルの中には、複数のパケットのそれぞれが所定の間隔で配置されている。1つのパケットの送信間隔は、サブインターバルと呼ばれる。マスタMからのパケットを受信したスレーブS1,S2は、受取(ACK)情報を含むパケットをマスタMに送信する。複数のパケットを含むパケット群の送信期間は、Synchronization Delay(同期遅延期間)と呼ばれ、このSynchronization Delayの情報はパケットに含めて、マスタMからスレーブS1,S2に送信される。
【0041】
図2からわかるように、左右のイヤホン3a,3bでは、パケットの送信時刻がずれている。上述したように、BLEでは、左のイヤホン3bには左のオーディオデータを含むパケットを送信し、右のイヤホン3aには右のオーディオデータを含むパケットを送信する。また、BLEでは、左右のイヤホン3a,3bに同時にパケットを送信することはできない。このため、
図2に示すように、左のイヤホン3bと右のイヤホン3aでは、パケットの送信時刻にずれが生じる。しかしながら、Synchronization Delayを左のパケットと右のパケットでそれぞれ規定することで、Synchronization Delayの終了時刻を、左右のイヤホン3a,3bで一致させている。
【0042】
本実施形態では、Synchronization Delayの終了時刻から、さらにPresentation Delayの期間経過後に、左右のイヤホン3a,3bでオーディオデータの再生を開始させる。
【0043】
図3は
図2のサブインターバル内に送信される1つのパケットのデータ構成を示す図である。
図3のパケットのデータ構成はBLEの規格に準拠したものであり、BLEパケットと呼ばれる。
図3に示すように、BLEパケットは、プリアンブルと、アクセスアドレスと、PDUと、CRCとを有する。プリアンブルは、オーディオデータに関するデータを含まないが、BLE変調信号を含んでいる。アクセスアドレスは、通信相手を特定する情報やパケットの種類を表す情報を含んでいる。PDUは、オーディオデータを含む他に、上述したSynchronization Delayやパケット間隔に関する情報(BLEパラメータ)を含んでいる。CRCはエラーチェック用のデータである。
【0044】
図4は本実施形態による同期装置1の一部を構成するマスタM又はスレーブS1,S2のハードウェア構成の一例を示すブロック図である。より具体的には、
図4はイヤホン3a,3bのハードウェア構成を示している。上述したように、
図4のイヤホン3a,3bは、情報提供端末2からオーディオデータを受信する際にはスレーブS1,S2として動作する。また、イヤホン3a,3b同士で同期化処理を行う際には、マスタM又はスレーブSとして動作する。
【0045】
図4のイヤホン3a,3bは、クロック生成部(CRG)11と、カウンタ部12と、RF(Radio Frequency)部13と、ベースバンド部14と、CPU15と、オーディオ処理部(Audio Processor)16と、バッファインターフェース部(BIF)17と、オーディオインタフェース部(AIF:Audio Interface)18と、音声出力部(Audio Chip)19と、スピーカ20と、マイク21とを有する。
【0046】
RF部13は、
図2に示したパケットを含む無線信号を受信して復調する処理を行う。RF部13の内部構成の説明は割愛するが、RF部13はBLEの規格に準拠して、2.4GHz帯域の無線信号を受信して復調処理を行う。このように、RF部13は、マスタMから送信された複数のパケットを受信するパケット受信部として機能する。
【0047】
ベースバンド部14は、PHY部14aとLINK部14bを有する。PHY部14aは、RF部13で復調した信号をデジタル信号に変換する。LINK部14bは、特定のアクセスアドレスを持つパケットを抽出し、パケットに含まれるパケット間隔の情報から理想的なPCDカウント値(理想PCDカウント値)を算出する。PCDカウント値とは、後述するように、マスタMから送信されるパケットの間隔をカウントするカウンタ(PCDカウンタ12aと呼ぶ)のカウント値である。このように、LINK部14bは、受信されたパケットに含まれるパケットの間隔に関する情報を抽出する情報抽出部と、抽出されたパケットの間隔に関する情報に基づいて、理想的なカウント値を算出する理想カウント値算出部として機能する。また、LINK部14bは、通信相手のPCDカウント値を理想PCDカウント値として受信する場合もある。
【0048】
CPU15は、比較処理(CMP)と、PCD制御処理と、SyncDelay検出処理(終了時刻情報取得部)と、Depacket処理を行う。比較処理では、LINK部14bで算出された理想的なPCDカウント値又は通信相手のPCDカウント値と、自装置内の後述するPCDカウンタ12aのカウント値とを比較する。
【0049】
PCD制御処理では、比較処理での比較結果に基づいて、理想PCDカウント値とPCDカウンタ12aのカウント値との差分を検出し、その差分に基づいて、PCDカウンタ12aを動作させる基準クロック信号の周波数を制御する。
【0050】
Depacket処理では、受信されたパケットの中身を抽出する。SyncDelay検出処理では、受信されたパケットに含まれるSynchronization Delayを検出する。パケット内のSynchronization Delayやオーディオデータなどの情報は、第1のRAM22に格納される。第1のRAM22に格納されたデータは、オーディオ処理部16により読み出される。
【0051】
このように、CPU15は、PCDカウント値と理想的なカウント値との差分を算出する差分算出部と、差分に基づいて基準クロック信号の周波数を調整する周波数調整部として機能する。
【0052】
また、CPU15は、左右のイヤホン3a,3b間で音出しタイミングの調整と音ずれの確認を行う場合は、左右のイヤホン3a,3bで同期させたLR同期パケットの生成処理と、LR通信時の再生Delay値の生成処理とを行う。
【0053】
オーディオ処理部16は、DSP16aを有し、第1のRAM22に格納されたパケットの情報を読み出して、上述したPresentation Delayを算出する。また、オーディオ処理部16は、第1のRAM22に格納されているパケットのオーディオデータのDMA転送を行うDMAC16bを内蔵している。DMAC16bは、オーディオデータを第2のRAM23に格納する。
【0054】
また、オーディオ処理部16は、左右のイヤホン3a,3b間で音出しタイミングの調整と音ずれの確認を行う場合は、CPU15が生成した再生Delay値を用いたパケットの遅延処理と、再生Delay値を加味した音声データのMix処理を行う。
【0055】
クロック生成部11は、水晶発振器11aと、1/2分周器11bと、PLL回路(SysPLL)11cと、1/N分周器11dと、不等分周PCDクロック生成部11eと、1/4分周器11fとを有する。水晶発振器11aは、例えば32MHzの源発振信号を出力する。1/2分周器11bは、源発振信号の周波数を1/2に落とした分周信号を出力する。PLL回路11cは、分周信号を用いて、PLL制御されるクロック信号を生成する。クロック信号の周波数は、例えば、源発振信号の周波数よりも速い周波数の信号である。1/N分周器11dは、クロック信号の周波数を1/Nに落とした分周信号を生成する。不等分周PCDクロック生成部11eは、理想PCDカウント値とPCDカウンタ12aのカウント値との差分に応じて、PCDカウンタ12aを動作させる基準クロック信号の元になるクロック信号の周波数を可変制御する。不等分周PCDクロック生成部11eから出力されるクロック信号の周波数は、1/4分周器11fで4分周されて基準クロック信号が生成される。
【0056】
カウンタ部12は、PCDカウンタ12aと、分周制御レジスタ12bとを有する。分周制御レジスタ12bは、上述したCPU15で算出された、理想PCDカウント値とPCDカウンタ12aのカウント値との差分に応じた分周制御値を記憶する。上述した不等分周PCDクロック生成部11eは、分周制御レジスタ12bに記憶された分周制御値に基づいて、クロック信号の分周比を設定する。
【0057】
PCDカウンタ12aは、1/4分周器11fから出力される基準クロック信号に同期してカウント動作を行う32ビットカウンタである。PCDカウンタ12aは、マスタMから送信されてくるパケットの間隔を基準クロック信号に同期させてカウントする。PCDカウンタ12aのカウント値は、CPU15に送られるとともに、BIF17にも送られる。
【0058】
BIF17は、BIF部17aと、比較器(CMP)17bと、トリガ生成部(Kicker)17cと、FIFO17dと、I2S通信部17eとを有する。比較器17bは、マスタMから送られたパケットに含まれるSynchronization Delayと、オーディオ処理部16で算出されたPresentation Delayとにより定まる再生時刻に応じた値と、PCDカウンタ12aのカウント値とを比較する。比較器17bで一致が検出されると、トリガ生成部17cはトリガ信号を出力する。
【0059】
FIFO17dは、トリガ生成部17cからトリガ信号が出力されると、第2のRAM23に格納されているオーディオデータを順に出力する。FIFO17dから出力されたオーディオデータは、I2S通信部17eを介してAIF18にシリアル伝送される。
【0060】
AIF18は、BIF17から出力されたオーディオデータについて所定の音声処理を行った後、音声出力部19に送信する。音声出力部19は、AIF8からのオーディオデータをD/A変換してスピーカ20に出力する。また、マイク21で収集した周囲の音声信号は、A/D変換してAIF18に送られる。
【0061】
図5はマスタM及びスレーブS1,S2が行うソフトウェア処理の機能ブロック図である。より具体的には、
図5の破線よりも上側がソフトウェア処理の機能ブロックを示し、破線よりも下側はソフトウェア処理に関連するハードウェアの構成ブロックを示している。
【0062】
図5に示すハードウェアの構成ブロックは、
図4のブロック図内の一部のブロックに対応付けられている。例えば、
図5のBLE-PHYカウンタ14cは、
図4のLINK部14bの内部に設けられる。
図5のPCDカウンタ12aは、
図4のカウンタ部12の内部のPCDカウンタ12aに対応する。
図5のBIF17は、
図4のBIF17に対応する。なお、
図5では省略しているが、実際には、BIF17とスピーカ20の間に、
図4に示すように、AIF18と音声出力部19が存在する。
図5のPCDラッチ部17fは、例えば
図4の比較器17bに設けられている。
図5のPCD制御部11gは、
図4の不等分周PCDクロック生成部11eに設けられる。
【0063】
図5に示すソフトウェア機能ブロック図は、BLE-PCDカウンタペア取得部31と、左右PCDずれ算出部32と、出力PCD算出部(同期化部)33と、Presentation Delay算出部(開始時刻算出部)34と、オーディオデコーダ35と、オーディオフレームカウンタ(第5カウンタ)36と、オーディオPCDカウンタペア取得部(カウント値取得部)37と、抜け落ち/wrap-around検出部38と、許容誤差外データ除去部39と、BLEパラメータ抽出部40と、理想PCD値算出部41と、PCD差分抽出部42と、速度成分抽出部43と、加速度成分抽出部44と、理想PCD制御値算出部45と、可能PCD制御値算出部46とを有する。これらのソフトウェア機能ブロックは、主には
図4のCPU15により実行される。
【0064】
BLE-PCDカウンタペア取得部31は、通信相手(例えばマスタM)のBLE-PHYカウンタ14cのカウント値及びPCDカウンタ12aのカウント値のペアを取得するともに、自装置(例えばスレーブS1,S2)のBLE-PHYカウンタ14cのカウント値及びPCDカウンタ12aのカウント値のペアを取得する。BLE-PHYカウンタ14cのカウント値は、マスタMとスレーブS1,S2で同じ値になるように、あるいは、カウント値の差分が同一になるように、定期的に校正処理が行われる。このため、以下の説明では、マスタ側とスレーブ側のBLE-PHYカウンタ14cのカウント値が同じであるか、差分が同一であるものとする。
【0065】
左右PCDずれ算出部32は、マスタMのPCDカウンタ12aのカウント値と、スレーブS1,S2のPCDカウンタ12aのカウント値との差分を算出する。Presentation Delay算出部34は、通信相手(例えばマスタM)から送信されたパケットに含まれるSynchronous DelayからPresentation Delayを算出する。出力PCD算出部33は、左右PCDずれ算出部32で算出されたPCDカウンタ12aのカウント値の差分と、Presentation Delayとに基づいて、オーディオデータの再生時刻に対応するPCDカウンタ12aのカウント値を算出する。
【0066】
オーディオフレームカウンタ36は、オーディオフレームを出力した数をカウントする。オーディオPCDカウンタペア取得部37は、オーディオフレームカウンタ36がカウントアップしたタイミングで、自装置(例えばスレーブS1,S2)のPCDカウンタ12aのカウント値とBLE-PHYカウンタ14cのカウント値を取得する。オーディオPCDカウンタペア取得部37で取得されたPCDカウンタ12aとBLE-PHYカウンタ14cのカウント値は、通信相手(例えばマスタM)に送信される。
【0067】
抜け落ち/wrap-around検出部38は、PCDカウンタ12aがパケットの間隔をカウントし損なった場合に、カウント値の補間を行う。また、PCDカウンタ12aは、最大カウント値に到達すると、0からカウントし直すため、PCDカウンタ12aのカウント途中で0からカウントし直したことを検出して、パケットの間隔に対応するカウント値を算出する。
【0068】
許容誤差外データ除去部39は、PCDカウンタ12aのカウント値が想定した範囲内にない場合は、そのカウント値を除去することで、カウント値の信頼性を向上させる。
【0069】
BLEパラメータ抽出部40は、受信されたパケットに含まれるBLEパラメータを抽出する。BLEパラメータには、例えばパラメータの間隔に関する情報が含まれている。
【0070】
理想PCD値算出部41は、BLEパラメータに含まれるパケットの間隔に関する情報に基づいて、理想PCDカウント値を算出する。より具体的には、理想PCD値算出部41は、受信されたパケットに含まれるパケット間隔(connection interval)を、PHY部14aでアクセスアドレスごとにラッチし、そのときのマスタMのPCDカウント値を期待値とする。
【0071】
PCD差分抽出部42は、自装置(例えばスレーブS1,S2)内のPCDカウンタ12aのカウント値をPCDラッチ部17fでラッチした値と、理想PCDカウント値とを比較して、その差分を抽出する。PCD差分抽出部42で抽出された差分に異常値が含まれる可能性もありうるため、1回ごとの差分を検出するのではなく、複数回の差分の変化率等を見て、異常な差分値は除外する。
【0072】
例えば、N番目のconnection intervalのPCDカウント値をPCDresultNとし、N回目の理想PCDカウント値をPCDreferNとすると、以下の式(1)により、差分ΔPCDdiffを算出する。
ΔPCDdiff={(PCDresultN-PCDresult1)-(PCDreferN-PCDrefer1)}/N
…(1)
【0073】
図6はPCDカウント値と理想PCDカウント値の関係の一例を示す図である。
図6の横軸は時刻、縦軸はPCDカウント値である。
図6の白丸はPCDカウント値、
図6の直線は理想PCDカウント値を示している。時刻t2におけるPCDカウント値は許容誤差外データ除外部で除外されている。直線と白丸との距離がPCDカウント値の差分を表している。PCDカウント値は、パケットを受信するたびに、多少の誤差を含んでいるが、複数回のPCDカウント値の計測結果を考慮に入れることで、信頼性の高い差分を算出できる。
【0074】
速度成分抽出部43は、PCD差分抽出部42で抽出された差分が単位時間に変化した値を示す速度成分を抽出する。加速度成分抽出部44は、速度成分抽出部43で抽出された速度成分が単位時間に変化した値を示す加速度成分を抽出する。
【0075】
理想PCD制御値算出部45は、速度成分及び加速度成分がゼロに近づくようにPCD制御値を算出する。状態遷移を持たせて、オーバー気味あるいはアンダー気味のPCD制御値を算出してもよいし、場合によっては制御放棄にしてもよいし、初期状態では制御値を大きくし、初期状態以外では制御値の変化率を小さくするようなPCD制御値のゲイン調整を行ってもよい。
【0076】
可能PCD制御値算出部46は、PCD制御値が所定の範囲内に収まるように丸める処理を行う。可能PCD制御値算出部46で算出されたPCD制御値は、
図4の分周制御レジスタ12bに記憶される。不等分周PCDクロック生成部11eは、PCD制御値に応じた分周比で分周されたクロックを生成する。このクロックに基づいて、1/4分周器11fは基準クロック信号を生成する。
【0077】
図7は、マスタMがスマートフォン等の情報提供端末2で、スレーブS1,S2がイヤホン3a,3bである場合の処理動作を示すフローチャートである。まず、マスタMとスレーブS1,S2との間でICO(Isychronous Connection Oriented)通信を行う(ステップS1)。ICO通信では、
図3に示したように、複数のパケットのそれぞれを所定の間隔で順次送信する。
【0078】
次に、マスタMとスレーブS1,S2はそれぞれ、通信相手から送信されたパケットに含まれるアクセスアドレスを取得する(ステップS2)。アクセスアドレスによって、通信相手を特定することができる。この場合は、後述するクロックリカバリ処理を行う通信相手からのパケットであるか否かを判断する。
【0079】
アクセスアドレスによって通信相手を特定できた場合には、クロックリカバリ処理を開始する(ステップS3)。クロックリカバリ処理では、後に詳述するように、マスタMとして機能する情報提供端末2から送信されたパケットの間隔をスレーブS1,S2のPCDカウンタ12aでカウントし、PCDカウンタ12aのカウント値が理想的なPCDカウント値に一致するように、PCDカウンタ12aを動作させる基準クロック信号の周波数を制御する処理を行う。
【0080】
次に、左のスレーブS1,S2(イヤホン3a,3b)と右のスレーブS1,S2(イヤホン3a,3b)との間で、ACL(Asynchronous Connection Less)通信を開始する(ステップS4)。ACL通信とは、左右のイヤホン3a,3b同士でパケットを送受して、再生時刻のタイミング調整と音ずれの確認を行うものである。
【0081】
まず、アクセスアドレスを取得する(ステップS5)。アクセスアドレスによって、通信相手を特定する。次に、受信されたパケットに含まれるGATT(Genetic Attribute)のプロファイルを取得する(ステップS6)。次に、取得したGATTに基づいて、マスタMかスレーブS1,S2かを判別する(ステップS7)。マスタMの場合は、
図7のフローチャートを終了する。一方、スレーブS1,S2の場合は、クロックリカバリ処理を行う(ステップS8)。ステップS8のクロックリカバリ処理では、マスタMとなるイヤホン3a,3bから送られたPCDカウント値を、スレーブS1,S2となるイヤホン3a,3bで取得し、スレーブS1,S2のPCDカウント値との差分を算出し、その差分が小さくなるように、スレーブS1,S2のPCDカウンタ12aを動作させる基準クロック信号の周波数を調整する。このように、ペアリング後に行われるクロックリカバリ処理は、スレーブS1,S2のみが行う。
【0082】
図8は、マスタMとスレーブSの一方が左のイヤホン3bで、他方が右のイヤホン3aである場合の処理動作を示すフローチャートである。まず、ACL通信を開始する(ステップS11)。次に、アクセスアドレスを取得する(ステップS12)。次に、GATTプロファイルを取得する(ステップS13)。次に、取得したGATTプロファイルに基づいて、マスタMかスレーブSかを判定する(ステップS14)。マスタMと判定されると
図9の処理を終了し、スレーブSと判定されると
図8に示すクロックリカバリ処理を行う(ステップS15)。
【0083】
図8の処理は、左右のイヤホン3a,3b同士で行うものであり、例えば、情報提供端末2とペアリングを行う前に、左右のイヤホン3a,3b同士でペアリング処理を行う場合や、情報提供端末2からオーディオデータの提供を受ける合間に、左右のイヤホン3a,3b同士で同期を取る目的で行われる。
【0084】
図9は、
図7及び
図8のフローチャートにおけるクロックリカバリ処理の詳細フローチャートである。
図9のフローチャートは、スレーブS1,S2(イヤホン3a,3b)が行うクロックリカバリ処理を示している。まず、PCDカウンタ12aを動作させる基準クロック信号の周波数を変更するか否かを判定する(ステップS21)。ステップS21では、マスタMが情報提供端末2で、スレーブS1,S2がイヤホン3a,3bである場合は、基準クロック信号の周波数を変更すると判定される。
【0085】
基準クロック信号の周波数を変更すると判定された場合、クロックリカバリの基準点(基準時刻)を確定する(ステップS22)。ここでは、例えば、特定のパケットが受信された時刻を基準点とする。次に、スレーブS1,S2内のPCDカウンタ12aのカウント値(PCDカウント値)を読み込む(ステップS23)。次に、PCDカウンタ12aのカウント値と、パケット間隔に基づいて算出した理想的なPCDカウント値との差分を算出する(ステップS24)。なお、ステップS24では、情報提供端末2からのオーディオデータを受信する左右のイヤホン3a,3b同士で同期化処理を行う場合、一方のイヤホン3a,3bをマスタMとして、マスタMから送信されたPCDカウント値と、スレーブSのPCDカウント値との差分を算出する。
【0086】
次に、算出された差分に基づいて、PCDカウンタ12aを動作させる基準クロック信号の周波数を調整する(ステップS25)。次に、PCDカウンタ12aのカウント値とBLE-PHYカウンタ14cのカウント値をペアにしてマスタMに送信する(ステップS26)。
【0087】
次に、PCDカウンタ12aのカウント値の位相調整を行うか否かを判定する(ステップS27)。マスタMが情報提供端末2の場合は、位相調整は行わないため、
図8の処理を終了する。一方、左のイヤホン3bと右のイヤホン3aで音出しタイミングを調整する場合には、位相調整を行うと判定される。
【0088】
PCDカウンタ12aのカウント値の位相調整を行うと判定された場合、マスタM(一方のイヤホン3a,3b)から送信された、PCDカウンタ12aのカウント値とBLE-PHYカウンタ14cのカウント値のペアを取得する(ステップS28)。
【0089】
次に、マスタM(一方のイヤホン3a,3b)のPCDカウント値とスレーブS1,S2(他方のイヤホン3a,3b)のPCDカウント値の差分を算出する(ステップS29)。次に、算出された差分に基づいて、スレーブS1,S2のPCDカウント値を調整する(ステップS30)。
【0090】
(クロックリカバリ処理)
次に、クロックリカバリ処理について詳細に説明する。
図7~
図9のフローチャートに示したように、クロックリカバリ処理は、マスタMが情報提供端末2で、スレーブS1,S2がイヤホン3a,3bである場合にも行われるし、マスタMが一方のイヤホン3a,3bで、スレーブSが他方のイヤホン3a,3bである場合にも行われる。
【0091】
図5のブロック図の破線枠内がクロックリカバリ処理に関連する処理ブロックである。クロックリカバリ処理には、ハードウェアとしては、PCDラッチ部17fとPCD制御部11gが用いられ、ソフトウェアの機能ブロックとしては、抜け落ち/wrap-around検出部38と、許容誤差外データ除去部39と、BLEパラメータ抽出部40と、理想PCD値算出部41と、PCD差分抽出部42と、速度成分抽出部43と、加速度成分抽出部44と、理想PCD制御値算出部45と、可能PCD制御値算出部46とが設けられる。
【0092】
図10~
図12はスレーブS1,S2が行うクロックリカバリ処理の手順を矢印線で示した図である。まず、
図10の矢印線に示すように、例えば新たなパケットが受信された時点で、PCDカウンタ12aでカウントしていたPCDカウント値をPCDラッチ部17fでラッチする。次に、
図11に示すように、ラッチされたPCDカウント値と、理想PCD値算出部41で算出された理想PCDカウント値との差分をPCD差分抽出部42で算出する。その後、速度成分抽出部43と加速度成分抽出部44の処理を経て、理想PCD制御値算出部45にて理想PCD制御値を算出する。次に、
図12に示すように、可能PCD制御値算出部46にてPCD制御値を算出し、このPCD制御値に基づいて、PCDカウンタ12aを動作させる基準クロック信号の周波数を制御する。
【0093】
図10~
図12に示すクロックリカバリ処理にて、スレーブS1,S2のPCDカウント値のずれが補正される。
【0094】
クロックリカバリ処理は、マスタMが情報提供端末2の場合にスレーブS1,S2で行われる。この他、例えば左右イヤホン3a,3bの一方がマスタMの場合に、他方のイヤホン3a,3bでも行われる。この場合のクロックリカバリ処理は、
図8のステップS35の処理である。イヤホン3a,3b同士で行うクロックリカバリ処理では、マスタMのイヤホン3a,3bのPCDカウント値がスレーブS1,S2である他方のイヤホン3a,3bに送られる。スレーブS1,S2は、自装置のPCDカウント値とマスタMのPCDカウント値との差分を算出し(
図9のステップS14)、その差分がゼロになるように、基準クロック信号の周波数を調整する(ステップS15)。
【0095】
これにより、左右のイヤホン3a,3bから音声出力を開始した後に、左右のイヤホン3a,3bは、マスタMである情報提供端末2から継続してオーディオデータの提供を受けて、情報提供端末2との同期処理を行う合間に、左右のイヤホン3a,3b同士でも同期処理を行うことができる。
【0096】
クロックリカバリ処理が終了すると、左右イヤホン3a,3bの音出しタイミング調整が行われる。
図13は左右イヤホン3a,3bの音出しタイミング調整の概念図である。
図13の例では、左のイヤホン3bと右のイヤホン3aのいずれかをマスタMとし、他方をスレーブSとし、マスタMのBLE-PHYカウンタ14cのカウント値(BLE-PHYカウント値)が2~7まで変化している間に、PCDカウンタ12aのカウント値(PCDカウント値)が100~600まで変化している。一方、スレーブS1,S2のBLE-PHYカウント値は2~7まで変化している間に、PCDカウント値は110~610まで変化している。このように、BLE-PHYカウント値は、マスタMとスレーブで一致している。その理由は、パケットを受信するたびに、スレーブS1,S2のBLE-PHYカウント値をマスタMのBLE-PHYカウント値に一致させる処理が行われるためである。これに対して、PCDカウント値はマスタMとスレーブS1,S2でずれが生じる場合がある。その理由は、マスタMやスレーブS1,S2内の水晶発振器11aから出力される源発振信号の周波数が必ずしも一致しないことから、PCDカウント値にずれが生じるためである。
【0097】
左右イヤホン3a,3bの音出しタイミング調整では、PCDカウント値の差分を検出し、その差分を考慮に入れた上で、どのタイミングで左右イヤホン3a,3bの音出しを行うかを決定する。
図13では、BLE-PHYカウント値が7で、かつ、その後にPCDカウント値が60だけカウントアップしたときに音出しを行うことを決定した例を示している。この場合、マスタMは、BLE-PHYカウント値が7で、PCDカウント値が660のときが音出しタイミングになるのに対し、スレーブS1,S2は、BLE-PHYカウント値が7で、PCDカウント値が670のときが音出しタイミングになる。このように、マスタMとスレーブS1,S2のPCDカウント値の差分を検出して、その差分を考慮に入れて音出しタイミングを決定することで、左右イヤホン3a,3bでの音出しタイミングを一致させることができる。
【0098】
図14~
図18はスレーブSが行う左右イヤホン3a,3bの音出しタイミング調整と出音タイミングのずれ確認処理の手順を矢印線で示した図である。
図14~
図18の処理は、左右イヤホン3a,3bのいずれか一方をマスタMとし、かつ他方をスレーブSとして行われる。
【0099】
まず、
図14の矢印線に示すように、BLE-PCDカウンタペア取得部31は、マスタMからのパケットを受信したときに、そのパケットに含まれる、マスタMのBLE-PHYカウンタ14cのカウント値及びPCDカウンタ12aのカウント値のペアを取得する。
【0100】
また、
図15に示すように、BLE-PCDカウンタペア取得部31は、自装置(スレーブS)のBLE-PHYカウンタ14cのカウント値及びPCDカウンタ12aのカウント値のペアを取得する。左右PCDずれ計算部は、マスタMのPCDカウンタ12aのカウント値と、スレーブSのPCDカウンタ12aのカウント値との差分を算出する。本明細書では、マスタMのBLE-PHYカウンタ14cを第1カウンタ、マスタMのPCDカウンタ12aを第2カウンタと呼び、スレーブSのBLE-PHYカウンタ14cを第3カウンタ、スレーブSのPCDカウンタ12aを第4カウンタと呼ぶことがある。
【0101】
次に、
図16に示すように、Presentation Delay算出部34は、受信されたパケットに含まれるSynchronous DelayからPresentation Delayを算出する。出力PCD算出部33は、左右PCDずれ算出部32で算出されたPCDカウンタ12aのカウント値の差分と、Presentation Delayとに基づいて、オーディオデータの再生時刻に対応するPCDカウンタ12aのカウント値を算出する。そして、PCDカウンタ12aのカウント値が再生時刻に対応するカウント値に到達すると、オーディオデコーダ35でデコードされたオーディオデータは、BIF17、AIF18及び音声出力部19を介して、スピーカ20から音声出力する。
【0102】
オーディオデコーダ35でデコードされたオーディオデータは、
図17に示すように、オーディオフレームカウンタ36にも送られる。オーディオフレームカウンタ36は、オーディオフレームの数をカウントする。オーディオフレームカウンタ36がカウントアップしたタイミングに同期して、オーディオPCDカウンタペア取得部37は、自装置(スレーブS)のBLE-PHYカウンタ14cのカウント値とPCDカウント値とを取得する。取得されたBLE-PHYカウンタ14cのカウント値とPCDカウント値は、
図18に示すようにマスタMに送信される。
【0103】
図14~
図18に示す音出しタイミング調整と出音タイミングのずれ調整は、左右イヤホン3a,3bが情報提供端末2からオーディオデータを含むパケットを受信する合間に行われる。左右イヤホン3a,3bは、情報提供端末2からオーディオデータを含むパケットを受信する際にはスレーブS1,S2として動作する。左右イヤホン3a,3b同士で、
図14~
図18に示す音出しタイミング調整と出音タイミングのずれ調整を行う際には、いずれか一方のイヤホン3a,3bがマスタMとなり、他方のイヤホン3a,3bがスレーブSとなる。
【0104】
これにより、左右のイヤホン3a,3bから音声出力を開始した後に、左右のイヤホン3a,3bは、マスタMである情報提供端末2から継続してオーディオデータの提供を受けて、情報提供端末2との同期処理を行いつつ、左右のイヤホン3a,3b同士でも同期処理を行うことができる。
【0105】
このように、本実施形態では、マスタMとスレーブS1,S2がBLEに準拠したパケット通信を行う際、スレーブS1,S2でクロックリカバリ処理を行うため、マスタMとスレーブS1,S2で、時系列データを同期化することができる。クロックリカバリ処理では、マスタMとして機能する情報提供端末2と、情報提供端末2からのパケットを受信するスレーブS1,S2との間でパケット通信を行う場合は、スレーブS1,S2のPCDカウンタ12aでマスタMから送信されたパケットの間隔を計測するとともに、パケットに含まれるBLEパラメータから理想PCDカウント値を算出し、PCDカウント値と理想PCDカウント値の差分を算出する。差分に基づいてPCDカウンタ12aを動作させる基準クロック信号の周波数を制御するため、スレーブS1,S2のPCDカウント値をマスタMのPCDカウント値に一致、あるいは両者の差分を一定にすることができる。
【0106】
本実施形態による同期装置1は、このようなクロックリカバリ処理を、スマートフォン等の情報提供端末2をマスタMとして、左右のイヤホン3a,3bをスレーブS1,S2として行った後、左右イヤホン3a,3bの音出しタイミングの調整を行う。この音出しタイミングの調整では、パケットに含まれるSynchronous Delayと、Synchronous Delayから算出されるPresentation Delayと、PCDカウント値と、その差分情報とを用いて、オーディオデータの再生時刻をマスタMとスレーブS1,S2で合わせることができる。
【0107】
また、いったん音声出力を開始した後、一方のイヤホン3a,3bをマスタMとし、他方のイヤホン3a,3bをスレーブS1,S2として、出音タイミングのずれの確認及び調整を行うことができる。ここでは、マスタMとスレーブS1,S2で、BLE-PHYカウント値とPCDカウント値をペアにして交換し、例えばスレーブS1,S2にて、PCDカウント値の差分を検出する。そして、その差分に応じて、音声出力のタイミングを調整する。これにより、左右イヤホン3a,3bのPCDカウント値が時間の経過とともにずれたとしたとしても、音声出力タイミングを左右イヤホン3a,3bで一致させることができる。
【0108】
上述した実施形態で説明した同期装置1の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、同期装置1の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0109】
また、同期装置1の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0110】
なお、本技術は以下のような構成を取ることができる。
(1)マスタとスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
複数のパケットを生成するパケット生成部と、
前記複数のパケット中の任意のパケットを所定の間隔で前記スレーブに送信するパケット送信部と、を有し、
前記スレーブは、
前記任意のパケットを受信するパケット受信部と、
基準クロック信号に基づいて、前記任意のパケットの間隔をカウントするカウンタと、を備え、
前記カウンタのカウント値に基づいて、前記基準クロック信号の周波数を調整することで、前記マスタと前記複数のスレーブ間での同期を図る、同期装置。
(2)マスタと複数のスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
複数のパケットを生成するパケット生成部と、
前記複数のパケット中の任意のパケットを所定の間隔で前記複数のスレーブのうち一つに送信するパケット送信部と、を有し、
前記複数のスレーブのうちの一つは、
前記任意のパケットを受信するパケット受信部と、
基準クロック信号に基づいて、前記任意のパケットの間隔をカウントするカウンタと、を備え、
前記カウンタのカウント値に基づいて、前記基準クロック信号の周波数を調整することで、前記マスタと前記複数のスレーブ間での同期を図る、同期装置。
(3)前記複数のパケットは、パケットの間隔に関する情報と時系列データとを含んでおり、
前記パケット受信部で新たなパケットが受信されるたびに、前記カウンタのカウント値をラッチするラッチ部と、
前記パケット受信部で受信されたパケットに含まれるパケットの間隔に関する情報を抽出する情報抽出部と、
前記抽出されたパケットの間隔に関する情報に基づいて、理想的なカウント値を算出する理想カウント値算出部と、
前記ラッチ部でラッチされた前記カウンタのカウント値と、前記理想的なカウント値との差分を算出する差分算出部と、
前記差分に基づいて、前記基準クロック信号の周波数を調整する周波数調整部と、を備える、(1)又は(2)に記載の同期装置。
(4)前記周波数調整部は、前記ラッチ部でラッチされた前記カウンタのカウント値が前記理想的なカウント値よりも大きければ、前記基準クロック信号の周波数を低くし、前記ラッチ部でラッチされた前記カウンタのカウント値が前記理想的なカウント値よりも小さければ、前記基準クロック信号の周波数を高くする、(3)に記載の同期装置。
(5)前記スレーブは、
前記差分の時間変化に基づいて、前記差分が所定値以下になるように前記基準クロック信号の周波数を調整するための制御値を算出する制御値算出部を有し、
前記周波数調整部は、前記制御値に基づいて、前記基準クロック信号の周波数を調整する、(3)又は(4)に記載の同期装置。
(6)前記スレーブは、
前記差分の単位時間当たりの変化値を示す速度成分を抽出する速度成分抽出部と、
前記速度成分の単位時間当たりの変化値を示す加速度成分を抽出する加速度成分抽出部と、を有し、
前記制御値算出部は、前記速度成分及び前記加速度成分に基づいて、前記制御値を算出する、(5)に記載の同期装置。
(7)前記スレーブは、前記制御値のばらつきが所定範囲内に収まるように調整する制御値調整部を有し、
前記周波数調整部は、前記制御値調整部で調整された制御値に基づいて、前記基準クロック信号の周波数を調整する、(5)又は(6)に記載の同期装置。
(8)前記パケット送信部は、前記複数のパケットを含むパケット群を、予め定めた間隔で複数回送信し、
前記スレーブ内の前記カウンタは、前記パケット群に含まれる各パケットの間隔をそれぞれ計測し、
前記スレーブは、
前記パケット群に含まれる各パケットの間隔のうち、カウント値を計測し損ねたパケットの間隔が存在する場合には、カウント値を補間する補間部と、
前記カウンタでカウントしたカウント値のうち、許容範囲を逸脱しているカウント値を除去する除外部と、を有し、
前記差分算出部は、前記補間部による補間と、前記除外部による除外とを行ったカウント値と、前記理想的なカウント値との差分を算出する、(3)乃至(7)のいずれか一項に記載の同期装置。
(9)前記時系列データは、生体情報を含むデータ又はオーディオデータである、(1)乃至(8)のいずれか一項に記載の同期装置。
(10)前記複数のスレーブのそれぞれにおける前記パケット受信部は、前記マスタとそれぞれ異なるタイミングで無線通信を行って、前記マスタから送信された固有の時系列データを含む前記複数のパケットを受信する、(3)乃至(9)のいずれか一項に記載の同期装置。
(11)前記マスタは、オーディオデータを記憶する記憶部を有する情報提供端末であり、
前記情報提供端末とそれぞれ異なるタイミングで無線通信を行う2台の前記スレーブを備え、
前記2台のスレーブのうち一方は前記マスタから送信された左耳用のオーディオデータを再生するイヤホンであり、他方は前記マスタから送信された右耳用のオーディオデータを再生するイヤホンである、(1)乃至(10)のいずれか一項に記載の同期装置。
(12)マスタとスレーブとの間で無線通信により時系列データを同期させる同期装置であって、
前記マスタは、
第1基準クロック信号に基づいてカウント動作を行う第1カウンタと、
第2基準クロック信号に基づいて、情報提供端末から送信された複数のパケットの間隔をカウントする第2カウンタと、
前記第1カウンタのカウント値と前記第2カウンタのカウント値とを含むパケットを前記スレーブに送信する第1パケット送信部と、を有し、
前記スレーブは、
第3基準クロック信号に基づいてカウント動作を行う第3カウンタと、
第4基準クロック信号に基づいて、前記情報提供端末から送信された前記複数のパケットの間隔をカウントする第4カウンタと、
前記第3カウンタのカウント値と前記第4カウンタのカウント値とを含むパケットを前記マスタに送信する第2パケット送信部と、
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値とに基づいて、前記第4基準クロック信号の周波数を調整する周波数調整部と、を有する、同期装置。
(13)前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値との差分を算出する差分算出部を備え、
前記周波数調整部は、前記差分に基づいて、前記第4基準クロック信号の周波数を調整する、(12)に記載の同期装置。
(14)前記第1カウンタのカウント値と、前記第3カウンタのカウント値とは、前記マスタと前記スレーブとでパケット通信を行うたびに、同じ値になるか、又は差分が同一になるように調整される、(12)又は(13)に記載の同期装置。
(15)前記スレーブは、
前記情報提供端末から送信された複数のパケットに含まれる送信終了時刻に関する情報を取得する終了時刻情報取得部と、
前記送信終了時刻に関する情報に基づいて、時系列データの再生又は処理の開始時刻に関する情報を算出する開始時刻算出部と、
前記第3カウンタのカウント値と、前記周波数調整部で前記第4基準クロック信号の周波数を調整後の前記第4カウンタのカウント値と、前記周波数調整部で前記第4基準クロック信号の周波数を調整後の前記差分算出部で算出された前記差分と、前記開始時刻に関する情報と、に基づいて、時系列データの再生又は処理を行う時刻を前記マスタとの間で同期させる同期化部と、を有する(13)に記載の同期装置。
(16)前記スレーブは、
再生又は処理された時系列データの区切りをカウントする第5カウンタと、
前記第5カウンタがカウントアップするたびに、前記第3カウンタのカウント値と、前記第4カウンタのカウント値とを取得するカウント値取得部と、を備え、
前記第2パケット送信部は、前記カウント値取得部で取得された前記第3カウンタのカウント値と、前記第4カウンタのカウント値とを前記マスタに送信する、(12)乃至(15)のいずれか一項に記載の同期装置。
(17)前記時系列データは、オーディオデータであり、
前記第5カウンタは、前記オーディオデータのフレーム数をカウントする、(16)に記載の同期装置。
(18)前記周波数調整部は、前記マスタ及び前記スレーブがパケット通信を開始する際に、前記差分に基づいて前記第4基準クロック信号の周波数を調整し、
前記同期化部は、前記マスタ及び前記スレーブが前記情報提供端末との間でパケット通信を行う合間に、時系列データの再生又は処理を行う時刻を前記マスタとの間で同期させる、(12)乃至(17)のいずれか一項に記載の同期装置。
(19)前記マスタ及び前記スレーブの一方は、前記情報提供端末から左耳用のオーディオデータを受信する第1イヤホンであり、他方は、前記情報提供端末から前記第1イヤホンとは別個のタイミングで右耳用のオーディオデータを受信する第2イヤホンである、(12)乃至(18)のいずれか一項に記載の同期装置。
(20)前記第1イヤホン及び前記第2イヤホンのそれぞれが、互いにパケットを送受して、前記第1イヤホン及び前記第2イヤホンのそれぞれにおいて受信されたパケットに含まれるプロファイル情報にて、自装置が前記マスタ又は前記スレーブであることを確定するマスタ/スレーブ確定部を有する、(19)に記載の同期装置。
(21)前記マスタと前記スレーブとは、Bluetooth(登録商標) Low Energyの規格に準拠したパケット通信を行う、(1)乃至(20)のいずれか一項に記載の同期装置。
(22)マスタと複数のスレーブとの間で無線通信により時系列データを同期させる同期方法であって、
前記マスタは、
複数のパケットを生成し、
前記複数のパケット中の任意のパケットを所定の間隔で前記複数のスレーブのうち一つに送信し、
前記複数のスレーブのうち一つは、
前記任意のパケットを受信し、
基準クロック信号に基づいて、前記任意のパケットの間隔をカウンタでカウントし、
前記カウンタのカウント値に基づいて、前記基準クロック信号の周波数を調整することで、前記マスタと前記複数のスレーブ間での同期を図る、同期方法。
(23)マスタとスレーブとの間で無線通信により時系列データを同期させる同期方法であって、
前記マスタは、
第1基準クロック信号に基づいて第1カウンタでカウント動作を行い、
第2基準クロック信号に基づいて、情報提供端末から送信された複数のパケットの間隔を第2カウンタでカウントし、
前記第1カウンタのカウント値と前記第2カウンタのカウント値とを含むパケットを前記スレーブに送信し、
前記スレーブは、
第3基準クロック信号に基づいて第3カウンタでカウント動作を行い、
第4基準クロック信号に基づいて、前記情報提供端末から送信された前記複数のパケットの間隔を第4カウンタでカウントし、
前記第3カウンタのカウント値と前記第4カウンタのカウント値とを含むパケットを前記マスタに送信し、
前記マスタから送信された前記第2カウンタのカウント値と、前記第4カウンタのカウント値とに基づいて、前記第4基準クロック信号の周波数を調整する、同期方法。
【0111】
本開示の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本開示の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本開示の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【0112】
1 同期装置、2 情報提供端末、3a、3b イヤホン、11 クロック生成部、11a 水晶発振器、11b 1/2分周器、11c PLL回路、11d 1/N分周器、11e 不等分周PCDクロック生成部、11f 1/4分周器、12 カウンタ部、12a PCDカウンタ、13 RF部、14 ベースバンド部、14a PHY部、14b LINK部、15 CPU、16 オーディオ処理部、16a DSP、16b DMAC、17 BIF、17a BIF部、17b 比較器、17c トリガ生成部、17d FIFO、17e I2S通信部、18 オーディオインタフェース部、19 音声出力部、20 スピーカ、21 マイク、31 BLE-PCDカウンタペア取得部、32 左右PCDずれ算出部、33 出力PCD算出部、34 Presentation Delay算出部、35 オーディオデコーダ、36 オーディオフレームカウンタ、37 オーディオPCDカウンタペア取得部、38 抜け落ち/wrap around検出部、39 許容誤差外データ除去部、40 BLEパラメータ抽出部、41 理想PCD値算出部、42 PCD差分抽出部、43 速度成分抽出部、44 加速度成分抽出部、45 理想PCD制御値算出部、46 可能PCD制御値算出部