USB传输过程中数据掉帧的问题

2019-03-26 07:47发布

系统采用60HZ的速率传输,在传输4-5帧后就会丢掉20帧的数据;采用120HZ的速率传输,在传输4-5帧后就会丢掉40帧的数据。截图如下(每组数据的第三位为帧号,可以看到从132帧跳到了172帧,且传输4帧后从175帧跳到了215帧) 1.jpg
硬件为Freescale公司的MKL25Z128VLH4芯片和Atmel公司的SAMA5D31微控制器,两者之间的连接方式为USB连接。KL25作为发送端,其数据发送过程调用的函数均为系统本身生成,发送端整个过程为:1、调用 USB_Class_Mems_Send_Data 函数用于发送数据;2、USB_Class_Mems_Send_Data 函数调用 USB_Desc_Get_Endpoints 函数返回非控制端点信息3、USB_Class_Mems_Send_Data 函数调用 USB_Class_Send_Data 函数在收到指令时调用设备发送数据       4、USB_Class_Send_Data 函数调用 USB_DCI_Send_Data 函数配置控制器通过设置BDT在发送端点发送数据SAMA5D31微控制器作为接收端,过程为:1.   打开设备sprintf(strbuf,"/dev/hmcd-usb%d", 0);fd0 = open(strbuf, O_RDONLY);2.   设置频率(通过控制模式向下发送到MCU)ret=ioctl(fd0,USB_HMCD_START_SINK_120HZ,NULL);//USB_HMCD_START_SINK_120HZ=0x643.   进入while(1)连续读取数据count = read(fd0, inbuffer,460);//inbuffer[500]={0};从fd0中读取460字节数据放到inbuffer中,count返回实际读到字节4.在A5中显示发送的数据5.while(1)循环结束,关闭设备//死循环不关闭
整个发送和接收过程中没有设置定时的部分,但是数据掉帧很稳定,无法查明是哪里出现了问题,特此求助,谢谢!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
le062
1楼-- · 2019-03-26 09:52
linux上用wireshark截取下底层通讯数据

一周热门 更多>