[STM32F1] STM32 USB中断传输和批量传输的区别在哪 

[复制链接]  1811|1
   
STM32 USB中断传输和批量传输的区别在哪 随笔 第1张 JY-DX-JY 电梯直达 STM32 USB中断传输和批量传输的区别在哪 随笔 第2张 楼主   STM32 USB中断传输和批量传输的区别在哪 随笔 第3张  STM32 USB中断传输和批量传输的区别在哪 随笔 第4张  楼主  2016-8-12 09:34 只看该作者 |退出气泡模式 |只看大图 STM32 USB中断传输和批量传输的区别在哪 随笔 第5张
我现在搞STM32 USB。原来用的中断传输,现在改成批量传输。
首先改了设备描述符和配置描述符。枚举成功。
然后,又改了下面的地方。
<ignore_js_op>STM32 USB中断传输和批量传输的区别在哪 随笔 第6张 
就是把中断端点改成批量端点,可是运行不正常。
请问高手,关于批量传输,初始化的地方还有哪儿与中断传输不一样?谢谢!
我对照着STM32官网的CDC例程也没找到哪儿不同。

满意回复

STM32 USB中断传输和批量传输的区别在哪 随笔 第7张+5

STARM 查看完整内容

批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。 中断传输是一种轮询的传输方式,是一种单向的 ...  

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 评论 回复  点赞    

相关资料

 
   
STM32 USB中断传输和批量传输的区别在哪 随笔 第8张 STARM 沙发   STM32 USB中断传输和批量传输的区别在哪 随笔 第9张  2016-8-12 14:19 只看该作者
批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。

中断传输是一种轮询的传输方式,是一种单向的传输,HOST 通过固定的间隔对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。中断传输的延迟有保证,但并非实时传输,它是一种延迟有限的可靠传输,支持错误重传。

中断端点的轮询间隔由在端点描述符中定义,全速端点的轮询间隔可以是1~255mS,低速端点为10~255mS,高速端点为(2^interval-1)*125uS,其中interval 取1到16 之间的值。

他们之间的区别也仅在于事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。

批量传输和中断传输在数据处理上是完全一样的,不同的地方就在于事务的调度上,以及端点最大包长以及是否支持批量端点等。   http://blog.chinaunix.net/uid-28320320-id-3415354.html   USB是共享总线,如果在USB HUB上有多个设备同时进行大数据量传输。例如设备A在传输4MB的数据,那么设备B在设备A数据传输期间有可能得不到响应。如何保证设备B在其它设备传输数据时也能及时得到响应?设备B可以设立中断传输端口,这样Host Controller会每隔一定的时间间隔(例如1ms),保证向设备B发出IN令牌,使得B有机会发出数据。 所以中断传输的数据量不能太大,在USB 1.1中最多只能16 bytes. USB 2.0的协议作了一些修改,中断传输与Bulk传输的区别不大,数据量的限制也没有了。不过,中断传输的上述机制还是在的。 如果USB的host controller总是被一个设备独占,那也就没有中断传输与Bulk传输的区别了。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