(58)【調査した分野】(Int.Cl.,DB名)
前記間隔調整手段は、前記更新間隔同定手段により前記外部機器における現在時刻データの前記更新間隔が同定されると、当該更新間隔を前記計時手段の時刻精度に応じた長さ分短縮又は延長した通信時間間隔を再設定し、
前記現在時刻取得手段は、前記更新間隔と、前記再設定された通信時間間隔と、当該通信時間間隔ごとに取得された前記現在時刻の配列パターンとに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が最も小さい受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する
ことを特徴とする請求項1記載の電子時計。
前記時刻修正手段は、前記現在時刻取得手段が取得した現在時刻に当該現在時刻の取り得る最大遅延時間の半分の値を加算した時刻により、前記計時手段の現在時刻データを修正する
ことを特徴とする請求項1又は2に記載の電子時計。
前記更新間隔同定手段により変更される前記通信時間間隔ごとに受信される現在時刻間での当該現在時刻の変化量の配列と、当該変化量の配列に対応する前記更新間隔とを関連付けてテーブルデータとして記憶する記憶手段を備え、
前記時刻修正手段は、当該記憶手段に記憶された前記テーブルデータと前記通信時間間隔ごとに受信された現在時刻の配列パターンとを比較することで前記更新間隔を同定する
ことを特徴とする請求項1記載の電子時計。
現在時刻を計数する計時手段と、設定された通信時間間隔で無線通信により外部機器との間でデータの送受信を行う通信手段と、を備える電子時計において、当該通信手段により前記外部機器から取得された現在時刻データに基づいて前記計時手段の現在時刻を修正する時刻修正方法であって、
前記時刻修正方法は、
前記計時手段の現在時刻の修正処理を行う間、前記通信時間間隔を予め設定された所定の値に変更する間隔調整ステップ、
前記間隔調整ステップで変更された前記通信時間間隔ごとに前記通信手段に現在時刻データを受信させて、受信された当該現在時刻の配列パターンと前記通信時間間隔とに基づいて前記外部機器における現在時刻データの更新間隔を同定する更新間隔同定ステップ、
前記更新間隔同定ステップで同定された前記更新間隔と、前記現在時刻の配列パターンと、前記通信時間間隔とに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が前記計時手段の現在時刻の精度に基づいて設定される所定の基準値よりも小さい前記現在時刻データの受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する現在時刻取得ステップ、
を含むことを特徴とする時刻修正方法。
現在時刻を計数する計時手段と、設定された通信時間間隔で無線通信により外部機器との間でデータの送受信を行う通信手段と、を備えるコンピュータに、当該通信手段により前記外部機器から取得された現在時刻データに基づいて前記計時手段の現在時刻を修正する時刻修正機能を実現させるためのプログラムであって、
前記時刻修正機能は、
前記計時手段の現在時刻の修正処理を行う間、前記通信時間間隔を予め設定された所定の値に変更する間隔調整ステップ、
前記間隔調整ステップで変更された前記通信時間間隔ごとに前記通信手段に現在時刻データを受信させて、受信された当該現在時刻の配列パターンと前記通信時間間隔とに基づいて前記外部機器における現在時刻データの更新間隔を同定する更新間隔同定ステップ、
前記更新間隔同定ステップで同定された前記更新間隔と、前記現在時刻の配列パターンと、前記通信時間間隔とに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が前記計時手段の現在時刻の精度に基づいて設定される所定の基準値よりも小さい前記現在時刻データの受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する現在時刻取得ステップ、
を含むことを特徴とするプログラム。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を図面に基づいて説明する。
【0012】
[第1実施形態]
図1は、本発明の第1実施形態の電子時計を含む時刻情報取得システムの構成を示す図である。
【0013】
この時刻情報取得システム1は、電子時計40と、外部機器としてのスマートフォン10とから構成される。電子時計40は、時計本体とバンドとを備えた腕時計である。スマートフォン10は、携帯基地局との無線通信を行う。電子時計40及びスマートフォン10は、何れもブルートゥースの規約バージョン4.0に基づく近距離無線通信機能を備えており、お互いに低消費電力モードによる通信が可能となっている。
【0014】
図2は、電子時計40の内部構成を示すブロック図である。また、
図3は、スマートフォン10の内部構成を示すブロック図である。
【0015】
電子時計40は、
図2に示すように、CPU(Central Processing Unit)41(時刻修正手段、制御手段)と、ROM(Read Only Memory)42と、RAM(Random Access Memory)43と、操作部44と、計時手段としての計時回路45と、表示部46(表示手段)及び表示部46を駆動制御するドライバ47と、通信手段としてのBluetoothモジュール48及びUART(Universal Asynchronous Receiver Transmitter)49と、振動モータ50及びそのドライバ51と、LED(発光ダイオード)52及びそのドライバ53と、ピエゾ素子54及びそのドライバ55と、CPU41と各部との間で信号のやり取りをするバス56などを備えている。
【0016】
CPU41は、電子時計40の全体動作の統轄制御及び各種演算処理を行う。CPU41は、計時回路45の計数する現在時刻に基づいて表示部46に時刻表示を行わせる。また、CPU41は、時刻データ更新プログラム42aを実行して、Bluetoothモジュールを介してスマートフォン10から取得された時刻情報に基づき、計時回路45の時刻データを修正する。
【0017】
ROM42は、CPU41が実行する種々のプログラムや当該プログラムによって利用される初期設定データを格納する。ROM42の格納するデータには、時刻データ更新プログラム42aが含まれる。
【0018】
RAM43は、CPU41に作業用のメモリ空間を提供し、ROM42から読み込まれた実行プログラムを展開したり、一時データを記憶したりする。
【0019】
操作部44は、1又は複数の操作キーを備え、ユーザが当該操作キーに対して行った操作に基づいて入力信号に変換して、CPU11に出力する。或いは、この操作部44は、タッチパネルであっても良い。また、操作部44への入力操作を通じて、手動で時刻データ更新プログラム42aを実行させることが出来る。
【0020】
計時回路45は、現在時刻を計数して保持するカウンタである。この計時回路45から出力された現在時刻データに基づいて現在時刻が表示部46に表示されたり、当該現在時刻データと各種機能に係る設定時刻データ(例えば、アラーム設定時刻)とが比較されて種々の動作が行われたりする。この計時回路45が保持する現在時刻は、1/256秒の時間分解能を有する。また、この現在時刻のデータは、ブルートゥース通信により外部機器から取得された時刻データや、操作部44の操作により手動で入力された時刻データに基づいて書き換え可能に構成されている。
【0021】
表示部46は、例えば、LCD(液晶表示ディスプレイ)である。CPU41から送られた制御信号によりドライバ47(液晶ドライバ)が動作し、LCDに現在時刻、設定状態、或いは、各種機能のメニューなどの指定された内容に関する表示を行わせる。この表示部46は、或いは、他の表示手段、例えば、ELD(Electro-Luminescent Display)であっても良い。また、ドライバ47は、表示部46の種類に応じて適切に選択される。
【0022】
Bluetoothモジュール48は、アンテナAN4を介して外部機器との間でブルートゥース通信を行うための制御モジュールである。このBluetoothモジュール48は、規約バージョン4.0の低消費電力モードでの通信に対応しており、Timeプロファイルに従ったデータの送受信が可能となっている。CPU41から出力された送信データは、UART49でシリアル/パラレル変換などの処理が行われて、Bluetoothモジュール48から外部機器に送信される。また、外部機器からBluetoothモジュール48を用いて受信された受信データは、UART49でシリアル/パラレル変換などの処理が行われて、CPU41に入力される。
【0023】
振動モータ50、LED52、及び、ピエゾ素子54は、それぞれ、振動、発光、及び、ブザー音を発することで、ユーザに通知を行うためのものである。CPU41からドライバ51、53、55にそれぞれ制御信号が送られると、各ドライバ51、53、55は、振動モータ50、LED52、ピエゾ素子54を動作させるのに必要な電圧信号に変換して出力する。
例えば、タイムゾーンの変更などにより外部機器から取得された現在時刻が更新された場合に、CPU41からドライバ51、53、又は、55に制御信号が送られ、振動モータ50、LED52、又はピエゾ素子54が報知動作を行う。
【0024】
スマートフォン10は、
図3に示すように、CPU11と、ROM12と、RAM13と、記憶部14と、操作部15と、内蔵時計16と、表示部17及びそのドライバ18と、スピーカ19と、マイク20と、コーデック21と、RF送受信回路22と、RF送受信用のアンテナAN11と、通信回路23と、Bluetoothモジュール24と、UART25と、近距離無線通信の送受信用アンテナAN12と、振動モータ26及びそのドライバ27と、CPU11と他の各部とを接続するバス28などを備えている。
【0025】
CPU11は、スマートフォン10の全体動作の統轄制御及び各種演算処理を行う。ROM12は、CPU11が実行する種々のプログラムや初期設定データを格納する。また、RAM13は、CPU11に作業用のメモリ空間を提供して、一時データを記憶する。記憶部14は、不揮発性の読み書き可能なメモリであり、例えば、(Electrically Erasable and Programmable Read Only Memory)が用いられる。記憶部14には、例えば、スマートフォンで送受信されたメールデータ、種々のアプリケーションプログラムやアプリケーションデータが記憶される。
【0026】
操作部15は、複数の操作キーを備え、ユーザが当該操作キーに対して行った操作に基づいて電気信号に変換し、入力信号としてCPU11に出力する。或いは、この操作部15には、タッチパネル及びタッチパネルの操作入力検出部を含むこととしても良い。
【0027】
内蔵時計16は、現在時刻を計数して保持するカウンタである。スマートフォン10では、この現在時刻が読み出されて、表示部17に表示される。この内蔵時計16の現在時刻データは、RF送受信回路22による携帯基地局との通信時に随時又は所定のタイミングで修正される。
【0028】
表示部17は、例えば、LCD(液晶表示ディスプレイ)である。CPU11から送られた制御信号によりドライバ18(液晶ドライバ)が動作し、LCDにスマートフォン10の各種機能に係る表示を行わせる。この表示部17は、他の表示手段、例えば、有機ELD(Electro-Luminescent Display)であっても良い。また、ドライバ18は、表示部17の種類に応じて適切に選択される。
【0029】
スピーカ19は、コーデック21からの信号に基づいて電気信号を音声信号に変換して音声を出力する。また、マイク20は、音波を検知して電気信号に変換し、コーデック21に出力する。コーデック21は、入力された音声出力用デジタル信号をデコードしてアナログ信号としてスピーカ19へ送るとともに、マイク20から取得された音声信号をエンコードしてCPU11や通信回路23へ出力する。
【0030】
RF送受信回路22は、RF送受信用アンテナAN11を用いて携帯基地局との間で行われる通信の送受信処理を行う。また、通信回路23は、RF送受信回路22により送受信される送受信データの各種処理を行い、CPU11やコーデック21との間でデータの受け渡しを行う。
【0031】
Bluetoothモジュール24は、アンテナAN12を介して電子時計40などの外部機器との間でブルートゥース通信を行うための制御モジュールである。このBluetoothモジュール24は、規約バージョン4.0の低消費電力モードでの通信に対応しており、Timeプロファイルに従ったデータの送受信が可能となっている。CPU11から出力された送信データは、UART25でシリアル/パラレル変換などの処理が行われて、Bluetoothモジュール24から外部機器に送信される。また、外部機器からBluetoothモジュール24を用いて受信された受信データは、UART25でパラレル/シリアル変換などの処理が行われて、CPU11に入力される。
【0032】
振動モータ26は、電話や電子メールの着信時などに、ドライバ27により駆動されたモータの動作により振動を発生させる。
【0033】
次に、電子時計40の時刻情報取得動作について説明する。
【0034】
本実施形態の電子時計40では、スマートフォン10との間でのブルートゥース通信の規約バージョン4.0による低消費電力通信によりスマートフォン10から現在時刻データが取得されて、当該現在時刻データに基づいて修正が行われる。
【0035】
図4は、電子時計40とスマートフォン10との通信動作を表わしたシーケンス図である。
【0036】
本実施形態の電子時計40による時刻情報取得動作の際には、電子時計40とスマートフォン10との間で通常設定されている通信の接続間隔(通信時間間隔)を短縮して短い時間に複数回(例えば、1秒間に10回)のデータ受信を可能とする。先ず、通常の接続間隔(例えば、2000ms)での通信において、電子時計40から通信データとして接続状態更新要求“LL_CONNECTION_UPDATE_REQ”を接続間隔の設定値“connInterval”を含む引数と共にスマートフォン10に送信する。接続間隔は、7.5ms以上4000ms以下の範囲において1.25msステップで変更可能である。スマートフォン10では、受信されたこの接続状態更新要求に基づいて接続間隔の設定が変更されて、当該データの正常受信を示す返答がなされると共に、接続間隔が変更される。
【0037】
接続間隔が変更されると、続いて、電子時計40は、この接続間隔ごとに複数回続けて現在時刻を示す指標(Characteristic)“Current Time”の取得要求をスマートフォン10に送信する。スマートフォン10では、この時刻データの取得要求を受信すると、スマートフォン10の内部処理において、処理(サブプロシージャ)“GATT Read Characteristic Value”が呼び出され、指標“Current Time”の各属性値を取得して設定する。この取得される時刻データの時間分解能(更新間隔)は、スマートフォン10により異なる。
【0038】
指標“Current Time”には、二つの指標“Exact Time 256”及び“Adjust_Reason”が含まれている。また、更に、指標“Exact Time 256”には、2つの指標“Day Date Time”及び“Fraction256”が含まれている。指標“Day Date Time”には、現在時刻の年月日、時分秒、及び、曜日に関する情報が含まれている。また、指標“Fraction256”には、1秒未満の時刻が1/256秒単位の値として8ビットデータ、即ち、十進数で0〜255の値で示されている。なお、スマートフォン10が1/256秒単位の値の設定に対応していない場合には、この指標“Fraction256”には常に値0x00(十進数で0)が設定される。
【0039】
スマートフォン10は、設定された指標“Current Time”の各属性値を通信データとして電子時計40に送信する。
【0040】
電子時計40は、後述する所定の条件が満たされるまで上記設定された接続間隔で指標“Current Time”のデータ要求を繰り返す。所定の条件が満たされた場合には、指標“Current Time”のデータ要求を終了し、接続間隔を元の値(例えば、2秒に一回)に戻す。即ち、電子時計40は、接続状態更新要求“LL_CONNECTION_UPDATE_REQ”を接続間隔の設定値“connInterval”を含む引数と共にスマートフォン10に送信する。
【0041】
スマートフォン10は、接続状態更新要求“LL_CONNECTION_UPDATE_REQ”による接続間隔の変更要求を受信すると、接続間隔の設定更新を行って、正常受信のデータを電子時計40に返信すると共に、以降の接続間隔を変更する。
【0042】
図5は、第1実施形態の電子時計40において実行される時刻データ更新処理のCPU41による制御手順を示すフローチャートである。
【0043】
この時刻データ更新処理は、時刻データ更新プログラム42aが呼び出されて起動されることで行われる。時刻データ更新プログラム42aは、予め定められたタイミング、例えば、1日1回所定の時刻に自動的に起動されたり、ユーザの操作部44への入力操作により起動されたり、スマートフォン10との通信接続が確立された際に初期設定の一環として起動されたり、或いは、スマートフォン10においてタイムゾーンの移動や夏時間の開始、終了といった時刻変更処理が行われた場合にスマートフォン10から受信された時刻変更通知に基づいて起動されたりする。
【0044】
この時刻データ更新処理が起動されると、CPU41は、先ず、スマートフォン10との間で接続されているブルートゥース通信における接続間隔の短縮要求(変更要求)をBluetoothモジュール48に送信させる。即ち、CPU41は、接続状態更新要求“LL_CONNECTION_UPDATE_REQ”及び接続間隔の設定値“connInterval”を含む引数を通信データとしてスマートフォン10へ送信させる(ステップS11)。
【0045】
CPU41は、Bluetoothモジュール48がスマートフォン10からの信号を受信し、接続状態更新要求が正常に受け付けられた旨を示す信号を確認するまで待機する(ステップS12)。
【0046】
接続状態更新要求が正常に受け付けられて、スマートフォン10との通信の接続間隔が短縮されると、次に、CPU41は、Bluetoothモジュール48に指標“Current Time”の属性値を取得する要求をスマートフォン10に対して送信させる(ステップS13)。
【0047】
上記の処理に対して、Bluetoothモジュール48がスマートフォン10から指標“Current Time”の属性値を受信すると、CPU41は、時刻データを取得してRAM43に記憶させる(ステップS14)。
【0048】
続いて、CPU41は、ステップS11の処理で設定変更されたスマートフォン10との接続間隔ごとに、Bluetoothモジュール48に2度目以降の指標“Current Time”の属性値を取得する要求をスマートフォン10に対して送信させる(ステップS15)。そして、CPU41は、Bluetoothモジュール48がスマートフォン10から指標“Current Time”の属性値を受信すると、CPU41は、この受信データの指標“Exact Time 256”に係る属性値から1/256秒単位の時刻データを取得してRAM43に記憶させる(ステップS16)。
【0049】
CPU41は、ステップS16の処理で取得された時刻データの秒以下の値が、RAM43に記憶された1回前に取得された時刻データの秒以下の値から変化がないか否かを判別する(ステップS17)。1回前の時刻データの秒以下の値と、今回の時刻データの秒以下の値との間に変化がないと判別された場合には、CPU41の処理は、ステップS15に戻り、前回の時刻データの取得要求から接続間隔が経過後に、次の処理を行わせる。
なお、本実施形態の時刻データ更新処理では、3回目以降の時刻データが取得されると、その時刻データより2回以上前の時刻データが不要となるので、当該データを消去することとしてよい。
【0050】
ステップS17の判別処理で、直近のステップS16の処理で取得された時刻データの秒以下の値が、1回前に取得された時刻データの秒以下の値から変化があったと判別された場合には、CPU41は、最新の時刻データにより計時回路45の時刻データを更新する(ステップS18)。それから、CPU41は、Bluetoothモジュール48に接続間隔を元の時間に戻す要求をスマートフォン10に対して送信させる(ステップS19)。そして、CPU41は、スマートフォン10から当該要求の正常受信を示す信号が受信されたことを確認して(ステップS20)、時刻データ更新処理を終了する。
ここで、CPU41、ステップS11の処理、及び、ステップS19の処理により間隔調整手段が構成される。また、この第1実施形態の電子時計41では、CPU41とステップS15〜S18の処理により現在時刻取得手段が構成される。
【0051】
このように第1実施形態の電子時計40で実行される時刻データ更新処理では、ブルートゥース通信によるスマートフォン10との接続間隔を短縮して繰り返し時刻データを取得し、秒以下の値が変化するタイミングを検出することで、短縮された接続間隔と同等の精度で時刻データを取得することが出来る。即ち、接続間隔を100msとすることで、スマートフォン10における指標“Current Time”の設定の更新間隔に関わらず、100msの精度で時刻データを取得することが出来る。
【0052】
[第2実施形態]
次に、本発明の第2実施形態の電子時計40bについて説明する。
【0053】
図6は、第2実施形態の電子時計40bの内部構成を示すブロック図である。
この第2実施形態の電子時計40bは、ROM42に格納された時刻データ更新プログラム42bの内容が時刻データ更新プログラム42aの内容と異なる点を除いて第1実施形態の電子時計40と同一の構成であり、同一の符号を付して説明を省略する。
【0054】
次に、第2実施形態の電子時計40bにおいて実行される時刻データ更新処理について説明する。
【0055】
図7は、第2実施形態の電子時計40bが実行する時刻データ更新処理におけるCPU41による制御手順を示すフローチャートである。
【0056】
この第2実施形態の電子時計40bにおける時刻データ更新処理では、第1実施形態の電子時計40における時刻データ更新処理のステップS14の処理がステップS14aの処理に変更され、また、ステップS17の判別処理の代わりにステップS17aの判別処理が実行され、更に、このステップS17aの判別処理の後、且つ、ステップS18の処理の前にステップS21、S22の処理が追加される。これ以外の処理については、第1実施形態の電子時計40における時刻データ更新処理と同様であり、同一の符号を付して説明を省略する。
【0057】
この第2実施形態の電子時計40bにおける時刻データ更新処理では、スマートフォン10との接続間隔が短縮されると、CPU41は、ステップS14aの処理において、初回分の指標“Current Time”の属性値を受信して時刻データを取得した際に、この時刻データを計時回路45の計数するローカルの現在時刻と対応付けてRAM43に記憶させる。なお、記憶させるローカルの現在時刻は、ステップS13でBluetoothモジュール48により指標“Current Time”の取得要求を送信したタイミングでも良いし、ステップS14aで指標“Current Time”の属性値データを取得したタイミングであっても良い。
【0058】
次に、ステップS15、S16の処理で2度目以降の指標“Current Time”の属性値データが取得されると、CPU41は、計時回路45を参照して、ステップS14aでRAM43に記憶させた初回のローカル現在時刻データから現在のローカル現在時刻まで、予め設定された時間、例えば、1秒間が経過したか否かを判別する(ステップS17a)。未だ予め設定された時間が経過していないと判別された場合には、CPU41の処理は、ステップS15に戻り、接続間隔の経過後に、CPU41は次の指標“Current Time”の取得を行う。
【0059】
ステップS17aの処理で、予め設定された時間が経過したと判別された場合には、CPU41の処理は、ステップS21に移行して、CPU41は、後述するように、設定された時間内に取得された時刻データの配列に基づいてスマートフォン10における現在時刻データの更新間隔を同定する。それから、CPU41は、この更新間隔、接続間隔、及び、時刻データの配列に基づいて現在時刻を算出する(ステップS22)。CPU41は、当該算出された現在時刻で計時回路45の現在時刻データを更新する(ステップS18)。
ここで、この第2実施形態の電子時計41bでは、CPU41とステップS21の処理により更新間隔同定手段が構成され、また、CPU41とステップS22の処理により現在時刻取得手段が構成される。
【0060】
ここで、ステップS21、及び、ステップS22の処理の内容について説明する。
【0061】
図8は、第2実施形態の電子時計40bにおいて精度の高い現在時刻を取得する処理の内容を説明する図である。
【0062】
先ず、1秒間に取得された時刻データから指標“Fraction256”に設定された秒未満のデータ(1/256秒値)11個を配列する。これらの1/256秒値は、0〜255の符号なし整数である。そして、本実施形態の電子時計40bでは、各データ間における変化量の配列パターンに基づいてスマートフォン10における時刻データの更新間隔を同定する。
図8(a)では、中央に時系列で前半の0.5秒間に電子時計40bが現在時刻データを取得したタイミングを縦線で示し、また、スマートフォン10で現在時刻データが更新され得るタイミングを記号「×」で示している。また、上段には、電子時計40bで現在時刻データが取得されたタイミングの秒値、1/256秒値、及び、電子時計40bで実際にスマートフォン10から取得された1/256秒値の例を示す。括弧で示された値は、隣接する現在時刻取得タイミング間での1/256秒値の変化量を示す。また、下段には、各記号「×」で示されたタイミングにおいて、スマートフォン10で更新され得る1/256秒値の値を示す。
図8(a)示すように、例えば、100msec間隔で取得された1/256秒値の配列が「0、16、48、64、96、128」である場合には、隣接する1/256秒値の間の変化量は、16、又は、32であり、スマートフォン10における時刻データの更新間隔が、1/256秒値でこれらの値の最大公約数である16の約数のいずれかであることが分かる。また、8/256=1/32秒間隔で更新される時刻データが0.1秒間隔で取得される場合、必ず隣接する1/256秒値の間の変化量が16となる期間が生じるので、スマートフォン10における時刻データの更新間隔は、16/256=1/16秒間隔であることが同定される。
【0063】
なお、スマートフォン10における更新間隔は、基本的に1Hz、或いは、2又は10の整数倍の周波数に設定されているものとして上記の同定を行うことができる。
【0064】
次に、1/16秒のデータ更新間隔と1/10秒のデータ取得間隔とは、500ms周期で一致する。即ち、500msの一周期における1/256秒値データの変化量は、「16、32、16、32、32」で繰り返される。
【0065】
ここで、
図8(b)には、
図8(a)における電子時計40bの時刻取得タイミングとスマートフォン10の時刻更新タイミングとを0.0125秒程度ずらした場合の例を示す。
図8(b)の上段には、ずれの大きさが0.0125秒未満の場合に取得される1/256秒値(b1)と、ずれの大きさが0.0125秒以上の場合に取得される1/256秒値(b2)とが示されている。
【0066】
図8(a)、(b)に示すように、2回連続して取得される間隔「32」のデータ取得タイミング(
図8(a)の0.4秒及び0.5秒のタイミング)のうち、2度目のデータ取得タイミングは、直前の時刻更新タイミングから0.0125秒(3.2/256秒)未満の遅延に限られる。従って、この2度目の間隔「32」のデータ取得タイミングに取得された時刻データに基づいて現在時刻を修正することで、スマートフォン10における指標“Current Time”の更新間隔、及び、電子時計40bとスマートフォン10との間の接続間隔と比較して遥かによい精度で時刻データを取得することが出来る。
時刻更新タイミングと時刻の取得タイミングとの同期が0.0125秒以上ずれると、2回連続して取得される間隔「32」のデータ取得タイミングが移動する(
図8(b)の1/256秒取得値(b2)において、0.2125秒及び0.3125秒のタイミング)が、上記の性質は変わらないので、やはり、取得された現在時刻の遅延を0.0125秒未満に限定することが出来る。ここで、この最大遅延時間の半分の時間(0.00625秒)を取得された現在時刻に加えることで、遅延時間を±0.00625秒の範囲とすることができる。
【0067】
以上のように、第2実施形態の電子時計40bによれば、設定された接続間隔ごとにブルートゥース通信によりスマートフォン10から取得された時刻データの変化量の配列に基づいてスマートフォン10における時刻データの更新間隔を同定し、同定された更新間隔と、接続間隔と、上記時刻データの変化量の配列パターンとに基づいてスマートフォン10における更新タイミング直後に取得された時刻データを取得して計時回路45で計数されている現在時刻の修正を行うので、スマートフォン10の更新間隔やスマートフォン10と電子時計40bとの接続間隔以下の良い時間分解能で時刻データを取得することが出来る。
【0068】
また、上記のように時間変化量の配列パターンに基づいて更新間隔や現在時刻の取得タイミングを同定する処理は、当該配列パターンによっては演算量が大きくなるので、予めテーブルデータを生成してROM42に記憶させておき、このテーブルデータを参照して同定することが出来る。
【0069】
なお、上記実施の形態では、接続間隔よりも更新間隔が広い場合には、最長で接続間隔と同等の時間分解能が得られるが、電子時計40bで必要とする時刻分解能が接続間隔よりも小さい場合であって、更新間隔が接続間隔の倍数である場合など、接続間隔未満の必要な時間分解能に対応する遅延時間以下の現在時刻を取得できるタイミングが存在しない場合には、下記の第3実施形態で示すように、必要な時間分解能が得られる接続間隔に再設定すれば良い。
【0070】
また、一のスマートフォン10に対して一度特定された更新間隔データを当該スマートフォン10の識別情報と関連付けてRAM43に記憶させておくことで、次回以降の時刻情報の取得の際には、当該更新間隔データに基づいて最適な接続間隔を設定したり、直接現在時刻の取得タイミングを決定したりすることができる。
【0071】
[第3実施形態]
次に、第3実施形態の電子時計40cについて説明する。
図9は、第3実施形態の電子時計40cの内部構成を説明するブロック図である。
【0072】
第3実施形態の電子時計40cは、第1実施形態の電子時計40とは時刻データ更新プログラム42cが異なる点を除いて同一であり、同一の符号を付して説明を省略する。
【0073】
次に第3実施形態の電子時計40cによる時刻データ更新処理について説明する。
【0074】
図10は、第3実施形態の電子時計40cによる時刻データ更新処理の内容を説明する図である。時系列で、縦線(g1)〜(g6)により電子時計40cによる時刻データの取得タイミングが示され、記号「×」によりスマートフォン10による時刻データの更新タイミングが2通り示されている。
【0075】
上記した第2実施形態の電子時計40bと同様に、スマートフォン10における指標“Current Time”の更新間隔が同定された場合に、
図10(a)に示すように、電子時計40cにおいてこの更新間隔より僅かに長い接続間隔、又は、
図10(b)に示すように、更新間隔より僅かに短い接続間隔を再設定することで、更新間隔と接続間隔の比によって定まる回数に一回、前回の取得時刻の変化量が他の回の変化量の倍となる回(
図10(a)のタイミング(g5))、又は、取得される時刻が前回の取得時刻と変わらない回(
図10(b)のタイミング(g6))が現れる。そして、これらの何れも場合にも、タイミング(g5)で取得された現在時刻は、スマートフォン10における指標“Current Time”の更新タイミングで更新された時刻からの遅延時間が最小になる。従って、このタイミング(g5)で取得された現在時刻データに基づいて計時回路45の計数する現在時刻を修正することで、設定間隔及び接続間隔より遥かに精度の高い時刻データを取得することが出来る。
【0076】
図11は、第3実施形態の電子時計40cにおける時刻データ更新処理において、CPU41が実行する制御手順を示すフローチャートである。
【0077】
第3実施形態の時刻データ更新処理では、第2実施形態の時刻データ更新処理におけるステップS22の処理に代わってステップS32〜S39の処理が行われる。その他の処理は、第2実施形態の時刻データ更新処理における各処理と同一であり、同一の符号を付して説明を省略する。
【0078】
ステップS21の処理でスマートフォン10における指標“Current Time”の更新間隔が算出されると、続いて、CPU41は、この算出された更新間隔より僅かに長い接続間隔を設定する(ステップS32)。例えば、CPU41は、所望の時刻精度に応じた所定の時間を更新間隔に加算し、接続状態の設定値“connInterval”で設定可能な最も近い値に接続間隔を設定する。
【0079】
それから、CPU41は、スマートフォン10との間で接続されているブルートゥース通信における接続間隔の変更要求をBluetoothモジュール48に送信させる。即ち、CPU41は、接続状態更新要求“LL_CONNECTION_UPDATE_REQ”及び上記設定された接続間隔の設定値“connInterval”を含む引数を通信データとしてスマートフォン10へ送信させる(ステップS33)。
【0080】
CPU41は、Bluetoothモジュール48がスマートフォン10からの信号を受信し、接続状態更新要求が正常に受け付けられた旨を示す信号を確認するまで待機する(ステップS34)。
【0081】
CPU41は、ステップS33の処理で設定変更されたスマートフォン10との接続間隔ごとに、Bluetoothモジュール48に指標“Current Time”の属性値を取得する要求をスマートフォン10に対して送信させる(ステップS35)。そして、CPU41は、Bluetoothモジュール48がスマートフォン10から指標“Current Time”の属性値を受信すると、CPU41は、この受信データの指標“Exact Time 256”に係る属性値から1/256秒単位の時刻データを取得してRAM43に記憶させる(ステップS36)。
【0082】
続いて、CPU41は、接続間隔ごとに、Bluetoothモジュール48に2回目以降の指標“Current Time”の属性値を取得する要求をスマートフォン10に対して送信させる(ステップS37)。そして、CPU41は、Bluetoothモジュール48がスマートフォン10から指標“Current Time”の属性値を受信すると、CPU41は、この受信データの指標“Exact Time 256”に係る属性値から1/256秒単位の時刻データを取得してRAM43に記憶させる(ステップS38)。
【0083】
CPU41は、直近の二回で取得された時刻データの秒以下の値の変化量が、ステップS21で算出された指標“Current Time”の更新間隔に対応する通常変化量と等しいか否かを判別する(ステップS39)。通常変化量と等しいと判別された場合には、CPU41の処理は、ステップS37に戻り、前回の時刻データの取得要求から接続間隔が経過後に、次の処理を行わせる。
【0084】
一方、ステップS39の判別処理で、秒以下の値の変化量が通常変化量と等しくないと判別された場合には、CPU41は、直近のステップS38の処理で取得された時刻データに基づいて計時回路45の現在時刻データを更新する(ステップS18)。
この第3実施形態の電子時計40cでは、CPU41とステップS37〜S39、S18の処理により現在時刻取得手段が構成される。
【0085】
なお、ステップS21の処理で算出された指標“Current Time”の更新間隔が電子時計40cの要求する時間精度を既に満たしている場合には、ステップS32〜S39の処理を省略して、直近のステップS15、S16の処理で取得された現在時刻データに基づいて即座に計時回路45の現在時刻データを更新することとしても良い。
【0086】
また、再設定時の接続間隔を、例えば、上記再設定された際の接続間隔の半分とすると、受信された現在時刻データが1回置きに更新される中で2度続けて時刻データが更新された場合、当該2度目に受信された現在時刻に係る遅延時間が最も小さいものとなる。従って、上記の時刻データ更新処理の半分の所要時間で現在時刻データを取得することが出来る。このように、再設定時の接続間隔を他の適宜な値としても、上記第2実施形態の時刻データ更新処理と同様に受信された現在時刻の配列パターンに基づいて遅延時間の小さい現在時刻を取得することが可能となる。
【0087】
以上のように、本発明の第3実施形態の電子時計40cで実行される時刻データ更新処理では、先ず、スマートフォン10における時刻データの更新間隔を同定し、同定されたこの更新間隔より僅かに短い、又は、長い接続間隔を再設定することで、当該延長、又は、短縮された接続間隔の幅に対応する精度で現在時刻を取得することが出来る。
【0088】
また、接続間隔の再設定後に取得される現在時刻の変化量の配列が簡潔になるので、CPU41の負荷を軽減することが出来る。
【0089】
また、本発明の第1実施形態〜第3実施形態によれば、電子時計(40、40b、40c)による時刻情報取得動作の際には、電子時計(40、40b、40c)とスマートフォン10との間で通常設定されている通信の接続間隔(通信時間間隔)を短縮して短い時間に複数回(例えば、1秒間に10回)のデータ受信を可能としている。しかし、スマートフォン10によっては、電子時計(40、40b、40c)からの接続間隔の短縮要求(変更要求)に対応していない場合も考えられる。つまり通常設定されている通信の接続間隔から短くなるように接続間隔を変更できないスマートフォン10も考えられる。この場合、通常の接続間隔が例えば2000msだったとすると、スマートフォン10から時刻データを取得したときに最大2000msの誤差が発生する可能性がある。
【0090】
その他の実施形態として電子時計(40、40b、40c)とスマートフォン10との接続間隔が変更できない場合について説明する。
図12は電子時計(40、40b、40c)において実行される時刻データ更新処理のCPU41による制御手順を示すフローチャートである。この時刻データ更新処理は、上記の第1実施形態〜第3実施形態とROM42に格納された時刻データ更新プログラムの内容が異なるだけである。時刻データ更新プログラムは、予め定められたタイミング、例えば、1日1回所定の時刻に自動的に起動されたり、ユーザの操作部44への入力操作により起動されたり、スマートフォン10との通信接続が確立された際に初期設定の一環として起動されたり、或いは、スマートフォン10においてタイムゾーンの移動や夏時間の開始、終了といった時刻変更処理が行われた場合にスマートフォン10から受信された時刻変更通知に基づいて起動されたりする。
【0091】
この時刻データ更新処理が起動されると、CPU41は、先ず、スマートフォン10との間で接続されているブルートゥース通信における接続間隔の短縮要求(変更要求)をスマートフォン10へ送信する(ステップS41)。CPU41は、スマートフォン10からの信号を受信し、接続間隔の変更が可能か否かを判断する(ステップS42、接続間隔判断手段)。ステップS42で接続間隔の変更が可能であると判断された場合は(ステップS42でYES)、上記の第1実施形態〜第3実施形態のステップS12へ進みステップS13以降の処理を行う。ステップS42で接続間隔の変更ができないと判断された場合は(ステップS42でNO)、ステップS43へ進む。そして、CPU41は、スマートフォン10から接続間隔の変更ができないことを示す信号を受信したことを確認する(ステップS43)。次に、CPU41は、指標“Current Time”を取得する要求をスマートフォン10に対して送信する(ステップS44)。そして、指標“Current Time”を受信すると、CPU41は、時刻データを取得してRAM43に記憶する(ステップS45)。そして、CPU41は、接続間隔が所定間隔以上(例えば1000ms以上)か否かを判断する(ステップS46、判断手段)。そして、接続間隔が所定間隔以上であれば(ステップS46でYES)、CPU41は、最新の時刻データにより計時回路45の時刻データを更新し(ステップS47)、表示部46に時刻を表示させると共に、スマートフォン10から取得した時刻データに誤差があることを示すため、「時刻データに誤差あり」の意味を示す内容(マークなど)を表示させる(ステップS48)。接続間隔が所定間隔未満であれば(ステップS46でNO)、CPU41は、最新の時刻データにより計時回路45の時刻データを更新し(ステップS49)、表示部46に時刻を表示させる(ステップS50)。ここで、CPU41とステップS47の処理とステップS49の処理により時刻取得手段が構成される。
【0092】
以上のように、本発明のその他の実施形態の電子時計(40、40b、40c)で実行される時刻データ更新処理では、接続間隔が所定間隔以上(例えば1000ms以上)だった場合には、スマートフォン10から取得した時刻データに誤差があることを示すため、電子時計(40、40b、40c)の表示部46に時刻を表示すると共に、「時刻データに誤差あり」の意味を示す内容(マークなど)を表示する。よって、ユーザに対して電子時計(40、40b、40c)に表示されている時刻、つまりスマートフォン10から取得した時刻データにより更新された計時回路45の時刻データには誤差があることを認識させることができる。
さらに、ステップS45の処理で、接続間隔が所定間隔以上であれば(ステップS46でYES)、ステップS47の処理で、誤差を低減させるためにスマートフォン10から取得した時刻データに強制的に接続間隔の半分の値を加算して、計時回路45の時刻データを更新するようにしてもよい。例えば、接続間隔が2000msだった場合は1000msを、接続間隔が1000msだった場合は500msを加算することで、誤差を低減させることができる。
【0093】
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
例えば、上記実施の形態では、電子腕時計を例に挙げて説明したが、これに限られない。例えば、懐中時計であっても良いし、壁掛け時計や置時計であっても良い。また、時計としての機能を主目的とした電子時計に限られず、電子歩数計や血圧計などの電子時計機能に対して適用することも可能である。また、外部機器としてスマートフォンを例に挙げて説明したが、ノートPCやPDA(Portable Digital Assistant)など、他の携帯型電子機器であっても良い。或いは、壁掛け時計や置時計と、デスクトップ型PCとの間でブルートゥース通信を行わせて時刻の修正を行う際に利用することとしても良い。
【0094】
また、上記実施の形態では、ブルートゥース通信の規約バージョン4.0を例に挙げて説明したが、所定の時間間隔でデータ通信が行われる他の近距離無線通信を用いることとしても良い。
【0095】
また、上記実施の形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてROM42を使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ、EEPROM等の不揮発性メモリ、CD−ROM等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ(搬送波)も本発明に適用される。
その他、上記実施の形態で示した具体的な構成の細部や数値、制御手順などは、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【0096】
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
【0097】
[付記]
<請求項1>
現在時刻を計数する計時手段と、
設定された通信時間間隔で無線通信により外部機器との間でデータの送受信を行う通信手段と、
当該通信手段により前記外部機器から取得された現在時刻データに基づいて前記計時手段の現在時刻を修正する時刻修正手段と、
を備え、
前記時刻修正手段は、
前記計時手段の現在時刻の修正処理を行う間、前記通信時間間隔を当該計時手段の現在時刻の精度に応じた値に変更する間隔調整手段と、
前記間隔調整手段により変更された前記通信時間間隔ごとに前記通信手段に現在時刻データを受信させて、受信された当該現在時刻の配列パターンと前記通信時間間隔とに基づいて前記外部機器における現在時刻データの更新間隔を同定する更新間隔同定手段と、
前記更新間隔同定手段により同定された前記更新間隔と、前記現在時刻の配列パターンと、前記通信時間間隔とに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が前記計時手段の現在時刻の精度に基づいて設定される所定の基準値よりも小さい前記現在時刻データの受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する現在時刻取得手段と、
を備えることを特徴とする電子時計。
<請求項2>
前記間隔調整手段は、前記更新間隔同定手段により前記外部機器における現在時刻データの前記更新間隔が同定されると、当該更新間隔を前記計時手段の時刻精度に応じた長さ分短縮又は延長した通信時間間隔を再設定し、
前記現在時刻取得手段は、前記更新間隔と、前記再設定された通信時間間隔と、当該通信時間間隔ごとに取得された前記現在時刻の配列パターンとに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が最も小さい受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する
ことを特徴とする請求項1記載の電子時計。
<請求項3>
前記時刻修正手段は、前記現在時刻取得手段が取得した現在時刻に当該現在時刻の取り得る最大遅延時間の半分の値を加算した時刻により、前記計時手段の現在時刻データを修正する
ことを特徴とする請求項1又は2に記載の電子時計。
<請求項4>
前記更新間隔同定手段により変更される前記通信時間間隔ごとに受信される現在時刻間での当該現在時刻の変化量の配列と、当該変化量の配列に対応する前記更新間隔とを関連付けてテーブルデータとして記憶する記憶手段を備え、
前記時刻修正手段は、当該記憶手段に記憶された前記テーブルデータと前記通信時間間隔ごとに受信された現在時刻の配列パターンとを比較することで前記更新間隔を同定する
ことを特徴とする請求項1記載の電子時計。
<請求項5>
時刻の表示をする表示手段と、
前記外部機器との前記通信時間間隔の変更が可能か否かを判断する接続間隔判断手段と、
前記接続間隔判断手段が前記外部機器との前記通信時間間隔の変更ができないと判断した場合に、前記通信時間間隔が所定間隔以上か否かを判断する判断手段と、
前記時刻修正手段は、前記外部機器から変更されない前記通信時間間隔で現在時刻データを取得する時刻取得手段を有し、
前記判断手段が前記所定間隔以上と判断した場合に、前記表示手段に表示時刻には誤差があることを示す内容を表示させる制御手段と、を備える
ことを特徴とする請求項1記載の電子時計。
<請求項6>
前記時刻取得手段は、
前記判断手段が前記所定間隔以上と判断した場合に、現在時刻に前記通信時間間隔の半分の値を加算した時刻により、前記計時手段の現在時刻を修正する
ことを特徴とする請求項5記載の電子時計。
<請求項7>
現在時刻を計数する計時手段と、設定された通信時間間隔で無線通信により外部機器との間でデータの送受信を行う通信手段と、を備える電子時計において、当該通信手段により前記外部機器から取得された現在時刻データに基づいて前記計時手段の現在時刻を修正する時刻修正方法であって、
前記時刻修正方法は、
前記計時手段の現在時刻の修正処理を行う間、前記通信時間間隔を当該計時手段の現在時刻の精度に応じた値に変更する間隔調整ステップ、
前記間隔調整ステップで変更された前記通信時間間隔ごとに前記通信手段に現在時刻データを受信させて、受信された当該現在時刻の配列パターンと前記通信時間間隔とに基づいて前記外部機器における現在時刻データの更新間隔を同定する更新間隔同定ステップ、
前記更新間隔同定ステップで同定された前記更新間隔と、前記現在時刻の配列パターンと、前記通信時間間隔とに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が前記計時手段の現在時刻の精度に基づいて設定される所定の基準値よりも小さい前記現在時刻データの受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する現在時刻取得ステップ、
を含むことを特徴とする時刻修正方法。
<請求項8>
現在時刻を計数する計時手段と、設定された通信時間間隔で無線通信により外部機器との間でデータの送受信を行う通信手段と、を備えるコンピュータに、当該通信手段により前記外部機器から取得された現在時刻データに基づいて前記計時手段の現在時刻を修正する時刻修正機能を実現させるためのプログラムであって、
前記時刻修正機能は、
前記計時手段の現在時刻の修正処理を行う間、前記通信時間間隔を当該計時手段の現在時刻の精度に応じた値に変更する間隔調整ステップ、
前記間隔調整ステップで変更された前記通信時間間隔ごとに前記通信手段に現在時刻データを受信させて、受信された当該現在時刻の配列パターンと前記通信時間間隔とに基づいて前記外部機器における現在時刻データの更新間隔を同定する更新間隔同定ステップ、
前記更新間隔同定ステップで同定された前記更新間隔と、前記現在時刻の配列パターンと、前記通信時間間隔とに基づいて、前記外部機器における現在時刻データの更新タイミングから当該現在時刻データの受信タイミングまでの遅延時間が前記計時手段の現在時刻の精度に基づいて設定される所定の基準値よりも小さい前記現在時刻データの受信タイミングを同定し、当該受信タイミングで現在時刻データを取得する現在時刻取得ステップ、
を含むことを特徴とするプログラム。