新聞中心

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

  下圖說明了流接口驅(qū)動程序模型:



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

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

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

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

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

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

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

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

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

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

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

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




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

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

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

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

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

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

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

  下圖說明了流接口驅(qū)動程序模型:



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

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

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

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

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

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

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

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


評論


相關(guān)推薦

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

關(guān)閉