本発明の一実施形態について説明すれば、以下の通りである。
図1は、本実施の形態の半二重通信デバイス100の構成を示す回路図である。図2は、本実施の形態の半二重通信デバイス100を用いた半二重通信システムの概略を示す模式図である。
本実施の形態の半二重通信デバイス100は、一例として赤外線通信デバイスを適用しており、以下では、図2に示すように、半二重通信システム1Aおよび1Bとの間で、赤外線通信が行われる場合として説明する。但し、これに限らず、通信装置が複数存在する場合であってもよいし、赤外線以外の光、または無線などの全ての媒体を介した通信にも適用される。また、半二重通信システム1Aおよび1Bは、通信機能を備える電子機器などに搭載されている(図示せず)。
また、図2に示すように、半二重通信デバイス100には、制御装置としてのコントローラIC10から、電源が供給される配線、GNDが接続される配線、および、送信/受信データが入出力される配線が備えられている。コントローラIC10は、上記配線を介して、半二重通信デバイス100の起動、停止、および動作を制御している。
さらに、本実施の形態の半二重通信システムでは、コントローラIC10が有している入出力ポートのうち単一の入出力ポート11のみを使用するだけで、半二重通信デバイス100を制御し、双方向通信を可能にしている。これについては、具体的に後述する。
半二重通信デバイス100は、図1に示すように、入出力端子101、送信用発光ダイオード102、受信用フォトダイオード103を備え、さらに内部回路として、モード切替手段としての送信入力回路104、送信ドライバ回路105、受信アンプ回路106、駆動停止手段としての受信部電源107、モード切替手段としての3ステートバッファ108、信号ゲート109、タイマa110、タイマb111、信号出力手段としての送信/受信切替回路112、抵抗113、および、レベル検知手段としての衝突検知回路114を備えている。
なお、信号ゲート109、送信ドライバ回路105、および、送信用発光ダイオード102は送信部を構成しており、受信用フォトダイオード103、受信アンプ回路106、および、受信部電源107は受信部を構成している。
また、半二重通信デバイス100は、送信と受信とを交互に行う半二重通信を行い、入出力端子101から入力される送信信号を送信するときを送信モード(言い換えると、入出力端子101から送信信号が入力されるのを待機する状態である入力待機モード)と、相対する半二重通信デバイスからの受信信号を受信するときを受信モード(言い換えると、相対する通信デバイスからの受信信号が入力されるのを待機する状態である受信待機モード)との通信モードを有している。
入出力端子101は、半二重通信デバイス100の外部にある制御装置、つまり本実施の形態ではコントローラIC10との信号の入出力が行なわれる端子であり、送信信号も受信信号も共通して入出力される端子である。よって、省線化している。入出力端子101は、コントローラIC10の入出力ポート11と配線(図示せず)を介して接続されている。
送信用発光ダイオード102は、自身に電流が流れると発光するダイオードであり、本実施の形態では、通信する相手側に通信信号を送信するための送信用として用いられている。送信用発光ダイオード102は、送信ドライバ回路105の出力側に接続されている。送信ドライバ回路105は、入力側が信号ゲート109に接続されており、信号ゲート109から出力される信号が入力されると、電圧を出力して送信用発光ダイオード102を駆動させる。
受信用フォトダイオード103は、光を検出すると電流が流れるダイオードであり、本実施の形態では、送信通信側から送られてくる赤外線の光を検出し、通信信号を受信するための受信用として用いられている。受信用フォトダイオード103は、受信アンプ回路106の入力側に接続されている。受信アンプ回路106は、出力側が3ステートバッファ108に接続されており、受信用フォトダイオード103からの信号を増幅して、2値出力化して3ステートバッファ108に出力する。
送信入力回路104は、入出力端子101に入力される信号が送信信号としての入力か否かを識別する回路である。送信/受信切替回路112から出力される信号レベルに応じて、送信信号としての入力か否かを識別し、送信信号と識別される入力信号のみが出力され、送信信号ではないと識別されると信号は出力されない。入力側が入出力端子101と送信/受信切替回路112とに接続されており、出力側が信号ゲート109とタイマa110とに接続されている。
受信部電源107は、受信アンプ回路106に電源、およびバイアスを与える電源回路である。送信/受信切替回路112から出力される信号レベルに応じて、受信アンプ回路106に電源、およびバイアスを与えるかが決定されるようになっている。入力側が送信/受信切替回路112に接続されており、出力側が受信アンプ回路106に接続されている。
3ステートバッファ108は、受信アンプ回路106の出力信号をバッファして入出力端子101に信号を出力するバッファである。送信/受信切替回路112から出力される信号レベルに応じて、信号を通すか否かが決められ、信号を通すことが禁止されると、信号は出力されない。入力側が受信アンプ回路106に接続されており、出力側が3ステートバッファ108の出力インピーダンスを調整する抵抗113を介して、入出力端子101に接続されている。
信号ゲート109は、送信入力回路104からの出力信号を送信ドライバ回路105に通すかどうかを決めるゲートである。送信/受信切替回路112から出力される信号レベルに応じて、信号を通すか否かが決められ、信号を通すことが禁止されると、信号は出力されない。入力側が送信入力回路104に接続されており、出力側が送信ドライバ回路105に接続されている。
タイマa110は、信号が入力され、入力が終了した直後から、t1時間経過後に信号を出力するように設定されているタイマである。詳細には、入力信号の終了を検出した直後から、タイマはスタートする。入力側が送信入力回路104に接続されており、出力側が送信/受信切替回路112に接続されている。
タイマb111は、信号が入力され、入力が終了した直後から、t2時間待った後に信号を出力するように設定されているタイマである。詳細には、入力信号の終了を検出した直後から、タイマはスタートする。入力側が受信アンプ回路106に接続されており、出力側が送信/受信切替回路112に接続されている。
送信/受信切替回路112は、自身に入力される信号から、半二重通信デバイス100の送信モードまたは受信モードを判定して、送信モードまたは受信モードの切り替えを制御する回路であり、ここで設定される通信モードが半二重通信デバイス100において保持される。送信/受信切替回路112は、詳細には後述するが、2値化された、第1信号としてのHighの信号と第2信号としてのLowの信号とのうち、どちらかの信号を出力する。入力側が、タイマa110、タイマb111、および衝突検知回路114に接続されており、出力側が、送信入力回路104、受信部電源107、3ステートバッファ108、および信号ゲート109に接続されている。
衝突検知回路114は、入出力端子101において、半二重通信デバイス100からの出力信号と、半二重通信デバイス100への入力信号とが衝突しているか否かを検知する回路である。つまりは、信号衝突していることを検知すると信号が出力され、信号衝突を検知しないと信号は出力されない。入力側が入出力端子101と、抵抗113を介して3ステートバッファ108とに接続されており、出力側が送信/受信切替回路112に接続されている。
ここで、信号ゲート109、送信/受信切替回路112、および、衝突検知回路114の一例を、図3を参照しながら説明する。図3は、半二重通信デバイス100の内部回路の一構成例を示す回路図である。
まず、送信/受信切替回路112の構成について説明する。
送信/受信切替回路112は、ゲート201および202、フリップフロップ203、並びに、スタート回路204を備えている。
ゲート201は、入力側が、フリップフロップ203と衝突検知回路114のゲート207とに接続されており、出力側が、ゲート202と信号ゲート109のフリップフロップ210とに接続されている。入力側の2つの信号が、2つともHighで入力されるときのみ信号を通過させるゲートである。ゲート201からフリップフロップ210に出力される信号は、本実施の形態では、送信許可/禁止信号として用いられ、送信許可/禁止信号がHighの場合、送信が禁止される送信禁止モードであると設定し、送信許可/禁止信号がLowの場合、送信が許可される送信許可モードであると設定している。
ゲート202は、入力側が、スタート回路204、タイマb111、およびゲート201に接続されており、出力側がフリップフロップ203に接続されている。入力側の3つの信号が、1つでもHighで入力されると信号を通過させるゲートである。
フリップフロップ203は、入力信号を記憶し、次の信号が加えられるまでは現状の入力信号に応じた状態を保持する回路である。リセット入力がゲート202に接続され、セット入力がタイマa110に接続されており、出力側が、送信入力回路104、受信部電源107、3ステートバッファ108、およびゲート201に接続されている。リセット入力に信号が入力されると、第2信号としてのLowの信号が出力され、セット入力に信号が入力されると、第1信号としてのHighの信号が出力される。この出力される信号は、本実施の形態では、送受信識別信号として用いられ、送受信識別信号がHighの場合、半二重通信デバイス100が受信モードであると設定し、送受信識別信号がLowの場合、半二重通信デバイス100が送信モードであると設定している。
スタート回路204は、半二重通信デバイス100の電源投入時、すなわちコントローラIC10から電源が供給されると、パルス電圧を出力する回路であり、図4(a)に構成の一例を示す。図4(a)は、スタート回路204の一構成例を示す回路図である。図4(b)は、電源投入後の、時間経過とスタートパルス電圧との関係を示すグラフであり、縦軸は電圧、横軸は時間を示す。
スタート回路204は、図4(a)に示すような回路で簡単に構成することが可能である。また、図4(b)に示すように、電源投入時のみスタートパルス電圧が出力され、時間の経過とともに減少するので、電源投入時以外、パルス電圧が内部回路に影響を及ぼすことはない。
信号ゲート109は、ゲート208および209、並びに、フリップフロップ210を備えている。ゲート208は、入力側が送信入力回路104に接続されており、出力側がフリップフロップ210に接続されている。Highの信号が入力されるとLowの信号が出力され、Lowの信号が入力されるとHighの信号が出力されるゲートである。
フリップフロップ210は、機能は上述したフリップフロップ203と同様であり、リセット入力がゲート208に接続されており、セット入力がゲート201に接続されており、出力側がゲート209に接続されている。リセット入力に信号が入力されると、Highの信号が出力され、セット入力に信号が入力されると、Lowの信号が出力される。詳細には、セット入力に入力される信号は、ゲート201から出力される送信許可/禁止信号であり、送信許可/禁止信号がHighすなわち送信禁止モードであると識別される場合には、Lowの信号がゲート209に出力される。
ゲート209は、入力側が送信入力回路104とフリップフロップ210とに接続されており、出力側が送信ドライバ回路105に接続されている。入力側の2つの信号が、2つともHighで入力されるときのみ信号を通過させるゲートである。よって、送信禁止モードであると識別される場合では、フリップフロップ210から出力される信号はLowであるので、送信入力回路104から信号が出力されている状態であっても、信号は通過することができない。
衝突検知回路114は、第1比較器としての比較器205、第2比較器としての比較器206、および、ゲート207を備えている。比較器205および206は、入力側が入出力端子101と3ステートバッファ108とに接続されており、出力側がゲート207に接続されている。
比較器205および206は、2つの閾値レベルが設定された比較器である。本実施の形態では、一例として、比較器205には、電源電圧の1/2よりも高く、且つ、電源電圧よりも低い第1の閾値レベルが設定され、比較器206には、0電位よりも高く、且つ、電源電圧の1/2よりも低い第2の閾値レベルが設定されている。
ここで、比較器205および206の一例を、図5を参照しながら説明する。図5は、比較器205および206の一構成例を示す回路図である。
比較器205および206は、図5に示すように、CMOS素子でインバータを構成している。この構成の場合、PチャンネルMOSおよびNチャンネルMOSの、ゲート長とゲート幅の比とを調節すれば、容易に閾値を設定することが可能となる。例えば、比較器205を高い閾値に、比較器206を低い閾値に設定するとき、この2つの閾値間の入力レベルの信号が入ったときのみ、2値化した信号が比較器205および206からそれぞれ出力される。
ゲート207は、入力側が比較器205および206に接続されており、出力側がゲート201に接続されている。入力側の2つの信号が、2つともHighで入力されるときのみ信号を通過させるゲートである。ゲート207から出力される信号は、衝突検知信号として用いられる。
よって、衝突検知回路114は、2つの閾値間の入力レベルの信号が入ったとき、入出力端子101において、半二重通信デバイス100からの出力信号と、半二重通信デバイス100への入力信号とが衝突していると検知し、衝突検知信号を出力する回路である。なお、衝突検知信号を出力する詳細な動作については、後述する。
次に、本実施の形態の半二重通信デバイス100の動作を、図1〜3,6,および7を参照しながら説明する。本実施の形態では、一例として、図2に示す半二重通信システム1Aおよび1B間で通信が行なわれる場合を説明し、半二重通信システム1A側をA局、半二重通信システム1B側をB局とする。
図6は、A局およびB局の間で、通信が行われる場合の通信状態遷移を示す図である。図7は、図6のときのコントローラIC10の動作を示すフローチャートである。
最初に、半二重通信デバイス100の入出力端子101に信号を入出力するコントローラIC10の動作について、図7を参照しながら説明する。
まず、コントローラIC10は、半二重通信デバイス100に電源が投入された時点で、入出力ポート11を、信号を出力する出力モードに変更して(ステップS1)、半二重通信デバイス100に信号を送出することができるようにしておく。
次いで、コントローラIC10は、送信すべきデータ、すなわち送信信号があるか否かを判別する(ステップS2)。送信信号があれば、送信信号を入出力ポート11から入出力端子101に送信する(ステップS3)。そして、コントローラIC10は、続けて送信信号があるか否かを判別する(ステップS4)。
ここで、送信信号があれば、再度送信信号を入出力ポート11から入出力端子101に送信し(ステップS3)、送信信号がある限り、ステップS4およびS3を繰り返す。一方、送信信号がなくなれば、コントローラIC10は、t1時間以内に、入出力ポート11を入力モードに変更する(ステップS6)。
一方、ステップS2において、送信信号がなければ、コントローラIC10は、起動信号を入出力ポート11から入出力端子101に出力する(ステップS5)。次いで、コントローラIC10は、t1時間以内に、入出力ポート11を入力モードに変更する(ステップS6)。
その後、コントローラIC10は、t3時間内に、入出力ポート11に受信するデータ、すなわち受信信号が入力されたか否かを判別する(ステップS7)。受信信号が入力されていれば、その都度、コントローラIC10は、入出力端子101から出力される受信信号を入出力ポート11から入力する(ステップS8)。そして、コントローラIC10は、続けて受信信号が入力されたか否かを判別する(ステップS9)。
ここで、受信信号が入力されていれば、再度、入出力端子101からの受信信号を入出力ポート11から入力し(ステップS8)、受信信号がある限り、ステップS9およびS8を繰り返す。一方、受信信号が入力されなくなれば、コントローラIC10は、t2時間待った後に、入出力ポート11を出力モードに変更する(ステップS10)。
そして、コントローラIC10は、送信信号があるか否かを判別する(ステップS11)。送信信号があれば、送信信号を入出力ポート11から入出力端子101に送信する(ステップS3)。一方、送信信号がなければ、コントローラIC10は、動作を終了する。
一方、ステップS7において、t3時間の間に、受信信号が入力されない場合、コントローラIC10は入出力ポート11を出力モードに変更して(ステップS12)、パルス信号を入出力ポート11から入出力端子101に出力する(ステップS13)。その後、コントローラIC10は、動作を終了する。
以上のように、コントローラIC10は、入出力ポート11の出力/入力モードの切り替えと、信号の入出力を行っている。これにより、半二重通信デバイス100では、コントローラIC10から送信信号が入力され、コントローラIC10に受信信号が出力されている。
次に、A局およびB局の間で通信が行われる場合の、半二重通信デバイス100の動作について説明する。図6に示すように、動作説明の便宜上、仮に、最初に送信側となる局をA局、最初に受信側となる局をB局とする。もちろん、どちらの局に使用する通信用デバイスも同じ半二重通信デバイス100であり、最初に送信側や受信側になるかは、コントローラIC10側が一意に決める。
また、コントローラIC10は、両局共に、上述した図7を参照して説明した動作を行う。さらに、本実施の形態では、特定または専用の通信プロトコルではなく、基本的なデータ転送手順を有している通信プロトコルであればよく、限定しない。
まず、両局とも、コントローラIC10が、半二重通信デバイス100に電源を供給する。
半二重通信デバイス100では、コントローラIC10から電源が投入されると、スタート回路204によって、スタートパルス電圧が出力される。このスタートパルス電圧が、ゲート202に入力され、ゲート202からフリップフロップ203のリセット入力に信号が出力される。
信号がフリップフロップ203のリセット入力に入力されると、フリップフロップ203はリセットされ、Lowの信号すなわち送受信識別信号が出力される。フリップフロップ203の送受信識別信号がLowの場合、半二重通信デバイス100が送信モードであると識別される。
このとき、3ステートバッファ108は、Lowの送受信識別信号が入力されて、ハイインピーダンス状態となり、信号が出力不可能な状態になるので、入出力端子101から信号が出力されることはない。
また、Lowの送受信識別信号は、受信部電源107にも入力される。Lowの送受信識別信号が入力された受信部電源107は、受信アンプ回路106の駆動を停止させる。
さらに、Lowの送受信識別信号は、送信入力回路104にも入力される。Lowの送受信識別信号が入力された送信入力回路104は送信許可状態となり、信号が出力可能な状態になる。よって、内部回路の送信許可状態と、半二重通信デバイス100の送信モードとが一致する。
以上のように、半二重通信デバイス100に電源投入後の、送受信が行なわれる前の初期状態では、半二重通信デバイス100は、送信モード、言い換えれば、コントローラIC10からの出力信号が入力されるのを待機する入力待機モードとなる。
したがって、半二重通信デバイス100が、受信モード、言い換えれば、相対する局からの受信信号が入力されるのを待機する状態である受信待機モードとなって、常時相手側からの送信信号を受信し損なわないように監視することにより、電力が消費するのを抑制することが可能となる。
また、この段階では、両局とも、コントローラIC10は入出力ポート11を、信号を出力する出力モードに変更して(ステップS1)、半二重通信デバイス100に信号を送出できるようにしておく。
次に、最初にA局が送信側と、B局が受信側と設定しているので、A局からの通信信号を受信させるために、B局を受信待機モードにさせる。
B局では、コントローラIC10は、送信するデータがないので(送信するデータがある場合は、送信側に設定される)(ステップS2)、起動信号を半二重通信デバイス100に出力する(ステップS5)。この起動信号は、送信信号と同等レベルの信号であるが、半二重通信デバイス100の入力待機/受信待機モードを切り替えるためのみに使用される信号である。よって、起動信号は、できる限り短いパルスであることが好ましい。
なお、半二重通信デバイス100では、起動信号が送信信号と同等レベルの信号であるので、入出力端子101、送信入力回路104、および信号ゲート109を介して、送信ドライバ回路105に信号が入力されることによって、送信ドライバ回路105が送信用発光ダイオード102を駆動させてしまい、B局から通信信号(本例では光信号)が出てしまう。しかしながら、相対するA局は、受信モードではなく送信モードのため、通信信号は無視される。
また、B局の半二重通信デバイス100では、入出力端子101、および送信入力回路104を介して、タイマa110にも起動信号が入力されることによって、起動信号の入力終了直後からタイマがスタートする。
詳細には、入出力端子101に入力された起動信号が送信入力回路104に入力され、送信入力回路104からの出力信号が信号ゲート109に出力されるとともに、タイマa110にも出力されており、タイマa110は信号が入力終了した直後からタイマをスタートさせる。
タイマa110は、タイマがスタートしてからt1時間経過後に信号を出力するように設定されているので、t1時間経過後に、信号が送信/受信切替回路112のフリップフロップ203のセット入力に出力される。セット入力に信号が入力されることによって、フリップフロップ203がセットされて、送受信識別信号がHighとなり、半二重通信デバイス100が受信モードに遷移する。
このとき、送信入力回路104は、Highの送受信識別信号が入力されて、送信禁止状態となり、信号が出力不可能な状態になる。
また、Highの送受信識別信号は、受信部電源107にも入力される。Highの送受信識別信号が入力された受信部電源107は、受信アンプ回路106に電源、およびバイアスを与え、駆動させる。
さらに、Highの送受信識別信号は、3ステートバッファ108にも入力される。Highの送受信識別信号が入力された3ステートバッファ108は、ハイインピーダンス状態から、受信許可状態に変わり、信号が出力可能な状態になる。よって、内部回路の受信許可状態と、半二重通信デバイス100の受信モードとが一致する。
以上のように、半二重通信デバイス100では、t1時間経過後に信号を出力するように設定されているタイマa110からの出力信号が、フリップフロップ203のセット入力に入力されることによって、フリップフロップ203がHighの送受信識別信号を出力するので、t1時間経過後に、送信モードから受信モードに自動的に切り替えることが可能となる。
このとき、半二重通信デバイス100が受信モードとなっても、コントローラIC10の入出力ポート11が出力モードのままであると、コントローラIC10から半二重通信デバイス100に出力される信号と、半二重通信デバイス100からコントローラIC10に出力される信号との信号衝突の虞がでてくるので、信号衝突を避ける必要がある。
そこで、B局では、半二重通信デバイス100が送信モードから受信モードに遷移するt1時間以内に、コントローラIC10は、入出力ポート11を入力モードに変更する(ステップS6)。次に、信号衝突が発生する虞のあるt1時間の設定方法について説明する。
タイマa110で設定されるt1時間は、図8に示すように、半二重通信システムで使用する半二重通信プロトコルにて定められる最大符号間隔Tmaxよりも長く設定させる(t1>Tmax)。図8は、半二重通信プロトコルにて定められる最大符号間隔Tmaxを示す図である。
t1>Tmaxとすることにより、送信信号伝送中にt1時間が経過して、通信モードが切り替わってしまうことを防止することが可能となる。また、t1時間は、半二重通信システムで使用する半二重通信プロトコルにて定められる、受信終了から次の送信を許可されるまでの最小待ち時間Tminよりも短く設定させる(Tmin>t1)。次に、最小待ち時間Tminについて説明する。
一般的に、無線を媒体にする通信デバイスでは、自機からの送信出力に比べて、受信入力が圧倒的に小さい信号となってしまう。これに対して、図9に示すように、送信中の自機からの信号が受信部に入り込み、受信部のアンプを飽和させてしまう(エコーバック現象)ことが知られている。図9は、通信デバイスのエコーバック現象を示す模式図である。
よって、エコーバック現象が発生するような通信デバイスを使用する半二重通信プロトコルでは、全ての局に対して、受信終了から次の送信を行うまでの間に、一定以上の待ち時間を設けることが義務付けられている。この一定以上の待ち時間は最小値Tminで定義され、最小ターンアラウンドタイムなどと呼ばれる。それゆえ、通信デバイスでは、自機の送信直後から一定時間待ってからでないと、受信可能状態にならない。
したがって、t1時間を最小待ち時間Tminよりも小さく設定させることで、相手局の受信終了(すなわち自局の送信終了)後、相手局の送信開始よりも前に、自局を受信モードにすることが可能となり、相手局からの送信信号を受信し損なわないようにすることが可能となる。
一方、A局では、コントローラIC10は、送信信号があるので(ステップS2)、半二重通信デバイス100に送信信号を送信し(ステップS3)、B局に通信信号が送信される。そして、B局では、半二重通信デバイス100がA局から送信された通信信号を受信して、コントローラIC10に送出し、コントローラIC10がこの信号を受信する(ステップS8)。
以上のように、B局の半二重通信デバイス100が、Tmin>t1>Tmaxが設定されている状態で、t1時間経過後に、送信モードから受信モードに自動的に切り替えられるので、信号衝突を避けながら、A局からB局への通信を成立させることが可能となる。
次に、A局では、コントローラIC10は、続けて送信信号があれば(ステップS4)、再度データ信号を半二重通信デバイス100に送信する(ステップS3)。
その後、A局では、コントローラIC10からの送信信号の出力が終了する(ステップS4)とともに、半二重通信デバイス100では、送信信号は入出力端子101、および送信入力回路104を介して、タイマa110にも入力されているので、送信信号入力終了直後からタイマがスタートする。
詳細には、入出力端子101に入力された送信信号が送信入力回路104に入力され、送信入力回路104からの出力信号が信号ゲート109に出力されるとともに、タイマa110にも出力されており、タイマa110は信号が入力され、入力が終了した直後からタイマをスタートさせる。
次いで、上述したB局のときと同様に、t1時間経過後に、タイマa110から信号がフリップフロップ203に出力され、フリップフロップ203から出力される送受信識別信号がHighとなり、半二重通信デバイス100は受信モードに遷移するので、送信モードから受信モードに切り替えられる。
また、同様に、送信入力回路104は送信禁止状態となり、受信部電源107は受信アンプ回路106を駆動させ、3ステートバッファ108は受信許可状態となるので、内部回路の受信許可状態と、半二重通信デバイス100の受信モードとが一致する。
また、同様に、A局では、半二重通信デバイス100が送信モードから受信モードに遷移するt1時間以内に、コントローラIC10は、入出力ポート11を入力モードに変更する(ステップS6)。
一方、B局では、コントローラIC10は、続けて受信信号があれば(ステップS9)、再度データ信号を受信する(ステップS8)。
その後、B局では、コントローラIC10への受信信号の出力が終了する(ステップS9)とともに、半二重通信デバイス100では、通信信号を受信した受信用フォトダイオード103からの信号が、受信アンプ回路106を介して、3ステートバッファ108に出力されるとともに、タイマb111にも出力されているので、受信信号受信終了直後からタイマがスタートする。
タイマb111は、スタートしてからt2時間経過後に信号を出力するように設定されているので、t2時間経過後に、信号が送信/受信切替回路112のゲート202に出力される。そして、ゲート202からの出力信号がフリップフロップ203のリセット入力に入力されることによって、フリップフロップ203がリセットされて、送受信識別信号がLowとなり、半二重通信デバイス100が送信モードに遷移する。
このとき、3ステートバッファ108は、受信許可状態から、Lowの送受信識別信号が入力されて、ハイインピーダンス状態となり、信号が出力不可能な状態になる。
また、Lowの送受信識別信号は、受信部電源107にも入力される。Lowの送受信識別信号が入力された受信部電源107は、受信アンプ回路106の駆動を停止させる。
さらに、Lowの送受信識別信号は、送信入力回路104にも入力される。この場合、Lowの送受信識別信号が入力された送信入力回路104は、送信禁止状態から、送信許可状態となり、信号が出力可能な状態になる。よって、内部回路の送信許可状態と、半二重通信デバイス100の送信モードとが一致する。
以上のように、半二重通信デバイス100では、t2時間経過後に信号を出力するように設定されているタイマb111からの出力信号が、フリップフロップ203のリセット入力に入力されることによって、フリップフロップ203がLowの送受信識別信号を出力するので、t2時間経過後に、受信モードから送信モードに自動的に切り替えることが可能となる。
このとき、半二重通信デバイス100が送信モードとなる前に、コントローラIC10の入出力ポート11が出力モードに変更されると、コントローラIC10から半二重通信デバイス100に出力される信号と、半二重通信デバイス100からコントローラIC10に出力される信号との信号衝突の虞がでてくるので、信号衝突を避ける必要がある。
そこで、B局では、半二重通信デバイス100が受信モードから送信モードに遷移するt2時間経過後に、コントローラIC10は、入出力ポート11を出力モードに変更する(ステップS10)。次に、信号衝突が発生する虞のあるt2時間の設定方法について説明する。
タイマb111で設定されるt2時間は、上記t1時間と同様に、図8に示すように、半二重通信システムで使用する半二重通信プロトコルにて定められる最大符号間隔Tmaxよりも長く設定させる(t2>Tmax)。t2>Tmaxとすることにより、受信信号伝送中にt2時間が経過して、通信モードが切り替わってしまうことを防止することが可能となる。
また、t2時間は、t1時間よりも長く設定させる(t2>t1)。t2>t1とすることにより、相手局の送信終了(すなわち自局の受信終了)後、相手局の受信待機モード遷移よりも後に、自局が送信可能となるため、相手局が受信待機モードになっていないのに送信を開始してしまうことを防止することが可能となる。
次いで、B局では、半二重通信デバイス100の入力待機モード設定後、コントローラIC10は送信信号があれば(ステップS11)、半二重通信デバイス100に送信信号を送出し(ステップS3)、A局に通信信号が送信される。そして、A局では、半二重通信デバイス100がB局から送信された通信信号を受信して、コントローラIC10に送出し、コントローラIC10がこの信号を受信する(ステップS8)。
以上のように、A局の半二重通信デバイス100が、t2>t1>Tmaxが設定されている状態で、t2時間経過後に、受信待機モードから入力待機モードに自動的に切り替えられるので、信号衝突を回避しながら、B局からA局への通信を成立させることが可能となる。なお、B局のコントローラIC10に送信信号がなければ(ステップS11)、通信動作は終了される。
以上に示すように、上記の送信/受信モードを交互に繰り返すことによって、A局からB局への通信、および、B局からA局への通信が成立するので、A局およびB局間で、半二重双方向通信を実現することが可能となる。
したがって、本実施の形態の半二重通信デバイス100は、送信/受信切替回路112が、送信信号入力終了のt1時間後に信号を出力するタイマa110からの出力信号と、受信信号入力終了のt2時間後に信号を出力するタイマb111からの出力信号とに応じて、HighまたはLowの送受信識別信号を出力するフリップフロップ203を備えるので、送信/受信切替回路112が出力する送受信識別信号によって、半二重通信デバイス100の送信モードと受信モードとを自動的に切り替えることが可能となる。
また、相手局へ送信する送信信号、および、相手局から受信する受信信号のみで通信モードを切り替えることが可能となり、通信モード切替用の専用信号を必要とせず、特別にソフトウェアまたはハードウェアで構成される信号を解析する解析部も必要としない。さらに、特別な通信規制を設けていないので、特定または専用の通信プロトコルを必要とせずに、1つの入出力端子101と単一の入出力ポート11のみとの使用で半二重通信デバイス100が制御され、双方向通信が可能となっている。
以上により、本実施の形態の半二重通信デバイス100は、特定の通信プロトコルを必要とせずに、ソフトウェアまたはハードウェアで構成される信号解析部を追加することなく、自動的に送信/受信モードを切り替えて通信を行うことが可能となる。
ところで、上記通信シーケンスでは、半二重通信デバイス100はデータ送信してから、t1時間経過後に、必ず受信モードになってしまう。このため、通信が完了した場合や、何らかの都合で通信を中断させたい場合であっても、最後に送信した局側の半二重通信デバイス100およびコントローラIC10は受信モードになっている。受信モードでは、常時相手局側からの送信信号を受信し損なわないように監視するので、ずっと電力を消費し続けてしまう。これに対応すべく、本実施の形態の半二重通信デバイス100では、受信待機モードの半二重通信デバイス100を強制的に送信モードに遷移させる。この方法を、図1〜3,6,および7を参照しながら、説明する。
図3に示すように、B局では、コントローラIC10がデータ送信終了後(ステップS4)、半二重通信デバイス100は、t1時間経過後に受信モードになっている。このとき、B局では、半二重通信デバイス100の送受信識別信号はHighであり、3ステートバッファ108は受信許可状態となっている。また、コントローラIC10の入出力ポート11は、入力モードに切り替えてある(ステップS6)。
ここで、B局では、半二重通信デバイス100が受信モードになってから、t3時間の間、受信信号が入ってこない場合(ステップS7)、コントローラIC10は入出力ポート11を出力モードに切り替えて(ステップS12)、パルス信号を半二重通信デバイス100に送出する(ステップS13)。
t3時間は、一方の局が受信モードに入ってから、他方の局で送信を開始するまでの時間マージンとなるものであり、受信モード時の許容電力消費量が許すかぎり、長くしておくことが好ましい。時間マージンは、t2時間の設定時において、t1時間よりも長くすることで、すでに最小限の確保をしているため、t3時間はt2時間とt1時間との差以上は確保する必要がある。
コントローラIC10からパルス信号が出力された半二重通信デバイス100では、3ステートバッファ108は受信許可状態となっているにもかかわらず、コントローラIC10からの信号が入ってくるため、入出力端子101で信号衝突が発生する。
この信号衝突によるコントローラIC10、または、半二重通信デバイス100への過電流を最小限に抑えるために、衝突検知回路114が信号衝突を検出して、信号衝突を回避させる。以下に、衝突検知回路114での信号衝突の検出動作について詳細に説明する。
半二重通信デバイス100では、通常の通信信号受信状態では、受信信号は3ステートバッファ108を介して、入出力端子101に出力されるとともに、送信入力回路104および衝突検知回路114にも出力されている。しかし、通常の通信信号受信状態すなわち受信モード時には、送受信識別信号はHighであるので、送信入力回路104は送信禁止状態となっており、信号は出力されない。よって、相手側に通信信号を出力しない。
半二重通信デバイス100が受信待機モードとなってからt3時間の間、受信信号が入っていないと判断したコントローラIC10は、半二重通信デバイス100にパルス信号を出力する。このとき、コントローラIC10からのパルス信号が入力された半二重通信デバイス100では、3ステートバッファ108は受信許可状態となっているにもかかわらず、コントローラIC10からの信号が入ってくるため、入出力端子101で信号衝突が起こる。
そこで、衝突検知回路114は、自身に入力される信号すなわち入出力端子101の信号を所定の2つの閾値レベルで判別して2値化し、信号衝突を識別すると衝突検知信号をゲート201に出力する。ゲート201には、衝突検知回路114から出力される衝突検知信号と、送受信識別信号とが入力される。
そして、送受信識別信号がHigh(受信モード)、且つ、衝突状態(衝突検知信号がHighで出力されている状態)であれば、信号がゲート201および202を通され、フリップフロップ203のリセット入力に入力される。信号が入力されたフリップフロップ203は、即座にリセットされて、送受信識別信号がLowとなり、半二重通信デバイス100は送信モードに遷移する。
また、Lowとなった送受信識別信号は、3ステートバッファ108にも入力され、3ステートバッファ108は受信許可状態から、ハイインピーダンス状態に変わり、信号を通さなくなる。よって、入出力端子101での信号衝突を即座に解消させることが可能となる。
ここで、入出力端子101での信号衝突を識別する手法について説明する。
半二重通信デバイス100が受信信号をコントローラIC10に送出しているときにも、3ステートバッファ108からの出力信号は常時衝突検知回路114に入力されており、通常の信号受信中においても衝突検知回路114の入力レベルは遷移している。このため、入力信号から通常の信号受信状態を衝突状態と検知しないようにする必要がある。
通常の信号受信状態すなわち受信モードでは、コントローラIC10の入出力ポート11は入力モードとなっており、ハイインピーダンス状態である。よって、入出力端子101の電圧は、3ステートバッファ108の出力電圧そのもの、すなわちほぼ電源電圧かほぼ0電位となっている。また、通常の信号送信状態すなわち送信モードでは、入出力端子101の電圧は、コントローラIC10の入出力ポート11の出力電圧であり、やはりほぼ電源電圧かほぼ0電位となる。
一方、衝突状態では、半二重通信デバイス100が受信モードでありながら、コントローラIC10の入出力ポート11は出力モードとなっており、入出力ポート11から信号が出力されているため、入出力端子101の電圧は、3ステートバッファ108の出力電圧とコントローラIC10の入出力ポート11の出力電圧の差を、それぞれの出力インピーダンスの値で分圧した値(コントローラIC10の出力インピーダンスと抵抗113の抵抗値とで分圧した値)となる。
仮に、コントローラIC10の出力インピーダンスと抵抗113の抵抗値とが等しいとすると、コントローラIC10の出力電圧が電源電圧、3ステートバッファ108の出力電圧が0電位のときには、入出力端子101の電圧は電源電位の1/2となる。
よって、入出力端子101には、ほぼ電源電圧かほぼ0電位、そして、電源電位の1/2の3つの状態しか存在しないことになり、つまりは、衝突検知回路114に入力される信号の入力レベルはほぼ電源電圧、ほぼ0電位、および、電源電位の1/2の3つの状態しか存在しないことになる。それゆえ、衝突検知回路114は、入出力端子101の3つの状態の電圧のうち、入出力端子101の電圧が電源電位の1/2の状態を検出すれば、信号衝突を検知することが可能となる。
以上により、衝突検知回路114は、電源電圧の1/2よりも高く、且つ、電源電圧よりも低い第1の閾値レベルが設定される比較器205と、0電位よりも高く、且つ、電源電圧の1/2よりも低い第2の閾値レベルが設定される比較器206とを備えることによって、入出力端子101の電圧を比較器205および206にて比較し、第1の閾値レベルより低く、且つ、第2の閾値レベルより高い場合、すなわち2つの閾値の間にある場合の信号のみを検出して、信号を出力するようにすれば、信号衝突を正確に検知することが可能となる。
また、半二重通信デバイス100が受信モードである場合、送信入力回路104は送信禁止状態となっており、信号ゲート109は、送信入力回路104からの出力信号は入力されない状態となっている。
この状態で入出力端子101にコントローラIC10からのパルス信号が入ると、信号衝突を検知して衝突検知回路114から信号が出力され、送信/受信切替回路112のゲート201を通して、信号ゲート109のフリップフロップ210のセット入力に入力されることによって、フリップフロップ210はセットされ、出力信号はLowとなる。よって、ゲート209は、信号を通さない。
そして、同時に、送信/受信切替回路112のゲート201の出力信号は、ゲート202を介して、フリップフロップ203のリセット入力にも入力されることによって、フリップフロップ203はリセットされ、送受信識別信号はLowとなり、半二重通信デバイス100が送信モードに遷移する。よって、送信入力回路104は送信許可状態となる。また、このLowの送受信識別信号が、再度ゲート201に入力されて、ゲート201の出力がLowになるため、フリップフロップ210のセット信号はLowとなってしまう。
しかしながら、次の入出力端子101への立下り信号が来ない限り(リセット入力に信号が入力されない限り)、フリップフロップ210のセット状態は保持されるので、フリップフロップ210の反転出力はLowのままの状態が続く。
よって、上記t3時間経過後に、コントローラIC10から半二重通信デバイス100に出力されるパルス信号は、送信信号と同等レベルの信号であるが、信号ゲート109のゲート209が信号を通さない。したがって、ゲート209は通信信号のための信号を送出しない、すなわち、パルス信号は通信信号として送信させる構成をしていないので、パルス信号は、衝突検知をさせて受信モードから送信モードへ切り替えるための信号であることがわかる。
また、信号ゲート109にて信号がくい止められ、送信ドライバ回路105へ信号が入力されないので、送信ドライバ回路105、および送信用発光ダイオード102を駆動させずに済み、無駄な消費電力を抑制することが可能となる。
また、入出力端子101での信号衝突は、通常の通信シーケンスではありえないため、この信号を検知した半二重通信デバイス100は、送信/受信切替回路112のフリップフロップ203を再度セットしないようにすることで、受信モードに遷移しないようにする。
詳細には、半二重通信デバイス100が受信モード時に衝突検知回路114から信号が出力されると、その出力信号が送信/受信切替回路112のゲート201、ゲート202を介して、フリップフロップ203のリセット入力に入力されることによって、フリップフロップ203はリセットされ、送受信識別信号はLowとなり、半二重通信デバイス100が送信モードに遷移する。
ここで、この受信モードから送信モードへの切り替えは、パルス信号を出力して信号衝突させることによって、強制的になされたものであるので、本来であれば、信号衝突が回避されれば元のモードに戻すべきである。しかしながら、半二重通信デバイス100は、フリップフロップ203を再度セットして、受信モードに遷移しないように構成されることによって、そのまま送信モードを維持する。
これにより、B局では、半二重通信デバイス100を受信モードに戻すことなく、強制的に送信モードに遷移させることが可能となることになる。また、A局では、最後の受信動作後、半二重通信デバイス100はt2時間経過後に送信モードになっており、A局およびB局ともに送信モードという、半二重通信デバイス100の電源投入時と同じ状態にすることが可能となる。
以上により、本実施の形態の半二重通信デバイス100では、受信モードであっても、非通信時は、t3時間経過後に、自動的に送信モードとなるので、受信モード時に要する消費電力を低減させることが可能となる。また、自動的に送信モードとなるので、半二重通信デバイス100を停止させるための特別な構成(例えば、端子、および停止制御部など)を備える必要はなく、アイドル電流をほぼ0にすることが可能となる。
また、図10に示すように、送信ドライバ回路105は、MOSのスイッチ回路を構成してもよい。図10は、送信ドライバ回路105がMOSロジック回路105’を構成する場合の一例を示す図である。送信ドライバ回路105を、MOSのスイッチ回路にすることにより、非送信時の消費電力をほぼ0にすることが可能となる。
また、図1に示す受信アンプ回路106と受信部電源107以外の回路も、CMOS回路などで構成することにより、静止時の消費電力をほぼ0にすることが可能である。したがって、送信モード時の半二重通信デバイス100の消費電力をほぼ0にすることが可能なため、消費電力低減のためにデバイスを停止させるような従来から採用されているデバイス停止モードを設けなくとも、デバイス停止モードとほぼ等価の効果を得ることが可能となる。
また、半二重通信システム1A(1B)は、無線通信機能を備える電子機器に搭載してもよい。このような電子機器としては、例えば、携帯電話などの携帯無線機器などがある。
これにより、電子機器は、消費電流を低減し、ソフトウェアまたはハードウェアで構成される信号解析部などを追加することなく、自動的に送信/受信モードを切り替えて通信を行うことが可能な半二重通信システム1A(1B)を備えているので、構成の縮小や、消費電流の低減が可能となる。
最後に、コントローラIC10の図7に示す各ステップS1〜S13の各機能は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、コントローラIC10は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるコントローラIC10の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記コントローラIC10に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、コントローラIC10を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
以上により、図10に示す送受信のタイミングの管理をソフトウェアで行うだけで、送信/受信を切り替えるための特別な信号や、通信信号内に含まれるコマンドでの制御を必要とせずに通信可能であるため、汎用的な半二重通信プロトコルを採用することが可能となる。また、通信プログラムが一般のコンピュータで実行されることを前提に供給されるので、汎用性の高いものとなる。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。