遠程訪問USB設備擴展
已有 375 次閱讀2017-11-3 21:23
我們一般在”延長“USB設備的時候,設備采集端采用多種操作系統,不一定是windows平臺。
比如工業環境中某些使用USB接口的采集設備,采集設備通過USB接到電腦的windows平臺,通過專業的軟件分析采集到的數據。
這樣采集設備不遠處就得有一臺PC電腦,操作人員在電腦上分析數據。
有些工業生產環境比較惡劣,距離采集設備太近可能會有危險。因此必須延長到一個合適的距離。
各種工業環境采集設備眾多,接口也繁雜。
因此可能就有個想法,使用一個小設備(比如嵌入式linux系統)上邊擠滿各種各樣的接口,
比如COM接口,USB接口等等。采集設備通過USB接口插到這個小設備上,小設備采集USB數據,通過網絡比如WIFI無線網等,
把工業采集設備“延長”到電腦中,這樣就可以在任何地方,通過電腦windows平臺的專業軟件分析采集設備的工業數據。
再比如在遠程桌面或云桌面實現中尤其是云桌面,控制端采用瘦客戶端,通常就是定制的一個嵌入式系統的小設備,
而開發商們通常使用嵌入式linux作為這些終端設備的選擇,終端設備上布滿大大小小的各種接口,尤其是USB接口。
這些USB接口設備都會被重定向到真正的云桌面系統中。要實現重定向,首先需要采集真正USB設備的數據。
因此我們必須在linux平臺實現USB設備的采集。
還比如延長銀行U盾設備,延長手機USB接口等等。。。
諸如此類的需求應該很多,這主要得益于USB接口的普及率非常高。
以上需求都有一個共同點,就是USB采集端都是小設備,一般都使用嵌入式linux。
如何才能在linux平臺實現USB數據的采集呢? 這個需要從linux驅動方面去實現。
linux平臺集成有個usbip項目,它實現了USB虛擬和USB采集兩個方面, 應該是linux平臺解決此類問題的最快捷辦法。
usbip有個特點,它的網絡通信是在內核層直接通訊,有自己的通訊協議,這可能也是個缺點,
很多時候,我們可能需要采集到的數據需要加密,壓縮之類操作,或者通過自己的私有協議傳輸,這些需求都不得不修改usbip。
本著一向自己造輪子的習慣,這里并不介紹usbip,而是自己全新開發USB采集端驅動。
其實總體來說,比起windows的USB采集驅動簡單的多。