(57)【要約】  公共配電網を経由して伝搬する交流(AC)電力波形上でデータを送信元から宛先に転送するコンピュータ実装方法であって、ここで、コンピュータは、公共配電網に電源を介して動作可能に結合されたプロセッサを含み、この方法は、配電網を経由して要求を送信し、配電網上の送信元と宛先の間に仮想通信チャネルを設けることを含む。この方法は、仮想通信チャネルによって送信元から宛先に送信されるべきデータパケットをプロセッサによって生成すること、および電源から得られた電力を変調し、仮想通信チャネルに一意である周波数の関数に従って所定の間隔でAC上の一連のスタティックパルスを符号化することをさらに含む。
2015537480.tif 000002
【特許請求の範囲】
【請求項１】
公共配電網を経由して伝搬する交流(AC)電力波形上でデータを送信元から宛先に転送するコンピュータ実装方法であって、前記コンピュータは、前記公共配電網に電源を介して動作可能に結合されたプロセッサを含み、方法は、
前記公共配電網を経由して要求を送信し、前記公共配電網上の前記送信元と前記宛先の間に仮想通信チャネルを設けるステップと、
前記仮想通信チャネルを介して前記送信元から前記宛先に送信されるべきデータパケットを前記プロセッサによって生成するステップと、
前記電源から得られる電力を変調し、前記仮想通信チャネルに一意である周波数の関数に従って所定の間隔で前記AC電力上へ一連のスタティックパルスを符号化するステップと
を含む方法。
【請求項２】
各スタティックパルスは約0.00125ボルトの大きさを有する、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記関数は
【数１】
2015537480.tif 000008
である、請求項1に記載のコンピュータ実装方法。
【請求項４】
前記データパケットは受信側のアドレスを含み、前記アドレスは、前記電源に関連付けられた識別番号、前記コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、前記送信側から前記受信側に送信される第1のpingのクロックタイム、前記コンピュータのリアルタイムクロックからのクロックタイム値、前記プロセッサの速度、ランダム関数、および入出力誤差時間のうちの少なくとも1つを含む、請求項1に記載のコンピュータ実装方法。
【請求項５】
前記スタティックパルスの各々は、前記データパケット中の個々のデータビットに対応する論理状態の変化を表す、請求項1に記載のコンピュータ実装方法。
【請求項６】
前記送信側に関連付けられた一意のアドレスを前記プロセッサによって生成するステップと、
前記電源を変調し、前記公共配電網を経由して一連のpingを転送するために前記AC電力波形上へ一連のスタティックパルスを符号化するステップであって、前記一連のスタティックパルスは、前記一意のアドレスを用いた前記一連のpingの符号化に対応する、符号化するステップと、
受信側のアドレスを含めて、肯定応答信号を前記受信側から受信するステップと、
前記受信側の前記アドレスに基づいて前記仮想通信チャネルを設けるステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項７】
公共配電系統を経由して伝搬する交流(AC)電力波形上でデータを送信元から宛先に転送するコンピュータ実装方法であって、前記コンピュータは、分岐した公共配電系統に電源を介して動作可能に結合されたプロセッサを含み、方法は、
前記プロセッサによって仮想通信チャネルを介して、および前記プロセッサと前記電源の間に結合されたインタフェースを介して、データ通信の要求を受信するステップと、
前記要求に肯定応答するステップと、
前記仮想通信チャネルに一意の周波数の関数に従って所定の間隔で前記AC電力上において符号化されたデータを受信するステップと、
前記関数に基づいてデータパケットを前記プロセッサによって復号するステップと
を含む方法。
【請求項８】
各スタティックパルスは約0.00125ボルトの大きさを有する、請求項7に記載のコンピュータ実装方法。
【請求項９】
前記関数は
【数２】
2015537480.tif 000009
の逆である、請求項7に記載のコンピュータ実装方法。
【請求項１０】
前記データパケットは前記受信側のアドレスを含み、前記アドレスは、前記電源に関連付けられた識別番号、前記送信側コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、前記送信側から前記受信側に送信される第1のpingのクロックタイム、送信側コンピュータのリアルタイムクロックからのクロックタイム値、送信側プロセッサの速度、ランダム関数、および入出力誤差時間のうちの少なくとも1つを含む、請求項7に記載のコンピュータ実装方法。
【請求項１１】
スタティックパルスの各々は、前記データパケット中の個々のデータビットに対応する論理状態の変化を表す、請求項7に記載のコンピュータ実装方法。
【請求項１２】
一連のpingの符号化に対応する一連のスタティックパルス、前記AC電力波形上での一連のスタティックパルスを、前記プロセッサと前記電源の間に結合された前記インタフェースを介して前記プロセッサによって受信するステップであって、前記一連のスタティックパルスは前記一連のpingの符号化および一意のアドレスに対応する、受信するステップと、
前記一意のアドレスに基づいて前記仮想通信チャネルを設けるステップと
をさらに含む、請求項7に記載のコンピュータ実装方法。
【請求項１３】
コンピュータによる実行時に、前記コンピュータに
配電網を経由して要求を送信し、前記配電網上の送信元と宛先の間に仮想通信チャネルを設けさせ、
前記仮想通信チャネルによって前記送信元から前記宛先に送信されるべきデータパケットを生成させ、
電源から得られたAC電力を変調し、前記仮想通信チャネルに一意である周波数の関数に従って所定の間隔で前記AC電力上へ一連のスタティックパルスを符号化させる
コンピュータ実行可能命令を格納させた非一時的なコンピュータ可読媒体。
【請求項１４】
各スタティックパルスは約0.00125ボルトの大きさを有する、請求項13に記載のコンピュータ可読媒体。
【請求項１５】
前記関数は
【数３】
2015537480.tif 000010
である、請求項13に記載のコンピュータ可読媒体。
【請求項１６】
前記データパケットは受信側のアドレスを含み、前記アドレスは、前記電源に関連付けられた識別番号、前記コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、前記送信側から前記受信側に送信される第1のpingのクロックタイム、前記コンピュータのリアルタイムクロックからのクロックタイム値、プロセッサの速度、ランダム関数、および入出力誤差時間のうちの少なくとも1つを含む、請求項13に記載のコンピュータ可読媒体。
【請求項１７】
前記スタティックパルスの各々は、前記データパケット中の個々のデータビットに対応する論理状態の変化を表す、請求項13に記載のコンピュータ可読媒体。
【請求項１８】
コンピュータによる実行時に、前記コンピュータに
前記送信側に関連付けられた一意のアドレスを生成させ、
前記電源を変調させ、公共配電系統を経由して一連のpingを転送するために前記AC電力波形上へ一連のスタティックパルスを符号化させ、前記一連のスタティックパルスは、前記一意のアドレスを用いた前記一連のpingの符号化に対応し、
受信側のアドレスを含めて、肯定応答信号を前記受信側から受信させ、
前記受信側の前記アドレスに基づいて前記仮想通信接続を設けさせる
コンピュータ実行可能命令をさらに備える、請求項13に記載のコンピュータ可読媒体。
【請求項１９】
コンピュータによる実行時に、前記コンピュータに
仮想通信チャネルを介して、および前記コンピュータのプロセッサと前記コンピュータの電源の間に結合されたインタフェースを介して、データ通信の要求を受信させ、
前記要求に肯定応答させ、
前記仮想通信チャネルに一意の周波数の関数に従って所定の間隔で符号化されたデータを受信させ、
前記関数に基づいてデータパケットを復号させる
コンピュータ実行可能命令を格納させた非一時的なコンピュータ可読媒体。
【請求項２０】
各スタティックパルスは約0.00125ボルトの大きさを有する、請求項19に記載のコンピュータ可読媒体。
【請求項２１】
前記関数は
【数４】
2015537480.tif 000011
の逆である、請求項19に記載のコンピュータ可読媒体。
【請求項２２】
前記データパケットは前記受信側のアドレスを含み、前記アドレスは、送信側の前記電源に関連付けられた識別番号、前記送信側コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、前記送信側から前記受信側に送信される第1のpingのクロックタイム、前記送信側コンピュータのリアルタイムクロックからのクロックタイム値、送信側プロセッサの速度、ランダム関数、および入出力誤差時間のうちの少なくとも1つを含む、請求項19に記載のコンピュータ可読媒体。
【請求項２３】
スタティックパルスの各々は、前記データパケット中の個々のデータビットに対応する論理状態の変化を表す、請求項19に記載のコンピュータ可読媒体。
【請求項２４】
コンピュータによる実行時に、前記コンピュータに
一連のpingの符号化に対応する一連のスタティックパルス、前記AC電力波形上での一連のスタティックパルスを、前記プロセッサと前記電源の間に結合された前記インタフェースを介して前記プロセッサによって受信させ、前記一連のスタティックパルスは前記一連のpingの符号化および一意のアドレスに対応し、
前記一意のアドレスに基づいて前記仮想通信チャネルを確立させる
コンピュータ実行可能命令をさらに含む、請求項19に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、米国特許法第119条(e)に基づき、2011年11月22日に出願した「Gigabit data transmission over power lines based on PC software means」という名称の米国仮特許出願第61/219,199号の優先権を主張するものであり、同仮特許出願の全体は参照により本明細書に組み込まれる。
【０００２】
本発明の実施形態は、一般に電力線を経由したデータ通信に関し、より詳細には、本明細書では電力グリッドとも呼ばれる分岐した公共配電系統(branched utility power distribution system)を経由してデータを転送するための方法および装置に関する。
【背景技術】
【０００３】
従来のキャリア周波数システムは、一般に、高圧電流用公共電力線を経由したデータ通信のために使用される。既存の配電インフラストラクチャは、少なくとも任意の所与の電力グリッドの及ぶ地理的範囲内では、ほぼすべての家庭および建物と広く相互接続されているので、既存の配電インフラストラクチャを利用することが望ましい。従来の電力線通信システムは、変調されたキャリア信号を配線系統に印加することによって動作する。異なるタイプの電力線通信は、使用される電力配線の信号伝送特性に応じて、異なる周波数帯域を使用する。しかしながら、大部分の国の配電系統は、元来、50〜60Hzの周波数での交流(AC)電力の伝送を目的としていたので、電力ワイヤ回路の既存のインフラストラクチャは、より高い周波数を搬送する限られた能力しか持たない。これは、特に、帯域幅ボトルネックを示すことがある、分配システムの「最後の1マイル」すなわち最終区間(leg)以内の場合である。そのうえ、データ通信速度は、通信デバイス間の距離に反比例することがある。したがって、信号伝搬問題は、従来の電力線通信の限定的要因である。
【０００４】
電力線ブロードバンド(BPL)は、既存の配電インフラストラクチャを経由した比較的高速のデジタルデータ伝送を可能にする電力線通信の別の従来の方法である。BPLは、他の無線通信サービスに割り当てられた無線スペクトルの一部を使用する。しかしながら、無線干渉および標準以下の配線は、BPLシステムの性能において限定的な要因である。
【発明の概要】
【課題を解決するための手段】
【０００５】
一実施形態によれば、公共配電網を経由して伝搬する交流(AC)電力波形上でデータを送信元から宛先に転送するコンピュータ実装方法であって、ここで、コンピュータは、公共配電網に電源を介して動作可能に結合されたプロセッサを含み、この方法は、配電網を経由して要求を送信し、配電網上の送信元と宛先の間に仮想通信チャネルを設けることを含む。この方法は、仮想通信チャネルによって送信元から宛先に送信されるべきデータパケットをプロセッサによって生成すること、および電源から得られた電力を変調し、仮想通信チャネルに一意である周波数の関数(function of frequency)に従って所定の間隔でAC電力上へ一連のスタティックパルスを符号化することをさらに含む。
【０００６】
いくつかの実施形態では、各スタティックパルスは、約0.00125ボルトの大きさを有することができる。いくつかの実施形態では、関数は、
【０００７】
【数１】
2015537480.tif 000003
【０００８】
であってよい。
【０００９】
いくつかの実施形態では、データパケットは、受信側のアドレスを含むことができる。このアドレスは、電源に関連付けられた識別番号、コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、送信側から受信側に送信される第1のpingのクロックタイム、コンピュータのリアルタイムクロックからのクロックタイム値、プロセッサの速度、ランダム関数、および/または入出力誤差時間を含んでよい。いくつかの実施形態では、スタティックパルスの各々は、データパケット中の個々のデータビットに対応する論理状態の変化を表すことができる。
【００１０】
いくつかの実施形態では、方法は、送信側に関連付けられた一意のアドレスをプロセッサによって生成すること、電源を変調し、公共配電系統を経由して一連のpingを転送するためにAC電力波形上へ一連のスタティックパルスを符号化すること、受信側のアドレスを含めて、肯定応答信号を受信側から受信すること、および受信側のアドレスに基づいて仮想通信チャネルを設けることをさらに含むことができる。一連のスタティックパルスは、一意のアドレスを用いた一連のpingの符号化に対応することができる。
【００１１】
一実施形態によれば、公共配電系統を経由して伝搬する交流(AC)電力波形上でデータを送信元から宛先に転送するコンピュータ実装方法であって、ここで、このコンピュータは、分岐した公共配電系統に電源を介して動作可能に結合されたプロセッサを含み、この方法は、プロセッサによって仮想通信チャネルを介して、およびプロセッサと電源の間に結合されたインタフェースを介して、データ通信の要求を受信すること、この要求に肯定応答すること、仮想通信チャネルに一意の周波数の関数に従って所定の間隔で符号化されたデータを受信すること、およびこの関数に基づいてデータパケットをプロセッサによって復号することを含む。
【００１２】
いくつかの実施形態では、各スタティックパルスは約0.00125ボルトの大きさを有することができる。いくつかの実施形態では、関数は、
【００１３】
【数２】
2015537480.tif 000004
【００１４】
の逆であってよい。
【００１５】
いくつかの実施形態では、データパケットは、受信側のアドレスを含むことができる。このアドレスは、送信側の電源に関連付けられた識別番号、送信側コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、送信側から受信側に送信される第1のpingのクロックタイム、送信側コンピュータのリアルタイムクロックからのクロックタイム値、送信側プロセッサの速度、ランダム関数、および/または入出力誤差時間を含んでよい。いくつかの実施形態では、スタティックパルスの各々は、データパケット中の個々のデータビットに対応する論理状態の変化を表すことができる。
【００１６】
いくつかの実施形態では、方法は、一連のpingの符号化に対応する一連のスタティックパルス、AC電力波形上での一連のスタティックパルスを、プロセッサと電源の間に結合されたインタフェースを介してプロセッサによって受信すること、および一意のアドレスに基づいて仮想通信チャネルを設けることをさらに含むことができる。一連のスタティックパルスは、一連のpingの符号化および一意のアドレスに対応することができる。
【００１７】
一実施形態によれば、非一時的なコンピュータ可読媒体は、コンピュータによる実行時にコンピュータに配電網を経由して要求を送信し、配電網上の送信元と宛先の間に仮想通信チャネルを設けさせ、仮想通信チャネルによって送信元から宛先に送信されるべきデータパケットを生成させ、電源から得られた電力を変調し仮想通信チャネルに一意である周波数の関数に従って所定の間隔でAC電力上へ一連のスタティックパルスを符号化させるコンピュータ実行可能命令を格納している。
【００１８】
いくつかの実施形態では、各スタティックパルスは、約0.00125ボルトの大きさを有することができる。いくつかの実施形態では、関数は、
【００１９】
【数３】
2015537480.tif 000005
【００２０】
であってよい。
【００２１】
いくつかの実施形態では、データパケットは、受信側のアドレスを含むことができる。アドレスは、電源に関連付けられた識別番号、コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、送信側から受信側に送信される第1のpingのクロックタイム、コンピュータのリアルタイムクロックからのクロックタイム値、プロセッサの速度、ランダム関数、および/または入出力誤差時間を含んでよい。いくつかの実施形態では、スタティックパルスの各々は、データパケット中の個々のデータビットに対応する論理状態の変化を表すことができる。
【００２２】
いくつかの実施形態では、コンピュータ可読媒体は、コンピュータによる実行時にコンピュータに送信側に関連付けられた一意のアドレスを生成させ、電源を変調させ、公共配電系統を介して一連のpingを転送するためにAC電力波形上へ一連のスタティックパルスを符号化させ、この一連のスタティックパルスは、一意のアドレスを用いた一連のpingの符号化に対応し、受信側のアドレスを含めて、肯定応答信号を受信側から受信し、受信側のアドレスに基づいて仮想通信接続を設けさせるコンピュータ実行可能命令をさらに含むことができる。
【００２３】
一実施形態によれば、非一時的なコンピュータ可読媒体は、コンピュータによる実行時に、このコンピュータに、仮想通信チャネルを介して、およびコンピュータのプロセッサとコンピュータの電源の間に結合されたインタフェースを介して、データ通信の要求を受信させ、この要求に肯定応答させ、仮想通信チャネルに一意の周波数の関数に従って所定の間隔で符号化されたデータを受信させ、関数に基づいてデータパケットを復号させるコンピュータ実行可能命令を格納させている。
【００２４】
いくつかの実施形態では、各スタティックパルスは、約0.00125ボルトの大きさを有する。いくつかの実施形態では、関数は、
【００２５】
【数４】
2015537480.tif 000006
【００２６】
の逆であってよい。
【００２７】
いくつかの実施形態では、データパケットは、受信側のアドレスを含むことができる。このアドレスは、送信側の電源に関連付けられた識別番号、送信側コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、送信側から受信側に送信される第1のpingのクロックタイム、送信側コンピュータのリアルタイムクロックからのクロックタイム値、送信側プロセッサの速度、ランダム関数、および/または入出力誤差時間を含んでよい。いくつかの実施形態では、スタティックパルスの各々は、データパケット中の個々のデータビットに対応する論理状態の変化を表すことができる。
【００２８】
いくつかの実施形態では、コンピュータ可読媒体は、コンピュータによる実行時に、このコンピュータに一連のpingの符号化に対応する一連のスタティックパルス、AC電力波形上での一連のスタティックパルスを、プロセッサと電源の間に結合されたインタフェースを介してプロセッサによって受信させ、一連のスタティックパルスは一連のpingの符号化および一意のアドレスに対応し、この一意のアドレスに基づいて仮想通信チャネルを確立させるコンピュータ実行可能命令をさらに含むことができる。
【００２９】
添付の図面は、一定の縮尺で描かれることを意図したものではない。図面中、さまざまな図に示される同一またはほぼ同一の各構成要素は、同じ数字で表される。わかりやすいように、すべての図面において、すべての構成要素が標示されるとは限らないことがある。
【図面の簡単な説明】
【００３０】
【図１】一実施形態による1つまたは複数の電力線に電気的に接続された複数のコンピューティングデバイスを有する電気電力グリッドの一例の簡略化されたブロック図である。
【図２】一実施形態による図1のデバイスのうちの2つの一例の簡略化されたブロック図である。
【図３】一実施形態による電力線を経由してデータを送信する方法の一例を示す流れ図である。
【図４】一実施形態により送信側と受信側の間の電力線を経由して仮想接続を確立するステップの一例を示す流れ図である。
【図５】一実施形態によりデータパケットを生成するステップの一例を示す流れ図である。
【図６】例示的な実施形態において方法のいずれかを実行するために使用され得る例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００３１】
さまざまな実施形態は、電力グリッドまたは電気グリッドとも呼ばれる分岐した公共配電系統において見られるものなどの、電力線を経由してデータを転送するための方法および装置を含む。電力グリッドは、発電所、発電所から電力消費者に電力を搬送するための送電線、および/または最終配達の目的で電圧を低下させるための変圧器を含むことができる。電力グリッドのトポロジは、さまざまな特性を有することができる。しかしながら、一般に、電力グリッドは、多数のエンドポイント(たとえば、電力を消費するデバイス)を相互接続する電気回路網である。いくつかの実施形態では、データは、任意のエンドポイントでグリッドに接続されたデバイス間で、デバイス間の距離またはデバイスを接続する電力グリッドを通る経路に関係なく、電力グリッドを経由して転送可能である。
【００３２】
本明細書で使用される場合、「電力線」という用語は、電力会社によって使用されるものなどの、従来の電気送電線および配電網を含む、交流を介してエネルギーを転送することが可能な任意の回路を意味し、回路は1つまたは複数の物理的電力線を備えることがあるので、用語の意味を単一の電力線に制限することを意図するものではない。
【００３３】
一実施形態によれば、電力線を経由してデータを通信する方法の一例は、データを表し送信元デバイスと宛先デバイス(たとえば別のコンピュータ)の間の仮想通信チャネルに関連付けられる特定周波数に基づく関数により、コンピュータなどの送信元デバイスの電源の電力出力を変調することを含む。電源の電力出力は、電源に、電源が接続された電力グリッドから周波数関数によって決定される間隔で増加した量の電力を瞬間的に得るようにさせるような形で(たとえば、CPUまたは電源に結合された他のプロセッサによって)変調される。得られる電力が瞬間的に増加することによって、スタティックパルスが電力波形に印加され、これによって、いかなる負荷をも印加することなく電力グリッド全体にわたって伝搬し、最終的には宛先デバイスに到達するが、この宛先デバイスもグリッドに接続されている。一連のスタティックパルスは、送信元デバイスから宛先デバイスに送信されているデータを表し、宛先デバイスによって受信され、データを送信するときに送信元デバイスによって使用される周波数の関数の逆と解釈可能である。
【００３４】
変調のタイミングは、データを送信する前に仮想接続が最初に確立されるとき確立される、送信元デバイスと宛先デバイスの間の仮想接続に一意である周波数の関数によって調整され、データの論理状態は送信される。したがって、送信元デバイスから宛先デバイスに転送されているデータは、一意の周波数関数によって画定された所定の間隔で電力波形に印加されるスタティックパルスのパターンによって少なくとも部分的に表される。データ中の各ビットの論理状態または連続したビット間の論理状態の変化は、各所定の間隔におけるスタティックパルスの存在および/または不在によって表され得る。いくつかの実施形態では、データは、仮想接続につき最大1013ビット/秒で電力線を経由して転送可能である。
【００３５】
図1は、電力グリッド100の少なくとも一部を形成することができる、1つまたは複数の電力線120に電気的に接続された複数のコンピューティングデバイス110を有する電気電力グリッド100の一例のブロック図である。各デバイス110は同じ電力グリッド100に接続されるので、各デバイス110は、同様に電力線120を介してグリッド100に接続されるすべての他のデバイス110と電気通信する。各デバイス110は、たとえば従来の公共電源差し込み口130を介して、グリッドに接続され得る。当業者には理解されるように、電力グリッド100は、電力線120に加えて、1つまたは複数の発電所、変電所、および/または変圧器を含むことができ、これらを通って、電力が流れてよい。
【００３６】
図2は、一実施形態による図1のデバイス110のうちの2つの一例の簡略化されたブロック図である。各デバイス110は、中央処理装置(CPU)または他のタイプのプロセッサ112を有する電力グリッドに接続されたサーバまたは他のコンピューティングデバイス(たとえば、タブレットコンピュータ、ラップトップ、セルラー式電話、携帯情報端末など)と、電力線120を介して電力グリッド100に結合されるように構成された電源114と、プロセッサおよび電源に結合され、これらの間に結合されたインタフェース116とを含んでよい。プロセッサ112は、ソフトウェアまたはファームウェアプログラムにおいて符号化される命令などの命令を実行するように構成される。一実施形態では、本明細書で、たとえば図3に関して説明するように、命令は、プロセッサ112に、電力線120を経由してデータを送信および/または受信するプロセスを実行させるように構成される。いくつかの実施形態によれば、データは、各コンピューティングデバイスが従来の電源コード(power code)などによって電力グリッドに電気的に接続される限り、コンピューティングデバイスのハードウェアの修正なしに、本発明の実施形態との使用に適合されたプロセッサによって実行されるソフトウェア命令および/またはファームウェア命令を使用して、電力グリッドを経由してコンピューティングデバイス間で転送可能である。一実施形態では、デバイス110のうちの1つがサーバと呼ばれ、1つがクライアントと呼ばれる。しかしながら、各デバイス110は、電力線120を経由してデータを送信および/または受信するように構成可能である。クライアントは、たとえば、サーバとの仮想接続を確立および制御するためのマスタデバイスとして機能することがあるが、他の点では、データを送信および/または受信することに関しては、サーバと実質的に同じように機能する。
【００３７】
一実施形態では、データは、送信元デバイスと呼ばれるデバイス110のうちの1つにデジタル形式で存在するまたは生成される。サーバまたはクライアントは、データ転送の方向に応じて、送信元デバイスとして機能してよい。データは、データをデジタル形式から周波数の関数に変換することによって、電力線120を経由してデバイス110のうちの別の1つのデバイスに転送可能である。周波数関数は、データの各ビット(またはバイナリ値)が、宛先デバイスと呼ばれる別のデバイス110に電力線120および電力グリッド100を経由して通信される電力波形122(たとえば50または60HzのAC電力)に印加されるスタティックパルスとして表されるように、インタフェース116を介して、電源114の電力出力を変調するために使用可能である。次に、宛先デバイスのプロセッサ112が、周波数関数に対応する電力波形122上で特定の間隔で、対応する電源114およびインタフェース116を介して、電力波形122上でのスタティックパルスの存在または不在を検出する。そのような検出は、送信元デバイスによって使用される周波数関数の逆を到来電力波形122に適用することによって達成される。この実施形態では、スタティックパルスは、電力グリッド100に負荷を印加せず、電力波形122の位相または大きさを変えず、いくつかの従来の技法とは異なり、キャリア信号を電力線に印加したり無線スペクトルのさまざまな部分を利用したりしない。一実施形態では、スタティックパルスは、約0.00125ボルトの大きさを有する。
【００３８】
上記で説明したように、データ中の各ビットの論理状態または連続したビット間の論理状態の変化は、電力波形122上で所定の間隔でのスタティックパルスの存在または不在によって、周波数の形態で表すことが可能である。たとえば、周波数関数に対応する間隔でのスタティックパルスの存在は、論理0から論理1へのまたはその逆のデータの状態の変化を示すことがあり、その間隔におけるスタティックパルスの不在は、データ内の状態の変化がないことを示すことがある(すなわち、直前のビットが論理0であった場合、次のビットは論理0であり、直前のビットが論理1であった場合、次のビットは論理1である)。別の例では、その間隔でのスタティックパルスの存在は、現在のビットが論理1(または論理0)であることを示すことがあり、その間隔でのスタティックパルスの不在は、現在のビットが論理0(または論理1)であることを示すことがある。宛先デバイスは、送信元デバイスによって使用される同じ周波数関数の逆としてデータを検出し、データをデジタル形式に変換する。
【００３９】
一実施形態では、各デバイス110は、プロセッサ112による実行時にプロセッサに少なくとも2つのプロセスすなわち同期プロセスおよびデータ送信/受信プロセスを実行させる命令を含むメモリ124を含む。同期プロセスは、実行可能コードファイルを起動することによって始まる。実行可能コードは、デバイス110が接続されるメインソケットまたはAC電力コンセント(たとえば図1の差し込み口130)を一意に識別する。同期プロセスは、電気グリッド上で接続され、識別するためのコード識別情報またはコード識別子を有する別のデバイス110を探す。データ送信/受信プロセスは、データを、電力線120を経由して送信元デバイスから宛先デバイスに送信させる。宛先デバイスは、指定されたファイルを受信するために一定量の時間を見込み、そのファイルを受信すると、送信元デバイスに肯定応答を送信する。送信元デバイスは、データを複数のパケットに分解し、パケットのすべてが宛先デバイスに送信されるまでパケットのすべてを送信する。宛先デバイスは、時系列的な順序でパケットを組み立て、データを1つにする。
【００４０】
図3は、一実施形態による電力線を経由してデータを送信する方法300の一例を示す流れ図である。方法300は、送信元デバイスすなわちデータを宛先デバイスに送信しているデバイスの観点から説明されていることが理解されよう。サーバとクライアントの両方が方法300を使用してデータを他方に送信することがあるので、送信元デバイスはサーバであってもよいし、クライアントであってもよい。データを送信する間、それぞれのデバイスは送信元デバイスと呼ばれる。データを受信する間、それぞれのデバイスは宛先デバイスと呼ばれる。したがって、いかなるデバイスも、データフローの方向に応じて、送信元デバイス、宛先デバイス、または両方のどれかとして機能することができる。
【００４１】
データが送信元デバイスから宛先デバイスに電力線を経由して送信可能である前、仮想接続が、送信元デバイスと宛先デバイスの間で確立されなければならない(ステップ302)。仮想接続は、送信元デバイスの一意のアドレス(すなわち、アドレスは、デバイスが通信し得る他の任意のデバイスのアドレスとは異なる)、宛先デバイスの一意のアドレス、およびデータが送信元デバイスから宛先デバイスに転送され得るルートまたはデータ経路のうちの1つまたは複数を含んでよい。ルートは、経路に沿ってある点から別の点にデータを転送するための中継器または継電器として機能する他のデバイスを物理的に含むことができる。仮想接続が確立された後、データは、電源を変調および/または復調するための基礎として仮想接続を使用して、送信元デバイスから宛先デバイスに電力線を経由して転送可能である。
【００４２】
別の実施形態では、宛先デバイスは、送信元デバイスの一意のアドレスおよび送信元デバイスのポートアドレスを使用して、送信元デバイスとの仮想接続を確立する。送信元デバイスは、データを宛先デバイスに送信する前に宛先デバイスが仮想接続を開くのを待つ。宛先デバイスは、仮想接続をいつ閉じるべきか制御する。一実施形態では、2つ以上の仮想接続が送信元デバイスと宛先デバイスの間に確立可能である。
【００４３】
ステップ304では、送信元デバイスから宛先デバイスに電力線を経由して送信または転送されるべきデータパケットが送信元デバイスによって生成される。このデータパケットは、送信されるべきデータの少なくとも一部分を含み、宛先デバイスの宛先アドレス、ルーティング情報、タイミング情報、および/または誤り検出情報などの追加情報を含んでよい。各データパケットの形式および内容は、既知であり送信元デバイスと宛先デバイスの両方によって使用されるデータ転送プロトコルと関連付けられる。そのようなプロトコルの一例について、以下で説明する。データの量が、単一のデータパケット内に含むことが可能な量よりも多い場合、複数のデータパケットが、データのすべてを送信するために、必要に応じて生成され得る。宛先デバイスは、パケットが受信されるとき、データパケットのすべてを収集し、収集したパケットからデータを再び組み立てる。
【００４４】
ステップ306では、送信元デバイスは、プロセッサと送信元デバイスの電源の間に結合されたインタフェースを介して送信元デバイスのプロセッサによって、一連のスタティックパルスを電力線上に印加するために電源の電力出力を変調する。電力線は、分岐した公共配電系統を経由してデータパケットを転送するための一連のスタティックパルスを有するAC電力波形を搬送する。この一連のスタティックパルスは、仮想接続に一意である周波数の関数に従ってAC電力上の所定の間隔でのデータパケットの符号化することに対応する。言い換えれば、送信元デバイスと別のデバイスの間の他の仮想接続は、データパケットを符号化するために同じ周波数関数を使用しない。送信元デバイスは、データを宛先デバイスに送信するために一意の周波数関数を使用するが、宛先デバイスは、送信元デバイスによって送信されたデータを受信するために、同じ周波数関数の逆を使用する。このようにして、送信元デバイスおよび宛先デバイスは、周波数関数に従って符号化されるデータを交換することが可能であり、この周波数関数は、この2つのデバイスによって知られており、使用され、他の任意のデバイスには知られていなくても、または使用されなくてもよく、実際には、送信元デバイスと宛先デバイスの間の仮想通信チャネルを設ける。別の実施形態では、1つまたは複数のデバイス(たとえば、送信元デバイスおよび/または宛先デバイス)は、複数の仮想接続を経由して、たとえば、各々が異なる仮想接続と関連付けられた異なる通信ポート番号を使用することによって、データを交換することができる。この実施形態では、各通信ポートは、データを転送するための異なる一意の周波数関数と関連付け可能である。
【００４５】
一実施形態では、周波数関数は
【００４６】
【数５】
2015537480.tif 000007
【００４７】
である。
【００４８】
一実施形態では、方法300は、送信側および受信側上で実行されるオペレーティングシステムまたは他のアプリケーションにおいて関数またはルーチンとして実施可能である。この関数またはルーチンは、たとえばクロック、割り込み、または他のタイミング機構を使用して所定の周波数で繰り返し実行され得る。
【００４９】
図4は、一実施形態により、図3のステップ302などにおいて、送信側と受信側の間の電力線を介して仮想接続を確立するステップの一例を示す流れ図である。ステップ402では、送信元デバイスは、電力線を経由してデータを送信するときに宛先デバイスの識別情報を表すために使用可能である一意のアドレスを生成する。たとえば、この一意のアドレスは、宛先デバイスによって送信されたデータを受信する他の任意のデバイスに対する宛先デバイスを識別するために使用されてもよいし、かつ/または宛先デバイスにデータを送信するために他の任意のデバイスによって使用されてもよい。
【００５０】
ステップ404では、送信元デバイスは、電力線を経由して、送信元デバイスの一意のアドレスを含むpingメッセージ(たとえば、要求されていないデータ)を送信する。pingは、電力グリッド全体にわたってブロードキャストされ、アドレス指定された宛先デバイスによって受信されることを意図する。一実施形態では、送信元デバイスは、任意の長さの時間にわたって任意の数のping(たとえば、数十、数百、数千、またはそれ以上)を送信することができる。宛先デバイスが送信元デバイスからpingを受信すると、宛先デバイスは、電力線を経由して肯定応答メッセージを送信元デバイスに返送する。したがって、ステップ406では、送信元デバイスは肯定応答メッセージをリッスンする。ステップ408では、肯定応答が受信されない場合、送信元デバイスはステップ404に戻り、pingを引き続き送信することができる。一実施形態では、送信元デバイスが肯定応答メッセージをリッスンしている間(ステップ406および408)、送信元デバイスは、ステップ404でpingを引き続き送信することができる。しかしながら、ステップ408において、送信元デバイスが肯定応答メッセージを受信した場合、ステップ410において、仮想接続が送信元デバイスと宛先デバイスの間に確立される。仮想接続に関連付けられた経路情報は、サーバまたは送信元デバイスのデータベースに格納され得る。この経路情報は、送信元デバイスと宛先デバイスの間の仮想接続が確立されるまたは開いている限り送信元デバイスから宛先デバイスに電力グリッドを経由してデータをルーティングするために使用可能である。
【００５１】
仮想接続がひとたび確立されると、送信元デバイスは、仮想接続を使用して宛先デバイスに送信されるべきデータパケットを生成することができる。図5は、一実施形態により、図3のステップ304などにおいて、データパケットを生成するステップの一例を示す流れ図である。ステップ502では、宛先デバイスに送信するべきデータがない場合、プロセスはステップ502を繰り返す。データは、たとえば、送信元デバイスを実行するアプリケーションまたはオペレーティングシステム(たとえば、ファイル転送プロトコル(FTP)プログラム、ウェブブラウザ、メールプログラム、データベースサーバ、またはクライアントなど)によって提供され得る。しかしながら、送信するべきデータがある場合、送信元デバイスは、ステップ504において、データを含む1つまたは複数のデータパケットを生成する。すなわち、データは分割され、パケット化されてよく、各パケットは、宛先デバイスに一度に1つ送信可能である。一例では、各データパケットは、16ビットのデータを含むことができる。別の例では、各データパケットは、ステップ506において、図5に示されるものなどの、宛先デバイスの一意のアドレスおよび/またはデータパケットのルーティング情報を含むヘッダまたはフィールドを含むことができる。さらに別の例では、第1のデータパケットは、転送されるべきデータの量全体のサイズ、転送されるべきデータパケットの総数、および/または送信されるべきスタティックパルスの数を含むことができる。後続のデータパケットは、ペイロード(すなわちデータの一部分)を含むことができる。
【００５２】
データパケットが生成され、宛先デバイスの一意のアドレスおよび/またはデータパケットのルーティング情報を含むヘッダまたはフィールドで刻印(stamp)された後、ステップ508において、送信元デバイスは、電源の電力出力を変調する(たとえば図3のステップ306)ことなどによって、周波数関数に従って一連のスタティックパルスを生成する。周波数関数は仮想接続に一意であってよく、送信元デバイスから宛先デバイスに転送されているデータを表すスタティックパルスを生成するために使用され得る。
【００５３】
一実施形態では、データパケットは、転送されるべきデータの少なくとも一部分に加えて、受信側のアドレスを含み、このアドレスは、電源に関連付けられた識別番号、コンピュータの基本入出力システム(BIOS)に関連付けられた識別番号、送信側から受信側に送信される第1のpingのクロックタイム、コンピュータのリアルタイムクロックからのクロックタイム値、プロセッサの速度、ランダム関数、および/または入出力誤差時間のうちの少なくとも1つを含む。上記の要素のうちの1つまたは複数は、受信側に対して送信側を一意に識別するため、ならびに/またはルーティングおよび/もしくは誤り検出の目的のために使用され得る。
【００５４】
図6は、例示的な実施形態において方法のいずれかを実行するために使用され得る例示的なコンピューティングデバイス1000のブロック図である。コンピューティングデバイス1000は、モバイルコンピューティングデバイスもしくは通信デバイス(たとえば、AppleのiPhone(登録商標)モバイルデバイス)、ラップトップ、ハンドヘルドコンピュータ、タブレットコンピュータ(たとえば、AppleのiPad(登録商標)タブレットコンピュータ)、または通信が可能で本明細書で説明する動作を実行するのに十分なプロセッサ能力およびメモリ容量を有する他の形態のコンピューティングデバイスもしくは電気通信デバイスなどの任意の適切なコンピューティングデバイスまたは通信デバイスまたはコンピューティングシステムまたは通信システムであってよい。
【００５５】
コンピューティングデバイス1000は、例示的な実施形態を実施するための1つまたは複数のコンピュータ実行可能命令、プログラム、またはソフトウェアを格納するための1つまたは複数の非一時的なコンピュータ可読媒体を含む。非一時的なコンピュータ可読媒体としては、限定するものではないが、1つまたは複数のタイプのハードウェアメモリ、非一時的な有形媒体(たとえば、1つまたは複数の磁気ストレージディスク、1つまたは複数の光ディスク、1つまたは複数のUSBフラッシュドライブ)などがあり得る。たとえば、コンピューティングデバイス1000に含まれるメモリ1006は、例示的な実施形態を実施するためのコンピュータ可読かつコンピュータ実行可能な命令、プログラム、またはソフトウェアを格納することができる。メモリ1006としては、コンピュータシステムメモリまたはDRAM、SRAM、EDO RAMなどのランダムアクセスメモリなどがあり得る。メモリ1006としては、他のタイプのメモリも、またはそれらの組み合わせがあり得る。
【００５６】
コンピューティングデバイス1000は、メモリ1006に格納されたコンピュータ可読かつコンピュータ実行可能な命令またはソフトウェアおよびシステムハードウェアを制御するための他のプログラムを実行するための、プロセッサ1002および関連するコア1004、および任意選択で、1つまたは複数の追加プロセッサ1002'および関連するコア1004'(たとえば、複数のプロセッサ/コアを有するコンピュータシステムの場合)も含む。プロセッサ1002およびプロセッサ1002'は各々、シングルコアプロセッサであってもよいし、複数のコア(1004および1004')プロセッサであってもよい。
【００５７】
コンピューティングデバイス1000は、電源コード1042に電気的に接続された電源1040をさらに含む。電源1040は、インタフェース1044を介してプロセッサ1002および/または他のプロセッサ1002'に電気的に接続され得る。電源コード1042は、公共電力などの電力グリッドに電気的に接続されるように構成される。
【００５８】
仮想化は、インフラストラクチャおよびコンピューティングデバイス内のリソースが動的に共有され得るように、コンピューティングデバイス1000において用いられることがある。仮想マシン1014は、プロセスが複数のコンピューティングリソースではなく1つのコンピューティングリソースのみを使用しているように見えるように、複数のプロセッサ上で実行されるプロセスを扱うために提供され得る。複数の仮想マシンはまた、1つのプロセッサとともに使用され得る。
【００５９】
ユーザは、仮想ディスプレイデバイス1020および少なくとも1つの関連するユーザインタフェース1025によって、コンピューティングデバイス1000と対話することができる。たとえば、仮想ディスプレイデバイス1020は、視覚的表示装置またはスピーカを含むことがある。関連するユーザインタフェース1025は、たとえば、ポインティングデバイス(たとえばマウス)、マルチポイントタッチインタフェース、タッチセンシティブスクリーン、カメラ、またはマイクロホンであってよい。図5に示されるように、プレゼンテーションデバイス1020は、関連するユーザインタフェース1025に連結され得る。連結された組み合わせの一例は、ユーザインタフェース1025と視覚的表示プレゼンテーションデバイス1020とを含むタッチセンシティブスクリーンである。プレゼンテーションデバイス1020およびユーザインタフェース1025は、他の用途も持つことがある。たとえば、モバイル通信デバイス上のマイクロホン1021およびスピーカ1022は、電話をかけ、ユーザから音声入力を受け取り、プロンプトをユーザに提供するために使用され得る。別の例として、マイクロホンは、コンピューティングデバイス1000によって処理可能かつ/またはコンピューティングデバイス1000に対して遠隔であるがこれと通信するデバイスによって処理可能である、聞き取れる問い合わせ、情報、および/または他の音声情報を入力するために使用され得る。しかしながら、プレゼンテーションデバイス1020は、関連するユーザインタフェース1025に連結される必要はない。たとえば、コンピューティングデバイス1000は、ユーザから入力を受け取るための他の入出力(I/O)デバイス、たとえば、キーボードまたは任意の適切なマルチポイントタッチインタフェース1008、ポインティングデバイス1010、マイクロホンを含むことができる。キーボード1008およびポインティングデバイス1010は、プレゼンテーションデバイス1020に結合され、ユーザインタフェース1025として使用され得る。コンピューティングデバイス1000は、他の適切な従来のI/O周辺機器を含むことができる。
【００６０】
コンピューティングデバイス1000は、データならびにデータ通信サービス1032の例示的な実施形態の一部分を実施するコンピュータ可読命令および/またはソフトウェアを格納するための、ハードドライブ、フラッシュメモリ、または他のコンピュータ可読媒体などの、1つまたは複数のストレージデバイス1030を含むことができる。例示的な実施形態では、データ通信サービス1032は、上記で図1〜図5に関して説明したものなど、電力線を経由してデータを送信および受信する態様を実施することができる。1つまたは複数の例示的なストレージデバイス1030はまた、データ通信サービス1032の一実施形態に関連付けられた構成データ、たとえばルーティングテーブルおよび/または一意のデバイスアドレスのリストを格納することができる。コンピューティングデバイス1000は、バス1035を介して1つまたは複数のストレージデバイス1030と通信し得る。バス1035は、パラレル接続および/またはビットシリアル接続を含むことができ、マルチドロップ(電気並列)トポロジまたはデイジーチェーントポロジで配線されてもよいし、USBの場合、切り替えハブによって接続されてもよい。
【００６１】
コンピューティングデバイス1000は、1つまたは複数のネットワークデバイス1022を介して1つまたは複数のネットワーク、たとえば、限定するものではないが、標準的な電話線、LANリンクもしくはWANリンク(たとえば、802.11、T1、T3、56kb、X.25)、ブロードバンド接続(たとえば、ISDN、フレームリレー、ATM)、ワイヤレス接続、コントローラエリアネットワーク(CAN)、または上記のうちのいずれかもしくはすべての何らかの組み合わせを含むさまざまな接続によってローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはインターネットのインタフェースとなるように構成されたネットワークインタフェース1012を含むことができる。ネットワークインタフェース1012は、内蔵ネットワークアダプタ、ネットワークインタフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、ワイヤレスネットワークアダプタ、USBネットワークアダプタ、モデム、または通信が可能な任意のタイプのネットワークに対するコンピューティングデバイス1000のインタフェースとなり本明細書で説明する動作を実行するに適した他の任意のデバイスを含むことができる。
【００６２】
コンピューティングデバイス1000は、Redmond、WashingtonのMicrosoft Corp.による任意のバージョンのMicrosoft(登録商標)Windows(登録商標)オペレーティングシステム、Unix(登録商標)オペレーティングシステムおよびLinux(登録商標)オペレーティングシステムの任意のバージョン、Appleによるマッキントッシュコンピュータ用の任意のバージョンのMacOS(登録商標)オペレーティングシステム、Mountain View、CaliforniaのGoogle, Inc.による任意のバージョンのAndroid(登録商標)オペレーティングシステム、任意の埋め込みオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースのオペレーティングシステム、所有権を有する任意のオペレーティングシステム、モバイルコンピューティングデバイスのための任意のオペレーティングシステム、またはコンピューティングデバイス上で実行され本明細書で説明する動作を実行することが可能な他の任意のオペレーティングシステムのいずれかなどの任意のオペレーティングシステム1016を実行することができる。例示的な実施形態では、オペレーティングシステム1016は、ネイティブモードまたはエミュレートされたモードで実行され得る。例示的な一実施形態では、オペレーティングシステム1016は、1つまたは複数のクラウドマシンインスタンス上で実行され得る。
【００６３】
このように本発明のいくつかの例示的な実施形態について説明してきたが、さまざまな改変、修正、および改善が当業者には容易に想到されることが理解されよう。そのような改変、修正、および改善は本開示の一部であることを意図するものであり、本発明の範囲内に含まれることを意図する。したがって、前述の説明および図面は、単なる例である。
【符号の説明】
【００６４】
100  電力グリッド、電気電力グリッド、コンピューティングデバイス
112  プロセッサ
114  電源
116  インタフェース
120  電力線
122  電力波形
124  メモリ
130  差し込み口
1000  コンピューティングデバイス
1002  プロセッサ
1002'  プロセッサ
1004  コア
1004'  コア
1006  メモリ
1008  マルチポイントタッチインタフェース、キーボード
1010  ポインティングデバイス
1012  ネットワークインタフェース
1014  仮想マシン
1016  オペレーティングシステム
1020  仮想ディスプレイデバイス、プレゼンテーションデバイス、視覚的表示プレゼンテーションデバイス
1021  マイクロホン
1022  スピーカ、ネットワークデバイス
1025  ユーザインタフェース
1030  ストレージデバイス
1032  データ通信サービス
1035  バス
1040  電源
1042  電源コード
1044  インタフェース
【図１】
2015537480.tif 000012
【図２】
2015537480.tif 000013
【図３】
2015537480.tif 000014
【図４】
2015537480.tif 000015
【図５】
2015537480.tif 000016
【図６】
2015537480.tif 000017
【国際調査報告】
2015537480.tif 000018