JP6222724B2 - USB device, USB system, data transfer method, and program - Google Patents

USB device, USB system, data transfer method, and program Download PDF

Info

Publication number
JP6222724B2
JP6222724B2 JP2013135197A JP2013135197A JP6222724B2 JP 6222724 B2 JP6222724 B2 JP 6222724B2 JP 2013135197 A JP2013135197 A JP 2013135197A JP 2013135197 A JP2013135197 A JP 2013135197A JP 6222724 B2 JP6222724 B2 JP 6222724B2
Authority
JP
Japan
Prior art keywords
packet
buffer
usb
data
usb host
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
JP2013135197A
Other languages
Japanese (ja)
Other versions
JP2015011449A (en
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2013135197A priority Critical patent/JP6222724B2/en
Publication of JP2015011449A publication Critical patent/JP2015011449A/en
Application granted granted Critical
Publication of JP6222724B2 publication Critical patent/JP6222724B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、USBデバイス、USBシステム、データ転送方法、及びプログラムに関する。   The present invention relates to a USB device, a USB system, a data transfer method, and a program.

近年、パソコンの周辺機器の接続などに用いられるインターフェース規格として、USB(Universal Serial Bus)規格が広く利用されている。USBシステムでは、USBホストと複数のUSBデバイスとの間でデータ通信が行われる。   In recent years, the USB (Universal Serial Bus) standard has been widely used as an interface standard used for connection of peripheral devices of personal computers. In the USB system, data communication is performed between a USB host and a plurality of USB devices.

特許文献1には、USB2.0の規格に応じたUSBインターフェース用のブリッジ装置が開示されている。特許文献1のブリッジ装置は、USBインターフェース部とバッファとを備えている。   Patent Document 1 discloses a bridge device for a USB interface that conforms to the USB 2.0 standard. The bridge device of Patent Document 1 includes a USB interface unit and a buffer.

特開2003−323397号公報JP 2003-323397 A 特開2013−81131号公報JP2013-81131A

特許文献2には、USB3.0規格の通信システムが開示されている。USB3.0 Super Speedでは、5Gbpsの転送速度での通信が可能になる。USBホストとUSBデバイスとの間のデータ転送をより高速化したいという要望がある。   Patent Document 2 discloses a communication system conforming to the USB 3.0 standard. USB3.0 Super Speed enables communication at a transfer rate of 5 Gbps. There is a demand for faster data transfer between a USB host and a USB device.

本発明は、高いデータ転送速度を有するUSBデバイス、USBシステム、データ転送方法、及びプログラムを提供するものである。   The present invention provides a USB device having a high data transfer speed, a USB system, a data transfer method, and a program.

本願発明の一態様にかかるUSBデバイスは、USBホストとの間でパケットを送受信するUSBインターフェースと、前記USBインターフェースを介して送信又は受信するパケットのパケットデータを複数格納するバッファと、前記バッファに格納された前記パケットデータ、又は前記バッファに格納する前記パケットデータが伝送されるシステムバスと、前記バッファの空き状況又は格納状況を示す値と閾値とを比較し、比較結果に応じて前記USBホストに通信準備が完了したことを示す準備完了パケットを送信する通信制御部と、を備えたものである。   A USB device according to an aspect of the present invention includes a USB interface that transmits and receives packets to and from a USB host, a buffer that stores a plurality of packet data of packets that are transmitted or received via the USB interface, and a buffer that stores the packet data. The system bus through which the packet data stored in the buffer or the packet data stored in the buffer is transmitted is compared with a threshold value and a value indicating the availability or storage status of the buffer. And a communication control unit that transmits a preparation completion packet indicating that the communication preparation is completed.

本願発明の一態様にかかるデータ転送方法は、USBデバイスのバッファに、USBホストから受信したパケット又は前記USBホストに送信するパケットのパケットデータを格納し、前記USBデバイスのシステムバスに前記パケットデータを送出し、前記バッファの空き状況又は格納状況を示す値と閾値とを比較して、前記USBホストに通信準備が完了したことを示す準備完了パケットを送信し、前記準備完了パケットに応答して、前記USBホストがパケットを送信するものである。   In the data transfer method according to one aspect of the present invention, packet data of a packet received from a USB host or a packet to be transmitted to the USB host is stored in a buffer of the USB device, and the packet data is stored in a system bus of the USB device. Sending, comparing the value indicating the buffer availability or storage status with a threshold value, sending a ready packet indicating that communication preparation is completed to the USB host, and responding to the ready packet, The USB host transmits a packet.

本願発明の一態様にかかるプログラムは、USBホストとの間でパケットを送受信するUSBデバイスに対して、前記USBホストから受信したパケット又は前記USBホストに送信するパケットのパケットデータをバッファに格納するステップと、システムバスに前記パケットデータを送出するステップと、前記バッファの空き状況又は格納状況を示す値と閾値とを比較して、前記USBホストに通信準備が完了したことを示す準備完了パケットを送信するステップと、を実行させるものである。   The program according to an aspect of the present invention stores a packet data of a packet received from the USB host or a packet transmitted to the USB host in a buffer for a USB device that transmits / receives a packet to / from the USB host. A step of sending the packet data to the system bus, and a value indicating the buffer availability or storage status and a threshold value are compared, and a ready packet indicating that the communication preparation is completed is transmitted to the USB host. And a step of executing.

本発明によれば、高いデータ転送速度を有するUSBデバイス、USBシステム、データ転送方法、及びプログラムを提供することができる。   According to the present invention, it is possible to provide a USB device, a USB system, a data transfer method, and a program having a high data transfer speed.

実施の形態1にかかるUSBシステムの構成を示す図である。1 is a diagram illustrating a configuration of a USB system according to a first embodiment. 実施の形態1にかかるUSBデバイスの構成を示す図である。1 is a diagram illustrating a configuration of a USB device according to a first embodiment; OUT転送のシーケンスを示す図である。It is a figure which shows the sequence of OUT transfer. OUT転送でのデータ転送速度の低下を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the fall of the data transfer speed in OUT transfer. 実施の形態1にかかるデータ転送を用いたOUT転送のシーケンスを示す図である。FIG. 6 is a diagram illustrating an OUT transfer sequence using data transfer according to the first embodiment; IN転送のシーケンスを示す図である。It is a figure which shows the sequence of IN transfer. IN転送でのデータ転送速度の低下を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the fall of the data transfer speed in IN transfer. 実施の形態1にかかるデータ転送を用いたIN転送のシーケンスを示す図である。FIG. 6 is a diagram illustrating an IN transfer sequence using data transfer according to the first embodiment; 実施の形態2にかかるUSBシステムの構成を示す図である。It is a figure which shows the structure of the USB system concerning Embodiment 2. FIG.

添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。   Embodiments of the present invention will be described with reference to the accompanying drawings. The embodiments described below are examples of the present invention, and the present invention is not limited to the following embodiments. In the present specification and drawings, the same reference numerals denote the same components.

実施の形態1.
(システム構成)
本実施の形態にかかるUSBシステムとそのデータ転送方法について、図を参照して説明する。図1は、USBシステム100の全体構成を示す図である。USBシステム100はUSBホスト10とUSBデバイス20とを備えている。USBホスト10は、例えば、パーソナルコンピュータ等のホスト機能を有するUBS機器である。USBデバイス20は、例えば、プリンタ、カメラ、メモリ等の周辺機器であり、USB通信のエンドポイントとなる。
Embodiment 1 FIG.
(System configuration)
The USB system and its data transfer method according to this embodiment will be described with reference to the drawings. FIG. 1 is a diagram showing an overall configuration of the USB system 100. The USB system 100 includes a USB host 10 and a USB device 20. The USB host 10 is, for example, a UBS device having a host function such as a personal computer. The USB device 20 is, for example, a peripheral device such as a printer, a camera, or a memory, and serves as an endpoint for USB communication.

USBホスト10とUSBデバイス20はUSBインターフェース30を介して接続されている。USBインターフェース30を介して、USBホスト10とUSBデバイス20とがパケット通信を行う。USBホスト10は、USBインターフェース30を介して、USBデバイス20にパケットを送信する。また、USBデバイス20は、USBインターフェース30を介して、USBホスト10にパケットを送信する。   The USB host 10 and the USB device 20 are connected via a USB interface 30. The USB host 10 and the USB device 20 perform packet communication via the USB interface 30. The USB host 10 transmits a packet to the USB device 20 via the USB interface 30. Further, the USB device 20 transmits a packet to the USB host 10 via the USB interface 30.

USBホスト10は、USBデバイス20とのデータ通信を制御する。例えば、USBホスト10がUSBデバイス20に対してデータ転送要求やパケット要求を行うことで、USBデバイス20がデータを転送する。USBホスト10とUSBデバイス20がUSB規格に従ったプロトコルでデータを通信する。ここでは、USBホスト10とUSBデバイス20は、USB3.0 Super Speedの規格に従ってデータ通信を行う。なお、USB規格に準拠したデータ通信については、公知の方法と同様であるため詳細な説明を省略する。   The USB host 10 controls data communication with the USB device 20. For example, when the USB host 10 makes a data transfer request or packet request to the USB device 20, the USB device 20 transfers data. The USB host 10 and the USB device 20 communicate data with a protocol according to the USB standard. Here, the USB host 10 and the USB device 20 perform data communication in accordance with the USB 3.0 Super Speed standard. Note that data communication conforming to the USB standard is the same as a known method, and thus detailed description thereof is omitted.

USBデバイス20は、システムバス40を備えている。USBデバイス20は、USBホスト10との間でパケット通信を行い、パケットに含まれるパケットデータをシステムバス40に送出する。例えば、USBデバイス20は、USBホスト10からのパケットを受信する。USBデバイス20は受信したパケットを解析して、パケットに含まれるパケットデータをシステムバス40に転送する。これにより、パケットデータがUSBデバイス20のメモリ等に記憶される。また、USBデバイス20は、USBホスト10への応答を行う。この場合、USBデバイス20は、をシステムバス40から転送されたデータに基づいて、パケットを構築する。そして、USBデバイス20は、USBインターフェース30を介して、パケットをUSBホスト10に送信する。   The USB device 20 includes a system bus 40. The USB device 20 performs packet communication with the USB host 10 and sends packet data included in the packet to the system bus 40. For example, the USB device 20 receives a packet from the USB host 10. The USB device 20 analyzes the received packet and transfers the packet data included in the packet to the system bus 40. Thereby, the packet data is stored in the memory or the like of the USB device 20. In addition, the USB device 20 responds to the USB host 10. In this case, the USB device 20 constructs a packet based on the data transferred from the system bus 40. Then, the USB device 20 transmits the packet to the USB host 10 via the USB interface 30.

さらに、USBデバイス20は、パケットデータを格納するバッファの空き数、又はバッファに格納されたデータ数を管理する。そして、USBデバイス20は、空き数又はデータ数を閾値と比較する。USBデバイス20は、閾値判定を行うことにより送受信パケット制御を効率化して、テータ転送速度の向上を図る。さらに、通信状況に応じて任意の閾値を設定可能にすることにより、接続するUSBホスト10に合わせて最適化することができる。これにより、システム構成に合わせて、転送速度向上を図ることができる。この制御については後述する。   Further, the USB device 20 manages the number of empty buffers for storing packet data or the number of data stored in the buffers. Then, the USB device 20 compares the number of empty spaces or the number of data with a threshold value. The USB device 20 makes the transmission / reception packet control more efficient by performing threshold determination, and improves the data transfer rate. Furthermore, by making it possible to set an arbitrary threshold according to the communication status, it is possible to optimize according to the USB host 10 to be connected. Thereby, the transfer rate can be improved in accordance with the system configuration. This control will be described later.

なお、図1では、1つのUSBホスト10に1つのUSBデバイス20が接続されている構成が示されているが、1つのUSBホスト10に複数のUSBデバイス20が接続されていてもよい。以下の説明において、USBホスト10からUSBデバイス20にデータパケットを送信する場合を、OUT転送とし、USBデバイス20からUSBホスト10にデータパケットを送信する場合をIN転送とする。   Although FIG. 1 shows a configuration in which one USB device 20 is connected to one USB host 10, a plurality of USB devices 20 may be connected to one USB host 10. In the following description, a case where a data packet is transmitted from the USB host 10 to the USB device 20 is referred to as OUT transfer, and a case where a data packet is transmitted from the USB device 20 to the USB host 10 is referred to as IN transfer.

(デバイス構成)
USBデバイス20について、図2を用いて説明する。図2は、USBデバイス20の構成を示すブロック図である。USBデバイス20は、USBインターフェース30、物理層ユニット21、リンク層ユニット22、プロトコル層ユニット23、DMA(Direct Memory Access)コントローラ24、レジスタ制御部25、及びシステムバス40を備えている。プロトコル層23は、OUT転送バッファ26とIN転送バッファ27とを備えている。物理層ユニット21、リンク層ユニット22、プロトコル層ユニット23、DMAコントローラ24、及びレジスタ制御部25が、パケット通信を制御する通信制御部となる。
(Device configuration)
The USB device 20 will be described with reference to FIG. FIG. 2 is a block diagram showing the configuration of the USB device 20. The USB device 20 includes a USB interface 30, a physical layer unit 21, a link layer unit 22, a protocol layer unit 23, a DMA (Direct Memory Access) controller 24, a register control unit 25, and a system bus 40. The protocol layer 23 includes an OUT transfer buffer 26 and an IN transfer buffer 27. The physical layer unit 21, the link layer unit 22, the protocol layer unit 23, the DMA controller 24, and the register control unit 25 become a communication control unit that controls packet communication.

USBインターフェース30は、上記の通り、USBホスト10と接続しており、USBホスト10との間でUSB通信を行うためのインターフェースとなる。物理層ユニット21は、物理(PHY)層処理を行い、物理層を制御する回路である。例えば、物理層ユニット21はA/D変換器やD/A変換器を有している。そして、物理層ユニット21は、OUT転送時には、差動信号をA/D変換してデジタル信号を生成して、リンク層ユニット22に送出する。物理層ユニット21は、IN転送時にはD/A変換によりアナログの差動信号を生成して、USBインターフェース30に送出する。   As described above, the USB interface 30 is connected to the USB host 10 and serves as an interface for performing USB communication with the USB host 10. The physical layer unit 21 is a circuit that performs physical (PHY) layer processing and controls the physical layer. For example, the physical layer unit 21 has an A / D converter and a D / A converter. The physical layer unit 21 generates a digital signal by A / D converting the differential signal during OUT transfer, and sends the digital signal to the link layer unit 22. The physical layer unit 21 generates an analog differential signal by D / A conversion during IN transfer, and sends the analog differential signal to the USB interface 30.

リンク層ユニット22は、リンク層処理を行い、リンク層を制御する回路である。リンク層ユニット22は、物理層ユニット21とプロトコル層ユニット23との間に配置されている。例えば、OUT転送時に、リンク層ユニット22は、パケットヘッダの解析を行い、パケットデータをプロトコル層ユニット23に送出する。また、IN転送時に、リンク層ユニット22は、プロトコル層ユニット23から受け取った情報をパケットに構築し、物理層ユニット21に送出する。   The link layer unit 22 is a circuit that performs link layer processing and controls the link layer. The link layer unit 22 is disposed between the physical layer unit 21 and the protocol layer unit 23. For example, during OUT transfer, the link layer unit 22 analyzes the packet header and sends the packet data to the protocol layer unit 23. Further, at the time of IN transfer, the link layer unit 22 constructs information received from the protocol layer unit 23 into a packet and sends it to the physical layer unit 21.

プロトコル層ユニット23は、プロトコル層処理を行い、プロトコル層を制御する回路である。例えば、プロトコル層ユニット23は、パケットデータを解析する。プロトコル層ユニット23は、物理層ユニット21、及びリンク層ユニット22を介して、データを送受信する。   The protocol layer unit 23 is a circuit that performs protocol layer processing and controls the protocol layer. For example, the protocol layer unit 23 analyzes packet data. The protocol layer unit 23 transmits and receives data via the physical layer unit 21 and the link layer unit 22.

さらに、プロトコル層ユニット23は、OUT転送バッファ26、IN転送バッファ27を有している。OUT転送バッファ26は、OUT転送時にパケットデータを格納する。例えば、OUT転送バッファ26は、リンク層ユニット22からのパケットデータをバッファし、DMAコントローラ24を介してシステムバス40に送出する。IN転送バッファ27は、IN転送時にパケットデータを格納する。例えば、IN転送バッファ27は、DMAコントローラ24からのパケットデータをバッファし、リンク層ユニット22に送出する。   Further, the protocol layer unit 23 has an OUT transfer buffer 26 and an IN transfer buffer 27. The OUT transfer buffer 26 stores packet data during OUT transfer. For example, the OUT transfer buffer 26 buffers the packet data from the link layer unit 22 and sends it to the system bus 40 via the DMA controller 24. The IN transfer buffer 27 stores packet data during IN transfer. For example, the IN transfer buffer 27 buffers the packet data from the DMA controller 24 and sends it to the link layer unit 22.

OUT転送バッファ26、及びIN転送バッファ27は、それぞれ、最大16パケットまで設定可能なバッファ段数を持っている。すなわち、OUT転送バッファ26、及びIN転送バッファ27は、それぞれ16段のバッファを有し、各段に1パケット分のパケットデータをバッファする。もちろん、OUT転送バッファ26、及びIN転送バッファ27の段数は16に限定されるものではなく、2以上の段数であればよい。プロトコル層ユニット23は、OUT転送バッファ26の空き数、及びIN転送バッファ27のデータ格納数をバッファの空き状況、又は格納状況を示す値として求める。そして、プロトコル層ユニット23は、バッファの空き状況又は格納状況を示す値を管理して、通信を制御する。   Each of the OUT transfer buffer 26 and the IN transfer buffer 27 has a number of buffer stages that can be set up to a maximum of 16 packets. That is, the OUT transfer buffer 26 and the IN transfer buffer 27 each have 16 stages of buffers, and each stage buffers packet data for one packet. Of course, the number of stages of the OUT transfer buffer 26 and the IN transfer buffer 27 is not limited to 16, but may be two or more. The protocol layer unit 23 obtains the empty number of the OUT transfer buffer 26 and the data storage number of the IN transfer buffer 27 as values indicating the buffer empty state or the storage state. Then, the protocol layer unit 23 manages the value indicating the buffer availability or storage status, and controls communication.

DMAコントローラ24は、システムバス40と接続されている。システムバス40は、図示しないメモリ等と接続されている。したがって、DMAコントローラ24は、システムバス40を介して、メモリ等と接続されている。そして、DMAコントローラ24は、ダイレクトメモリアクセスによってメモリへのデータの書き込み、及びメモリからのデータの読み出しを制御する。OUT転送時には、DMAコントローラ24は、OUT転送バッファ26に格納されたパケットデータをメモリに書き込む。IN転送時には、DMAコントローラ24は、メモリに記憶されたデータを読み出し、送信データとして、IN転送バッファ27に格納する。   The DMA controller 24 is connected to the system bus 40. The system bus 40 is connected to a memory or the like (not shown). Therefore, the DMA controller 24 is connected to a memory or the like via the system bus 40. The DMA controller 24 controls data writing to the memory and data reading from the memory by direct memory access. During OUT transfer, the DMA controller 24 writes the packet data stored in the OUT transfer buffer 26 to the memory. During IN transfer, the DMA controller 24 reads out data stored in the memory and stores it in the IN transfer buffer 27 as transmission data.

レジスタ制御部25は、OUT転送バッファ26の空き数、又はIN転送バッファ27データ数を管理するための閾値を設定する。レジスタ制御部25は、閾値を設定する設定レジスタを有している。したがって、レジスタ制御部25が閾値を記憶する閾値記憶部となる。   The register control unit 25 sets a threshold value for managing the number of empty OUT transfer buffers 26 or the number of data in the IN transfer buffer 27. The register control unit 25 has a setting register for setting a threshold value. Therefore, the register control unit 25 serves as a threshold value storage unit that stores the threshold value.

OUT転送処理について説明する。USBインターフェース30を介して、USBデバイス20がUSBホスト10からのパケットを受信する。すると、物理層ユニット21は、パケットのハード的なチェックを行い、リンク層ユニット22に送出する。リンク層ユニット22は、パケットに含まれるヘッダ情報の解析等を行う。リンク層ユニット22は、パケットに含まれるパケットデータをプロトコル層ユニット23に送出する。なお、受信エラー等が起きた場合、リンク層ユニット22がUSBホスト10に再送処理を要求する。   The OUT transfer process will be described. The USB device 20 receives a packet from the USB host 10 via the USB interface 30. Then, the physical layer unit 21 performs a hardware check on the packet and sends it to the link layer unit 22. The link layer unit 22 analyzes header information included in the packet. The link layer unit 22 sends out packet data included in the packet to the protocol layer unit 23. When a reception error or the like occurs, the link layer unit 22 requests the USB host 10 for retransmission processing.

プロトコル層ユニット23は、パケットデータを解析して、必要なパケットデータをOUT転送バッファ26に格納する。OUT転送バッファ26は複数のパケットのパケットデータを格納するように、複数段設けられている。よって、プロトコル層ユニット23は、1パケットのパケットデータをOUT転送バッファ26に順番に格納していく。すなわち、プロトコル層ユニット23は、OUT転送バッファ26の空いているバッファにパケットデータを格納する。DMAコントローラ24は、OUT転送バッファ26に格納されているパケットデータを順番にシステムバス40に送出する。   The protocol layer unit 23 analyzes the packet data and stores necessary packet data in the OUT transfer buffer 26. The OUT transfer buffer 26 is provided in a plurality of stages so as to store packet data of a plurality of packets. Therefore, the protocol layer unit 23 stores packet data of one packet in the OUT transfer buffer 26 in order. That is, the protocol layer unit 23 stores the packet data in an empty buffer of the OUT transfer buffer 26. The DMA controller 24 sends the packet data stored in the OUT transfer buffer 26 to the system bus 40 in order.

IN転送処理について説明する。システムバス40からのデータがプロトコル層ユニット23に送出される。プロトコル層ユニット23は、システムバス40からのデータをIN転送バッファ27に送信データとして格納する。これにより、データの転送準備が行われる。プロトコル層ユニット23は、IN転送バッファ27に格納した送信データをリンク層ユニット22に送出する。リンク層ユニット22はプロトコル層ユニット23から受け取った送信データをパケットに構築する。そして、リンク層ユニット22は、パケットを物理層ユニット21に送出する。物理層ユニット21は、パケットに物理層処理を行って、USBインターフェース30に送出する。USBデバイス20がパケット要求を受信すると、プロトコル層ユニット23は、IN転送バッファ27が格納している送信データを順番にリンク層ユニット22に送出する。   The IN transfer process will be described. Data from the system bus 40 is sent to the protocol layer unit 23. The protocol layer unit 23 stores data from the system bus 40 in the IN transfer buffer 27 as transmission data. Thereby, data transfer preparation is performed. The protocol layer unit 23 sends the transmission data stored in the IN transfer buffer 27 to the link layer unit 22. The link layer unit 22 constructs the transmission data received from the protocol layer unit 23 into a packet. Then, the link layer unit 22 sends the packet to the physical layer unit 21. The physical layer unit 21 performs physical layer processing on the packet and sends it to the USB interface 30. When the USB device 20 receives the packet request, the protocol layer unit 23 sequentially sends the transmission data stored in the IN transfer buffer 27 to the link layer unit 22.

(OUT転送)
以下、USBデバイス20からUSBホスト10にデータパケットを送信するOUT転送の処理フローについて、図3を用いて説明する。図3は、OUT転送バッファ26に空きがある場合のOUT転送でのシーケンスを示す図である。
(OUT transfer)
Hereinafter, a processing flow of OUT transfer for transmitting a data packet from the USB device 20 to the USB host 10 will be described with reference to FIG. FIG. 3 is a diagram showing a sequence in OUT transfer when the OUT transfer buffer 26 has an empty space.

まず、USBホスト10がDATAパケットをUSBデバイス20に送信して、データ転送要求を行う(図3のA)。すると、プロトコル層ユニット23がOUT転送バッファ26の空き状況を確認する。   First, the USB host 10 transmits a DATA packet to the USB device 20 to make a data transfer request (A in FIG. 3). Then, the protocol layer unit 23 confirms the availability of the OUT transfer buffer 26.

OUT転送バッファ26の空きがあるので、USBデバイス20は、ACKパケットをUSBホスト10に送信して、USBホスト10への転送応答を実行する(図3のB)。USBホスト10はACKパケットを受信したら、同様に、DATAパケットをUSBデバイス20に送信する(図3のC)。USBデバイス20は、DATAパケットを受信したら、同様にACKパケットをUSBホスト10に送信する(図3のD)。この処理を繰り返して、パケット通信を行う。このように、OUT転送バッファ26に十分な空きがある場合、USBホスト10からのDATAパケットの送信と、USBデバイス20からのACKパケットの送信が交互に行われる。   Since the OUT transfer buffer 26 is available, the USB device 20 transmits an ACK packet to the USB host 10 and executes a transfer response to the USB host 10 (B in FIG. 3). When the USB host 10 receives the ACK packet, it similarly transmits a DATA packet to the USB device 20 (C in FIG. 3). When receiving the DATA packet, the USB device 20 similarly transmits an ACK packet to the USB host 10 (D in FIG. 3). This process is repeated to perform packet communication. As described above, when there is sufficient space in the OUT transfer buffer 26, the transmission of the DATA packet from the USB host 10 and the transmission of the ACK packet from the USB device 20 are alternately performed.

次に、OUT転送バッファ26の空きがない場合について、図4を用いて説明する。図4は、OUT転送バッファ26の空きがない場合のOUT転送でのシーケンスを示す図である。   Next, the case where the OUT transfer buffer 26 is not empty will be described with reference to FIG. FIG. 4 is a diagram showing a sequence in OUT transfer when the OUT transfer buffer 26 is not empty.

まず、USBホスト10がDATAパケットをUSBデバイス20に送信して、データ転送要求を行う(図4のA)。すると、プロトコル層ユニット23がOUT転送バッファ26の空き状況を確認する。OUT転送バッファ26の空きがないので、USBデバイス20は、USBホスト10にNRDY(Not Ready)パケットを送信して、送信できないことを伝えるパケット応答を行う(図4のB)。NRDYパケットは、USBホスト10に通信を待機させる待機パケットである。   First, the USB host 10 transmits a DATA packet to the USB device 20 to make a data transfer request (A in FIG. 4). Then, the protocol layer unit 23 confirms the availability of the OUT transfer buffer 26. Since there is no free space in the OUT transfer buffer 26, the USB device 20 transmits an NRDY (Not Ready) packet to the USB host 10 and makes a packet response notifying that transmission is not possible (B in FIG. 4). The NRDY packet is a standby packet that causes the USB host 10 to wait for communication.

これにより、バッファ空待ち時間となって、USBホスト10は、OUT転送バッファ26が空くのを待つ。USBデバイス20は、NRDYパケットを送信した後、OUT転送バッファ26のパケットデータを送出して、空きバッファを発生させる。すなわち、DMAコントローラ24が、OUT転送バッファ26に格納されているデータパケットをシステムバス40に送出する。   As a result, the buffer empty waiting time is reached, and the USB host 10 waits for the OUT transfer buffer 26 to become empty. After transmitting the NRDY packet, the USB device 20 transmits the packet data in the OUT transfer buffer 26 to generate an empty buffer. That is, the DMA controller 24 sends the data packet stored in the OUT transfer buffer 26 to the system bus 40.

USBデバイス20は、OUT転送バッファ26に空きが発生したら、ERDY(Endpoint Ready)パケットをUSBホスト10に送信する(図4のC)。すなわち、USBデバイス20は、OUT転送バッファ26に空きができ次第、USBホスト10に準備完了を伝えるERDYパケットを送信する。ERDYパケットは、USBホスト10に通信準備が完了したことを示す準備完了パケットである。なお、ERDYパケットには、空きバッファ数の情報が含まれているため、USBホスト10には受付可能数が通知される。   When the OUT transfer buffer 26 becomes empty, the USB device 20 transmits an ERDY (Endpoint Ready) packet to the USB host 10 (C in FIG. 4). That is, the USB device 20 transmits an ERDY packet informing the USB host 10 of the completion of preparation as soon as the OUT transfer buffer 26 becomes available. The ERDY packet is a preparation completion packet indicating that the USB host 10 has completed communication preparation. Since the ERDY packet includes information on the number of free buffers, the USB host 10 is notified of the acceptable number.

USBホスト10は、ERDYパケットに応答して、再度、USBデバイス20にDATAパケットを送信して、データ転送要求を行う(図4のD)。USBデバイス20がDATAパケットを受信すると、プロトコル層ユニット23がOUT転送バッファ26の空き状況を確認する。OUT転送バッファ26に空きがある場合、USBデバイス20は、USBホスト10にACKパケットを送信して、転送完了を通知する(図4のE)。なお、ACKパケットには、空きバッファ数の情報が含まれているため、USBホスト10には受付可能数が通知される。   In response to the ERDY packet, the USB host 10 transmits a DATA packet to the USB device 20 again to make a data transfer request (D in FIG. 4). When the USB device 20 receives the DATA packet, the protocol layer unit 23 checks the availability of the OUT transfer buffer 26. When the OUT transfer buffer 26 is empty, the USB device 20 transmits an ACK packet to the USB host 10 to notify the transfer completion (E in FIG. 4). Since the ACK packet includes information on the number of free buffers, the USB host 10 is notified of the acceptable number.

USBホスト10はACKパケットに応答して、再度、USBデバイス20にDATAパケットを送信して、データ転送要求を行う(図4のF)。すると、プロトコル層ユニット23がOUT転送バッファ26の空き状況を確認する。OUT転送バッファ26の空きがない場合、USBデバイス20は、USBホスト10にNRDYパケットを送信して、送信できないことを伝えるパケット応答を行う(図4のG)。   In response to the ACK packet, the USB host 10 transmits a DATA packet to the USB device 20 again to make a data transfer request (F in FIG. 4). Then, the protocol layer unit 23 confirms the availability of the OUT transfer buffer 26. When the OUT transfer buffer 26 is not empty, the USB device 20 transmits an NRDY packet to the USB host 10 and makes a packet response notifying that transmission is not possible (G in FIG. 4).

USBホスト10は、図4のBと同様に、NRDYパケットを受信した後、OUT転送バッファ26に空きができるまで待機する。すなわち、バッファ空待ち時間となって、USBホスト10は、OUT転送バッファ26が空くのを待つ。USBデバイス20は、NRDYパケットを送信した後、OUT転送バッファ26のパケットデータをシステムバス40に送出する。すなわち、DMAコントローラ24が、システムバス40を介して、OUT転送バッファ26に格納されているデータパケットをメモリに書き込む。そして、OUT転送バッファ26に空きが生じたら、USBデバイス20がUSBホスト10にERDYパケットを送信して、転送完了を通知する(図4のH)。   Similar to B in FIG. 4, the USB host 10 waits until the OUT transfer buffer 26 becomes empty after receiving the NRDY packet. That is, the buffer empty waiting time is reached, and the USB host 10 waits for the OUT transfer buffer 26 to become empty. The USB device 20 transmits the packet data in the OUT transfer buffer 26 to the system bus 40 after transmitting the NRDY packet. That is, the DMA controller 24 writes the data packet stored in the OUT transfer buffer 26 to the memory via the system bus 40. When the OUT transfer buffer 26 becomes empty, the USB device 20 transmits an ERDY packet to the USB host 10 to notify the transfer completion (H in FIG. 4).

OUT転送バッファ26に空きがない場合、USBデバイス20は、以下に示す問題が生じる恐れがある。USBホスト10からのパケット転送に対してシステムバス40側のデータ転送が遅い場合、OUT転送バッファ26にパケットデータが溜まっていく。すなわち、OUT転送バッファ26の空き数が徐々に減っていってしまう。そして、OUT転送バッファ26に空きがなくなり、データ受け付けられない状態となると、USBデバイス20からのデータパケットに対して、USBホスト10がNRDY応答を行う。   When the OUT transfer buffer 26 is not empty, the USB device 20 may cause the following problem. When the data transfer on the system bus 40 side is slower than the packet transfer from the USB host 10, the packet data accumulates in the OUT transfer buffer 26. That is, the number of empty spaces in the OUT transfer buffer 26 is gradually reduced. When the OUT transfer buffer 26 becomes full and data cannot be accepted, the USB host 10 sends an NRDY response to the data packet from the USB device 20.

OUT転送バッファ26に空きができ、USBデバイス20がパケットを受け付けられる状態となると、USBデバイス20がERDYパケットを送信する。USBホスト10は、ERDYパケットにより、空きがあることが通知されると、USBデバイス20に対してDATAパケットの送信を開始する。このように、OUT転送バッファ26に空きができる度に、ERDY応答を行っていると、NRDYパケットとERDYパケットの転送回数が多くなる。すなわち、OUT転送バッファ26が空き無しから空有りになるタイミングで毎回、USBデバイス20がERDYパケットを送信すると、全体から見た転送速度が遅くなってしまう場合がある。   When the OUT transfer buffer 26 becomes empty and the USB device 20 is ready to accept a packet, the USB device 20 transmits an ERDY packet. When the USB host 10 is notified by the ERDY packet that there is a free space, the USB host 10 starts transmitting a DATA packet to the USB device 20. As described above, if an ERDY response is made every time the OUT transfer buffer 26 becomes empty, the number of transfers of the NRDY packet and the ERDY packet increases. That is, if the USB device 20 transmits an ERDY packet every time the OUT transfer buffer 26 becomes empty from empty, the transfer rate seen from the whole may be slow.

そこで、本実施の形態では、以下に示す制御方法によって、データ通信速度の向上を図っている。以下、本実施の形態にかかるデータ転送方法について、図5を用いて説明する。   Therefore, in this embodiment, the data communication speed is improved by the following control method. Hereinafter, the data transfer method according to the present embodiment will be described with reference to FIG.

まず、USBホスト10がDATAパケットをUSBデバイス20に送信して、データ転送要求を行う(図5のA)。すると、プロトコル層ユニット23がOUT転送バッファ26の空き状況を確認する。OUT転送バッファ26に空きがないため、USBデバイス20は、USBホスト10にNRDYパケットを送信して、送信できないことを伝えるパケット応答を行う(図5のB)。NRDYパケットは、USBデバイス20にパケット転送を待機させる待機パケットである。   First, the USB host 10 transmits a DATA packet to the USB device 20 to make a data transfer request (A in FIG. 5). Then, the protocol layer unit 23 confirms the availability of the OUT transfer buffer 26. Since there is no free space in the OUT transfer buffer 26, the USB device 20 transmits an NRDY packet to the USB host 10 and makes a packet response notifying that transmission is not possible (B in FIG. 5). The NRDY packet is a standby packet that causes the USB device 20 to wait for packet transfer.

バッファ空待ち時間となって、USBホスト10は、OUT転送バッファ26が空くのを待つ。USBデバイス20は、NRDYパケットを送信した後、OUT転送バッファ26のパケットデータをシステムバス40に送出することで、OUT転送バッファ26の空き数を増やす。すなわち、DMAコントローラ24が、システムバス40を介して、OUT転送バッファ26に格納されているパケットデータをメモリに送出する。このようにして、プロトコル層ユニット23がOUT転送バッファ26に空きを発生させる。   The buffer empty waiting time is reached, and the USB host 10 waits for the OUT transfer buffer 26 to become empty. After transmitting the NRDY packet, the USB device 20 sends the packet data in the OUT transfer buffer 26 to the system bus 40, thereby increasing the number of free OUT transfer buffers 26. That is, the DMA controller 24 sends the packet data stored in the OUT transfer buffer 26 to the memory via the system bus 40. In this way, the protocol layer unit 23 generates an empty space in the OUT transfer buffer 26.

さらに、バッファ空待ち時間において、プロトコル層ユニット23はバッファの空き数と閾値を比較する。バッファの空き数が閾値を越えたら、USBデバイス20がERDYパケットをUSBホスト10に送信する(図5のC)。すなわち、USBデバイス20は、OUT転送バッファ26に空きができたタイミングでは、USBホスト10に準備完了を伝えるERDYパケットを送信しない。そして、OUT転送バッファ26の空き数が閾値を越えたタイミングで、ERDYパケットをUSBホスト10に送信する。閾値は、2以上の任意の数とすることができる。ここで、ERDYパケットには、OUT転送バッファ26の空きバッファ数の情報が含まれているため、USBデバイス20は、USBホスト10にOUT転送バッファ26の空きバッファ数を通知する。ERDYパケットは、USBホスト10に通信準備が完了したことを示す準備完了パケットである。   Further, in the buffer empty waiting time, the protocol layer unit 23 compares the number of empty buffers with a threshold value. When the number of empty buffers exceeds the threshold, the USB device 20 transmits an ERDY packet to the USB host 10 (C in FIG. 5). That is, the USB device 20 does not transmit an ERDY packet that informs the USB host 10 of the completion of preparation at the timing when the OUT transfer buffer 26 becomes empty. Then, the ERDY packet is transmitted to the USB host 10 at the timing when the number of empty OUT transfer buffers 26 exceeds the threshold value. The threshold value can be any number greater than or equal to two. Here, since the ERDY packet includes information on the number of empty buffers in the OUT transfer buffer 26, the USB device 20 notifies the USB host 10 of the number of empty buffers in the OUT transfer buffer 26. The ERDY packet is a preparation completion packet indicating that the USB host 10 has completed communication preparation.

USBホスト10は、ERDYパケットに応答して、再度、USBデバイス20にDATAパケットを送信して、データ転送要求を行う(図5のD)。USBデバイス20がDATAパケットを受信すると、プロトコル層ユニット23がOUT転送バッファ26の空き状況を確認する。OUT転送バッファ26の空きがある場合、USBデバイス20は、USBホスト10にACKパケットを送信して、転送完了を通知する(図5のE)。なお、ACKパケットには、OUT転送バッファ26の空きバッファ数の情報が含まれているため、USBデバイス20は、USBホスト10にOUT転送バッファ26の空きバッファ数を通知する。また、OUT転送バッファ26に格納されているパケットデータを順番にシステムバス40に送出する。   In response to the ERDY packet, the USB host 10 transmits a DATA packet to the USB device 20 again to make a data transfer request (D in FIG. 5). When the USB device 20 receives the DATA packet, the protocol layer unit 23 checks the availability of the OUT transfer buffer 26. When the OUT transfer buffer 26 is available, the USB device 20 transmits an ACK packet to the USB host 10 to notify the transfer completion (E in FIG. 5). Since the ACK packet includes information on the number of empty buffers in the OUT transfer buffer 26, the USB device 20 notifies the USB host 10 of the number of empty buffers in the OUT transfer buffer 26. In addition, the packet data stored in the OUT transfer buffer 26 is sent to the system bus 40 in order.

このように、USBデバイス20は、NRDYパケットを送信した後、OUT転送バッファ26の空きバッファ数が閾値よりも大きくなったタイミングで、ERDYパケットを送信する。すなわち、OUT転送バッファ26の空きが発生したタイミングではUSBデバイス20がERDYパケットを送信しない。OUT転送バッファ26の空きバッファ数が閾値を越えるまで、USBデバイス20は、ERDYパケットの送信を待機する。   Thus, after transmitting the NRDY packet, the USB device 20 transmits the ERDY packet at the timing when the number of empty buffers in the OUT transfer buffer 26 becomes larger than the threshold value. That is, the USB device 20 does not transmit an ERDY packet at the timing when the OUT transfer buffer 26 becomes empty. The USB device 20 waits for transmission of an ERDY packet until the number of empty buffers in the OUT transfer buffer 26 exceeds the threshold value.

このようにすることで、USBホスト10へのデータ受信準備完了通知を行うタイミングを変更することが可能になる。よって、NRDYパケットとERDYパケットの送信回数を減らすことができる。NRDYパケット/ERDYパケットの送信回数及び時間を調整することができるため、転送効率を上げることができる。バッファ空待ち時間が長くなったとしても、システム全体の転送速度を向上することができる。   In this way, it is possible to change the timing for notifying the USB host 10 of completion of data reception preparation. Therefore, the number of transmissions of the NRDY packet and the ERDY packet can be reduced. Since the number of transmissions and time of NRDY packet / ERDY packet can be adjusted, transfer efficiency can be increased. Even if the buffer empty waiting time becomes long, the transfer rate of the entire system can be improved.

さらに、レジスタ制御部25が空きバッファ数の閾値を調整可能にしてもよい。これにより、USBシステム100の通信状況に応じて閾値を最適化することができる。例えば、システムバス40等の仕様に応じて、閾値を調整することができる。USBインターフェース30でのデータ転送速度をモニタして、そのモニタ結果に応じて、閾値を設定するようにしてもよい。例えば、閾値を変化させていき、その時のデータ転送速度をUSBインターフェース30上で評価する。そして、最もデータ転送速度が高くなる時の閾値を、レジスタ制御部25のレジスタに記憶させる。このようにすることで、システムバス40に応じて最適な閾値を設定することができる。よって、データ転送速度をより高くすることができる。テストプログラムやハードウェアなどを用いて、レジスタ制御部25が閾値を自動的に設定するようにしてもよい。   Further, the register control unit 25 may be able to adjust the threshold value of the number of free buffers. Thereby, the threshold value can be optimized according to the communication status of the USB system 100. For example, the threshold value can be adjusted according to the specifications of the system bus 40 and the like. The data transfer speed at the USB interface 30 may be monitored, and a threshold value may be set according to the monitoring result. For example, the threshold value is changed, and the data transfer speed at that time is evaluated on the USB interface 30. Then, the threshold value when the data transfer rate is highest is stored in the register of the register control unit 25. In this way, an optimum threshold value can be set according to the system bus 40. Therefore, the data transfer rate can be further increased. The register control unit 25 may automatically set the threshold value using a test program, hardware, or the like.

上記のデータ転送方法では、OUT転送バッファ26の空き状況を示す値として、OUT転送バッファ26の空きバッファ数を用いたが、これ以外の値を用いてもよい。例えば、OUT転送バッファ26の空き状況をバッファのデータ格納数で管理してもよい。そして、OUT転送バッファ26の空き状況を示す値を閾値と比較して、その比較結果に応じてERDYパケットを送信すればよい。   In the data transfer method described above, the number of empty buffers in the OUT transfer buffer 26 is used as a value indicating the empty state of the OUT transfer buffer 26, but other values may be used. For example, the availability of the OUT transfer buffer 26 may be managed by the number of data stored in the buffer. Then, a value indicating the availability of the OUT transfer buffer 26 is compared with a threshold value, and an ERDY packet may be transmitted according to the comparison result.

(IN転送)
次に、USBホスト10からUSBデバイス20にデータパケットを送信するIN転送の処理について、図6を用いて説明する。図6は、IN転送バッファ27に転送するパケットデータがある場合のIN転送でのシーケンスを示す図である。
(IN transfer)
Next, IN transfer processing for transmitting a data packet from the USB host 10 to the USB device 20 will be described with reference to FIG. FIG. 6 is a diagram showing a sequence in IN transfer when there is packet data to be transferred to the IN transfer buffer 27.

まず、USBホスト10がACKパケットをUSBデバイス20に送信して、パケット要求を行う(図6のA)。すると、プロトコル層ユニット23がIN転送バッファ27のデータ格納状況を確認する。   First, the USB host 10 transmits an ACK packet to the USB device 20 to make a packet request (A in FIG. 6). Then, the protocol layer unit 23 confirms the data storage status of the IN transfer buffer 27.

IN転送バッファ27には、送信するパケットのパケットデータ(送信データ)があるので、USBホスト10は、DATAパケットに応答して、ACKパケットをUSBデバイス20に送信する(図6のC)。なお、図6のA、及びCのACKパケットには、要求データ数の情報が含まれている。USBデバイス20は、ACKパケットを受信したら、同様にDATAパケットをUSBホスト10に送信する(図6のD)。この処理を繰り返して、データ通信を行う。このように、IN転送バッファ27に送信データが格納されている場合、USBホスト10からのACKパケットの送信と、USBデバイス20からのDATAパケットの送信が交互に行われる。   Since there is packet data (transmission data) of the packet to be transmitted in the IN transfer buffer 27, the USB host 10 transmits an ACK packet to the USB device 20 in response to the DATA packet (C in FIG. 6). Note that the ACK packets of A and C in FIG. 6 include information on the number of requested data. When receiving the ACK packet, the USB device 20 similarly transmits a DATA packet to the USB host 10 (D in FIG. 6). This process is repeated to perform data communication. As described above, when the transmission data is stored in the IN transfer buffer 27, the transmission of the ACK packet from the USB host 10 and the transmission of the DATA packet from the USB device 20 are alternately performed.

次に、IN転送バッファ27の送信データがない場合について、図7を用いて説明する。図7は、IN転送バッファ27の送信データがない場合のIN転送でのシーケンスを示す図である。   Next, a case where there is no transmission data in the IN transfer buffer 27 will be described with reference to FIG. FIG. 7 is a diagram showing a sequence in IN transfer when there is no transmission data in the IN transfer buffer 27.

まず、USBホスト10がACKパケットをUSBデバイス20に送信して、パケット要求を行う(図7のA)。すると、プロトコル層ユニット23がIN転送バッファ27のデータ格納状況を確認する。IN転送バッファ27に送信データが格納されておらず、USBデバイス20は、データの転送準備ができていない。したがって、USBデバイス20は、USBホスト10にNRDYパケットを送信して、送信できないことを伝えるパケット応答を行う(図7のB)。NRDYパケットは、USBデバイス20にパケット転送を待機させる待機パケットである。   First, the USB host 10 transmits an ACK packet to the USB device 20 to make a packet request (A in FIG. 7). Then, the protocol layer unit 23 confirms the data storage status of the IN transfer buffer 27. Transmission data is not stored in the IN transfer buffer 27, and the USB device 20 is not ready for data transfer. Therefore, the USB device 20 transmits an NRDY packet to the USB host 10 and makes a packet response notifying that transmission is not possible (B in FIG. 7). The NRDY packet is a standby packet that causes the USB device 20 to wait for packet transfer.

データ準備待ち時間となって、USBホスト10は、IN転送バッファ27のデータ準備が完了するのを待つ。USBデバイス20は、NRDYパケットを送信した後、システムバス40からIN転送バッファ27に送信データを送出する。すなわち、DMAコントローラ24が、システムバス40を介して、メモリに記憶されている送信データをIN転送バッファ27に格納する。これにより、USBデバイス20は、データの転送準備を行う。   The USB host 10 waits for the data preparation in the IN transfer buffer 27 to be completed as the data preparation waiting time comes. The USB device 20 transmits transmission data from the system bus 40 to the IN transfer buffer 27 after transmitting the NRDY packet. That is, the DMA controller 24 stores the transmission data stored in the memory in the IN transfer buffer 27 via the system bus 40. As a result, the USB device 20 prepares for data transfer.

USBデバイス20は、IN転送バッファ27の送信データの準備が完了したら、ERDYパケットをUSBホスト10に送信する(図7のC)。すなわち、USBデバイス20は、IN転送バッファ27に送信データが格納され次第、USBホスト10に準備完了を伝えるERDYパケットを送信する。ERDYパケットは、USBホスト10に通信準備が完了したことを示す準備完了パケットである。ここで、ERDYパケットには、送信可能データ数の情報が含まれている。よって、USBデバイス20は、USBホスト10にIN転送バッファ27のデータ数を通知する。   When the USB device 20 completes preparation of transmission data in the IN transfer buffer 27, the USB device 20 transmits an ERDY packet to the USB host 10 (C in FIG. 7). That is, as soon as the transmission data is stored in the IN transfer buffer 27, the USB device 20 transmits an ERDY packet that informs the USB host 10 that preparation is complete. The ERDY packet is a preparation completion packet indicating that the USB host 10 has completed communication preparation. Here, the ERDY packet includes information on the number of transmittable data. Therefore, the USB device 20 notifies the USB host 10 of the number of data in the IN transfer buffer 27.

USBホスト10は、ERDYパケットに応答して、再度、USBデバイス20にACKパケットを送信して、パケット要求を行う(図7のD)。USBデバイス20がACKパケットを受信すると、プロトコル層ユニット23がIN転送バッファ27のデータ格納状況を確認する。IN転送バッファ27に送信データがある場合、USBデバイス20は、USBホスト10にDATAパケットを送信する(図7のE)。   In response to the ERDY packet, the USB host 10 transmits an ACK packet to the USB device 20 again to make a packet request (D in FIG. 7). When the USB device 20 receives the ACK packet, the protocol layer unit 23 checks the data storage status of the IN transfer buffer 27. When there is transmission data in the IN transfer buffer 27, the USB device 20 transmits a DATA packet to the USB host 10 (E in FIG. 7).

USBホスト10はDATAパケットに応答して、再度、USBデバイス20にACKパケットを送信して、パケット要求を行う(図7のF)。プロトコル層ユニット23がIN転送バッファ27のデータ格納状況を確認する。IN転送バッファ27に送信データがない場合、USBデバイス20は、USBホスト10にNRDYパケットを送信して、送信できないことを伝えるパケット応答を行う(図7のG)。   In response to the DATA packet, the USB host 10 transmits an ACK packet to the USB device 20 again to make a packet request (F in FIG. 7). The protocol layer unit 23 confirms the data storage status of the IN transfer buffer 27. When there is no transmission data in the IN transfer buffer 27, the USB device 20 transmits an NRDY packet to the USB host 10 and makes a packet response notifying that transmission is not possible (G in FIG. 7).

USBホスト10は、図7のBと同様に、NRDYパケットを受信した後、IN転送バッファ27に送信データがバッファされるまで待機する。すなわち、データ準備待ち時間となって、USBホスト10は、IN転送バッファ27に送信データが格納されるのを待つ。USBデバイス20は、NRDYパケットを送信した後、IN転送バッファ27のデータ転送の準備を行う。すなわち、DMAコントローラ24が、メモリに格納されている送信データをシステムバス40を介してIN転送バッファ27に送出する。これにより、IN転送バッファ27に、送信データがバッファされる。よって、IN転送バッファ27に格納されている送信データ数を増やすことができる。   The USB host 10 waits until transmission data is buffered in the IN transfer buffer 27 after receiving the NRDY packet, as in B of FIG. That is, the USB host 10 waits for the transmission data to be stored in the IN transfer buffer 27 as the data preparation waiting time is reached. After transmitting the NRDY packet, the USB device 20 prepares for data transfer in the IN transfer buffer 27. That is, the DMA controller 24 sends the transmission data stored in the memory to the IN transfer buffer 27 via the system bus 40. As a result, transmission data is buffered in the IN transfer buffer 27. Therefore, the number of transmission data stored in the IN transfer buffer 27 can be increased.

USBデバイス20は、IN転送バッファ27の送信データの準備が完了したら、図7のCと同様に、ERDYパケットをUSBホスト10に送信する(図7のH)。USBホスト10は、図7のDと同様に、ERDYパケットに応答して、再度、USBデバイス20にACKパケットを送信して、パケット要求を行う(図7のI)。USBデバイス20がACKパケットを受信すると、プロトコル層ユニット23がIN転送バッファ27のデータ格納状況を確認する。IN転送バッファ27に送信データが準備されている場合、USBデバイス20は、USBホスト10にDATAパケットを送信する(図7のJ)。   When the preparation of transmission data in the IN transfer buffer 27 is completed, the USB device 20 transmits an ERDY packet to the USB host 10 as in C of FIG. 7 (H in FIG. 7). In the same manner as D in FIG. 7, the USB host 10 transmits an ACK packet to the USB device 20 again in response to the ERDY packet and makes a packet request (I in FIG. 7). When the USB device 20 receives the ACK packet, the protocol layer unit 23 checks the data storage status of the IN transfer buffer 27. When transmission data is prepared in the IN transfer buffer 27, the USB device 20 transmits a DATA packet to the USB host 10 (J in FIG. 7).

なお、図7のA、D及びFのACKパケットには、要求データ数の情報が含まれており、USBデバイス20には送信要求されたデータ数が通知される。したがって、USBデバイス20は、送信要求されたデータ数のパケットをUSBホスト10に送信することができる。   Note that the A, D, and F ACK packets in FIG. 7 include information on the number of requested data, and the USB device 20 is notified of the number of data requested to be transmitted. Therefore, the USB device 20 can transmit packets of the number of data requested to be transmitted to the USB host 10.

USBホスト10からのパケット要求に対して、システムバス40側のデータ転送が遅いと、USBデバイス20がIN転送バッファ27に送信データを準備することができなくなってしまう。すなわち、IN転送バッファ27に準備されている送信データが無くなってしまい、USBデバイス20がNRDYパケット応答を行う。システムバス40からの送信データがIN転送バッファ27に格納され次第、USBデバイス20は、データ転送の準備ができたことをERDYパケットによってUSBホスト10に通知する。USBホスト10はUSBデバイス20からの通知に応答して、ACKパケットによってUSBデバイス20へパケット要求を行う。これにより、USBホスト10がDATAパケットを受信する。   If data transfer on the system bus 40 side is slow in response to a packet request from the USB host 10, the USB device 20 cannot prepare transmission data in the IN transfer buffer 27. That is, the transmission data prepared in the IN transfer buffer 27 is lost, and the USB device 20 makes an NRDY packet response. As soon as the transmission data from the system bus 40 is stored in the IN transfer buffer 27, the USB device 20 notifies the USB host 10 by the ERDY packet that the data transfer is ready. In response to the notification from the USB device 20, the USB host 10 makes a packet request to the USB device 20 with an ACK packet. As a result, the USB host 10 receives the DATA packet.

IN転送バッファ27に送信データがない場合、USBデバイス20には、以下に示す問題が生じる恐れがある。IN転送バッファ27に送信データが準備できる都度、USBデバイス20がERDY応答を行っている。したがって、NRDYパケットとERDYパケットの転送回数が多くなってしまい、全体からみた転送速度が遅くなる場合がある。   When there is no transmission data in the IN transfer buffer 27, the USB device 20 may have the following problems. Each time transmission data can be prepared in the IN transfer buffer 27, the USB device 20 makes an ERDY response. Therefore, the number of transfers of the NRDY packet and the ERDY packet increases, and the transfer rate as a whole may be slow.

そこで、本実施の形態では、以下に示す制御方法によって、データ通信速度の向上を図っている。以下、本実施の形態にかかるデータ転送方法について、図8を用いて説明する。   Therefore, in this embodiment, the data communication speed is improved by the following control method. Hereinafter, the data transfer method according to the present embodiment will be described with reference to FIG.

まず、USBホスト10がACKパケットをUSBデバイス20に送信して、パケット要求を行う(図8のA)。すると、プロトコル層ユニット23がIN転送バッファ27のデータ格納状況を確認する。IN転送バッファ27に送信データが格納されておらず、USBデバイス20は、データの転送準備ができていない。したがって、USBデバイス20は、USBホスト10にNRDYパケットを送信して、送信できないことを伝えるパケット応答を行う(図8のB)。NRDYパケットは、USBデバイス20に通信を待機させる待機パケットである。   First, the USB host 10 transmits an ACK packet to the USB device 20 to make a packet request (A in FIG. 8). Then, the protocol layer unit 23 confirms the data storage status of the IN transfer buffer 27. Transmission data is not stored in the IN transfer buffer 27, and the USB device 20 is not ready for data transfer. Therefore, the USB device 20 transmits an NRDY packet to the USB host 10 and makes a packet response notifying that transmission is not possible (B in FIG. 8). The NRDY packet is a standby packet that causes the USB device 20 to wait for communication.

データ準備待ち時間となって、USBホスト10は、IN転送バッファ27のデータ準備が完了するのを待つ。USBデバイス20は、NRDYパケットを送信した後、送信データをシステムバス40からIN転送バッファ27に送出する。すなわち、DMAコントローラ24が、システムバス40を介して、メモリに記憶されている送信データをIN転送バッファ27に格納する。これにより、USBデバイス20がデータの転送準備を行う。   The USB host 10 waits for the data preparation in the IN transfer buffer 27 to be completed as the data preparation waiting time comes. After transmitting the NRDY packet, the USB device 20 sends the transmission data from the system bus 40 to the IN transfer buffer 27. That is, the DMA controller 24 stores the transmission data stored in the memory in the IN transfer buffer 27 via the system bus 40. As a result, the USB device 20 prepares for data transfer.

データ準備待ち時間において、プロトコル層ユニット23は、IN転送バッファ27に格納されている送信データのデータ数と、閾値を比較する。そして、データ数が閾値を越えたら、USBデバイス20がERDYパケットをUSBホスト10に送信する(図8のC)。すなわち、USBデバイス20は、IN転送バッファ27に送信データが準備できたタイミングでは、USBホスト10に準備完了を伝えるERDYパケットを送信しない。そして、OUT転送バッファ26のデータ数が閾値を越えたタイミングで、ERDYパケットをUSBホスト10に送信する。閾値は、2以上の任意の数とすることができる。ERDYパケットには、OUT転送バッファ26の送信可能データ数の情報が含まれているため、USBデバイス20は、USBホスト10にOUT転送バッファ26IN転送バッファ27のデータ数を通知する。ERDYパケットは、USBホスト10に通信準備が完了したことを示す準備完了パケットである。   In the data preparation waiting time, the protocol layer unit 23 compares the threshold value with the number of transmission data stored in the IN transfer buffer 27. When the number of data exceeds the threshold value, the USB device 20 transmits an ERDY packet to the USB host 10 (C in FIG. 8). That is, the USB device 20 does not transmit an ERDY packet that notifies the USB host 10 of the completion of preparation at the timing when transmission data is prepared in the IN transfer buffer 27. Then, the ERDY packet is transmitted to the USB host 10 at the timing when the number of data in the OUT transfer buffer 26 exceeds the threshold value. The threshold value can be any number greater than or equal to two. Since the ERDY packet includes information on the number of data that can be transmitted by the OUT transfer buffer 26, the USB device 20 notifies the USB host 10 of the number of data in the OUT transfer buffer 26 IN transfer buffer 27. The ERDY packet is a preparation completion packet indicating that the USB host 10 has completed communication preparation.

USBホスト10は、ERDYパケットを受信すると、ERDYパケットに応答して、ACKパケットをUSBデバイス20に送信する(図8のD)。USBデバイス20は、ACKパケットを受信すると、ACKパケットに応答して、DATAパケットをUSBホスト10に送信する(図8のE)。   Upon receiving the ERDY packet, the USB host 10 transmits an ACK packet to the USB device 20 in response to the ERDY packet (D in FIG. 8). When receiving the ACK packet, the USB device 20 transmits a DATA packet to the USB host 10 in response to the ACK packet (E in FIG. 8).

なお、図8のA、及びDのACKパケットには、要求データ数の情報が含まれており、USBデバイス20には送信要求されたデータ数が通知される。したがって、USBデバイス20は、送信要求されたデータ数のパケットをUSBホスト10に送信することができる。USBデバイス20は、ACKパケットで通知された要求データ数のパケットを送信できるように、システムバス40からIN転送バッファ27に送信データを送出して、データ転送の準備を行う。   Note that the A and D ACK packets in FIG. 8 include information on the number of requested data, and the USB device 20 is notified of the number of data requested to be transmitted. Therefore, the USB device 20 can transmit packets of the number of data requested to be transmitted to the USB host 10. The USB device 20 prepares for data transfer by sending transmission data from the system bus 40 to the IN transfer buffer 27 so that a packet of the requested data number notified by the ACK packet can be transmitted.

このように、システムバス40からのパケットデータが準備できたことを通知するERDYパケットの送信を1パケット準備できる都度行うのではなく、複数パケット準備できた後に行っている。すなわち、複数のパケットデータをIN転送バッファ27に格納した後、USBデバイス20がERDYパケットを送信する。このような制御によって、NRDYパケットとERDYパケットの送信回数を減らすことができる。NRDYパケット/ERDYパケットの送信回数及び時間を調整することができるため、システム全体としてデータ転送効率を上げることができる。   As described above, transmission of an ERDY packet for notifying that packet data from the system bus 40 has been prepared is not performed every time one packet can be prepared, but after a plurality of packets have been prepared. That is, after storing a plurality of packet data in the IN transfer buffer 27, the USB device 20 transmits an ERDY packet. By such control, the number of transmissions of the NRDY packet and the ERDY packet can be reduced. Since the number of transmissions and time of NRDY packet / ERDY packet can be adjusted, the data transfer efficiency can be improved as a whole system.

さらに、レジスタ制御部25が格納数の閾値を調整可能にしている。これにより、USBシステム100に応じて閾値を最適化することができる。例えば、システムバス40等の仕様に応じて、閾値を調整することができる。USBインターフェース30でのデータ転送速度をモニタして、そのモニタ結果に応じて、閾値を設定するようにしてもよい。例えば、閾値を変化させていき、その時のデータ転送速度をUSBインターフェース30上で評価する。そして、最もデータ転送速度が高くなる時の閾値を、レジスタ制御部25のレジスタに記憶させる。このようにすることで、システムバス40に応じて最適な閾値を設定することができる。よって、データ転送速度をより高くすることができる。テストプログラムやハードウェアなどを用いて、レジスタ制御部25が閾値を自動的に設定するようにしてもよい。   Further, the register control unit 25 can adjust the threshold value of the storage number. Thereby, the threshold value can be optimized according to the USB system 100. For example, the threshold value can be adjusted according to the specifications of the system bus 40 and the like. The data transfer speed at the USB interface 30 may be monitored, and a threshold value may be set according to the monitoring result. For example, the threshold value is changed, and the data transfer speed at that time is evaluated on the USB interface 30. Then, the threshold value when the data transfer rate is highest is stored in the register of the register control unit 25. In this way, an optimum threshold value can be set according to the system bus 40. Therefore, the data transfer rate can be further increased. The register control unit 25 may automatically set the threshold value using a test program, hardware, or the like.

上記のデータ転送方法では、IN転送バッファ27のデータ格納状況を示す値として、IN転送バッファ27に格納されているデータ数を用いたが、これ以外の値を用いてもよい。例えば、IN転送バッファ27のデータ格納状況を空きバッファ数で管理してもよい。そして、IN転送バッファ27の格納状況を示す値を閾値と比較して、その比較結果に応じてERDYパケットを送信すればよい。もちろん、OUT転送バッファ26とIN転送バッファ27とで異なる閾値を用いてもよく、同じ閾値を用いてもよい。   In the data transfer method described above, the number of data stored in the IN transfer buffer 27 is used as a value indicating the data storage status of the IN transfer buffer 27, but other values may be used. For example, the data storage status of the IN transfer buffer 27 may be managed by the number of empty buffers. Then, a value indicating the storage status of the IN transfer buffer 27 is compared with a threshold value, and an ERDY packet may be transmitted according to the comparison result. Of course, different threshold values may be used for the OUT transfer buffer 26 and the IN transfer buffer 27, or the same threshold value may be used.

なお、上記の説明では、IN転送、及びOUT転送の両方について、閾値によるバッファ管理を行ったが、IN転送、及びOUT転送の一方のみについて、閾値によるバッファ管理を行ってもよい。   In the above description, buffer management is performed using a threshold value for both IN transfer and OUT transfer. However, buffer management based on a threshold value may be performed for only one of IN transfer and OUT transfer.

実施の形態2.
本実施の形態にかかるUSBデバイス20、及びUSBシステム100について図9を参照して説明する。図9は、USBシステム100の構成を示す図である。USBシステム200は、USBデバイス20とUSBホスト10とUSBインターフェース30を備えている。USBデバイス20は、システムバス40とバッファ28と通信制御部29とを備えている。
Embodiment 2. FIG.
The USB device 20 and the USB system 100 according to the present embodiment will be described with reference to FIG. FIG. 9 is a diagram illustrating a configuration of the USB system 100. The USB system 200 includes a USB device 20, a USB host 10, and a USB interface 30. The USB device 20 includes a system bus 40, a buffer 28, and a communication control unit 29.

USBインターフェース30は、USBホスト10との間でパケットを送受信する。バッファ28は、USBインターフェース30を介して送信又は受信するパケットのパケットデータを複数格納する。システムバス40は、バッファ28に格納されたパケットデータを転送する。通信制御部29は、バッファ28の空き状況又は格納状況を示す値と閾値とを比較し、比較結果に応じてUSBホスト10に通信準備が完了したことを示す準備完了パケットを送信する。このようにするとで、実施の形態1と同様の効果を得ることができ、データ転送速度を向上することができる。なお、実施の形態2と実施の形態1を適宜組み合わせてもよい。   The USB interface 30 transmits and receives packets to and from the USB host 10. The buffer 28 stores a plurality of packet data of packets transmitted or received via the USB interface 30. The system bus 40 transfers the packet data stored in the buffer 28. The communication control unit 29 compares the value indicating the availability or storage status of the buffer 28 with a threshold value, and transmits a preparation completion packet indicating that communication preparation is completed to the USB host 10 according to the comparison result. In this way, the same effect as in the first embodiment can be obtained, and the data transfer rate can be improved. Note that Embodiment 2 and Embodiment 1 may be combined as appropriate.

実施の形態1、又は2にかかるUSBデバイス20におけるデータ転送処理のうちの一部又は全部は、コンピュータプログラムによって実行されても良い。上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。   Part or all of the data transfer processing in the USB device 20 according to the first or second embodiment may be executed by a computer program. The above-described program can be stored and supplied to a computer using various types of non-transitory computer readable media. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)) are included. The program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the exemplary embodiments, the present invention is not limited to the above. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the invention.

