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