【阿福的随笔】浅谈 USB Bulk 深入浅出 (4) - USB Bulk 传输的优缺点总结

1 USB Bulk 是什么

USB 是即插即用使用差动信号的装置界面,是以 端点 ( Endpoint ),做为传输装置的输出入端,透过不同的端点 ( Endpoint ) 和模式,来进行与装置的沟通,USB Bulk 就是USB 四种传输模式之一的批量资料传输 ( Bulk ) 的端点传输

 
1.1 传输方块图

USB 传输方块图,如‘图1.1.1’( 注1 ), 其中 IRP是  I/O Request Packet ,由图所示Bulk 传输是使用 1个或多个的  IN / OUT 资料传输 (Transaction ),一个 USB 的资料传输通常会有 3 个阶段 Token , Data , handshake的封包

  
图1.1.1( 注1 )

2 USB Bulk 传输的优缺点总结

因为目前没有写 driver 的资源 ,所以自已写或请人写 driver 的这个方式,目前是不考虑的, 所以只能考虑USB to com port 的  USBCDC ,或是需要 File system 的 mass storage ,一般称为USB 随身碟 ( U 盘 )

使用 USB Mass storage的缺点是 : 因为不用写 driver ,是直接使用 windows driver,所以整体的行为会被 windows driver 受限,如传输的速度,资料错误重送的机制,还会受到系统整体是否忙碌,而影响到传输,反正会影响到一般 USB 硬盘传输行为的,在模拟的 USB Mass storage 都会遇到。

若是可以使用 Microsoft OS descriptor强制指定 driver 就可以跳过需要自行撰写的过程,也是另一种特别的方法,但此方式,是装置第一次插上电脑时,会将相关的 info 注册,若是第一次没有成功,则此装置会在同一台电脑上无法使用,除非将相关的注册表清除

最后做出来的Bulk传输,有两个大问题 :

(1) 就是有时候 电脑端 会直接传送空的 package,虽然是无效且会再重传资料,但程式上就必须要多了一些判断和整合的机制才行,但是有机会是一开始的档头就是失败的 ( 档头也有可能一开始传送失败,之后再重传 ),若是使用 MSD 他是存到相对的 Flash 位置,所以必须等到所有封包含重传完的封包都存到相对的 Flash 时,整图档封包资料才会是完整的,这时抓图当然没问题,但若是一边传输图档,又一边要点图的话,就会有很大的问题,若是有很大的 RAM ,或是真的存到 Flash 内,当然可以全部传输完成之后再传图到 Panel 端,可是若是真的先存到 Flash , Flash 的擦写速度也要算在传输的时间内,但若是没档头,图档的偏移量就不知道,就要将所有的资料先存下来,最后才把图档的  Row data 分离出来,做传输至 Panel 或是转换格式后再传输至 Panel,其中转换格式或是搬移大量记忆体都会花费 MCU 大量的处理时间,这点需要注意


(2) 在封包和封包之间的间隔时间,虽然 Firmware 可设定最小间隔时间,但主要的传输端是 电脑端的 AP 程式和 driver 控制的,所以说一开始 AP 程式和 driver 未借入或是没设定 timeout 值时,会发现封包的间隔时间非常的大,与 AP 程式人员讨论之后,使用背景模式来一直连续传送图片,效果也是只有好一些,主要还是会受限于 windows driver 这里。但若是 API 程式,设定的间隔时间比实际上封包传输的时间还短时,若传输的档名都是同一个,而相对位置也相同的话,有可能封包会被后来的盖过去也不一定。

使用 NXP RT500 系列的 EVK 做的 USB Bulk 来传输图片,并且将图片资料直接点 RGB888/RGB565 的Panel,实验中发现若是把 PC 端 USB 背景传输间隔时间放的很小,则 MCU 端有机会造成资料来不及收完就被复盖的现象,另外会发现到, 24bits 的处理,要比 16 bits 处理上,还要多出 3/2 左右的时间,但画质上是有差一些,但为了速度考量最后还是使用 RGB565, 并且当初有尝试了一下格式转换,发现转换的时间,还远大于传输的时间,所以格式转换的部分不太适合放在 MCU 做了,最好要格式转换的话是放在 PC 端执行好后再将要点图的 Row data 传给 MCU


后续会在博文视频区内,放上请 WPI 同事帮忙撰写 for Window 的 GUI ,来做一个 Bulk 传输,会在视频中看到若是 USB 传输间隔时间设的太小的话,有时候会出现来不及传输完图档的现象

3 参考资料

注1 : 作者: USB ORG ( Compaq ,Hewlett-Packard ,Intel ,Lucent,Microsoft,NEC,Philips );
出处 : https://www.usb.org/document-library/usb-20-specification

相关视频

【阿福的随笔】浅谈 USB Bulk 深入浅出 (4) - USB Bulk 传输的优缺点总结

使用 NXP IMXRT595 EVK 测试 USB Bulk 的影片

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论