10 USBホスト
20 USBデバイス
30 USBインターフェース
21 物理層ユニット
22 リンク層ユニット
23 プロトコル層ユニット
24 DMAコントローラ
25 レジスタ制御部
26 OUT転送バッファ
27 IN転送バッファ
28 バッファ
29 通信制御部
40 システムバス
100 USBシステム
DESCRIPTION OF SYMBOLS 10 USB host 20 USB device 30 USB interface 21 Physical layer unit 22 Link layer unit 23 Protocol layer unit 24 DMA controller 25 Register control part 26 OUT transfer buffer 27 IN transfer buffer 28 Buffer 29 Communication control part 40 System bus 100 USB system

Claims (13)

USBホストとの間でパケットを送受信するUSBインターフェースと、
前記USBインターフェースを介して送信又は受信するパケットのパケットデータを複数格納するバッファと、
前記バッファに格納された前記パケットデータ、又は前記バッファに格納する前記パケットデータが伝送されるシステムバスと、
前記バッファの空き状況又は格納状況を示す値と閾値とを比較し、比較結果に応じて前記USBホストに通信準備が完了したことを示す準備完了パケットを送信する通信制御部と、を備え
前記準備完了パケットを送信した後、受信した前記パケットの前記パケットデータを前記バッファから前記システムバスに送出することで前記バッファの空きを増やす、又は送信する前記パケットのパケットデータをシステムバスから前記バッファに送出することで前記バッファの格納数を増やす、
USBデバイス。
  A USB interface for sending and receiving packets to and from a USB host;
  A buffer for storing a plurality of packet data of packets transmitted or received via the USB interface;
  A system bus through which the packet data stored in the buffer or the packet data stored in the buffer is transmitted;
  A communication control unit that compares a value indicating the availability or storage status of the buffer with a threshold value, and transmits a preparation completion packet indicating that communication preparation is completed to the USB host according to the comparison result.,
