(57)【特許請求の範囲】
【請求項１】
時刻同期用パケットを送受信することで自装置と他装置との装置間時刻同期を行なう通信装置であって、
該時刻同期用パケットを生成するための第１のリアルタイムクロックと、
該第１のリアルタイムクロックと時刻同期された、該時刻同期用パケットの送出時刻を取得するための第２のリアルタイムクロックと、
を備えることを特徴とする通信装置。
【請求項２】
前記装置間時刻同期は、Precision Time Protocol（PTP）にしたがって実行されることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１のリアルタイムクロックと前記第２のリアルタイムクロックの時刻同期は、PPS（Pulse Per Second)信号とシステムクロックの２つの信号を用いて、ハードウェアの動作で実現されることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記通信装置には、外部と信号を送受するためのインターフェイスユニットと、該インターフェイスユニットを制御する監視制御ユニットが設けられ、
前記第１のリアルタイムクロックと前記第２のリアルタイムクロックは、該インターフェイスユニットに装備され、
該インターフェイスユニット内のPPS信号と、該監視制御ユニットから供給されるPPS信号の選択回路を備えることを特徴とする請求項３に記載の通信装置。
【請求項５】
前記時刻同期用パケットの生成処理において、該時刻同期用パケットのデータ内容を保持するメモリを備えることを特徴とする請求項１に記載の通信装置。
【請求項６】
前記時刻同期用パケットはPTPメッセージであって、シーケンスＩＤのカウンタ値をシーケンスＩＤ領域に挿入し、該カウンタ値をインクリメントすることによりPTPメッセージ内のシーケンスＩＤを更新させることを特徴とする請求項２に記載の通信装置。
【請求項７】
前記時刻同期用パケットはPTPメッセージであって、生成するPTP メッセージにおいて、originTimestamp領域のフレーム内位置情報を、装置内転送用プロトコルのフレームヘッダにおいて設定することにより、originTimestamp領域の情報更新を可能とすることを特徴とする請求項２に記載の通信装置。
【請求項８】
前記時刻同期用パケットはPTPメッセージであって、生成するPTP メッセージにおいて、correctionField領域の位置情報を、装置内転送用プロトコルのフレームヘッダにおいて設定することにより、correctionField領域の情報更新を可能とすることを特徴とする請求項２に記載の通信装置。
【請求項９】
前記時刻同期用パケットはPTPメッセージであって、生成するPTP メッセージにおいて、sequence ID領域の位置情報を、装置内転送用プロトコルのフレームヘッダにおいて設定することにより、sequence ID領域の情報更新を可能とすることを特徴とする請求項２に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の実施形態は、時刻同期を実施する通信装置に関する。
【背景技術】
【０００２】
現在、通信機器を始めとする、産業 / AV / 計測 / 自動車関連分野において高精度な時刻同期及び周波数同期の必要性が高まっており、パケットベースによる時刻同期方式を実現する為の標準がIEEE1588で規格化されている。
【０００３】
IEEE1588はEthernet（登録商標）に適用可能な時刻同期プロトコルを規定する規格である。ここではPTP(Precision Time Protocol)と呼ばれるプロトコルを定義している。これにおいては、IP(Internet Protocol)パケットもしくは、Ethernetタイプ指定のMACフレームを使用して時刻同期を行う。
【０００４】
図１は、通信装置におけるIEEE1588時刻同期のためのブロック構成およびクロック構成を示す図である。
時刻情報のマスタとなるGrandMaster modeノード１０では、GPS(Global Positioning System)受信機よりTOD(Time of Day：時刻情報)およびPPS(Pulse per Second)を受信し、自局ノードを標準時刻に同期させる。GrandMaster modeノード１０は通信回線を介して隣接するBoundary clock modeノード１１に、PTPを使って、時刻情報を伝播していく。時刻情報の中継を制御する部分が、Time Management部１３−１〜１３−３である。時刻情報を中継するノードをBoundary clock modeノード、時刻情報伝播の終端点ノードをOrdinary clock modeノードと呼び、これら全てのノードは、GrandMaster modeノードから順次時刻同期していく。
【０００５】
各ノードでは、PTPを実施するためにRTC(Real Time Clock)１４−１〜１４−４、およびPTPパケットの送受信時の時刻をTime StampするTime Stamp部１５−１〜１５−４を、回線インタフェース部(Ethernet MAC処理部)１６−１〜１６−４に有している。このTime Stampの時間分解能のクロック精度で時刻同期することが可能となる。IEEE1588 PTP準拠であれば、その精度はnano-secondオーダでの時刻同期を実現することができる。
【０００６】
時刻同期を行なうためには、装置の動作クロックも同期しておく必要がある。外部発振器（external PRS)からのクロック信号を、GrandMaster modeノード１０に入力する。GrandMaster modeノード１０のＰＬＬ（Phase Locked Loop）１７−１は、この外部発振器からのクロック信号にタイミング同期した参照クロックを生成する。この参照クロックは、同期Ethernetを使って、Boundary clock modeノード１１、Ordinary clock modeノード１２に転送される。Boundary clock modeノード１１、Ordinary clock modeノード１２では、ＰＬＬ１７−２、１７−３それぞれにおいて、タイミング同期が取られる。
【０００７】
なお、PTPメッセージを生成する際のTime Stampは、回線インターフェース部１６−１〜１６−４を制御するＣＰＵ９−１〜９−４によってソフトウェアで動作するRTCによって生成される。
【０００８】
図２は、時刻同期の手順を示すシーケンス図である。
IEEE1588 PTPには、Sync / Follow_Up / Delay_Req / Delay_Respの4種類のメッセージが存在する。これらのメッセージフィールド上に設定されたTime Stamp情報をTime serverからClientに送出する。最終的に、Clientには、図２で示されるように、それぞれの処理遅延を含んだt1〜t4の4つのタイムスタンプがそろうことになるため、これを元にTime serverからClientまでの遅延を計算し、Time serverに時刻同期する。具体的な手順を以下に示す。
【０００９】
Time serverは、Clientに向かってSyncメッセージを送る。このとき、Time serveはSyncメッセージの送出時刻t1を記憶し、続いて送られるFollow_Upメッセージを使ってt1を記録するTime Stampを送る。 
【００１０】
Transparent clockと呼ばれる中継ノード２０−１、２０−２は、Syncメッセージを検出すると、受信時刻と送出時刻の差から処理遅延を計算する。この処理遅延は、続いて受信されるFollow_Upメッセージの中に追加される。 
【００１１】
Clientは、Syncメッセージを受信すると、受信時刻t2を記憶する。また、引き続き受信されるFollow_Upメッセージの中からt1及び処理遅延を取り出し、記憶する。 
Clientは、Delay_Reqメッセージを送出し、送出時刻t3を記憶する。 
【００１２】
Transparent clockと呼ばれる中継ノード２０−１、２０−２は、Delay_Reqメッセージを検出すると、受信時刻と送出時刻の差から処理遅延を計算する。この処理遅延は、続いて逆方向から受信されるDelay_Respメッセージの中に追加される。 
【００１３】
Time serverは、 Delay_Reqメッセージを受信すると、受信時刻t4を記憶する。続いて送られるDelay_Respメッセージを使ってt4をあらわすTime Stampを送る。 
Clientは、Delay_Respメッセージを受信すると、この中からt4及び処理遅延を取り出し、記憶する。 
以上により、Clientは、タイムスタンプt1〜t4及び処理遅延を取得することが出来る。
【００１４】
以下の式により、Time server-Client間の遅延のうち、transparent clockの処理遅延を除く部分を計算する。これは純粋に伝送路の遅延時間になる。 
【００１５】
【数１】
0005811794.tif 000002
【００１６】
この式は、Time serverからClientにSyncメッセージが送られてからDelay_Respメッセーが戻ってくるまでの時間（t4-t1)から、Client内の処理時間（t3-t2）と、往復の間の中継ノード２０−１、２０−２の処理遅延の合計量を減算したものを２で割った結果を示し、Time serverからClientまでの伝送路遅延となる。
【００１７】
上の伝送路遅延、t1、t2、Syncメッセージに対する処理遅延を用いて、以下のように時刻の補正量を計算する。 
【００１８】
【数２】
0005811794.tif 000003
【００１９】
ここで、Syncの処理遅延とは、図２における、ａやｂで示された部分の遅延のことである。この式は、Time serverからClientまでの伝送時間から、伝送路遅延と、中継ノード２０−１、２０−２内の処理遅延の合計を減算したもので、Time serverのRTCとClientのRTCの時間のずれを補正量として示す。この補正量は、Client内のRTCの時刻の補正に用いられる。
【００２０】
図３は、PTPメッセージに含まれるフィールドを示した図である。
transportSpecificは、ハードウェアに依存して一意に決まる値である。messageTypeは、Syncなどのメッセージタイプによって一意に決まる値を持つ。versionPTPは、メッセージ生成ノードのデータセットのportDS.versionNumber memberの値である。messageLengthは、PTPメッセージの全ビット数である。
【００２１】
domainNumberは、メッセージを生成するordinary clockノードあるいはboundary clockノードのデータセットのdefaultDS.domainNumber memberの値である。flagFieldは、２バイトのうちの各ビットで、メッセージごとの意味を持つフラグである。例えば、１バイト目の１ビットは、Sync/Delay_Respメッセージを示す。correctionFieldは、滞留時間や伝送遅延などの修正値が設定される。sourcePortIdentityは、メッセージ生成ノードのデータセットのportDS.portIdentity memberを示す。sequenceIDは、Time Stampを交換するメッセージセットを管理するための値である。controlFieldは、PTPのバージョン１用ハードウェアとの互換性のために用意されたフィールドである。logMessageIntervalは、メッセージタイプによって決まる値を持つ。
【００２２】
Syncメッセージのみに存在するoriginTimestampは、Syncメッセージを送信したノードのTime Stampである。
通信装置内において、IEEE 1588 時刻同期に使用されるPTPメッセージのTime Stampは、従来ソフトウェアで処理されている。
【００２３】
具体的には、PTPメッセージの”Origin Time Stamp”というSyncメッセージの生成時刻に対して時刻補正を行う ”Correction Field”という領域がある。パケット生成時のタイムスタンプはＣＰＵが実行するソフトウェアに依存したCLKを用いて処理される。そして、パケット送出時のタイムスタンプはＣＰＵが実行するソフトウェアに依存したクロックに同期したRTC(Real Time Clock)を用いて時刻情報を更新している。
【００２４】
従来技術には、スレーブ装置とマスタ装置との時刻同期を行なうものや、伝搬遅延時間変動による誤差の小さな高精度時刻同期を行なうものがある。あるいは、従来技術には、往復伝送路が非対称な経路を含むネットワークにおけるマスタとスレーブの時刻同期を行なうものや、全基地局のＧＰＳ基準時刻への時刻同期を行なうものがある。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２０１０−１９７３２０号公報
【特許文献２】特開２００１−３６５３８号公報
【特許文献３】特開２００９−６５５７９号公報
【特許文献４】特開２０００−２３２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
近年、ネットワークのマルチドメイン化が進むに従い、情報量が増えていく中で、CPUの情報処理量（負荷）は今後さらに増加していく傾向にある。そのような状況の中、PTPメッセージの生成・処理はソフトウェアとRTCで実施しているため、”Correction Field”の補正量はCPUの負荷状況によって大きく揺らいでしまい、高精度な時刻同期システムを構築できなかった。
【００２７】
高精度な時刻同期システムは様々な業界で必要性が高まっているが、特に、ビデオ配信システムなどのスムーズでタイムリーな通信が求められるサービスにおいては、時刻同期の誤差により発生するフレームロスは、契約ユーザや配信業者にとって大きな問題となっている。
【００２８】
以下の実施形態においては、高精度な時刻同期を行なうことのできる通信装置を提供する。
【課題を解決するための手段】
【００２９】
以下の実施形態の一側面における通信装置は、時刻同期用パケットを送受信することで自装置と他装置との装置間時刻同期を行なう通信装置であって、該時刻同期用パケットを生成するための第１のリアルタイムクロックと、該第１のリアルタイムクロックと時刻同期された、該時刻同期用パケットの送出時刻を取得するための第２のリアルタイムクロックとを備える。
【発明の効果】
【００３０】
以下の実施形態によれば、高精度な時刻同期を行なうことのできる通信装置を提供することができる。
【図面の簡単な説明】
【００３１】
【図１】通信装置におけるIEEE1588時刻同期のための構成およびクロック構成を示す図である。
【図２】時刻同期の手順を示すシーケンス図である。
【図３】PTPメッセージに含まれるフィールドを示した図である。
【図４】本実施形態の構成を示す図（その１）である。
【図５】本実施形態の構成を示す図（その２）である。
【図６】監視制御ユニットの詳細ブロック構成を示す図（その１）である。
【図７】監視制御ユニットの詳細ブロック構成を示す図（その２）である。
【図８】監視制御ユニットの全体図である。
【図９】Packet IF ユニットの監視制御FPGA内部のPTP Packet generatorのブロック構成図である。
【図１０Ａ】PTP Packet処理動作について説明する図（その１）である。
【図１０Ｂ】PTP Packet処理動作について説明する図（その２）である。
【図１０Ｃ】PTP Packet処理動作について説明する図（その３）である。
【図１１】OTN(Optical Transport Network)-PTPシステムに本実施形態を適用した構成例を示す図である。
【発明を実施するための形態】
【００３２】
以下の実施形態では、PTP (Precision Time  Protocol）Packetの生成部とその送出部に、自IFユニットもしくは監視制御ユニットから送出されるPPS / System Clock に時刻同期したハードウェアのRTCをそれぞれ設置する。
【００３３】
すなわち、PTP Packet生成部にRTCを設置する。PTP Packet送出部（MAC）にRTCを設置する。そして、これらのRTCをPPS(Pulse Per Second) / System CLKでハードウェアの動作により時刻同期させる。
【００３４】
本構成を持つことにより、PTP Packet生成時も ns (nano second) オーダ、データ（PTP Packet）送出時も ns オーダのタイムスタンプを打つことができ、PTP Packet中の”Correction Field”の補正量の揺らぎを極力抑えることができる。すなわち、パケット生成（あるいは受信）から他装置へのパケット送出までの時間は図２の処理遅延に相当し、PTPパケットの"Crrection Field"に設定されて転送される。この処理遅延をnsオーダで正確に管理することができ、したがって、装置間での時刻同期も正確に行なえるようになる。このため、Grandmaster modeノードと、Boundary clock modeノード、Ordinary clock modeノードのRTCを正確に同期させることができる。PTP Packet生成部（generator)と送信部(NPU)のRTCがハードウェア動作で時刻同期しているため、ソフトウェアで動作するRTCを使わなくて良くなる。したがって、RTC動作を実行する必要がなくなる分、CPUの処理量が減る。また、ハードウェア動作によって同期したRTCを使うので、nsオーダで安定した高精度な時刻同期を実現することができる。
【００３５】
図４及び図５は、本実施形態の構成を示す図である。
本実施形態の通信装置は、図４にあるように、監視制御ユニット（MCU）２５とPacket IFユニット２６、スイッチユニット２７で構成されている。監視制御ユニット２５とスイッチユニット２７は、それぞれ、現用系と予備系が用意され、冗長化されている。
【００３６】
監視制御ユニット２５は、Packet IFユニット２６に対し、装置全体の基本となるSystem Clock とPPS信号を送出する。
Packet IF ユニット２６は、監視制御ユニット２５から供給されるPPS信号と、監視制御ユニット２５から供給されるSystem Clockを受信する。そして、これに基づいて、Packet IFユニット２６内の監視制御FPGA（Field Programable Gate Array)とNPU(Network Processor Unit)に設置されているRTCのPTP時刻同期を実施する。また、これらに加え、Packet IF ユニット２６は、PTP Packet生成時のタイムスタンプと、外部へのPTP Packet送出時のタイムスタンプの処理を行う。
【００３７】
図５は、Packet IFユニット内部の詳細ブロック構成図である。
Packet IFユニットには、NPU３１、及び、監視制御FPGA３２が搭載されている。監視制御FPGA３２にはPTP Packet Generator３５とPPS/System Clockにハードウェア動作で時刻同期したRTC３６が設置されている。NPU３１にはPacket送出部３７、４０と、監視制御FPGAに搭載されているRTC３６とハードウェア動作で時刻同期したRTC３８とが設置されている。
【００３８】
図５において、SFP５７は、光モジュールである。NPU３１のSerDes５８は、シリアル・パラレル変換回路である。MAC４０は、PTP Time Stamp機能を内蔵するMACブロックであり、パケット入力時の時刻情報をPTPパケットのヘッダに付与する。PP３７は、Programable Pipelineであり、NPU３１内でユーザの定義するパケット処理を実施するブロックである。MAC４１は、PTPパケットの送信受信ブロックである。RTC３８は、PTP入力パケットに対して、受信時刻情報を提供する時計ブロックである。PCIe２９は、PCI Expressインタフェースである。
【００３９】
PCIeスイッチ４２は、監視制御アクセス用として使用されるスイッチである。CPU４３は、ＩＦユニット内に搭載される監視制御用プロセッサであり、入力PTPパケットのTime Stamp情報を収集し、ネットワーク経由で監視制御ユニット（MCU）２５に通知するものである。SysCLK PLL制御部４４は、現用系及び予備系制御ユニットから選択されたSysClockに同期した基準クロックを生成するブロックである。
【００４０】
MAC４５は、PTPパケットの送受信ブロックである。PTP flow/SeqID recognition５２は、入力PTPパケットのフロー／シーケンス番号識別によるフィルタ処理を実施するブロックである。PTP Slave TS mem４６は、PTP入力パケットのTime Stamp情報を格納するメモリである。PTP Packet Generator３５は、送信PTPパケットの生成を制御するブロックであり、ハードウェアによる自立生成トリガで動作する。PTP Packet Buffer４７は、送信PTPパケットデータを格納するメモリである。RTC３６は、送信PTPパケットのoriginTimestamp時刻情報を提供するブロックであり、NPUのRTC３８とPPS信号、クロックを共有することにより同じ時刻情報を保有する。PPS(1) ５３−１,PPS(2)５３−２は、ＭＣＵから入力されるPPS信号の受信ブロックであり、現用系、予備系の各々のＭＣＵから受信する。SysClk(1) ５４−１, SysClk(2)５４−２は、ＭＣＵから入力されるSystem Clock信号の受信ブロックであり、現用系、予備系のＭＣＵそれぞれから受信する。SEL５０、５１は、セレクタであり、現用系、予備系のいずれの信号を受信するかを選択する。I-LAN(1)５５−１,I-LAN(2)５５−２は、装置内ＬＡＮインタフェースであり、現用系、予備系のＭＣＵと各々接続する。L2SW５６は、装置内ＬＡＮスイッチである。PCIe４８は、PCI Expressインタフェースである。MAC４９は、装置内ＬＡＮの送受信ブロックである。
【００４１】
PTPパケットの送出動作を説明する。
セレクタSEL５０は、ＭＣＵ（監視制御ユニット）の現用系、あるいは、予備系から送出されたPPS信号を選択する。セレクタSEL５１は、ＭＣＵ（監視制御ユニット）の現用系、あるいは、予備系から送出されたSysClk信号を選択する。セレクタSEL５１が選択したSysClk信号を元に、基準となるクロックを、SysCLK PLL制御部４４で、生成する。ＭＣＵから選択したPPS信号と、SysCLK PLL制御部４４で生成された基準クロックを元に、RTC３６，３８を時刻同期させる。PTP Packet Generator３５において、PTPパケットを、ハードウェア動作によりRTC３８と同期したRTC３６を元に、生成する。そして、生成したPTPパケットをPTP Packet Buffer４７に格納する。CPU４３からのPTP Packet Generator３５に対するPTPパケット送出の命令が受信されると、PTP Packet Buffer４７に格納してあるPTPパケットを出力する。そのとき、送出するPTPパケットのTimestamp情報をPTP Slave TS mem４６に格納する。そして、監視制御FPGA３２からNPU３１へPTPパケットを送出する。NPU３１のPP３７では、受信したデータをパイプライン処理して、MAC４０にPTPパケットを転送する。MAC４０では、PTPパケットを外部に送出する時刻をPTPのoriginTimestampフィールドに書き込む。ここで、この時刻を取得するRTC３８は、ハードウェアの動作により、RTC３６と時刻同期したものである。そして、SFPを経由して、PTPパケットを外部に送出する。
【００４２】
図６及び図７は、監視制御ユニットの詳細ブロック構成を示す図である。
監視制御ユニットには、PPS信号分配処理部とSystem Clock分配処理部が搭載されている。図６は、PPS信号分配処理部の構成であり、図７は、System Clock分配処理部の構成である。
【００４３】
図６において、MCU RS422 CN６０は、ＲＳ−４２２コネクタである。ＧＰＳ受信機と接続されるインタフェースであり、PPS信号受信、TOD情報などの受信が行なわれる。PPS収集／分配ブロック６１の位相比較部６２は、自装置のPPS信号と、冗長装置のPPS信号の位相を比較するブロックである。PPS収集／分配ブロック６１のPPS SEL６３は、ＧＰＳ受信機からの受信PPS信号と自装置内RTC８２からのPPS信号のいずれを使用するかを選択する。PPS収集／分配ブロック６１のShift Reg.６４は、シフトレジスタであり、System Clockの基準クロックを用いて、PPS出力位相を制御する。DIS６５は、PPS信号を装置内に分配するブロックである。BWB CN６６は、バックボードコネクタであり、予備系のＭＣＵや、各Packet IFユニットにPPS信号を分配する。
【００４４】
NMEA処理部６７は、ＧＰＳ受信機とTOD情報をやり取りするブロックである。集中RTC８２は、装置内で大元のRTC時刻情報を生成するブロックである。System Clockを基準に動作しており、PTPアルゴリズムによるソフト制御によって、周波数制御、時刻制御が行なわれる。Internal LANブロック６８は、レイヤ２で動作するスイッチである。ＣＰＵ ６９は、各ＩＦユニットから収集されたTimestamp情報を元に、PTPアルゴリズムを実施するプロセッサである。
【００４５】
MCU RS422 CN６０には、ＧＰＳ受信機から受信したPPS信号を入力される。PPS SEL６３は、ＧＰＳからのPPS信号あるいは、集中RTC８２からのPPSのどちらかを選択する。Shift Reg.６４は、System Clockの基準クロックを用いて、PPS出力位相を制御する。DIS６５は、PPSを装置内に分配する。
【００４６】
図７において、CAT DSP７０のRef CLK SEL７１は、集中RTC７３、内部発振器７４、あるいは、各ＩＦユニットから送出されるクロックの選択部である。CAT DSP７０のDPLL７２は、Ref CLK SEL７１から入力されたクロックと周波数や位相ずれの無いクロックを生成するデジタルPLLである。集中RTC７３は、装置内での大元のRTC時刻情報を生成するブロックである。System Clockを基準に動作しており、PTPアルゴリズムによるソフト制御によって、周波数制御、時刻制御が行なわれる。集中RTC７３は、図６の集中RTC８２と同じものである。RTC Base Clock制御部７５のfine grade DPLL７６は、高精度なデジタルPLLであり、SEL７７から入力されたクロックをもとに、RTC７３のベースとなるクロックを送出する。RTC Base Clock制御部７５のSEL７７は、内部発振器７４からのクロックとCAT DSP７０からのクロックのいずれかを選択するブロックである。CPU７８は、各ＩＦユニットから収集されたTimestamp情報を元に、PTPアルゴリズムを実施するプロセッサである。CPU７８は、図６のCPU６９と同一のものを再掲したものである。DIS７９は、クロックを装置内に分配するブロックである。BWB CN８０は、バックボードコネクタである。MCU BNC CN８１は、ＧＰＳ受信機から送られてくるクロックを受信するコネクタである。このクロックは、例えば、１０ＭＨｚである。
【００４７】
Ref CLK SEL７１は、RTC７３からのクロック、内部発振器７４からのクロック、各ＩＦユニットから送られてくるクロック、あるいは、ＧＰＳ受信機からのクロックのうち、いずれかを基準クロックとして選択する。DPLL７２は、選択されたクロックを元に、System Clockを生成する。DIS７９は、System Clockを各ＩＦユニットに分配する。
【００４８】
図８は、監視制御ユニットの全体図である。
監視制御ユニットは、図６及び図７で説明した詳細構成を有するが、図６のPPS信号分配処理部と図７のSystem Clock分配処理部が結合された構成となる。その場合、図６の集中RTC８２と図７の集中RTC７３は同じもので、図６のCPU６９と図７のCPU７８は同じものとなっており、両処理部に共通の構成となっている。
【００４９】
図９は、Packet IF ユニットの監視制御FPGA内部のPTP Packet Generatorのブロック構成図である。
監視制御ユニットのPPS入力部８５とタイムスタンプ（TS）update部８６との間にRTC８７を設置している。このRTC８７にはSecond単位[31:0]とnano-second単位[31:0]のカウンタを設けており、NPUに設置されているRTCとハードウェア動作で時刻同期を実現している。
【００５０】
図９のPTP Packet Generatorは、GrandMaster modeのノードにおけるSyncパケットの生成を行なう。Packet Gen Manager８８は、Syncパケットの生成制御ブロックである。１００ＭＨｚ基準クロックにより、ハードウェア自立トリガによるタイムスロットベースの生成タイミングを制御する。Packet Gen Timeslot/Profile Table８９は、PTPセッションＩＤごとに設定されているSyncパケットの生成プロファイル情報を格納しているテーブルである。"Sync" Packet Memory Table９０は、Syncパケットデータを格納するテーブルである。
【００５１】
Sec counterは、時刻情報の秒カウンタである。PPS信号によってインクリメントされるカウンタであり、SyncパケットのoriginTimestamp情報に使用される。NanoSec counterは、時刻情報のナノ秒カウンタである。１００ＭＨｚ信号によってインクリメントされ、PPS信号によってリセットされるカウンタである。SyncパケットのoriginTimestamp情報に使用される。TS update部８６は、SyncパケットのoriginTimestamp領域を現在の時刻情報に更新するブロックである。correctionField update部９１は、SyncパケットのcorrectionField領域を更新するブロックである。seqID update部９２は、SyncパケットのシーケンスＩＤ領域を更新するブロックである。current seqID Table９３がカウントするシーケンスＩＤ番号を用いて、シーケンスＩＤ領域を更新する。current seqID Table９３は、PTPセッションＩＤごとに管理されているSyncパケットの現在のシーケンスＩＤ番号を格納しているメモリであり、アクセスされる毎に自動的に１だけインクリメントされる。Timestamp recording部９４は、Syncパケット生成に対して、PTPセッションＩＤ，シーケンスＩＤごとに、originTimestamp情報、correctionField情報を格納するブロックである。Timestamp Table９５は、PTPセッションＩＤ、シーケンスＩＤごとに、originTimestamp情報、correctionField情報を格納するメモリである。MUX９６は、ハードウェア自立生成パケットと、他のパケットの合流処理を行う。DevID switch&remove部９７は、デバイスＩＤ情報を元に、行き先をスイッチするブロックである。デバイスＩＤ情報は、このブロックを通過後、削除される。MAC1-4  ９８は、送信パケットの行き先であり、図９では、４ポートを想定している。入力PTPパケットのTimestamp情報を収集し、ＬＡＮ経由でＭＣＵに伝達する。
【００５２】
ブロック９９は、ハードウェアで構成され、originTimestampの値からcorrectionFieldの値を得る処理を実行する。最初に、８バイトのoriginTimestampを、LSB(Least Significant Bit）から６バイト分抽出する。次に、originTimestampをバイトコードからバイナリデータに変換する。全てのビットを反転し、１だけインクリメントし、ＬＳＢから２バイト分originTimestampを拡張する。これは、８バイトからなるoriginTimestampから６バイト取り出して処理したので、２バイト分０を付け足すということである。そして、その値をcorrectionFieldに書き込む。
【００５３】
まず、Packet Gen Manager８８は、１００ＭＨｚ基準クロックにより、Syncパケットを生成する。TS update部８６がSyncパケットのoriginTimestamp領域を更新する。correctionField update部９１が、SyncパケットのCorrection Field領域を更新する。seqID update部９２がSyncパケットのシーケンスＩＤ領域を更新する。Timestamp recording部９４がPTPセッションＩＤ，シーケンスＩＤごとに、originTimestamp情報、correctionField情報を格納する。"DevID" switch&remove部９７は、デバイスＩＤ情報を元に行き先を選択し、出力する。
【００５４】
図１０Ａ〜図１０Ｃは、PTP Packet処理動作について説明する図である。
なお、図１０Ａにおいて、図５、図９と同じ構成要素には同じ参照符号を付し、それらの説明を省略する。
【００５５】
PTP Packet処理においては、まず、CPUから監視制御FPGAにあるPacket Buffer４７に予めPTP メッセージを書き込んでおく。PTP メッセージ生成命令がCPUからPacket生成制御部（図１０Ａにおいては不図示）に送出される。NPUのRTC３８とハードウェア動作により時刻同期しているRTC３６を元に、TS update部８６でTime Stamp処理を行う。Correction Field update部９１でCorrection  Fieldの更新を行う。Sequence ID update部９２でシーケンスＩＤの更新を行う。
【００５６】
監視制御FPGAのMACIF部４５からNPUのMACIF部４１へデータが送信される。NPUのタイムスタンプ制御部TSAにおいて、監視制御FPGAのRTC３６とハードウェア動作により時刻同期したRTC３８の時刻情報を元に、Correction Fieldの更新を行う。NPUのMACIF部４０において、UDPのCheck SUMとFCS(Frame Check Sequence)の更新を行う。そして、NPUの外部にデータを送信する。
【００５７】
図１０Ｂ及び図１０Ｃには、各部におけるPTPパケットのフレームフォーマットが示されている。図１０Ｂの上段のフレームフォーマットは、図１０ＡのMACIF部４０から外部にパケットを送出する、あるいは、外部からパケットを受信する際のフォーマットである。図１０Ｂの下段のフレームフォーマットは、図１０ＡのＰＰ部３７と内部メモリスイッチとの間のパケットを送受する場合のフォーマットである。図１０Ｃは、MACIF部４１と４５の間でパケットを送受する場合のフォーマットである。
【００５８】
外部に送出するPTPパケットは、MACヘッダ、IPv4ヘッダ（IPv6ヘッダ、あるいは、これは無くてもよい）、UDPチェックサム（あるいは、これは無くてもよい）、シーケンスＩＤ、originTimestamp、correctionField、MAC FCSからなっている。これがMACIF部４５、４１の間で転送される場合には、Meta dataが先頭に付加され、MACフレームに埋め込まれて転送される。また、NPU内部で転送される場合には、PTPパケットの先頭に、TI Txヘッダが付加されて転送される。
【００５９】
このように、PTPパケットが異なるプロトコルで転送される場合にも、PTPパケットをラッピングして転送し、シーケンスＩＤ、originTimestamp、correctionFieldのフレーム内の位置から、これらのフィールドを適切に更新することにより、PTPの処理が可能となる。シーケンスＩＤ、originTimestamp、correctionFieldのフィールドのフレーム内位置は、適用されるプロトコルでの転送において付加されるヘッダ内に設定すればよい。
【００６０】
以上のように、PTP Packet生成部（generator)と送信部(NPU)のRTCがハードウェア動作で時刻同期しているため、PTP Packet生成時も ns オーダ、データ(PTP Packet)送出時も ns オーダのタイムスタンプを打つことができる。また、PTPパケット中の”correction Field”の補正量の揺らぎを極力抑えることができる。PTPパケット中の”correction Field”の補正量の揺らぎを抑えることにより、RTCの時刻を補正するための補正量の値が正確なものとなる。したがって、補正量が正確なるため、Grandmaster mode ノードと、Boundary clock modeノード、Ordinary clock modeノードのRTCを正確に同期させることができる。PTP Packet生成部（generator)と送信部(NPU)のRTCがハードウェア動作で時刻同期しているため、ソフトウェアで動作するRTCを使わなくて良くなる。したがって、RTC動作を実行する必要がなくなる分、CPUの処理量（時刻補正処理量）が減る。また、ハードウェア動作によって同期したRTCを使うので、従来のμsオーダからnsオーダの高精度な時刻同期を行うことができる。
【００６１】
IEEE1588 PTP には以下のような処理メカニズムと各メッセージが存在する。 
・Delay request_response メカニズム
・・Sync メッセージ
・・Follow_Up  メッセージ
・・Delay_Req  メッセージ
・・Delay_Resp   メッセージ
・Peer Delay メカニズム
・・Pdelay_Req メッセージ
・・Pdelya_Resp  メッセージ
・・Pdelay_Resp_Follow_UP  メッセージ
上記全てのメッセージのタイムスタンプ処理において本実施形態が適用できるため、 IEEE1588規格の遅延測定を高精度化し、低CPU負荷を実現できる。
【００６２】
本実施形態は、ロングホールの有線通信装置だけでなく、モバイルネットワーク(LTE)の通信装置においても適用することができる。
図１１は、OTN(Optical Transport Network)-PTPシステムに本実施形態を適用した構成例を示す図である。
【００６３】
図１１において、図５と同じ構成要素には同じ参照符号を付し、それらの説明を省略する。
図１１において、Packet生成側のRTCとOTN（最終送信）側のRTCとを、NPUのRTCと共に、ハードウェア動作により時刻同期させる。ことにより、OTN-PTPシステムにおいても、nsオーダの高精度な時刻同期を実現することができる。なお、このとき、NPU３１のRTC３８は使用せず、MAC４０では、Time Stamp処理を行わない。
【００６４】
図１１において、XFPは、10GbEthernet等で使用される光モジュールである。OTN３０のSerDesは、シリアル・パラレル変換回路である。OTN３０のMACは、PTP Timestamp機能を内蔵するMACブロックであり、PTPパケット入力時の時刻情報をPTPパケットのヘッダに付与する。RTC３９は、PTP入力パケットに対して、受信時刻情報を提供する時計ブロックである。
【００６５】
図１１の構成においては、NPU３１からOTN３０にPTPパケットを送出すると、OTN３０のMACにおいて、PTPパケットを外部に送出する時刻をPTPパケットに書き込み、XFPを経由して、PTPパケットを外部に送出する。
【符号の説明】
【００６６】
９−１〜９−４      ＣＰＵ
１０      IEEE1588 GrandMaster modeノード
１１      IEEE1588 Boundary clock modeノード
１２      IEEE1588 Ordinary clock modeノード
１３−１〜１３−３      Time management部
１４−１〜１４−４      RTC
１５−１〜１５−４      Time Stamp部
１６−１〜１６−４      回線インタフェース部(Ethernet MAC処理部) 
１７−１〜１７−３      ＰＬＬ
２０−１、２０−２      中継ノード
２５      監視制御ユニット
２６      パケットＩＦユニット
２７      スイッチユニット
２９、４８      PCIe
３０      OTN
３１      NPU
３２      監視制御FPGA
３５      PTP Packet generator
３６、３８、３９、８７      RTC
３７      PP
４０      MAC（Time Stamp機能付き）
４１、４５、４９      MAC（送受信ブロック）
４２      PCIeスイッチ
４３、６９、７８      CPU
４４、７２      DPLL
４６      PTP Slave TS mem
４７      PTP Packet Buffer
５０、５１、７７      SEL
５２      PTP flow/SeqID recognition
５３−１      PPS(1)
５３−１      PPS(2)
５４−１      SysClk(1)
５４−２      SysClk(2)
５５−１      I-LAN(1)
５５−２      I-LAN(2)
５６      L2SW
５７      SFP
５８      SerDes
６０      MCU RS422 CN
６１      PPS収集／分配ブロック
６２      位相比較部
６３      PPS SEL
６４      Shift Reg.
６５、７９      DIS
６６、８０      BWB CN
６７      NMEA処理部
６８      Internal LANブロック
７０      CAT DSP
７１      Ref CLK SEL
７３、８２      集中RTC
７４      内部発振器
７５      RTC Base Clock制御部
７６      fine grade DPLL
８１      MCU BNC CN
８５      PPS入力部
８６      TS update部
８８      Packet Gen Manager
８９      Packet Gen Timeslot/Profile Table
９０      "Sync" Packet Memory Table
９１      correctionField update部
９２      seqID update部
９３      current seqID Table
９４      Timestamp recording部
９５      Timestamp Table
９６      MUX
９７      DevID switch&remove部
９８      MAC1-4
【図１】
0005811794.tif 000004
【図３】
0005811794.tif 000005
【図４】
0005811794.tif 000006
【図５】
0005811794.tif 000007
【図６】
0005811794.tif 000008
【図７】
0005811794.tif 000009
【図８】
0005811794.tif 000010
【図９】
0005811794.tif 000011
【図１０Ａ】
0005811794.tif 000012
【図１０Ｂ】
0005811794.tif 000013
【図１０Ｃ】
0005811794.tif 000014
【図１１】
0005811794.tif 000015
【図２】
0005811794.tif 000016