打印

USB的数据包问题

[复制链接]
2825|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jawish|  楼主 | 2011-2-25 00:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假如我要使用USB高速传输传输一幅图片,把他的信息放在端点二那里,但USB传的都是包的形式,哪么我这个包怎么大啊?我个人的理解就是把数据放在端点那里就可以了,其他的就是设备来读取这个端点,这样对不对啊?还有,如果我要把视频提取出图片信息和声音信息,哪么我要怎么大包,才能把这两者一起传输出去啊?谢谢各位前辈啦。。。。(知道其他个别问题的也帮我回答一下,我现在被包搞晕了,书上讲的都是USB包的格式,没讲怎么用)

相关帖子

沙发
computer00| | 2011-2-25 00:14 | 只看该作者
每包大小是固定的。你要自己做个通信协议来传输

使用特权

评论回复
板凳
Jawish|  楼主 | 2011-2-25 10:23 | 只看该作者
不好意思,打错字了,是打包,不是大包,就是AVIINFO里有一个MaxTransferSize,传输我是这样设置的,ULONG nUsbSendSize = Header.bmiHeader.biWidth * Header.bmiHeader.biHeight;
lpbuff=(BYTE *)this->m_aviFile .aviGetStreamFrame(frameIndex);
lpbuff+=40;最后传输出去的是(lpbuff,nUsbSendSize),我就不知道音频跑那去了?麻烦圈圈帮我看看,你那本书我买了,用的是D12,我这个开发板用的是FX2的,谢谢了。。。。

使用特权

评论回复
地板
computer00| | 2011-2-25 10:28 | 只看该作者
你这里是设备的代码还是主机的代码? 是音频输入设备还是音频输出设备?

使用特权

评论回复
5
Jawish|  楼主 | 2011-2-25 10:33 | 只看该作者
主机的代码,PC机提取avi信息,发给FX2。

使用特权

评论回复
6
computer00| | 2011-2-25 11:22 | 只看该作者
既然是直接读取的avi文件,那你要下面收到文件后,解码出来才能拿到音频和视频数据

使用特权

评论回复
7
Jawish|  楼主 | 2011-2-25 11:59 | 只看该作者
不是直接读取AVI文件,是利用MFC编辑上位机软件,利用软件分别提取出AVI视频的图像和音频,然后MFC获取端点和管道,再然后把图像(包括大小,像素点,24位RGB)和音频一起传输出去,我不懂的是如何把这些分离的数据(图像和音频)放到一起传输出去。(就是如何把图像和音频打包到一起)

使用特权

评论回复
8
computer00| | 2011-2-25 12:56 | 只看该作者
那你可以自己定义一个格式,加个包头,用来区别音频和视频数据。

使用特权

评论回复
9
Jawish|  楼主 | 2011-2-27 08:45 | 只看该作者
圈圈,我想问一下,一幅bmp图像的信息有这么多(BITMAPINFO Header;
                memset(&Header,0,sizeof(BITMAPINFOHEADER));  

                Header.bmiHeader.biBitCount=bih->biBitCount ;  
                Header.bmiHeader.biSize  =  sizeof(BITMAPINFOHEADER);  

                Header.bmiHeader.biWidth  =  fileinfo.dwWidth;  
                Header.bmiHeader.biHeight  =  fileinfo.dwHeight;  
                Header.bmiHeader.biPlanes  =bih->biPlanes;
                Header.bmiHeader.biCompression  =BI_RGB;  
                Header.bmiHeader.biXPelsPerMeter  =  0;  
                Header.bmiHeader.biYPelsPerMeter  =  0;
                BITMAPFILEHEADER stFileHdr;
                stFileHdr.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
                stFileHdr.bfSize=sizeof(BITMAPFILEHEADER);
                stFileHdr.bfType= ((WORD)('M'<< 8)|'B');
)如果我要通过USB传输出去的话,那主要要传那些信息设备那边出来后才能正常显示一幅图像啊?谢谢咯。。。。

使用特权

评论回复
10
computer00| | 2011-2-27 12:05 | 只看该作者
那要看你的设备那边是怎么处理的啊…………它需要什么格式的数据,你就按同样格式的数据发给它就行了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

29

帖子

0

粉丝