4659|1

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USB传输过程中数据掉帧的问题 [复制链接]

系统采用60HZ的速率传输,在传输4-5帧后就会丢掉20帧的数据;采用120HZ的速率传输,在传输4-5帧后就会丢掉40帧的数据。截图如下(每组数据的第三位为帧号,可以看到从132帧跳到了172帧,且传输4帧后从175帧跳到了215帧)

硬件为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=0x64
3.   进入while(1)连续读取数据
count = read(fd0, inbuffer,460);//inbuffer[500]={0};
从fd0中读取460字节数据放到inbuffer中,count返回实际读到字节
4.在A5中显示发送的数据
5.while(1)循环结束,关闭设备//死循环不关闭

整个发送和接收过程中没有设置定时的部分,但是数据掉帧很稳定,无法查明是哪里出现了问题,特此求助,谢谢!

此帖出自NXP MCU论坛

最新回复

linux上用wireshark截取下底层通讯数据  详情 回复 发表于 2018-7-22 07:37
点赞 关注
 

回复
举报

750

帖子

3

TA的资源

版主

沙发
 
linux上用wireshark截取下底层通讯数据
此帖出自NXP MCU论坛
 
个人签名

要666

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表