説明

通信装置

【課題】高精度な時刻同期を行なうことのできる通信装置を提供する。
【解決手段】通信装置の時刻同期をPTPで実行する場合に、タイムスタンプを格納したPTPパケットを送受信する。その際、通信装置内のPTPパケット生成部にRTCを設置する。PTPパケット送出部にもRTCを設置する。そして、これらのRTCをPPS/ System CLKでハードウェアの動作により時刻同期させる。PTPパケット生成部のRTCとPTPパケット送出部のRTCが時刻同期することにより、精度のよいタイムスタンプと時刻の補正値を取得可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は、時刻同期を実施する通信装置に関する。
【背景技術】
【0002】
現在、通信機器を始めとする、産業 / AV / 計測 / 自動車関連分野において高精度な時刻同期及び周波数同期の必要性が高まっており、パケットベースによる時刻同期方式を実現する為の標準がIEEE1588で規格化されている。
【0003】
IEEE1588はEthernet(登録商標)に適用可能な時刻同期プロトコルを規定する規格である。ここではPTP(Precision Time Protocol)と呼ばれるプロトコルを定義している。これにおいては、IP(Internet Protocol)パケットもしくは、Ethernetタイプ指定のMACフレームを使用して時刻同期を行う。
【0004】
図1は、通信装置におけるIEEE1588時刻同期のためのブロック構成およびクロック構成を示す図である。
時刻情報のマスタとなるGrandMaster modeノード10では、GPS(Global Positioning System)受信機よりTOD(Time of Day:時刻情報)およびPPS(Pulse per Second)を受信し、自局ノードを標準時刻に同期させる。GrandMaster modeノード10は通信回線を介して隣接するBoundary clock modeノード11に、PTPを使って、時刻情報を伝播していく。時刻情報の中継を制御する部分が、Time Management部13−1〜13−3である。時刻情報を中継するノードをBoundary clock modeノード、時刻情報伝播の終端点ノードをOrdinary clock modeノードと呼び、これら全てのノードは、GrandMaster modeノードから順次時刻同期していく。
【0005】
各ノードでは、PTPを実施するためにRTC(Real Time Clock)14−1〜14−4、およびPTPパケットの送受信時の時刻をTime StampするTime Stamp部15−1〜15−4を、回線インタフェース部(Ethernet MAC処理部)16−1〜16−4に有している。このTime Stampの時間分解能のクロック精度で時刻同期することが可能となる。IEEE1588 PTP準拠であれば、その精度はnano-secondオーダでの時刻同期を実現することができる。
【0006】
時刻同期を行なうためには、装置の動作クロックも同期しておく必要がある。外部発振器(external PRS)からのクロック信号を、GrandMaster modeノード10に入力する。GrandMaster modeノード10のPLL(Phase Locked Loop)17−1は、この外部発振器からのクロック信号にタイミング同期した参照クロックを生成する。この参照クロックは、同期Ethernetを使って、Boundary clock modeノード11、Ordinary clock modeノード12に転送される。Boundary clock modeノード11、Ordinary clock modeノード12では、PLL17−2、17−3それぞれにおいて、タイミング同期が取られる。
【0007】
なお、PTPメッセージを生成する際のTime Stampは、回線インターフェース部16−1〜16−4を制御するCPU9−1〜9−4によってソフトウェアで動作するRTCによって生成される。
【0008】
図2は、時刻同期の手順を示すシーケンス図である。
IEEE1588 PTPには、Sync / Follow_Up / Delay_Req / Delay_Respの4種類のメッセージが存在する。これらのメッセージフィールド上に設定されたTime Stamp情報をTime serverからClientに送出する。最終的に、Clientには、図2で示されるように、それぞれの処理遅延を含んだt1〜t4の4つのタイムスタンプがそろうことになるため、これを元にTime serverからClientまでの遅延を計算し、Time serverに時刻同期する。具体的な手順を以下に示す。
【0009】
Time serverは、Clientに向かってSyncメッセージを送る。このとき、Time serveはSyncメッセージの送出時刻t1を記憶し、続いて送られるFollow_Upメッセージを使ってt1を記録するTime Stampを送る。
【0010】
Transparent clockと呼ばれる中継ノード20−1、20−2は、Syncメッセージを検出すると、受信時刻と送出時刻の差から処理遅延を計算する。この処理遅延は、続いて受信されるFollow_Upメッセージの中に追加される。
【0011】
Clientは、Syncメッセージを受信すると、受信時刻t2を記憶する。また、引き続き受信されるFollow_Upメッセージの中からt1及び処理遅延を取り出し、記憶する。
Clientは、Delay_Reqメッセージを送出し、送出時刻t3を記憶する。
【0012】
Transparent clockと呼ばれる中継ノード20−1、20−2は、Delay_Reqメッセージを検出すると、受信時刻と送出時刻の差から処理遅延を計算する。この処理遅延は、続いて逆方向から受信されるDelay_Respメッセージの中に追加される。
【0013】
Time serverは、 Delay_Reqメッセージを受信すると、受信時刻t4を記憶する。続いて送られるDelay_Respメッセージを使ってt4をあらわすTime Stampを送る。
Clientは、Delay_Respメッセージを受信すると、この中からt4及び処理遅延を取り出し、記憶する。
以上により、Clientは、タイムスタンプt1〜t4及び処理遅延を取得することが出来る。
【0014】
以下の式により、Time server-Client間の遅延のうち、transparent clockの処理遅延を除く部分を計算する。これは純粋に伝送路の遅延時間になる。
【0015】
【数1】

