USB线上,两端同时发数据会发生什么问题?[求助]

如题,51+ch375做主机,USB手持设备做从机,同时发数据,有数据丢失,如何避免呢?

USB总线是半双工方式通信,数据的发送和接收都是由主机控制的,且有相应的通信机制,主设双方不可能同时发送数据。您所说的丢数据具体是怎样的?


主机和手持设备(WINCE)会定时问答,这个过程正常。除开这个过程,手持机会有突发数据发送,主机收到就会回复设备表示收到这个突发数据,但这个主机回复不是每一次都能成功,就恰恰是设备定时应答主机的时候就会丢失这个主机的回复。


设备发送数据的过程:所谓设备发送数据,其实只是设备把数据放到自身内部的一个上传缓冲区内等待主机主动来取,并非是由设备直接发送到USB总线上。现在不清楚您是否了解这个设备与主机之间的通信过程是怎样的,如用到哪些端点,采用何种传输方式?(控制,批量,中断,还是实时?)可以让这个设备与PC进行通信,通过BusHund(网上可以下载)这个工具分析具体的通信过程。


手持中的usb是虚拟成串口使用的,没有涉及到usb的底层,所以不知道它到底以哪种方式传输,不过端点是知道的。再写一个pc程序模拟usb主机的话就太麻烦了,而且我只负责硬件


不用写PC程序,只要BusHund这个软件抓取PC枚举(获取描述符),配置这个设备的过程即可。 对于操作这种USB模拟串口,我们有成功案例。如果您觉得操作有困难,可以与我们电话联系。


既然是做HOST方式,所有的通讯都是你主机来发起的,如果收到设备应答NAK,你再次重试就可以了!和设备没有什么关系,所有的通讯都是由主机发起的,所以您受到NAK后再次发起就是了.虚拟串口其实低层也是USB传输.正常的数据传输(您所说的突发数据肯定上批量传输),收到的应答可能是中断传输.(一般虚拟串口都是这样做的,不排除例外的可能)


只有登录才能回复,可以选择微信账号登录