阅读:1501回复:12
用USB传输实时数据
硬件用的是D12和51,采用ISO的传输方式,驱动用的是从DDK iso范例代码改过来。
用来传输语音,实时性要求比较强。上行已经OK,下行现在遇到了问题。 因为51的内存太小,所以如果写得太快会丢失掉很多数据。 我想问问有没有人USB等时流传输的? |
|
沙发#
发布于:2003-07-12 15:53
你可以试着在外围加一个FIFO,看看数据还会不会丢了。
|
|
板凳#
发布于:2003-07-12 16:07
准确地说,应该是声音抖动很厉害,基本没有办法分辨。
数据用的是g.711压缩的,8byte/ms Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Isochronous wMaxPacketSize: 0x0040 (64) bInterval: 0x01 Endpoint Descriptor: bEndpointAddress: 0x02 Transfer Type: Isochronous wMaxPacketSize: 0x0040 (64) bInterval: 0x01 我想是不是应该在驱动里面加一个缓冲区 |
|
地板#
发布于:2003-07-12 16:13
如果说没办法分辨,你怎么确定是你传的音频信号啊,再说不是在驱动里加缓冲区,应该是在固件中的,我不知道D12的固件里能不能开缓冲区,我用的是CY68013。
|
|
地下室#
发布于:2003-07-12 16:40
D12的endpoint 2有一个透明双缓冲。
主要问题是51没有扩,只能有64byte的缓冲。 |
|
5楼#
发布于:2003-07-12 16:42
所以啊,用硬件实现缓冲还是比较好的嘛。
|
|
6楼#
发布于:2003-07-12 16:48
应用每次要发80byte下去,很麻烦!
|
|
7楼#
发布于:2003-07-12 17:09
那位搞过在ISO通道里面传输语音的?
|
|
8楼#
发布于:2003-07-13 15:37
看来国内没有几个人搞 ISO ,只有搞简单的 bulk 。
|
|
9楼#
发布于:2003-07-14 08:16
我们用BULK同样能实现实时图像的传输啊,怎么不可以呢?
|
|
10楼#
发布于:2003-07-14 11:30
如果同一个口有ISO传输,bulk的传输得不到保障。
你们用的是什么片子?cypress的东西? |
|
11楼#
发布于:2003-07-14 12:27
那为什么不干脆只用BULK呢?我用的是CY68013,呵呵。
|
|
12楼#
发布于:2003-07-14 13:07
我现在想改用AN2131了,有人用过吗?
|
|