(57)【要約】  本発明は、ソフトウェア定義デバイスインタフェースシステム10と、ソフトウェア定義デバイスインタフェースと、ゲートウェイと、通信目的で特有の通信プロトコルを使用するデバイスのためのインタフェースを定義する方法とに関する。システム10は、複数の通信ピンを有するマイクロプロセッサ／処理装置12.1、12.2と、ソフトウェア／ファームウェアとを備える。ソフトウェア／ファームウェアは、通信目的で特定のデバイス30.1〜30.4によって使用される特有の通信プロトコルに基づいて、特有の通信プロトコルを実装するための構成命令をユーザから受け取ったときに、特定のデバイス30.1〜30.4を接続できる仮想ポートを形成するよう通信ピンの1つまたは複数を割り当てる／選択するように、実行時に構成される。ソフトウェア／ファームウェアはさらに、仮想ポートを通して特有の通信プロトコルを実装し、それにより、デバイスが仮想ポートのピンに接続されたときにマイクロプロセッサ／処理装置12.1、12.2とデバイス30.1〜30.4との間の通信を可能にするように構成される。
2019530939.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア定義デバイスインタフェースシステムであって、
複数の通信ピンを有するマイクロプロセッサと、
ソフトウェア／ファームウェアと、
を含み、前記ソフトウェア／ファームウェアが、通信目的で特定のデバイスによって使用される特有の通信プロトコルに基づいて、実行時に、
前記特有の通信プロトコルを実装するための構成命令をユーザから受け取ったときに、前記特定のデバイスを接続できる仮想ポートを形成するように前記通信ピンの1つまたは複数を割り当て／選択し、
前記仮想ポートを通して前記特有の通信プロトコルを実装し、それにより、前記デバイスが前記仮想ポートの前記ピンに接続されたときに前記マイクロプロセッサと前記デバイスとの間の通信を可能にする
ように構成された、ソフトウェア定義デバイスインタフェースシステム。
【請求項２】
前記通信ピンが汎用入出力(GPIO)ピンである、請求項1に記載のシステム。
【請求項３】
前記マイクロプロセッサが、中央処理装置であるかまたは中央処理装置の一部を形成する、請求項2に記載のシステム。
【請求項４】
前記ソフトウェア／ファームウェアが、前記仮想ポートを介して情報を受信するために割込みロジックを利用するように構成された、請求項2に記載のシステム。
【請求項５】
前記ソフトウェア／ファームウェアが、前記仮想ポートを介して情報を送信するために信号発生器を利用するように構成された、請求項2に記載のシステム。
【請求項６】
前記ソフトウェア／ファームウェアが、実行時に、前記仮想ポートの一部を形成するように一群のGPIOピンをグループ化し／割り当て、前記一群のGPIOピンを利用して前記特有の通信プロトコルを実装するように構成された、請求項2に記載のシステム。
【請求項７】
前記ソフトウェア／ファームウェアが、前記特有の通信プロトコルを利用するデバイスを接続できる2つ以上の仮想ポートを形成するために、実行時に、2つ以上の通信プロトコルを実装するように構成された、請求項6に記載のシステム。
【請求項８】
1つまたは複数の専用ネイティブマイクロプロセッサ通信ポートを含む、請求項2に記載のシステム。
【請求項９】
前記専用ポートがユニバーサル非同期受信機／送信機(UART)ポートを含む、請求項8に記載のシステム。
【請求項１０】
前記ファームウェア／ソフトウェアが、実行時に、前記マイクロプロセッサのソフトウェア構成可能タイマカウンタ／クロックを可変信号発生器として使用するように構成された、請求項2に記載のシステム。
【請求項１１】
前記ファームウェア／ソフトウェアが、サンプリングプロセスを開始／始動するために、前記仮想ポートを形成する前記GPIOピンの1つまたは複数のピン上で立上り／立下り割込みを実装するように構成され、前記サンプリングプロセスにより、前記マイクロプロセッサのソフトウェア構成可能タイマカウンタによって設定された周波数で前記ピンがサンプリングされる／読み取られる、請求項2に記載のシステム。
【請求項１２】
前記マイクロプロセッサが、特定のデバイスのための特有の通信プロトコルを実装するための通信プロトコル情報を、リモートコンピューティングデバイス／サーバから通信ネットワークを介して、プログラムに従って受け取るように構成された、請求項2に記載のシステム。
【請求項１３】
前記システムはプログラム可能な電圧切替回路を含み、前記プログラム可能な電圧切替回路が、使用時に前記通信ピンと前記デバイスとの間に接続され、前記通信ピンおよび前記デバイスのそれぞれの特有の電圧要件に応じて、一方における前記通信ピンと他方における前記デバイスのインタフェースとの間で電圧を調整／切り替え／変更するように構成された、請求項2に記載のシステム。
【請求項１４】
前記マイクロプロセッサ、前記ソフトウェア／ファームウェア、および前記プログラム可能な電圧切替回路が、エッジゲートウェイの一部を形成する、請求項13に記載のシステム。
【請求項１５】
通信目的で特有の通信プロトコルを使用するデバイスのためのインタフェースを確立する方法であって、
ソフトウェア／ファームウェア中で、特定のデバイスを接続できる仮想ポートを形成するようにマイクロプロセッサの1つまたは複数のピンを割り当てる／選択するステップであって、前記デバイスが特有の通信プロトコルを利用する、ステップと、
ソフトウェア／ファームウェア中で、前記仮想ポートを通して前記特有の通信プロトコルを実装し、それにより、前記デバイスが前記仮想ポートに接続されたときに前記マイクロプロセッサと前記デバイスとの間の通信を可能にするステップと、
を含む方法。
【請求項１６】
前記通信ピンが前記マイクロプロセッサの汎用入出力(GPIO)ピンである、請求項15に記載の方法。
【請求項１７】
前記割り当てる／選択するステップが、前記仮想ポートの一部を形成するように一群のGPIOピンをグループ化し／割り当て、前記一群のGPIOピンを利用して前記特有の通信プロトコルを実装するステップを含む、請求項16に記載の方法。
【請求項１８】
前記仮想ポートを形成する前記一群のGPIOピンと前記デバイスとの間で電圧レベルを調節するために、プログラム可能な電圧切替回路を利用するステップを含む、請求項17に記載の方法。
【請求項１９】
一方における前記マイクロプロセッサのピン電圧と他方における前記デバイスの電圧とを指定するためのプログラミング命令を、前記プログラム可能な電圧切替回路に送るステップを含み、前記プログラミング命令が、前記マイクロプロセッサから、またはネットワークを介して他の任意のリモートコンピューティングデバイスから送られる、請求項18に記載の方法。
【請求項２０】
ソフトウェア定義デバイスインタフェースであって、
プロトコルモジュール／ライブラリを含み、前記プロトコルモジュール／ライブラリが、特定のデバイスによって使用される通信プロトコルに基づいて、実行時に、
前記特定のデバイスを接続できる仮想ポートを形成するようにマイクロプロセッサの1つまたは複数の通信ピンを割り当て／選択し、
前記仮想ポートを通して前記特有の通信プロトコルを実装し、それにより、前記デバイスが前記ポートに接続されたときに前記マイクロプロセッサと前記デバイスとの間の通信を可能にする
ように構成された、ソフトウェア定義デバイスインタフェース。
【請求項２１】
ソフトウェア定義デバイスインタフェースであって、
プロトコルモジュール／ライブラリを含み、前記プロトコルモジュール／ライブラリが、実行時に、特有の通信プロトコルのための仮想ポートの形でデバイスインタフェースを定義するように構成され、前記定義することにより、マイクロプロセッサの1つまたは複数の通信ピンを利用して、特有のデバイスを接続できる前記仮想ポートを形成し、それにより、前記仮想ポートを形成する前記ピンに前記特有のデバイスが接続されたときに前記特有のデバイスとの通信を可能にするために前記通信プロトコルの実装を容易にする、ソフトウェア定義デバイスインタフェース。
【請求項２２】
エッジゲートウェイであって、プロトコルモジュール／ライブラリを含み、前記プロトコルモジュール／ライブラリが、特定のデバイスによって使用される通信プロトコルに基づいて、実行時に、
特定のデバイスを接続できる仮想ポートを形成するようにマイクロプロセッサの1つまたは複数の通信ピンを割り当て／選択し、
前記仮想ポートを通して前記特有の通信プロトコルを実装し、それにより、前記デバイスが前記仮想ポートに接続されたときに前記マイクロプロセッサと前記デバイスとの間の通信を可能にする
ように構成された、エッジゲートウェイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア定義デバイスインタフェースシステムと、ソフトウェア定義デバイスインタフェースと、ゲートウェイと、通信目的で特有の通信プロトコルを使用するデバイスのためのインタフェースを定義する方法とに関する。
【背景技術】
【０００２】
「モノのインターネット」(IoT)は、IT業界における技術用語であり、IoTでは、何十億個ものデバイスが様々なインターネットサーバ／クラウドサービスに接続されることになる。デバイスの一部は、十分にインテリジェント(例えばIPベース)であり、クラウドに直接に接続されることが可能だが、エッジゲートウェイを介してIPベースのプラットフォームに接続(ディジタル化)され得るレガシーデバイスまたは潜在的な新しい低コストデバイスも多数ある。
【０００３】
現在、本発明者は、IoTが以下の市場で実装される可能性があると考える。
1.  消費者(ホームオートメーション)
2.  商業(例として、建物管理、アクセス制御、セキュリティ、セーフティ、環境監視、輸送、公益事業計測、資産追跡などを含む。)
3.  産業(例として、製造、監視制御およびデータ取得(SCADA)などを含む。)
4.  鉱業:  地下／過酷な環境における、以前なら(不可視エリア)非接続であった機器の挙動の監視;ウェイトメータ;イエローエクイップメントなど
5.  遠隔通信業界
6.  行政または軍事
7.  車両監視(例えば、車両構成要素の予測的保守)
8.  ロジスティクスおよび輸送(例えば、車両追跡、燃料管理、セキュリティなど)
【０００４】
コントローラ(または「エッジゲートウェイ」)の目的と、ハードウェア設計者によって考慮された外部デバイスのタイプとに応じて、プロセッサピンのグループは通常、プリント回路板(PCB)上で、露出した固定数の物理的業界標準コネクタのセットにルーティングされる。業界標準コネクタは以下のものなどである。
・  Ethernet:  専用RJ-45(組込みPC、「エッジゲートウェイ」、およびPLC(プログラマブルロジックコントローラ)上など)
・  UART(ユニバーサル非同期受信機／送信機(universal asynchronous receiver/transmitter)):  例えばDB9シリアルポート(組込みPCまたは「エッジゲートウェイ」上など)
・  CAN(Controller Area Network)バス:  OBD-II(車両上など)
・  SPI(Serial Peripheral Interface)またはI2C(Inter-Integrated Circuit):  専用ねじ込み端子またはヘッダピン(「エッジゲートウェイ」またはラズベリーパイ(Raspberry Pi)上)
【０００５】
デバイスまたはセンサに接続するために、業界では現在、以下の通信プロトコルが使用されている。
1.  IP(インターネットプロトコル)ベースのデバイス。
2.  専用ハードウェアポート／インタフェース(TTLシリアル、RS-232、RS-485、USB、SPI、I2C、CANバス、またはEthernetポートなど)。
3.  2進入力(GPIプロセッサピン上で3.3VDC／5VDC電圧を検出するための)。
例として以下を含む。
・  コモン(C)基準に接続された常時開(N/O)スイッチを閉じることによってドアを開くために人によって押される外部押しボタン。
・  ドアが開かれるときに常時閉(N/C)回路を開く磁気ドア位置決めセンサ。
・  動きが検出されたときに出力電圧を調節する受動赤外線センサ。
・  煙が検出されたときに出力電圧を調節する煙検知センサ。
・  オドメータのような機械カウンタに接続された継電器をトリガするウェイトメータ。機械カウンタは、実際の累積トン数を人間のオペレータまたはHMI(ヒューマンマシンインタフェース)に対して表示する。
4.  2進出力(GPOプロセッサピン上で3.3VDC／5VDC電圧を出力するための)。
例として以下を含む。
・  リレーコイルを励磁し、それによりソレノイドが開閉する。ソレノイドは、ゲートモータやサイレンなどの外部デバイスに電力を提供する絶縁されたVACまたはVDC電力回路を切り替える。これにより、デバイスがオンまたはオフに切り替わる。
5.  PWM(GPOプロセッサピン上で可変ディジタル信号周波数を発生させるための)。
例として以下を含む。
・  可変ステッパモータの速度を制御する。
・  音声再生のために可聴デバイス上でオーディオ周波数を発生させる。
【０００６】
現在、上記はすべて、PLCなどの既存のコントローラ、産業組込みコンピュータ、アルデュイーノ(Arduino)、ラズベリーパイ、または商業／産業「エッジゲートウェイ」上で、様々な異なる専用ポートを利用することによって達成することができる。
【０００７】
非IPベースのデバイスをクラウドに接続する標準的な方法は、いわゆる「エッジゲートウェイ」を用いるものである。これらのゲートウェイデバイスは普通、いくらかのレベルのインテリジェンスを有するデバイスを、専用ハードウェアポート(例えば、RS232、RS485、USB、CANバス、I2C)を介して接続することができる。いくつかの会社(例えば、Cisco、Dell、およびSamsung)が、センサ／デバイス付近の構内に(「エッジに」)位置する「エッジゲートウェイ」を販売している。これらのゲートウェイは、この場合、様々な標準(GSM(登録商標)/Ethernet/WiFi/Long Range Wireless)を介してクラウドソリューションに通信し、クラウドソリューションは普通、イベント後にデータを分析するためおよびアラートを生成するための、「ビッグデータ」、「アナリティクス」、機械学習、およびモバイルデバイス(スマートフォンやタブレットなど)の組合せからなる。
【０００８】
これらのIoT／エッジゲートウェイの主要な目的は、クラウドに直接に接続されたセンサを有する代わりに、様々な非IPベースのデバイスおよびセンサに接続し、センサ値をフィルタリング／集約し、次いでこのデータをクラウドにプッシュすることである。例として、温度／湿度センサ、および加速度計や振動センサなどがある。これらの非IPベースのデバイスのいくつかは通常、1ワイヤ、2ワイヤ、I2C、SPI、およびCANバスインタフェースを備えるが、これらのインタフェースは、IPベースのネットワークスイッチまたはルータに直接に接続させることはできず、これらのデバイスに対する問合せおよび制御のために特有の物理層プロトコルを必要とする。Cisco Systemsはまた、そのエッジルータについて「フォグコンピューティング」という用語を(「クラウドコンピューティング」に対立させて)造り出したが、これは、インテリジェンスがエッジにより近づいたことを意味する。
【０００９】
現在までのところ、販売されているすべての産業エッジゲートウェイは普通、Linux(登録商標)またはWindowsオペレーティングシステムを有するデバイスを含意する。エッジゲートウェイはこの場合、専用ポートを介して様々なセンサ／デバイスデータを蓄積するように、または単純な入力を検出するように、または単純な出力を発するように、プログラムされることが可能である。また、デバイスまたはセンサがプラグインするための限られた数の専用コネクタを備えるプロプラエタリファームウェア／組込みデバイスも存在する。
【００１０】
図1に、異なる接続インタフェースを有するエッジゲートウェイの少数の例を示す。新しいデバイスインタフェースを追加するには、製品(ハードウェアおよび筐体を含めて)が再設計される必要があり、または様々なモデルが導入されなければならない。図2に、CANバスインタフェースのみを有するゲートウェイの例を示す。図3に、様々な異なる接続インタフェースを有するゲートウェイ筐体を示す。
【００１１】
専用エッジゲートウェイ設計の機能を決定する際、コスト要素が大きな役割を果たす。ごく限られた数のインタフェースを有する低コストのコントローラと、非常に高価であり新規コネクタまたはプロトコルの点で将来も使い続けられることが保証されないオーバースペックのコントローラとの間で、トレードオフがある。
【００１２】
本発明者は、上で識別された問題の少なくともいくつかに対処することを望む。
【発明の概要】
【課題を解決するための手段】
【００１３】
本発明の第1の態様によれば、ソフトウェア定義デバイスインタフェースシステム、またはデバイスインタフェースシステムが提供される。このシステムは、
複数の通信ピンを有するマイクロプロセッサ／処理装置と、
ソフトウェア／ファームウェアとを備え、このソフトウェア／ファームウェアは、通信目的で特定のデバイスによって使用される特有の通信プロトコルに基づいて、実行時に、
特有の通信プロトコルを実装するための構成命令をユーザから受け取ったとき、特定のデバイスを接続できる仮想ポートを形成するように通信ピンの1つまたは複数を割り当て／選択し、
仮想ポートを通して特有の通信プロトコルを実装し、それにより、デバイスが仮想ポートのピンに接続されたときにマイクロプロセッサ／処理装置とデバイスとの間の通信を可能にする
ように構成される(またはそれらを可能にするように記述される)。
【００１４】
「通信」とは、この場合、片方向(例えば、デバイスから仮想ポートを介して処理装置へ)のみに流れる通信も指すと解釈されるべきである。言い換えれば、通信とは、片方向ならびに両方向の通信を指す。
【００１５】
「仮想ポート」という用語は、特有の通信プロトコルの実装を可能にするために、マイクロプロセッサ／処理装置の1つまたは複数の通信ピンを実行時に割り当てて／選択して、これを適切な／適したソフトウェア／ファームウェアと共に使用することによって形成される通信ポートを指す。割り当てられた／選択された通信ピンは、デバイスがシステムに接続されるための物理接続を形成する。
【００１６】
通信ピンは、汎用入出力(GPIO(general purpose input/output))ピンとすることができる。
【００１７】
マイクロプロセッサは、中央処理装置(マイクロプロセッサ)であってよく、またはその一部を形成する。
【００１８】
ソフトウェア／ファームウェアは通常、マイクロプロセッサ上で稼働／実行される。
【００１９】
ソフトウェア／ファームウェアは、仮想ポートを介して情報を受信するために、割込みロジックを利用するように構成されてよい。
【００２０】
ソフトウェア／ファームウェアは、仮想ポートを介して情報を送信するために、信号発生器を利用するように構成されてよい。
【００２１】
ソフトウェア／ファームウェアは、実行時に、仮想ポートの一部を形成するように一群のGPIOピンをグループ化し／割り当て、一群のGPIOピンを利用して特有の通信プロトコルを実装するように構成されてよい。ソフトウェア／ファームウェアは、特有の通信プロトコルを利用するデバイスを接続できる2つ以上の仮想ポートを形成するために、実行時に、2つ以上の通信プロトコルを実装するように構成されてよい。ユーザは、露出した利用可能なGPIOピンを使用して、何個のデバイスインタフェースが必要な可能性がありしたがって作成されてよいかを決定することができる。ソフトウェア／ファームウェアは、いくつかの仮想ポートを作成するための入力をユーザから(例えばユーザインタフェースを介して)受け取ったとき、特有の通信プロトコルを利用するデバイスを接続できるいくつかの仮想ポートを作成するために、実行時にいくつかの通信プロトコルを実装するように構成されてよい。
【００２２】
システムは、1つまたは複数の専用ネイティブマイクロプロセッサ通信ポート(例えば、USB、Ethernetなど)を備えることができる。専用通信ポートは、通信目的で専用ピン(例えば、シリアルポート構成のTX(送信)ピンおよびRX(受信)ピン)を有することができる。専用通信ポートは、ハードウェア中で実装されてよい。専用ポートは、ユニバーサル非同期受信機／送信機(UART)ポートを含むことができる。
【００２３】
ファームウェア／ソフトウェアは、実行時に、マイクロプロセッサのソフトウェア構成可能タイマカウンタ／クロックを可変信号発生器として使用するように構成されてよい。ファームウェア／ソフトウェアは、サンプリングプロセスを開始／始動するために、仮想ポートを形成するGPIOピンの1つまたは複数のピン上で立上り／立下り割込みを実装するように構成されてよく、このサンプリングプロセスにより、マイクロプロセッサのソフトウェア構成可能タイマカウンタによって設定された周波数でピンがサンプリングされる／読み取られる。
【００２４】
マイクロプロセッサは、特定のデバイスのための特有の通信プロトコルを実装するための通信プロトコル情報を、リモートコンピューティングデバイス／サーバから通信ネットワークを介して、プログラムに従って受け取るように構成されてよい。システムは、プログラム可能な電圧切替回路を備えることができ、このプログラム可能な電圧切替回路は、使用時に通信ピンとデバイスとの間に接続され、通信ピンおよびデバイスのそれぞれの特有の電圧要件に応じて、一方における通信ピンと他方におけるデバイスのインタフェースとの間で電圧を調整／切り替え／変更するように構成される。プログラム可能な電圧切替回路は、さらに後述する本発明の第8の態様によるプログラム可能な電圧切替回路とすることができる。
【００２５】
マイクロプロセッサ、ソフトウェア／ファームウェア、およびプログラム可能な電圧切替回路は、エッジゲートウェイの一部を形成することができる。
【００２６】
システムは、少なくとも1つのライブラリ、好ましくは複数のライブラリを備えることができ、ライブラリは、ユーザによって作成された特有の仮想ポートに適用できる様々な通信プロトコルを定義する。この場合、これらの通信プロトコルを使用して、好ましくはプログラム可能な電圧切替回路構成と共に、特有の仮想ポート上の特有のプロトコルに対して特有のGPIOピンを割り当てるだけで、専用ハードウェアポートを効果的に置き換えることができる(例えば図17参照)。本発明は、信号発生器および割込みを利用して、動的かつ構成可能な仮想ポートに関するプロトコルライブラリを作成／実装することによって、エッジゲートウェイの特有ハードウェアモデル(図2に描かれるものなど)の作成を回避することができる。
【００２７】
本発明の第2の態様によれば、通信目的で特有の通信プロトコルを使用するデバイスのためのインタフェースを定義／確立する方法が提供される。この方法は、
ソフトウェア／ファームウェア中で、特定のデバイスを接続できる仮想ポートを形成するようにマイクロプロセッサの1つまたは複数のピンを割り当てる／選択するステップと、
ソフトウェア／ファームウェア中で、仮想ポートを通して特有の通信プロトコルを実装し、それにより、デバイスが仮想ポートに接続されたときにマイクロプロセッサとデバイスとの間の通信を可能にするステップと、
を含む。
【００２８】
通信ピンは、マイクロプロセッサの汎用入出力(GPIO)ピンとすることができる。通信ピンはまた、トライステート対応ピンを含むこともできる。
【００２９】
割り当てる／選択するステップは、仮想ポートの一部を形成するように一群のGPIOピンをグループ化し／割り当て、一群のGPIOピンを利用して特有の通信プロトコルを実装するステップを含むことができる。
【００３０】
この方法は、仮想ポートを形成する一群のGPIOピンとデバイスとの間で電圧レベルを調節するために、プログラム可能な電圧切替回路を利用するステップを含むことができる。
【００３１】
この方法は、一方におけるマイクロプロセッサのピン電圧と他方におけるデバイスの電圧とを指定するためのプログラミング命令を、プログラム可能な電圧切替回路に送るステップを含むことができる。プログラミング命令は、マイクロプロセッサから、またはネットワークを介して他の任意のリモートコンピューティングデバイスから送られる。
【００３２】
本発明の第3の態様によれば、ソフトウェア定義デバイスインタフェースが提供される。このソフトウェア定義デバイスインタフェースは、
プロトコルモジュール／ライブラリを備え、このプロトコルモジュール／ライブラリは、特定のデバイスによって使用される通信プロトコルに基づいて、実行時に、
特定のデバイスを接続できるポート／仮想ポートを形成するようにマイクロプロセッサの1つまたは複数の通信ピンを割り当て／選択し、
ポートを通して特有の通信プロトコルを実装し、それにより、デバイスがポート／仮想ポートに接続されたときにマイクロプロセッサとデバイスとの間の通信を可能にする
ように構成される。
【００３３】
本明細書のコンテキストにおいて、「モジュール」は、特定の機能、動作、処理、または手順を達成するための、コードの識別可能部分、演算命令もしくは実行可能命令、または演算オブジェクトを含む。モジュールは、ソフトウェアにおいて、またはソフトウェアとハードウェアの組合せにおいて実装されることが可能である。
【００３４】
本発明の第4の態様によれば、ソフトウェア定義デバイスインタフェースが提供される。このソフトウェア定義デバイスインタフェースは、
プロトコルモジュール／ライブラリを備え、このプロトコルモジュール／ライブラリは、実行時に、特有の通信プロトコルのためのポート／仮想ポートの形でデバイスインタフェースを定義するように構成され、このように定義することにより、マイクロプロセッサの1つまたは複数の通信ピンを利用して、特有のデバイスを接続できるポート／仮想ポートが形成され、それにより、特有のデバイスがポート／仮想ポートを形成するピンに接続されたときに特有のデバイスとの通信を可能にするために通信プロトコルの実装が容易にされる。
【００３５】
本発明の第5の態様によれば、プロトコルモジュール／ライブラリを備えるゲートウェイ／エッジゲートウェイが提供される。このプロトコルモジュール／ライブラリは、特定のデバイスによって使用される通信プロトコルに基づいて、実行時に、
特定のデバイスを接続できるポート／仮想ポートを形成するようにマイクロプロセッサの1つまたは複数の通信ピンを割り当て／選択し、
ポート／仮想ポートを通して特有の通信プロトコルを実装し、それにより、デバイスがポート／仮想ポートに接続されたときにマイクロプロセッサとデバイスとの間の通信を可能にする
ように構成される。
ゲートウェイ／エッジゲートウェイは、プログラム可能な電圧切替回路を備えることができ、このプログラム可能な電圧切替回路は、マイクロプロセッサピン間で異なる電圧と、デバイスインタフェース／ポートに対する通信線の電圧要件とを満たすのに利用することができる。プログラム可能な電圧切替回路は、後述する本発明の第8の態様によるプログラム可能な電圧切替回路とすることができる。
【００３６】
本発明の第6の態様によれば、ソフトウェア定義デバイスインタフェースシステムが提供される。このシステムは、仮想ポートを形成するようにマイクロプロセッサの1つまたは複数の通信ピンを割り当てることによって、デバイスを接続できる1つまたは複数の仮想通信ポートを定義し、ソフトウェア／ファームウェアを実行するために、マイクロプロセッサのネイティブ能力を利用するように構成される。このソフトウェア／ファームウェアは、実行時に、仮想ポートを形成するピンを利用して通信プロトコルを実装し、それにより、デバイスがポートに接続されたときに通信プロトコルを利用してデバイスと通信するように構成される。
【００３７】
本発明の第7の態様によれば、ソフトウェア定義デバイスインタフェースシステム(エッジゲートウェイ中で使用されることが提案されるがそれに限定されない)が提供される。このシステムは、
-  固定数の専用ポート(例えばUART)を有するマイクロプロセッサであって、汎用入出力ピン(GPIOピン)も提供するマイクロプロセッサと、
-  物理デバイスインタフェースまたは仮想ポートにグループ化されるようにマイクロプロセッサのGPIOピンのいずれか1つまたは一群を割り当てるのを許可するための、システム上にプログラムされたソフトウェアコードと、
-  システムによって提供されるユーザインタフェースであって、ソフトウェア構成可能プロトコルを実装するデータピンおよびクロックピンの特有のセットを必要とするハードウェアデバイス(例えばセンサ)とインタフェースするための1つまたは複数の目的に向けて必要に応じてデバイスインタフェースシステムを構成するのに使用できる、ユーザインタフェースと、
-  単純な電圧信号を介して2進入力または2進出力を提供する単純なデバイスと、を備える。
【００３８】
システムは、信号発生器および割込みを利用し、ソフトウェアプロトコルライブラリを作成して、内蔵の専用ハードウェア回路を効果的に置き換えるように構成されてよい。
【００３９】
システムは、システム上にプログラムされたソフトウェアコードを効果的に備える。このソフトウェアコードは、デバイスインタフェースまたは仮想ポート(このタイプのポートに通常関連付けられる特有のプロトコルを実装できる)を定義するように、マイクロプロセッサのネイティブ能力(以下に列挙される)のいずれか1つまたは一群を割り当てるのを許可するためのものである。
【００４０】
前述の本発明の態様のいずれかにおいて言及されるマイクロプロセッサは、以下のネイティブプロセッサ能力を備える／提供することができる。
〇  読取可能かつ書込可能なハイおよびロー電圧を可能にするGPIOピン。
〇  単一ピン上で電圧の高速双方向シンキング／ソーシングを可能にするトライステートロジック。
〇  電圧レベル変化(例えば、立上り／立下り検出)時、または離散的ピン状態変化(例えば、エッジハイ／エッジロー検出)時にトリガできる割込み機能。
〇  (正確な)プログラム可能な可変周波数で電圧レベルを変更できるソフトウェアサブルーチンを伴う、信号発生器または構成可能タイマカウンタ。
【００４１】
システムは実行時に効果的に実装されるので、新しい通信ポートまたはプロトコルが必要とされる場合に、システムが再始動する必要はなく、ハードウェアが再設計される必要はない。
【００４２】
システムは、マイクロプロセッサの専用回路中で結線接続された特有のハードウェアポートまたはデバイスインタフェースを有する必要はない。
【００４３】
デバイスインタフェースまたはポート構成は、仮想ポートに接続される特有のデバイスに必要とされるプロトコルを実装するために、実行時にユーザが構成することができる。
【００４４】
システムは、オペレーティングシステムを必要とせず、Microsoft(商標) .NET Micro Frameworkまたは他の任意のカスタムファームウェアの、オープンソース実装を使用することができる。
【００４５】
ソフトウェア構成可能ポートは、複数の入力または出力ポートをデイジーチェーン接続するように、I2Cまたは他の手段を介して拡張されることが可能である。
【００４６】
システム／ゲートウェイは、新しいデバイスインタフェースを定義および構成するために、組込みウェブサーバまたは他の手段を介してリモートに構成されることが可能である。
【００４７】
ゲートウェイは、UARTなど、いくつかの望まれるまたはしばしば使用される構成およびプロトコルについて、GPIOのグループ化を単純化する何らかの標準的構成を含むことができる。
【００４８】
ゲートウェイは、インストーラが初期診断および構成を実施できるようにするための組込みウェブサーバを有することができ、この組込みウェブサーバは、ゲートウェイの全寿命にわたりゲートウェイ上に記憶される。
【００４９】
ゲートウェイは、制約された記憶空間における永続データのための記憶域を備えることができる。この記憶域は、オペレーティングシステムを必要としないレコード記憶ファイルシステムとすることができる。
【００５０】
ソフトウェア定義デバイスインタフェースは、ソフトウェアロジックとネイティブマイクロプロセッサピン能力とを組み合わせて、マイクロプロセッサまたは電子回路設計において専用UARTなど特有デバイスまたはプロトコルに専用にされた専用ハードウェアポートを有することの制限を克服することができる。
【００５１】
したがって、本発明のソフトウェア定義デバイスインタフェースは、ファームウェアが、今日のマイクロプロセッサネイティブGPIOピン能力の特徴を組み込んで既存のデバイスインタフェースを再解釈するのを許可することができる。高速クロックサイクルと信号発生器とピン構成(入力、出力、トライステート)との組合せにより、このインタフェースは、専用のプロセッサ組込み回路(例えば、UART、I2C、CANバス、またはSPI)の必要なしに、通信プロトコルを実装することができる。受信のための割込みロジックおよび送信のための信号発生器を使用して、どんなプロトコルデータ送受信ロジックも正確に制御することができる。
【００５２】
したがって、本発明のインタフェースにより、汎用ピンは、基礎をなすマイクロプロセッサハードウェアアーキテクチャによってサポートされていなくても、インタフェースを拡張するための特別な機能をエミュレートすることができる。
【００５３】
したがって、本発明は、ソフトウェアまたはファームウェアを介してマイクロプロセッサ上のGPIOピンを使用して、結線接続されたポートまたは接続をシミュレートまたは強化または拡張することを可能にする。
【００５４】
本発明のシステムは、インタフェースを定義する方法に及ぶ。この方法は、
・  マイクロプロセッサ上のGPIOをデバイスインタフェースポートとしてまとめるようにソフトウェアおよび／またはファームウェアを構成するステップと、
・  ソフトウェアおよび／またはファームウェアをプログラムして、
〇  信号発生器および／またはソフトウェアタイミングを使用して、エミュレートされたポート上で計時して、この計時を適正にクロック制御すること、
〇  エミュレートされる特有のタイプのポート、例えばシリアルポートまたはI2CポートまたはSPIポートなどに従って、ロジックを適用すること、および
〇  エミュレートされた(ソフトウェア定義)ポートに対してプロトコルロジックを適用すること
を利用するステップと、を含む。
【００５５】
本発明の第8の態様によれば、プログラム可能な電圧切替回路が提供される。このプログラム可能な電圧切替回路は、
複数の第1のコネクタであって、各第1のコネクタが、使用時にマイクロプロセッサの特有のピンに接続するためのものである、複数の第1のコネクタと、
複数の第2のコネクタであって、各第2のコネクタが、特有の第1のコネクタに対応し／関連付けられ、それにより第1のコネクタと第2のコネクタのペアを形成し、第2のコネクタが使用時にデバイスに接続される、複数の第2のコネクタと、
一方の側におけるマイクロプロセッサの所定の電圧要件と他方の側におけるデバイスの所定の電圧要件とに応じて、各ペアの第1のコネクタと第2のコネクタとの間の電圧レベルを適合させる／変更するように構成された切替構成／モジュールと、を備える。
【００５６】
本発明の第9の態様によれば、ソフトウェア定義デバイスインタフェースが提供される。このソフトウェア定義デバイスインタフェースは、
実行時に、1つまたは複数の通信ピンを共にグループ化することによって、特有のデバイスのための特有の通信プロトコル用の仮想ポートの形でデバイスインタフェースを定義するように構成された、プロトコルライブラリと、
使用時に、プロトコルライブラリが実装／インストールされたマイクロプロセッサとデバイスとの間に位置するプログラム可能な電圧切替回路であって、実行時にデバイスインタフェース電圧およびマイクロプロセッサピン電圧公差／レベルを調整するように構成されたプログラム可能な電圧切替回路と、を備える。
【００５７】
次に、添付の図面を参照しながら本発明について例として述べる。
【図面の簡単な説明】
【００５８】
【図１】異なる接続インタフェースを有する既存のエッジゲートウェイ設計の概略平面図である。
【図２】CANバスインタフェースを有する既存のエッジゲートウェイ設計の概略平面図である。
【図３】様々な異なる接続インタフェースを有するゲートウェイ筐体の3次元図である。
【図４】本発明によるシステムの概略レイアウトを示す図である。
【図５】2つの専用UARTピンと他の利用可能なGPIOピンとを有するマイクロプロセッサの概略レイアウトを示す図である。
【図６】図5のマイクロプロセッサの概略レイアウトであって、ハードウェアフロー制御ピンCTSおよびRTSを含むように図5のUARTを拡張するために、2つのGPIOピンが割り振られる場合の概略レイアウトを示す図である。
【図７】図6のマイクロプロセッサの概略レイアウトであって、TXDおよびRXD線を有する新しい仮想UARTを2つの追加GPIOピンが形成する場合の概略レイアウトを示す図である。
【図８】図7の2つのGPIOピンを、マイクロプロセッサアーキテクチャ中で用意されていなかった追加の仮想UARTポートとして構成するのに使用できるユーザインタフェースのスクリーンショットを示す図である。
【図９】Wiegand通信プロトコルを介した通信のために2つのGPIOピンが割り振られる場合の、マイクロプロセッサの概略レイアウトを示す図である。
【図１０】図8についてのプロトコルを定義するのに使用できるユーザインタフェースのスクリーンショットを示す図である。
【図１１】意図されたプロトコルにリンクされたユーザ構成可能なGPIOピンのグループからなる様々なソフトウェア定義インタフェース(仮想ポート)の例の概略レイアウトを示す図である。
【図１２】意図されたプロトコルにリンクされたユーザ構成可能なGPIOピンのグループからなる様々なソフトウェア定義インタフェース(仮想ポート)の例の概略レイアウトを示す図である。
【図１３】意図されたプロトコルにリンクされたユーザ構成可能なGPIOピンのグループからなる様々なソフトウェア定義インタフェース(仮想ポート)の例の概略レイアウトを示す図である。
【図１４】意図されたプロトコルにリンクされたユーザ構成可能なGPIOピンのグループからなる様々なソフトウェア定義インタフェース(仮想ポート)の例の概略レイアウトを示す図である。
【図１５】エッジゲートウェイのすべてのインタフェースを構成するのに使用できるユーザインタフェースのスクリーンショットを示す図である。
【図１６】プログラム可能な電圧切替回路に接続されたマイクロプロセッサの概略レイアウトを示す図である。
【図１７】TTLレベル(プロセッサ側)からRS-232に切り替わるTX線電圧レベル(図16のプログラム可能な電圧切替回路の)の概略レイアウトを示す図である。
【発明を実施するための形態】
【００５９】
本発明は、ソフトウェア定義デバイスインタフェースシステムに関する。このシステムは、ハードウェア回路変更の必要なしに、ユーザによって(またはプログラムに従ってバッチとして)リモートに展開されて実行時に構成されることが可能であり、このシステムはまた、ユーザが必要に応じて随時、デバイスインタフェースをリモートに構成できるようにする。これにより、マイクロプロセッサ上のGPIOピンを使用してデバイスインタフェース(仮想ポート)を定義するための、ソフトウェア構成を介した実行時の構成が可能になる。加えて、ユーザは、ソフトウェアを介してデバイスインタフェースを構成し、現在の、さらには将来の任意の通信プロトコルをデバイスインタフェース上で実装することができる。この仮想的なソフトウェア定義「ポート」は、デバイスを接続しデバイスと通信するのに使用される異なる複数の「ポート」のために専用の電子回路を有する必要をなくす。ネイティブマイクロプロセッサ電圧とデバイス／センサ電圧との差は、プログラム可能な電圧切替回路を使用して解決される。
【００６０】
図4において、参照番号10は、本発明によるシステムを全体的に参照する。システムは通常、1つまたは複数のマイクロプロセッサ12.1、12.2(以下ではまとめて12として参照される)を備え、これらのマイクロプロセッサは、クラウドベースのコンピューティングネットワーク(インターネットを介した)など、より大きい通信ネットワークに接続される。各マイクロプロセッサ／マイクロプロセッサ12(参照しやすくするために、以下では単にマイクロプロセッサ12として参照される)は、いくつかの通信ピン14を有する(図5)。本発明は、マイクロプロセッサ12、プロトコルライブラリ22、およびプログラム可能な電圧切替回路52を組み合わせる。ここで、本発明を利用してエッジゲートウェイ15.1および15.2(以下では単に15として参照される)を製造することができる。
【００６１】
述べたように、非IPベースのデバイスは一般に、インターネットに／クラウドベースのコンピューティングシステムに、直接に接続させることはできない。異なる非IPベースのデバイスのための通信プロトコルもまた、一般に相互と異なる。これらの通信プロトコルのいくつかは、TTL(transistor-transistor logic)シリアル、RS-232、RS-485、USB、SPI、I2C、CANバスなどを含む。これらは、通信目的で、1つのピンのみまたはいくつかのピンを利用する必要があり得る。いくつかのデバイスインタフェースは、通信のために異なる電圧レベルを必要とするが、これには、異なる通信インタフェースまたはハードウェアポートのための、異なるハードウェア設計が必要である。
【００６２】
本発明は、任意のプロセッサ電圧レベルが任意のデバイスインタフェース電圧レベルに接続されるのを可能にする、プログラム可能な電圧切替回路52を使用する。この電圧切替回路により、これらのレベルの構成(レベルが反転されるか否かを含めて)を、プログラム可能なインタフェースを介して行うことができる。図17に、TTLレベル(プロセッサ側)から、接続されたGPSデバイスへのRS-232(±5Vレベル)に切り替わるTX線電圧レベルを示す。この例では、プログラム可能な電圧切替回路の電圧マッピングテーブル88が、I2Cインタフェースを使用して構成される。これにより、本発明は、ハードウェア再設計の必要なしに、専用のRS-232 IC(MaximのMAX232 ICなど)の機能をソフトウェア中で複製することができる。電圧切替回路は、この例に限定されず、必要とされる他の任意の専用ハードウェアポート／設計に適用されてよい。
【００６３】
しかし、目下のシステム10は、適切なソフトウェア／ファームウェアを備え、このソフトウェア／ファームウェアは、(例えばマイクロプロセッサ12によって)実行されたとき、マイクロプロセッサ12に接続されるべきデバイスのタイプに応じて、特有のタイプの通信プロトコルに使用できる1つまたは複数のGPIOピン14を割り当てるかまたは指定する。より具体的には、システム10は通常、複数の異なる通信プロトコルのライブラリが記憶されたデータベース22を備える。このデータベース22は、マイクロプロセッサ12の近くのデータベースに記憶されてもよく、またはリモートの記憶／ライブラリ設備に(例えば、クラウドベースのシステム17に)記憶されてもよい。次いで、ユーザ100が、コンピュータ200を使用して、インターネットを介して特有の通信プロトコルをダウンロードおよび／または構成し、それにより、プログラム可能な電圧切替回路52を介してマイクロプロセッサ12に接続されるべき特有のデバイス30.1〜30.4(まとめて30として参照される)のための所定の通信プロトコルを実装する。通信プロトコルは通常、ソフトウェア／ファームウェア中で実装され、このソフトウェア／ファームウェアは、(本明細書中でさらに後述されるようにデータシフティングメカニズム25を使用して)実行されたとき、GPIOピン14をデバイス30との物理接続／通信ポイントとして利用する。
【００６４】
より具体的には、マイクロプロセッサ12がソフトウェア／ファームウェアを実行するとき、マイクロプロセッサ12は、プログラム可能な電圧切替回路52を介してデバイス30と通信するための指定された通信プロトコルを実装するために、実行時にGPIOピン14の1つまたは複数を指定する／割り当てる。したがって、GPIOピン14、電圧切替回路52は、ソフトウェア／ファームウェアおよびプロトコルライブラリと共に、特定のデバイス30との通信を可能にするためのデバイスインタフェースを作成または定義する。いくつかのプロトコルは1つのピンしか必要としないことがあるが、他のプロトコルは複数のGPIOピン14を必要とすることがあり、この結果、ソフトウェア／ファームウェアは、通信プロトコルを実装するためにGPIOピン14のうちの複数を共にグループ化／クラスタ化することになる。上記のことから、ソフトウェア／ファームウェアが実行されていないときは、GPIOピン14は通常、特別な機能を有さないことに留意するのが重要である。しかし、ソフトウェア／ファームウェアが実行されるとすぐに、GPIOピン14の1つまたは複数は、デバイス30に接続してデバイス30とマイクロプロセッサ12との間の通信を可能にするための仮想ポートに、効果的に変換される。言い換えれば、仮想ポートは実行時に作成される。1つよりも多い「仮想ポート」がマイクロプロセッサ12によって実行時に作成されてよいことを理解されたい。
【００６５】
図5に示すように、マイクロプロセッサ12は、複数の汎用入出力(GPIO)ピンを備えることができる(GPIO_1〜GPIO_12参照)。加えて、マイクロプロセッサ12は、専用の／ハードウェア定義のユニバーサル非同期受信機／送信機(UART)シリアルポート(参照番号16)も備えることができ、このUARTシリアルポートは、送信用(UART_0_TXD)と受信用(UART_0_RXD)の2つの専用ピン(参照番号18および20)を含む。
【００６６】
次に図6を参照するが、図6は、UARTについてCTS/RTSフロー制御が実装される場合の例を示す。CTS/RTSフロー制御は、UARTがCTS(送信可(Clear-To-Send))制御線およびRTS(送信要求(Request-to-Send))制御線を有することを必要とする(ピン36、38参照)。この場合、マイクロプロセッサ12は、そのネイティブ能力(専用ポート)によってUARTのための専用TXおよびRXデータ線を提供するだけであり、CTS線およびRTS線は、ソフトウェア／ファームウェアを利用して実装される。より具体的には、システムは、ソフトウェアがCTSおよびRTSのために任意の2つのGPIOピン(例えば、GPIO_12、GPIO_11)を割り振るのを可能にするように構成される。したがって、ネイティブUARTの既存のTXおよびRXデータ線が強化され、それにより、ハードウェアフロー制御を必要とする場合のあるGSM(登録商標)モデムなど、いくつかのデバイスによって実行時に必要とされる必要なハードウェアフロー制御が模倣される。
【００６７】
図7に示す例では、ソフトウェアは実行時に、信号発生器と割込みベースのレベル変化検出とを使用してTTLシリアルインタフェースを実装するために、任意の2つのGPIOピン(例えば、GPIO_10、GPIO_9)を割り振ってTXおよびRXデータ線を定義するように構成される。
【実施例１】
【００６８】
次に、どのようにUARTプロトコルが実装されるかに関する例について述べる。この実装はまた、RS-232 ICへの専用TTLを使用しないUART通信のための「データシフティングメカニズム」と呼ぶこともできる。
-  UARTプロトコルは、必要とされる／関連するBAUDレートの周波数で動作する、マイクロプロセッサのソフトウェア構成可能タイマカウンタを使用して実装されることが可能である。
-  実行時、例えば1つの開始ビット、8つのデータビット、および1つの停止ビットを含むように、TX(送信)ビットがソフトウェアタイマサブルーチン内でGPOピン(出力ピンとしての役割を果たすGPIOピン)上でシフトアウトされる。
-  ソフトウェアは最初、RX線に関連付けられたGPIピン(入力ピンとしての役割を果たすGPIOピン)上で立上り割込みをアクティブ化する。これにより、8つのデータビットをシフトインするために、タイマカウンタが開始されて、BAUDレートによって必要とされる周波数でGPIピン状態がサンプリングされる。停止ビットが受け取られた後、割込みが再イネーブルされて、次に受け取られる開始ビットがシグナリングされてよい。
-  上記はすべて、最も一般的なマイクロプロセッサの機能を使用してソフトウェア中で達成できることが理解されるであろう。
-  この新たに追加されるUARTシリアルポート(図7)は、図8に描かれるようなソフトウェアインタフェースを使用して実行時に作成または定義することができる。
【００６９】
ユーザ100は例えば、今や、図10などのソフトウェアインタフェースを使用して、選択されたプロトコルライブラリNMEA 0183を介してデバイスを仮想ポートSDDI_UART_1(ソフトウェア中で作成された)にリンクし、デバイスからGPS座標を読み取ることができる。
【００７０】
しかし、本発明は、UARTプロトコルのみに限定されず、後続の例において述べるように多様な通信プロトコルを実装できることを理解されたい。
【実施例２】
【００７１】
この例は、どのようにシステム10を使用してWiegand通信プロトコルを実装することができるかを示す(図9参照)。Wiegandなどのプロトコルは、D0およびD1線がマイクロプロセッサに接続されることを必要とする。ユーザ100は、システム10を用いて、GPIOピン14のうちの任意の2つを構成してD0およびD1(GPIO_1、GPIO_2)に割り振ることができ、次いでソフトウェアは、構成されたGPIOピンを用いてWiegandプロトコルを実装することになり、電圧切替回路52を使用して電圧補正が達成される。
【００７２】
前述と同様にして、将来、プロトコルおよびデバイス特有の通信ロジックを追加するようにソフトウェアをアップグレードすることによって、ならびにソフトウェア構成可能パラメータを追加することによって、デバイス30と現在存在しない通信プロトコルとを結び付けて実装することができる。「デバイス」という用語は、温度センサや振動センサなど、いくつかのタイプのセンサも指すことにも留意されたい(図12参照)。図11、図13、および図14に、GPIOピン14の1つまたは複数を介してマイクロプロセッサ12に接続させることができる追加の非IPベースのデバイスを示す。これらのデバイスは、例えば、MAC(媒体アクセス制御)チップ、RTC(リアルタイムクロック)、PIRセンサ(受動赤外線センサ)、煙検出器、ドア掛金、モータ、自動車デバイス、発電機、エンジン監視システム、および土工機器とすることができる。
【実施例３】
【００７３】
この例は、どのようにシステム10を使用して、特有の通信プロトコルを実装することによって特定のデバイス30との使用に向けてマイクロプロセッサを実行時に構成できるかを示す。
【００７４】
システム10は、多くの既存のソフトウェア、プロトコル／デバイスライブラリを備えることができる。これに関して、図15に示されるシステム10のユーザインタフェースの例を参照する。新しいデバイス接続を追加するには、通常、実装されたデバイスドライバの利用可能リストからデバイスプロトコルのタイプを選択することができる。各プロトコルライブラリは、関連付けられたソフトウェア定義デバイスインタフェース(実行時に構成可能な)と共に利用されることが可能である。デバイスプロトコルのタイプが選択されると、関連するデバイスインタフェースが必要に応じて構成されるものとすることができる(図8に示されるユーザインタフェースの例参照)。
【００７５】
図16では、特定のデバイス54との通信を可能にするために、マイクロプロセッサ12がソフトウェア／ファームウェア中で構成されて、Modbus RTU(remote terminal unit)通信プロトコル(参照番号60参照)が実装される。プログラム可能な電圧切替回路52は、マイクロプロセッサ12が(電圧切替回路52を介して)接続されたデバイスインタフェース54のタイプに応じて、個々のピンごとに電圧レベルを調整するように構成される。言い換えれば、電圧切替回路52は、ピン50とデバイス54との間の媒介としての働きをし、電圧信号を受け取るユニット／デバイスの電圧要件に応じて電圧レベルを適合させることができる。したがって、各ピン50は通常、回路52の一部を形成する電圧切替サブ回路56に接続されてよく、電圧切替サブ回路56は、ソフトウェア構成可能メソッド57を通してマイクロプロセッサピン50の電圧公差をデバイス54の電圧レベル要件に変換するように個別に構成されることが可能である。
【００７６】
一例では、以下のインタフェース／仮想ポートを構成するために、ソフトウェア／ファームウェアによって、マイクロプロセッサ12のGPIOピン14を、共にグループ化されるように構成することができる。
任意の数のGPIOピン14をグループ化して、以下のインタフェース／ポート(これらに限定されない)を構成することができる。
A)  後述するデータシフティングメカニズムを用いて、任意の2つのGPIOピン14を、UART(シリアル)接続(例えば)の送信ピン(GPOピン)および受信ピン(GPIピン)としてそれぞれ割り当てることができる。
B)  任意の2つのトライステートピン14をRS-485に向けて構成して、後述するデータシフティングメカニズムを用いて半二重バスのAおよびBデータ線を制御および監視することができる。
C)  任意の2つのGPIピン14を使用して、後述するデータシフティングメカニズムを用いて、D0およびD1データ線上で読み取られるWiegandプロトコルを監視することができる。
D)  任意の2つのトライステートピン14をCANバスプロトコルに向けて構成して、後述するデータシフティングメカニズムを用いてCAN+およびCAN-データ線を制御および監視することができる。
E)  任意の3つのGPIOピン14を、SPIプロトコルを介してセンサまたはデバイスに接続するように割り当てることができる。すなわち、後述するデータシフティングメカニズムを用いる、MISO(master in slave out)のための1つのGPIピン14と、それぞれMOSI(master out slave in)およびSCK(serial clock)のための2つのGPOピン14である。
F)  任意の2つのピンを、「バス」トポロジ上のI2Cマスタまたはスレーブデバイスとしての働きをするように構成することができる。I2Cマスタ(この場合、これは通常はエッジゲートウェイとなる)は、後述するデータシフティングメカニズムを用いる、SCK(serial clock)線を駆動する1つのGPOピン、およびSDA(serial data)線のための1つのトライステートピンを有することになる。
G)  後述するデータシフティングメカニズムを使用して、任意の1つのトライステートピン14を、EPROMチップなど、1ワイヤのデバイスに接続することができる。
H)  入力信号としてコモン(C)基準上の常時開(N/O)スイッチを閉じることによって(またはその逆で)動作する外部デバイスを監視するように、任意の1つのGPIピン14を構成することができる。
I)  任意の1つのGPOピン14を、トグルするように構成することができる(例えば継電器)。
【００７７】
しかし、システム10は、上に挙げた「仮想ポート」例に限定されないことを理解されたい。
【００７８】
＜データシフティングメカニズム＞
以下の通信技法は、様々な異なる通信プロトコルにおいて使用することができ、通常はマイクロプロセッサ12のネイティブ処理能力に依拠する。この技法は以下のように記述される。
-  GPIOピン14の状態を読み書きできるソフトウェアサブルーチンを周期的に実行するソフトウェア中で定義される周波数で、マイクロプロセッサ12によって信号が生成される。
-  タイマカウンタを使用して、転送ビットレートを定義する特有の構成可能サンプル周波数で入来データ線(特有のビット長の)をサンプリングできるようになった後、割込みを使用して、受信データシフトサイクルの開始がシグナリングされる。
-  トライステートピンは、内部プルアップ(または、プログラム可能な電圧切替回路52中にあるプルアップ)を使用して、かつアクティブ・ロー出力信号を維持しながらピン方向を入力と出力との間で変えることによって、多方向データストリームが同じマイクロプロセッサピン上でシフトイン／アウトされるのを可能にすることができる。
【００７９】
＜プログラム可能な電圧切替回路＞
システム10は、マイクロプロセッサGPIO電圧をデバイスインタフェース特有の電圧要件との間で変換するための高速切替2方向DC-DCボルトシフティング能力(絶縁保護付き)を有する、包括的なハードウェア回路を備えることができることに留意されたい。この電圧レベルシフティング回路は、作成されるデバイスインタフェースのタイプに応じてソフトウェア構成可能である。これに関して、図16および図17を具体的に参照する。図16では、マイクロプロセッサ12は、プログラム可能な電圧切替回路52に接続された3つのトライステートピン50.1〜50.3(以下ではまとめて50として参照される)を備える。マイクロプロセッサまたはシステム10は、ピン50.3に接続された構成インタフェースを介して、または他の任意の電子的手段を介して、電圧マッピングテーブル88をプログラムに従って構成することができる。これは、プログラム可能な電圧切替回路52のサブ回路56を個別に構成して、プロセッサピン電圧を、内蔵絶縁保護を伴ってデバイスインタフェース電圧レベルにマッピングする。図17は、TXデータ線の、TTLシリアルからRS-232への信号レベル変換を示す。この変換は、I2Cインタフェースを使用してマッピングテーブル88を構成することによって、電圧レベルをマイクロプロセッサ電圧公差からRS232プロトコル特有の電圧要件に反転および変更することで行われる。
【００８０】
以上から、システム10が、現在の結線接続されたデバイスインタフェースに勝るかなりの利点を有することが明らかなはずである。というのは、インタフェースは、GPIOピン14およびプログラム可能な電圧切替回路52との組合せで、ソフトウェア中で実装されることが可能だからである。通信プロトコルのパラメータもまた、ソフトウェアによってプログラム可能なユーザインタフェース上で、通信ネットワークを介してリモートに構成されることが可能である。言い換えれば、システム10上のいずれかの通信プロトコルを更新するために、物理的にシステム10の場所に人がいる必要はない。
【符号の説明】
【００８１】
10  システム
12.1、12.2  マイクロプロセッサ
14  通信ピン、GPIOピン、トライステートピン
15.1、15.2  エッジゲートウェイ
16  UARTシリアルポート
17  クラウドベースのシステム
18  送信用(UART_0_TXD)専用ピン
20  受信用(UART_0_RXD)専用ピン
22  プロトコルライブラリ
25  データシフティングメカニズム
30.1  デバイスA
30.2  デバイスB
30.3  デバイスC
30.4  デバイスD
36  CTS制御線
38  RTS制御線
50.1、50.2、50.3  トライステートピン
52  プログラム可能な電圧切替回路
54  デバイス
56  電圧切替サブ回路
57  ソフトウェア構成可能メソッド
60  Modbus RTU通信プロトコル
70  ソフトウェア定義デバイスインタフェース
88  電圧マッピングテーブル
100  ユーザ
200  コンピュータ
【図１】
2019530939.tif 000003
【図２】
2019530939.tif 000004
【図３】
2019530939.tif 000005
【図４】
2019530939.tif 000006
【図５】
2019530939.tif 000007
【図６】
2019530939.tif 000008
【図７】
2019530939.tif 000009
【図８】
2019530939.tif 000010
【図９】
2019530939.tif 000011
【図１０】
2019530939.tif 000012
【図１１】
2019530939.tif 000013
【図１２】
2019530939.tif 000014
【図１３】
2019530939.tif 000015
【図１４】
2019530939.tif 000016
【図１５】
2019530939.tif 000017
【図１６】
2019530939.tif 000018
【図１７】
2019530939.tif 000019
【国際調査報告】
2019530939.tif 000020