阅读:1293回复:9
D12的简单问题2,会者不难,谢谢!
一个概念性的小问题:
使用端点2传输数据,例如单片机发送数据,PC机接受数据。 如果由于某些原因PC机接收速度比较慢,跟不上单片机发送数据的速度。 那么数据会不会因此而丢失? 也就是说,在PC机来不及接收的时候,单片机是否还是不断往USB的数据缓冲区写数据,从而把来不及接收的数据覆盖了。 |
|
|
沙发#
发布于:2003-08-28 15:13
当然会丢失了,你可以在D12前加个FIFO缓冲一下啊,不过问题是为什么你的PC机端会读的很慢呢?
|
|
板凳#
发布于:2003-08-28 15:26
to flytomoon:
谢谢。 请问PC机成功读取USB的一次数据时是否有标志位表示读取成功?现在的做法是在产生中断后发送数据,就可以做到同步。这样做不是很方便。如果有标志位就方便多了。 请问FIFO缓冲具体如何做呢,我还不大明白。 我们做的是实时通讯,PC机读取数据后还要画图,所以速度比较慢。呵呵,见笑了。 |
|
|
地板#
发布于:2003-08-28 15:30
别的先不说,用D12作实时传输,你传什么啊,是图像?不行把老兄! :
|
|
地下室#
发布于:2003-08-28 15:43
flytomoon :
我传的是一些数字而已,然后根据数字大小画一些线。 |
|
|
5楼#
发布于:2003-08-28 15:47
是这样啊。前面价格FIFO可以减慢从单片机送给D12的数据的速度,让你的PC可以尽可能的不丢数。
|
|
6楼#
发布于:2003-08-28 15:51
flytomoon:
假设单片机发送一次数据的时间是1ms,那么发送1000次就需要1000ms。 PC机接收一次数据的时间是2ms,那么需要2000ms才能接收完毕。那么在2000ms时,PC机接收到全部数据了,还是只接收到500次数据? 还是麻烦说说怎么控制同步吧,FIFO缓冲怎么做的呢?感谢! |
|
|
7楼#
发布于:2003-08-28 16:27
有专门的FIFO的芯片!
|
|
8楼#
发布于:2003-08-29 17:35
谢了。
结贴给分。 |
|
|
9楼#
发布于:2003-08-30 10:52
看来你是硬件高手而非软件能手了,其实你完全可以在上位机开两个线程,一个用来接收数据,一个用来处理不就结了,不用想那么多办法了。
|
|
|