(実施形態1)
本発明の実施形態を、図面を参照して説明する。まず、図1を参照して、本発明の実施形態1に係る通信システム1000について説明する。通信システム1000は、親機100と複数の子機(子機200、子機300、子機400、子機500)とを備え、親機100と複数の子機とが相互に通信するシステムである。通信システム1000は、例えば、照明制御機器と複数の照明機器とを備える照明システムである。この場合、親機100は照明制御機器に対応し、複数の子機がそれぞれ複数の照明機器に対応する。
親機100は、直流電源(図示せず)を備え、複数の子機に電力を供給する。複数の子機は、親機100から供給された電力で動作する。親機100は、電圧信号により複数の子機にデータを送信し、複数の子機は、電流信号により親機100にデータを送信する。本実施形態では、ブロードキャストがなく、ポーリング方式が採用されているものとする。つまり、親機100は、複数の子機に同時にデータを送信せず、複数の子機は、親機100からデータを受信したときに親機100にデータを送信するものとする。このため、親機100と複数の子機とは、同時にデータを送信しない。
親機100と複数の子機とは、複数の通信線対(通信線対13、通信線対23、通信線対33、通信線対43、通信線対53)により相互に接続され、複数の通信線対を介して相互に通信する。具体的には、親機100は、端子141と端子142とを含む端子対145と、端子143と端子144とを含む端子対146と、を備える。子機200は、端子241と端子242とを含む端子対245と、端子243と端子244とを含む端子対246と、を備える。子機300は、端子341と端子342とを含む端子対345と、端子343と端子344とを含む端子対346と、を備える。子機400は、端子441と端子442とを含む端子対445と、端子443と端子444とを含む端子対446と、を備える。子機500は、端子541と端子542とを含む端子対545と、端子543と端子544とを含む端子対546と、を備える。
端子141と端子143とは親機100の内部で接続され、端子142と端子144とは親機100の内部で接続される。端子241と端子243とは子機200の内部で接続され、端子242と端子244とは子機200の内部で接続される。端子341と端子343とは子機300の内部で接続され、端子342と端子344とは子機300の内部で接続される。端子441と端子443とは子機400の内部で接続され、端子442と端子444とは子機400の内部で接続される。端子541と端子543とは子機500の内部で接続され、端子542と端子544とは子機500の内部で接続される。
図1には、通信線51と通信線52とを含む通信線対53により子機300と子機500とが誤って接続され、親機100と特定の子機とを結ぶ経路を複数生じさせる誤配線(以下、単に「誤配線」という。)が生じている例を示している。この誤配線は、親機100と特定の子機とを結ぶ複数の経路によりループが構成されるため、ループ配線とも呼ばれる。この誤配線があると、親機100や複数の子機が故障したり、通信異常が発生したりすることがある。このため、本実施形態では、誤配線が検出された場合、誤配線による影響が生じないように(ループ配線がなくなるように)、接続関係が自動で調整される。以下、理解を容易にするため、まず、誤配線がない場合について説明する。
親機100と子機200とは、通信線11と通信線12とを含む通信線対13により相互に接続される。つまり、端子141と端子241とが通信線11により接続され、端子142と端子242とが通信線12により接続される。子機200と子機300とは、通信線21と通信線22とを含む通信線対23により相互に接続される。つまり、端子243と端子341とが通信線21により接続され、端子244と端子342とが通信線22により接続される。親機100と子機400とは、通信線31と通信線32とを含む通信線対33により相互に接続される。つまり、端子143と端子441とが通信線31により接続され、端子144と端子442とが通信線32により接続される。子機400と子機500とは、通信線41と通信線42とを含む通信線対43により相互に接続される。つまり、端子443と端子541とが通信線41により接続され、端子444と端子542とが通信線42により接続される。
ここで、配線長が長くなると、配線における電圧降下の影響が大きくなり、電圧信号による通信が正常にできなくなる可能性が高くなる。そこで、配線長は、予め定められた長さ(例えば、100m)以下に収まるように、親機100と子機200と子機300と子機400と子機500とが接続される。図1は、通信線対13の長さが30mであり、通信線対23の長さが20mであり、通信線対33の長さが50mであり、通信線対43の長さが50mである例を示している。この場合、親機100から子機200までの配線長は30mであり、親機100から子機300までの配線長は30m+20m=50mであり、親機100から子機400までの配線長は50mであり、親機100から子機500までの配線長は50m+50m=100mである。従って、親機100は、子機200と子機300と子機400と子機500とのいずれにも、正常に電圧信号を送信することができる。
親機100は、いずれかの子機にデータを送信する場合、予め定められた電源電圧(例えば、12V又は24V)を、極性を反転させながら端子対145間に印加する。データは、基本的に、1と0との組み合わせにより表現されるバイナリデータである。例えば、親機100は、0に対応するビットを送信する期間、端子141と端子143とに12Vを印加するとともに端子142と端子144とに0Vを印加する。一方、親機100は、1に対応するビットを送信する期間、端子141と端子143とに0Vを印加するとともに端子142と端子144とに12Vを印加する。
ここで、配線長に応じた電圧降下の影響が小さい場合、基本的に、端子141と端子143と端子241と端子243と端子341と端子343と端子441と端子443と端子541と端子543とには、同程度の電圧が印加される。従って、複数の子機は、端子対間に印加された電源電圧の極性を監視することにより、親機100からデータを受信することができる。
例えば、子機200は、端子対245間の電圧の極性が負である期間(例えば、端子241に12Vが印加され端子242に0Vが印加されている期間)、0に対応するビットが送信された期間と見做すことができる。一方、子機200は、端子対245間の電圧の極性が正である期間(例えば、端子241に0Vが印加され端子242に12Vが印加されている期間)、1に対応するビットが送信された期間と見做すことができる。そして、子機200は、受信したビットを組み合わせて、親機100により送信されたデータを受信することができる。なお、データを構成するビット列には、データの送信元や送信先の機器を示すビット列が含まれているものとする。
一方、複数の子機は、親機100にデータを送信する場合、端子対間の導通・非導通状態を切り替えることにより親機100にデータを送信する。例えば、子機200は、1に対応するビットを送信する期間、端子対245間を導通状態に制御し、0に対応するビットを送信する期間、端子対245間を非導通状態に制御する。ここで、端子対245間には電源電圧が印加されているため、端子対245間が導通状態に制御されると、通信線対13には電流が流れる。通信線対13に電流が流れることは、通信線11と通信線12とに電流が流れることを意味する。なお、基本的に、通信線11に流れる電流の大きさと通信線12に流れる電流の大きさとは同程度であり、通信線11に流れる電流の向きと通信線12に流れる電流の向きとは反対向きである。以下、「電流の大きさ」のことを、適宜、単に、「電流」という。
一方、親機100は、通信線対13に流れる電流の有無を検出することにより、子機200からデータを受信することができる。例えば、親機100は、通信線対13に閾値以上の電流が流れている期間、1に対応するビットが送信された期間と見做すことができる。一方、親機100は、通信線対13に閾値以上の電流が流れていない期間、0に対応するビットが送信された期間と見做すことができる。そして、親機100は、受信したビットを組み合わせて、子機200により送信されたデータを受信することができる。
ここで、誤配線がない場合、つまり、子機300と子機500とが通信線対53により接続されていない場合、子機300の接続先は子機200だけである。従って、子機200がデータを送信する間、子機200から親機100に電流が流れる経路は、通信線対13だけとなる。
次に、誤配線がある場合、つまり、子機300と子機500とが、通信線51と通信線52とを含む通信線対53により接続された場合について説明する。この場合、端子343と端子543とが通信線51により接続され、端子344と端子544とが通信線52により接続される。なお、通信線対53の長さは20mであるものとする。
ここで、例えば、子機200が親機100にデータを送信する場合を想定する。この場合、子機200は、1に対応するビットを送信する期間、端子対245間を導通状態に制御する。端子対245間が導通状態に制御されると、端子対245間には電源電圧が印加されているため、通信線対13には電流が流れる。しかしながら、子機200と親機100との間には、通信線対13により構成される経路1と、通信線対23と通信線対53と通信線対43と通信線対33とにより構成される経路2との2つの電流経路が存在する。従って、端子対245間が導通状態に制御されると、通信線対23と通信線対53と通信線対43と通信線対33とにも電流が流れる。
経路1の長さは、30mであり、経路2の長さは、20m+20m+50m+50m=140mである。従って、経路1に流れる電流の大きさは、経路2に流れる電流の大きさよりも大きい。なお、親機100が監視する電流の大きさは、経路1に流れる電流の大きさと経路2に流れる電流の大きさとの合計の大きさである。従って、親機100が監視する電流の大きさは、誤配線がある場合、誤配線がない場合よりも大きくなる。親機100が監視する電流の大きさが大きくなること自体は問題ないとも考えられる。しかしながら、誤配線があること自体、予期しない接続がされていることを意味し、また、親機100や複数の子機の故障、あるいは、通信異常を招来しかねない。そこで、複数の子機は、データを送信するときに、誤配線があるか否かを確認し、誤配線が検出された場合、誤配線による影響がなくなるように接続関係を自動で調整する。
例えば、子機200は、1に対応するビットを送信する期間、端子対245間を導通状態に制御するとともに、経路1と経路2との双方に電流が流れているか否かを確認する。そして、子機200は、経路1と経路2との双方に電流が流れていることを検出した場合、流れる電流が少ない方の経路(例えば、経路2)を遮断する。なお、経路に流れる電流が少ないことは、経路の長さが長いことを意味する。一般的に、正常な経路は、短くなるように設計される。このため、長い経路は、短い経路よりも、誤配線により形成された経路である可能性が高い。また、短い経路を遮断して、長い経路を残す場合、正常に通信できなくなる可能性がある。そこで、誤配線が検出された場合、流れる電流が少ない方の経路が遮断されることが好適である。
次に、図2を参照して、親機100及び子機200の構成について説明する。なお、子機300、子機400、子機500の構成は、基本的に、子機200の構成と同様である。
親機100は、送信回路110と、受信回路120と、制御部130と、端子対145と、端子対146と、通知部150と、電源端子161と、コンデンサ162と、接地端子163と、を備える。
送信回路110は、制御部130による制御に従って、電圧信号によりデータを送信する。送信回路110は、制御部130が備える図示しない第1の送信端子(Tx1により示される端子)からHレベルの電圧(例えば、5V)が出力され、制御部130が備える図示しない第2の送信端子(Tx2により示される端子)からLレベルの電圧(例えば、0V)が出力されるとき、端子141に0Vを印加するとともに端子142にV1を印加する。一方、送信回路110は、第1の送信端子からLレベルの電圧が出力され、第2の送信端子からHレベルの電圧が出力されるとき、端子141にV1を印加するとともに端子142に0Vを印加する。V1は、親機100の電源電圧である。
なお、第2の送信端子から出力される電圧のレベルは、第1の送信端子から出力される電圧のレベルと逆のレベルである。例えば、制御部130は、1に対応するビットを送信するときに、第1の送信端子からHレベルの電圧を出力し、第2の送信端子からLレベルの電圧を出力する。また、制御部130は、0に対応するビットを送信するときに、第1の送信端子からLレベルの電圧を出力し、第2の送信端子からHレベルの電圧を出力する。従って、1に対応するビットが送信されるときに端子141の電圧が端子142の電圧よりも低くなり、0に対応するビットが送信されるときに端子141の電圧が端子142の電圧よりも高くなる。なお、基本的に、端子141の電圧と端子143の電圧とは同じであり、端子142の電圧と端子144の電圧とは同じである。
送信回路110は、NPN(Negative Positive Negative)トランジスタ111と、PNP(Positive Negative Positive)トランジスタ112と、NPNトランジスタ113と、PNPトランジスタ114と、を備える。NPNトランジスタ111のコレクタとNPNトランジスタ113のコレクタとは、電源端子161に接続される。NPNトランジスタ111のベースとPNPトランジスタ112のベースとは、第1の送信端子に接続される。NPNトランジスタ111のエミッタとPNPトランジスタ112のエミッタとは、端子142と端子144とに接続される。
PNPトランジスタ112のコレクタとPNPトランジスタ114のコレクタとは、抵抗126を介して接地端子128に接続されるとともに、コンデンサ123を介してオペアンプ122の非反転入力端子に接続される。NPNトランジスタ113のベースとPNPトランジスタ114のベースとは、第2の送信端子に接続される。NPNトランジスタ113のエミッタとPNPトランジスタ114のエミッタとは、端子141と端子143とに接続される。NPNトランジスタ111とPNPトランジスタ114とがオンするとき、NPNトランジスタ113とPNPトランジスタ114とがオフする。また、NPNトランジスタ111とPNPトランジスタ114とがオフするとき、NPNトランジスタ113とPNPトランジスタ114とがオンする。
受信回路120は、いずれかの子機から電流信号として送信されたデータ(ビットデータ)に対応する電圧信号を制御部130に供給する。受信回路120は、通信線対13又は通信線対33に流れる電流が予め定められた閾値以上になったことを検出した場合、制御部130が備える図示しない受信端子(Rxにより示される端子)にHレベルの電圧信号を供給する。一方、受信回路120は、通信線対13又は通信線対33に流れる電流がこの閾値未満になったことを検出した場合、受信端子にLレベルの電圧信号を供給する。
受信回路120は、電源端子121と、オペアンプ122と、コンデンサ123と、抵抗124と、抵抗125と、抵抗126と、接地端子127と、接地端子128と、を備える。電源端子121は、親機100が備える直流電源(図示せず)に接続され、電源電圧(V1)が印加される。オペアンプ122は、非反転入力端子に印加された入力電圧と反転入力端子に印加された基準電圧とを比較する。オペアンプ122は、入力電圧が基準電圧よりも高い場合、Hレベルの電圧を出力端子から出力し、入力電圧が基準電圧よりも低い場合、Lレベルの電圧を出力端子から出力する。
コンデンサ123は、オペアンプ122の反転入力端子に供給される直流成分を遮断する。抵抗124と抵抗125とは、電源端子121と接地端子127との間に直列に接続される。抵抗124と抵抗125とは、電源電圧を分圧することにより得られた基準電圧を、オペアンプ122の反転入力端子に印加する。抵抗126は、電源端子161から接地端子128に流れる電流を制限する。接地端子127と接地端子128とは、親機100が備える直流電源(図示せず)に接続され、0Vが印加される。
制御部130は、親機100の全体的な動作を制御する。制御部130は、送信回路110を制御して、いずれかの子機にデータを送信する。例えば、制御部130は、送信するビットデータに対応するレベルの電圧を、第1の送信端子から出力する。なお、制御部130は、第1の送信端子から出力した電圧のレベルとは逆のレベルの電圧を、第2の送信端子から出力する。また、制御部130は、受信回路120から供給された電圧信号に基づいて、いずれかの子機から送信されたデータを特定する。例えば、制御部130は、受信端子に印加された電圧のレベルに応じたビットデータをサンプリングし、サンプリングにより得られたビットデータ列から、送信されたデータを特定する。
また、制御部130は、誤配線が検出された場合、通知部150を制御して、誤配線が検出された旨を通知する。制御部130は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などを備えるマイクロコンピュータにより構成される。
端子対145は、端子141と端子142とを備える。端子対145は、通信線対13を介して、端子対245と接続される。つまり、端子141は、通信線11を介して端子241に接続され、端子142は、通信線12を介して端子242に接続される。端子対146は、端子143と端子144とを備える。端子対146は、通信線対33を介して、端子対445と接続される。つまり、端子143は、通信線31を介して端子441に接続され、端子144は、通信線32を介して端子442に接続される。
通知部150は、制御部130による制御に従って、誤配線が検出された旨を、光、画像、音声によりユーザに通知する。通知部150は、例えば、LED(Light Emitting Diode)、液晶ディスプレイ、タッチスクリーン、スピーカである。
電源端子161は、親機100が備える直流電源に接続され、電源電圧が印加される。コンデンサ162は、電源端子161と接地端子163との間に設けられ、電源端子161から出力される交流成分(高周波成分)を接地端子163に流す。接地端子163は、親機100が備える直流電源に接続され、0Vが印加される。
子機200は、送信回路110と、受信回路120と、制御部230と、端子対245と、端子対246と、整流回路250と、スイッチ261と、スイッチ262と、電流検出部263と、電流検出部264と、接続点265と、接続点266と、比較部270と、信号出力部280と、電源端子291と、を備える。
送信回路210は、制御部230による制御に従って、電流信号により、親機100にデータを送信する。送信回路210は、NPNトランジスタ211と、抵抗212とを備える。NPNトランジスタ211のコレクタは、電源端子291に接続される。NPNトランジスタ211のベースは、制御部230が備える図示しない送信端子(Txにより示される端子)に接続される。NPNトランジスタ211のエミッタは、抵抗212を介して、制御部230が備える図示しない基準端子(S0により示される端子)に接続される。NPNトランジスタ211は、ベースにHレベルの電圧が印加されるとオン状態になり、ベースにLレベルの電圧が印加されるとオフ状態になる。NPNトランジスタ211がオフ状態になると、通信線対13には電流が流れない。一方、NPNトランジスタ211がオン状態になると、通信線対13には電流が流れる。
端子241の電圧が端子242の電圧よりも高いときにNPNトランジスタ211がオン状態になると、電源端子161→NPNトランジスタ113→端子141→通信線11→端子241→スイッチ261→ダイオード253→電源端子291→NPNトランジスタ211→抵抗212→ダイオード252→スイッチ261→端子242→通信線12→端子142→PNPトランジスタ112→抵抗126→接地端子128という経路で電流が流れる。一方、端子241の電圧が端子242の電圧よりも低いときにNPNトランジスタ211がオン状態になると、電源端子161→NPNトランジスタ111→端子142→通信線12→端子242→スイッチ261→ダイオード254→電源端子291→NPNトランジスタ211→抵抗212→ダイオード251→スイッチ261→端子241→通信線11→端子141→PNPトランジスタ114→抵抗126→接地端子128という経路で電流が流れる。抵抗212は、負荷抵抗であり、NPNトランジスタ211の電流路に流れる電流を制限する。
受信回路220は、親機100から電圧信号として送信されたデータ(ビットデータ)に対応する電圧信号を制御部230に供給する。受信回路220は、端子242の電圧が端子241の電圧よりも高いとき、Hレベル(例えば、5V)の電圧信号を、制御部230が備える図示しない受信端子(Rxにより示される端子)に供給する。一方、受信回路220は、端子241の電圧が端子242の電圧よりも高いとき、Lレベル(例えば、0V)の電圧信号を、制御部230が備える受信端子に供給する。
受信回路220は、ツェナーダイオード221と、抵抗222と、抵抗223と、を備える。ツェナーダイオード221のアノードは基準端子に接続され、ツェナーダイオード221のカソードは受信端子に接続される。ツェナーダイオード221は、受信端子の電圧が、基準端子の電圧に対して、降伏電圧(例えば、5V)以上高くならないようにする。抵抗222は、接続点266と受信端子との間に設けられ、受信端子に印加される電圧を制限する。抵抗223は、ツェナーダイオード221と並列に、基準端子と受信端子との間に設けられる。
制御部230は、子機200の全体的な動作を制御する。制御部230は、送信回路210を制御して、親機100にデータを送信する。例えば、制御部230は、送信するビットデータに対応するレベルの電圧を、送信端子から出力する。また、制御部230は、受信回路220から供給された電圧信号に基づいて、親機100から送信されたデータを特定する。例えば、制御部230は、受信端子に印加された電圧のレベルに応じたビットデータをサンプリングし、サンプリングにより得られたビットデータ列から、送信されたデータを特定する。また、制御部230は、親機100による制御に従って、図示しない照明の制御を実行する。制御部230は、例えば、CPU、ROM、RAMなどを備えるマイクロコンピュータにより構成される。
端子対245は、端子241と端子242とを備える。端子対246は、端子243と端子244とを備える。端子対246は、通信線対23を介して、端子対345と接続される。つまり、端子243は、通信線21を介して端子341に接続され、端子244は、通信線22を介して端子342に接続される。
整流回路250は、端子対245間に印加された正負の電源電圧を整流し、子機200の動作電源であるV2を生成する。なお、子機200の動作電源であるV2は、親機100の電源電圧であるV1と同程度の電圧であり、電源端子291から各モジュールに供給される。整流回路250は、ダイオード251と、ダイオード252と、ダイオード253と、ダイオード254と、を備える。ダイオード251のアノードとダイオード252のアノードとは、一方の出力端子(低電圧側の出力端子)に接続される。ダイオード253のカソードとダイオード254のカソードとは、他方の出力端子(高電圧側の出力端子)に接続される。ダイオード251のカソードとダイオード253のアノードとは、一方の入力端子である接続点265に接続される。ダイオード252のカソードとダイオード254のアノードとは、他方の入力端子である接続点266に接続される。
スイッチ261は、制御部230による制御に従って、端子対245に接続される通信線対13を子機200から切り離すためのスイッチである。スイッチ261は、端子241と接続点265との間の短絡・開放状態を制御するとともに、端子242と接続点266との間の短絡・開放状態を制御する。スイッチ261は、端子241と接続点265との間の短絡・開放状態と、端子242と接続点266との間の短絡・開放状態とを、同じ短絡・開放状態に制御する。スイッチ261は、例えば、2対の接点間を同時に制御する両切りスイッチである。
スイッチ262は、制御部230による制御に従って、端子対246に接続される通信線対23を子機200から切り離すためのスイッチである。スイッチ262は、端子243と接続点265との間の短絡・開放状態を制御するとともに、端子244と接続点266との間の短絡・開放状態を制御する。スイッチ262は、端子243と接続点265との間の短絡・開放状態と、端子244と接続点266との間の短絡・開放状態とを、同じ短絡・開放状態に制御する。スイッチ262は、例えば、2対の接点間を同時に制御する両切りスイッチである。
電流検出部263は、通信線対13に流れる電流を検出し、検出した電流の大きさを示す電圧信号を比較部270に供給する。本実施形態では、電流検出部263は、端子241と接続点265との間に流れる電流を検出することにより、通信線11に流れる電流を検出するものとする。ただし、電流検出部263は、端子242と接続点266との間に流れる電流を検出することにより、通信線12に流れる電流を検出してもよい。電流検出部263は、例えば、電流検出用のシャント抵抗、或いは、カレントトランスを備える。
電流検出部264は、通信線対23に流れる電流を検出し、検出した電流の大きさを示す電圧信号を比較部270に供給する。本実施形態では、電流検出部264は、端子243と接続点265との間に流れる電流を検出することにより、通信線21に流れる電流を検出するものとする。ただし、電流検出部264は、端子244と接続点266との間に流れる電流を検出することにより、通信線22に流れる電流を検出してもよい。電流検出部264は、例えば、電流検出用のシャント抵抗、或いは、カレントトランスを備える。
接続点265は、端子241と端子243とがスイッチ261とスイッチ262とを介して接続されるとき、スイッチ261とスイッチ262を結ぶ配線上の点である。接続点265は、整流回路250が備える一方の入力端子に接続される。接続点266は、端子242と端子244とがスイッチ261とスイッチ262とを介して接続されるとき、スイッチ261とスイッチ262を結ぶ配線上の点である。接続点266は、整流回路250が備える他方の入力端子に接続される。
なお、送信回路210は、接続点265と接続点266との間の導通・非導通状態を制御することにより、通信線対13に流れる電流を制御する。つまり、送信回路210は、通信線対13に電流を流すときに接続点265と接続点266との間を導通状態に制御し、通信線対13に電流を流さないときに接続点265と接続点266との間を非導通状態に制御する。
比較部270は、電流検出部263から供給された電圧信号により示される電流の大きさと予め定められた閾値とを比較し、送信回路210により流された電流が、通信線対13に流れているか否かを判別する。また、比較部270は、電流検出部264から供給された電圧信号により示される電流の大きさと予め定められた閾値とを比較し、送信回路210により流された電流が、通信線対23に流れているか否かを判別する。比較部270は、判別結果を示す電圧信号を信号出力部280に供給する。
また、比較部270は、電流検出部263から供給された電圧信号により示される電流の大きさと電流検出部264から供給された電圧信号により示される電流の大きさとを比較し、通信線対13と通信線対23とのいずれにより大きな電流が流れているかを判別する。比較部270は、判別結果を示す電圧信号を信号出力部280に供給する。比較部270は、例えば、コンパレータ、A/D(Analog/Digital)変換器、マイクロコンピュータなどにより構成される。
信号出力部280は、比較部270から供給された電圧信号に基づいて、誤配線があるか否かを判別する。信号出力部280は、誤配線があると判別した場合、誤配線を検出したことを示す信号(以下「誤配線検出信号」という。)を制御部230に供給する。なお、誤配線検出信号には、通信線対13と通信線対23とのいずれにより大きな電流が流れているかを示す情報が含まれていてもよい。また、信号出力部280は、制御部230から供給される電圧信号に基づいて、送信回路210が電流を流しているか否かを判別することができる。信号出力部280は、例えば、CPU、ROM、RAMなどを備えるマイクロコンピュータにより構成される。
電源端子291は、整流回路250により生成された子機200の動作電源であるV2を、各モジュールに供給するための電源端子である。なお、図2における子機300に関しては、説明を省略する。
次に、図3に示すフローチャートを参照して、子機200が実行する通信制御処理について説明する。子機200は、例えば、親機100に接続され、電源が投入されると、通信制御処理を開始する。ここで、子機200が備えるスイッチ261及びスイッチ262は、電源投入時に、導通状態であるものとする。なお、子機300、400、500が実行する通信制御処理は、基本的に、子機200が実行する通信制御処理と同様であるため、説明を省略又は簡略化する。また、本実施形態では、基本的に、親機100は、誤配線の検出に関する処理を実行しないため、親機100の処理に関しては、説明を省略又は簡略化する。
まず、制御部230は、受信端子のレベルを監視する(ステップS101)。つまり、制御部230は、受信回路220から受信端子に印加された電圧のレベルをサンプリングする。制御部230は、ステップS101の処理を完了すると、親機100からデータを受信したか否かを判別する(ステップS102)。例えば、制御部230は、サンプリングされた電圧のレベルに基づいてビット列を生成し、1フレーム分のデータを受信したか否かを判別する。制御部230は、親機100からデータを受信していないと判別すると(ステップS102:NO)、ステップS101に処理を戻す。
一方、制御部230は、親機100からデータを受信したと判別すると(ステップS102:YES)、受信したデータに応じた処理を実行する(ステップS103)。例えば、制御部230は、照明の点灯を指示するデータを受信した場合、照明を点灯させる。制御部230は、ステップS103の処理を完了すると、送信するデータのビット列を生成する(ステップS104)。なお、送信するデータは、親機100に返信するデータである。
制御部230は、ステップS104の処理を完了すると、生成したビット列の中から送信するビットを選択する(ステップS105)。なお、生成したビット列の先頭から順にビットが選択される。制御部230は、ステップS105の処理を完了すると、送信端子を、選択したビットに応じたレベルに設定する(ステップS106)。例えば、選択されたビットが1である場合、送信端子がHレベル(例えば、5V)に設定され、選択されたビットが0である場合、送信端子がLレベル(例えば、0V)に設定される。
制御部230は、ステップS106の処理を完了すると、送信端子のレベルがHレベルであるか否かを判別する(ステップS107)。なお、送信端子のレベルがHレベルであることは、送信回路210により、接続点265と接続点266との間が導通状態に制御され、電流が流されることを意味する。制御部230は、送信端子のレベルがHレベルであると判別すると(ステップS107:YES)、誤配線検出処理を実行する(ステップS108)。誤配線検出処理に関しては、図4に示すフローチャートを参照して、詳細に説明する。
まず、電流検出部263が、第1の電流を検出する(ステップS201)。第1の電流は、例えば、通信線11に流れる電流である。次に、電流検出部264が、第2の電流を検出する(ステップS202)。第2の電流は、例えば、通信線21に流れる電流である。ここで、比較部270は、第1の電流と第2の電流とが閾値以上であるか否かを判別する(ステップS203)。比較部270が、第1の電流又は第2の電流が閾値以上でないと判別すると(ステップS203:NO)、制御部230は、誤配線検出処理を終了する。
比較部270が、第1の電流と第2の電流とが閾値以上であると判別すると(ステップS203:YES)、信号出力部280が制御部230に誤配線検出信号を出力する(ステップS204)。なお、誤配線検出信号には、第1の電流の大きさ、第2の電流の大きさ、第1の電流と第2の電流とが閾値以上であるか否か、第1の電流と第2の電流との大小関係などを示す情報が含まれていてもよい。信号出力部280が、ステップS204の処理を完了すると、制御部230が、第1の電流が第2の電流以下であるか否かを判別する(ステップS205)。
制御部230は、第1の電流が第2の電流以下であると判別すると(ステップS205:YES)、第1のスイッチを開放状態に制御する(ステップS206)。なお、第1のスイッチは、スイッチ261である。一方、制御部230は、第1の電流が第2の電流以下でないと判別すると(ステップS205:NO)、第2のスイッチを開放状態に制御する(ステップS207)。なお、第2のスイッチは、スイッチ262である。
例えば、図1に示すように、端子対346と端子対546とが通信線対53により接続され、誤配線が生じているものとする。この場合、ステップS203では、第1の電流と第2の電流とが閾値以上であると判別される。ここで、第1の電流が流れる経路の長さは、通信線対13の長さの30mとなる。一方、第2の電流が流れる経路の長さは、通信線対23の長さの20mと、通信線対53の長さの20mと、通信線対43の長さの50mと、通信線対33の長さの50mと、の合計である140mである。従って、ステップS205では、第1の電流が第2の電流以下でないと判別され、ステップS207において第2のスイッチであるスイッチ262が開放状態に制御される。このため、通信線対23が子機200から切り離され、ループ配線がなくなる。制御部230は、ステップS206又はステップS207の処理を完了すると、誤配線検出処理を終了する。
制御部230は、ステップS108の処理を完了すると、1ビット分の時間ウェイトする(ステップS109)。制御部230は、ステップS109の処理を完了すると、全ビットが選択済みであるか否かを判別する(ステップS110)。制御部230は、全ビットが選択済みであると判別すると(ステップS110:YES)、データの送信を完了したものと見做し、ステップS101に処理を戻す。一方、制御部230は、いずれかのビットが選択済みでないと判別すると(ステップS110:NO)、ステップS105に処理を戻し、次のビットを選択する。
本実施形態では、接続点265と接続点266との間が導通状態に制御されているときに、通信線対13に流れる第1の電流の大きさと、通信線対23に流れる第2の電流の大きさと、が予め定められた閾値以上である場合、誤配線検出信号が出力される。従って、本発明によれば、親機100と子機200とを結ぶ経路を複数生じさせる誤配線を検出することができる。
また、本実施形態では、誤配線検出信号が出力された場合、第1のスイッチと第2のスイッチとのうち一方のスイッチが開放状態に制御される。従って、本実施形態によれば、親機100と子機200とを結ぶ経路を1つにすることができる。また、本実施形態では、誤配線検出信号が出力された場合、短い方の経路が子機200から切り離されず、長い方の経路が子機200から切り離される。従って、本実施形態によれば、経路の切り離しにより通信異常が発生する可能性が低くなることが期待できる。
(実施形態2)
実施形態1では、親機100と子機200とを結ぶ経路を複数生じさせる誤配線が検出された場合、子機200により長い方の経路を切り離されて、処理が完了する例について説明した。しかしながら、子機200に対する誤配線ではなく、他の子機に対する誤配線により、親機100と子機200とを結ぶ経路が複数生じた場合、この手法では好ましくない場合がある。
例えば、実施形態1では、通信線対53の誤配線により、子機200から通信線対23が切り離されるが、子機300或いは子機500から通信線対53が切り離される方が望ましい。実際、子機200から通信線対23が切り離されると、子機300から親機100までの経路の長さが、通信線対53の長さの20mと、通信線対43の長さの50mと、通信線対33の長さの50mと、の合計である120mとなり、子機300と親機100とが通信できなくなる可能性がある。
そこで、本実施形態では、子機200により誤配線が検出された場合、子機200から親機100に誤配線が検出された旨が通知され、親機100による制御に従って、適切な通信線対が切り離される手法について説明する。なお、本実施形態に係る通信システム1000の構成は、基本的に、実施形態1に係る通信システム1000の構成と同様である。従って、本実施形態では、通信システム1000の構成の説明を省略し、主に、通信システム1000の処理について説明する。
まず、図5のフローチャートを参照して、子機200が実行する誤配線検出処理について説明する。図5に示す誤配線検出処理は、図4に示す誤配線検出処理に代えて実行される処理である。なお、本実施形態に係る子機200が実行する通信制御処理は、基本的に、図3に示す通信制御処理と同様であるため説明を省略する。
まず、制御部230は、スタートビットを送信中であるか否かを判別する(ステップS301)。制御部230は、スタートビットを送信中でないと判別すると(ステップS301:NO)、誤配線検出処理を終了する。このように、本実施形態では、子機200は、送信端子のレベルがHレベルであるとき(1に対応するビットを送信中であるとき)であっても、スタートビットを送信中でないときは、誤配線検出処理を実行しない。
制御部230は、スタートビットを送信中であると判別すると(ステップS301:YES)、誤配線検出処理が免除中であるか否かを判別する(ステップS302)。制御部230は、誤配線検出処理が免除中であると判別すると(ステップS302:YES)、誤配線検出処理を終了する。このように、本実施形態では、子機200は、スタートビットを送信中であっても、誤配線検出処理が免除中であるときは、誤配線検出処理を実行しない。例えば、子機200が、誤配線を検出して開放状態に制御した一方のスイッチを親機100による指示に従って短絡状態に戻した後、この一方のスイッチを短絡状態に戻したことを示す制御解除完了を示すデータを親機に送信し終えるまでの間、誤配線検出処理が免除中となる。
制御部230が、誤配線検出処理が免除中でないと判別すると(ステップS302:NO)、電流検出部263が、第1の電流を検出し(ステップS303)、電流検出部264が、第2の電流を検出する(ステップS304)。そして、比較部270は、第1の電流と第2の電流とが閾値以上であるか否かを判別する(ステップS305)。比較部270が、第1の電流又は第2の電流が閾値以上でないと判別すると(ステップS305:NO)、制御部230は、誤配線検出処理を終了する。
比較部270が、第1の電流と第2の電流とが閾値以上であると判別すると(ステップS305:YES)、信号出力部280が制御部230に誤配線検出信号を出力する(ステップS306)。信号出力部280が、ステップS306の処理を完了すると、制御部230が、第1の電流が第2の電流以下であるか否かを判別する(ステップS307)。
制御部230は、第1の電流が第2の電流以下であると判別すると(ステップS307:YES)、第1のスイッチを開放状態に制御する(ステップS308)。一方、制御部230は、第1の電流が第2の電流以下でないと判別すると(ステップS307:NO)、第2のスイッチを開放状態に制御する(ステップS309)。
制御部230は、ステップS308又はステップS309の処理を完了すると、制御完了を示すデータを親機100に送信する(ステップS310)。制御完了を示すデータは、子機200が、誤配線の検出に応答して一方のスイッチを開放状態にしたことを、親機100に通知するためのデータである。なお、子機100は、スタートビットの送信中に誤配線検出処理を実行するため、スタートビット以後のビット列を、制御完了を示すデータを構成するビット列に書き換えることにより、速やかに制御完了を示すデータを送信することができる。制御部230は、ステップS310の処理を完了すると、誤配線検出処理を終了する。
次に、図6に示すフローチャートを参照して、親機100が実行する通信制御処理について説明する。この通信制御処理は、複数の子機のうちいずれかの子機により誤配線が検出された場合に、適切な子機により適切な通信線対が切り離されるようにするための処理である。親機100は、電源が投入されると、図6に示す通信制御処理の実行を開始する。
まず、制御部130は、受信端子のレベルを監視する(ステップS401)。つまり、制御部130は、受信回路120から受信端子に印加された電圧のレベルをサンプリングする。制御部130は、ステップS401の処理を完了すると、制御完了を示すデータを第1の子機から受信したか否かを判別する(ステップS402)。例えば、制御部130は、サンプリングされた電圧のレベルに基づいてビット列を生成して、1フレーム分のデータを生成し、生成された1フレーム分のデータが制御完了を示すデータであるか否かを判別する。なお、第1の子機は、制御完了を示すデータを送信した子機であり、誤配線を検出した子機である。本実施形態では、第1の子機は、子機200であるものとする。制御部130は、制御完了を示すデータを第1の子機から受信していないと判別すると(ステップS402:NO)、ステップS401に処理を戻す。
一方、制御部130は、制御完了を示すデータを第1の子機から受信したと判別すると(ステップS402:YES)、応答を要求するデータを全ての子機に送信する(ステップS403)。応答を要求するデータは、親機100と注目する子機とが通信可能であるか否かを判別するために、応答を示すデータを親機100に向けて送信することを注目する子機に要求するデータである。応答を示すデータは、応答を要求するデータを親機100から受信した子機が、親機100に返信するデータである。
本実施形態では、親機100から注目する子機にデータを送信した場合、注目する子機は何らかのデータを親機100に送信するポーリング方式が採用されている。従って、応答を要求するデータの内容は何でもよく、また、応答を示すデータの内容は何でもよい。制御部130は、子機200、子機300、子機400、子機500のそれぞれに対して、順に、応答を要求するデータを送信する。なお、制御部130は、第1の子機に対しては、応答を要求するデータを送信しなくてもよい。また、制御部130は、送信回路110を制御することにより、応答を要求するデータを送信することができる。
一方、応答を要求するデータを親機100から受信した子機は、ステップS104において、応答を示すデータを構成するビット列を決定し、ステップS105からステップS110の処理において、応答を示すデータを親機100に送信する。
制御部130は、ステップS403の処理を完了すると、全ての子機から応答を示すデータを受信したか否かを判別する(ステップS404)。全ての子機から応答を示すデータが受信されることは、第1の子機によるスイッチ制御後の配線状態において、親機100と全ての子機とが正常に通信可能であることを意味する。一方、いずれかの子機から応答を示すデータが受信されないことは、第1の子機によるスイッチ制御後の配線状態において、親機100といずれかの子機とが正常に通信可能でないことを意味する。
制御部130は、全ての子機から応答を示すデータを受信したと判別すると(ステップS404:YES)、ステップS401に処理を戻す。一方、制御部130は、いずれかの子機から応答を示すデータを受信しないと判別すると(ステップS404:NO)、制御解除を要求するデータを第1の子機に送信する(ステップS405)。
一方、制御解除を要求するデータを親機100から受信した第1の子機は、ステップS103において、開放状態に制御した一方のスイッチを短絡状態に制御する。そして、第1の子機は、ステップS104において、制御解除完了を示すデータを構成するビット列を決定し、ステップS105からステップS110の処理において、応答を示すデータを親機100に送信する。この場合、第1の子機は、ステップS302において、誤配線検出が免除中であると判別し、誤配線検出処理を実行しない。
制御部130は、ステップS405の処理を完了すると、制御解除完了を示すデータを第1の子機から受信する(ステップS406)。制御部130は、ステップS406の処理を完了すると、応答を要求するデータを第2の子機に送信する(ステップS407)。第2の子機は、ステップS404の判別処理において、応答を示すデータが受信されなかった子機である。ステップS407において送信される応答を要求するデータとステップS403において送信される応答を要求するデータとは、同様のデータでもよいし、異なるデータでもよい。制御部130は、ステップS407の処理を完了すると、ステップS401に処理を戻す。
一方、応答を要求するデータを親機100から受信した第2の子機は、ステップS104において、応答を示すデータを構成するビット列を決定し、ステップS105からステップS110の処理において、応答を示すデータを親機100に送信する。第2の子機は、応答を示すデータを親機100に送信するときに実行される誤配線検出処理において、誤配線を検出する。そして、第2の子機は、ステップS308又はステップS309において、一方のスイッチを開放状態に制御し、ステップS310において、制御完了を示すデータを親機100に送信する。
そして、親機100は、第2の子機から制御完了を示すデータを受信した場合、第2の子機を第1の子機とみなし、図6に示す通信制御処理を実行する。以後、ステップS404により、全ての子機から応答を示すデータが受信されたと判別されるまで、図3に示す通信制御処理と図5に示す誤配線検出処理と図6に示す通信制御処理とが繰り返し実行される。
例えば、図1に示す通信システム1000において、最初に、子機200により誤配線が検出されたものとする。この場合、端子対245から端子対145までの経路よりも、端子対246から端子対345までの経路の方が長い。従って、端子対246に接続されたスイッチ262が開放状態に制御される。すると、子機300から親機100までの経路は、端子対346から端子対146までの経路だけになるが、この経路の長さは、20m+50m+50m=120mとなり100mを超える。このため、子機300は親機100と通信することができなくなる。すると、親機100は、制御解除を要求するデータを子機200に送信し、子機200にスイッチ262を短絡状態に制御させ、子機300に応答を要求するデータを送信する。
一方、子機300は、応答を要求するデータを受信したことに応答して応答を示すデータを親機100に送信する過程において、誤配線検出処理を実行する。この場合、端子対345から端子対145までの経路よりも、端子対346から端子対146までの経路の方が長い。従って、端子対346に接続されたスイッチが開放状態に制御される。この場合、親機100からどの子機までの経路の長さも100m以下になる。従って、子機300が通信線対53を切り離した状態が維持され、親機100と全ての子機との通信が可能な状態となる。
本実施形態では、いずれかの子機により誤配線が検出された場合、誤配線の原因である可能性が高い通信線対が切り離される。従って、本実施形態によれば、誤配線による影響を自動的に適切に排除することが期待できる。
(実施形態3)
実施形態1及び実施形態2では、親機100と複数の子機とが備える端子対が2つである例について説明した。本発明において、親機100といずれかの子機200とを結ぶ経路が複数発生する可能性がある構成であれば、親機100や複数の子機が備える端子対の個数は、この例に限定されない。例えば、親機100や複数の子機が備える端子対の個数は、1個であってもよいし、3個以上であってもよい。以下、親機100が1つの端子対を備え、子機200が3つの端子対を備え、子機300、子機400、子機500が2つの端子対を備える例について説明する。
図7を参照して、本実施形態に係る通信システム1100の構成について説明する。通信システム1100は、親機101と、子機201と、子機300と、子機400と、子機500と、を備える。親機101が備える端子対145は、通信線対13により、子機201が備える端子対245と接続される。子機201が備える端子対246は、通信線対23により、子機300が備える端子対345と接続される。子機201が備える端子対249は、通信線対33により、子機400が備える端子対445と接続される。子機400が備える端子対446は、通信線対43により、子機500が備える端子対545と接続される。ここで、子機300が備える端子対346は、通信線対53により、子機500が備える端子対546と誤接続されているものとする。
図8に、本実施形態に係る子機201の構成を示す。子機201は、子機200に、端子対249と、スイッチ267と、電流検出部268と、が追加された構成である。端子対249は、端子247と端子248とを備える。端子247は、通信線31と接続される。また、端子247は、スイッチ267を介して、接続点265と接続される。端子248は、通信線32と接続される。また、端子248は、スイッチ267を介して、接続点266と接続される。
スイッチ267は、端子247と接続点265との間、並びに、端子248と接続点266との間、に設けられ、端子247と接続点265との間の導通・非導通状態、並びに、端子248と接続点266との間の導通・非導通状態を制御する。スイッチ267は、制御部230による制御に従って、導通・非導通状態が制御される。電流検出部268は、端子247と接続点265との間に流れる電流、つまり、通信線対33に流れる電流を検出する。電流検出部268は、検出した電流の大きさを示す電圧信号を、比較部270に供給する。
次に、通信システム1100の動作について説明する。子機201は、図5に示す誤配線検出処理において、ステップS304の処理の後に、第3の電流を検出する。第3の電流は、電流検出部268により検出される電流である。また、子機201は、ステップS305において、第1の電流と第2の電流と第3の電流とのうち2つの電流が閾値以上であるか否かを判別する。そして、子機201は、閾値以上の電流のうち、最大でない電流に対応するスイッチを開放状態に制御する。
例えば、第1の電流と第2の電流と第3の電流とのいずれもが閾値以上であり、第1の電流が第2の電流と第3の電流とのいずれよりも大きい場合、第2の電流に対応するスイッチ262と第3の電流に対応するスイッチ267とを開放状態に制御する。かかる制御によれば、子機201と親機100とを結ぶ経路のうち、最短でない全ての経路が子機201から切り離され、誤配線によるループ配線が解消されることが期待できる。
なお、図7に示す構成では、子機201と親機100とを結ぶ経路は1つだけであり、子機201と親機100との間にループ配線は存在しない。従って、子機201が実行する誤配線検出処理では、誤配線が検出されない。しかしながら、子機300と親機100とを結ぶ経路、子機400と親機100とを結ぶ経路、子機500と親機100とを結ぶ経路には、複数の経路が存在する。従って、子機300、子機400、子機500が実行する誤配線検出処理では、誤配線が検出される。
例えば、子機300と子機400と子機500とのうち子機300が最も早く誤配線検出処理を実行するものとする。この場合、子機300が実行する誤配線検出処理では、端子対345から親機100までの経路1が50m+20m=70mであり、端子対346から親機100までの経路2が40m+30m+30m+20m=120mである。このため、子機300からは、通信線対53が切り離され、経路2が切り離される。この場合、親機100から全ての子機までの経路の長さがいずれも100m以下となり、処理が完了する。
一方、例えば、子機300と子機400と子機500とのうち子機400が最も早く誤配線検出処理を実行するものとする。この場合、子機400が実行する誤配線検出処理では、端子対445から親機100までの経路1が30m+20m=50mであり、端子対446から親機100までの経路2が30m+40m+50m+20m=140mである。このため、子機400からは、通信線対43が切り離され、経路2が切り離される。この場合、子機500から親機100までの経路の長さが、40m+50m+20m=110mとなり100mを超える。従って、親機100と子機500との通信ができなくなる。
そこで、親機100による制御により、子機400による経路2の切り離しが解除された上で、子機500による誤配線検出処理が実行される。この場合、子機500が実行する誤配線検出処理では、端子対545から親機100までの経路1が30m+30m+20m=80mであり、端子対546から親機100までの経路2が40m+50m+20m=110mである。このため、子機500からは、通信線対53が切り離され、経路2が切り離される。この場合、親機100から全ての子機までの経路の長さがいずれも100m以下となり、処理が完了する。
本実施形態では、いずれかの子機により誤配線が検出された場合、誤配線の原因である可能性が高い通信線対が切り離される。従って、本実施形態によれば、誤配線による影響を自動的に適切に排除することが期待できる。
(変形例)
以上、本発明の実施形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能である。
本発明において、上記実施形態において説明した構成、機能、動作のどの部分を採用するのかは任意である。また、本発明において、上述した構成、機能、動作のほか、更なる構成、機能、動作が採用されてもよい。
実施形態1では、誤配線が検出された場合、通信線対が自動的に切り離される例について説明した。本発明において、誤配線が検出された場合、他の処理が実行されてもよい。例えば、誤配線が検出された場合、誤配線を検出した子機から親機100に、誤配線を検出したことを示すデータが送信されてもよい。この場合、親機100は、例えば、誤配線が検出されたことを示す情報を、通知部150を介して、光、画像、音声によりユーザに通知することができる。また、通信線対を自動的に切り離す処理とともに、誤配線が検出された旨をユーザに通知する処理が実行されてもよい。
実施形態1では、スイッチ261が、1つの両切りスイッチである例について説明した。本発明において、スイッチ261は、端子241と接続点265との間に配置されたスイッチと、端子242と接続点266との間に配置されたスイッチと、の2つのスイッチ群により構成されてもよい。この場合、2つのスイッチ群の導通・非導通状態は、同時に制御される。スイッチ262も、両切りスイッチではなく、2つのスイッチ群により構成されてもよい。
実施形態1では、通信システム1000が照明システムであり、親機100が照明制御機器であり、子機200と子機300と子機400と子機500とが照明機器である例について説明した。本発明において、通信システムは、他のシステムであってもよいことは勿論である。例えば、通信システム1000が空調システムであり、親機100が室外機であり、子機200と子機300と子機400と子機500とが室内機であってもよい。また、複数の子機の個数は、4個に限定されないことは勿論である。
実施形態1では、制御部230と比較部270と信号出力部280とが分離されている例について説明した。本発明において、制御部230と比較部270と信号出力部280とは、分離されていなくてもよい。例えば、比較部270と信号出力部280とが制御部230に組み込まれ、制御部230が比較部270の機能と信号出力部280の機能とを有していてもよい。この場合、誤配線検出信号は、制御部230の外部に出力される信号ではなく、制御部230の内部の構成要素に出力される信号でもよい。例えば、誤配線検出信号は、誤配線が検出されたときに実行されるべき割り込みを発生させる割り込み信号、誤配線が検出されたことを示すフラグを書き込むためのフラグ書込信号であってもよい。また、誤配線検出信号は、スイッチ261やスイッチ262に対する制御信号であってもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。