A PC has usually got an operating system that will serve several different processes quasi-parallel (look into your task manager)
This will hinder a contineous data stream accepted from the PC side. When the data width and thus the precision is 8 bits you will get a transfer-rate of 0,5 MB/s which is well within the transfer-rate of USB 2.0. With techniques as double buffering and DMA on the PSoC side you might be able to reach your wanted performance.
The USBUART is Full Speed, 12 Mb/s, so possibly could handle 12 bits
at a 1 MB/s rate.
USB UART is ruled out because the sample rate is to high,
Build a protocol to handle that problem......?
Do you need this to be sychronous over the local net ?
Related Application Notes and Example Projects
USB Peripheral Basics - AN57294
PSoC® 3 / PSoC 5 USB HID Fundamentals - AN57473
PSoC® 3 / PSoC 5 USB HID Intermediate - AN58726
USB Bulk Loopback With PSoC® 3 - AN56718
USB Vendor Commands with PSoC® 3 - AN56377
Interrupt Loopback - PSoC® 3 / PSoC 5
Isochronous Transfers in PSoC® 3 / PSoC 5
On host side, at least you have to write a descriptor for your device and use the OS drivers APIs in your application. I know some litterature on this and at least the following pointers could be usefull :
- USB Descriptors, the whole site is interesting
I think, the throughput with USB-FS in Bulk mode is OK (effective throughput of 1MB/s > 0.75) if you pay attention to limit protocol overhead but there is no guarantee of latency (the host can send IN packet whenever it wants). Latency could conduce you to implement some buffering on device and accept to hazardously loose some data. At least you should be able to detect when it happens. Perhaps, you can implement some compressions depending on your signal characteristics and make a feasability.
I would if I had ended up using my PSoC to solve the problem. In the end since this was for getting data inside of the lab and not the field, so we ended up going with some data aquistion tools that we had already developed.