CN102693206B - WUSB (wireless universal serial bus) isochronous buffer management in endpoint - Google Patents

WUSB (wireless universal serial bus) isochronous buffer management in endpoint Download PDF

Info

Publication number
CN102693206B
CN102693206B CN201210075495.5A CN201210075495A CN102693206B CN 102693206 B CN102693206 B CN 102693206B CN 201210075495 A CN201210075495 A CN 201210075495A CN 102693206 B CN102693206 B CN 102693206B
Authority
CN
China
Prior art keywords
terminal
wusb
data
grouping
equipment
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.)
Expired - Fee Related
Application number
CN201210075495.5A
Other languages
Chinese (zh)
Other versions
CN102693206A (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.)
STMicroelectronics Beijing R&D Co Ltd
Original Assignee
STMicroelectronics Beijing R&D Co 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 STMicroelectronics Beijing R&D Co Ltd filed Critical STMicroelectronics Beijing R&D Co Ltd
Priority to CN201210075495.5A priority Critical patent/CN102693206B/en
Publication of CN102693206A publication Critical patent/CN102693206A/en
Application granted granted Critical
Publication of CN102693206B publication Critical patent/CN102693206B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

The invention relates to a buffer management method. The buffer management method comprises the following steps of: providing an isochronous IN endpoint in a WUSB device; providing a buffer for the IN endpoint in a memory of the WUSB device; providing a plurality of register blocks in the memory of the WUSB; receiving a write request of data sections at the IN endpoint; storing the data sections in the buffer; connecting one of the register blocks to certain continuous data sections; and determining additional packet information required by packets with WUSB isochronous formats for preparation in each connected register block to each packet required by a transmission window.

Description

