USB通讯速度的问题

2019-03-23 18:25发布

我们公司在做身份证读卡器,有蓝牙型,有USB型。
现在USB型有点问题。读取速度慢的时候没问题,
快了就会出现丢包现象。
USB_Configurage();              //开启USB时钟    USB_Interrupts_Config();        //设置中断优先级2.0
    Set_USBClock();                 //USB时钟设置
    USB_Init();                     //USB接口初始化
    //IWDG_Feed();
                USB_Send_Buf[0]=0xaa;
                USB_Send_Buf[1]=0xaa;
                USB_Send_Buf[2]=0xaa;
                USB_Send_Buf[3]=0x96;
                USB_Send_Buf[4]=0x69;
                USB_Send_Buf[5]=0x00;
                USB_Send_Buf[6]=0x03;
                USB_Send_Buf[7]=0x20;
                USB_Send_Buf[8]=0x01;
                USB_Send_Buf[9]=0x23;
                for(i=0;i<1000000;i++);
                for(i=0;i<1000000;i++);
                for(i=0;i<1000000;i++);
                for(i=0;i<1000000;i++);
                //for(i=0;i<1000000;i++);
                for(j=0;j<100;j++)
                {
                        EP1_SendData(USB_Send_Buf);
                        for(i=0;i<100000;i++);
                }
部分程序如上。
当for(i=0;i<1000000;i++);时,数据一次也不丢。
当for(i=0;i<100000;i++);时,时间缩小10倍,数据丢的很严重,一半多。
见图:
1.jpg
数据发送100次,只收到48次。
请高手指教,谢谢!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
le062
1楼-- · 2019-03-23 22:36
/ usb不是串口,它的数据必须按照约定好的格式打包后一起发送
chenbingjy
2楼-- · 2019-03-24 02:31
谢谢!我是打包后一起发送的。
原来配置描述符里最大包长为48个字节,我修改为256以后,快了不少。
我试了,257就不对了。
是不是256是上限了?
还有一个问题,有人问你说发送数据时,要判断发送完成接着发下一帧数据。
请问如何判断何时发完?谢谢!
lidonglei1
3楼-- · 2019-03-24 03:44
 精彩回答 2  元偷偷看……
chenbingjy
4楼-- · 2019-03-24 07:32
2.jpg HID设备。
先上图:这个图我感到有疑惑。左上角显示256,可是下面只列出32个数据。难道只发出32个数据吗?谢谢!
白丁
5楼-- · 2019-03-24 12:52
chenbingjy 发表于 2015-11-2 15:48
谢谢!我是打包后一起发送的。
原来配置描述符里最大包长为48个字节,我修改为256以后,快了不少。
我试 ...

一般系统包长在128KB
chenbingjy
6楼-- · 2019-03-24 13:17
 精彩回答 2  元偷偷看……

一周热门 更多>