After transmitting the ready packet, the packet data of the received packet is transmitted from the buffer to the system bus to increase the buffer space, or packet data of the packet to be transmitted is transmitted from the system bus to the buffer. Increase the number of stored buffers by sending to
USB device.
前記バッファに空きがない場合、前記USBホストにパケット転送を待機させる待機パケットを送信し、
前記バッファの空き状況を示す値が前記閾値を越えた場合、前記準備完了パケットを送信する請求項1に記載のUSBデバイス。
If there is no free space in the buffer, send a wait packet to wait for packet transfer to the USB host,
If a value indicating the availability of the buffer exceeds the threshold, USB device according to claim 1 for transmitting the ready packet.
前記バッファに送信データがない場合、前記USBホストにパケット転送を待機させる待機パケットを送信し、
前記バッファの格納状況を示す値が前記閾値を越えた場合、前記準備完了パケットを送信する請求項1、又は2に記載のUSBデバイス。
When there is no transmission data in the buffer, a waiting packet is sent to the USB host to wait for packet transfer,
If the value indicating the storage status of the buffer exceeds the threshold, USB device according to claim 1 or 2 transmits the ready packet.
前記USBホストとの通信状況に応じて、前記閾値が設定可能である請求項1〜3のいずれか1項に記載のUSBデバイス。 The USB according to the communication status with the host, USB device according to any one of claims 1 to 3, wherein the threshold value can be set. 請求項1〜4のいずれか1項に記載のUSBデバイスと
前記USBインターフェースを介して前記USBデバイスにパケットを送受信するUSBホストと、を備えたUSBシステムであって、
前記USBホストが、前記準備完了パケットに応答して、パケットを送信するUSBシステム。
The USB device according to any one of claims 1 to 4 ,
A USB system comprising: a USB host that transmits and receives packets to and from the USB device via the USB interface;
A USB system in which the USB host transmits a packet in response to the ready packet.
USBデバイスのバッファに、USBホストから受信したパケット又は前記USBホストに送信するパケットのパケットデータを格納し、
前記USBデバイスのシステムバスに前記パケットデータを送出し、
前記バッファの空き状況又は格納状況を示す値と閾値とを比較して、前記USBホストに通信準備が完了したことを示す準備完了パケットを送信し、
前記準備完了パケットに応答して、前記USBホストがパケットを送信し、
前記準備完了パケットを送信した後、受信した前記パケットの前記パケットデータを前記バッファから前記システムバスに送出する、又は送信する前記パケットのパケットデータをシステムバスから前記バッファに送出する、
データ転送方法。
The packet data of the packet received from the USB host or the packet transmitted to the USB host is stored in the buffer of the USB device,
Sending the packet data to the system bus of the USB device;
Compare the value indicating the buffer availability or storage status with a threshold value, and send a ready packet indicating that communication preparation is completed to the USB host,
In response to the ready packet, the USB host sends a packet ;
After sending the ready packet, sending the packet data of the received packet from the buffer to the system bus, or sending packet data of the packet to be sent from the system bus to the buffer;
Data transfer method.
前記バッファに空きがない場合、前記USBホストにパケット転送を待機させる待機パケットを送信し、
前記バッファの空き状況を示す値が前記閾値を越えた場合、前記準備完了パケットを送信する請求項6に記載のデータ転送方法。
If there is no free space in the buffer, send a wait packet to wait for packet transfer to the USB host,
The data transfer method according to claim 6 , wherein when the value indicating the availability of the buffer exceeds the threshold, the preparation completion packet is transmitted.
前記バッファに送信データがない場合、前記USBホストにパケット転送を待機させる待機パケットを送信し、
前記バッファの格納状況を示す値が前記閾値を越えた場合、前記準備完了パケットを送信する請求項6、又は7に記載のデータ転送方法。
When there is no transmission data in the buffer, a waiting packet is sent to the USB host to wait for packet transfer,
The data transfer method according to claim 6 or 7 , wherein when the value indicating the storage status of the buffer exceeds the threshold, the preparation completion packet is transmitted.
前記USBホストとの通信状況に応じて、前記閾値が設定可能である請求項6〜8のいずれか1項に記載のデータ転送方法。 The data transfer method according to any one of claims 6 to 8 , wherein the threshold value can be set according to a communication status with the USB host. USBホストとの間でパケットを送受信するUSBデバイスに対して、
前記USBホストから受信したパケット又は前記USBホストに送信するパケットのパケットデータをバッファに格納するステップと、
システムバスに前記パケットデータを送出するステップと、
前記バッファの空き状況又は格納状況を示す値と閾値とを比較して、前記USBホストに通信準備が完了したことを示す準備完了パケットを送信するステップと、
前記準備完了パケットを送信した後、受信した前記パケットの前記パケットデータを前記バッファから前記システムバスに送出する、又は送信する前記パケットのパケットデータをシステムバスから前記バッファに送出するステップをさらに実行させるステップと、
を実行させるプログラム。
For USB devices that send and receive packets to and from the USB host,
Storing packet data of a packet received from the USB host or a packet to be transmitted to the USB host in a buffer;
Sending the packet data to a system bus;
Comparing a value indicating a free state or a storage state of the buffer with a threshold value, and transmitting a preparation completion packet indicating that communication preparation is completed to the USB host;
After the ready packet is transmitted, the step of transmitting the packet data of the received packet from the buffer to the system bus, or transmitting the packet data of the packet to be transmitted from the system bus to the buffer is further executed. Steps,
A program that executes
前記バッファに空きがない場合、前記USBホストにパケット転送を待機させる待機パケットを送信するステップと、
前記バッファの空き状況を示す値が前記閾値を越えた場合、前記準備完了パケットを送信するステップを、実行させる請求項10に記載のプログラム。
If there is no free space in the buffer, sending a standby packet that causes the USB host to wait for packet transfer;
The program according to claim 10 , wherein when the value indicating the buffer availability exceeds the threshold, the step of transmitting the preparation completion packet is executed.
前記バッファに送信データがない場合、前記USBホストにパケット転送を待機させる待機パケットを送信するステップと、
前記バッファの格納状況を示す値が前記閾値を越えた場合、前記準備完了パケットを送信するステップと、をさらに実行させる請求項10、又は11に記載のプログラム。
When there is no transmission data in the buffer, transmitting a standby packet for allowing the USB host to wait for packet transfer;
The program according to claim 10 or 11, further comprising the step of transmitting the preparation completion packet when a value indicating a storage state of the buffer exceeds the threshold value.
前記USBホストとの通信状況に応じて、前記閾値が設定可能である請求項10〜12のいずれか1項に記載のプログラム。 The program according to any one of claims 10 to 12 , wherein the threshold value can be set according to a communication status with the USB host.
JP2013135197A 2013-06-27 2013-06-27 USB device, USB system, data transfer method, and program Active JP6222724B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013135197A JP6222724B2 (en) 2013-06-27 2013-06-27 USB device, USB system, data transfer method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013135197A JP6222724B2 (en) 2013-06-27 2013-06-27 USB device, USB system, data transfer method, and program

