(57)【特許請求の範囲】
【請求項１】
シリアル通信のためのスタックタイミング調整のための方法であって、
USB通信を受信するステップと、
USB通信をUARTフレームへと復号するステップと、
シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップとを含む、方法。
【請求項２】
USB通信をUARTフレームへと復号するステップは、UARTフレームを順序付けするステップを含む、請求項１に記載の方法。
【請求項３】
シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップは、USB通信へと符号化されている２つ以上のシリアルパケットの間に遅延を付加するステップを含む、請求項１又は２に記載の方法。
【請求項４】
シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップは、USB通信へと符号化されているシリアルパケットに付加されている文字間遅延を除去するステップを含む、請求項１乃至３の何れかに記載の方法。
【請求項５】
シリアルプロトコルはModbusプロトコルを含む、請求項１乃至４の何れかに記載の方法。
【請求項６】
シリアルプロトコルはHARTプロトコルを含む、請求項１乃至５の何れかに記載の方法。
【請求項７】
USB通信はシリアルパケットを有するUSB CDCメッセージを含む、請求項１乃至６の何れかに記載の方法。
【請求項８】
シリアル通信のためのスタックタイミング調整部を備えたUSBデバイス（100）であって、
USB通信を受信し、USB通信から符号化シリアルパケットを抽出するように構成されているUSBコントローラ（100a）と、
符号化シリアルパケットをUARTフレームへと復号するように構成されているマイクロプロセッサ（100b）と、
シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部（100c）とを備える、スタックタイミング調整部を備えたUSBデバイス（100）。
【請求項９】
マイクロプロセッサ（100b）は、更にUARTフレームをある配列に順序付けするように構成されている、請求項８に記載のスタックタイミング調整部を備えたUSBデバイス(100)。
【請求項１０】
シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部（100c）は、USB通信へと符号化されているシリアルパケットのうちの２つ以上の間に時間遅延を付加するように構成されているスタックタイミング調整部（100c）を含む、請求項８又は９に記載のスタックタイミング調整部を備えたUSBデバイス(100)。
【請求項１１】
シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部（100c）は、USB通信へと符号化されているシリアルパケットに付加されている文字間遅延を除去するように構成されているスタックタイミング調整部（100c）を含む、請求項８乃至１０の何れかに記載のスタックタイミング調整部を備えたUSBデバイス(100)。
【請求項１２】
シリアルプロトコルはModbusプロトコルを含む、請求項８乃至１１の何れかに記載のスタックタイミング調整部を備えたUSBデバイス(100)。
【請求項１３】
シリアルプロトコルはHARTプロトコルを含む、請求項８乃至１２の何れかに記載のスタックタイミング調整部を備えたUSBデバイス(100)。
【請求項１４】
USB通信はシリアルパケットを有するUSB CDCメッセージを含む、請求項８乃至１３の何れかに記載のスタックタイミング調整部を備えたUSBデバイス(100)。
【請求項１５】
シリアル通信のためのスタックタイミング調整部を備えた通信システム（50）であって、
シリアルパケットをUSB通信へと符号化するように適合されているUSBデバイス（200）と、当該USBデバイス（200）と通信可能に繋がったスタックタイミング調整部を備えたUSBデバイス（100）とを備え、
スタックタイミング調整部を備えたUSBデバイスは、USB通信からシリアルパケットを抽出及び復号し、シリアルパケットのタイミングを調整するように構成されている、スタックタイミング調整部を備えた通信システム（50）。
【請求項１６】
前記スタックタイミング調整部を備えたUSBデバイス（100）は、更に応答USB通信へと符号化されるシリアル応答パケットを用いてシリアルパケットに応答するように構成されている、請求項１５に記載のスタックタイミング調整部を備えた通信システム(50)。
【請求項１７】
前記USBデバイス（200）は、シリアル要求パケットをUSB通信へと符号化するようにさらに構成されているマスタである、請求項１５又は１６に記載のスタックタイミング調整部を備えた通信システム(50)。
【発明の詳細な説明】
【技術分野】
【０００１】
下記において記載されている実施形態は、プロトコルスタックに関し、より詳細には、シリアル通信のためのスタックタイミング調整に関する。
【背景技術】
【０００２】
マスタデバイスとスレーブデバイスとの間のシリアル通信は時として、通信の開始及び終了を決定するために、タイミングに依拠することがある。たとえば、Modbus通信プロトコルは、マスタがすべての通信活動を開始するマスタ−スレーブ構成を利用する。この構成では、マスタはコマンドをスレーブに送信する。スレーブは、応答する前に、一定期間、一般的には3.5文字待つ。マスタがその期間後に一切他のデータを送信しない場合、スレーブは、応答を送信することを許可される。この構成は、所与の一時点においてマスタまたはスレーブのみが通信していることを保証する。他の通信プロトコルは、ハイウェイアドレス可能遠隔トランスデューサ（HART）プロトコルのような、同様のタイミング制約を利用する。HARTプロトコルは、ネットワーク上のデバイスがいつ通信することができるかを決定する、スレーブタイムアウト（STO）、リンク許可RT1、及びリンク静止RT2のような、様々なタイミング制約を用いるマルチマスタプロトコルである。
【０００３】
シリアル通信は一般的に、バイナリデータを順次送信する汎用非同期送受信機（UART）を通じて送信される。たとえば、マスタ上のプログラムは、Modbus規格に準拠するコマンドを生成し、UARTを通じてこのコマンドを送信することができる。スレーブは、スレーブのUARTによってバイナリデータを受信することができる。UARTは、Modbus規格に従ってバイナリデータを解釈することができるスレーブのプログラムまたは埋め込みシステムに、バイナリデータを提供することができる。スレーブはその後、コマンドに対する応答を生成し、その応答を、UARTを通じてマスタに送信することができる。応答はその後、Modbus規格に従ってマスタによって解釈される。他のシリアル通信プロトコルを用いる同様の方法が利用されてもよい。
【０００４】
諒解され得るように、順次送信されるバイナリデータの正確な解釈は、シリアル通信プロトコルに従わねばならない。通信プロトコルは、通信を完了するための時間、受信と送信との間の待機期間、通信におけるフィールドのビットサイズなどのような、タイミング間隔を規定することができる。たとえば、マスタのUARTが要求パケットを送信し、バイナリデータ内に間隙（介在する1文字分の沈黙）がある場合、スレーブはこれを2つの独立した要求パケットとは考えない。間隙が3．5文字分の時間を超える場合、スレーブは、これを誤って２つの独立した要求パケットと考える。
【０００５】
ユニバーサルシリアルバス（USB）は、事実上のハードウェア標準として、旧来のUARTベースのシリアル通信プロトコルに徐々に取って代わっている。たとえば、UARTベースのシリアル通信プロトコルにおいてマスタとして機能していた多くのコンピュータは、USBインターフェースを有するコンピュータに置き換えられている。しかしながら、UARTベースのシリアル通信プロトコルを利用するプログラムは、多くの用途において依然として利用されている。USBインターフェースを通じて通信するために、シリアル通信は、仮想UART層上に「スタック」され、USB規格に従ってUSBインターフェースを介して送信される。
【０００６】
しかしながら、タイミングに依拠するUARTベースのシリアル通信がUSBインターフェースを介して送信される場合、通信が解釈されるときにタイミング誤差が結果として生じる可能性がある。従って、シリアル通信のためのスタックタイミング調整が必要とされている。
【発明の概要】
【０００７】
シリアル通信のためのスタックタイミング調整のための方法が提供される。一実施形態によれば、方法は、USB通信を受信するステップと、USB通信をUARTフレームへと復号するステップと、シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップとを含む。
【０００８】
シリアル通信のためのスタックタイミング調整部を備えたUSBデバイスが提供される。一実施形態によれば、スタックタイミング調整部を備えたUSBデバイスは、USB通信を受信し、USB通信から符号化シリアルパケットを抽出するように構成されているUSBコントローラを備える。スタックタイミング調整部を備えたUSBデバイスは、符号化シリアルパケットをUARTフレームへと復号するように構成されているマイクロプロセッサと、シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部とをさらに備える。
【０００９】
シリアル通信のためのスタックタイミング調整部を備えた通信システムが提供される。一実施形態によれば、シリアル通信のためのスタックタイミング調整部を備えた通信システムは、シリアルパケットをUSB通信へと符号化するように適合されているUSBデバイスと、当該USBデバイスとの通信においてスタックタイミング調整部を備えたUSBデバイスとを備える。スタックタイミング調整部を備えたUSBは、USB通信からシリアルパケットを抽出及び復号し、シリアルパケットのタイミングを調整するように構成されている。
【００１０】
態様
一実施形態によれば、シリアル通信のためのスタックタイミング調整のための方法は、USB通信を受信するステップと、USB通信をUARTフレームへと復号するステップと、シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップとを含む。
好ましくは、USB通信をUARTフレームへと復号するステップは、UARTフレームを順序付けするステップを含む。
好ましくは、シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップは、USB通信へと符号化されている２つ以上のシリアルパケットの間に遅延を付加するステップを含む。
【００１１】
好ましくは、シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップは、USB通信へと符号化されているシリアルパケットに付加されている文字間遅延を除去するステップを含む。
好ましくは、シリアルプロトコルはModbusプロトコルを含む。
好ましくは、シリアルプロトコルはHARTプロトコルを含む。
好ましくは、USB通信はシリアルパケットを有するUSB CDCメッセージを含む。
【００１２】
一態様によれば、スタックタイミング調整部を備えたUSBデバイス（100）は、USB通信を受信し、USB通信から符号化シリアルパケットを抽出するように構成されているUSBコントローラ（100a）と、符号化シリアルパケットをUARTフレームへと復号するように構成されているマイクロプロセッサ（100b）と、シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部（100c）とを備える。
【００１３】
好ましくは、マイクロプロセッサ（100b）は、UARTフレームをある配列に順序付けするようにさらに構成されている。
好ましくは、シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部（100c）は、USB通信へと符号化されているシリアルパケットのうちの２つ以上の間に時間遅延を付加するように構成されているスタックタイミング調整部（100c）を含む。
【００１４】
好ましくは、シリアルプロトコルに従ってUARTフレームのタイミングを調整するように構成されているスタックタイミング調整部（100c）は、USB通信へと符号化されているシリアルパケットに付加されている文字間遅延を除去するように構成されているスタックタイミング調整部（100c）を含む。
好ましくは、シリアルプロトコルはModbusプロトコルを含む。
好ましくは、シリアルプロトコルはHARTプロトコルを含む。
好ましくは、USB通信はシリアルパケットを有するUSB CDCメッセージを含む。
【００１５】
一態様によれば、シリアル通信のためのスタックタイミング調整部を備えた通信システム（50）は、シリアルパケットをUSB通信へと符号化するように適合されているUSBデバイス（200）と、当該USBデバイス（200）との通信においてスタックタイミング調整部を備えたUSBデバイス（100）とを備える。スタックタイミング調整部を備えたUSBデバイスは、USB通信からシリアルパケットを抽出及び復号し、シリアルパケットのタイミングを調整するように構成されている。
【００１６】
好ましくは、スタックタイミング調整部を備えたUSBデバイス（100）は、応答USB通信へと符号化されているシリアル応答パケットによってシリアルパケットに応答するようにさらに構成されている。
好ましくは、USBデバイス（200）は、シリアル要求パケットをUSB通信へと符号化するようにさらに構成されているマスタである。
【図面の簡単な説明】
【００１７】
全ての図面上で同じ参照符号は同じ要素を表す。図面は必ずしも原寸に比例してはいないことが理解されるべきである。
【図１】USBデバイス12及びシリアルデバイス14を有する従来技術の通信システムのブロックダイヤグラム10である。
【図２】図１に示すブロックダイヤグラム10のより詳細な部分図である。
【図３】一実施形態による、スタックタイミング調整部を備えた通信システム50のブロック図である。
【図４】図3を参照して説明されているスタックタイミング調整部を備えたUSBデバイス100のより詳細なブロック図である。
【図５】一実施形態によるタイミング調整部を備えたプロトコルスタック500を示す図である。
【図６】一実施形態によるタイミング調整部を備えたModbusプロトコルスタック600を示す図である。
【図７】一実施形態によるスタックタイミング調整部を備えたHARTプロトコルスタック700を示す図である。
【図８】一実施形態によるシリアル通信のためのスタックタイミング調整のための方法800を示す図である。
【発明を実施するための形態】
【００１８】
図１〜図８及び以下の説明は、シリアル通信のためのスタックタイミング調整の最良の実施形態を作成及び使用するための方法を当業者に教示するための特定の例を示す。本発明の原理を教示する目的で、いくつかの従来の態様は単純化または省略されている。当業者は、本明細書の範囲内に入るこれらの例から変形形態を諒解するであろう。下記において説明されている特徴は、シリアル通信のためのスタックタイミング調整の複数の変形形態を形成するために、様々な方法で組み合わせることができることを、当業者は諒解するであろう。結果として、下記において説明されている実施形態は、下記において説明されている特定の例には限定されず、特許請求の範囲及びそれらの均等物によってのみ限定される。
【００１９】
図１は、USBデバイス12及びシリアルデバイス14を有する従来技術の通信システムのブロックダイヤグラム10を示す。図１において示されている構成では、変換器ボックス16が、USBデバイス12とシリアルデバイス14との間にある。USBケーブル18が、変換器ボックス16を、USBポート18aを通じてUSBデバイス12に結合する。変換器ボックス16はまた、シリアル通信ケーブル19によって、シリアル通信ポート19aを通じてシリアルデバイス14に結合されている。以下は、シリアル通信のためのスタックタイミング調整によって、ハードウェア冗長性をどのようになくすことができるかを示す、シリアルデバイス14及び変換器ボックス16のより詳細な説明である。
【００２０】
図２は、図１に示すブロックダイヤグラム10のより詳細な部分図を示す。ブロックダイヤグラム10は、図１を参照して説明されているシリアルデバイス14と、変換器ボックス16と、USBケーブル18と、シリアル通信ケーブル19とを含む。シリアル通信ケーブル19に結合されているRS485変換器14aも示されている。しかしながら、代替的な実施形態では、Bell202またはRS422物理層のような、他の物理層が利用されてもよい。RS485変換器14aはまた、RS232 UART  14bと通信しているようにも示されている。代替的に、RS485変換器14aは利用されなくてもよい。代わりに、RS232 UART  14bが、変換器ボックス16と通信するために利用されてもよい。図示されている実施形態において、マイクロプロセッサ14cは、RS232 UART  14bに結合されている。マイクロプロセッサ14cは、シリアルプロトコルスタック14dを、たとえば、USBデバイス12上で実行しているソフトウェアに提供する。図２はまた、変換器ボックス16が、USBケーブル18に結合されているUSBコントローラ16aを有するようにも示している。変換器ボックス16において、マイクロプロセッサ16bが、USBコントローラ16a及びRS232 UART  16cに結合されている。RS232 UART  16cは、RS485変換器16dに結合されている。代替的に、RS485変換器16dは利用されなくてもよい。代わりに、RS232 UART  16cが、シリアルデバイス14と通信してもよい。図示されている実施形態において、RS485変換器16dは、シリアル通信ケーブル19に結合されており、シリアルデバイス14内のRS485変換器14aと通信している。
【００２１】
図２から諒解され得るように、RS485変換器14aの使用は、冗長なハードウェアを必要とし得る。たとえば、シリアルデバイス14と変換器ボックス16の両方が、マイクロプロセッサ14c、16bと、RS232 UART  14b、16cと、RS485変換器14a、16dとを含む。冗長なハードウェアの機能は、USBデバイス12とシリアルデバイス14との間のシリアル通信の符号化及び復号することを含む。たとえば、変換器ボックス16内のRS485変換器16dが、RS232 UART  16cからのUARTフレームを符号化し、シリアルデバイス14内のRS485変換器14aが、UARTフレームを復号する。従って、UARTフレームを符号化及び復号する冗長な機能をなくすことによって、冗長なハードウェアをなくすことができる。以下の説明は、スタックタイミング調整が、タイミング誤差及び冗長な通信ハードウェアをどのように低減するかまたはなくすことができるかを示す。
【００２２】
図３は、一実施形態による、スタックタイミング調整部を備えた通信システム50のブロック図を示す。図示されている実施形態において、スタックタイミング調整部を備えた通信システム50は、USBケーブル120によってUSBデバイス200に結合されている、スタックタイミング調整部を備えたUSBデバイス100を含む。USBケーブル120は、USBポート110を通じてスタックタイミング調整部を備えたUSBデバイス100に結合されており、USBポート210を通じてUSBデバイス200に結合されている。
【００２３】
スタックタイミング調整部を備えたUSBデバイス100は、シリアル通信のスタックタイミング調整部を含むことができる任意の適切なUSBデバイスであってもよい。たとえば、スタックタイミング調整部を備えたUSBデバイス100は、シリアルパケットを生成するソフトウェアを含む流量計送信機であってもよい。いくつかの実施形態では、流量計からデータが得られ、USBデバイス200からの要求に応答してシリアルパケットへと変換され得る。シリアルパケットは、シリアル通信プロトコルに従って生成され得る。この例示的な実施形態において、スタックタイミング調整部を備えたUSBデバイス100は、USBデバイス200に対するスレーブであってもよい。
【００２４】
USBデバイス200は、スタックタイミング調整部を備えたUSBデバイス100と通信することが可能である任意の適切なUSBデバイスであってもよい。たとえば、スタックタイミング調整部を備えたUSBデバイス100が、流量計からデータを得る送信機である上記の例において、USBデバイス200は、シリアル要求パケットを送信することができるソフトウェアを実行しているパーソナルコンピュータであってもよい。シリアル要求パケットは、スタックタイミング調整部を備えたUSBデバイス100によって利用されているシリアル通信プロトコルに準拠し得る。従って、スタックタイミング調整部を備えたUSBデバイス100は、シリアル要求パケットを正確に解釈し、シリアル応答パケットによってこれに応答することができる。
【００２５】
以下においてより詳細に説明されるように、USBデバイス200は、シリアルパケットをUSB通信へと符号化することができる。たとえば、シリアル要求パケットは、USB通信デバイスクラス（CDC）メッセージへと符号化することができる。USB CDCは、シリアルインターフェースのような、異なるインターフェースを有するデバイス間の通信を規定するUSB規格である。しかしながら、シリアルパケットをUSB通信へと符号化することによって、時間遅延のような遅延が、シリアルパケットに付加される可能性がある。遅延はまた、シリアルパケット内の2つ以上の文字の間の文字間遅延でもあり得る。これらの及び他の遅延は、タイミングが調整されない場合、通信問題を引き起こす可能性がある。たとえば、Modbusスレーブによってタイミング調整されることなくModbusシリアル要求パケットに付加される時間遅延は、Modbusシリアル要求パケット内の2つ以上の文字の間に3.5文字間遅延が存在することに起因して、応答を妨げる可能性がある。文字間遅延は、シリアル要求パケットの誤った復号を引き起こす可能性があり、これによって、不正確なデータ応答及びコマンド、ならびに、さらには、産業機器における突発故障がもたらされる可能性がある。そのような問題を防止することができるスタックタイミング調整のさらなる詳細が、以下において説明される。
【００２６】
図４は、図３を参照して説明されているスタックタイミング調整部を備えたUSBデバイス100のより詳細なブロック図を示す。図4において示されているように、スタックタイミング調整部を備えたUSBデバイス100は、USBポート110を介してUSBケーブル120に結合されているUSBコントローラ100aを含む。USBコントローラ100aは、マイクロプロセッサ100bに結合されている。スタックタイミング調整部100cが、マイクロプロセッサ100bに結合されているものとして示されている。代替的な実施形態において、スタックタイミング調整部100cは、マイクロプロセッサ100bの一部分であってもよい。スタックタイミング調整部100cは、たとえば、スタックタイミング調整部を備えたUSBデバイス100上で実行しているソフトウェアに、シリアルプロトコルスタック100dを提供することができる。
【００２７】
USBコントローラ100aは、USBデバイス200からUSB通信を受信することができる。USB通信は、USBデバイス200上で実行しているソフトウェアによって生成されるシリアルパケットを有するUSB CDCメッセージから構成されてもよい。シリアルパケットのUSB通信への符号化の詳細は、図５〜図８を参照して以下においてより詳細に説明される。USBコントローラ100aは、USB通信を復号してUSB通信から符号化シリアルパケットを抽出することが可能である任意の適切なUSBコントローラであってもよい。USBコントローラ100aは、符号化シリアルパケットを抽出して、マイクロプロセッサ100bに提供することができる。
【００２８】
マイクロプロセッサ100bは、符号化シリアルパケットをUARTフレームへと復号するように構成することができる。マイクロプロセッサ100bは、符号化シリアルパケットをUARTフレームへと復号することが可能である任意の適切なマイクロプロセッサであってもよい。たとえば、マイクロプロセッサ100bは、高いクロック速度において抽出されているシリアルパケットを受信し、データレートがUARTフォーマットに準拠するように符号化シリアルパケットをバッファリングし、UARTフレームを適切な配列に順序付けするソフトウェアを受信するプロセッサとすることができる。復号UARTフレームは、スタックタイミング調整部100cに提供することができる。
【００２９】
スタックタイミング調整部100cは、マイクロプロセッサ100bから復号UARTフレームを受信することができる。マイクロプロセッサ100bからの復号UARTフレームは順序付けされ、UART規格に準拠するデータレートを有し得るが、UARTフレームは、依然として、上記において論述されている遅延を有する場合がある。たとえば、UARTフレームは、シリアルパケット間に文字間遅延または不適切な時間遅延を有し得る。スタックタイミング調整部100cは、図５〜図８を参照して以下において論述されるように、シリアルプロトコルに従ってUARTフレームのタイミングを調整することができる。従って、スタックタイミング調整部100cは、たとえば、スタッキングタイミング調整部を備えたUSBデバイス100上で実行しているソフトウェアに、シリアルプロトコルスタック100dを遅延なく提供することができる。
【００３０】
シリアルプロトコルスタック100dは、スタックタイミング調整部を備えたUSBデバイス100によって利用される任意のシリアルプロトコルスタックであってもよい。たとえば、スタックタイミング調整部を備えたUSBデバイス100は、ModbusまたはHART規格に準拠する通信を受信及び送信するソフトウェアを有してもよい。スタックタイミング調整部を備えたUSBデバイス100が流量計である実施形態において、シリアルプロトコルスタック100dは、USBデバイス200によって送信されるシリアル要求パケットであり得る。スタックタイミング調整は、シリアル通信が、遅延によって引き起こされる誤差なしに行われることを可能にするので、USBデバイス200は、シリアル要求パケットに正確に応答することができる。シリアルパケットの符号化及び復号のさらなる詳細が、以下において説明される。
【００３１】
図５は、一実施形態によるタイミング調整部を備えたプロトコルスタック500を示す。図５の実施形態において、シリアル要求パケット510は、たとえば、図３及び図４を参照して説明されているUSBデバイス200によって提供することができる。図５において示されているように、シリアル要求パケット510は、複数のUARTフレーム520へと符号化される。複数のUARTフレーム520は、UARTフレームの第１のセット520a及びUARTフレームの第２のセット520bから構成されているものとして示されている。代替的な実施形態では、より多いまたはより少ないUARTフレームが利用されてもよい。同じく図５に見てとれるように、複数のUARTフレーム520は、USB通信530へと符号化される。UARTフレームの第１のセット520aは第1のUSB CDCメッセージ530aへと符号化され、UARTフレームの第２のセット520bは第２のUSB CDCメッセージ530bへと符号化される。代替的な実施形態では、より多いまたはより少ないUSB CDCメッセージ530a、530bが利用されてもよい。USB通信530は、スタックタイミング調整部を備えたUSBデバイス100へと送信することができる。
【００３２】
図５にはまた、たとえば、USB通信530の受信後にスタックタイミング調整部を備えたUSBデバイス100によって送信することができるシリアル応答パケット550も示されている。シリアル応答パケット550は、図３を参照して説明されているUSBデバイス200に送信することができる。図５の実施形態では、シリアル応答パケット550は、複数のUARTフレーム560へと符号化される。複数のUARTフレーム560は、UARTフレームの第１のセット560a及びUARTフレームの第２のセット560bから構成されているものとして示されている。複数のUARTフレーム560は、USB通信570へと符号化される。図示されている実施形態において、UARTフレームの第１のセット560aは、第１のUSB CDCメッセージ570aへと符号化される。UARTフレームの第２のセット560bは、第２のUSB CDCメッセージ570bへと符号化される。USB通信570は、たとえば、シリアル要求パケット510に応答してUSBデバイス200へと送信することができる。
【００３３】
シリアル要求パケット510は、Modbus及びHART規格のようなシリアル通信規格に準拠する文字列であってもよい。しかしながら、他のシリアル通信規格が、本開示の範囲内にある。文字列は、コマンド、クエリ、データなどを表すことができる。たとえば、文字列は、USBデバイス200上で作動しているアプリケーションによって開始される通信であってもよい。通信は、データがUSBケーブル120を介してUSBデバイス200に提供されることを要求するために、スタックタイミング調整部を備えたUSBデバイス100にアドレス指定され得る。
【００３４】
シリアル要求パケット510は、インターフェース規格に従って複数のUARTフレーム520へと符号化される。たとえば、複数のUARTフレーム520は、シリアル要求パケット510を、RS232規格のようなシリアルインターフェース規格に準拠するタイミング及びデータレートを有する文字列へと変換したものであってもよい。しかしながら、RS232コネクタを通じて複数のUARTフレーム520を送信する代わりに、複数のUARTフレーム520は、USB通信530へと符号化される。
【００３５】
複数のUARTフレーム520の一部分は、USB通信530の一部分に含まれ得る。たとえば、USB CDC規格は、USB CDCメッセージの一部分を、データをカプセル化するために割り当てることができる。データをカプセル化するために使用されるUSB通信530の各々の部分は、時によって、当該技術分野においてはペイロードとして知られている。いくつかの実施形態では、ペイロードは限られたバイト幅を有し得る。たとえば、ペイロードは、64バイト幅であってもよい。加えて、複数のUARTフレーム520の各々は、ペイロードとして同じバイト幅を有しなくてもよい。結果として、ペイロード内に使用されていない文字があり得る。加えて、複数のUARTフレーム520の各々は、異なるUSB通信530の間で分割することができる。これらの及び他の実施形態では、USB通信530は、複数のUARTフレーム520を通信するために使用することができる。従って、スタックタイミング調整部を備えたUSBデバイス100上で作動しているアプリケーションは、たとえば、USBポート110を通じて通信するように修正または再プログラムする必要がない。
【００３６】
図５にはまた、シリアル要求パケット510と複数のUARTフレーム520との間の破線によって示されている時間遅延も示されている。時間遅延は、スタックタイミング調整部を備えたUSBデバイス100が、たとえば、マイクロプロセッサ100bにおいて処理中断を受けること、または、シリアル要求パケット510が複数のUARTフレーム520へと復号されている間の他の遅延に起因し得る。時間遅延は、シリアル要求パケット510と複数のUARTフレーム520との間にあるものとして示されている。しかしながら、上記において説明されているように、他の遅延が発生する場合がある。たとえば、複数のUARTフレーム520の各々の間、複数のUARTフレーム520の各々の中の2つ以上の文字の間などに遅延がある場合がある。
【００３７】
図３〜図４を参照して上記において説明されているように、スタックタイミング調整部100cは、スタックタイミング調整部を備えたUSBデバイス100とUSBデバイス200との間のシリアル通信がエラーなく行われることを保証するために、遅延を除去することができる。諒解され得るように、スタックタイミング調整部100cは、シリアルプロトコルに準拠し得る。例示的なシリアルプロトコルは、図６及び図７を参照して以下においてより詳細に説明される。
【００３８】
図６は、一実施形態によるタイミング調整部を備えたModbusプロトコルスタック600を示す。図６の実施形態において、Modbus要求パケット610は、たとえば、図３及び図４を参照して説明されているUSBデバイス200によって提供することができる。図６において示されているように、Modbus要求パケット610は、複数のUARTフレーム620へと符号化される。複数のUARTフレーム620は、UARTフレームの第１のセット620a及びUARTフレームの第２のセット620bから構成されているものとして示されている。代替的な実施形態では、より多いまたはより少ないUARTフレームが利用されてもよい。同じく図６に見られるように、複数のUARTフレーム620は、USB通信630へと符号化される。UARTフレームの第１のセット620aは第１のUSB CDCメッセージ630aへと符号化され、UARTフレームの第２のセット620bは第２のUSB CDCメッセージ630bへと符号化される。代替的な実施形態では、より多いまたはより少ないUSB CDCメッセージが利用されてもよい。USB通信630は、スタックタイミング調整部を備えたUSBデバイス100へと送信することができる。
【００３９】
図６には、パケット終了（EOP）640遅延も示されている。EOP  640は、スレーブが応答することを可能にするModbus要求パケット610後の遅延または期間である。Modbus要求パケット610が3.5文字遅延でスレーブによって受信される場合、スレーブは、Modbus応答パケット650によって応答することができる。
【００４０】
Modbus応答パケット650は、たとえば、USB通信630の受信後にスタックタイミング調整部を備えたUSBデバイス100によって送信することができる。Modbus応答パケット650は、図３を参照して説明されているUSBデバイス200に送信することができる。図６の実施形態では、Modbus応答パケット650は、複数のUARTフレーム660へと符号化される。複数のUARTフレーム660は、UARTフレームの第１のセット660a及びUARTフレームの第２のセット660bから構成されているものとして示されている。複数のUARTフレーム660は、USB通信670へと符号化される。図示されている実施形態において、UARTフレームの第１のセット660aは、第１のUSB CDCメッセージ670aへと符号化される。UARTフレームの第２のセット660bは、第２のUSB CDCメッセージ670bへと符号化される。USB通信670は、たとえば、Modbus要求パケット610に応答してUSBデバイス200へと送信することができる。
【００４１】
Modbus要求パケット610は、Modbus通信プロトコルに準拠する文字列であってもよい。文字列は、マスタによってスレーブへと送信されるコマンドを含むことができる。しかしながら、図６において示されている破線によって示されている遅延に起因して、スタックタイミング調整部を備えたUSBデバイス100は、Modbus要求パケット610のタイミングを調整せずに応答することは不可能である。たとえば、Modbus要求パケット610を複数のUARTフレーム620へと復号することによって、Modbus要求パケット610のタイミングがシフトされ得、それによって、EOP  640が3.5文字未満まで低減される。結果として、スレーブは、Modbus要求パケット610に応答することが不可能である。
【００４２】
加えて、Modbus規格は、Modbus要求パケット610を、ビット長によって規定される部分またはフィールドへと分割する。たとえば、Modbus RTUフレームフォーマットは、アドレス及び機能フィールドの後にデータ部分を有することができる。Modbus要求パケット610をUSB通信630へと符号化することによって、これらのフィールド内に文字またはビットを挿入することができる。たとえば、図５を参照して上記において説明されているように、Modbus要求パケット610は、２つ以上のUSB通信630の間で分割することができる。この分割は、さらなる文字がModbus要求パケット610内に挿入されるようにすることができる。以下においてより詳細に説明される、HARTプロトコルにおけるシリアルパケットに、同様の遅延が付加され得る。
【００４３】
図７は、一実施形態によるスタックタイミング調整部を備えたHARTプロトコルスタック700を示す。図７の実施形態において、HART要求パケット710は、たとえば、図３及び図４を参照して説明されているUSBデバイス200によって提供することができる。図７において示されているように、HART要求パケット710は、複数のUARTフレーム720へと符号化される。複数のUARTフレーム720は、UARTフレームの第１のセット720a及びUARTフレームの第２のセット720bから構成されているものとして示されている。代替的な実施形態では、より多いまたはより少ないUARTフレームが利用されてもよい。同じく図７に見てとれるように、複数のUARTフレーム720は、USB通信730へと符号化される。UARTフレームの第１のセット720aは第１のUSB CDCメッセージ730aへと符号化され、UARTフレームの第２のセット720bは第２のUSB CDCメッセージ730bへと符号化される。代替的な実施形態では、より多いまたはより少ないUSB CDCメッセージ730a、730bが利用されてもよい。USB通信730は、スタックタイミング調整部を備えたUSBデバイス100へと送信することができる。
【００４４】
図７には、スレーブタイムアウト（STO）740期間も示されている。STO  740は、HART規格におけるスレーブが、たとえば、HART応答パケット750によって応答を開始しなければならない、HART要求パケット710後の最大期間である。
HART応答パケット750は、たとえば、USB通信730の受信後にスタックタイミング調整部を備えたUSBデバイス100によって送信することができる。HART応答パケット750は、図３を参照して説明されているUSBデバイス200に送信することができる。図７の実施形態では、HART応答パケット750は、複数のUARTフレーム760へと符号化される。複数のUARTフレーム760は、UARTフレームの第１のセット760a及びUARTフレームの第２のセット760bから構成されているものとして示されている。複数のUARTフレーム760は、USB通信770へと符号化される。図示されている実施形態において、UARTフレームの第１のセット760aは、第１のUSB CDCメッセージ770aへと符号化される。UARTフレームの第２のセット760bは、第２のUSB CDCメッセージ770bへと符号化される。USB通信770は、たとえば、HART要求パケット710に応答してUSBデバイス200へと送信することができる。
【００４５】
HART要求パケット710は、HART通信規格に準拠する文字列であってもよい。文字列は、マスタによってスレーブへと送信されるコマンドを含むことができる。しかしながら、図７において示されている破線によって示されている遅延に起因して、スタックタイミング調整部を備えたUSBデバイス100は、HART要求パケット710のタイミングを調整せずに応答することが可能でない場合がある。たとえば、HART要求パケット710を複数のUARTフレーム720へと復号することによって、HART要求パケット710のタイミングがシフトされ得、それによって、STO  740の長さが低減される。結果として、スレーブは、HART要求パケット710に応答することが不可能である。
【００４６】
加えて、HART規格は、HART要求パケット710を、ビット長によって規定される部分またはフィールドへと分割する。図７において示されているように、HART要求パケット710は、プリアンブル712、デリミタ(区切り)714、及びデータ716部分から構成されている。HART応答パケット750は、同様に、プリアンブル752、デリミタ(区切り)754、及びデータ756部分へと分割される。プリアンブル712、752は、同期及びキャリア検出フィールドである。デリミタ714、754は、プリアンブル712、752をデータ716、756部分から分離する。図７には示されていないが、データ716、756は、HARTプロトコルにおけるアドレス、コマンド、サイズ、ステータス、データフィード、及びチェックサムフィールドから構成されている。
上述した遅延は、以下においてより詳細に説明されるように、スタックタイミング調整部を用いて、シリアル要求パケット510〜710のような、シリアルパケットから除去することができる。
【００４７】
図８は、一実施形態によるシリアル通信のためのスタックタイミング調整のための方法800を示す。方法800は、USB通信を受信するステップ810と、USB通信をUARTフレームへと復号するステップ820と、シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップ830とを含む。
上記において論述されているように、USB通信を受信するステップ810は、USB CDC通信を受信するステップから構成することができる。USB通信530は、USBデバイス200によってUSB通信530へと符号化されるシリアル要求パケット510を含むことができる。上記において説明されているように、符号化は、タイミング遅延のような遅延を、シリアルパケットに付加する可能性がある。
【００４８】
USB通信をUARTフレームへと復号するステップ820は、様々な動作を含むことができる。たとえば、USB通信をUARTフレームへと復号するステップ820は、UARTフレームを、USB通信へと符号化されているUARTフレームと同じ配列にUARTフレームを順序付けするステップを含んでもよい。付加的にまたは代替的に、USB通信をUARTフレームへと復号するステップは、インターフェース規格のデータレートに準拠するレートまで、符号化UARTフレームをバッファリングするステップを含んでもよい。
【００４９】
シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップ830は、シリアルパケット間の時間遅延、文字間遅延などを調整する動作を含むことができる。たとえば、シリアルプロトコルに従ってUARTフレームのタイミングを調整するステップ830は、UARTフレーム内の文字間遅延を除去するステップを含むことができる。付加的にまたは代替的に、シリアルパケット間の時間遅延も調整することができる。UARTフレームのタイミングを調整するステップは、上記において説明されている、EOP  640又はSTO  740のようなパケット終了遅延を証明するステップを含むことができる。パケット終了遅延がシリアル通信規格を満たさない場合、シリアル要求パケット510〜710に遅延が付加され得る。従って、スタックタイミング調整部を備えたUSBデバイス100は、シリアル要求パケット510〜710に正確に応答することが可能である。
【００５０】
上述した実施形態は、シリアル通信のためのスタックタイミング調整を可能にする。上記で説明されているように、スタックタイミング調整のための方法800は、複数のUARTフレーム520〜720のタイミングを調整することができる。複数のUARTフレーム520〜720のタイミングを調整するステップは、シリアル要求パケット510〜710に付加される、タイミング遅延、文字間遅延などのような遅延を除去するステップを含むことができる。遅延を除去することによって、スタックタイミング調整部を備えたUSBデバイス100は、USBデバイス200によって送信される、シリアル要求パケット510のようなシリアルパケットを正確に解釈することができる。
【００５１】
スタックタイミング調整部を備えたUSBデバイス100は、スタックタイミング調整のための方法800を実施するためのスタックタイミング調整部100cを含むことができる。スタックタイミング調整部を備えたUSBデバイス100は、それゆえ、シリアルパケット内のコマンドを正確に実行することができる。たとえば、スタックタイミング調整部を備えたUSBデバイス100は、流量計からデータを読み出し、シリアル応答パケット550〜750を介してUSBデバイス200へとデータを送信する送信機であってもよい。
【００５２】
スタックタイミング調整部を備えたUSBデバイス100内にスタックタイミング調整部100cを含むことによって、構成要素及びデバイスを低減するかまたはなくすことができる。たとえば、図１及び図２を参照して説明されている変換器ボックス16は必要ない。加えて、図２を参照して説明されているRS485変換器14aは必要ない。加えて、USBデバイス200と、スタックタイミング調整部を備えたUSBデバイス100との間の通信のデータレートを改善することができる。たとえば、USB通信530〜730は、RS232規格のような、多くのシリアルインターフェース規格よりもはるかに高いレートにおいて送信することができる。
【００５３】
スタックタイミング調整部を備えたUSBデバイス100内にスタックタイミング調整のための方法800を含むことによってまた、消費者がソフトウェアを修正すること、変換器ボックスの適合性を保証することなどの必要をなくすこともできる。たとえば、USBデバイス200上で実行しているソフトウェアは、たとえば、専用のUSB通信プロトコルによって更新される必要がない。ソフトウェアは、修正するか、または、新たなソフトウェアを開発する必要なしに、シリアル要求パケット510〜710のようなシリアルパケットを送信し続けることができる。
【００５４】
上記の実施形態の詳細な説明は、本発明者らによって本明細書の範囲内にあるように企図されているすべての実施形態の網羅的な説明ではない。事実、上述した実施形態の特徴の要素は、さらなる実施形態を作成するために様々に組み合わせるかまたはなくすことができ、そのようなさらなる実施形態は、本明細書の範囲及び教示の中に入ることを、当業者は認識するであろう。上述した実施形態は、本明細書の範囲及び教示の中で追加の実施形態を作成するために全体的にまたは部分的に組み合わせることができることも、当業者には諒解されよう。
【００５５】
従って、例示を目的として特定の実施形態が本明細書において説明されているが、当業者が認識するように、本明細書の範囲内で、様々な均等な修正が可能である。本明細書において与えられている教示は、上記で説明されており、添付の図面に示されている実施形態だけでなく、シリアルプロトコルのための他のスタックタイミング調整に適用することができる。従って、上記で説明されている実施形態の範囲は、添付の特許請求の範囲によって決定されるべきである。
【図１】
0006465965.tif 000002
【図２】
0006465965.tif 000003
【図３】
0006465965.tif 000004
【図４】
0006465965.tif 000005
【図５】
0006465965.tif 000006
【図６】
0006465965.tif 000007
【図７】
0006465965.tif 000008
【図８】
0006465965.tif 000009