Hi ramananb and JulianC,
Sound like you are making a USB repeater (extender) over the laser link.
Then, you may be aware of these rules on USB transactions.
1. The first packet (Token phase) of every transaction (including SOF) is initiated by the host side.
2. The direction of the second packet (Data phase), and the third (Handshake phase), if any, is determined by the type of the token packet.
3. The timing of packets in a transaction are tightly tied by the requirement of bus turn-around time/ inter packet delay
Refer to these section of the USB2.0 spec (usb_20.pdf,
http://www.usb.org/developers/docs/usb_20_071411b.zip )
7.1.18.2 High-Speed Bus Turn-around Time and Inter-packet Delay
7.1.19.2 High-Speed End-to-end Delay
7.1.14.2 High-speed Hub Signaling Timings
You may also be aware of bus events
a) Bus idle
b) Bus reset and high-speed chirp
c) Resume
A ULPI (or UTMI+) transceiver chip will make your life easy. It decodes bus signaling of USB into a 60MHz parallel bus. A FPGA splits the timing for the laser link TX/RX.
+---> Laser link TX >---+
USB (upstream) ---- ULPI === FPGA FPGA === ULPI ---- USB (downstream)
+---< Laser link RX <---+
Digikey sells SMSC and TI transceiver chips
ULPI and UTMI+ specifications
http://www.ulpi.org/documents.htmlTsuneo