嵌入式系統上的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構建嵌入式系統的時候了,并享受使嵌入式開發人員生活更輕松的開發工具。