USB的廣泛應(yīng)用就不用多說了,,相信目前的各個領(lǐng)域的嵌入式" title="嵌入式">嵌入式產(chǎn)品中,,很少有不用USB的。USB是主從結(jié)構(gòu)的,,分為USB Host和USB Slave,,從USB1.0,USB1.1到現(xiàn)在的USB2.0,,基于USB2.0還有USB OTG,,也就是同時支持Host和Slave設(shè)備,。目前最新的好像是USB3.0" title="USB3.0">USB3.0,剛開始普及吧,。
在WinCE" title="WinCE">WinCE6.0中,,對USB是有很好的支持。一般來說,,如果USB的設(shè)備驅(qū)動做好了,,USB的協(xié)議層以及上層的應(yīng)用都是現(xiàn)成的,而且還有源碼,。也就是說,,我們只需要在BSP中完成USB的驅(qū)動就可以了。先來看一下,,如圖:
USB Host:
最底層就是USB Host控制器了,,上層是USB Host Controller Driver,該驅(qū)動負(fù)責(zé)和硬件通訊來傳輸數(shù)據(jù),,在WinCE中支持UHCI,,OHCI和EHCI。Host Core Driver & Hub Driver是獨(dú)立于硬件的USB協(xié)議棧,,支持USB Host協(xié)議及USB Hub功能,。最上層就是USB Host Class driver是USB Host的應(yīng)用協(xié)議,目前在WinCE中,,支持RNDIS,,Print,Mass Storage和HID四種應(yīng)用,。
USB Device:
最底層是USB Device控制器,,上層是USB Device Driver負(fù)責(zé)和硬件通訊。Device Core Driver是USB Device的協(xié)議棧,。最上層是USB Device的應(yīng)用層,,目前在WinCE中支持RNDIS,Serial和Mass Storage三種應(yīng)用,。
USB的廣泛應(yīng)用就不用多說了,,相信目前的各個領(lǐng)域的嵌入式產(chǎn)品中,很少有不用USB的,。USB是主從結(jié)構(gòu)的,,分為USB Host和USB Slave,從USB1.0,,USB1.1到現(xiàn)在的USB2.0,,基于USB2.0還有USB OTG,也就是同時支持Host和Slave設(shè)備,。目前最新的好像是USB3.0,,剛開始普及吧,。
在WinCE6.0中,對USB是有很好的支持,。一般來說,,如果USB的設(shè)備驅(qū)動做好了,USB的協(xié)議層以及上層的應(yīng)用都是現(xiàn)成的,,而且還有源碼,。也就是說,我們只需要在BSP中完成USB的驅(qū)動就可以了,。先來看一下,,如圖:
USB Host:
最底層就是USB Host控制器了,上層是USB Host Controller Driver,,該驅(qū)動負(fù)責(zé)和硬件通訊來傳輸數(shù)據(jù),,在WinCE中支持UHCI,OHCI和EHCI,。Host Core Driver & Hub Driver是獨(dú)立于硬件的USB協(xié)議棧,,支持USB Host協(xié)議及USB Hub功能。最上層就是USB Host Class driver是USB Host的應(yīng)用協(xié)議,,目前在WinCE中,,支持RNDIS,Print,,Mass Storage和HID四種應(yīng)用,。
USB Device:
最底層是USB Device控制器,上層是USB Device Driver負(fù)責(zé)和硬件通訊,。Device Core Driver是USB Device的協(xié)議棧,。最上層是USB Device的應(yīng)用層,目前在WinCE中支持RNDIS,,Serial和Mass Storage三種應(yīng)用,。
USB OTG:
USB OTG控制器上層是USB OTG控制器的驅(qū)動,USB OTG Core Driver是協(xié)議層,,如果做Host,,它會使用USB Host協(xié)議棧,如果做Device,,它會使用USB Device協(xié)議棧,。
在WinCE中,根據(jù)需要來選擇所需的USB功能,,創(chuàng)建WinCE工程,,然后在Catalog Items View中選擇”Core OS”-》”CEBASE”-》”Core OS Services”-》”,,如圖:
◆USB Function Driver:用于支持USB Device驅(qū)動,。
◆USB Host Support:用于支持USB Host控制器驅(qū)動,。
◆USB Human Input Device (HID) Class Driver:用于支持USB Host外接HID設(shè)備,可選擇同時支持USB鼠標(biāo)鍵盤,,也可以分開選擇,。
◆USB Printer Class Driver:用于支持USB Host打印功能。
◆USB Remote NDIS Class Driver:用于支持USB Host連接RNDIS設(shè)備,。
◆USB Storage Class Driver:用于支持USB Host外接U盤的功能,。
上面的選項(xiàng)除了USB Function Driver以外,都是用于支持USB Host應(yīng)用的,,可以根據(jù)自己平臺的需要,,選擇相應(yīng)的USB應(yīng)用,也可以都選擇,。如果是USB Device設(shè)備,,那么首先要選擇上面提到的USB Function Driver,然后在Catalog Items View中選擇”Device Drivers”-》”USB Function”-》” ,,如圖:
Mass Storage:用于支持USB Device作為U盤功能,。
RNDIS Client:用于支持USB Device作為RNDIS設(shè)備。
Serial:用于支持USB Device作為串口設(shè)備,。
對于USB Device設(shè)備,,可以支持Mass Storage,RNDIS和Serial功能,,不過同一個USB Device在系統(tǒng)啟動以后只能支持某一個功能,。
總結(jié)一下,無論是USB Host還是USB Device,,只要驅(qū)動做好了,,上層的應(yīng)用在WinCE系統(tǒng)定制的時候,選擇相應(yīng)的組件就可以了,。對于USB Device來說,,根據(jù)組件的不同,還需要進(jìn)行一些注冊表的配置,,我會在以后的blog中進(jìn)行介紹,。