打印

68013数据传输请教,大家帮忙看看吧,谢谢啦

[复制链接]
1293|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ju_by@126.com|  楼主 | 2014-7-18 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果我想利用USB传输600*800个字节,怎么能保证数据都准确无误传输到上位机呢?有两个问题,一个是,不是512的倍数(这个问题我可以补充数据来完成,或者制定一个协议可以解决),再一个问题是,我512个字节上传一次的话,依次顺序上传,上位机512字节一读取,中间会有漏掉数据的情况吧?这样上位机接到的数据就不足600*800字节了,这种情况应该怎么处理呢?

请大家指点一下!~~~
沙发
USB-Emily| | 2014-9-10 10:29 | 只看该作者
如果你利用cyapi来做上位机的话,在pc端分配的接收buffer默认为maxpacketsize的8倍,(maxpacketsize 针对bulk传输的话,在descriptor中设置为512);
cyapi的endpoint类里面有个 setxfersize的函数,可以用这个函数更改buffer大小,后经过setxfersize,可以设置不是512 倍数的buffer size

第二个情况,为什么会漏数据呢? 你是指速度不匹配, 漏数据吗?
一般USB 数度完全可以及时读走并行口传来的数据,并且每个端口都有buffer可以设置,不会又漏数据现象

使用特权

评论回复
板凳
yubsh| | 2014-9-11 09:47 | 只看该作者
一般应该在固件里把大数据分成多个块分别传输,最后一包不足512也是可以的。
上位机用一个传输语句就可以拿到全部数据,驱动程序会把整个大块数据接受到。
我个人认为,你在上位机约定一次取到多少个字节是不恰当的,也是没有必要的。

使用特权

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

本版积分规则

4

主题

20

帖子

0

粉丝