(57)【特許請求の範囲】
【請求項１】
通信装置であって、
アプリケーション処理を行うメインシステム部と、
物理層を介して通信処理を行う通信システム部とを有し、
前記メインシステム部は、前記物理層の状態変化を検出する検出手段、および、前記検出手段が前記物理層における状態変化を検出した場合、前記通信システム部へ物理層監視制御に関する指示を行う指示手段を有し、
前記通信システム部は、前記指示手段の指示に基づき、前記物理層監視制御を行うことを特徴とする通信装置。
【請求項２】
前記指示手段は、前記物理層監視制御の開始を前記通信システム部に指示し、前記開始の指示の後、所定時間が経過すると、前記物理層監視制御の終了を前記通信システム部に指示することを特徴とする請求項1に記載された通信装置。
【請求項３】
前記通信システム部は、前記開始が指示された後、前記終了が指示されるまでの期間、前記物理層監視制御を繰り返し実行することを特徴とする請求項2に記載された通信装置。
【請求項４】
前記指示手段は前記物理層監視制御の実行を前記通信システム部に指示し、前記通信システム部は前記実行の指示に対して前記物理層監視制御を実行することを特徴とする請求項1に記載された通信装置。
【請求項５】
前記検出手段は、前記物理層から所定の割り込みを受信することによって、前記物理層の状態変化を検出することを特徴とする請求項１から請求項４の何れか一項に記載された通信装置。
【請求項６】
前記指示手段から前記通信システム部への指示は、前記通信システム部が有する記憶部に配置されたフラグを介して行われることを特徴とする請求項1から請求項5の何れか一項に記載された通信装置。
【請求項７】
アプリケーション処理を行うメインシステム部、および、物理層を介して通信処理を行う通信システム部を有する通信装置の制御方法であって、
前記メインシステム部の検出手段が、前記物理層の状態変化を検出し、
前記検出手段が前記物理層の状態変化を検出した場合、前記メインシステム部の指示手段が、前記通信システム部へ物理層監視制御に関する指示を行い、
前記通信システム部が、前記指示手段の指示に基づき、前記物理層監視制御を行うことを特徴とする制御方法。
【請求項８】
コンピュータを請求項1から請求項6の何れか一項に記載された通信装置の各部および各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置におけるPHY監視制御に関する。
【背景技術】
【０００２】
通信装置が通信を行うために、ネットワークケーブルをローカルエリアネットワーク(LAN)に接続するIEEE802.3やEthernet（登録商標）などの規格が存在する。これら規格は10Mbps、100Mbps、1000Mbpsなどの通信速度、半二重(half duplex)、全二重(full duplex)といった通信モードを規定する。通信速度や通信モードは、静的に設定されるか、IEEE802.3uにより標準化されたオートネゴシエーション機能を使用して対向通信装置との通信条件が一致するように設定される。
【０００３】
通信中に自通信装置または対向通信装置において通信速度、通信モードが変更される可能性があり、ネットワークケーブルの挿抜によりリンクアップ、リンクダウンといったリンク状態が変化する可能性もある。このような問題を解決するために、通信速度、通信モード、リンク状態といった物理層(PHY)の状態を監視し、必要に応じてメディアアクセス制御(MAC)層の制御（以下、MAC制御）を行うPHY監視制御がある。
【０００４】
市販されているMAC/PHYデバイスには、PHYの状態を示すレジスタやメモリを備え、PHYの状態が変化した場合に割り込みを通知するものもある。それ故、一つのシステムでアプリケーション処理、プロトコル処理、PHY監視制御を行う場合、PHY監視制御について、次に示す方法が採用される。
・PHYの状態を示すレジスタやメモリをポーリングしてPHYの状態を監視し、PHYの状態変化があった場合は必要に応じてMAC制御を行う。
・MAC/PHYデバイスからPHYの状態変化に関する割り込みを受け、PHYの状態を示すレジスタやメモリを参照して必要に応じてMAC制御を行う。
【０００５】
メインシステム部とTOE (TCP/IP offload engine)などの通信システム部から構成される通信装置において上記の方法を採用する場合、次の問題がある。
・メインシステム部がPHY監視制御を行うと、データ送受信を行う通信システム部との間でMAC/PHYデバイス（以下、MAC/PHY部）のアクセスに関する排他処理が必要になる。
・割込制御の処理速度は遅く、時間的コストが高いため、TOEなど高速化を目的とする通信システム部は割込制御が行えない構成をとる場合がある。
・通信システム部における継続的なポーリングは、スループットの低下やデータの損失を引き起こす場合がある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】The IEEE 802.3 Working Group develops standards for Ethernet based LANs (http://www.ieee802.org/3/)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、割込制御が行えない通信システム部にも適用可能であり、スループットの低下やデータの損失を防ぐことができる物理層(PHY)監視制御の実現を目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる通信装置は、アプリケーション処理を行うメインシステム部と、物理層を介して通信処理を行う通信システム部とを有し、前記メインシステム部は、前記物理層の状態変化を検出する検出手段、および、前記検出手段が前記物理層における状態変化を検出した場合、前記通信システム部へ物理層監視制御に関する指示を行う指示手段を有し、前記通信システム部は、前記指示手段の指示に基づき、前記物理層監視制御を行うことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、割込制御が行えない通信システム部にも適用可能であり、スループットの低下やデータの損失を防ぐことができる物理層(PHY)監視制御を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】PHY監視制御のシーケンスを説明する図。
【図２】ポーリングのシーケンスを説明する図。
【図３】実施例の通信装置の構成例を示すブロック図。
【図４】対向通信装置と通信中にPHYの状態変化が生じた場合の通信装置のシーケンス例を示す図。
【図５】メインシステム部が通信システム部にPHY監視制御を指示する処理を説明するフローチャート。
【図６】通信システム部のPHY監視制御に関する処理を説明するフローチャート。
【図７】対向通信装置と通信中にPHYの状態変化が生じた場合の通信装置のシーケンス例を示す図。
【図８】メインシステム部が通信システム部にPHY監視制御の実行を指示する処理を説明するフローチャート。
【図９】通信システム部のPHY監視制御に関する処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明にかかる実施例の通信装置を図面を参照して詳細に説明する。なお、以下では、有線LANを用いる例を説明するが、通信形態はこれに限られるものではなく、その技術思想の範囲内で種々の変更が可能である。
【００１３】
［PHY監視制御およびポーリングの概要］
図1によりPHY監視制御のシーケンスを説明する。図1(a)は物理層(PHY)の状態変化時にメインシステム部がMAC/PHY部から割り込みを受けて物理層監視制御（PHY監視制御）を行うシーケンスを示す。
【００１４】
通信装置のデータ受信シーケンスにおいては、通信システム部がMAC/PHY部からデータを受信し(S101)、メインシステム部が通信システム部からデータを受信する(S102)。また、データ送信シーケンスにおいては、メインシステム部が通信システム部へデータを送信し(S103)、通信システム部がMAC/PHY部へデータを送信する(S104)。つまり、データ送受信に関わるMAC/PHY部のアクセスは通信システム部が行う。
【００１５】
PHYの状態が変化すると、メインシステム部は、MAC/PHY部から割り込みを受け(S105)、MAC/PHY部のPHY監視制御を行う(S106)。この場合、メインシステム部と通信システム部の両方がMAC/PHY部にアクセスすることになり、両システムの間でMAC/PHY部のアクセスに関する排他制御が必要になる。
【００１６】
図1(b)はPHYの状態変化時に通信システム部がMAC/PHY部から割り込みを受けてPHY監視制御を行うシーケンスを示す。この場合、MAC/PHY部のアクセスに関する排他制御は不要であるが、通信システム部に割り込みを受ける機構が必要になる。しかし、割込制御が行えない通信システム部において、このシーケンスは実現不可能である。
【００１７】
図2によりポーリングのシーケンスを説明する。図2(a)はメインシステム部がポーリングを行うシーケンスを示す。この場合、メインシステム部はPHY監視制御のためにMAC/PHY部をアクセスし、通信システム部はデータ送受信のためにMAC/PHY部をアクセスする。従って、両システム間でMAC/PHY部のアクセスに関する排他制御が必要になる。さらに、ポーリング(S107、S108、S109)によりデータ送受信の機会が減少し、スループットの低下やデータの損失を引き起こす可能性がある。
【００１８】
図2(b)は通信システム部がポーリングを行うシーケンスを示す。通信システム部がデータ送受信およびPHY監視制御のためにMAC/PHY部をアクセスする。従って、MAC/PHY部のアクセスに関する排他制御は不要であるが、ポーリング(S107、S108、S109)によりデータ送受信の機会が減少し、スループットの低下やデータの損失を引き起こす可能性がある。
【００１９】
また、市販されている多くのMAC/PHYデバイスは、PHYの状態を示すレジスタやメモリにアクセスするための機構として低速なシリアル通信インタフェイスを採用する。このようなシリアル通信インタフェイスはIEEE802.3で規定されるMDIO (management data input/output)と呼ばれる。
【００２０】
［装置の構成］
図3のブロック図により実施例の通信装置100の構成例を示す。なお、通信装置100は、各種アプリケーションを実行し、必要に応じて他の装置と通信を行うことが可能である。
【００２１】
●メインシステム部
メインシステム部110は、主に、アプリケーション処理、通信システム部120の制御、および、MAC/PHY部130の物理層(PHY)の状態変化の検出を行う。
【００２２】
制御部111は、CPUを有し、RAMをワークメモリとしてROMなどに格納されたプログラムを実行し、メインシステム部110の構成を実現したり制御したりする。記憶部112は、制御部111が実行するプログラムなどの各種情報を記憶するROMやワークメモリとして利用されるRAMなどを有する。
【００２３】
App部113は、制御部111の処理によって実現される各種アプリケーションであり、ユーザへ各種機能を提供し、必要に応じて、通信システムドライバ115、通信システム部120、MAC/PHY部130を介して対向通信装置と通信を行う。入出力部114は、ユーザから各種入力を受け付け、LCDやLEDによる表示、スピーカなどによる音声出力によって各種情報を出力する。通信システムドライバ115は、通信システム部120の各種制御を行い、PHYに状態変化があるとMAC/PHY部130から割り込みを受けてPHYの状態変化検出を行う。
【００２４】
●通信システム部
通信システム部120は、主にプロトコル処理やPHY監視制御といった通信処理を行う。
【００２５】
制御部121は、CPUを有し、RAMをワークメモリとしてROMなどに格納されたプログラムを実行し、通信システム部120の各構成を実現したり制御したりする。記憶部122は、制御部121が実行するプログラムなどの各種情報を記憶するROMやワークメモリとして利用されるRAMなどを有す。記憶部122は、さらに、プロトコルスタック部123やPHY監視MAC制御部124が使用する通信パラメータなどの各種情報を記憶する。
【００２６】
プロトコルスタック部123は、ネットワーク通信プロトコルスタックでTCP/IPなどのプロトコル処理を行う。PHY監視MAC制御部124は、通信システムドライバ115の指示に基づき、MAC/PHY部130のPHYの状態を確認し、必要に応じてMAC制御、PHY監視制御をそれぞれ行う。
【００２７】
●MAC/PHY部
MAC/PHY部130は、MAC層、PHY層の処理を実現するMAC/PHYデバイスである。メインシステム部110、通信システム部120、MAC/PHY部130は、システムバス101を介して互いに接続されている。
【００２８】
［通信装置のシーケンス］
●メインシステム部がPHY監視制御の開始と終了を指示する例
図4により対向通信装置と通信中にPHYの状態変化が生じた場合の通信装置100のシーケンス例を示す。
【００２９】
MAC/PHY部130は、PHYの状態変化が発生するとメインシステム部110に状態変化通知として割り込みを通知する(S201)。状態変化通知を受けたメインシステム部110は、割り込み要因を判断し、通信システムドライバ115によりPHYの状態変化が生じたことを検知する。
【００３０】
なお、PHYの状態変化は、通信速度（10Mbps、100Mbps、1000Mbps等）、通信モード（半二重、全二重）、リンク状態（リンクアップ、リンクダウン）などが変わると発生する。例えばネットワークケーブルの挿抜の場合は、ネットワークケーブルを通信装置100に挿した時、通信装置100からケーブルを抜いた時のそれぞれにおいてPHYの状態変化が発生する。
【００３１】
通信システムドライバ115は、通信システム部120のPHY監視MAC制御部124に対して、PHY監視制御の開始を指示する(S202)。例えば、通信システム部120の記憶部122にPHY監視制御指示フラグを配置して、当該フラグの値が‘0’以外の間は通信システム部120がPHY監視制御を行い、‘0’の間は通信システム部120がPHY監視制御を行わないようにする。つまり、通信システムドライバ115は、PHY監視制御の開始指示として、PHY監視制御指示フラグの値を‘0’から‘0’以外に変更し、PHY監視MAC制御部124は当該フラグを参照する。なお、記憶部122の代わりに、メインシステム部110の記憶部112など、その他のメモリやレジスタにPHY監視制御の実行を指示する情報を格納してもよい。
【００３２】
PHY監視MAC制御124は、PHY監視制御指示フラグの値が‘0’以外の間は繰り返し、MAC/PHY部130のPHYの状態を示すレジスタやメモリを参照する。そして、必要に応じてMAC/PHY部130に対し、送受信の有効/無効の切り換え設定、通信速度や通信モード設定などのMAC/PHY制御を行う(S203、…、S204)。
【００３３】
所定の時間が経過すると、通信システムドライバ115は、PHY監視制御指示フラグの値を‘0’以外から‘0’に変更し、PHY監視制御の終了を指示する(S205)。この指示に従い、PHY監視MAC制御部124は、PHY監視制御を終了する。
【００３４】
図5のフローチャートによりメインシステム部110が通信システム部120にPHY監視制御を指示する処理を説明する。なお、図5に示す処理は、メインシステム部110がPHYの状態変化を検知する度に実行される。
【００３５】
PHYの状態変化が発生すると、メインシステム部110は、MAC/PHY部130から状態変化通知として割り込みを受け、割り込み要因を判断し、通信システムドライバ115によりPHYの状態変化が生じたことを検知する(S301)。通信システムドライバ115は、所定時間を計測するタイマをスタートし(S302)、通信システム部120にPHY監視制御の開始を指示する(S303)。
【００３６】
次に、通信システムドライバ115は、スタートしたタイマがタイムアウトしたか否かを判定し、タイムアウトするまでタイマの監視を続ける(S304)。なお、タイムアウト前にMAC/PHY部130から新たな割り込みを受信した場合は、新たな割り込みを無視してもよいし、処理をステップS302に戻して、タイマを再スタートしてもよい。そして、タイムアウトすると、通信システムドライバ115は、通信システム部120にPHY監視制御の終了を指示する(S305)。
【００３７】
図6のフローチャートにより通信システム部120のPHY監視制御に関する処理を説明する。なお、図6に示す処理は、イベントドリブンで動作している通信システム部120が送信イベント、受信イベントなどの各種イベントをチェックする際に実施するPHY監視制御イベントをチェックする度に実行される。
【００３８】
PHY監視MAC制御部124は、PHY監視制御指示フラグの値が‘0’以外か否か、つまりPHY監視制御が有効か否かを判定する(S401)。PHY監視制御が無効の場合は処理を終了して他のイベントチェックを行う。また、PHY監視制御が有効の場合、PHY監視MAC制御部124は、MAC/PHY部130のPHYの状態を示すレジスタやメモリを参照し、必要に応じて、MAC/PHY部130に対してMAC制御、PHY監視制御をそれぞれ行う(S402)。
【００３９】
このように、PHYの状態が変化した場合、通信システムドライバ115がPHY監視制御指示フラグの値を変更してPHY監視制御の有効/無効を切り換える。PHY監視MAC制御部124は、PHY監視制御指示フラグの値が有効を示す期間、PHY監視制御を実行する。
【００４０】
●メインシステム部がPHY監視制御の実行を指示する例
図7により対向通信装置と通信中にPHYの状態変化が生じた場合の通信装置100のシーケンス例を示す。
【００４１】
MAC/PHY部130は、PHYの状態変化が発生するとメインシステム部110に状態変化通知として割り込みを通知する(S501)。状態変化通知を受けたメインシステム部110は、割り込み要因を判断し、通信システムドライバ115によりPHYの状態変化が生じたことを検知する。
【００４２】
通信システムドライバ115は、通信システム部120のPHY監視MAC制御部124に対して、PHY監視制御の実行を指示する(S502)。この指示は、例えば上記と同様に、通信システムドライバ115がPHY監視制御指示フラグの値を‘0’以外にすることで行えばよい。
【００４３】
PHY監視MAC制御124は、PHY監視制御指示フラグの値が‘0’以外の場合はMAC/PHY部130のPHYの状態を示すレジスタやメモリを参照する。そして、必要に応じてMAC/PHY部130に対し、送受信の有効/無効の切り換え設定、通信速度や通信モード設定などのMAC/PHY制御を行う(S503)。
【００４４】
図8のフローチャートによりメインシステム部110が通信システム部120にPHY監視制御の実行を指示する処理を説明する。なお、図8に示す処理は、メインシステム部110がPHYの状態変化を検知する度に実行される。
【００４５】
PHYの状態変化が発生すると、メインシステム部110は、MAC/PHY部130から状態変化通知として割り込みを受け、割り込み要因を判断し、通信システムドライバ115によりPHYの状態変化が生じたことを検知する(S601)。通信システムドライバ115は、通信システム部120にPHY監視制御の実行を指示する(S602)。
【００４６】
図9のフローチャートにより通信システム部120のPHY監視制御に関する処理を説明する。なお、図9に示す処理は、イベントドリブンで動作している通信システム部120が送信イベント、受信イベントなどの各種イベントをチェックする際に実施するPHY監視制御イベントをチェックする度に実行される。
【００４７】
PHY監視MAC制御部124は、PHY監視制御指示フラグの値が‘0’以外か否か、つまりPHY監視制御の実行が指示されたか否かを判定する(S701)。PHY監視制御の実行が指示されていない場合は処理を終了して他のイベントチェックを行う。また、PHY監視制御の実行が指示された場合、PHY監視MAC制御部124は、MAC/PHY部130のPHYの状態を示すレジスタやメモリを参照する。そして、必要に応じて、MAC/PHY部130に対してMAC制御、PHY監視制御をそれぞれ行う(S702)。その後、PHY監視MAC制御部124は、PHY監視制御指示フラグの値に‘0’を設定して、PHY監視制御の実行完了をセットする(S703)。
【００４８】
このように、PHYの状態が変化した場合、通信システムドライバ115がPHY監視制御指示フラグの値を変更してPHY監視制御の実行を指示する。PHY監視MAC制御部124は、PHY監視制御指示フラグの値がPHY監視制御の実行を示す場合、一度だけPHY監視制御を実行する。
【００４９】
上記では、メインシステム部110がPHY監視制御の開始と終了を指示する例と、メインシステム部110がPHY監視制御の実行を指示する例を説明した。上記処理において、メインシステム部110がPHYの状態変化を割り込みで検知する状態変化検知を行うことにより、割込制御に対応しない通信システム部120に対応することができる。これはTOEなど高速化を目的とする通信システム部120においては、割り込み通知を受けて処理を行う割込制御が、処理速度が遅く時間的コストが高いため実施できない構成を取る場合があるためである。
【００５０】
また、データ送受信処理、PHY監視制御といったMAC/PHY部130へのアクセスを通信システム部120に一元化することにより、メインシステム部110と通信システム部120の間の上述した排他制御は不要である。さらに、PHY監視制御の指示をPHY監視制御指示フラグを介した時間的コストが低い処理により行うことで、ポーリング動作などで問題になるスループットの低下やパケットロス（データの損失）を防ぐことができる。
【００５１】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
0006004743.tif 000002
【図２】
0006004743.tif 000003
【図３】
0006004743.tif 000004
【図４】
0006004743.tif 000005
【図５】
0006004743.tif 000006
【図６】
0006004743.tif 000007
【図７】
0006004743.tif 000008
【図８】
0006004743.tif 000009
【図９】
0006004743.tif 000010