This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

converting USB2 to full duplex

Hi-

I am looking for a solution to convert a USB2 trasnceiver to full-duplex so I can drive and receive from a full duplex physical medium while carrying the USB2 protocol. 

              Physical media

                    tx----->rx

USB2<--> |               |<----->USB2

                    rx<-----tx 

Thanks,

  • sorry, but there is no specification for full duplex on USB2, try with USB3

  • is there a way we can drive/receive from a full duplex active link with USB2 (and still be compliant w USB2)?

    Someone suggested using a ULPI transceiver but I am not sure how the parallel I/O of ULPI could drive or receive from my full-duplex active link.

    Thanks

  • To start off, no, sorry it can not be done with USB 2.0 specifications.  Now the Why it can't be compliant.

    Refer to http://en.wikipedia.org/wiki/Duplex_%28telecommunications%29

    USB uses ( at all 2.0 and lower ) what is called half duplex, it sends from one device and the other waits patiently, processes and when there is the appropriate break, sends back while the originator waits.  From my understanding of the USB 2.0 specification, it can not do full duplex ( both can send at the same time ).

    This does not preclude you being able to set host/slave to both send and receive at the same time, just that it is not in compliance with 2.0 standard.

    The other reference to USB 3.0 can be more informative if you read this page http://en.wikipedia.org/wiki/USB_3.0

    One ' old school ' way that still works and has as high a speed ( sometimes faster ) is the LPT bidirectional cable link that was popular with the software " Lap Link " and further expanded with Microsoft Direct Parallel Port Connect.  I admit it is one big ugly connector to use ( the DB25 has yet to slim down after all these years ) and it is high speed parallel so you know each transfer is at least 4 bits wide each direction.

    The COM port on many PCs, Laptops, etc ( even with the usb to RS232 to some extent, just not all drivers for the USB version support it ) can also give full duplex when properly connected making it down to the host/client software doing the communications directly over the port rather than the drivers handling the calls to/from the port and deciding to send " ACK " ( or equivalent ) per packet of data.

    Hope all this does not obfuscate the issue you are working on,

    Eric

  • I think it depends on the data rate you are trying to achieve. USB is generally a command and response protocol. The device can never send anything unless the host asks for it. However full duplex is simulated with the host polling the device frequently. The USB to Serial Adaptors depend on this. You could wire two USB to serial adapters back to back to test.

    PC1 <-USB-> Adapter1 <-serial -> Adapter2 <- USB -> PC2

    Not clear if you are using USB as host or device.

  • I am hoping it would still function as half duplex between the two USB2 endpoints (one Host and the other device or hub). There would be two links (full-duplex) but only one link in either direction would be used at a time. I would want to retain the same architecture and enable the driver on one end while disabling it on the other- same as standard USB2 on copper with the difference that instead of driving and receiving data on copper it would do that on the full-duplex links (one direction at a time).

    The input to the medium transmitter (one on each side) is a 100ohm differential input, and the output of the receiver (one on each side)  drives 100ohm differential as well.

    Essentially there would be some additional gate delays associated with this medium transmitter and receiver.

    thanks,

  • It sounds like you may want to do what was done in the old days of dial up and " shotgun " 2 usb ports.

    Both end devices handshake and communicate, then to get data one way each USB, the software at each end would respond only on that device to the other pc.

    In dial up, one modem would be the out to web pages and include all possible ip addresses assigned for the return ( thus the shotgun aspect ) and the dialing out pc would need 1 phone line per modem to connect via some server for getting all those IPs and all that data as fast as several 14.4/28.8 modems could handle

    Now days the system uses router, DSL modems etc to achieve the same kind of results.

    So back to your project with USB 2.0 standard ( and wanting to keep it compliant ).  Yes, using 2 separate devices, having software keep the flow control as always polling one, sending through the other is a way to ' fake ' full duplex.  The software at each end would slow it down a little tho and you would have to have both agree which is to device and from device then speed up the data transfers.  I would recommend PC side, lowest on the device chain as send, higher up ( 2nd connection as the PC sees it ) as recieve and have the device able to ' swap ' which is which as software ( and error handling if one of the 2 lines drops ie unpluggs )

    Get enough people looking at an issue you end up with more possible solutions than you may have wanted ;)

    Hope this helps,

    Eric