学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

USB开发中易混淆的概念

  USB(Universal Serial Bus)通讯具有传输速度快、可靠性高、即插即用等优点,已经逐步成为现代数据传输的主流方式,得到了广泛的应用。

 然而,在USB应用技术越来越成熟的同时,开发人员对于USB技术的运用越来越倾向于顶层使用,对于USB的底层原理与基础协议关注的很少,这会导致在实际开发过程中,遇到问题之后不知从何处着手解决。只有了解了USB的传输协议或者是底层传输通讯原理,才能很好的找出解决途径。  

 文中基于作者多年的USB开发使用经验,并且结合目前研究与生产中广泛使用的几种USB控制芯片,包括Cypress公司的enCoRe系列芯片、EZ-USB芯片以及Net公司的NET2888芯片等等,总结了它们在开发使用中最容易遇到而又非常重要的几个问题:USB设备与主机建立通讯过程中枚举和重枚举的区别,这个区别体现在不同的USB控制芯片当中,它对于设备的启动以及连接主机都有深刻影响;重枚举与重置的区别,很多把这个概念混淆,导致在应用中出错;固件程序控制多种启动方式的区别,同样的代码控制着不同的启动方式,理解了这个过程才能很好地控制芯片的工作。

 1 USB通讯中的重要概念

 1.1 枚举与重枚举的区别

 在USB通讯协议中,有一个重要的概念是检测设备,也可称为枚举,它是主机在应用程序与USB设备通信之前,了解该设备的设置与能力并且给该设备指定一个驱动程序的过程,它是任何USB设备正常工作所必须的部分。

 对于普通的USB设备,主机通过枚举的过程获取设备的描述符,了解设备并根据设备描述符中的PID(产品识别码)与VID(供应商识别码)值选择合适的驱动程序安装,这样就与设备建立了USB连接,之后就可以进行正常USB通讯,枚举的过程如图1所示。

a.JPG


相关文章