JP4924472B2 - ホスト機器 - Google Patents

ホスト機器 Download PDF

Info

Publication number
JP4924472B2
JP4924472B2 JP2008044631A JP2008044631A JP4924472B2 JP 4924472 B2 JP4924472 B2 JP 4924472B2 JP 2008044631 A JP2008044631 A JP 2008044631A JP 2008044631 A JP2008044631 A JP 2008044631A JP 4924472 B2 JP4924472 B2 JP 4924472B2
Authority
JP
Japan
Prior art keywords
usb
serial
data
serial converter
standard data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008044631A
Other languages
English (en)
Other versions
JP2009205271A (ja
Inventor
竜次 河合
文敏 宇野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2008044631A priority Critical patent/JP4924472B2/ja
Publication of JP2009205271A publication Critical patent/JP2009205271A/ja
Application granted granted Critical
Publication of JP4924472B2 publication Critical patent/JP4924472B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、USBシリアル変換器を用いてシリアル機器とホスト機器との間のデータ転送を行う場合に、USBシリアル変換器に蓄積されたデータを速やかに読み出しながら、ホスト機器の処理負荷を低減する技術に関する。
従来より、パーソナルコンピュータ等のホスト機器に接続されて使用されるプリンタやモデム等の電子機器が知られている。このような電子機器は、例えば、RS−232Cやセントロニクス等のインタフェースを備えており、所定のケーブルを介してホスト機器と接続され、ホスト機器からの制御等に従って動作する。
近年、ホスト機器に採用されるインタフェース規格として、USB(Universal Serial Bus)が多くなっている。このUSBは、ホスト機器において導入されている一般的なOS(Operating System)にてサポートされており、電子機器の電源を入れたままで接続できるホット・プラグ・インや、電子機器を使用するための設定を自動的に行えるプラグ・アンド・プレイが特徴となっている(例えば、特許文献1参照。)。そして、上述のRS−232C等のような従来型のインタフェースを備えた電子機器と、USB等の最新型のインタフェースを備えた電子機器とを混在して使用する機会が多い。その際、いわゆるUSBシリアル変換器を用いて両者を接続する。
このUSBシリアル変換器は、パーソナルコンピュータ等のホスト機器に接続することでシリアル端子を増設するものであり、ホスト機器のアプリケーション層からのアクセスには旧来のシリアル用APIを利用する。また、USBシリアル変換器用のドライバについても、旧来のシリアル用のドライバを模擬した動作をすることで、APIレベルでは互換性を保っている。このような実装方式によって、USBシリアル変換器を利用しても、シリアル通信用の通信ソフトウェア等を利用することができる。
なお、シリアル規格でのデータ転送では双方向且つ非同期にデータ転送が行われ、一方、USB規格でのデータ転送ではフレーム構造のパケット転送が行われる。このため、USBシリアル変換器とホスト機器との間のデータ交換プロトコルが問題になる。すなわち、USBシリアル変換器では、RxDからビット列を受信すると、受信したデータをバイト変換してバッファに保持する。この場合、USBシリアル変換器内部のバッファの容量は一般的に小さく設定されているため、バッファに空き容量が無くなる前に、バッファが記憶するデータをホスト機器が読み出す必要がある。
そのため、ホスト機器では、USBシリアル変換器のバッファにデータが蓄積されているか否かを確認するためにインタラプト転送を行うことやバルク転送(ポーリング)を定期的に行うことが一般的である。
しかし、ホスト機器がインタラプト転送を行う場合には、転送周期を決定して一定量のパケット転送を常に行うため、バッファにデータが蓄積されていないときでもUSBバスを一定幅占有するという問題がある。また、ホスト機器がバルク転送を行う場合には、ホスト機器が制御コマンドを定期的に発行し、それに対してUSBシリアル変換器がデータ返信を行う処理を繰り返すことになり、この場合も同様に、バッファにデータが蓄積されていないときでもUSBバスを一定幅占有するという問題がある。つまり、シリアル方式でのデータ転送では、転送すべきデータが発生する頻度が低く、転送すべきデータが存在しない期間が多いにもかかわらず、転送すべきデータの有無を確認するためのホスト機器やUSBシリアル変換器の負担が大きくなっている。
なお、上述のようにインタラプト転送やバルク転送を行う際の転送周期については、シリアル方式でデータ転送を行う場合の最大転送速度(一般に115200bps)に対して余裕があるものでなければならない。一例を挙げると、UBSシリアル変換器の制御LSIが有するデータ受信バッファの容量が、例えば英FTDI社(Future Technology Devices International Ltd.)製「FT232R」の場合には256byte程度なので、22msec以下の転送周期でインタラプト転送を行い、22msec以下の周期でバルク転送を行うといった具合である。
特開2002−197048号公報(第2頁、図2)
しかし、このようなUSBシリアル変換器を用いてシリアル機器とホスト機器との間のデータ転送方法においては、旧来のシリアル通信用のドライバを介してシリアル機器とのデータ転送を行う場合に比べて、ホスト機器が備えるCPUが行う処理の負荷が増大するという問題がある。その理由は、ホスト機器が備えるUSBホストコントローラLSIには、PCIバス接続として「OHCI」、「EHCI」および「UHCI」の三種類があるが、何れの場合にもUSB規格ではパケット1個の受信につき1度の割り込み処理を行う必要があり、そのため、転送周期での割込み処理を行う必要があるからである。因みに、旧来のシリアル用のドライバを介してシリアル機器とのデータ転送を行う場合には、データ転送を行う場合のみ上述のような割込み処理を行うこととなるため、転送すべきデータが発生する頻度が低いシリアル機器とのデータ転送においては、割込み処理を行う頻度も著しく少なく、仮に割込み処理を行う周期が短くても、実際にホスト機器が備えるCPUが行う処理の負荷は小さい。
また、シリアル機器の中には、センサ機器や操作端末などのように例えば数分につき数バイト程度のデータ転送を行う機器や、処理負荷の変動幅が大きい機器が多い。さらに、USB規格のデータ転送においては、USBシリアル変換器から転送トリガを発行することが規格上できない。そのため、USBシリアル変換器では、バッファに空き容量が無くなる前にバッファが記憶するデータをホスト機器が読み出す必要があるために、バルク転送を行う場合にはホスト機器のCPUの負荷が大きくなることを承知の上でその転送周期を可能な限り短く設定している。つまり、転送すべきデータが発生する頻度が低いにもかかわらず、バッファに蓄積されたデータの有無を頻繁に確認するようにしている。
本発明は、このような課題に鑑みなされたものであり、その目的とするところは、USBシリアル変換器を用いてシリアル機器とホスト機器との間のデータ転送を行う場合に、USBシリアル変換器に蓄積されたデータを速やかに読み出しながら、ホスト機器の処理負担を低減する技術を提供することにある。
上記課題を解決するためになされた請求項1に係るホスト機器は、USBシリアル変換器との間でUSB規格のデータを送受信可能なデバイスドライバと、通信アプリケーションを備える。
なお、USBシリアル変換器とは、シリアル規格のデータを処理可能な電子機器である「シリアル機器」とUSB規格のデータを処理可能な電子機器である「USB機器」と間のデータ転送を中継する機能を有する。具体的には、USBシリアル変換器は、シリアル機器とUSB機器との間に接続された際に、シリアル機器がUSB機器へ送信したシリアル規格のデータを内蔵するバッファに一時的に蓄積するとともにUSB規格のデータに変換してUSB機器からの要求に応じてUSB機器へ送信し、一方、USB機器がシリアル機器へ送信したUSB規格のデータをシリアル規格のデータに変換した後にシリアル機器へ送信する。なお、シリアル規格のデータをUSB規格のデータに変換する時期としては、バッファにデータを蓄積する前であってもよいし、バッファに蓄積したデータを読み出した後であってもよい。
そして、デバイスドライバは、上述のようにUSBシリアル変換器との間でUSB規格のデータを送受信可能であり、USBシリアル変換器に対して各種コマンドを発行可能であり、バッファに蓄積されるデータの有無を確認するための確認コマンドを予め設定された周期にてUSBシリアル変換器へ発行する。なお、この予め設定された周期については、バッファの容量およびUSBシリアル変換器との間でデータ転送を行う際の単位時間当たりの最大データ転送量に応じて予め設定される。
また、通信アプリケーションは、読出しコマンドをデバイスドライバを介してUSBシリアル変換器へ発行する。なお、読出しコマンドとは、USBシリアル変換器のバッファに蓄積されたデータを読み出すためのコマンドであり、USBシリアル変換器のバッファの空き容量が無くならないように設定された周期で発行される。
そして、上述のデバイスドライバは、通信アプリケーションが読出しコマンドを発行する周期を計測し、確認コマンドを発行する周期を予め設定された周期からその計測した周期へ変更する。なお、USBシリアル変換器に蓄積されたデータについては、通信アプリケーションが読出しコマンドを発行される度に、USBシリアル変換器からホスト機器にデータ転送される。
なお、上述のようなデバイスドライバおよび通信アプリケーションの機能により、ホスト機器は、USB機器として機能することとなる。
このようにすると、通信アプリケーションが読出しコマンドを発行する周期は、デバイスドライバが確認コマンドを発行する周期よりも長いために、変更後の確認コマンドを発行する周期が変更前に比べて長くなる。なお、USBシリアル変換器のバッファに蓄積されたデータについては、通信アプリケーションが読出しコマンドを発行する度に、USBシリアル変換器からホスト機器にデータ転送されるので、バッファの空き容量が無くなることはない。したがって、USBシリアル変換器に蓄積されたデータを速やかに読み出しながら、ホスト機器の処理負担を軽減することができる。
また、上述の確認コマンドを発行する周期を予め設定された周期から通信アプリケーションが設定したデータ転送速度に対応する周期へ変更することが考えられる。具体的には、請求項2のように、通信アプリケーションが、シリアル機器との間でデータ転送を行う際の単位時間当たりのデータ転送量であるRS232Cのシリアル通信速度、つまりボーレート(bps:Bits Per Second)を設定可能であり、デバイスドライバが、通信アプリケーションによって設定したボーレートに対応する周期を算出し、確認コマンドを発行する周期を予め設定された周期からその算出した周期へ変更することが考えられる。
このようにすると、ボーレートが、予め設定される周期を算出する際に用いられる「単位時間当たりの最大データ転送量」よりも小さいため、変更後の確認コマンドを発行する周期が変更前に比べて長くなる。なお、USBシリアル変換器のバッファに蓄積されたデータについては、上述のように、通信アプリケーションが読出しコマンドを発行される度に、USBシリアル変換器からホスト機器にデータ転送されるので、バッファの空き容量が無くなることはない。したがって、USBシリアル変換器に蓄積されたデータを速やかに読み出しながら、ホスト機器の処理負担を軽減することができる。
また、上述の確認コマンドの発行を停止することが考えられる。具体的には、請求項3のように、確認コマンドの発行を停止する旨を入力するための入力手段を備え、確認コマンドの発行を停止する旨が入力手段から入力された場合には、デバイスドライバが、確認コマンドの発行を停止することが考えられる。なお、確認コマンドの発行を停止する旨を入力手段に入力する方法としては、利用者による手動入力や当該ホスト機器によるコマンド発行などが挙げられる。なお、USBシリアル変換器のバッファに蓄積されたデータについては、上述のように、通信アプリケーションが読出しコマンドを発行される度に、USBシリアル変換器からホスト機器にデータ転送されるので、バッファの空き容量が無くなることはない。したがって、USBシリアル変換器に蓄積されたデータを速やかに読み出しながら、ホスト機器の処理負担を軽減することができる。
以下に本発明の実施形態を図面とともに説明する。
[第一実施形態]
図1はUSBシリアル変換器を用いてホスト機器とシリアル機器とを接続する例を示す説明図である。また、図2はホスト機器およびUSBシリアル変換器の構成を示すハードブロック図である。また、図3はホスト機器の構成を示すソフトブロック図である。なお、USB機器とは、USB規格のデータを処理可能な電子機器であり、シリアル機器とは、シリアル規格のデータを処理可能な電子機器である。
[USBシリアル変換器20の構成の説明]
USBシリアル変換器20は、USB機器を接続可能なUSB(B)コネクタ21と、USBシリアル変換LSI22と、シリアル機器を接続可能なシリアルコネクタ23と、を備える。なお、USBシリアル変換器20内部では、USB(B)コネクタ21とUSBシリアル変換LSI22のUSBデバイスコントローラ回路ブロック22a(後述)とが接続され、USBシリアル変換LSI22のシリアル回路ブロック22c(後述)とシリアルコネクタ23とが接続されている。
USBシリアル変換LSI22は、各種処理を実行するマイコンCPU回路ブロック22bと、マイコンCPU回路ブロック22bとUSB(B)コネクタ21に接続されたUSB機器との間のデータのやり取りを仲介するUSBデバイスコントローラ回路ブロック22aと、マイコンCPU回路ブロック22bとシリアルコネクタ23に接続されたシリアル機器との間のデータのやり取りを仲介するシリアル回路ブロック22cと、を有する。
このように構成されたUSBシリアル変換器20は、シリアル機器とUSB機器と間のデータ転送を中継する機能を有する。具体的には、USBシリアル変換器20は、シリアル機器とUSB機器との間に接続された際に、シリアル機器がUSB機器へ送信したシリアル規格のデータを内蔵するバッファ(図示省略)に一時的に蓄積するとともにUSB規格のデータに変換してUSB機器からの要求に応じてUSB機器へ送信し、一方、USB機器がシリアル機器へ送信したUSB規格のデータをシリアル規格のデータに変換した後にシリアル機器へ送信する。なお、シリアル規格のデータをUSB規格のデータに変換する時期としては、バッファにデータを蓄積する前であってもよいし、バッファに蓄積したデータを読み出した後であってもよい。
[ホスト機器10の構成の説明]
ホスト機器10は、複数のソフトウェアに基づく処理を時分割で並列に実行するCPU11と、PCチップセット12と、USB機器に対してホストとして各種処理を実行するUSBホストコントローラLSI13と、USB機器を接続可能なUSB(A)コネクタ14と、シリアル機器を接続可能なシリアルコネクタ15と、を備え、USB機器として機能する。なお、本実施形態のホスト機器10は、4個のUSB(A)コネクタ14および1個のシリアルコネクタ15を備える。
なお、ホスト機器10内部では、CPU11とPCチップセット12とが接続され、PCチップセット12のPCIバスブリッジ回路ブロック12b(後述)とUSBホストコントローラLSI13とがPCIバスを介して接続され、PCチップセット12のシリアル回路ブロック12a(後述)とシリアルコネクタ15とが接続され、USBホストコントローラLSI13とUSB(A)コネクタ14とが接続されている。
また、PCチップセット12には、CPU11とシリアル機器との間のデータのやり取りを仲介するシリアル回路ブロック12aや、CPU11とPCIバスに接続される各種構成と間のデータのやり取りを仲介するPCIバスブリッジ回路ブロック12bなどが搭載されている。
また、USBホストコントローラLSI13は、CPU11に制御されて、USB規格のデータを生成し、その生成したデータをUSB(A)コネクタ14を介してUSB(A)コネクタ14に接続されるUSB機器に出力するとともに、USB機器からUSB(A)コネクタ14を介して送信されてくる通信信号を受信して、受信したデータをCPU11に入力する。
また、ホスト機器10は、図3に示すように、アプリケーション層に通信アプリケーション101を備え、API層にシリアルAPI102を備え、デバイスドライバ層にUSBシリアル変換器デバイスドライバ103、16550シリアルデバイスドライバ104、およびUSBホストコントローラデバイスドライバ105を備える。なお、これらホスト機器10が備える各種アプリケーションソフトについては、上述のCPU11、PCチップセット12、およびUSBホストコントローラLSI13によって実行される。
デバイスドライバとしてのUSBシリアル変換器デバイスドライバ103は、USBホストコントローラデバイスドライバ105を介してUSBシリアル変換器20との間でUSB規格のデータを送受信可能である。また、USBシリアル変換器デバイスドライバ103は、USBシリアル変換器20に対して各種コマンドを発行可能であり、USBシリアル変換器20のバッファに蓄積されるデータの有無を確認するための確認コマンド(ポーリング)を予め設定された周期にてUSBシリアル変換器20へ発行する。なお、この予め設定された周期については、バッファの容量およびUSBシリアル変換器20との間でデータ転送を行う際の単位時間当たりの最大データ転送量に応じて予め設定され、本実施形態では16msecに設定される。
[ホスト機器10のその他の構成について]
なお、本実施形態のホスト機器10のその他の構成については、公知技術に従っているので、ここでは詳細な説明は省略する。
[従来のホスト機器10とシリアル機器30とのデータ送受信プロセスの説明]
次に、USBシリアル変換器20を用いてホスト機器10とシリアル機器30とを接続し、ホスト機器10とシリアル機器30との間でデータの送受信を行う際の従来のプロセスを(1)OPENコマンド発行、(2)READコマンド発行、(3)WRITEコマンド発行、および(4)CLOSEコマンド発行の順に、図4を参照して説明する。なお、図4は従来のホスト機器10とシリアル機器30とのデータ送受信プロセスを説明するシーケンス図である。
(1)OPENコマンド発行
通信アプリケーション101とUSBシリアル変換器20との間でデータの送受信を開始する際には、通信アプリケーション101がOPENコマンドを発行する。すなわち、通信アプリケーション101が、USBシリアル変換器20とのデータの送受信を開始するためにOPENコマンドを発行すると、そのOPENコマンドはシリアルAPI102を介してUSBシリアル変換器デバイスドライバ103に送信される。USBシリアル変換器デバイスドライバ103では、OPENコマンドを受信するとOPEN返値を発行する。このOPEN返値は、シリアルAPI102を介して通信アプリケーション101へ送信される。また、USBシリアル変換器デバイスドライバ103では、USBシリアル変換器20に対してコマンドを発行する。このコマンドは、USBホストコントローラデバイスドライバ105を介してUSBシリアル変換器20へ送信される。USBシリアル変換器20では、コマンドを受信するとコマンド返信割込を発行する。コマンド返信割込は、USBホストコントローラデバイスドライバ105を介してUSBシリアル変換器デバイスドライバ103へ送信される。以上のプロセスにより、通信アプリケーション101とUSBシリアル変換器20との間でデータの送受信が開始される。
そして、コマンド返信割込を受信したUSBシリアル変換器デバイスドライバ103は、所定周期でポーリングを開始する。具体的には、USBシリアル変換器デバイスドライバ103は、USBシリアル変換器20のバッファにデータが蓄積されていることを確認するためのコマンドを発行する。このコマンドは、USBホストコントローラデバイスドライバ105を介してUSBシリアル変換器20へ送信される。USBシリアル変換器20では、バッファにデータが蓄積しているか否かを確認し、確認結果を示すコマンド(コマンド返信割込)を発行する。コマンド返信割込は、USBホストコントローラデバイスドライバ105を介してUSBシリアル変換器デバイスドライバ103へ送信される。
なお、USBシリアル変換器20が、シリアル機器から送信されたデータを受信し、その受信したデータをバッファに蓄積しているときには、通信アプリケーション101がREADコマンドを発行するのを待って、その蓄積するデータを通信アプリケーション101へ向けて送信する。
なお、本実施形態では、ポーリングを行う周期の初期値が16msecに設定されており、以後この周期にてポーリングが実行される。
(2)READコマンド発行
通信アプリケーション101では、所定の周期でREADコマンドを発行するように設定されており、この周期にてREADコマンドを発行する。なお、READコマンドとは、USBシリアル変換器20のバッファに蓄積されたデータを読み出すためのコマンドであり、USBシリアル変換器20のバッファの空き容量が無くならないように設定された周期で発行される。なお、この周期については通信アプリケーション101によって設定される。
まず、通信アプリケーション101が、USBシリアル変換器20のバッファに蓄積されるデータを読み出すためにREADコマンドを発行すると、そのREADコマンドはシリアルAPI102を介してUSBシリアル変換器デバイスドライバ103に送信される。USBシリアル変換器デバイスドライバ103では、READコマンドを受信するとREAD返値を発行する。このREAD返値は、シリアルAPI102を介して通信アプリケーション101へ送信される。また、USBシリアル変換器デバイスドライバ103では、USBシリアル変換器20に対してコマンド発行する。このコマンドは、USBホストコントローラデバイスドライバ105を介してUSBシリアル変換器20へ送信される。USBシリアル変換器20では、コマンドを受信すると、データをバッファに蓄積しているときには、その蓄積するデータをUSBホストコントローラデバイスドライバ105を介してUSBシリアル変換器デバイスドライバ103へ送信する。USBシリアル変換器デバイスドライバ103では、受信したデータをUSB規格に変換した後にシリアルAPI102などを介して通信アプリケーション101へ送信する。通信アプリケーション101では、受信したデータをバッファに一時保管し、そのデータを必要とするアプリケーションの指示によって処理される。
(3)WRITEコマンド発行
他のアプリケーションからの指示によってシリアル機器にデータを送信する場合には、通信アプリケーション101が、USBシリアル変換器20のバッファにデータを書き込むためにWRITEコマンドを発行する。すなわち、通信アプリケーション101が、USBシリアル変換器20のバッファにデータを書き込むためにWRITEコマンドを発行すると、そのWRITEコマンドはシリアルAPI102を介してUSBシリアル変換器デバイスドライバ103に送信される。一方、USBシリアル変換器デバイスドライバ103では、WRITEコマンドを受信するとWRITE返値を発行する。このWRITE返値は、シリアルAPI102を介して通信アプリケーション101へ送信される。そして、通信アプリケーション101が、USBシリアル変換器20のバッファに書き込みたいデータをシリアルAPI102などを介してUSBシリアル変換器20へ送信する。USBシリアル変換器20では、受信したデータをバッファへ一旦保管した後にシリアル規格に変換してシリアル機器へ送信する。
(4)CLOSEコマンド発行
通信アプリケーション101とUSBシリアル変換器20との間でデータの送受信を終了する際には、通信アプリケーション101がCLOSEコマンドを発行する。すなわち、通信アプリケーション101が、USBシリアル変換器20とのデータの送受信を終了するためにCLOSEコマンドを発行すると、そのCLOSEコマンドはシリアルAPI102を介してUSBシリアル変換器デバイスドライバ103に送信される。一方、USBシリアル変換器デバイスドライバ103では、CLOSEコマンドを受信すると、これまで定期的に行ってきたポーリングを停止するとともにCLOSE返値を発行する。このCLOSE返値は、シリアルAPI102を介して通信アプリケーション101へ送信される。
[ポーリング周期変更処理(1)の説明]
以下に、USBシリアル変換器デバイスドライバ103により実行されるポーリング周期変更処理の処理(1)手順を図5のフローチャートおよび図6に基づいて説明する。なお、図6はポーリング周期変更処理(1)を説明するシーケンス図である。
このポーリング周期変更処理(1)は、ホスト機器10が起動している場合において他の処理からは独立して繰り返し実行される。
まず、USBシリアル変換器デバイスドライバ103によるコマンド発行であるドライバコールが開始されると、そのドライバコールの種別に応じてファンクション分岐が行われる。本実施形態では、(A)ドライバコールの種別がOPENコマンドである場合、(B)ドライバコールの種別がCLOSEコマンドである場合、(C)ドライバコールの種別がREADコマンドである場合、(D)ドライバコールの種別がWRITEコマンドである場合、(E)ドライバコールの種別がボーレート設定コマンドである場合を説明する。
(A)ドライバコールの種別がOPENコマンドである場合
この処理では、設定内容を初期化するよう指示する初期化コマンドを発行する。初期化コマンドが発行されると、タイマ処理の設定を初期化する。本実施形態ではポーリング周期が16msecに設定される。そして、ドライバコールを終了する。
なお、ホスト機器10が搭載するOSの機能の一つであるタイマ起動処理が実行されると、上述のタイマ処理が開始され、本実施形態では250msecごとに上述のようなREADコマンドを発行する。そして、タイマ処理を終了する。
(B)ドライバコールの種別がCLOSEコマンドである場合
この処理では、タイマ処理の設定を解除する。このことにより、タイマ処理が実行されなくなり、以後READコマンドが発行されなくなる。また、上述のようなCLOSEコマンドの発行によってポーリングも停止する。そして、ドライバコールを終了する。
(C)ドライバコールの種別がREADコマンドである場合
この処理では、READデータの出力処理を実行する。具体的には、USBシリアル変換器デバイスドライバ103内のバッファからデータを読み出す。読み出したデータについては、そのデータを必要とするアプリケーションの指示によって処理される。さらに、タイマ処理の再設定を行う。具体的には、処理を実行する度に内蔵するメモリ(図示省略)に記憶された処理時刻記録を参照して、前回の処理時刻から今回の処理時刻までの時間を計算した計算結果を新しいポーリング周期として設定する。一例を挙げると、前回READコマンドを発行した時刻から今回READコマンドを発行した時刻までの時間が250msecである場合には、ポーリング周期を250msecに設定すると云った具合である。そして、ドライバコールを終了する。
なお、上述のUSBシリアル変換器デバイスドライバ103内のバッファに保管されるデータは、上述のようなREADデータ出力処理にて読み出される一方、コマンド完了割り込み処理が開始された際にも読み出される。具体的には、コマンド完了割り込み処理が開始されると、USBシリアル変換器デバイスドライバ103内のバッファに保管されるデータが読み出され、その読み出されたデータはUSBシリアル変換器20へ転送される。USBシリアル変換器20では、転送されたデータをバッファに保管する。なお、このバッファに保管されたデータは、USB規格からシリアル規格へ変換された後にシリアル機器へ送信される。コマンド完了割り込み処理が終了する。
(D)ドライバコールの種別がWRITEコマンドである場合
この処理では、WRITEデータの入力処理を実行する。具体的には、USBシリアル変換器デバイスドライバ103内のバッファにデータが書き込まれるとともに、USBシリアル変換器20のバッファに書き込まれる。そして、WRITEコマンドを発行し、上述のようにタイマ処理の再設定を行う。そして、ドライバコールを終了する。
(E)ドライバコールの種別がボーレート設定コマンドである場合
この処理では、ボーレート設定コマンドを発行する。なお、ボーレート(bps:Bits Per Second)とは、RS232Cのシリアル通信速度であり、シリアル変換器30との間でデータ転送を行う際の単位時間当たりのデータ転送量である。このボーレートについては通信アプリケーション101によって設定される。そして、ドライバコールを終了する。
[第一実施形態の効果]
(1)このように第一実施形態のホスト機器10によれば、READコマンドを発行する間隔を計算した計算結果を新しいポーリング周期として設定する。このように計算したポーリング周期は、USBシリアル変換器20のバッファの容量およびUSBシリアル変換器20との間でデータ転送を行う際の単位時間当たりの最大データ転送量に応じて予め設定されたポーリング周期の初期値よりも長いために、変更後のポーリング周期が変更前に比べて長くなる。なお、USBシリアル変換器20のバッファに蓄積されたデータについては、通信アプリケーション101がREADコマンドを発行する度に、USBシリアル変換器20からホスト機器10にデータ転送されるので、USBシリアル変換器20のバッファの空き容量が無くなることはない。したがって、USBシリアル変換器20に蓄積されたデータを速やかに読み出しながら、ホスト機器10の処理負担を軽減することができる。
[他の実施形態]
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、以下のような様々な態様にて実施することが可能である。
(1)上記実施形態では、READコマンドを発行する間隔を計算した計算結果を新しいポーリング周期として設定するが、これには限られず、例えば、通信アプリケーション101によって設定したボーレートに対応する周期を新しいポーリング周期として設定してもよい。なお、図7はポーリング周期変更処理(2)を示すフローチャートであり、図8はポーリング周期変更処理(2)を説明するシーケンス図である。具体的には、図7および図8に例示するように、ドライバコールの種別がボーレート設定である場合にボーレートコマンドを発行した後に、タイマ処理の再設定を行う。この際、通信アプリケーション101によって設定したボーレートに対応する周期を新しいポーリング周期として設定する。なおこの場合、ドライバコールの種別がREADコマンドである場合にREADデータの出力処理を実行した後、および、ドライバコールの種別がWRITEコマンドである場合にWRITEコマンドを発行した後に実行する、タイマ処理の再設定でREADコマンドを発行する間隔を計算する処理を行わない。このように計算したポーリング周期は、上述のように予め設定されたポーリング周期の初期値よりも長いために、変更後のポーリング周期が変更前に比べて長くなる。なお、USBシリアル変換器20のバッファに蓄積されたデータについては、上述のように、通信アプリケーション101がREADコマンドを発行する度に、USBシリアル変換器20からホスト機器10にデータ転送されるので、USBシリアル変換器20のバッファの空き容量が無くなることはない。したがって、USBシリアル変換器20に蓄積されたデータを速やかに読み出しながら、ホスト機器10の処理負担を軽減することができる。
なお、前述した、タイマ処理再設定による、通信アプリケーション101によって設定したボーレートに対応する周期を新しいポーリング周期の具体的は数値(図7、ポーリング周期X(ms))設定の一例を以下に説明する。ここで、「SET」は、通信アプリケーション101が設定する通信速度(ボーレート:bps)である。通信アプリケーション101が送付するデータ(有効データ)8bitに対して、RS232Cで転送するデータ(転送データ)は、前記有効データに加えRS232Cスタートビット(START−bit)とストップビット(STOP−bit)とが加わるので、有効データ8bit(1byte)を送付するときのRS232C転送データは(8bit+1bit+1bit)となる。なお、本実施形態におけるUSBシリアル変換器20(例えば、FT232R)のバッファ容量は256(byte)である。よって、ポーリング周期Xは、X(sec)=1÷(SET÷(8+1+1)÷256)となり、秒からミリ秒へ単位変換すれば、X*1000=1÷(SETbps÷(8+1+1)÷256)=X(ms)となる。
(2)また、OPENコマンドを発行後に、ポーリングを停止するようにしてもよい。なお、図9はポーリング周期変更処理(3)を説明するシーケンス図である。具体的には、図9に例示するように、入力部としてのホスト機器10のキーボードなどに対するユーザからの指示や他のアプリケーションからの指示により、通信アプリケーション101が、ポーリングを停止するためにマニュアルトリガモードに変更する旨のモード変更コマンドを発行する。すなわち、通信アプリケーション101が、モード変更コマンドを発行すると、そのモード変更コマンドはシリアルAPI102を介してUSBシリアル変換器デバイスドライバ103に送信される。一方、USBシリアル変換器デバイスドライバ103では、そのモード変更コマンドを受信すると、これまで定期的に行ってきたポーリングを停止するとともにモード変更返値を発行する。このモード変更返値は、シリアルAPI102を介して通信アプリケーション101へ送信される。なお、USBシリアル変換器20のバッファに蓄積されたデータについては、上述のように、通信アプリケーション101がREADコマンドを発行する度に、USBシリアル変換器20からホスト機器10にデータ転送されるので、USBシリアル変換器20のバッファの空き容量が無くなることはない。したがって、USBシリアル変換器20に蓄積されたデータを速やかに読み出しながら、ホスト機器10の処理負担を軽減することができる。
USBシリアル変換器を用いてホスト機器とシリアル機器とを接続する例を示す説明図である。 ホスト機器およびUSBシリアル変換器の構成を示すハードブロック図である。 ホスト機器の構成を示すソフトブロック図である。 従来のホスト機器とシリアル機器とのデータ送受信プロセスを説明するシーケンス図である。 ポーリング周期変更処理(1)を示すフローチャートである。 ポーリング周期変更処理(1)を説明するシーケンス図である。 ポーリング周期変更処理(2)を示すフローチャートである。 ポーリング周期変更処理(2)を説明するシーケンス図である。 ポーリング周期変更処理(3)を説明するシーケンス図である。
符号の説明
10…ホスト機器、11…CPU、12…PCチップセット、12a…シリアル回路ブロック、12b…PCIバスブリッジ回路ブロック、13…USBホストコントローラLSI、14…USB(A)コネクタ、15…シリアルコネクタ、20…USBシリアル変換器、21…USB(B)コネクタ、22…USBシリアル変換LSI、22a…USBデバイスコントローラ回路ブロック、22b…マイコンCPU回路ブロック、22c…シリアル回路ブロック、23…シリアルコネクタ、30…シリアル機器、101…通信アプリケーション、102…シリアルAPI、103…USBシリアル変換器デバイスドライバ、104…シリアルデバイスドライバ、105…USBホストコントローラデバイスドライバ

Claims (3)

  1. シリアル規格のデータを処理可能な電子機器であるシリアル機器とUSB規格のデータを処理可能な電子機器であるUSB機器との間に接続された際に、前記シリアル機器が前記USB機器へ送信したシリアル規格のデータを内蔵するバッファに一時的に蓄積するとともにUSB規格のデータに変換して前記USB機器からの要求に応じて前記USB機器へ送信し、一方、前記USB機器が前記シリアル機器へ送信したUSB規格のデータをシリアル規格のデータに変換した後に前記シリアル機器へ送信し、前記シリアル機器と前記USB機器との間のデータ転送を中継するUSBシリアル変換器との間でUSB規格のデータを送受信可能であり、前記バッファに蓄積されるデータの有無を確認するための確認コマンドを、前記バッファの容量および前記USBシリアル変換器との間でデータ転送を行う際の単位時間当たりの最大データ転送量に応じて予め設定された周期にて前記USBシリアル変換器へ発行するデバイスドライバと、
    前記USBシリアル変換器の前記バッファに蓄積されたデータを読み出すための読出しコマンドを前記デバイスドライバを介して前記USBシリアル変換器へ発行する通信アプリケーションと、
    を備え、前記USB機器として機能するホスト機器であって、
    前記デバイスドライバは、前記通信アプリケーションが前記読出しコマンドを発行する周期を計測し、前記確認コマンドを発行する周期を予め設定された周期からその計測した周期へ変更することを特徴とするホスト機器。
  2. シリアル規格のデータを処理可能な電子機器であるシリアル機器とUSB規格のデータを処理可能な電子機器であるUSB機器との間に接続された際に、前記シリアル機器が前記USB機器へ送信したシリアル規格のデータを内蔵するバッファに一時的に蓄積するとともにUSB規格のデータに変換して前記USB機器からの要求に応じて前記USB機器へ送信し、一方、前記USB機器が前記シリアル機器へ送信したUSB規格のデータをシリアル規格のデータに変換した後に前記シリアル機器へ送信し、前記シリアル機器と前記USB機器との間のデータ転送を中継するUSBシリアル変換器との間でUSB規格のデータを送受信可能であり、前記バッファに蓄積されるデータの有無を確認するための確認コマンドを、前記バッファの容量および前記USBシリアル変換器との間でデータ転送を行う際の単位時間当たりの最大データ転送量に応じて予め設定された周期にて前記USBシリアル変換器へ発行するデバイスドライバと、
    前記USBシリアル変換器の前記バッファに蓄積されたデータを読み出すための読出しコマンドを前記デバイスドライバを介して前記USBシリアル変換器へ発行する通信アプリケーションと、
    を備え、前記USB機器として機能するホスト機器であって、
    前記通信アプリケーションは、前記シリアル機器との間でデータ転送を行う際の単位時間当たりのデータ転送量であるボーレートを設定可能であり、
    前記デバイスドライバは、前記通信アプリケーションが設定したボーレートに対応する周期を算出し、前記確認コマンドを発行する周期を予め設定された周期からその算出した周期へ変更すること
    を特徴とするホスト機器。
  3. シリアル規格のデータを処理可能な電子機器であるシリアル機器とUSB規格のデータを処理可能な電子機器であるUSB機器との間に接続された際に、前記シリアル機器が前記USB機器へ送信したシリアル規格のデータを内蔵するバッファに一時的に蓄積するとともにUSB規格のデータに変換して前記USB機器からの要求に応じて前記USB機器へ送信し、一方、前記USB機器が前記シリアル機器へ送信したUSB規格のデータをシリアル規格のデータに変換した後に前記シリアル機器へ送信し、前記シリアル機器と前記USB機器との間のデータ転送を中継するUSBシリアル変換器との間でUSB規格のデータを送受信可能であり、前記バッファに蓄積されるデータの有無を確認するための確認コマンドを、前記バッファの容量および前記USBシリアル変換器との間でデータ転送を行う際の単位時間当たりの最大データ転送量に応じて予め設定された周期にて前記USBシリアル変換器へ発行するデバイスドライバと、
    前記USBシリアル変換器の前記バッファに蓄積されたデータを読み出すための読出しコマンドを前記デバイスドライバを介して前記USBシリアル変換器へ発行する通信アプリケーションと、
    を備え、前記USB機器として機能するホスト機器であって、
    前記確認コマンドの発行を停止する旨を入力するための入力手段を備え、
    前記デバイスドライバは、前記確認コマンドの発行を停止する旨が入力手段から入力された場合には前記確認コマンドの発行を停止すること
    を特徴とするホスト機器。
JP2008044631A 2008-02-26 2008-02-26 ホスト機器 Active JP4924472B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008044631A JP4924472B2 (ja) 2008-02-26 2008-02-26 ホスト機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008044631A JP4924472B2 (ja) 2008-02-26 2008-02-26 ホスト機器

Publications (2)

Publication Number Publication Date
JP2009205271A JP2009205271A (ja) 2009-09-10
JP4924472B2 true JP4924472B2 (ja) 2012-04-25

Family

ID=41147489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008044631A Active JP4924472B2 (ja) 2008-02-26 2008-02-26 ホスト機器

Country Status (1)

Country Link
JP (1) JP4924472B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3994583B2 (ja) * 1999-06-30 2007-10-24 ブラザー工業株式会社 シリアル通信方法、シリアル送信装置、シリアル受信装置およびシリアル通信システム
JP3409749B2 (ja) * 1999-09-09 2003-05-26 エヌイーシーマイクロシステム株式会社 Usbファンクションの評価装置及びその方法
JP2002197048A (ja) * 2000-12-26 2002-07-12 Kenwood Corp 電子機器およびインタフェース変換方法

Also Published As

Publication number Publication date
JP2009205271A (ja) 2009-09-10

Similar Documents

Publication Publication Date Title
KR100456180B1 (ko) 주변 기기 및 그 제어 방법
EP3462328B1 (en) Serial connection between management controller and microcontroller
CN102023954B (zh) 具有多路i2c总线的装置、处理器、系统主板及工控计算机
CN110765058A (zh) Gpio实现spi从机功能方法、系统、设备及介质
EP4323880A1 (en) I2c bus architecture using shared clock and dedicated data lines
JP2009048522A (ja) データ転送装置の製造方法、試験方法、及びデータ転送装置
CN101393542B (zh) 通过gpio端口支持usb接口的嵌入式设备及方法
JP6299260B2 (ja) 情報処理装置および情報処理装置の制御方法
CN101937413B (zh) 一种i2c总线的通信方法
JP2003241908A5 (ja)
CN101561790B (zh) 一种主控机与从机通信的方法、系统及装置
JP4837659B2 (ja) 分割トランザクションを処理するためのバス・コントローラ
JP2003029804A (ja) フィールドバスインタフェースボード
JP5890648B2 (ja) 情報処理装置、その制御方法、およびデバイス制御システム
JP4924472B2 (ja) ホスト機器
JP6418021B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
US20210157764A1 (en) Data conversion device and data conversion system
CN116541329A (zh) 一种数据传输方法、装置、设备及介质
JP3906838B2 (ja) Usb対応型デジタル複合機
JP2006238209A (ja) ハブ装置およびハブシステム
JP2008204005A (ja) 周辺装置の通信方法、コンピュータプログラム、及び周辺装置
KR20030044373A (ko) 기억 장치 직접 접근 인터페이스를 지원하는 범용 직렬버스 장치
JP2010166309A (ja) 光データリンク
KR20070024600A (ko) 호스트 제어기 및 그 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4924472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150