The buffer management of wireless USB synchronization in terminal
This case is the applying date is on January 30th, 2007, application number is 200710007913. the divisional application of by name buffer management of wireless USB synchronization " in the terminal " of 6.
Invention field
The present invention relates generally to radio universal serial bus (WUSB) agreement, and relate to realize this WUSB agreement equipment (namely, WUSB equipment), and or rather, relate to management with the impact damper in the WUSB equipment of synchronous (isochronous) IN terminal (Endpoint) in order to the amount of memory that limits required for end buffer and the complicacy reducing management terminal buffering follows the method for the WUSB specification of packet simultaneously.
Background technology
USB (universal serial bus) (USB) communication has significantly improved PC (PC) or the communication between other main process equipment and peripherals, described peripherals such as memory device, scanner, PDA(Personal Digital Assistant), external hard disc, keyboard, mouse, video camera, printer, battery and other phones, display, sound-track engraving apparatus and microphone and other equipment application software in numerical information and PC or main process equipment and/or embedded system transmitted.In 2005, analyst estimated that existence more than 50,000 ten thousand USB products in use.USB perhaps provides asynchronous serial interconnection in main frame and one between many peripherals.At first, USB was once the agreement very useful to wired connection, described wired connection is such as be inserted into external unit required in the port in host PC, but radio universal serial bus (WUSB) specification be host definition for high bandwidth wireless with the agreement of peripheral communications, such as via ultra broadband (UWB) radiotelegraphy, and without the need to cable or physical port.WUSB is the logic bus supporting exchanges data between main process equipment and the much peripherals that can simultaneously access or equipment.
The WUSB specification of distribution on May 12nd, 2005,1.0 versions extend this usb protocol generally based on usb protocol.In usb communication, each USB device or external unit are connected to hub or are directly connected to main frame (such as, with the PC of usb host controller).Under WUSB condition, there is no hub, and directly main frame and the communication of external unit or WUSB equipment, and sometimes, equipment cord adaptor (Device Wire Adapter DWA) is connected to or links to one or more USB device, wirelessly communicate with main frame (such as, DWA can be considered to serve as the main frame of line USB system) to allow the USB device of line.No matter but be which kind of situation, all communications of main frame all in control USB or WUSB bus, and once only have an equipment and main-machine communication.When first an equipment be connected to main frame, its existence of this Host Detection and to this device request essential information, the communication speed that such as this equipment is supported, the bandwidth of this equipment requirement and what data transfer types of this equipment utilization.Initialization procedure is considered to enumerate (enumeration) and comprises host assignment unique address to this equipment.There are four kinds of data transfer types for sending USB and WUSB data: control, batch processing (bulk), to interrupt and synchronous.The permission equipment that synchronously passes on is by ensureing without error recovery, to be carried out online transfer mass data by the Delivery time of device data that transmits or bandwidth.Utilize the music player devices etc. of the equipment-such as video or network camera, such as USB loudspeaker, microphone and so on synchronously passed on, must tolerate that accidental corrupt data grouping arrives at the destination.
Terminal (Endpoint) is provided in each equipment in USB or WUSB system or external unit.Terminal is the unique, addressable part of an equipment, and this equipment is considered to the target of the communication stream between main frame and equipment, and terminal is used to transmit and receive data in bus.Typically, in each equipment, have 16 addressable terminals to utilize, and each terminal comprise address digit and direction or terminal number.16 one of end buffer or register in end address reference device, and terminal number define these data go to main frame still just from main frame come, this reference be it seems from the angle of main frame.Therefore, " IN terminal " transmits data from this equipment to the terminal of main frame, and " OUT terminal " describes the data of going to equipment from main frame.Main frame and to be initialised or the communication enumerated between equipment that period sets up exchanges and is considered to " pipeline ", it is the virtual link between the equipment terminal of main frame kind and equipment control software or driver.Pipeline is the passage for main frame and all data of exchanged between equipment.WUSB developer is overstated want, facing challenges is design synchronous terminal or the WUSB equipment with synchronous terminal, effectively to manage the communication of (or in WUSB bus) on pipeline and the data buffering at terminal.Preferably, this design can be created in order to control to support that the amount of memory required by all demands of WUSB specification supported by the impact damper of each terminal or register simultaneously, because in order to via WUSB passage or pipeline and main-machine communication, WUSB equipment just must realize whole Essential features of WUSB agreement.
Particularly, the problem of Wireless USB or WUSB synchronous IN terminal buffer management is: the problem being devoted to solve of having to when designing or configure WUSB equipment or peripherals.During the data phase of WUSB affairs, series of data packets is sent out and this data transfer is referred to as " data block transfer (bursting) ".Fig. 1 illustrates the block transfer of WUSB data according to WUSB agreement.In order to ensure reliable data delivery, WUSB system or group, such as group 100 comprises the receiver of transmitter or equipment and the such as main process equipment 120 and so on IN terminal 110, uses single sliding window agreement to perform the data block transfer of grouping 130, to give each grouping 130 affix sequence number.As shown in the figure, transmitter 110 comprises data buffer 112, in order to store this data in the data from terminal function before being passed on by data transmitter 114, and similarly, receiver or main process equipment 120 comprise data sink 126, in order to receive grouping 130 with receiver window in WUSB bus or the pipeline in this bus, and these data are delivered to data buffer 128 for being transferred in host application program, function or embedded system for use later.According to WUSB specification, buffer sizes for synchronous IN terminal is selected to be the decision that application software is concrete, and unique guidance is this size should be selected by balance several factors, and described factor comprises requirement short-term allowable error, cost and acceptable flow delay and/or stand-by period.In other words, buffer sizes and buffer management mainly leave WUSB developer for, how completing the result of hope-such as reduce storer better, reduce costs and/or then provide anything to instruct hardly in limited delay and mistake.
Except providing sequence number, the synchronous grouping of each WUSB needs to have special form, and some particular demands that this form has are listed in the following Table 1.Synchrodata must be gathered it and can aloft or WUSB bus send and single data sectional need not be divided in the largest packet in multiple WUSB grouping by WUSB synchronous IN terminal.In synchronous IN passes on, wPrcsentationTimc field is the sampling time of the first segmentation in grouping.It is fixing that interval between two continuous data segmentations is assumed to be in a grouping, and the time of occurrence of segmentation subsequently in being used for determining dividing into groups.If a segmentation does not have data, then its length should be set to zero by this terminal clearly.In response to the request to main frame or receiver 120 pairs of data, the synchronous IN terminal in receiver 110 makes response by sending data the oldest in its impact damper 112 for each WUSB synchronous IN request.When impact damper 112 is full of, synchronous IN terminal 110 abandons data the oldest in impact damper 112.If synchronous IN terminal has tried to send the data abandoned, so it has attempted to use in groups transmit Sequence Number identical with abandoned grouping to pass on the oldest availablely not abandon grouping.In addition, for the synchronous IN terminal of the WUSB in receiver 110, support that dynamic exchange and/or constantly upgrading may be the situations of wishing, largest packet size or interval can be allowed like this to be change and not to interrupt passing on of it.These optional characteristics make synchronously to pass on the radio channel of instability more steady.
The packet format that table 1: WUSB is synchronous
As illustrational in Fig. 1 institute, the WUSB specification of being issued by USB industry forum, version 1, provides general data block transfer model.The buffer management of the synchronous IN terminal of this unpromising WUSB provides solution completely, and they are responsible for buffering from the data of the application software on WUSB equipment or external unit and data encapsulation at WUSB
In synchronous grouping.In the conventional data block transfer model of group 100, transmitter 110 has the data stream being logically divided into largest packet size part.Transmitter 110 also maintains to slide and sends window in its data transmitter 114, and how this transmission window control sequence number is associated with each packet 130 in next Transaction Information stage.Sequence number must be associated with data buffer segmentation with strict ascending sequence numerical order by transmitter 110.Receiver 120 maintains receiver window in its data sink 126, described receiver window identification it will retain which data sequence number (and by association which packet) for use from the affairs that will arrive.When affairs complete, receiver 120 is wiped the sequence number of the grouping retained and is advanced new grouping window from receiver window.As shown in Figure 1, " shaking hands " of affairs during the stage, receiver 120 sends current receiver window as block transfer confirmation to this transmitter.When these affairs are that OUT(is out) when passing on, this block transfer confirms to be in the data net load that " shaking hands " divide into groups.When these affairs are that IN(enters) when passing on, this block transfer confirms just to be in micro-scheduling administration order subsequently (by the W of WUSB specification defined dTthe DINAck of CTA message block) in.The bit vector that this block transfer is confirmed to be receiver window represents." 1 " bit representation receiver window in bit vector.Receiver 120 has to be used in the data (only abandoning in situation synchronous) received in strict ascending sequence numerical order.In WUSB specification, definition following variables is to support data block transfer: largest packet size (MPS), and it is the nominal data cell size of all packets; Maximum block transfer size (MBS), it is the largest packet number that a terminal can hold in the forms data stage, and MBS is 3 in FIG; And maximal sequence (MaxSeq), its be when transmit data so far terminal time the sequence number range that must use, and be zero to (MaxSeq-1) for the sequence number actual range of this terminal.
WUSB specification also provides the simple case of synchronous IN terminal, this example can be used for cushioning the data from the application software in equipment cord adaptor (DWA) and encapsulating, but this example also could not solve the storer or buffer management problem that are associated with WUSB data transfer satisfactorily.Fig. 2 shows an example for the data block transfer process of the DWA with the synchronous IN terminal provided in WUSB specification.In this example process 200, the first poll made in response to the main frame occurred before frame 642 is attempted, DWA starts the affairs to downstream USB 2.0 function terminal (that is, to one of the wired USB device or external unit in the downstream of inserting in DWA) in next frame (namely 643).In each frame after 642, DWA is implemented into the synchronous IN affairs to USB 2.0 function terminal.The total data received during service intervals is constantly stored in impact damper by DWA, and is recorded in this interim receives the first data frame time from USB 2.0 equipment.In next interval (N+1), the synchronizing function terminal of host computer polls DWA, and DWA returns its ready data of going to send.When during the N+1 of interval, main frame sends W dTwhen CTA, also do not receive any data from USB 2.0 function terminal completely at this interim DWA, so DWA only sends it really have complete data.The form of packet as a result illustrates in fig. 2.Because have received two groupings from USB 2.0 function terminal in the N of interval, so in response to the 2nd W dTcTA poll, DWA sends and just comprises the grouping that first received these two samplings and data be received the time of occurrence of time.In next interval (N+2), utilize frame number (wherein first grouping data 3 of 645 (namely) receives from USB 2.0 function terminal), the synchronizing function terminal of host computer polls DWA and receive the ready synchronous segmenting of next group (that is, data 3,4 and 5).
Be no matter DWA synchronous IN terminal example shown in the block transfer model of conventional data shown in Fig. 1 or Fig. 2, all not have completely successfully meeting in the control to effective buffer management and WUSB device memory demand.Conventional data block transfer model is not be suitable for well especially synchronously passing on, because have special format needs to isochronous data packet.Particularly, except raw data, each isochronous data packet comprises some variable fields, comprises time of occurrence and division number.Conventional data block transfer model can not provide or these word fields of predefine for each grouping.Further problem comprises the fact: WUSB agreement does not require that single isochronous data packet is largest packet size, but requires that individual data segmentation can not be divided into multiple grouping.DWA IN terminal example relates to data sectional and is stored in IN end buffer by with the synchronous packet format of WUSB.The time of occurrence that each WUSB divides into groups, division number and length variable are stored in IN end buffer together with raw data.The demonstration methods of this control endpoint communication is the significant storer of quantity allotted in the WUSB equipment of terminal comprising storing additional information (that is, beyond raw data WUSB divide into groups the data of needs).In addition, if largest packet size or MPS have been changed, so this terminal has needed all data sectionals in Reseal impact damper and has rearranged their positions in a buffer.This makes buffer management very complicated, and result, and dynamic exchange and configuration are with the DWA of the IN terminal that can upgrade continuously and other WUSB equipment to be difficult to use this model to support.In addition, the IN of DWA shown in Fig. 2 terminal example not supplying method comes associated packet and sequence number, abandons data or re-uses sequence number when buffer overflows.
Therefore, also need a kind of method of improvement and realize this method equipment, for managing the impact damper of synchronous IN terminal in WUSB equipment.Preferably, this buffer management method can provide such solution: than WUSB specification, version 1.0, in the simplified example that provides use less storer, and still to follow completely IN terminal and the demand of isochronous data packet being sent to the main frame in WUSB group or system according to WUSB agreement.
Summary of the invention
In order to be devoted to above-mentioned and other problem, a kind of buffer management method is provided, use in WUSB equipment, more particularly in the WUSB equipment with synchronous IN terminal, the amount of memory required in order to restriction and complicacy, still can encapsulate isochronous data packet for being sent to WUSB main frame simultaneously.For there is the equipment cord adaptor (DWA) of synchronous IN terminal and in the buffering example provided, once data are written in impact damper, data sectional is packaged into the synchronous packet format of WUSB by terminal in WUSB specification 10. version.As a result, end buffer is necessary for each segmentation and time of occurrence (presentation time) and other additional informations and raw data is stored.On the contrary, according to the buffer management of embodiment of the present invention relate to terminal or its controller and buffer management or control module just data sectional by main frame in transmission window after request just action get up to encapsulate described data sectional.Terminal (or having the WUSB equipment of this terminal) is derived time of occurrence and is not stored in terminal buffering, and is sending in window as each segmentation obtains or determine the grouping information of adding.The time of occurrence of deriving and other additional packet information are stored in the Parasites Fauna or register be associated with each data sectional.Parasites Fauna is linked to the corresponding data sectional that stores in the circular buffer (such as by index, the length field of raw data and raw data is stored in end buffer, and is not all data required for storage enclosure WUSB grouping and information).The method relates to detailed operation additional packet information and the data sectional stored in impact damper are associated to forming WUSB and synchronously dividing into groups.In addition, buffer management method provides and operates Sum fanction in detail in order to grouping to be associated with sequence number, in order to abandon data at terminal and to reuse sequence number when cyclic buffer is in overflow state.Speak briefly, buffer management method of the present invention comprises the grouping additional information storing WUSB in the register bank and synchronously divide into groups required, and the real-time sampling time of last segmentation from impact damper derives time of occurrence.Buffer management comprises the method be associated with data sectional by sequence number, and supports the dynamic change at largest packet size (MPS) and interval.
Or rather, the such as equipment of WUSB equipment or DWA and so on the buffer management that is equipped with improvement and the encapsulation of synchronously dividing into groups to WUSB are to transfer to main frame.This equipment comprises IN terminal, its functions of the equipments from the function within such as this equipment and so on or from be connected to this equipment (such as, when this equipment is DWA) port USB device in functions of the equipments or application program receive data sectional.Storer is associated with terminal and comprises and cushions and multiple register according to the terminal of loop configuration.This equipment comprises terminal point control device, the data sectional of reception sequentially stores in the circular buffer by it, Parasites Fauna is distributed to each WUSB asked in transmission window synchronously to divide into groups, and synchronously divide into groups to derive the additional packet information in register for sending each WUSB asked in window.Additional packet information can comprise in time of occurrence, cyclic buffer division number and total length in the index of associated data segmentation, associated data segmentation.Time of occurrence is derived by the time interval in sampling time of terminal point control device last segmentation from impact damper and impact damper between two continuous print data sectionals.
Additional packet information is synchronously divided into groups to use for being sent in main frame on WUSB passage continuous print data sectional being packaged into WUSB by terminal point control device.In order to mate to come the transmission window request of from host, information usually also comprises the sequence number of each synchronous grouping.During operation, terminal receives the host command of transmission one group of packet and makes response, the transmission window comprising one group of sequence number determined by terminal point control device, then encapsulates some in the circular buffer and has the continuous print data sectional that coupling sends the sequence number of window sequence number in a register.Entire body, register is arranged to corresponding to maximumly sending in groups in some groups of the storer of size (MBS) of defining for terminal, and these Parasites Fauna are to mate the sending order arrangement sending window sequence number.Terminal can also receive request new spacing value is changed at the interval between the continuous data segmentation of data sectional, and change largest packet size (MPS) for storage data sectional is packaged into WUSB synchronously divide into groups time.Terminal point control device is revised by the MPS utilizing new interval or assisted by 6 such as auxiliary variables or the grouping information derived in Parasites Fauna responds, to support these new numerical value.
Accompanying drawing explanation
Fig. 1 illustrates a WUSB group's part, and the conventional data provided according to WUSB agreement sends rule in groups and performs data and send in groups;
Fig. 2 illustrates by WUSB specification, the IN data stream synchronous via the full speed of DWA that version 1.0 describes;
Fig. 3 with block form diagram according to the WUSB group of one embodiment of the present invention or system, this system with the wireless USB apparatus of demonstration, for providing the buffer management of terminal (such as synchronous IN terminal);
Fig. 4 diagram is according to another system based on WUSB of one embodiment of the present invention, it is configured to utilize equipment cord adaptor (DWA) as Host Wire Adapter, and as the main frame of many USB device or external unit, there is the main frame for USB device for performing buffer management;
Fig. 5 illustrates simple cycle impact damper, with index for IN terminal according to the present invention, such as supplies the WUSB equipment use shown in Fig. 3 and 4;
Fig. 6 illustrates in embodiments of the present invention for the Parasites Fauna of WUSB grouping;
Fig. 7 is the state machine for the buffer management realized by terminal point control device of the present invention;
Fig. 8 is process flow diagram, and the input management performed by IN terminal is in embodiments of the present invention shown;
Fig. 9 is process flow diagram, illustrates to be performed by TN terminal to manage impact damper and WUSB and to handle affairs the outgoing management of data phase of business;
Figure 10 is used for the exemplary implementation of the buffer management of synchronous IM terminal according to one embodiment of the present invention diagram; And
Figure 11 illustrates the example of buffer management of the present invention, is similar to the example of Figure 10, but the wherein reformed situation of largest packet size and interval is shown.
Embodiment
The present invention relates to the method and system for managing from the radio universal serial bus meeting Wireless USB specification or agreement (WUSB) equipment to the communication of WUSB main frame.These WUSB equipment can comprise such as equipment cord adaptor (DWA) or the machine WUSB equipment.Method of the present invention relates generally in the equipment be provided in synchronous IN terminal and improves buffer management, described synchronous IN terminal on passage or pipeline with main-machine communication.Or rather, the method makes WUSB synchronous IN terminal or less storer can be utilized by comparison to carry out buffered data with other buffer technology (such as buffer approach shown in Fig. 1 and 2) with the equipment of this terminal.Buffer management method of the present invention also allows terminal can encapsulate WUSB more neatly synchronously to divide into groups and the feature supporting other to wish with less complicacy, such as dynamic exchange and upgrading serially.
Buffer management method may be used in much equipment, described Equipments Setting becomes in order to buffered data and is configured to provide packet subsequently, this packet provides raw data and additional data (such as time of occurrence) in a continuous manner, and wherein additional data needs the storer in equipment.Following description, from the WUSB systems of two demonstrations or the discussion of group, can comprise the equipment being applicable to execution buffer management techniques of the present invention with reference to figure 3 and 4, WUSB system or group.Then, with reference to figure 5-11, illustrate to be performed the process or specific implementation continuation that utilize the complicacy of less storage requirement and minimizing or restriction buffered data in WUSB equipment by synchronous IN terminal or their controller.
As discussed, buffer management method of the present invention be suitable for well with the WUSB equipment of WUSB main-machine communication in use.About this point, Fig. 3 illustrates an exemplary WUSB group or system 300, wherein can merge buffer management method of the present invention.As shown, group 300 comprises wireless universal serial bus host 310, wireless universal serial bus host 310 can comprise PC or other calculating or electronic equipment, it comprises console controller (such as, WUSB interface to the internal bus of such as pci bus and so on), console controller can with realizing USB or the WUSB agreement following main frame in the combination of hardware, firmware and/or software.Typically, main frame 310 also comprises for wireless transmission and receives the mechanism of data, such as wireless transceiver etc. (or this can be that the Host Wire Adapter being connected to PC or similar devices via allowing usb host function to connect through USB as shown in Figure 4 realizes).
Main frame 310 communicates with some wireless USB apparatus 320 on wireless bus shown in 314 according to WUSB agreement.Typically, wireless USB apparatus 320 can be function for group or system 300 providing capability or function device, such as printer, digital camera, loudspeaker, mouse, operating rod, phone, PDA, microphone, external hard disc, data-carrier store etc., or be that such as the line USB device of equipment cord adaptor (DWA) and so on provides the equipment of tie point as shown in Figure 4.Equipment 320 and 330 provides the standard USB interface comprising WUSB agreement, responds the standard WUSB operation such as configure and reset and so on, provides the standard information of host expects, such as ability description information, and in addition in accordance with WUSB agreement.Also by WUSB address, (address distributed when this equipment is attached to main frame 310 and is enumerated by main frame 310 visits equipment 320,330.Each equipment 320,330 supports one or more pipeline 314, and main frame 310 is communicated with equipment 320,330 by described pipeline 314 on WUSB passage.WUSB equipment 320,330 is supported in the appointment pipeline of the endpoint zero of USB control affiliated by pipeline of this equipment generally.Equipment 320,330, the same with other WUSB equipment, support common access mechanism, for controlling pipeline access information by this, and be information required for description equipment 320,330 (standard descriptor such as, defined in WUSB specification etc.) in endpoint zero with what control that pipeline is associated.
Also illustrate in more detail equipment 330 and comprise such assembly: can be used for performing buffer management of the present invention, and similar assembly can be provided in one or more equipment 320.As shown in the figure, WUSB equipment 330 comprises transceiver or other wireless transmitter/receiver 334, in order to communicate with main frame 310 via bus or pipeline 314.This equipment comprises terminal 332, and terminal 332 comprises at least one synchronous IN terminal generally, and described terminal is buffered data before preparation WUSB synchronously divides into groups to be sent to main frame 310.The same with use USB 2.0 equipment, WUSB outfit of equipment comprises terminal, and described terminal is the target of main frame and communication between devices stream.There is provided terminal point control device 336, in order to control terminal 332 and to use buffer-manager module 338, buffer-manager module 338 can perform with reference to the buffer management method of the present invention described in figure 5-11 with hardware, firmware and/or software simulating.In addition, equipment 330 comprises storer 340, described storer 340 comprises terminal circular buffering 344 for IN terminal 332, and comprises packet Parasites Fauna 348, in order to store the information that synchronous grouping needs except raw data (it can be stored in cyclic buffer 344).In addition, buffer-manager 338 and the storer 340 of configuration as shown in equipment 330 can be provided in other equipment 320, and provide the operation of these assemblies be explained in more detail with reference to following Fig. 5-11.Meanwhile, group 300 of the present invention comprises main frame 310 and at least one equipment 330 generally, but is not limited to the present invention for the number of the WUSB equipment that realizes group 300 and type.Be understandable that, buffer management techniques described here may be used on almost any equipment comprising synchronous IN terminal, and described synchronous IN terminal communicates with the wireless universal serial bus host of such as main frame 310 and so on.
Fig. 4 illustrates according to the present invention another group illustrational or system 400.With group 300 by contrast, group 400 is in conjunction with usb host 410(such as PC, computing machine or other computing machine or electron device and so on) use Host Wire Adapter 418(such as, Host Wire Adapter HWA), think that group 400 provides host functionalities.Cord adaptor 418 is illustrated as being wired to usb host 410, and is configured to provide Wireless USB ability to equipment 410.Group's 400 these external WUSB buses or passage 420 communicate with DWA 430, DWA 430 is wireless adapter generally, and it is arranged to and is wirelessly connected to Host Wire Adapter 418(or is directly connected to main process equipment 410 in accompanying drawing other embodiment unshowned).DWA 430 is connected with some USB device 460,462,464,468 by cable or cable, and described USB device is illustrated as keyboard, printer, music player and operating rod, but they can be any equipment with USB function.But the USB function device only with synchronous IN terminal (such as digital video camera, microphone etc.) uses the present invention provided via DWA 430 to communicate with main frame 410 or Host Wire Adapter 418.DWA 430 will comprise USB connector (such as and so on USB ' A ' connector) generally, and it allows the USB device 460-468 of line to be connected to DWA 430.DWA 430 allows equipment 460-468 to be wirelessly connected with main frame 410 with Host Wire Adapter 418 via DWA 430.
DWA 430 is configured to conventional DWA generally, and it is in accordance with for the WUSB protocol requirement with main frame or Host Wire Adapter wireless communication.In addition, DWA 430 is configured to support buffer management techniques of the present invention.For this purpose, DWA 430 comprises and has buffer control 436(such as, provides software, the hardware of the function described with reference to figure 5-11, and/or firmware device or module) DWA terminal point control device 432.DWA 430 comprises one or more synchronous IN terminal 440.In order to support the data transfer of motor synchronizing IN terminal 440, described data are the raw data provided from equipment 460 and 468, DWA 430 comprises the storer 450 of cyclic buffer 452 for each terminal 440 and Parasites Fauna 456 adaptation, as following detailed explanation, they are each grouping for sending in window and provide.It will be understood by those skilled in the art that, group 400 can be modified to include the multiple WUSB equipment (hub such as shown in Fig. 3 and spoke configure) communicated with Host Wire Adapter 418, or additional DWA can be provided, as the DWA 430 linking to line USB device.Group 300 is shown as the group that can perform buffer management simple example relative to equipment with 400 according to the present invention, and the invention is intended to not lie in restriction.
With reference to figure 5-11, description has the operation of WUSB synchronous IN terminal to explain the solution of the buffer management of synchronous IN terminal provided by the invention.Following description describe a kind of impact damper structure, use for when this terminal cushions.As in Fig. 3 and 4 equipment 320,330 and 430 (such as, by terminal and/or their controller with buffer-manager/control module) can perform, describing the operation be associated for cushioning input data and the additional information (such as sequence number, time of occurrence, division number and other information) that needed with WUSB agreement by data sectional, encapsulating in accordance with WUSB agreement so that WUSB is synchronously divided into groups.
Compactly, as shown in Figure 5, there is index (such as according to the buffer management use of some embodiments of the present invention indexS, IndexNwith indexE) cyclic buffer 510, to have the input data sectional 512,514 of their length according to time sequencing storage.In order to be encapsulated into by several continuous print data sectional in WUSB synchronously divides into groups easily and neatly, the such as Parasites Fauna shown in Fig. 3,4 and 6 is associated with each grouping sent in window by buffer management method.Terminal point control device provides input and output to manage, Sum fanction is operated in detail to provide, constantly to store from the data of application program and the additional information of preserving in several continuous print segmentation and Parasites Fauna be linked, to form WUSB grouping (such as, segmentation and additional WUSB grouping information or the grouping packaging information stored in a register being linked).In some embodiments, time of occurrence is a part for additional WUSB grouping information, and the sampling time that buffer management method comprises segmentation last from cyclic buffer 510 is that time of occurrence is derived in each grouping, this in accuracy and complicacy and between reach desirable exchange, and support dynamic exchange and can upgradability continuously.
Or rather, in some preferred embodiments shown in Fig. 5, each synchronous IN terminal for this equipment in the storer of equipment provides impact damper 510.Impact damper 510 for synchronous IN function terminal is contiguous memory, and it takies 5 bytes and operates with recycle design shown in Fig. 5.Several indexes for cyclic buffer 510 comprise: indexS, it is the index of the beginning for storing data in impact damper 510; indexE, it is the index at the end for buffered data; And indexN,it is the index of the ending for the current transmission window of this terminal.Tentation data is written to one or more segmentations 512 of 510 li, impact damper, and in 514, the length of segmentation is attached to the beginning of each segmentation 512,514, such as, be attached to initial 2 bytes of segmentation 512,514.Then, these segmentations 512,514 with (this length field (not shown)) are consecutively stored in as shown in Figure 5 in cyclic buffer 510.
In order to the data sectional of such as segmentation 512,514 and so on is formed WUSB synchronously divides into groups from impact damper 510, Parasites Fauna is associated with the current each grouping sending or send window in groups by terminal (or its controller), to record several variable or grouping packaging information, such as, exceed variable and the raw data of length requirement, synchronously divide into groups suitably to format WUSB, be sent to main frame for from IN terminal (or there is the WUSB equipment of this terminal).Fig. 6 illustrates two exemplary WUSB of the present invention and synchronously to divide into groups 610 and 618 formatting steps 600.As shown in the figure, grouping 610 comprises two segmentations 612,614, and divide into groups 618 to comprise a segmentation 616 in the cyclic buffer being stored in and being associated with terminal, and these data can be the application programs from being associated with terminal, be from line USB device when the equipment with terminal is DWA, maybe can be available to IN terminal to be sent to other performance datas of main frame.In order to the data sectional as segmentation 612,614,616 being assembled in WUSB synchronously divides into groups, terminal or its controller by Parasites Fauna 613,615 with each grouping 610 in current block transfer window, 618 are associated.
Register 613,615 is used for record format WUSB and synchronously divides into groups required several variablees, and is used for providing index or link to grouping in impact damper.Shown data sectional 632,614 and 616 comprises raw data field and represents the length field of data-field length.Register 613,615 records 612 and 616 and index respectively, because 612 and 616 is two first segmentations of dividing into groups.The number of Parasites Fauna 613,615 equals the maximum of terminal and sends (burst) size (or MBS) in groups.These Parasites Fauna are arrange with the transmission sequence of associated packet in one embodiment of the present invention.In Fig. 6 embodiment, from 0 Parasites Fauna 613,615 of numbering for storing the synchronous grouping information of additional WUSB, described information comprises: the overall length of continuous data segmentation being associated or linking, division number, the sequence number be associated with grouping and time of occurrence in grouping, described time of occurrence is the sampling time of the first segmentation of the continuous data segmentation being associated or linking, and the beginning index of continuous data segmentation being associated or linking.
The state machine 700 for buffer management according to embodiment of the present invention is provided in Fig. 7.State machine 700 shows three states: free time 710, input 712 and output 716.The function of the buffer management of input management and outgoing management realizes in state 712,716 respectively.In addition, in order to assist buffer management, typically keeping in the storer be associated with IN terminal and storing some parameters.These parameters comprise: n, it be from indexNarrive indexEthe number of the data sectional of (shown in Fig. 5); T, it is the time of occurrence of last data sectional in cyclic buffer; And P is the time interval between two contiguous segmentations.When setting or when resetting this terminal, after these parameters of initialization and Parasites Fauna, its buffer management enters idle condition.The major function of these additional parameters allows terminal or controller to be that time of occurrence is derived in each grouping.In order to support the dynamic change of largest packet size (or MPS) and interval, defining another and organize such parameter as discussed below, such as nextN, NextTwith nextP, it allows the data sectional stored in the circular buffer to have two kinds of intervals.Main frame is made the functions of the equipments that response controls and terminal is associated and is consequently infrequently changed this interval.
The buffer management performed at IN terminal can be believed to comprise input management and outgoing management.Fig. 8 illustrates the exemplary step of input management 800, and Fig. 9 illustrates exemplary step involved in outgoing management 900.When receiving the write request from application program 804, input management 800 by the data of the application program from function on equipment or from line USB device receive data placement to circulation end buffer.This can be considered to be in and to perform in two general steps, comprise and upgrade relative index and parameter so that for new data allocation space (as shown in by sub-step 810 to 848) and data sectional to be written to terminal cyclic buffer (as shown in sub-step 870) inner, it is succeeded by returning 890.
With reference to the first wider step, the embodiment supposition of method 800: comprise four parameters (namely at the write request of 804 receptions or acceptance, the division number inputted, sampling time of the interval between two segmentations, a upper segmentation and the segmented general length that will input, use in fig. 8 respectively n', p', t'with mindicate).810, method 800 determines interval p'whether be different from the primary leading in impact damper p, and when two intervals are identical, 812, this terminal will n'add to nin and upgrade tfor t'.If interval is different, so 816, terminal upgrades nextP, NextN and NextT.870 by data sectional from indexEbefore write cyclic buffer, as shown in step 820 to 864, terminal checks empty store, abandons the oldest data sectional and discharges sufficient storer to hold this data sectional.In the process, as 820,822,850,856, shown in 860 and 864, first terminal attempt proposes the grouping abandoned pointed by Parasites Fauna, one by one until empty store is enough.Trial starts from the first Parasites Fauna; So, in sub-step 820, Parasites Fauna iindex be initialized to zero.If determine that current Parasites Fauna points to grouping 822, so 850, indexSbe moved to the stem of this grouping to be released in the storer before this grouping.
856, check that empty store is to determine whether it is greater than the size of the data sectional that will write.If empty store is enough, so 860 is dropped by being grouped in of pointing to of actual registers group, and goes to next Parasites Fauna in 864 these processes.As shown in 824 to 848, when actual registers group does not point to grouping, all groupings be associated with Parasites Fauna are all dropped and terminal attempts abandoning remaining data sectional seriatim until empty store is enough.824, indexSbe moved to indexNto be released in indexNstorer in the past.Then, the size of empty store is checked 830.834, if it is less than the size of data of write, so indexNbe moved to next data sectional (as discussed with reference to figure 5 and 6, section length is additional to each segmentation when storing in the circular buffer), to abandon current data segmentation and left data sectional N is subtracted one.If nbe not equal to 0, so step 824 to 840 by repeatedly to abandon next data sectional.When nwhen reaching 0, the data sectional with original interval is fully dropped.848, in order to abandon the data sectional with new interval, nextN, NextP and NextTbe loaded onto m, P and Tin.As shown in 870, when empty store is sufficient or enough time, input data by from indexEbe written in cyclic buffer, then terminal is with mould s? mbe added to on IndexE, to determine data sectional current ending in the circular buffer.
In fig. 8, " reg [i]" be in the current transmission window with IN terminal i+1grouping be associated the i+1parasites Fauna. reg [i]comprise index (Index), length (Len), sequence number ( seq), segmentation (Seg), and the time or with reference to figure 6 discuss additional packet information." MOD(x, y) " represent the remainder of x divided by y.In addition, the action in the outgoing management process 900 of Fig. 9 is related to " CLEAR ( empty)reg [i] " step (for example, see step 920), by i+1index in individual Parasites Fauna and sequence number are set to NULL (sky) and other three member variables of this Parasites Fauna are set to zero, and that does during initialization with this Parasites Fauna is identical.
Outgoing management 900 shown in Fig. 9 is included in generally on WUSB passage, with WUSB synchronous packet format, data is sent to main frame (or Host Wire Adapter etc.).Be different from line USB, wireless USB synchronization passes on and comprises " shaking hands " and retry mechanism.The data of transmission are kept in cyclic buffer of the present invention and are used for possible repeating transmission by the terminal of WUSB wireless device, until have received the confirmation representing Successful transmissions.Pass on for IN, main frame is work request (that is, the W be inserted into the confirmation (i.e. DINAck) of last process these affairs dTcTA) inner, and send it to this equipment.Once its request is gone in terminal reception from main frame, terminal enters output state (see Fig. 7), and starts outgoing management.In this function as shown in Figure 9, terminal rotates it according to host acknowledgement (that is, DINAck) and sends window, and upgrades Parasites Fauna and synchronously divide into groups to prepare one or more WUSB according to the requirement of new window.
As shown in the outgoing management method 900 of Fig. 9, this work can be considered to comprise following five steps: (1) upgrades the sequence number in Parasites Fauna according to new transmission window; (2) sequence number being dropped grouping is reused; (3) indexSbe updated to the index of first segmentation that will send; (4) the empty index of Null Index(is utilized) upgrade appended synchronization grouping information in Parasites Fauna, comprising: index, length, segmentationwith time; And the packet radio represented by the Parasites Fauna with non-NULL index is sent to main frame (or Host Wire Adapter etc.) by (5).Method 900 is from host requests (W dTcTA) start, 902, utilize terminal to receive the confirmation in first affairs.904, as represented in this confirmation (DINAck), terminal or its controller action with buffer manager for use or control module get up to rotate transmission window (such as, in data transmitter shown in Fig. 1).
Then, sub-step 910 to 928 performs the step 1 of outgoing management 900 in fig .9.Step 1 relates to terminal according to the sequence number in new transmission window (that is, after rotating in step 904) renewal Parasites Fauna.In terminal storer, Parasites Fauna is arranged by with order of transmission, and sequence number should mate this order.In the DINAck received, the position of " 1 " position defines the sequence number sending and divide into groups in window.Index txSwith txNthe beginning and the ending that send window respectively.By using txSthe DINAck of index and reception, terminal upgrades the sequence number in each Parasites Fauna one by one.910, point to the index of the actual registers group be updated j, and point to the index of the last scan stop position mentioned subsequently i, be initialised.910,922,926 and 928, terminal from txSextremely txNsearch for the sequence number of asking in DINAck.If determine that terminal is scanned up to 926 txN, so it empties the Parasites Fauna shown in 924, then goes to step 2, otherwise it prepares the sequence number utilizing this sequence number update actual registers group.Sequence number can represent that it is appropriate to request retry or new grouping.Terminal, in 912 and 918 these two kinds of situations of difference, then processes in 914 and 920 respectively.If the sequence number in new transmission window (DINAck) also appears in old transmission window and it has identical position or its position in old window after newly-built window in old window and in newly-built window, so terminal can pick out the grouping that is associated with this sequence number by main frame by retry or repeating transmission are asked.Sequence-number field due to Parasites Fauna retains old transmission window, determine so complete this 912,918,916 by the Parasites Fauna of scanning after last scan stop position, until have found the Parasites Fauna with same sequence number or all Parasites Fauna scanned.If have found this Parasites Fauna 918, so as shown in 920, the grouping that this Parasites Fauna points to needs to be retransmitted defeated, and is moved to actual registers group with this full content that will be retransmitted in defeated grouping associated register group.Otherwise, as shown in 914, only the sequence number of request is written to actual registers group, and removes other fields of Parasites Fauna.In such a way, register variable is recalculated in the grouping that terminal need not resend for these.914, j is increased by 1 by terminal, and prepares to upgrade next Parasites Fauna.
Then, perform by terminal or its controller the step 2 reusing the outgoing management 900 of the sequence number abandoning grouping, it comprises sub-step 930 to 948.If the index in a few registers group is first confirmed as that whole position is empty and index in Parasites Fauna is subsequently non-NULL, so be associated with the sequence number in the Parasites Fauna be included in first be grouped in input manages (such as, the process 800 of Fig. 8) period is dropped, but they are now by host requests transmission.According to WUSB specification, version 1.0, terminal should use and abandon identical transmitting Sequence Number in groups of dividing into groups and transmit and the oldest availablely do not abandon grouping.In the step 2 of outgoing management 900, this moves to the Parasites Fauna first with sky index by terminal all variablees in the Parasites Fauna subsequently with non-NULL index except sequence number and realizes.930, check that the index of the first Parasites Fauna is to determine whether to have processed step 2.934 to 944, terminal searches first Parasites Fauna with non-NULL index.If determine do not have to find this Parasites Fauna 944, so terminal directly advances to step 3.948, the Parasites Fauna that first Parasites Fauna that the Parasites Fauna content except sequence-number field after this Parasites Fauna is moved to have sky index starts.
Then terminal performs step 3, comprises the sub-step 950 to 968 of method 900, to incite somebody to action indexSbe updated to the index of first synchronously first segmentation of grouping that will send.If in checking 950, the index of the first Parasites Fauna is not empty, so 960, indexSbe set to the index in the first Parasites Fauna, otherwise 958 it will be set to indexN.In the reformed situation of largest packet size as determined in 964, terminal preferably from indexSby segment encapsulation to becoming grouping.So, in this case, as shown in 968, indexNbe set to indexSand nbe updated accordingly.
By upgrading variable in the Parasites Fauna with sky index or additional packet information, index, length, segmentation and time, outgoing management 900 continues terminal or its controller performs the step 4 shown in Fig. 9 with sub-step 970 to 988.When largest packet size or MPS change, all Parasites Fauna are by the part preferably upgraded as outgoing management 900.Thus, as shown in 974, for the condition precedent of Parasites Fauna encapsulating packets is: this Parasites Fauna has sky index or MPS is changed.The grouping set be associated with these Parasites Fauna from indexNdata sectional.970, in order to determine time of occurrence easily to these new groupings, first terminal utilizes the equation Time(time)= t-P (N-1)calculate indexNsampling time of segmentation.Then, as shown in 988, by building up interval P to Time, determine the sampling time of follow-up data segmentation.This technology is avoided taking too many storer and is come for each point of segment record sampling time.Because T keeps by the sample record of a upper data sectional in a buffer, institute thinks almost do not depart from how many, and the balance that this technology also provides between complicacy and accuracy between the time of occurrence of grouping derivation below and real time of occurrence.
When encapsulation one grouping starts, terminal can determine time of occurrence and the index of its first segmentation.988, terminal will be gathered into grouping data sectional seriatim, and correspondingly advance time of occurrence and indexN, until the termination condition meeting step 4 maybe this grouping because check out the relation of the limit value of largest packet size or MIPS 980 and next data sectional can not be held.If reach MPS, then this terminal terminates encapsulating packets and advances to the encapsulation of next grouping until meet the termination condition of step 4.This termination condition is: complete the grouping of all requests or complete all segmentations in impact damper, and this checks 972 and 973.If indexNsegmentation afterwards has two intervals (that is, primary leading P and new interval NextP), then first nindividual segmentation has primary leading and subsequently nextNsegmentation has new interval.When the primary leading that terminal is used in 982 inspections finishes encapsulation segmentation, as shown in 984, terminal will nwith pchange into nextNwith nextPand calculate time of occurrence.Sub-step 986 ensures that two segmentations with different interval are not encapsulated in a grouping by terminal.If main frame is supported in two different interval in a grouping, so sub-step 986 can be cancelled and not affect any other function.
990, terminal action is got up and is performed step 5 by sending the encapsulating packets (that is, the grouping in the current of terminal or new transmission window) that represented by the Parasites Fauna with non-NULL index.998, outgoing management 900 terminates.In fig .9, " buffer [IndexN]" represent and be stored in the of impact damper indexN+lwith indexN+216 integers in individual byte, and " i:j" represent from iarrive j.Further, " SUM(Reg [0: j-1] .Seg) " represent from Parasites Fauna 0 to Parasites Fauna jthe summation of segmentation in-1.
Figure 10 is shown in the result 1000 in a relative simple experiment, achieves the buffer management method described with reference to Fig. 3-9 in this experiment.In experiment 1000, as shown in 1010, the size of impact damper is s=6000 bytes, MPS=600 byte, MBS=4, and MaxSeq=8.In addition in experiment 1000, the interval between continuous 2 data sectionals is 1 millisecond and skyborne service intervals is 4 milliseconds.In each service intervals, 4 data sectionals are written in cyclic buffer.Constrained input occur once in a service intervals and yes-no decision occur.Note, under general case, each service intervals of constrained input can occur more than once.The block being included in the number of 1020,1030,1040 and 1050 in shown impact damper represents the cushion space that valid data segmentation occupies, and the length of described valid data segmentation equals the numeral (such as byte number) comprised.Empty or the unnumbered part of impact damper represents the empty buffer space for terminal.
The experiment 1000 of Figure 10 represents the implementation of the management method of constrained input shown in Fig. 8 and 9 800 and 900.Specifically, test 1000 encapsulation of WUSB synchronously being divided into groups by step or layer 1010-1050 process, abandon old grouping and correctly and easily reuse their sequence number.When arranging or reset terminal, carry out initialization 1010.Variable: indexS, IndexN, IndexE, T, N, NextT, NextNwith nextPbe set to zero.Because the chronomere of WUSB is 1/8 millisecond, P is set to 8(1 millisecond).Parasites Fauna indexwith seqbe set to empty and other variable is set to zero.After initialization, terminal enters idle condition.Step 1020-1050 describes four constrained input management.The step on the left side of 1020-1050 be for input management and step in right for outgoing management.1020 input management in write request by terminal from idle state transition to input state.In the time t'=25, there is interval p 'four data sectionals of=8 are imported in cyclic buffer.Because pequal p', so tbe updated to t'(25) and nincrease n'(4). indexEmove on to the ending of these data sectionals.After input operation terminates, terminal turns back to idle condition.
When accepting WdtCTA and DINAck, terminal enters output state.In the outgoing management of 1020, after rotating transmission window according to DINAck, txSbe 0 and txN4.Due to host requests four newly grouping, so only the sequence-number field of Parasites Fauna is updated to 0,1,2,3 in the step 1 of 900.Because the grouping do not abandoned in four groupings, so step 2 does not do any work.In step 3, because reg [0]index be empty, so indexSbe updated to indexN(0).In step 4, terminal at 970 initialization Time to 1, and assemble from indexN(0)data sectional.Once have successfully completed the gathering of data sectional, it will indexNadvance this data sectional length and be Time increase P, to follow the tracks of time of occurrence with one.Because the restriction of MPS, a grouping only can hold a data sectional.Finally, all data sectionals in this cyclic buffer are packaged in four asked groupings.Thus, indexNbe moved to indexE, the number of the data sectional do not encapsulated, N is reduced to 0, and the field of four Parasites Fauna is updated.
Have sent in steps of 5 these grouping after, terminal turn back to idle condition until as 1030 be shown in T=57 the next one input.In the outgoing management of 1030, DINAck illustrates that the grouping with sequence number 0,3,4,5 is requested.After transmission window rotates txSbe 0 and txN6.In step 1, search the grouping with sequence number 0 and 3 to resend. reg [0]with reg [3]content be copied to respectively reg [0]with reg [1].Because the grouping with sequence number 4 and 5 is new groupings, so reg [2]with reg [3]sequence number be set individually 4 and 5, and index field is set to sky.In step 3, indexSbe set to reg [0] .Index(0).In step 4, because reg [2]with reg [3]empty index, so assemble, there is the grouping of sequence number 4 and 5.In the circular buffer, two data sectionals are left and do not take apart.In the input management of 1040, buffer overflows occurs.Except sequence number, the grouping associated with Reg [0] is dropped and Reg [0] is eliminated. indexSbe advanced to Reg [1]. indexto discharge Reg [1]. indexbuffer space before.In the outgoing management of 1040, request has sequence number 3,4, and the grouping of 5 is with retry, and also request sends the grouping with sequence number 6.
In step 1, the content of Reg [l], Reg [2], Reg [3] is moved on to Reg [0], Reg [l] and Reg [2] respectively, and Reg [3]. seqbe set to 6.Because ask to divide into groups in the grouping that do not abandon, step 2 does not do any change.In step 4, new grouping is aggregated.In the input management of 1050, impact damper is overflow again.The grouping associated with Reg [l] with Reg [0] is dropped.In the outgoing management of 1050, request has the grouping of sequence number 4,5,7,0.After transmission window rotates, txSbe 4 and txN1.The grouping that step 1 determines to have sequence number 4 and 5 is two packet retransmission and other grouping is new grouping.The content of Reg [l] and Reg [2] is moved to Reg [0] and Reg [1] respectively, but the field in Reg [1] except sequence number is eliminated in input management.Reg [2]. seqwith Reg [3]. seqbe respectively set to 7 and 0.In step 2, because the empty index of Reg [0] represents that the grouping with sequence number 4 is dropped, so the content except the Seq of Reg [l], Reg [2] and Reg [3] is moved to Reg [0], Reg [l], Reg [2] to re-use sequence number 4.Thus, the Parasites Fauna that the original packet with sequence number 5 is associated changes to Reg [0] from Reg [1] and changes its sequence number is 4.In addition, in step 4, because Reg [l]. indexbecome empty, thus the grouping with sequence number 5 be considered to new grouping and from indexNassemble.
In addition, in identical starting condition, Figure 11 represents to have step or the more complicated experiment 1100 of layer 1110 to 1150.Experiment 1100 is from 1110, and it is the done state of 1020 in experiment 1000.In experiment 1100, interval and largest packet size are dynamically altered.Main frame uses the outer mechanism of band such as to come to notify in this example that the application software associated with terminal goes to change section gap to 2 milliseconds.Then, 1120, terminal is with new interval p'=16 produce segmentation and write this segmentation.Because p(8) be not equal to p', so nextP, NexlTwith ncxtNrecord current p', T'with n'.Because new interval becomes the twice of primary leading, therefore n'reduce half.In the outgoing management of 1120, terminal uses new interval nextPwith relevant nextT, NextNto derive using up the time of occurrence after the data sectional with primary leading.
After main frame have received last segmentation with primary leading, largest packet size is changed to 1200 bytes (such as, instead of as restriction) by its request terminal.At the outgoing management of 1140, terminal changes MPS.The packet retransmission with sequence number 5 and 6 is utilized new MPS Reseal.Their time of occurrence is also recalculated.Note, because there is no sufficient data sectional in impact damper, so the grouping with sequence number 7 is shortened and the grouping with sequence number 0 is left and does not take apart.In steps of 5, because Reg [3]. indexbe empty, therefore terminal only sends three of associating with Reg [2] with Reg [0], Reg [l] and divides into groups.In next affairs 1150, retry has the grouping of sequence number 7 and 0, and terminal continues gathering and has the grouping of sequence number 7 until it cannot hold next grouping again, then assembles the grouping with sequence number 0.In this experiment 1100, the buffer management method shown in constrained input management method 800 and 900 described elsewhere is in the dynamic change at this also extraordinary support largest packet size (MPS) and interval.Therefore, this buffer management method is suitable for the synchronous IN terminal of WUSB and merges this type of terminal and even those have dynamic exchange and can the equipment of the terminal of upgrade feature continuously.
Although describe and illustrate the present invention with specifics to a certain degree, but should be understood that, this instructions is illustrated only by example, and those skilled in the art are not when departing from the spirit and scope of the invention of following requirement, the many changes in the combination and permutation of each parts can be taked.Buffer management method described above typically uses the Parasites Fauna quantitatively equaling maximum block transfer size or MBS, for each WUSB sent in window synchronously divides into groups to preserve additional information, and along with each transmission renewal register.Relative in WUSB specification, version 1.0 and the example provided in appended Fig. 2, this technology saves the amount of memory supported required for synchronous IN terminal significantly.Buffer management of the present invention provides grouping to be associated with sequence number and to work as how to abandon data when end buffer is in overflow (by experimental check as shown in FIG. 10 and 11 or prove effective) and the detailed operation re-using sequence number.An advantage of the buffer management method described in this document be this new method simply and reposefully (as shown in figure 11 experimental check) support the dynamic change at largest packet size or MPS and interval.

Claims (10)

1. a buffer management method, comprises:
Synchronous IN terminal is provided in radio universal serial bus (WUSB) equipment;
In the storer of radio universal serial bus equipment, for IN terminal provides impact damper;
In the storer of radio universal serial bus equipment, provide multiple Parasites Fauna;
The write request to data sectional is received at IN terminal;
Store data sectional in a buffer;
One of Parasites Fauna is linked to some continuous print data sectionals; And
For sending each grouping of asking in window, determine that the preparation in the Parasites Fauna of each link has the additional packet information required for grouping of radio universal serial bus synchronous form.
2. method according to claim 1, after being also included in data sectional storage, abandons the oldest data sectional when impact damper is in overflow state.
3. method according to claim 2, wherein uses Parasites Fauna and pool of buffer device index to perform and abandons.
4. method according to claim 1, is also included in synchronous IN destination county and receives to specify and send the sending request of window, and will send the serial number assignment of asking in window to the Parasites Fauna of correspondence according to the order of transmission sending window definition.
5. method according to claim 4, wherein the distribution of sequence number is included in send in window and distinguishes retransmission sequence number and reuse the sequence number abandoning grouping.
6. method according to claim 5, wherein utilizes Parasites Fauna to perform difference and reuses.
7. method according to claim 1, wherein link comprises the index storing the continuous data segmentation starting position be in a buffer associated in the register bank.
8. method according to claim 1, the sequence number of data sectional of the time of occurrence that the data sectional that wherein additional packet information is included as storage is derived and storage, total length and number.
9. method according to claim 1, wherein the number of Parasites Fauna equals the maximum block transfer size for synchronous IN terminal definition.
10. method according to claim 1, wherein additional packet information link and determine according to buffer index, Parasites Fauna and auxiliary variable perform, in order to support the dynamic change of largest packet size or the time interval.
CN201210075495.5A 2007-01-30 2007-01-30 WUSB (wireless universal serial bus) isochronous buffer management in endpoint Expired - Fee Related CN102693206B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210075495.5A CN102693206B (en) 2007-01-30 2007-01-30 WUSB (wireless universal serial bus) isochronous buffer management in endpoint

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210075495.5A CN102693206B (en) 2007-01-30 2007-01-30 WUSB (wireless universal serial bus) isochronous buffer management in endpoint

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200710007913.6A Division CN101237445B (en) 2007-01-30 2007-01-30 Buffer management for wireless USB synchronization at end point

Publications (2)

Publication Number Publication Date
CN102693206A CN102693206A (en) 2012-09-26
CN102693206B true CN102693206B (en) 2015-06-24

Family

ID=46858667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210075495.5A Expired - Fee Related CN102693206B (en) 2007-01-30 2007-01-30 WUSB (wireless universal serial bus) isochronous buffer management in endpoint

Country Status (1)

Country Link
CN (1) CN102693206B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106533976B (en) * 2016-11-07 2019-12-06 深圳怡化电脑股份有限公司 data packet processing method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AGERE等.WIRELESS UNIVERSAL SERIAL BUS SPECIFICATION.<<WIRELESS UNIVERSAL SERIAL BUS SPECIFICATION>>.2005, *

Also Published As

Publication number Publication date
CN102693206A (en) 2012-09-26

Similar Documents

Publication Publication Date Title
CN101237445B (en) Buffer management for wireless USB synchronization at end point
US5606559A (en) System and method for an efficient ATM adapter/device driver interface
JP4205181B2 (en) Method and apparatus for burst transfer of ATM packet header and data to a host computer system
US6871237B2 (en) System for controlling data transfer protocol with a host bus interface
US5475681A (en) Wireless in-building telecommunications system for voice and data communications
US5961626A (en) Method and processing interface for transferring data between host systems and a packetized processing system
JP3172387B2 (en) I / O communication subsystem and method
US5745790A (en) Method and apparatus for reporting the status of asynchronous data transfer
EP0752665B1 (en) Method and apparatus for coordinating data transfer between hardware and software
US20060268936A1 (en) Communication apparatus and method thereof
EP0130206A1 (en) Method and apparatus for bus contention resolution.
CN114745451B (en) Data transmission method and device, electronic equipment and computer readable medium
CN111416778B (en) Single serial port gateway platform for multi-device Internet of things
CN115357535A (en) Virtual serial port design method and device
WO2005046146A1 (en) Method, system, and program for constructing a packet
US7069407B1 (en) Method and apparatus for a multi-channel high speed framer
CN106407151A (en) Information processing method and device
CN101699421B (en) Method and server for sharing serial port
US6052387A (en) Enhanced interface for an asynchronous transfer mode segmentation controller
CN102693206B (en) WUSB (wireless universal serial bus) isochronous buffer management in endpoint
CN101212480A (en) Method and apparatus for communication between universal serial bus (USB) host and USB device
JPS6138510B2 (en)
JPS62125734A (en) Hierarchy type decentralized control system
CN110765044B (en) Data packet transmission device and system
US6178462B1 (en) Protocol for using a PCI interface for connecting networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150624

CF01 Termination of patent right due to non-payment of annual fee