(57)【要約】【課題】ＣＰＵの負荷を増大させることなく、ＵＳＢ受信部がデータの受信を終了したときにＤＭＡ制御部の転送を自動的に終了させられるＤＭＡ転送装置を提供する。【解決手段】ＤＭＡＣ３が、ＵＳＢファンクションモジュール２から送り出される連続するデータが正規の１パケットサイズよりも小さい場合に、データのＲＡＭ１４への転送を終了（アボート終了）する。【選択図】図３
2009251771.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ制御部を備え、該ＤＭＡ制御部は、前記ＵＳＢ受信部から送り出される連続するデータが所定の１パケットサイズよりも小さい場合に、前記データの前記メモリへの転送を終了することを特徴とするＤＭＡ転送装置。
【請求項２】
ＵＳＢ受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ制御部を備え、該ＤＭＡ制御部は、前記ＵＳＢ受信部からＮＵＬＬパケット受信信号が与えられた場合に、前記データの前記メモリへの転送を終了することを特徴とするＤＭＡ転送装置。
【請求項３】
ＵＳＢ受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ制御部を備え、該ＤＭＡ制御部は、前記ＵＳＢ受信部から送り出される連続するデータが所定の１パケットサイズよりも小さい場合、又は前記ＵＳＢ受信部からＮＵＬＬパケット受信信号が与えられた場合に、前記データの前記メモリへの転送を終了することを特徴とするＤＭＡ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ転送装置に関する。
【背景技術】
【０００２】
ＵＳＢファンクション等のＵＳＢ受信部が受信したデータをＵＳＢファンクションからメモりに転送するのにＤＭＡ（Direct Memory Access）を用いる場合、受信データの総量が不明である場合がある。この場合、ＤＭＡＣ（Direct Memory Access Controler）等のＤＭＡ制御部のデータの転送量として、ハード的に用意できる大きめ値が設定され、データの転送が開始される。このため、データの受信が終了したときにＤＭＡ制御部の転送を何らかの方法で終了させる必要がある。
【０００３】
ＵＳＢ受信部がデータの受信の終了時に受信終了割り込みを出力する場合は、その受信終了割り込みを受けてＤＭＡ制御部の転送をアボート終了させる構成が採用できる。ＵＳＢ受信部が受信終了割り込みを発生しない場合の構成としては、ＣＰＵ（Central Processing Unit）にＤＭＡ制御部の転送済みカウント値をリードさせて監視させる等の構成が考えられるが、ＣＰＵの負荷が増えるため、好ましくない。また、受信データにＥＯＦ（End Of File）等のコードが埋め込まれていないかをＣＰＵに監視させる構成も考えられるが、この構成もＣＰＵの負荷が増えてしまう。
【０００４】
なお、ＤＭＡに関する先行技術文献としては特許文献１、２がある。
【特許文献１】特開２００３−２５６１５２号公報
【特許文献２】特開２００４−２１４９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の解決すべき課題は、ＣＰＵの負荷を増大させることなく、ＵＳＢ受信部がデータの受信を終了したときにＤＭＡ制御部の転送を自動的に終了させられるＤＭＡ転送装置の提供である。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明に係るＤＭＡ転送装置は、ＵＳＢ受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ制御部を備え、該ＤＭＡ制御部は、前記ＵＳＢ受信部から送り出される連続するデータが所定の１パケットサイズよりも小さい場合に、前記データの前記メモリへの転送を終了する。
【０００７】
また、本発明に係るＤＭＡ転送装置は、ＵＳＢ受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ制御部を備え、該ＤＭＡ制御部は、前記ＵＳＢ受信部からＮＵＬＬパケット受信信号が与えられた場合に、前記データの前記メモリへの転送を終了する。
【０００８】
また、本発明に係るＤＭＡ転送装置は、ＵＳＢ受信部がＵＳＢから受信したデータをメモリに転送するＤＭＡ制御部を備え、該ＤＭＡ制御部は、前記ＵＳＢ受信部から送り出される連続するデータが所定の１パケットサイズよりも小さい場合、又は前記ＵＳＢ受信部からＮＵＬＬパケット受信信号が与えられた場合に、前記データの前記メモリへの転送を終了する。
【発明の効果】
【０００９】
本発明によれば、ＤＭＡ制御部が、ＵＳＢ受信部から送り出される連続するデータが所定の１パケットサイズよりも小さい場合にデータの転送を終了する。それ故、ＣＰＵが受信データの終了等を監視する必要がないため、ＣＰＵの負荷を増大させることなく、ＵＳＢ受信部がデータの受信を終了したときにＤＭＡ制御部の転送を自動的に終了させられる。
【００１０】
本発明によれば、ＤＭＡ制御部が、ＵＳＢ受信部からＮＵＬＬパケット受信信号が与えられた場合にデータの転送を終了する。それ故、ＣＰＵが受信データの終了等を監視する必要がないため、ＣＰＵの負荷を増大させることなく、ＵＳＢ受信部がデータの受信を終了したときにＤＭＡ制御部の転送を自動的に終了させられる。
【００１１】
本発明によれば、ＤＭＡ制御部が、ＵＳＢ受信部から送り出される連続するデータが所定の１パケットサイズよりも小さい場合、又はＵＳＢ受信部からＮＵＬＬパケット受信信号が与えられた場合にデータの転送を終了する。それ故、ＣＰＵが受信データの終了等を監視する必要がないため、ＣＰＵの負荷を増大させることなく、ＵＳＢ受信部がデータの受信を終了したときにＤＭＡ制御部の転送を自動的に終了させられる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明の第１実施形態に係るＤＭＡ転送装置のブロック図であり、図２は図１の構成におけるリクエスト（REQ:Request）とＤＭＡＣの終了タイミングに関するタイミングチャートであり、図３は図１のＤＭＡ転送装置のＤＭＡＣの動作を示すフローチャートである。
【００１３】
本実施形態に係るＤＭＡ転送装置１は、図１に示すように、ＵＳＢ受信部としてのＵＳＢファンクションモジュール（以下、単に「モジュール」という）２と、ＤＭＡ転送制御部としてのＤＭＡＣ３と、メモリコントローラ４とを備える。モジュール２、ＤＭＡＣ３及びメモリコントローラ４は、バス１２によって接続されている。このバス１２には、ＣＰＵ１３も接続されている。
【００１４】
モジュール２は、図示しない外部の送信側のモジュールからＵＳＢケーブル１１を介して与えられるデータを受信し、そのデータをバス１２を介してＤＭＡＣ３に送り出す。ＤＭＡＣ３は、モジュール２から送り出されたデータを、メモリコントローラ４を介してメモリとしてのＲＡＭ（Random Access Memory）１４に転送する。メモリコントローラ４は、バス１２を介して転送されてきたデータをＲＡＭ１４に書き込む。
【００１５】
このＤＭＡ転送装置１では、モジュール２がＵＳＢケーブル１１から受信するデータの総量が不明であるため、ＤＭＡＣ３のデータの転送量として、ハード的に用意できる大きめ値が設定され、データの転送が開始される。
【００１６】
ここで、ＵＳＢケーブル１１を介して伝送されるデータの正規の１パケットサイズは規格により所定のサイズに決められており、例えば、High-speed(480Mbit/sec)接続時には１パケット分の５１２byteのデータが連続して送られてくる。また、Full-speed(12Mbit/sec)接続時には、１パケット分の６４byteのデータが連続して送られてくる。
【００１７】
このため、図２の上段のタイミングチャートに示すように、受信データの最後から２つ目のパケットまでは、各パケットの連続するデータの量がモジュール２の接続速度に応じた正規の１パケットサイズ(図２及び図３の例では、５１２byte）になっている。これに対し、最後のパケットでは、連続するデータの量が正規の１パケットサイズよりも小さい値（(図２の例では、３２０byte）になっている。
【００１８】
そこで、本実施形態では、ＤＭＡＣ３が、図２の下段のタイミングチャートに示すように、モジュール２から送り出される連続するデータが正規の１パケットサイズよりも小さい場合に、データのＲＡＭ１４への転送を終了（アボート終了）する。なお、連続するデータの量は、例えばＤＭＡＣ３に備えられる転送カウンタのカウント値を参照すること等により分かる。
【００１９】
次に、図３を参照してＤＭＡＣ３の動作の手順を説明する。図３に示すように、モジュール２のデータの受信の開始時に、ステップＳ１にてＤＭＡＣ３のデータの転送量等が設定される。このとき、上記の如く、転送量としてハード的に用意できる大きめ値が設定される。
【００２０】
ステップＳ２では、モジュール２からリクエストが与えられるのに応じて、ＤＭＡＣ３がデータをＲＡＭ１４に転送する。ステップＳ３では、ＤＭＡＣ３が、モジュール２から送り出される連続するデータの量が正規の１パケットサイズ（例えば、５１２byte）であるか否かを判断する。連続するデータの量が正規の１パケットサイズである場合には、ステップＳ２に戻り、モジュール２からショートパケットが送り出されるまでステップＳ２，Ｓ３の処理が繰り返される。
【００２１】
一方、連続するデータの量が正規の１パケットサイズよりも小さい場合（ショートパケットの場合）には、ステップＳ４にて、ＤＭＡＣ３によりそのパケットがショートパケットであると判断される。そして、ステップＳ５にて、ＤＭＡＣ３がデータの転送を終了（アボート終了）し、終了割り込みを発生する。これによって、モジュール２の受信終了に伴って、ＤＭＡＣ３がデータの転送を終了する。
【００２２】
このような構成により、ＣＰＵ１３がモジュール２のデータの受信の終了等を監視する必要がないため、ＣＰＵ１３の負荷を増大させることなく、モジュール２がデータの受信を終了したときにＤＭＡＣ３の転送を自動的に終了させられる。
【００２３】
図４は本発明の第２実施形態に係るＤＭＡ転送装置におけるリクエスト、ＮＵＬＬパケット及びＤＭＡＣの終了タイミングに関するタイミングチャートであり、図５は本発明の第２実施形態に係るＤＭＡ転送装置のＤＭＡＣの動作を示すフローチャートである。なお、本実施形態に係るＤＭＡ転送装置１が上述の第１実施形態に係るＤＭＡ転送装置１と実質的に異なっている点は、ＤＭＡＣ３の終了の方法に関する点のみであり、互いに対応する部分には同一の参照符号を用い、説明の重複を回避する。
【００２４】
上述の第１実施形態に係るＤＭＡ転送装置１では、ＤＭＡＣ３がショートパケットを検知して転送を終了するのであるが、最後のパケットのデータの量が正規の１パケットサイズと丁度一致してる場合には、ショートパケットが発生しない。
【００２５】
その対策として、本実施形態に係るＤＭＡ転送装置１では、モジュール２からＮＵＬＬパケット受信信号が与えられた場合にＤＭＡＣ３がデータの転送を終了する。
【００２６】
より詳細には、モジュール２は、図４の上段のタイミングチャートに示すように、パケットを順次受信していき、その最後にＮＵＬＬパケットを受信したときに、ＮＵＬＬパケット受信信号をバス１２を介して出力する（図４の中段のタイミングチャート参照）。そこで、本実施形態では、このＮＵＬＬパケット受信信号に応じて、ＤＭＡＣ３がデータの転送を終了（アボート終了）する（図４の下段のタイミングチャート）。
【００２７】
次に、図５を参照してＤＭＡＣ３の動作の手順を説明する。図５に示すように、モジュール２のデータの受信の開始時に、ステップＳ１１にてＤＭＡＣ３のデータの転送量等が設定される。このとき、上記の如く、転送量としてハード的に用意できる大きめ値が設定される。
【００２８】
ステップＳ１２でモジュール２からリクエストが与えられた場合には、ステップＳ１３でＤＭＡＣ３がデータをＲＡＭ１４に転送し、ステップＳ１２に戻る。そして、モジュール２からＮＵＬＬパケット受信信号が与えられるまでステップＳ１２，Ｓ１３の処理が繰り返される。
【００２９】
一方、ステップＳ１２でモジュール２からＮＵＬＬパケット受信信号が与えられた場合には、ステップＳ１４で、ＤＭＡＣ３がデータの転送を終了（アボート終了）し、終了割り込みを発生する。これによって、モジュール２の受信終了に伴って、ＤＭＡＣ３がデータの転送を終了する。
【００３０】
このような構成により、本実施形態においても、上述の第１実施形態とほぼ同様な効果が得られるとともに、モジュール２の受信データの最後がＮＵＬＬパケットである場合に、ＤＭＡＣ３の転送を終了させられる。
【００３１】
なお、上述の第１及び第２実施形態に係る構成を組み合わせて１つのＤＭＡ転送装置１を構成してもよい。この場合、ＤＭＡＣ３は、モジュール２から与えられる連続したデータの量が正規の１パケットサイズよりも小さい場合、あるいは、モジュール２からＮＵＬＬパケット受信信号が与えられた場合に、データの転送を終了する。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１実施形態に係るＤＭＡ転送装置のブロック図である。
【図２】図１の構成におけるリクエストとＤＭＡＣの終了タイミングに関するタイミングチャートである。
【図３】図１のＤＭＡ転送装置のＤＭＡＣの動作を示すフローチャートである。
【図４】本発明の第２実施形態に係るＤＭＡ転送装置におけるリクエスト、ＮＵＬＬパケット及びＤＭＡＣの終了タイミングに関するタイミングチャートである。
【図５】本発明の第２実施形態に係るＤＭＡ転送装置のＤＭＡＣの動作を示すフローチャートである。
【符号の説明】
【００３３】
１  ＤＭＡ転送装置
２  ＵＳＢファンクションモジュール
３  ＤＭＡＣ
１１  ＵＳＢ
１３  ＣＰＵ
１４  ＲＡＭ
【図１】
2009251771.tif 000003
【図２】
2009251771.tif 000004
【図３】
2009251771.tif 000005
【図４】
2009251771.tif 000006
【図５】
2009251771.tif 000007