新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 新品快遞 > 旋極針對(duì)行業(yè)應(yīng)用邁入PDA市場(chǎng)

旋極針對(duì)行業(yè)應(yīng)用邁入PDA市場(chǎng)

——
作者:張冬玲 時(shí)間:2005-09-04 來(lái)源:EDN電子設(shè)計(jì)技術(shù) 收藏
旋極針對(duì)行業(yè)應(yīng)用邁入PDA市場(chǎng)
 在國(guó)外,掌上電腦產(chǎn)品在行業(yè)中的應(yīng)用已經(jīng)相當(dāng)普遍。在一些發(fā)達(dá)國(guó)家,掌上電腦的行業(yè)應(yīng)用比率相當(dāng)于整個(gè)掌上電腦行業(yè)市場(chǎng)總額的70%。以美國(guó)為例,Palm公司2002年440萬(wàn)臺(tái)的掌上電腦銷售量,其中有300萬(wàn)臺(tái)是屬于各類行業(yè)應(yīng)用。在美國(guó)國(guó)防部下屬太平洋艦隊(duì),凡士官級(jí)以上人員,均配備一臺(tái)掌上電腦,以用于與相關(guān)部門的數(shù)據(jù)溝通和更新。

  對(duì)比國(guó)內(nèi)市場(chǎng),我國(guó)PDA產(chǎn)品的行業(yè)應(yīng)用發(fā)展相對(duì)較晚,行業(yè)應(yīng)用比例不到10%。事實(shí)上隨著我國(guó)信息化建設(shè)的加快,對(duì)掌上電腦及PDA產(chǎn)品等移動(dòng)信息處理終端設(shè)備的需求正呈現(xiàn)出明顯的增長(zhǎng)趨勢(shì)。這個(gè)巨大商機(jī)已經(jīng)引起了眾多掌上電腦廠商關(guān)注。

  旋極公司研制出的HR-828是行業(yè)應(yīng)用PDA終端。該P(yáng)DA終端具有GPRS通信、GPS衛(wèi)星定位、IC卡、攝像頭和通用PDA等諸多功能,并且具備豐富的對(duì)外接口,如串口、USB口、IrDA、CF卡等。并且支持通過(guò)CF卡、串口的功能擴(kuò)展。支持WINCE NUCLEUS LINUX 和欣等多種操作系統(tǒng)。針對(duì)不同行業(yè)用戶的不同需求,推出個(gè)性化軟件和硬件定制業(yè)務(wù)。并且用戶可以根據(jù)自己的應(yīng)用要求,選擇相應(yīng)的硬件軟件模塊進(jìn)行二次開(kāi)發(fā)。

  本機(jī)設(shè)備驅(qū)動(dòng)程序把CE移植到目標(biāo)平臺(tái)上,為在平臺(tái)上的基本設(shè)備(如鍵盤(pán)、觸摸屏)提供驅(qū)動(dòng)程序,CE操作系統(tǒng)為這些基本設(shè)備提供自定義接口,本機(jī)設(shè)備驅(qū)動(dòng)程序分單片驅(qū)動(dòng)程序(Monotithic device driver)和分層驅(qū)動(dòng)程序。單片驅(qū)動(dòng)程序是基于單個(gè)代碼片,該代碼片直接把硬件設(shè)備功能傳遞給操作系統(tǒng)。分層驅(qū)動(dòng)程序由兩個(gè)設(shè)置好的層組成,上層是模型設(shè)備驅(qū)動(dòng)程序(MDD),下層是依賴平臺(tái)的驅(qū)動(dòng)程序(PDD)。在CE提供的樣本驅(qū)動(dòng)程序中,大多數(shù)都配置成分層驅(qū)動(dòng)程序。

  下圖是本機(jī)設(shè)備驅(qū)動(dòng)程序模型,它說(shuō)明了單片驅(qū)動(dòng)程序和本機(jī)驅(qū)動(dòng)程序是如何在操作系統(tǒng)中集成的。