Publications (2)

Publication Number Publication Date
JP2015011449A JP2015011449A (en) 2015-01-19
JP6222724B2 true JP6222724B2 (en) 2017-11-01

Family

ID=52304578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013135197A Active JP6222724B2 (en) 2013-06-27 2013-06-27 USB device, USB system, data transfer method, and program

Country Status (1)

Country Link
JP (1) JP6222724B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7368051B2 (en) * 2022-03-03 2023-10-24 Necプラットフォームズ株式会社 USB devices and control methods for USB devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW413763B (en) * 1999-03-16 2000-12-01 Winbond Electronics Corp Data conversion device and data flow control method in between USB host and network end
JP2013081131A (en) * 2011-10-05 2013-05-02 Renesas Electronics Corp Transmission device, communication system, transmission method, and transmission program

Also Published As

Publication number Publication date
JP2015011449A (en) 2015-01-19

Similar Documents

Publication Publication Date Title
CN108062285B (en) NVMe storage device and method for accessing same
TWI296083B (en) Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
JP5822567B2 (en) Controller and transfer speed control method
US20190272124A1 (en) Techniques for Moving Data between a Network Input/Output Device and a Storage Device
TWI610179B (en) Host device and methods for controlling a data transfer speed
US9129064B2 (en) USB 3.0 link layer timer adjustment to extend distance
JP2013020284A (en) Device controller, usb device controller, and power control method
US20110289243A1 (en) Communication control device, data communication method and program
JP2010011255A (en) Wireless communication apparatus, and packet transfer method thereof
JP2008172515A (en) Transmitter and method, communication device, and program
US9116881B2 (en) Routing switch apparatus, network switch system, and routing switching method
JP6222724B2 (en) USB device, USB system, data transfer method, and program
JP2013081131A (en) Transmission device, communication system, transmission method, and transmission program
TW201224764A (en) Apparatus for managing interrupt cause and system for processing interrupt
TWI559151B (en) Control method of pipe schedule and control module thereof
WO2014156020A1 (en) Initiator terminal, target terminal, method of interrupting access of initiator terminal, and method of interrupting access of target terminal
CN114443533A (en) Removal of USB devices and PING intervention in extended environments
JP6706180B2 (en) Device and data transfer system
JP5212196B2 (en) Data transmission apparatus, information processing apparatus, and operating frequency control method
JP6638985B2 (en) Communication device, line selection method, and program
JP5600740B2 (en) Response device, integrated circuit thereof, response method, and response system
US20230105094A1 (en) Power saving techniques for layer-to-layer interface
JP2009278507A (en) Host device and scheduling method
CN113485957B (en) Multi-protocol system control device and multi-protocol system control method for physical layer suitable for industrial-level application scene

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170522

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170713

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: 20170905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170928

R150 Certificate of patent or registration of utility model

Ref document number: 6222724

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150