將串行應用移植到USB接口的簡便方法(06-100)

軟件界面
本文引用地址:http://www.j9360.com/article/81086.htm一旦選擇了單芯片解決方案,我們就需要為應用開發新的PC驅動程序,甚至可能是新的固件。 幸運的是,軟件開發人員有多種選擇,可通過重復使用應用界面類的方法來減小開發工作量。
構建到現在PC操作系統中的最常見并獲得最好支持的USB接口類可能是所謂的人機接口設備(通常指HID類)。 所有的PC計算機都需要一些像鍵盤或鼠標這樣的人機接口,這些設備的連接已經從串行或者PS/2端口升級進USB。 其驅動程序已經捆綁在Windows、Linux和MAC OS的每個拷貝中,所以所有操作系統都可以很好地支持HID。因此,對于那些想從不太復雜的嵌入式設備中讀寫少量數據的設計工程師而言,HID是一個非常有吸引力的選擇。 不幸的是,應用編程接口(API)沒有什么與COM端口接口類似。 因此,將API移植到現有系統上更成問題,特別當PC上已經有一個復雜的應用軟件的時候。
其它像打印機類和海量存儲這樣的標準USB接口類都可以利用來實現與嵌入式設備進行通訊。 然而,它們也面臨同樣的問題,即陌生的接口以及必須開發新PC應用軟件。
驅動程序開發需要對操作系統底層有深入的了解。 對Windows PC機來說,這意味著要熟悉Windows驅動程序模型(WDM)。 如果沒有這方面的專業知識,那么開發一個可基本工作的驅動程序原型也需要花費數月時間。
幸運的是,大部分最新版本Windows都有的一個接口類可以幫助我們擺脫困境。 微軟公司原先開發這個名為USB通訊設備類(CDC)的目的是用來支持調制解調器應用。 例如,開發人員可以獲得CDC接口的完整源代碼,以進行面向PIC18F4550系列閃存USB 8位單片機的開發。
Microchip公司的CDC接口提供以下有用特性:
·固件庫的代碼量相對較小,僅3KB;
·單芯片解決方案;
·僅占用大約50B的存儲器空間(不包括緩沖區);
·最大吞吐量為每秒80 K字節;
·完全由USB協議控制數據流量(不需要RS-232 XON/XOFF和硬件流控)。
評論