??? 03/14/10 02:31 Read: times |
#174123 - Don't blame the PC for solving wrong things with USB Responding to: ???'s previous message |
A UART does work for fixed-data rate asynchronous data.
A USART does work for fixed-data rate synchronous data. No difference - just a back-end bus with enough bandwidth, and a FIFO to let the PC burst the data. When discussing USB-to-serial or USB-to parallel you really have to separate issues with USB from your issues with a PC. Remember that USB has a 1ms cycle time, so it will not be able to match the reaction times of the handshake lines of a native serial port. That is a limitation of the USB bus, and not of the PC it is connected to. Use a PCI-connected serial port if you want lower latency. And same thing with a USB-to-parallel interface. It is not an adapter that gives a compatible Centronics interface. It is a USB-to-printer interface, and it only works with standard drivers and standard printers. Programs expecting direct access to the signals will fail since the interface just can't transfer the commands with zero lag. But while a USB-connected interface does suffer from latencies because of the design of the USB protocol, it can still manage quite high synchronous data rates with a bit of buffering in the USB device. The PC can't guarantee us reaction times to everything that happens, but stepping back into the ms range, it can do very well. And it doesn't take much memory for a FIFO to span milliseconds. I can stream bluray HD video continuously without any problems. 30GB of data to be played in 2 hours is 4MB/S OR 32Mbit/s. The peak requirements are higher. By the way: if you do want 45Mbit/s - don't use 12Mbit/s USB. 480Mbit/s does have the bandwidth to keep a FIFO filled with capacity to spare. Windows manages to push > 30MB/s continuously. 40MB/s if switching from USB to 400Mbit/s FW. |