以下に、本発明にかかる通信装置、通信システムおよび時刻同期方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明にかかる通信システムの構成例を示す図である。通信装置(マスタ)100と通信装置(スレーブ)107、109は、それぞれ有線回線170、190にて接続されている。又、端末108は、有線回線180を介して通信装置(スレーブ)107と接続されている。通信装置(マスタ(マスタ装置))100は、通信装置(スレーブ(スレーブ装置))107、109へ、それぞれ有線回線170、190を介して、時刻情報およびクロック信号を供給している。また通信装置(マスタ)100は、クロック源(基準クロック源)101と、同軸ケーブル112を介して接続される。また通信装置(マスタ)100は、時刻源(基準時刻源)102と、同軸ケーブル120を介して接続されるとともにシリアルケーブル121を介して接続される。また通信装置(マスタ)100は、クロック・時刻源(基準クロック源および基準時刻源)103と、同軸ケーブル130および132を介して接続されるとともにシリアルケーブル131を介して接続される。また通信装置(マスタ)100は、クロック・時刻源105と、有線回線150およびネットワーク網151を介して接続される。この接続を介して、クロック源101、時刻源102、クロック・時刻源103、105は、通信装置(マスタ)100にクロック信号、時刻情報を供給する。またクロック源101と時刻源102は、GPS受信機104とそれぞれ同軸ケーブル140、141を介して接続されており、GPS衛星106から供給される高精度時刻情報を元に、それぞれクロック、時刻情報を生成する。
以下、本実施の形態では、時刻情報伝達プロトコルとしてIEEE1588−2008を、送信レート要求変更プロトコルとしてITU−T G.8265.1を、それぞれ用い、マスタ―スレーブ装置間を有線回線で接続された例を基に述べるが、用いるプロトコルや構成はこれらに限定されない。また、NTP・SNTP(Simple Network Time Protocol)といった従来のネットワーク網を介するプロトコルだけでなく、EtherCAT(登録商標)等といった産業用途に特化したプロトコルに適用してもよく、本発明が前述した各プロトコルに限定されるものではない。
また、図1の構成例は一例であり、通信装置(マスタ)100に接続するクロック源、時刻源、クロック・時刻源の数は、それぞれ図1の例に限定されない。また、通信装置(マスタ)100に接続する通信装置(スレーブ)の数も図1の例に限定されない。また、図1では、通信装置(マスタ)100と通信装置(スレーブ)107、109が有線回線により接続される例を示しているが無線回線により接続されていてもよい。
本実施の形態に係るクロック同期制御と連携した時刻同期制御方法の概念について説明する。なお、本実施の形態では有線回線で接続されたツリー構成の同期システムを例として以下に説明するが、本発明の実施の形態が、ツリー構成の同期システムだけに限定するものではない(例えばフルメッシュ構成でもよい。)。また無線等を利用した他の同期技術と併用してもよく、回線媒体・伝送速度に限定される訳ではない。さらに時刻同期インターフェイスについては、以下に述べるPPS(Pulse Per Second)信号+TOD(Time Of Day)シリアル信号形式だけではなく、例えばIRIG信号等でもよく、時刻同期インターフェイスに限定はない。
図2は、本実施の形態の通信装置(マスタ)100の構成例を示す図である。通信装置(マスタ)100は、PHY(物理層処理部)203,250,207、MUX(Multiplexer)回路201,202,251、レベル変換部211,212、クロック(自クロック生成部)210、PLL(Phase Locked Loop)回路200、CPU(Central Processing Unit)204、キュー206,253、ブリッジ205,252、カウンタ220,221,222、PPS信号受信部231,232、シリアル信号受信部241,242を備える。領域160は、PLL200より供給されるPLL CLK同期領域を示す。
PHY250、207は、通信装置(スレーブ)107、109とそれぞれ有線回線170、190を介して接続されている。レベル変換部211、212は、それぞれ同軸ケーブル112、132を介しクロック源101、クロック・時刻源103に接続されている。レベル変換部211は、クロック源101からのクロックを抽出し、抽出したクロック(第1のクロック信号)をMUX回路201へ入力する。レベル変換部212は、クロック・時刻源103からのクロックを抽出し、抽出したクロック(第2のクロック信号)をMUX回路201へ入力する。PHY203は、クロック・時刻源105と有線回線150を介して接続される。PHY203は、クロック・時刻源105からのクロックを抽出し、抽出したクロック(第3のクロック信号)をMUX回路201へ入力する。なお、PHY203がクロックを抽出する機能を有することとしたが、別に備えていてもよい。クロック210は、自装置内でクロック(自クロック)を生成し、生成したクロック(第4のクロック信号)をMUX回路201へ入力する。
MUX回路201は、複数のクロック源(クロック源101、クロック・時刻源103,105、クロック210)からのクロックのうちの1つを選択し、選択したクロックをPLL回路200へ供給する。PLL回路200は、供給されたクロックを各回路に適した周波数に逓倍し、通信装置(マスタ)100を動作させる。
また、PPS信号受信部231,232は、それぞれ同軸ケーブル120,130を介して時刻源102,クロック・時刻源103と接続する。PPS信号受信部231、232は、それぞれ時刻源102,クロック・時刻源103からのPPS信号を受信し、カウンタ221,222にそれぞれ入力する。シリアル信号受信部241,242は、それぞれシリアルケーブル121,131を介して時刻源102,クロック・時刻源103から受信したシリアル信号からアスキー文字列を抽出し、フォーマット解析を行うことで、UTC(Coordinated Universal Time)(協定世界時間)や、GMT(Greenwich Mean Time)(世界標準時間)等の情報を抽出してカウンタ221、222に出力する。カウンタ221,222は、それぞれPPS信号受信部231,232から出力されるPPS信号をトリガーとして、シリアル信号受信部241,242から出力される時刻情報を取り込み、次の時刻情報を取り込むまでPLL200から供給されるクロックで時間を刻み続ける。このようにして時刻源102からの時刻(第一の時刻信号)、クロック・時刻源103からの時刻(第二の時刻信号)を受信する。
また、PHY203は、有線回線150を介して接続されるクロック・時刻源105から送信される時刻情報を乗せたフレーム受信し、受信したフレームをブリッジ205へ入力する。ブリッジ205は、入力されたフレームの宛先を解析し、CPU204宛、または通信装置(スレーブ)107,109宛であるか、もしくは廃棄処理とするかを判定する。判定後のフレームは、宛先ごとにキュー206にキューイングされる。キュー206は、宛先ごとの個別キュー(CPU204宛,PHY207宛、PHY250宛)を備える。CPU204は、キュー206から自身に対応する個別キュー内に格納された時刻情報を乗せたフレームを取りだし、フレームを精査するとともに、PHY203から当該フレームの受信時刻を取得し、それら受信時刻と時刻情報を基に、所定の計算をほどこした結果を、カウンタ220に設定する。カウンタ220は、CPU204からの設定に基づいて時刻情報(所定の計算を施した結果)を保持するとともにPPS信号を生成する。又、CPU204からの次の設定が反映されるまでの間、PLL200からのクロックで時刻を刻み続ける。このようにしてクロック・時刻源105(第三の時刻信号)を受信する。
カウンタ220、221、222は、自身に入力された各時刻源からのPPS信号をMUX回路202へ入力する。MUX回路202は、入力された複数のPPS信号から1つを選択し、選択したPPS信号をPHY250、207へ供給する。さらにCPU204は、MUX回路202でPPS信号を選択したカウンタと同一のカウンタ(カウンタ220、221、222のいずれか1つ)から時刻情報を収集し、PHY250、207へセットする。
またPHY250,207は、通信装置(スレーブ)107,109から送信されたフレームをそれぞれ有線回線170,190を介して受信し、受信したフレームをMUX回路251に入力する。MUX回路251は、通信装置(スレーブ)107,109からのフレームを多重化しブリッジ252へ転送する。ブリッジ252は、多重化されたフレームが、当該多重フレームがCPU204宛、クロック・時刻源105宛、またネットワーク網151上の他の装置宛のいずれであるかを判定する。宛先判定後の多重フレームは、キュー253に宛先ごとにキューイングされる。キュー253は、宛先ごとの個別キューを備える。CPU204は、キュー253から自身に対応する個別キュー内に格納された時刻情報を乗せたフレームを取りだし、フレームを精査する。またCPU204は、精査の結果、当該フレームを受信したPHY(PHY250またはPHY207)を特定し、特定したPHYから該当するフレームの受信時刻を取得し、受信時刻と時刻情報を基に、所定の計算をほどこした結果をフレームにセットし、このフレームを送信元(通信装置(スレーブ)107、または通信装置(スレーブ)109)へ送信する。なお通信装置(マスタ)100と、通信装置(スレーブ)107、109との間を接続するPHY250、207の伝送規格は実装に依存するものであり、本発明は伝送規格による制約はない。
図3は、本実施の形態の通信装置(スレーブ)107の構成例を示す図である。通信装置(スレーブ)107は、PHY303,350、MUX回路(MUX)301、クロック(自クロック生成部)310、PLL回路(PLL)300、CPU(制御部)304、キュー306,353、ブリッジ305,352、カウンタ320を備える。
PHY303は、有線回線170を介して通信装置(マスタ)100と接続されている。PHY303は、通信装置(マスタ)100からのクロックを抽出し、抽出したクロックをMUX回路301へ入力する。なお、ここでは、PHY303がクロックを抽出するクロック抽出部としての機能を有することとしたが、クロック抽出部をPHY303と別に備えてもよい。クロック310は、自装置内でクロック(自クロック)を生成し、生成したクロックをMUX回路301へ入力する。
MUX回路301は、複数のクロック源(通信装置(マスタ)100、クロック210)からのクロックのうちの1つを選択し、選択したクロックをPLL回路300へ供給する。PLL回路300は、供給されたクロックを各回路に適した周波数に逓倍し、通信装置(通信装置(スレーブ)107を動作させる。
PHY303は、有線回線170を介して通信装置(マスタ)100と接続される。PHY303は、通信装置(マスタ)100から送信される時刻情報を乗せたフレームを受信し、ブリッジ305へ入力する。ブリッジ305は、入力されたフレームの宛先を解析し、CPU304宛、または端末108宛であるか、もしくは廃棄処理とするかを判定する。判定後のフレームは、宛先ごとにキュー306にキューイングされる。キュー306は、宛先ごとの個別キュー(CPU304宛、PHY350宛)を備える。CPU304は、キュー306から自身に対応する個別キュー内に格納された時刻情報を乗せたフレームを取りだし、フレームを精査するとともに、PHY303から当該フレームの受信時刻を取得し、それら受信時刻と時刻情報を基に、所定の計算をほどこした結果を、カウンタ320に設定する。カウンタ320は、CPU304からの設定に基づいて時刻情報(所定の計算を施した結果)を保持するとともにPPS信号を生成する。又、CPU304からの次の設定が反映されるまでの間、PLL300からのクロックで時刻を刻み続ける。
カウンタ320は、生成したPPS信号をPHY350へ供給する。さらにCPU304は、カウンタ320から時刻情報を収集し、PHY350へセットする。またPHY350は、端末108から送信されたフレームを、有線回線180を介して受信し、受信したフレームをブリッジ352へ転送する。ブリッジ352は、入力されたフレームの宛先を解析し、CPU304宛、または通信装置(マスタ)100宛であるか、もしくは廃棄処理とするかを判定する。判定後のフレームは、宛先ごとにキュー353にキューイングされる。キュー353は、宛先ごとの個別キュー(CPU304宛、PHY303宛)を備える。CPU304は、キュー353から自身に対応する個別キュー内に格納された時刻情報を乗せたフレームを取りだし、フレームを精査するとともに、PHY350から当該フレームの受信時刻を取得し、それら受信時刻と時刻情報を基に、所定の計算をほどこした結果を、フレームにセットし、送信元である端末108へ送信する。なお通信装置(スレーブ)107、端末108間を接続するPHY350の伝送規格は実装に依存するものであり、本発明は伝送規格による制約はない。
図4は、通信装置(マスタ)100と通信装置(スレーブ)107と間におけるIEEE1588−2008に従ったクロック・時刻同期の手順の一例を示すチャート図である。マスタである通信装置(マスタ)100は、自身が有する時刻の属性情報(うるう秒有無、時刻源精度等)を通知するAnnounce messageと、CPUから送信する時の送信時刻を格納したSync messageと、をそれぞれ定周期で送信する(ステップS1、S2)。また、PHYからSync messageが送信される直前の送信時刻をSync message内の送信時刻格納領域に上書きできないことを補助する目的で使用される2STEPモードでは、直前にPHYから送信したSync messageの送信時刻(PHYから送信する時の時間)を格納したFollow_Up messageを送信する(ステップS3)。スレーブである通信装置(スレーブ)107は、Delay_Req messageを通信装置(マスタ)100へ送信する(ステップS4)とともにDelay_Req messageの送信時刻を記録する。通信装置(マスタ)100は、通信装置(スレーブ)107からDelay_Req messageを受信したことをトリガーとして、Delay_Req messageを受信した時刻を格納したDelay_Resp messageを通信装置(スレーブ)107へ送信する(ステップS5)。通信装置(スレーブ)107は、Sync message(1STEPモード時)、又はFollow_Up message(2STEPモード時)に格納された送信時刻と当該Sync messageの受信時刻とDelay_Req messageの送信時刻とDelay_Resp messageに格納された通信装置(マスタ)100におけるDelay_Req messageの受信時刻とに基づいて通信装置(マスタ)100の時間と自身の時間との差を求め、求めた差を補正することにより、通信装置(マスタ)100との時刻同期を実現する。
図5は、IEEE1588−2008で規定されたSignaling messageを用い、ITU−T G.8265.1に基づいてSync message、Pdelay_Resp message、Delay_Resp message、Announce messageのユニキャスト送信要求を行う手順の一例を示すチャート図である。IEEE1588−2008では、クロック・時刻同期に用いる各メッセージをユニキャスト送信とすることができる。また、IEEE1588−2008では、図4に示したメッセージの他にPdelay_Req message、Pdelay_Resp message等も定義されている。スレーブである通信装置(スレーブ)107は、Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのユニキャスト送信を要求する場合、図5のように、ユニキャスト送信を要求するSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を通信装置(マスタ)100へ送信する(ステップS11)。ユニキャスト送信を要求するSignaling messageのフォーマット定義については、図8以降に後述する。そして、通信装置(マスタ)100は、このSignaling messageを受信すると、通信装置(スレーブ)107からの要求(ユニキャスト送信要求)を実現可能か判定し、その結果を反映したSignaling message(GRANT_UNICAST_TRANSMISSION TLV)を通信装置(スレーブ)107宛に送信する(ステップS12)。この手順により、通信装置(スレーブ)107からの要求を満足可能な場合、Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのうち、通信装置(スレーブ)107から要求されたメッセージがユニキャストにより通信装置(マスタ)100から通信装置(スレーブ)107へ返送される。
図6は、IEEE1588−2008で規定されたSignaling messageを用い、ITU−T G.8265.1に基づいてSync message、Pdelay_Resp message、Delay_Resp message、Announce messageのユニキャスト送信キャンセル要求を行う手順の一例を示すチャート図である。スレーブである通信装置(スレーブ)107は、通信装置(マスタ)100からのSync message、Pdelay_Resp message、Delay_Resp message、Announce messageの送信を停止させる際に、ユニキャスト送信のキャンセルを要求するSignaling message(CANCEL_UNICAST_TRANSMISSION TLV)を通信装置(マスタ)100へ送信する(ステップS21)。通信装置(マスタ)100は、ユニキャスト送信のキャンセルを要求するSignaling message(ACKKNOWLEDGE_CANCEL_UNICAST_TRANSMISSION TLV)を受信すると、通信装置(スレーブ)107からのキャンセル要求に伴う処理をおこない、キャンセルを認識した旨を通知するSignaling message通信装置(スレーブ)107宛に返送する(ステップS22)。
図7は、IEEE1588−2008で規定されたPTP(Precision Time Protocol) messageをカプセル化したフレーム構成の一例を示す図である。PTP messageには、Announce/Sync/Delay_Req/Follow_Up/Delay_Resp/Pdelay_Req/Pdelay_Resp/Pdelay_Resp_Follow_Up/Signaling/Managementの各messageが含まれる。図7(a)にはPTP over IPv4/v6/UDPにより通信が行われる場合のカプセル化されたフレームの構成例を示し、図7(b)にはPTP over IEEE802.3/Ethernet(登録商標)により通信が行われる場合のカプセル化されたフレームの構成例を示している。
図8は、PTP messageのフォーマット例を示す図である。図8に示すように、PTP messageは、Common message headerと各message fieldsで構成され、Common message header内には各messageの種別(Announce/Sync/Delay_Req/Follow_Up/Delay_Resp/Pdelay_Req/Pdelay_Resp/Pdelay_Resp_Follow_Up/Signaling/Management)を識別するための識別子が格納される。その中でも、Signaling messageの場合は、各message fieldsは、Signaling message filedと複数のTLV(Type,Length,Value)により構成される。
図9は、Signaling messageのうちスレーブから送信するユニキャスト送信(Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのユニキャスト送信)を要求するメッセージ(REQUEST_UNICAST_TRANSMISSION TLV)のフォーマット例を示す図である。このメッセージは、tlvType、lengthField、messageType、logInterMessagePeriode、durationFieldの各領域を備える。tlvTypeには、メッセージ種別REQUEST_UNICAST_TRANSMISSION)が格納され、lengthFieldには、以降のデータ長が格納される。messageTypeには、Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのうちユニキャスト送信要求対象のmessageを特定する情報が格納される。logInterMessagePeriodeには、マスタから送信されるmessageTypeで指定されたmessageの送信レートを示す情報が格納される。durationFieldには、messageTypeで指定されたmessageのユニキャスト送信要求の有効期間(継続時間)を示す情報が格納される。
図10は、Signaling messageのうちマスタから送信するユニキャスト送信要求の応答メッセージ(GRANT_UNICAST_TRANSMISSION TLV)のフォーマット例を示す図である。このメッセージは、tlvType、lengthField、messageType、logInterMessagePeriode、durationField、Renewal Invitedの各領域を備える。tlvTypeには、メッセージ種別(GRANT_UNICAST_TRANSMISSION)を示す情報が格納され、lengthFieldには、以降のデータ長が格納される。messageTypeには、Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのうちユニキャスト送信要求応答対象のmessageを識別するための情報が格納される。logInterMessagePeriodeには、messageTypeで指定されたmessageの送信レートを示す情報が格納され、durationFieldには、messageTypeで指定されたmessageのユニキャスト送信要求に対応する有効期間(継続時間)を示す情報が格納される。Renewal Invitedには、スレーブからのユニキャスト送信要求に対して、マスタが要求を認めたか否かを示す情報が格納される。図10の例では、Renewal Invitedには、マスタが要求を認れば”b1b”を、認めなければ”b0b”を格納する例を示している(“bx”、x=0 or 1はビット値を示す。)。
図11は、Signaling messageのうちスレーブから送信するユニキャスト送信キャンセル(Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのユニキャスト送信のキャンセル)を要求するメッセージ(CANCEL_UNICAST_TRANSMISSION TLV)のフォーマット例を示す図である。このメッセージは、tlvType、lengthField、messageTypeの各領域を備える。tlvTypeには、メッセージ種別(CANCEL_UNICAST_TRANSMISSION)を示す情報が格納され、lengthFieldには、以降のデータ長が格納される。messageTypeには、Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのうちユニキャスト送信キャンセル要求対象のmessageを識別するための情報が格納される。
図12は、Signaling messageのうちマスタから送信するユニキャスト送信キャンセル応答メッセージ(ACKKNOWLEDGE_CANCEL_UNICAST_TRANSMISSION TLV)のフォーマット例を示す図である。このメッセージは、tlvType、lengthField、messageTypeの各領域を備える。tlvTypeには、メッセージ種別(ACKKNOWLEDGE_CANCEL_UNICAST_TRANSMISSION)を示す情報が格納され、lengthFieldには、以降のデータ長が格納される。messageTypeには、Sync message、Pdelay_Resp message、Delay_Resp message、Announce messageのうちユニキャスト送信キャンセル応答対象のmessageを識別するための情報が格納される。
図13は、通信装置(マスタ)100から通信装置(スレーブ)107との間で行われるIEEE1588−2008におけるクロック・時刻同期をITU−T G.8265.1で規定された手順に従って実施する場合のメッセージの送信手順の一例を示すチャート図である。図13では、Announce messageの送信を例として示している。Sync message、Pdelay_Resp message、Delay_Resp messageの送信についても、Announce messageと同様である。
図13に示すように、通信装置(スレーブ)107は、Announce messageのユニキャスト送信を要求するSignaling messageを通信装置(マスタ)100へ送信し(ステップS31)、通信装置(マスタ)100は、ユニキャスト送信要求を認めるSignaling messageを通信装置(スレーブ)107へ送信する(ステップS32)。その後、ユニキャスト送信を要求するSignaling messageのdurationFieldにより指定された有効期間の間、通信装置(マスタ)100は、定周期でAnnounce messageを通信装置(スレーブ)107へ送信する(ステップS33、S34)。
ユニキャスト送信要求を認めるSignaling messageの送信からdurationFieldにより指定された有効期間が経過する前に、再び、通信装置(スレーブ)107が、Announce messageのユニキャスト送信を要求するSignaling messageを送信し(ステップS35)、通信装置(マスタ)100は、ユニキャスト送信要求を認めるSignaling messageを通信装置(スレーブ)107へ送信する(ステップS36)。これにより、前回のdurationFieldにより指定された有効期間が経過した後も、通信装置(マスタ)100は通信装置(スレーブ)107へAnnounce messageが送信する(ステップS37)。
図14は、ITU−T G.8264で規定されているESMC(Ethernet(登録商標) Synchronization Messaging Channel) PDU(Protocol Data Unit)のフォーマット例を示す図である。ESMC PDUは、マスタからスレーブへの回線を介してのクロック供給状態を示す際に用いられる。スレーブ側はESMC PDUの受信状態と、受信したESMC PDUのSSM(Synchronization Status Message) code(基準クロック源の同期情報)の値と、またスレーブがマスタと接続している回線からのクロック抽出状態とに基づいて、マスタからのクロック供給状態を判定する。
図15は、ESMC PDUの送信手順例を示すチャート図である。通信装置(マスタ)100は、SSM codeの値が直前に通信装置(スレーブ)107へ送信した値と同じであれば、Information PDUとしてEvent flagを”b0”としたESMC PDUを1秒毎に送信する(ステップS41,S42,S44)。一方、通信装置(マスタ)100は、SSM codeの値が直前に通信装置(スレーブ)107へ送信した値と異なる場合(クロック供給状態が変化した場合)、Event PDUとして、Event flag1を”b1”としたESMC PDUをSSM codeの値の変化を検出し次第通信装置(スレーブ)107へ送信する(ステップS43)。
図16は、通信装置(スレーブ)107から送信するユニキャスト送信要求のSignaling messageのlogInterMessagePeriodeに格納される有効期間を決定するための処理手順を示すフローチャートである。図17は、EMSC PDUを受信した通信装置(スレーブ)107が、メッセージ通知によりクロック品質を判定するフローチャートの一例を示す図である。図18は、通信装置(スレーブ)107が、回線を介して通信装置(マスタ)100から受信したクロックのクロック抽出した状況からクロック品質を判定するフローチャートの一例を示す図である。
次に、図16、17、18を用いて、本実施の形態のクロック同期と連携した時刻同期制御方法について説明する。クロック同期・時刻同期を制御するプロトコルについてはITU−T,IEEE,RFC,産業・工業団体等による規定の標準があるが、各々の標準への準拠は実装に依存するものであり、どの標準に準拠するかによって実施の形態が制限されることはない。また以下、クロック同期と連携した時刻同期フレームを制御するプロトコルについてIEEE1588−2008、ITU−T G.8264、G.8265.1規定の用語を用いて説明するが、クロック同期を制御するプロトコル、また時刻同期を制御するプロトコルはこれらに限定されない。
以降、メッセージ通知機構と、装置内部の同期伝達動作とを通信装置(マスタ)100とスレーブ装置107とに分割して説明する。
通信装置(マスタ)100からのクロック同期のフレーム送信処理では、まず、通信装置(マスタ)100は、通信装置(スレーブ)107へ供給するクロックのクロック情報(クロック源に対するロック状態とクロック源(クロック源101、クロック・時刻源103,105)の特定)の通知をおこなう。通信装置(マスタ)100のPHY250が、有線回線170を介して通信装置(スレーブ)107のPHY303とのリンク確立を確認し次第、CPU204は図14に示したInformation PDU(Event flagが”b0”であるESMC PDU)を生成する。CPU204は、生成したInformation PDUを、ブリッジ205→キュー206→PHY250の経路で有線回線170を介してスレーブ装置107へ送信する。前述のとおり、SSM code値に変化がなければ定期的にInformation PDUを通信装置(スレーブ)107へ通知する。例えば、通信装置(マスタ)100がクロック源に同期(ロック)していない未ロック状態(=クロック源は通信装置(マスタ)100のクロック210)であればQL_DNU(“b1111“、”bxxxx”x=0Or 1で4ビット幅)であり、クロック源にロックしているのであれば各クロック源に応じたQL_DNU以外の値を通知する。さらに、SSM code値が変化した場合(ロック→ロック外れ、ロック外れ→ロック、ロック→他のクロック源へロック等)、Event flagを”b1”としたESMC PDU(Event PDU)を、SSM code値の変化要因を検出し次第、通信装置(スレーブ)107へ送信する。
通信装置(スレーブ)107のクロック同期のフレーム受信処理では、まず、有線回線170からのESMC PDUを、PHY303→ブリッジ305→キュー306→CPU304の経路で受信する。CPU304は、図17に示したメッセージ通知によりクロック品質を判定する処理を実施する。図17に示すように、直前のESMCメッセージの受信後にタイマーをスタートさせ(ステップS70)、クロックエラーの有無を示す変数CLK Errorを、初期値としてFALSEに初期化する(ステップS71)。次に、CPU304は、通信装置(マスタ)100からESMC PDU(ESMCメッセージ)を以前のESMCメッセージを受信してから5秒以内に受信したか否かを判断し(ステップS72)、受信した場合(ステップS72 Yes)、受信したESMCメッセージが正常であるか否かを判断する(ステップS73)。一方、受信していない場合(ステップS72 No)は、変数CLK ErrorをTRUEにする(ステップS78)。ESMCメッセージが正常であるか否かの判断は、例えば、ESMCメッセージ規定によるMAC(Media Access Control) DA(Destination Address)が自装置の値(ITU−T G.8264規定による”01-90-C2-00-00-02”)であり、かつSlow protocol Ethertypeが正しい値(ITU−T G.8264規定による”88-09”)であるか否かにより判断することができる。
ESMCメッセージが正常である場合(ステップS73 Yes)、当該メッセージからSSM codeを取得し(ステップS74)、SSM code値が、QL_DNUと一致するか否かを判断する(ステップS75)。SSM code値が、QL_DNUと一致しない場合(ステップS75 No)、CLK ErrorをFALSE(すなわち、クロックエラーが無い)とし(ステップS76)、ステップS72へ戻る。SSM code値が、QL_DNUと一致した場合(ステップS75 Yes)、CLK ErrorをTRUE(すなわち、クロックエラーが有る)とし(ステップS77)、ステップS72へ戻る。
また、ステップS73で、ESMCメッセージが正常でないと判断した場合(ステップS73 No)、ステップS77へ進む。
通信装置(マスタ)100のクロック同期動作について説明する。ここでは、図1に示す通信装置(マスタ)100が通信装置(スレーブ)107へクロックを供給する動作を例に説明する。前述のように、MUX回路201には、自クロックであるクロック210と、外部のクロック源であるクロック源101、クロック・時刻源103,105とからそれぞれクロックが入力される。
MUX回路201は、入力された各クロックのクロック抽出状態と、CPU204により設定された各クロック源の優先度と、クロック・時刻源105からESMC PDUにより通知されたSSM code値と、に基づいてクロック源を1つ選択する。具体的な選択方法としては、例えば、クロック抽出状態とSSM code値により全てのクロック源が正常である場合には、全てのクロック源のうちから優先度に従ってクロックを選択し、クロック抽出状態とSSM code値により一部のクロック源が異常であると判断した場合は、異常でないクロック源のうちから優先度に従ってクロックを選択する。選択されたクロックはPLL回路200へ供給される。なお、通信装置(マスタ)100は、クロック・時刻源105から回線105経由でESMC PDUを受信し、CPU204がブリッジ205およびキュー206を経由してクロック・時刻源105から受信したESMC PDU内のSSM code値を抽出してMUX回路201へ通知しているとする。PLL回路200では、各デバイスに適した周波数に逓倍し、通信装置(マスタ)100を構成する各デバイス(領域160で囲まれた部分)へ供給する。クロック供給されたPHY250は、有線回線170を介して通信装置(スレーブ)107へ送信する信号に多重化してクロックを送信する。なお、ここでは、MUX回路201が、各クロックのクロック抽出状態と、CPU204により設定された各クロック源の優先度と、クロック・時刻源105からESMC PDUにより通知されたSSM code値と、に基づいてクロック源を1つ選択するようにしたが、CPU204が、各クロックのクロック抽出状態と、各クロック源の優先度と、クロック・時刻源105からESMC PDUにより通知されたSSM code値と、に基づいてクロックを選択し、選択するクロックを選択指令によりMUX回路201へ通知してもよい。
次に、通信装置(スレーブ)107のクロック同期動作について説明する。通信装置(スレーブ)107では、PHY303が通信装置(マスタ)100から有線回線170を介して受信した受信信号からクロックを抽出しMUX回路301へ入力する。MUX回路301は、PHY303から入力されるクロックと、自クロックであるクロック310のいずれかを選択してPLL回路300へ入力する。
以下、MUX回路301におけるクロックの選択方法について説明する。MUX回路301では、通信装置(マスタ)100からのクロックについてクロック抽出エラーの有無(クロック品質)を図18に示すフローチャートにより判断する。
図18に示すように、まずMUX回路301は、PHYで有線回線とリンクしたかを判定する(ステップS80)。リンクしていないと判定した場合(ステップS80 No)は、リンク判定処理を繰り返し、リンクしたと判定した場合(ステップS80 Yes)は、クロック抽出エラーの有無を示す変数CLK Extract Errorを初期値のFALSEに設定する(ステップS81)。MUX回路301は、PHY303から入力されるクロックのクロック抽出状況を取得する(ステップS82)。具体的には、例えば、クロックの安定度等のクロックの品質を示す情報を計測する等により求め、求めた品質が当該クロックの想定される品質を満たしているかを判定することにより、クロック抽出が正しく行われている(クロック抽出エラーが無い)のか否かを判断する。
取得したクロック抽出状況に基づいて、クロック抽出エラーが検出されたか否かを判断し(ステップS83)、クロック抽出エラーが検出されない場合(ステップS83 No)、CLK Extract ErrorをFALSE(すなわち、クロック抽出エラーが無い)とし(ステップS84)、ステップS82へ戻る。クロック抽出エラーが検出された場合(ステップS83 Yes)、CLK Extract ErrorをTRUE(すなわち、クロック抽出エラー有り)とし(ステップS85)、ステップS82へ戻る。
MUX回路301は、以上のようにして求めたCLK Extract Errorと、図17を用いて説明したESMCメッセージに基づくCLK ErrorとのORをとり、その結果がFALSEであれば、有線回線170から供給されるクロック(通信装置(マスタ)100から受信したクロック)を選択し、TRUEであればクロック310からのクロックを選択する。なお、ここでは、MUX回路301がCLK Extract Errorを求めるようにしたが、CPU304がCLK Extract Errorを求めるようにしてもよく、CLK ErrorとのORもCPU304が求め、計算結果をMUX回路301に通知するようにしてもよい。また、ここでは、CLK Extract ErrorとCLK Errorの両方を用いてクロックを選択するようにしているが、いずれか一方を用いてクロックを選択するようにしてもよい。
MUX回路301は、選択したクロックをPLL回路300へ入力する。PHY350は、PLL回路300からクロックの供給を受け、有線回線180を介して端末108とリンクが確立されると、送信信号にクロックを多重化して端末108へ供給する。また通信装置(スレーブ)107は、端末108とリンク確立を確認次第、通信装置(マスタ)100が通信装置(スレーブ)107へ送信するのと同様に、CPU304がESMCメッセージを生成し、ブリッジ305→キュー306→PHY350の経路で有線回線180を介して端末108へ送信する。
通信装置(マスタ)100と通信装置(スレーブ)107の間の時刻同期フレーム処理は、例えば、図4に示したIEEE1588−2008規定の手順で実施する。また、PTP messageは、例えば図7に示すフォーマットでカプセル化されて通信装置(マスタ)100と通信装置(スレーブ)107との間で交換される。PTP messageの構成は、例えば、図8に示した構成とすることができる。また各PTPメッセージの送信許可はITU−T G.8265.1に従う場合、図5、6に示したように、通信装置(スレーブ)107がAnnounce/Sync/Delay_Respの各メッセージに対して、それぞれユニキャスト送信要求を送信し、通信装置(マスタ)100が要求に対する返答(許可・不許可)を通信装置(スレーブ)107へ返す。
次に、通信装置(スレーブ)107が時刻同期要求を最初に行う場合の時刻同期フレーム処理について説明する。通信装置(マスタ)100は、各PTPメッセージを用いて時刻情報(時刻源とのロック状態と選択した時刻源102、クロック・時刻源103の特定、時刻等)を通信装置(スレーブ)107へ通知する。通信装置(スレーブ)107では、通信装置(マスタ)100とリンク確立が確認され次第、図5に示すようにユニキャスト送信要求Signaling message(REQUEST_UNICAST_TRANSMISSION TLV)を送信する。通信装置(スレーブ)107が最初にユニキャスト送信を要求するメッセージは、ITU−T G.8265.1に従うと、Announce messageである。このため、最初のSignaling messageでは、messageType(メッセージ種別)に0xB(=Announce)を格納する。また、logInterMessagePeriodに、メッセージの要求送信レートとして基数2のx乗で示された値(単位は秒)のxを2の補数で格納し(例えばlogInterMessagePeriod=0x00であれば、要求送信レートは2の0乗(=1秒)、durationFieldに、要求送信レートでのメッセージの要求継続時間としてyで示された値(単位は秒)のyを2の補数を格納する(例えばdurationField=0x001Cであれば、要求送信レートの要求継続時間は30秒となる)。
また、その後、Sync message、Delay_Resp messageについても同様にSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を用いてユニキャスト送信要求を行う。一方、通信装置(スレーブ)107は、図5に示す通信装置(マスタ)100からの返信であるSignaling message(GRANT_UNICAST_TRANSMISSION TLV)を受信すると、受信したメッセージのmessageType、logInterMessagePeriod、durationFieldを、自装置から送信した要求メッセージの種別、要求送信レート、要求継続時間と照合することで、自装置からの要求に対する返信と判断し、Renewal Invitedの値を参照して要求が認められたか否かを判定する(”b1”なら通信装置(マスタ)100が要求を認めた、”b0”なら要求を認めなかったと判定する)。
次に、通信装置(マスタ)100の時刻同期フレーム処理について説明する。通信装置(マスタ)100は、通信装置(スレーブ)107からSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を受信すると、ユニキャスト要求のあったメッセージ種別と要求送信レート、要求継続時間について、当該メッセージ種別について定められた最大送信レート、最大継続時間と照合し、通信装置(スレーブ)107からの要求がそれぞれ最大送信レート、最大継続時間以下であれば要求を認めるが、要求量が最大送信レート、最大継続時間のいずれかを上回る場合、要求を認めない判定をおこなう。そして、判定結果をRenewal Invitedに格納した図10のmessageType1003にスレーブ装置107から送信された応答したSignaling message(GRANT_UNICAST_TRANSMISSION TLV)を通信装置(スレーブ)107へ返答する。要求を認めた場合には、その後、要求された継続時間の間、要求されたメッセージを要求された送信レートで通信装置(スレーブ)107へ送信する。
次に、通信装置(マスタ)100の時刻同期動作について説明する。通信装置(マスタ)100では、PPS信号受信部231が時刻源102から同軸ケーブル120を介してPPS信号を受信する。このPPS信号が示す時刻情報は、シリアルケーブル121を介してシリアル信号受信部241を経由してカウンタ221が受信する。カウンタ221は、PPS信号をトリガーに、受信した時刻情報を取り込み、以降次の取り込みタイミングが来るまで、PLL回路200が供給するクロックで動作する。また、PPS信号受信部232は、クロック・時刻源103から同軸ケーブル130を介してPPS信号を受信する。このPPS信号が示す時刻情報は、シリアルケーブル131を介してシリアル信号受信242を経由してカウンタ222が受信する。カウンタ222は、PPS信号をトリガーに、時刻情報を取り込み、以降次の取り込みタイミングが来るまで、PLL回路200が供給するクロックで動作する。
またクロック・時刻源105からは、有線回線150を介してPHY203→ブリッジ205→キュー206→CPU204の経路で、CPU204が、Announce message、Sync message、Follow_Up message、Delay_Resp message等を受信する。CPU204は、ブリッジ252→キュー253→PHY203の経路で有線回線150を介してクロック・時刻源105へDelay_Req message送信する。また、CPU240は、受信したメッセージ内の時刻情報と受信時刻を基にクロック・時刻源105に同期した時刻を計算して、計算した結果をカウンタ220へ設定し、PLL回路200が供給するクロックでカウンタ220を動作させる。
MUX回路202は、上述した選択方法により選択したクロックに対応するカウンタ(カウンタ220,221,222のうちのいずれか)を選択し、選択したカウンタからのPPS信号をPHY250,207へ供給する。また、CPU204は、PHY250,207へ選択したカウンタに対応する時刻情報を設定する。このようにして、選択したPPS信号をトリガーにして、時刻情報をPHY250,207に設定することができる。これにより、通信装置(マスタ)100は、Announce message、Sync message、Follow_Up message、Delay_Resp messageを通信装置(スレーブ)107へ送信時に、PHY250においてタイムスタンプを打刻するとともに、通信装置(スレーブ)107からのメッセージの受信時にPHY250においてタイムスタンプを打刻することで、通信装置(マスタ)100と通信装置(スレーブ)107との間で時刻同期を可能とする。
次に、通信装置(スレーブ)107の時刻同期動作について説明する。上述したユニキャスト要求により、Announce message、Sync message、Follow_Up message、Delay_Resp messageの送信を通信装置(マスタ)100へ要求し、送信要求が許可されたとする。具体的には、CPU304が、Signaling message(REQUEST_UNICAST_TRANSMISSION TLV)を生成し、ブリッジ352→キュー353→PHY303の経路で有線回線170を介して通信装置(マスタ)100へ送信する。また通信装置(マスタ)100からの返信は、有線回線170を介してPHY303→ブリッジ305→キュー306→CPU304の経路でCPU304が受信する。またAnnounce message、Sync message、Follow_Up message、Delay_Resp messageも同じ経路にて、通信装置(マスタ)100から受信する。CPU304は、Announce message、Sync message、Follow_Up message、Delay_Resp messageに基づいて時刻を計算し、計算した時刻をカウンタ320に設定する。
またカウンタ320はPHY350にPPS信号を送信し、CPU304からは時刻情報をPHY350に通知する。CPU304は、Sync message、Delay_Resp messageを生成し、CPU304→ブリッジ305→キュー306→PHY350を経由して端末108へ送信する際にPHY350においてタイムスタンプを更新する。また、端末108から有線回線180を介してDelay_Req messageを受信した際に、PHY350において到着時刻を打刻してPHY350→ブリッジ352→キュー353→CPU304へと通知する。これにより、通信装置(スレーブ)107と端末108との間で時刻同期を可能とする。
次に、本実施の形態におけるクロック供給状況に応じた時刻同期制御方法について図16を用いて説明する。図16に示すように、通信装置(スレーブ)107は、通信装置(マスタ)100とのリンク確立をトリガーとして、時刻同期フレームのユニキャスト送信要求処理を開始し、各メッセージの要求送信レート、継続時間を、あらかじめ定められた初期要求送信レート、初期継続時間に設定する(ステップS51)。そして、ステップS51で設定した値を格納したSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を通信装置(マスタ)100へ送信する(ステップS52)。
次に、通信装置(スレーブ)107は通信装置(マスタ)100からの返答であるSignaling message(GRANT_UNICAST_TRANSMISSION TLV)を正常に受信したか否かを判断し(ステップS53)、正常に受信した場合(ステップS53 Yes)、測定タイマをスタートさせる(ステップS54)。測定タイマの満了時間は、durationFieldの値より小さい値に設定される。そして、時刻同期message(Sync message、Follow_Up message、Delay_Resp message等の時刻同期メッセージ)を待機し(ステップS55)、時刻同期messageが到着したか否かを判断する(ステップS56)。時刻同期messageが到着した場合(ステップS56 Yes)、CPU304は、時刻同期messageに基づいて通信装置(マスタ)100と自身の時刻との時間差を算出し(ステップS57)、算出した時間差と過去に算出した時間差とに基づいて一定期間内の時間差の平均値を算出する(ステップS58)。そして、測定タイマが満了したか否かを判断し(ステップS59)、測定タイマが満了していない場合(ステップS59 No)、ステップS55へ戻る。
測定タイマが満了した場合(ステップS59 Yes)、測定タイマで計測した時間内でのクロックエラーを取得する(ステップS60)。このクロックエラーとは、(1)図17のフローチャートで説明したESMCメッセージに基づくCLK Error、(2)図18のフローチャートで説明した通信装置(マスタ)100から有線回線170を経由して受信したクロック抽出エラー(CLK Extract Error)である。これら(1)、(2)の情報は、一定期間CPU304で保持され、CPU304は、測定タイマで計測した時間内でのCLK ErrorとCLK Extract Errorを取得する。
そして、CPU304は、測定タイマで計測した時間内でのCLK ErrorとCLK Extract Errorに基づいて、正常であったか否かを判断する(ステップS61)。正常であった場合(ステップS61 Yes)、CPU340は、時刻同期精度(ステップS58で算出した通信装置(マスタ)100と時間差の平均値)が所定の目標精度を満たしているか否かを判断する(ステップS62)。時刻同期精度が目標精度を満たしていない場合(ステップS62 No)、現在の時刻同期messageの要求送信レートより速いレートを要求したことがあるか否かを判断し(ステップS63)、現在の時刻同期messageの要求送信レートより速いレートを要求したことが無い場合(ステップS63 No)、現在の時刻同期messageの要求送信レートが最大値(最大時刻同期messageレート)であるか否かを判断する(ステップS64)。現在の時刻同期messageの要求送信レートが最大値である場合(ステップS64 Yes)、要求送信レートは変更せずに、ステップS52へ戻る。現在の時刻同期messageの要求送信レートが最大値(最大時刻同期messageレート)でない場合(ステップS64 No)、要求送信レート(logInterMessagePeriode)を現在の値より速いレートに変更したSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を通信装置(マスタ)100へ送信することにより速い要求送信レートを要求し(ステップS65)、ステップS52へ戻る。
また、ステップS63で、現在の時刻同期messageの要求送信レートより速いレートを要求したことがあると判断した場合(ステップS63 Yes)、要求送信レートは変更せずに、ステップS52へ戻る。
また、ステップS61で、正常でなかったと判断した場合(ステップS61 No)、要求送信レート(logInterMessagePeriode)を最大値に変更したSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を通信装置(マスタ)100へ送信することにより最大時刻同期messageレートを要求し(ステップS69)、ステップS52へ戻る。
また、ステップS62で、時刻同期精度が目標精度を満たしている場合(ステップS62 Yes)、現在の時刻同期messageの要求送信レートより遅いレートを要求したことがあるか否かを判断し(ステップS66)、現在の時刻同期messageの要求送信レートより遅いレートを要求したことが無い場合(ステップS66 No)、現在の時刻同期messageの要求送信レートが最小値(最低時刻同期messageレート)であるか否かを判断する(ステップS67)。現在の時刻同期messageの要求送信レートが最小値(最低時刻同期messageレート)でない場合(ステップS67 No)、要求送信レート(logInterMessagePeriode)を現在の値より遅いレートに変更したSignaling message(REQUEST_UNICAST_TRANSMISSION TLV)を通信装置(マスタ)100へ送信することにより遅い要求送信レートを要求し(ステップS68)、ステップS52へ戻る。
また、ステップS66で、現在の時刻同期messageの要求送信レートより遅いレートを要求したことが有る場合(ステップS66 Yes)、要求送信レートは変更せずに、ステップS52へ戻る。ステップS67で、現在の時刻同期messageの要求送信レートが最小値であると判断した場合(ステップ67 Yes)、要求送信レートは変更せずに、ステップS52へ戻る。以上のように、クロック同期の状況に応じて、時刻同期messageの要求送信レートを変更することで、通信装置(スレーブ)107の処理負荷、帯域、消費電力の最適化を実現することができる。また、ステップS56で、時刻同期messageが到着していないと判断した場合(ステップS56 No)、ステップS55へ戻る。
なお、以上は、通信装置(マスタ)100と通信装置(スレーブ)107の間のクロック・時刻同期について説明したが、通信装置(マスタ)100と通信装置(スレーブ)109の間のクロック・時刻同期についても同様に、クロック同期の状況に応じて、時刻同期messageの要求送信レートを変更することができる。また、通信装置(スレーブ)107と端末108の間のクロック・時刻同期についても同様に、クロック同期の状況に応じて、時刻同期messageの要求送信レートを変更することができる。
なお、以上の説明では、クロック同期と時刻同期の両方を行う場合の手順を示したが、時刻同期のみを行う場合に、上記と同様に時刻同期messageの要求送信レートを変更するようにしてもよい。この場合、CLK Extract ErrorおよびCLK Errorに関する処理は実施しなくてよい。
また、CPU204が実現する機能として通信装置(マスタ)100は、時刻情報を供給するためのリソースを管理し、あらかじめ定めた、時刻情報の供給方針(時刻同期に用いるリソース量(時刻同期フレームの最大送信レート等)等)を制御する時刻情報供給管理部を備えるようにしてもよい。また、時刻情報の供給方針を、運用後に運用者等により変更可能としてもよい。またCPU204以外に通信装置(マスタ)100の内部ロジックとして別に実現してもよい。
以上のように、本実施の形態では、クロック同期の状況に応じて、時刻同期messageの要求送信レートを変更するようにした。このため、通信装置(スレーブ)107の処理負荷、帯域、消費電力の最適化を実現することができる、通信装置(スレーブ)107の送受信負荷を軽減することができる。