本文引用地址:http://m.butianyuan.cn/article/8215.htm


  MDD層是微軟為連接驅(qū)動(dòng)程序而提供的模型設(shè)備驅(qū)動(dòng)程序,在開(kāi)發(fā)過(guò)程中不需要用戶修改。對(duì)平臺(tái)和函數(shù)來(lái)講MDD是通用的,既是源代碼也是庫(kù)。通常的MDD層執(zhí)行下列任務(wù):

  *定義與PDD層之間的接口,并調(diào)用PDD
  *向上對(duì)操作系統(tǒng)提供不同的函數(shù)集
  *進(jìn)行中斷處理
  *與GWES模塊和內(nèi)核通信

   PDD層是依賴平臺(tái)的驅(qū)動(dòng)程序,它與MDD和硬件都有接口,所以PDD必須適合目標(biāo)平臺(tái)的需要,一個(gè)PDD由一些針對(duì)具體硬件的函數(shù)組成,這些函數(shù)又與一個(gè)MDD相對(duì)應(yīng),但這種對(duì)應(yīng)不是直接的一一對(duì)應(yīng)。MDD層通過(guò)調(diào)用PDD中的函數(shù)實(shí)現(xiàn)獨(dú)立的任務(wù),從而完成一些特定的目標(biāo)。由于PDD是硬件相關(guān)的,因此必須生成一個(gè)設(shè)置好的PDD并輸出到目標(biāo)平臺(tái),微軟為各種各樣的內(nèi)部設(shè)備提供了幾個(gè)樣本PDD層。這些樣本都可以在驅(qū)動(dòng)程序工具包中找到。

  在本機(jī)設(shè)備驅(qū)動(dòng)程序安裝時(shí),首先要保證PC機(jī)與CE設(shè)備的連接,而后將驅(qū)動(dòng)DLL拷貝到windows目錄下,最后要設(shè)置、修改相應(yīng)的注冊(cè)表鍵。

  對(duì)于加入外部設(shè)備,windows CE平臺(tái)有區(qū)別于標(biāo)準(zhǔn)PC機(jī)的理念:標(biāo)準(zhǔn)PC機(jī)中,操作者可以打開(kāi)設(shè)備的機(jī)箱將擴(kuò)展卡直接插入數(shù)據(jù)總線,也就是意味著這些設(shè)備的驅(qū)動(dòng)必須運(yùn)行在內(nèi)核模式,這樣才能滿足直接訪問(wèn)控制硬件的內(nèi)存區(qū)域的要求;windows CE 平臺(tái)不提供終端用戶對(duì)數(shù)據(jù)總線的訪問(wèn),外部設(shè)備必須通過(guò)外部連接器件,如,串口、PC卡槽、通用串行總線接口等與系統(tǒng)平臺(tái)相連,這也就使得windows CE平臺(tái)外部設(shè)備扮演著標(biāo)準(zhǔn)PC中打印機(jī)的角色。

  由于GWES模塊一般的原始設(shè)備生產(chǎn)商(OEM)無(wú)法修改,即只有微軟可以通過(guò)這個(gè)模塊增加對(duì)新設(shè)備的支持,這就導(dǎo)致了OEM必須通過(guò)使用基于windows CE的驅(qū)動(dòng)程序模塊,也就是流接口驅(qū)動(dòng)程序模塊為新設(shè)備類型提供驅(qū)動(dòng)程序。

  流接口驅(qū)動(dòng)程序是動(dòng)態(tài)連接庫(kù),由一個(gè)叫做設(shè)備管理程序的特殊應(yīng)用程序加載、管理、和御載,與具有單獨(dú)目的接口的內(nèi)部設(shè)備驅(qū)動(dòng)程序相比,所有流接口驅(qū)動(dòng)程序使用同一個(gè)接口并調(diào)用同一個(gè)函數(shù)集——流接口函數(shù)。

  下圖說(shuō)明了流接口驅(qū)動(dòng)程序模型:



  
  從上圖我們可以看出, 外圍設(shè)備由設(shè)備驅(qū)動(dòng)程序管理,用戶應(yīng)用程序通過(guò)調(diào)用文件系統(tǒng)從而實(shí)現(xiàn)對(duì)外部物理設(shè)備的訪問(wèn),流接口驅(qū)動(dòng)程序通過(guò)把外圍設(shè)備表示為文件系統(tǒng)的一個(gè)特殊文件,而使應(yīng)用程序使用外圍設(shè)備就像打開(kāi)、關(guān)閉一個(gè)文件一樣簡(jiǎn)單。

  在流接口驅(qū)動(dòng)程序的加載過(guò)程中,設(shè)備管理程序起著至關(guān)重要的作用。設(shè)備管理程序不是內(nèi)核的一部分,它是用戶層的驅(qū)動(dòng)程序,但它又是與內(nèi)核、注冊(cè)表和流接口驅(qū)動(dòng)程序DLL有相互影響的單獨(dú)部分。它的主要任務(wù)是在系統(tǒng)啟動(dòng)時(shí)或收到用戶在基于Windows CE的平臺(tái)上增加了外圍設(shè)備的信息時(shí)初始化驅(qū)動(dòng)程序的加載。

  流接口驅(qū)動(dòng)程序的加載有三種方法:

  第一種是在系統(tǒng)啟動(dòng)時(shí)加載。當(dāng)WCE平臺(tái)啟動(dòng)時(shí),設(shè)備管理程序讀取注冊(cè)表內(nèi)HKEY_LOCAL_MACHINEDriverBuiltin鍵下的內(nèi)容,并加載其中列出的流接口驅(qū)動(dòng)程序。

  第二種是設(shè)備管理程序自動(dòng)檢測(cè)到外圍設(shè)備與CE平臺(tái)建立連接時(shí),流接口驅(qū)動(dòng)程序被加載。PC卡是此種加載方式中最常見(jiàn)的類型。當(dāng)用戶將PC卡插入PC卡插槽時(shí),控制程序就通知WCE,而后設(shè)備管理程序調(diào)用PC插槽驅(qū)動(dòng)程序?qū)ふ壹床寮从脴?biāo)識(shí)符。如果沒(méi)有找到匹配的標(biāo)識(shí)符,設(shè)備管理程序調(diào)用HKEY_LOCAL_MACHINEDriverDetect中所列出的所以函數(shù)。如果其中有一個(gè)函數(shù)返回真值,表明它可以處理PC卡,設(shè)備管理程序就加載并初始化那個(gè)流接口驅(qū)動(dòng)程序。

  第三種是設(shè)備管理程序不能自動(dòng)檢測(cè)到外圍設(shè)備與平臺(tái)的連接,這種未被認(rèn)識(shí)的設(shè)備一般是串行設(shè)備。此時(shí)應(yīng)用程序調(diào)用RegiditerDevice()函數(shù)來(lái)加載流接口驅(qū)動(dòng)程序并鎖入內(nèi)存,以防止頁(yè)面調(diào)出內(nèi)存。

  流接口驅(qū)動(dòng)程序的命名要遵循一定的流接口驅(qū)動(dòng)程序的命名規(guī)則。一般由三個(gè)大寫(xiě)字母、一個(gè)數(shù)字和一個(gè)冒號(hào)組成,如COM1:、RGP7:等。

  當(dāng)要實(shí)現(xiàn)一個(gè)流接口驅(qū)動(dòng)DLL時(shí),必須完成幾個(gè)入口函數(shù),這些函數(shù)由WCE內(nèi)核調(diào)用,以完成設(shè)備初始化和電源管理。這些函數(shù)有:XXX_Close,XXX_Init,XXX_Open,XXX_Powerup 等。在安裝驅(qū)動(dòng)程序時(shí),需要將驅(qū)動(dòng)DLL拷貝到windows目錄下,并為驅(qū)動(dòng)程序修改或建立注冊(cè)鍵和注冊(cè)值。
 在國(guó)外,掌上電腦產(chǎn)品在行業(yè)中的應(yīng)用已經(jīng)相當(dāng)普遍。在一些發(fā)達(dá)國(guó)家,掌上電腦的行業(yè)應(yīng)用比率相當(dāng)于整個(gè)掌上電腦行業(yè)市場(chǎng)總額的70%。以美國(guó)為例,Palm公司2002年440萬(wàn)臺(tái)的掌上電腦銷售量,其中有300萬(wàn)臺(tái)是屬于各類行業(yè)應(yīng)用。在美國(guó)國(guó)防部下屬太平洋艦隊(duì),凡士官級(jí)以上人員,均配備一臺(tái)掌上電腦,以用于與相關(guān)部門的數(shù)據(jù)溝通和更新。

  對(duì)比國(guó)內(nèi)市場(chǎng),我國(guó)PDA產(chǎn)品的行業(yè)應(yīng)用發(fā)展相對(duì)較晚,行業(yè)應(yīng)用比例不到10%。事實(shí)上隨著我國(guó)信息化建設(shè)的加快,對(duì)掌上電腦及PDA產(chǎn)品等移動(dòng)信息處理終端設(shè)備的需求正呈現(xiàn)出明顯的增長(zhǎng)趨勢(shì)。這個(gè)巨大商機(jī)已經(jīng)引起了眾多掌上電腦廠商關(guān)注。

  旋極公司研制出的HR-828是行業(yè)應(yīng)用PDA終端。該P(yáng)DA終端具有GPRS通信、GPS衛(wèi)星定位、IC卡、攝像頭和通用PDA等諸多功能,并且具備豐富的對(duì)外接口,如串口、USB口、IrDA、CF卡等。并且支持通過(guò)CF卡、串口的功能擴(kuò)展。支持WINCE NUCLEUS LINUX 和欣等多種操作系統(tǒng)。針對(duì)不同行業(yè)用戶的不同需求,推出個(gè)性化軟件和硬件定制業(yè)務(wù)。并且用戶可以根據(jù)自己的應(yīng)用要求,選擇相應(yīng)的硬件軟件模塊進(jìn)行二次開(kāi)發(fā)。

  本機(jī)設(shè)備驅(qū)動(dòng)程序把CE移植到目標(biāo)平臺(tái)上,為在平臺(tái)上的基本設(shè)備(如鍵盤(pán)、觸摸屏)提供驅(qū)動(dòng)程序,CE操作系統(tǒng)為這些基本設(shè)備提供自定義接口,本機(jī)設(shè)備驅(qū)動(dòng)程序分單片驅(qū)動(dòng)程序(Monotithic device driver)和分層驅(qū)動(dòng)程序。單片驅(qū)動(dòng)程序是基于單個(gè)代碼片,該代碼片直接把硬件設(shè)備功能傳遞給操作系統(tǒng)。分層驅(qū)動(dòng)程序由兩個(gè)設(shè)置好的層組成,上層是模型設(shè)備驅(qū)動(dòng)程序(MDD),下層是依賴平臺(tái)的驅(qū)動(dòng)程序(PDD)。在CE提供的樣本驅(qū)動(dòng)程序中,大多數(shù)都配置成分層驅(qū)動(dòng)程序。

  下圖是本機(jī)設(shè)備驅(qū)動(dòng)程序模型,它說(shuō)明了單片驅(qū)動(dòng)程序和本機(jī)驅(qū)動(dòng)程序是如何在操作系統(tǒng)中集成的。




  MDD層是微軟為連接驅(qū)動(dòng)程序而提供的模型設(shè)備驅(qū)動(dòng)程序,在開(kāi)發(fā)過(guò)程中不需要用戶修改。對(duì)平臺(tái)和函數(shù)來(lái)講MDD是通用的,既是源代碼也是庫(kù)。通常的MDD層執(zhí)行下列任務(wù):

  *定義與PDD層之間的接口,并調(diào)用PDD
  *向上對(duì)操作系統(tǒng)提供不同的函數(shù)集
  *進(jìn)行中斷處理
  *與GWES模塊和內(nèi)核通信

   PDD層是依賴平臺(tái)的驅(qū)動(dòng)程序,它與MDD和硬件都有接口,所以PDD必須適合目標(biāo)平臺(tái)的需要,一個(gè)PDD由一些針對(duì)具體硬件的函數(shù)組成,這些函數(shù)又與一個(gè)MDD相對(duì)應(yīng),但這種對(duì)應(yīng)不是直接的一一對(duì)應(yīng)。MDD層通過(guò)調(diào)用PDD中的函數(shù)實(shí)現(xiàn)獨(dú)立的任務(wù),從而完成一些特定的目標(biāo)。由于PDD是硬件相關(guān)的,因此必須生成一個(gè)設(shè)置好的PDD并輸出到目標(biāo)平臺(tái),微軟為各種各樣的內(nèi)部設(shè)備提供了幾個(gè)樣本PDD層。這些樣本都可以在驅(qū)動(dòng)程序工具包中找到。

  在本機(jī)設(shè)備驅(qū)動(dòng)程序安裝時(shí),首先要保證PC機(jī)與CE設(shè)備的連接,而后將驅(qū)動(dòng)DLL拷貝到windows目錄下,最后要設(shè)置、修改相應(yīng)的注冊(cè)表鍵。

  對(duì)于加入外部設(shè)備,windows CE平臺(tái)有區(qū)別于標(biāo)準(zhǔn)PC機(jī)的理念:標(biāo)準(zhǔn)PC機(jī)中,操作者可以打開(kāi)設(shè)備的機(jī)箱將擴(kuò)展卡直接插入數(shù)據(jù)總線,也就是意味著這些設(shè)備的驅(qū)動(dòng)必須運(yùn)行在內(nèi)核模式,這樣才能滿足直接訪問(wèn)控制硬件的內(nèi)存區(qū)域的要求;windows CE 平臺(tái)不提供終端用戶對(duì)數(shù)據(jù)總線的訪問(wèn),外部設(shè)備必須通過(guò)外部連接器件,如,串口、PC卡槽、通用串行總線接口等與系統(tǒng)平臺(tái)相連,這也就使得windows CE平臺(tái)外部設(shè)備扮演著標(biāo)準(zhǔn)PC中打印機(jī)的角色。

  由于GWES模塊一般的原始設(shè)備生產(chǎn)商(OEM)無(wú)法修改,即只有微軟可以通過(guò)這個(gè)模塊增加對(duì)新設(shè)備的支持,這就導(dǎo)致了OEM必須通過(guò)使用基于windows CE的驅(qū)動(dòng)程序模塊,也就是流接口驅(qū)動(dòng)程序模塊為新設(shè)備類型提供驅(qū)動(dòng)程序。

  流接口驅(qū)動(dòng)程序是動(dòng)態(tài)連接庫(kù),由一個(gè)叫做設(shè)備管理程序的特殊應(yīng)用程序加載、管理、和御載,與具有單獨(dú)目的接口的內(nèi)部設(shè)備驅(qū)動(dòng)程序相比,所有流接口驅(qū)動(dòng)程序使用同一個(gè)接口并調(diào)用同一個(gè)函數(shù)集——流接口函數(shù)。

  下圖說(shuō)明了流接口驅(qū)動(dòng)程序模型:



  
  從上圖我們可以看出, 外圍設(shè)備由設(shè)備驅(qū)動(dòng)程序管理,用戶應(yīng)用程序通過(guò)調(diào)用文件系統(tǒng)從而實(shí)現(xiàn)對(duì)外部物理設(shè)備的訪問(wèn),流接口驅(qū)動(dòng)程序通過(guò)把外圍設(shè)備表示為文件系統(tǒng)的一個(gè)特殊文件,而使應(yīng)用程序使用外圍設(shè)備就像打開(kāi)、關(guān)閉一個(gè)文件一樣簡(jiǎn)單。

  在流接口驅(qū)動(dòng)程序的加載過(guò)程中,設(shè)備管理程序起著至關(guān)重要的作用。設(shè)備管理程序不是內(nèi)核的一部分,它是用戶層的驅(qū)動(dòng)程序,但它又是與內(nèi)核、注冊(cè)表和流接口驅(qū)動(dòng)程序DLL有相互影響的單獨(dú)部分。它的主要任務(wù)是在系統(tǒng)啟動(dòng)時(shí)或收到用戶在基于Windows CE的平臺(tái)上增加了外圍設(shè)備的信息時(shí)初始化驅(qū)動(dòng)程序的加載。

  流接口驅(qū)動(dòng)程序的加載有三種方法:

  第一種是在系統(tǒng)啟動(dòng)時(shí)加載。當(dāng)WCE平臺(tái)啟動(dòng)時(shí),設(shè)備管理程序讀取注冊(cè)表內(nèi)HKEY_LOCAL_MACHINEDriverBuiltin鍵下的內(nèi)容,并加載其中列出的流接口驅(qū)動(dòng)程序。

  第二種是設(shè)備管理程序自動(dòng)檢測(cè)到外圍設(shè)備與CE平臺(tái)建立連接時(shí),流接口驅(qū)動(dòng)程序被加載。PC卡是此種加載方式中最常見(jiàn)的類型。當(dāng)用戶將PC卡插入PC卡插槽時(shí),控制程序就通知WCE,而后設(shè)備管理程序調(diào)用PC插槽驅(qū)動(dòng)程序?qū)ふ壹床寮从脴?biāo)識(shí)符。如果沒(méi)有找到匹配的標(biāo)識(shí)符,設(shè)備管理程序調(diào)用HKEY_LOCAL_MACHINEDriverDetect中所列出的所以函數(shù)。如果其中有一個(gè)函數(shù)返回真值,表明它可以處理PC卡,設(shè)備管理程序就加載并初始化那個(gè)流接口驅(qū)動(dòng)程序。

  第三種是設(shè)備管理程序不能自動(dòng)檢測(cè)到外圍設(shè)備與平臺(tái)的連接,這種未被認(rèn)識(shí)的設(shè)備一般是串行設(shè)備。此時(shí)應(yīng)用程序調(diào)用RegiditerDevice()函數(shù)來(lái)加載流接口驅(qū)動(dòng)程序并鎖入內(nèi)存,以防止頁(yè)面調(diào)出內(nèi)存。

  流接口驅(qū)動(dòng)程序的命名要遵循一定的流接口驅(qū)動(dòng)程序的命名規(guī)則。一般由三個(gè)大寫(xiě)字母、一個(gè)數(shù)字和一個(gè)冒號(hào)組成,如COM1:、RGP7:等。

  當(dāng)要實(shí)現(xiàn)一個(gè)流接口驅(qū)動(dòng)DLL時(shí),必須完成幾個(gè)入口函數(shù),這些函數(shù)由WCE內(nèi)核調(diào)用,以完成設(shè)備初始化和電源管理。這些函數(shù)有:XXX_Close,XXX_Init,XXX_Open,XXX_Powerup 等。在安裝驅(qū)動(dòng)程序時(shí),需要將驅(qū)動(dòng)DLL拷貝到windows目錄下,并為驅(qū)動(dòng)程序修改或建立注冊(cè)鍵和注冊(cè)值。


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