嵌入式系统上的USB开发可能是一场噩梦,尤其是如果它是嵌入式开发人员不是每天都使用的协议。有一些有用的工具可以简化USB开发,这里有五个工具是特别有趣的,每个开发人员都应该知道。
工具1——PyUSB
Python的跨平台兼容性使其成为开发USB终端和应用程序GUI的完美编程语言。PyUSB库是使Python成为通过USB接口到嵌入式系统的优秀编程语言的附加库之一。PyUSB提供了一个易于使用的包装接口来访问开源的libusb。
工具2——USB View
USB View是微软开发的一个工具,用于调试USB枚举问题。虽然最初的USB View是为Windows开发的,但也有Linux版本可用。该工具使嵌入式开发人员能够查看通过USB连接到PC的所有设备。每个设备都显示为树的一部分,通过导航,可以检索每个USB设备的配置数据。
工具3——Pyside
PySide是一个有用的Python库,它公开了Qt UI函数。它可以用来在Python中创建一个图形用户界面,然后用来与PyUSB库交互,最终与基于USB的嵌入式系统交互。例如,可以添加一个按钮,然后发送USB消息来打开LED或读取传感器数据,这可以在几分钟内完成。
工具4——软件协议分析器
任何开发过基于USB的嵌入式系统的开发者都知道,开发并不总是一帆风顺的。毫无疑问,在尝试传输数据时,设备不会枚举或者只是出现奇怪的行为。可能会出现许多不同的问题,例如配置不当、布局不当、振荡器不合规格等等。为了深入了解正在发生的事情,嵌入式开发人员可以使用Wireshark等软件协议分析器来捕获PC正在接收的USB数据流。
工具5——硬件协议分析器
如果PC能够识别USB设备,软件协议分析器是一个很好的工具。但是,如果USB时钟关闭并且无法枚举,软件分析器对于调试就没什么用处了。幸运的是,还有一个硬件协议分析器可供使用USB的嵌入式开发人员使用。一个例子是总相位Beagle USB协议分析仪。考虑到在没有合适工具的情况下调试会话可能需要的时间,这是非常值得尝试的。Beagle是一个硬件协议分析器,它监控物理引脚上的总线流量,不仅能够记录,还能够实时解码USB流量。
结论
开发基于USB的嵌入式系统一直被认为是一项复杂的工作,但最近它几乎变成了一项微不足道的工作。芯片供应商现在正在提供不同USB类别的开箱即用示例,这让开发人员有了从PC访问设备的任务。PC工具已经走过了漫长的道路,尤其是随着开源库和Python编程语言的使用。现在是开始使用USB和Python构建嵌入式系统的时候了,并享受使嵌入式开发人员生活更轻松的开发工具。