【0016】
この式は、Time serverからClientにSyncメッセージが送られてからDelay_Respメッセーが戻ってくるまでの時間(t4-t1)から、Client内の処理時間(t3-t2)と、往復の間の中継ノード20−1、20−2の処理遅延の合計量を減算したものを2で割った結果を示し、Time serverからClientまでの伝送路遅延となる。
【0017】
上の伝送路遅延、t1、t2、Syncメッセージに対する処理遅延を用いて、以下のように時刻の補正量を計算する。
【0018】
【数2】

【0019】
ここで、Syncの処理遅延とは、図2における、aやbで示された部分の遅延のことである。この式は、Time serverからClientまでの伝送時間から、伝送路遅延と、中継ノード20−1、20−2内の処理遅延の合計を減算したもので、Time serverのRTCとClientのRTCの時間のずれを補正量として示す。この補正量は、Client内のRTCの時刻の補正に用いられる。
【0020】
図3は、PTPメッセージに含まれるフィールドを示した図である。
transportSpecificは、ハードウェアに依存して一意に決まる値である。messageTypeは、Syncなどのメッセージタイプによって一意に決まる値を持つ。versionPTPは、メッセージ生成ノードのデータセットのportDS.versionNumber memberの値である。messageLengthは、PTPメッセージの全ビット数である。
【0021】
domainNumberは、メッセージを生成するordinary clockノードあるいはboundary clockノードのデータセットのdefaultDS.domainNumber memberの値である。flagFieldは、2バイトのうちの各ビットで、メッセージごとの意味を持つフラグである。例えば、1バイト目の1ビットは、Sync/Delay_Respメッセージを示す。correctionFieldは、滞留時間や伝送遅延などの修正値が設定される。sourcePortIdentityは、メッセージ生成ノードのデータセットのportDS.portIdentity memberを示す。sequenceIDは、Time Stampを交換するメッセージセットを管理するための値である。controlFieldは、PTPのバージョン1用ハードウェアとの互換性のために用意されたフィールドである。logMessageIntervalは、メッセージタイプによって決まる値を持つ。
【0022】
Syncメッセージのみに存在するoriginTimestampは、Syncメッセージを送信したノードのTime Stampである。
通信装置内において、IEEE 1588 時刻同期に使用されるPTPメッセージのTime Stampは、従来ソフトウェアで処理されている。
【0023】
具体的には、PTPメッセージの”Origin Time Stamp”というSyncメッセージの生成時刻に対して時刻補正を行う ”Correction Field”という領域がある。パケット生成時のタイムスタンプはCPUが実行するソフトウェアに依存したCLKを用いて処理される。そして、パケット送出時のタイムスタンプはCPUが実行するソフトウェアに依存したクロックに同期したRTC(Real Time Clock)を用いて時刻情報を更新している。
【0024】
従来技術には、スレーブ装置とマスタ装置との時刻同期を行なうものや、伝搬遅延時間変動による誤差の小さな高精度時刻同期を行なうものがある。あるいは、従来技術には、往復伝送路が非対称な経路を含むネットワークにおけるマスタとスレーブの時刻同期を行なうものや、全基地局のGPS基準時刻への時刻同期を行なうものがある。
【先行技術文献】
【特許文献】
【0025】
【特許文献1】特開2010−197320号公報
【特許文献2】特開2001−36538号公報
【特許文献3】特開2009−65579号公報
【特許文献4】特開2000−23245号公報
【発明の概要】
【発明が解決しようとする課題】
【0026】
近年、ネットワークのマルチドメイン化が進むに従い、情報量が増えていく中で、CPUの情報処理量(負荷)は今後さらに増加していく傾向にある。そのような状況の中、PTPメッセージの生成・処理はソフトウェアとRTCで実施しているため、”Correction Field”の補正量はCPUの負荷状況によって大きく揺らいでしまい、高精度な時刻同期システムを構築できなかった。
【0027】
高精度な時刻同期システムは様々な業界で必要性が高まっているが、特に、ビデオ配信システムなどのスムーズでタイムリーな通信が求められるサービスにおいては、時刻同期の誤差により発生するフレームロスは、契約ユーザや配信業者にとって大きな問題となっている。
【0028】
以下の実施形態においては、高精度な時刻同期を行なうことのできる通信装置を提供する。
【課題を解決するための手段】
【0029】
以下の実施形態の一側面における通信装置は、時刻同期用パケットを送受信することで自装置と他装置との装置間時刻同期を行なう通信装置であって、該時刻同期用パケットを生成するための第1のリアルタイムクロックと、該第1のリアルタイムクロックと時刻同期された、該時刻同期用パケットの送出時刻を取得するための第2のリアルタイムクロックとを備える。
【発明の効果】
【0030】
以下の実施形態によれば、高精度な時刻同期を行なうことのできる通信装置を提供することができる。
【図面の簡単な説明】
【0031】
【図1】通信装置におけるIEEE1588時刻同期のための構成およびクロック構成を示す図である。
【図2】時刻同期の手順を示すシーケンス図である。
【図3】PTPメッセージに含まれるフィールドを示した図である。
【図4】本実施形態の構成を示す図(その1)である。
【図5】本実施形態の構成を示す図(その2)である。
【図6】監視制御ユニットの詳細ブロック構成を示す図(その1)である。
【図7】監視制御ユニットの詳細ブロック構成を示す図(その2)である。
【図8】監視制御ユニットの全体図である。
【図9】Packet IF ユニットの監視制御FPGA内部のPTP Packet generatorのブロック構成図である。
【図10A】PTP Packet処理動作について説明する図(その1)である。
【図10B】PTP Packet処理動作について説明する図(その2)である。
【図10C】PTP Packet処理動作について説明する図(その3)である。
【図11】OTN(Optical Transport Network)-PTPシステムに本実施形態を適用した構成例を示す図である。
【発明を実施するための形態】
【0032】
以下の実施形態では、PTP (Precision Time Protocol)Packetの生成部とその送出部に、自IFユニットもしくは監視制御ユニットから送出されるPPS / System Clock に時刻同期したハードウェアのRTCをそれぞれ設置する。
【0033】
すなわち、PTP Packet生成部にRTCを設置する。PTP Packet送出部(MAC)にRTCを設置する。そして、これらのRTCをPPS(Pulse Per Second) / System CLKでハードウェアの動作により時刻同期させる。
【0034】
本構成を持つことにより、PTP Packet生成時も ns (nano second) オーダ、データ(PTP Packet)送出時も ns オーダのタイムスタンプを打つことができ、PTP Packet中の”Correction Field”の補正量の揺らぎを極力抑えることができる。すなわち、パケット生成(あるいは受信)から他装置へのパケット送出までの時間は図2の処理遅延に相当し、PTPパケットの"Crrection Field"に設定されて転送される。この処理遅延をnsオーダで正確に管理することができ、したがって、装置間での時刻同期も正確に行なえるようになる。このため、Grandmaster modeノードと、Boundary clock modeノード、Ordinary clock modeノードのRTCを正確に同期させることができる。PTP Packet生成部(generator)と送信部(NPU)のRTCがハードウェア動作で時刻同期しているため、ソフトウェアで動作するRTCを使わなくて良くなる。したがって、RTC動作を実行する必要がなくなる分、CPUの処理量が減る。また、ハードウェア動作によって同期したRTCを使うので、nsオーダで安定した高精度な時刻同期を実現することができる。
【0035】
図4及び図5は、本実施形態の構成を示す図である。
本実施形態の通信装置は、図4にあるように、監視制御ユニット(MCU)25とPacket IFユニット26、スイッチユニット27で構成されている。監視制御ユニット25とスイッチユニット27は、それぞれ、現用系と予備系が用意され、冗長化されている。
【0036】
監視制御ユニット25は、Packet IFユニット26に対し、装置全体の基本となるSystem Clock とPPS信号を送出する。
Packet IF ユニット26は、監視制御ユニット25から供給されるPPS信号と、監視制御ユニット25から供給されるSystem Clockを受信する。そして、これに基づいて、Packet IFユニット26内の監視制御FPGA(Field Programable Gate Array)とNPU(Network Processor Unit)に設置されているRTCのPTP時刻同期を実施する。また、これらに加え、Packet IF ユニット26は、PTP Packet生成時のタイムスタンプと、外部へのPTP Packet送出時のタイムスタンプの処理を行う。
【0037】
図5は、Packet IFユニット内部の詳細ブロック構成図である。
Packet IFユニットには、NPU31、及び、監視制御FPGA32が搭載されている。監視制御FPGA32にはPTP Packet Generator35とPPS/System Clockにハードウェア動作で時刻同期したRTC36が設置されている。NPU31にはPacket送出部37、40と、監視制御FPGAに搭載されているRTC36とハードウェア動作で時刻同期したRTC38とが設置されている。
【0038】
図5において、SFP57は、光モジュールである。NPU31のSerDes58は、シリアル・パラレル変換回路である。MAC40は、PTP Time Stamp機能を内蔵するMACブロックであり、パケット入力時の時刻情報をPTPパケットのヘッダに付与する。PP37は、Programable Pipelineであり、NPU31内でユーザの定義するパケット処理を実施するブロックである。MAC41は、PTPパケットの送信受信ブロックである。RTC38は、PTP入力パケットに対して、受信時刻情報を提供する時計ブロックである。PCIe29は、PCI Expressインタフェースである。
【0039】
PCIeスイッチ42は、監視制御アクセス用として使用されるスイッチである。CPU43は、IFユニット内に搭載される監視制御用プロセッサであり、入力PTPパケットのTime Stamp情報を収集し、ネットワーク経由で監視制御ユニット(MCU)25に通知するものである。SysCLK PLL制御部44は、現用系及び予備系制御ユニットから選択されたSysClockに同期した基準クロックを生成するブロックである。
【0040】
MAC45は、PTPパケットの送受信ブロックである。PTP flow/SeqID recognition52は、入力PTPパケットのフロー/シーケンス番号識別によるフィルタ処理を実施するブロックである。PTP Slave TS mem46は、PTP入力パケットのTime Stamp情報を格納するメモリである。PTP Packet Generator35は、送信PTPパケットの生成を制御するブロックであり、ハードウェアによる自立生成トリガで動作する。PTP Packet Buffer47は、送信PTPパケットデータを格納するメモリである。RTC36は、送信PTPパケットのoriginTimestamp時刻情報を提供するブロックであり、NPUのRTC38とPPS信号、クロックを共有することにより同じ時刻情報を保有する。PPS(1) 53−1,PPS(2)53−2は、MCUから入力されるPPS信号の受信ブロックであり、現用系、予備系の各々のMCUから受信する。SysClk(1) 54−1, SysClk(2)54−2は、MCUから入力されるSystem Clock信号の受信ブロックであり、現用系、予備系のMCUそれぞれから受信する。SEL50、51は、セレクタであり、現用系、予備系のいずれの信号を受信するかを選択する。I-LAN(1)55−1,I-LAN(2)55−2は、装置内LANインタフェースであり、現用系、予備系のMCUと各々接続する。L2SW56は、装置内LANスイッチである。PCIe48は、PCI Expressインタフェースである。MAC49は、装置内LANの送受信ブロックである。
【0041】
PTPパケットの送出動作を説明する。
セレクタSEL50は、MCU(監視制御ユニット)の現用系、あるいは、予備系から送出されたPPS信号を選択する。セレクタSEL51は、MCU(監視制御ユニット)の現用系、あるいは、予備系から送出されたSysClk信号を選択する。セレクタSEL51が選択したSysClk信号を元に、基準となるクロックを、SysCLK PLL制御部44で、生成する。MCUから選択したPPS信号と、SysCLK PLL制御部44で生成された基準クロックを元に、RTC36,38を時刻同期させる。PTP Packet Generator35において、PTPパケットを、ハードウェア動作によりRTC38と同期したRTC36を元に、生成する。そして、生成したPTPパケットをPTP Packet Buffer47に格納する。CPU43からのPTP Packet Generator35に対するPTPパケット送出の命令が受信されると、PTP Packet Buffer47に格納してあるPTPパケットを出力する。そのとき、送出するPTPパケットのTimestamp情報をPTP Slave TS mem46に格納する。そして、監視制御FPGA32からNPU31へPTPパケットを送出する。NPU31のPP37では、受信したデータをパイプライン処理して、MAC40にPTPパケットを転送する。MAC40では、PTPパケットを外部に送出する時刻をPTPのoriginTimestampフィールドに書き込む。ここで、この時刻を取得するRTC38は、ハードウェアの動作により、RTC36と時刻同期したものである。そして、SFPを経由して、PTPパケットを外部に送出する。
【0042】
図6及び図7は、監視制御ユニットの詳細ブロック構成を示す図である。
監視制御ユニットには、PPS信号分配処理部とSystem Clock分配処理部が搭載されている。図6は、PPS信号分配処理部の構成であり、図7は、System Clock分配処理部の構成である。
【0043】
図6において、MCU RS422 CN60は、RS−422コネクタである。GPS受信機と接続されるインタフェースであり、PPS信号受信、TOD情報などの受信が行なわれる。PPS収集/分配ブロック61の位相比較部62は、自装置のPPS信号と、冗長装置のPPS信号の位相を比較するブロックである。PPS収集/分配ブロック61のPPS SEL63は、GPS受信機からの受信PPS信号と自装置内RTC82からのPPS信号のいずれを使用するかを選択する。PPS収集/分配ブロック61のShift Reg.64は、シフトレジスタであり、System Clockの基準クロックを用いて、PPS出力位相を制御する。DIS65は、PPS信号を装置内に分配するブロックである。BWB CN66は、バックボードコネクタであり、予備系のMCUや、各Packet IFユニットにPPS信号を分配する。
【0044】
NMEA処理部67は、GPS受信機とTOD情報をやり取りするブロックである。集中RTC82は、装置内で大元のRTC時刻情報を生成するブロックである。System Clockを基準に動作しており、PTPアルゴリズムによるソフト制御によって、周波数制御、時刻制御が行なわれる。Internal LANブロック68は、レイヤ2で動作するスイッチである。CPU 69は、各IFユニットから収集されたTimestamp情報を元に、PTPアルゴリズムを実施するプロセッサである。
【0045】
MCU RS422 CN60には、GPS受信機から受信したPPS信号を入力される。PPS SEL63は、GPSからのPPS信号あるいは、集中RTC82からのPPSのどちらかを選択する。Shift Reg.64は、System Clockの基準クロックを用いて、PPS出力位相を制御する。DIS65は、PPSを装置内に分配する。
【0046】
図7において、CAT DSP70のRef CLK SEL71は、集中RTC73、内部発振器74、あるいは、各IFユニットから送出されるクロックの選択部である。CAT DSP70のDPLL72は、Ref CLK SEL71から入力されたクロックと周波数や位相ずれの無いクロックを生成するデジタルPLLである。集中RTC73は、装置内での大元のRTC時刻情報を生成するブロックである。System Clockを基準に動作しており、PTPアルゴリズムによるソフト制御によって、周波数制御、時刻制御が行なわれる。集中RTC73は、図6の集中RTC82と同じものである。RTC Base Clock制御部75のfine grade DPLL76は、高精度なデジタルPLLであり、SEL77から入力されたクロックをもとに、RTC73のベースとなるクロックを送出する。RTC Base Clock制御部75のSEL77は、内部発振器74からのクロックとCAT DSP70からのクロックのいずれかを選択するブロックである。CPU78は、各IFユニットから収集されたTimestamp情報を元に、PTPアルゴリズムを実施するプロセッサである。CPU78は、図6のCPU69と同一のものを再掲したものである。DIS79は、クロックを装置内に分配するブロックである。BWB CN80は、バックボードコネクタである。MCU BNC CN81は、GPS受信機から送られてくるクロックを受信するコネクタである。このクロックは、例えば、10MHzである。
【0047】
Ref CLK SEL71は、RTC73からのクロック、内部発振器74からのクロック、各IFユニットから送られてくるクロック、あるいは、GPS受信機からのクロックのうち、いずれかを基準クロックとして選択する。DPLL72は、選択されたクロックを元に、System Clockを生成する。DIS79は、System Clockを各IFユニットに分配する。
【0048】
図8は、監視制御ユニットの全体図である。
監視制御ユニットは、図6及び図7で説明した詳細構成を有するが、図6のPPS信号分配処理部と図7のSystem Clock分配処理部が結合された構成となる。その場合、図6の集中RTC82と図7の集中RTC73は同じもので、図6のCPU69と図7のCPU78は同じものとなっており、両処理部に共通の構成となっている。
【0049】
図9は、Packet IF ユニットの監視制御FPGA内部のPTP Packet Generatorのブロック構成図である。
監視制御ユニットのPPS入力部85とタイムスタンプ(TS)update部86との間にRTC87を設置している。このRTC87にはSecond単位[31:0]とnano-second単位[31:0]のカウンタを設けており、NPUに設置されているRTCとハードウェア動作で時刻同期を実現している。
【0050】
図9のPTP Packet Generatorは、GrandMaster modeのノードにおけるSyncパケットの生成を行なう。Packet Gen Manager88は、Syncパケットの生成制御ブロックである。100MHz基準クロックにより、ハードウェア自立トリガによるタイムスロットベースの生成タイミングを制御する。Packet Gen Timeslot/Profile Table89は、PTPセッションIDごとに設定されているSyncパケットの生成プロファイル情報を格納しているテーブルである。"Sync" Packet Memory Table90は、Syncパケットデータを格納するテーブルである。
【0051】
Sec counterは、時刻情報の秒カウンタである。PPS信号によってインクリメントされるカウンタであり、SyncパケットのoriginTimestamp情報に使用される。NanoSec counterは、時刻情報のナノ秒カウンタである。100MHz信号によってインクリメントされ、PPS信号によってリセットされるカウンタである。SyncパケットのoriginTimestamp情報に使用される。TS update部86は、SyncパケットのoriginTimestamp領域を現在の時刻情報に更新するブロックである。correctionField update部91は、SyncパケットのcorrectionField領域を更新するブロックである。seqID update部92は、SyncパケットのシーケンスID領域を更新するブロックである。current seqID Table93がカウントするシーケンスID番号を用いて、シーケンスID領域を更新する。current seqID Table93は、PTPセッションIDごとに管理されているSyncパケットの現在のシーケンスID番号を格納しているメモリであり、アクセスされる毎に自動的に1だけインクリメントされる。Timestamp recording部94は、Syncパケット生成に対して、PTPセッションID,シーケンスIDごとに、originTimestamp情報、correctionField情報を格納するブロックである。Timestamp Table95は、PTPセッションID、シーケンスIDごとに、originTimestamp情報、correctionField情報を格納するメモリである。MUX96は、ハードウェア自立生成パケットと、他のパケットの合流処理を行う。DevID switch&remove部97は、デバイスID情報を元に、行き先をスイッチするブロックである。デバイスID情報は、このブロックを通過後、削除される。MAC1-4 98は、送信パケットの行き先であり、図9では、4ポートを想定している。入力PTPパケットのTimestamp情報を収集し、LAN経由でMCUに伝達する。
【0052】
ブロック99は、ハードウェアで構成され、originTimestampの値からcorrectionFieldの値を得る処理を実行する。最初に、8バイトのoriginTimestampを、LSB(Least Significant Bit)から6バイト分抽出する。次に、originTimestampをバイトコードからバイナリデータに変換する。全てのビットを反転し、1だけインクリメントし、LSBから2バイト分originTimestampを拡張する。これは、8バイトからなるoriginTimestampから6バイト取り出して処理したので、2バイト分0を付け足すということである。そして、その値をcorrectionFieldに書き込む。
【0053】
まず、Packet Gen Manager88は、100MHz基準クロックにより、Syncパケットを生成する。TS update部86がSyncパケットのoriginTimestamp領域を更新する。correctionField update部91が、SyncパケットのCorrection Field領域を更新する。seqID update部92がSyncパケットのシーケンスID領域を更新する。Timestamp recording部94がPTPセッションID,シーケンスIDごとに、originTimestamp情報、correctionField情報を格納する。"DevID" switch&remove部97は、デバイスID情報を元に行き先を選択し、出力する。
【0054】
図10A〜図10Cは、PTP Packet処理動作について説明する図である。
なお、図10Aにおいて、図5、図9と同じ構成要素には同じ参照符号を付し、それらの説明を省略する。
【0055】
PTP Packet処理においては、まず、CPUから監視制御FPGAにあるPacket Buffer47に予めPTP メッセージを書き込んでおく。PTP メッセージ生成命令がCPUからPacket生成制御部(図10Aにおいては不図示)に送出される。NPUのRTC38とハードウェア動作により時刻同期しているRTC36を元に、TS update部86でTime Stamp処理を行う。Correction Field update部91でCorrection Fieldの更新を行う。Sequence ID update部92でシーケンスIDの更新を行う。
【0056】
監視制御FPGAのMACIF部45からNPUのMACIF部41へデータが送信される。NPUのタイムスタンプ制御部TSAにおいて、監視制御FPGAのRTC36とハードウェア動作により時刻同期したRTC38の時刻情報を元に、Correction Fieldの更新を行う。NPUのMACIF部40において、UDPのCheck SUMとFCS(Frame Check Sequence)の更新を行う。そして、NPUの外部にデータを送信する。
【0057】
図10B及び図10Cには、各部におけるPTPパケットのフレームフォーマットが示されている。図10Bの上段のフレームフォーマットは、図10AのMACIF部40から外部にパケットを送出する、あるいは、外部からパケットを受信する際のフォーマットである。図10Bの下段のフレームフォーマットは、図10AのPP部37と内部メモリスイッチとの間のパケットを送受する場合のフォーマットである。図10Cは、MACIF部41と45の間でパケットを送受する場合のフォーマットである。
【0058】
外部に送出するPTPパケットは、MACヘッダ、IPv4ヘッダ(IPv6ヘッダ、あるいは、これは無くてもよい)、UDPチェックサム(あるいは、これは無くてもよい)、シーケンスID、originTimestamp、correctionField、MAC FCSからなっている。これがMACIF部45、41の間で転送される場合には、Meta dataが先頭に付加され、MACフレームに埋め込まれて転送される。また、NPU内部で転送される場合には、PTPパケットの先頭に、TI Txヘッダが付加されて転送される。
【0059】
このように、PTPパケットが異なるプロトコルで転送される場合にも、PTPパケットをラッピングして転送し、シーケンスID、originTimestamp、correctionFieldのフレーム内の位置から、これらのフィールドを適切に更新することにより、PTPの処理が可能となる。シーケンスID、originTimestamp、correctionFieldのフィールドのフレーム内位置は、適用されるプロトコルでの転送において付加されるヘッダ内に設定すればよい。
【0060】
以上のように、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オーダの高精度な時刻同期を行うことができる。
【0061】
IEEE1588 PTP には以下のような処理メカニズムと各メッセージが存在する。
・Delay request_response メカニズム
・・Sync メッセージ
・・Follow_Up メッセージ
・・Delay_Req メッセージ
・・Delay_Resp メッセージ
・Peer Delay メカニズム
・・Pdelay_Req メッセージ
・・Pdelya_Resp メッセージ
・・Pdelay_Resp_Follow_UP メッセージ
上記全てのメッセージのタイムスタンプ処理において本実施形態が適用できるため、 IEEE1588規格の遅延測定を高精度化し、低CPU負荷を実現できる。
【0062】
本実施形態は、ロングホールの有線通信装置だけでなく、モバイルネットワーク(LTE)の通信装置においても適用することができる。
図11は、OTN(Optical Transport Network)-PTPシステムに本実施形態を適用した構成例を示す図である。
【0063】
図11において、図5と同じ構成要素には同じ参照符号を付し、それらの説明を省略する。
図11において、Packet生成側のRTCとOTN(最終送信)側のRTCとを、NPUのRTCと共に、ハードウェア動作により時刻同期させる。ことにより、OTN-PTPシステムにおいても、nsオーダの高精度な時刻同期を実現することができる。なお、このとき、NPU31のRTC38は使用せず、MAC40では、Time Stamp処理を行わない。
【0064】
図11において、XFPは、10GbEthernet等で使用される光モジュールである。OTN30のSerDesは、シリアル・パラレル変換回路である。OTN30のMACは、PTP Timestamp機能を内蔵するMACブロックであり、PTPパケット入力時の時刻情報をPTPパケットのヘッダに付与する。RTC39は、PTP入力パケットに対して、受信時刻情報を提供する時計ブロックである。
【0065】
図11の構成においては、NPU31からOTN30にPTPパケットを送出すると、OTN30のMACにおいて、PTPパケットを外部に送出する時刻をPTPパケットに書き込み、XFPを経由して、PTPパケットを外部に送出する。
【符号の説明】
【0066】
9−1〜9−4 CPU
10 IEEE1588 GrandMaster modeノード
11 IEEE1588 Boundary clock modeノード
12 IEEE1588 Ordinary clock modeノード
13−1〜13−3 Time management部
14−1〜14−4 RTC
15−1〜15−4 Time Stamp部
16−1〜16−4 回線インタフェース部(Ethernet MAC処理部)
17−1〜17−3 PLL
20−1、20−2 中継ノード
25 監視制御ユニット
26 パケットIFユニット
27 スイッチユニット
29、48 PCIe
30 OTN
31 NPU
32 監視制御FPGA
35 PTP Packet generator
36、38、39、87 RTC
37 PP
40 MAC(Time Stamp機能付き)
41、45、49 MAC(送受信ブロック)
42 PCIeスイッチ
43、69、78 CPU
44、72 DPLL
46 PTP Slave TS mem
47 PTP Packet Buffer
50、51、77 SEL
52 PTP flow/SeqID recognition
53−1 PPS(1)
53−1 PPS(2)
54−1 SysClk(1)
54−2 SysClk(2)
55−1 I-LAN(1)
55−2 I-LAN(2)
56 L2SW
57 SFP
58 SerDes
60 MCU RS422 CN
61 PPS収集/分配ブロック
62 位相比較部
63 PPS SEL
64 Shift Reg.
65、79 DIS
66、80 BWB CN
67 NMEA処理部
68 Internal LANブロック
70 CAT DSP
71 Ref CLK SEL
73、82 集中RTC
74 内部発振器
75 RTC Base Clock制御部
76 fine grade DPLL
81 MCU BNC CN
85 PPS入力部
86 TS update部
88 Packet Gen Manager
89 Packet Gen Timeslot/Profile Table
90 "Sync" Packet Memory Table
91 correctionField update部
92 seqID update部
93 current seqID Table
94 Timestamp recording部
95 Timestamp Table
96 MUX
97 DevID switch&remove部
98 MAC1-4

