《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 在WinCE 6.0系統(tǒng)下實現(xiàn)USB功能定制
在WinCE 6.0系統(tǒng)下實現(xiàn)USB功能定制
摘要: USB的廣泛應(yīng)用就不用多說了,相信目前的各個領(lǐng)域的嵌入式產(chǎn)品中,很少有不用USB的。USB是主從結(jié)構(gòu)的,分為USBHost和USBSlave,從USB1.0,USB1.1到現(xiàn)在的USB2.0,基于USB2.0還有USBOTG,也就是同時支持Host和Slave設(shè)備。
Abstract:
Key words :

  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ū)動負責和硬件通訊來傳輸數(shù)據(jù),在WinCE中支持UHCI,OHCI和EHCI。Host Core Driver & Hub Driver是獨立于硬件的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負責和硬件通訊。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ū)動負責和硬件通訊來傳輸數(shù)據(jù),在WinCE中支持UHCI,OHCI和EHCI。Host Core Driver & Hub Driver是獨立于硬件的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負責和硬件通訊。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鼠標鍵盤,也可以分開選擇。

  ◆USB Printer Class Driver:用于支持USB Host打印功能。

  ◆USB Remote NDIS Class Driver:用于支持USB Host連接RNDIS設(shè)備。

  ◆USB Storage Class Driver:用于支持USB Host外接U盤的功能。

  上面的選項除了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ù)組件的不同,還需要進行一些注冊表的配置,我會在以后的blog中進行介紹。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。