
Software receiving these reports would thus be able to reconstruct very precisely (within one bit time) the exact timing of incoming data.

When no data is being transmitted, FF pacing characters would be sent every 30 (or 14) bit times. The second byte would have the MSB clear and contain the remaining 7 bits of data. The first byte would have the MSB set, report the MSB (or two MSB's if 9-bit) of the incoming data in the next bit(s), and use the bottom 5 (or 4) bits to report amount of time (0-30 or 0-14) since the middle of the previous byte's stop bit (measured in units of e.g. If your PC can receive data at twice your desired data rate, you could have a microcontroller receive bytes of data and for each byte send out two bytes.


The UARTs historically found on typical PCs have only been able to record accurate timing information or capture 9-bit data by having the processor grab each byte as it arrives, without buffering later operating systems and drivers are generally not equipped to do that, and UART-to-USB chips are hopeless in that regard. Depending upon your exact requirements, it may be helpful to use a microcontroller which can capture and time-stamp the data and then forward it to the PC.