【特許請求の範囲】
【請求項1】
時刻同期用パケットを送受信することで自装置と他装置との装置間時刻同期を行なう通信装置であって、
該時刻同期用パケットを生成するための第1のリアルタイムクロックと、
該第1のリアルタイムクロックと時刻同期された、該時刻同期用パケットの送出時刻を取得するための第2のリアルタイムクロックと、
を備えることを特徴とする通信装置。
【請求項2】
前記装置間時刻同期は、Precision Time Protocol(PTP)にしたがって実行されることを特徴とする請求項1に記載の通信装置。
【請求項3】
前記第1のリアルタイムクロックと前記第2のリアルタイムクロックの時刻同期は、PPS(Pulse Per Second)信号とシステムクロックの2つの信号を用いて、ハードウェアの動作で実現されることを特徴とする請求項2に記載の通信装置。
【請求項4】
前記通信装置には、外部と信号を送受するためのインターフェイスユニットと、該インターフェイスユニットを制御する監視制御ユニットが設けられ、
前記第1のリアルタイムクロックと前記第2のリアルタイムクロックは、該インターフェイスユニットに装備され、
該インターフェイスユニット内のPPS信号と、該監視制御ユニットから供給されるPPS信号の選択回路を備えることを特徴とする請求項3に記載の通信装置。
【請求項5】
前記時刻同期用パケットの生成処理において、該時刻同期用パケットのデータ内容を保持するメモリを備えることを特徴とする請求項1に記載の通信装置。
【請求項6】
前記時刻同期用パケットの送出時刻の取得後にその補数を計算して、装置間時刻同期のための補正時間を取得することを特徴とする請求項1に記載の通信装置。
【請求項7】
前記時刻同期用パケットはPTPメッセージであって、シーケンスIDのカウンタ値をシーケンスID領域に挿入し、該カウンタ値をインクリメントすることによりPTPメッセージ内のシーケンスIDを更新させることを特徴とする請求項2に記載の通信装置。
【請求項8】
前記時刻同期用パケットはPTPメッセージであって、生成するPTP メッセージにおいて、originTimestamp領域のフレーム内位置情報を、装置内転送用プロトコルのフレームヘッダにおいて設定することにより、originTimestamp領域の情報更新を可能とすることを特徴とする請求項2に記載の通信装置。
【請求項9】
前記時刻同期用パケットはPTPメッセージであって、生成するPTP メッセージにおいて、correctionField領域の位置情報を、装置内転送用プロトコルのフレームヘッダにおいて設定することにより、correctionField領域の情報更新を可能とすることを特徴とする請求項2に記載の通信装置。
【請求項10】
前記時刻同期用パケットはPTPメッセージであって、生成するPTP メッセージにおいて、sequence ID領域の位置情報を、装置内転送用プロトコルのフレームヘッダにおいて設定することにより、sequence ID領域の情報更新を可能とすることを特徴とする請求項2に記載の通信装置。

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate

【図11】
image rotate

【図2】
image rotate