




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、文章編號(hào):1008-1658(200403-0022-05Windows CE 平臺(tái)上開(kāi)發(fā)采集板驅(qū)動(dòng)程序王少紅,徐小力,李海燕(北京機(jī)械工業(yè)學(xué)院機(jī)電系統(tǒng)測(cè)控北京市重點(diǎn)實(shí)驗(yàn)室,北京100085摘要:Windows CE 是一個(gè)新的、待深入開(kāi)發(fā)的操作系統(tǒng),能夠適應(yīng)廣泛的系統(tǒng)需求,在最新一代的工業(yè)和家用電子設(shè)備中得到了廣泛的應(yīng)用。簡(jiǎn)單介紹了Windows CE 驅(qū)動(dòng)的系統(tǒng)結(jié)構(gòu),以在分光光度計(jì)研制過(guò)程中應(yīng)用的艾訊AX10410A 型高速數(shù)據(jù)采集板為例,介紹了Windows CE 操作系統(tǒng)的設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程。經(jīng)過(guò)測(cè)試,效果良好。關(guān)鍵詞:數(shù)據(jù)采集板;Windows CE ;驅(qū)動(dòng)程序中圖分類(lèi)號(hào):TP
2、274文獻(xiàn)標(biāo)識(shí)碼:ADevelopment of drivers for the Data Acquisition C ardon Windows CE platformW ANG Shao 2hong ,X U X iao 2li ,LI Hai 2yan(Beijing K ey Laboratory M easurement and C ontrol of M echanical and E lectrical System ,Beijing Institute of M achinery ,Beijing 100085,China Abstract :Windows CE is a n
3、ew operating system language that awaits for farthur study.It fits far 2ranging need ,and has been widely used in industry and electronic aid.A brief introduction is given to the system structure of Windows CE.By applying AX10410A high performance data acquisition card during the de 2velopment of sp
4、ectrophotometer ,how to design device drivers on Windows CE platform is introduced in the paper.It has been proved that the method is efficient and practicable.K ey w ords :Data Acquisition Card ;Windows CE platform ;driversWindows CE 是一個(gè)新的、可移植的、實(shí)時(shí)的、模塊化的操作系統(tǒng)1,具有一個(gè)簡(jiǎn)捷、高效的完全搶先式多任務(wù)操作核心,支持強(qiáng)大的通信和圖形顯示功能,能夠
5、適應(yīng)廣泛的系統(tǒng)需求,在最新一代的工業(yè)和家用電子設(shè)備中得到了廣泛的應(yīng)用。筆者在開(kāi)發(fā)紫外-可見(jiàn)分光光度計(jì)的過(guò)程中,采用艾訊公司的SC B84500型CPU 板(233主頻、64M 內(nèi)存、64M 的CF 卡和AX10410A 型的高速數(shù)據(jù)采集板。它們都是基于PC/104總線(xiàn)結(jié)構(gòu)的嵌入式模塊,構(gòu)成了分光光度計(jì)的控制中心。其外圍支持設(shè)備有觸摸屏、鍵盤(pán)、打印機(jī)等。由于數(shù)據(jù)采集板沒(méi)有現(xiàn)成的可以參照修改的驅(qū)動(dòng)程序,需要用戶(hù)自己編寫(xiě),因此本文重點(diǎn)介紹如何在Windows CE 平臺(tái)下編寫(xiě)數(shù)據(jù)采集板的驅(qū)動(dòng)程序。收稿日期:2004-02-21基金項(xiàng)目:北京市教委科技發(fā)展計(jì)劃重點(diǎn)項(xiàng)目項(xiàng)目編號(hào):K Z 20031123
6、2014作者簡(jiǎn)介:王少紅(1977-,女,山東東營(yíng)人,北京機(jī)械工業(yè)學(xué)院機(jī)電系統(tǒng)測(cè)控實(shí)驗(yàn)室教師,碩士,主要從事虛擬儀器應(yīng)用技術(shù)方向的研究。1Windows CE 設(shè)備驅(qū)動(dòng)程序要把Windows CE 移植到目標(biāo)平臺(tái)上,必須為在平臺(tái)上已建立的設(shè)備提供驅(qū)動(dòng)程序。作為通用型的嵌入式操作系統(tǒng),Windows CE 并沒(méi)有像桌面系統(tǒng)那樣提供了通用設(shè)備各種類(lèi)型的驅(qū)動(dòng),而只是提供了與此相關(guān)的例子代碼,若不經(jīng)改動(dòng),這些代碼可能只適用于此類(lèi)設(shè)備中的個(gè)別型號(hào)。一旦依照硬件組成進(jìn)行了平臺(tái)配置之后,必須對(duì)已選入平臺(tái)的驅(qū)動(dòng)組件進(jìn)行測(cè)試、修改,使這些硬件能夠正常工作。這時(shí)的修改,存在幾種可能:一種是在Windows CE
7、系統(tǒng)給出的幾個(gè)類(lèi)型的驅(qū)動(dòng)組件中另外選擇;一種是對(duì)已選組件進(jìn)行配置文件的更改,如platform.reg ,comm on.reg ,確保驅(qū)動(dòng)加載正確;還有一種則是對(duì)已有的驅(qū)動(dòng)代碼進(jìn)行修改,這往往是針對(duì)于與硬件相關(guān)的那部分代碼,即Windows CE 驅(qū)動(dòng)代碼中的PDD (Platform Dependent Driver 層。此外,對(duì)于非常規(guī)性硬件設(shè)備(或者說(shuō)對(duì)現(xiàn)有的Windows CE 應(yīng)用系統(tǒng)是非常規(guī)的,微軟并沒(méi)有提供任何相類(lèi)似的驅(qū)動(dòng)代碼,則需要獲取第三方(硬件廠(chǎng)商的支持,由他們提供Win 2dows CE 的驅(qū)動(dòng),或者使用者自行開(kāi)發(fā)。由于驅(qū)動(dòng)涉及到直接與硬件對(duì)話(huà),因而開(kāi)發(fā)者不僅要了解硬件
8、所能實(shí)現(xiàn)的功能以及應(yīng)用操作系統(tǒng)的驅(qū)動(dòng)架構(gòu),而且必須清楚其內(nèi)部的硬性約定邏輯,并擁有特定的測(cè)試手段和測(cè)試方法。這就是硬件驅(qū)動(dòng)開(kāi)發(fā)難于一般的軟件開(kāi)發(fā)之處。針對(duì)分光光度計(jì)系統(tǒng)的開(kāi)發(fā),串/并行口、打印機(jī)、觸摸屏、網(wǎng)絡(luò)適配器等組件都具有例子代碼,其中串/并行口、網(wǎng)絡(luò)適配器不需改動(dòng),觸摸屏、打印機(jī)的驅(qū)動(dòng)則需要修改代碼,而數(shù)據(jù)采集卡板有相似的例子代碼,需要自己編寫(xiě)。下面介紹一下Windows CE 驅(qū)動(dòng)程序的類(lèi)型。2Windows CE 驅(qū)動(dòng)程序類(lèi)型設(shè)備驅(qū)動(dòng)程序是將操作系統(tǒng)和設(shè)備連接起來(lái),使得操作系統(tǒng)能夠識(shí)別設(shè)備,并為應(yīng)用程序提供服務(wù)。Windows CE 系統(tǒng)中的設(shè)備驅(qū)動(dòng)分為2種類(lèi)型:單層(m onoli
9、thic 驅(qū)動(dòng)程序和分層(layered 驅(qū)動(dòng)程序。單層驅(qū)動(dòng)程序是基于單個(gè)代碼片(single piece of code ,該代碼片直接把硬件的功能性傳遞給操作系統(tǒng),而分層驅(qū)動(dòng)程序是有2個(gè)設(shè)置好的層組成,上層是模型設(shè)備驅(qū)動(dòng)程序(M DD ,下層是平臺(tái)相關(guān)的設(shè)備驅(qū)動(dòng)程序(PDD 。大多數(shù)基于Windows CE 的設(shè)備驅(qū)動(dòng)程序都采用分層結(jié)構(gòu)。模型設(shè)備驅(qū)動(dòng)程序也可以稱(chēng)為類(lèi)驅(qū)動(dòng)程序,一個(gè)模型設(shè)備驅(qū)動(dòng)包含了一類(lèi)驅(qū)動(dòng)程序所共有的代碼,而與具體設(shè)備相關(guān)的部分則包含在PDD 層中,操作系統(tǒng)內(nèi)核通過(guò)M DD 來(lái)調(diào)節(jié)某個(gè)特定的PDD 例程,從而達(dá)到控制和訪(fǎng)問(wèn)硬件信息的目的2。使用分層結(jié)構(gòu)開(kāi)發(fā)驅(qū)動(dòng)程序時(shí),開(kāi)發(fā)者
10、可以重用由微軟提供的M DD 層代碼,其他的工作僅僅是編寫(xiě)與特定硬件相關(guān)的代碼。多層結(jié)構(gòu)并不適合所有的驅(qū)動(dòng)程序開(kāi)發(fā),因?yàn)樵诖a層之間必須編寫(xiě)額外的調(diào)用操作,在一些對(duì)性能要求較高的應(yīng)用中單層結(jié)構(gòu)可能更符合要求。單層結(jié)構(gòu)中包含了所有必須的操作,既有中斷服務(wù)例程,也有與具體平臺(tái)相關(guān)的代碼,這種結(jié)構(gòu)避免了層次之間的相互調(diào)用所造出的系統(tǒng)資源的浪費(fèi)。也就是說(shuō)單層結(jié)構(gòu)與多層結(jié)構(gòu)相比更為簡(jiǎn)單和高效,但缺點(diǎn)是移植性和可讀性相對(duì)較差。在本質(zhì)上,Windows CE 的設(shè)備驅(qū)動(dòng)程序都是一些動(dòng)態(tài)鏈接庫(kù)(.dll 文件,這些D LL 向內(nèi)核提供了一些入口函數(shù),使設(shè)備管理模塊可以通過(guò)這些函數(shù)與具體的硬件設(shè)備進(jìn)行通信3。3
11、2第3期王少紅等:Windows CE 平臺(tái)上開(kāi)發(fā)采集板驅(qū)動(dòng)程序圖1AX 10410A 數(shù)據(jù)采集板工作流程3硬件介紹艾訊AX10410A 型高速數(shù)據(jù)采集卡,支持12位的16通道單端或8通道差動(dòng)模擬量輸入,2通道12位模擬量輸出,8位TT L/DT L 的數(shù)字輸入輸出,1通道計(jì)數(shù)器/定時(shí)器,可編程增益有1、2、4、8。是一個(gè)基于PC/104總線(xiàn)結(jié)構(gòu)的嵌入式模塊。數(shù)據(jù)采集板的工作流程如圖1所示。4程序開(kāi)發(fā)由于硬件制造商一般不提供Win 2dows CE 驅(qū)動(dòng)程序,于是從應(yīng)用角度出發(fā)只有自行開(kāi)發(fā)CE 驅(qū)動(dòng),并進(jìn)行了測(cè)試。驅(qū)動(dòng)程序采用單層結(jié)構(gòu)。在開(kāi)發(fā)過(guò)程中,應(yīng)用了帶LE D 的實(shí)驗(yàn)板進(jìn)行直觀(guān)的測(cè)試。通
12、過(guò)它,8位的數(shù)字輸出可以直接由8個(gè)發(fā)光二極管顯示,亮代表此位為0、滅代表此位為1;通過(guò)跳線(xiàn)可以更改各數(shù)字輸入位的值,未接地時(shí)輸入位為1,跳線(xiàn)后輸入位為0;在模擬輸入端和地線(xiàn)間接入測(cè)試電壓,通過(guò)萬(wàn)用表讀數(shù)和程序輸出之間的比較,可以檢驗(yàn)?zāi)M輸入功能;當(dāng)程序向采集板寫(xiě)出時(shí),也可以用萬(wàn)用表測(cè)出真正的模擬輸出。通過(guò)程序代碼實(shí)現(xiàn)這些功能的關(guān)鍵點(diǎn)在于將采集卡的物理地址轉(zhuǎn)換為CE 系統(tǒng)中的模擬地址。這是因?yàn)镃E 系統(tǒng)中對(duì)物理地址的訪(fǎng)問(wèn)都是基于保護(hù)模式的,只有在物理地址映射為虛擬地址后,程序才能訪(fǎng)問(wèn)。下面給出由采集板實(shí)現(xiàn)數(shù)字輸出、數(shù)字輸入、模擬輸入、模擬輸出以及脈沖發(fā)送的主要代碼。全局變量的定義:int iOu
13、tData ,iCinData ;/輸出、輸入變量int iChannel ,iG ain ;/通道、增益變量PHY SIC A L-ADDRESS P ortAddress ;/物理地址變量PUCH AR MappedBase =NU LL ;/基地址映射變量依據(jù)采集板上位置開(kāi)關(guān)的設(shè)定給變量賦值:P ortAddress.LowPart =0x300;P ortAddress.HighPart =0;/將采集板的首地址賦給P ortAddress初始化:測(cè)試掃描寄存器(基地址加2:WRITE -PORT -UCH AR (MappedBase +2,0x55;/向掃描寄存器寫(xiě)入0xaaj =
14、RE AD-PORT -UCH AR (MappedBase +2;if (j !=0x5542北京機(jī)械工業(yè)學(xué)院學(xué)報(bào)第19卷MessageBox(NU LL,TEXT(“ax10410not exist”,TEXT(read data”,M B-OK;WRITE-PORT-UCH AR(MappedBase+2,0xaa;/向掃描寄存器寫(xiě)入0xaaj=RE AD-PORT-UCH AR(MappedBase+2;if(j!=0xaaMessageBox(NU LL,TEXT(“ax10410not exist”,text(“read data”,M B-OK;測(cè)試控制寄存器(基地址加9:WRI
15、TE-PORT-UCH AR(MappedBase+9,0x55;/向控制寄存器寫(xiě)入j=RE AD-PORT-UCH AR(MappedBase+9;if(j!=0x55MessageBox(NU LL,TEXT(“ax10410not exist”,TEXT(read data”,M B-OK;WRITE-PORT-UCH AR(MappedBase+9,0xaa;/向控制寄存器寫(xiě)入0xaaj=RE AD-PORT-UCH AR(MappedBase+9;if(j!=0xaaMessageBox(NU LL,TEXT(“ax10410not exist”,text(“read data”,M
16、 B-OK;數(shù)字輸出(DO:MappedBase=(PUCH ARMm MapI oS pace(P ortAddress,16,FA LSE;/獲取基地址映射WRITE-PORT-UCH AR(MappedBase+3,iOutData;/向數(shù)字輸出寄存器寫(xiě)出數(shù)字輸入(DI:iCinData=RE AD-PORT-UCH AR(MappedBase+3;/讀取數(shù)字輸入寄存器模數(shù)轉(zhuǎn)換(ADCstart=stop=iChannel;/單通道轉(zhuǎn)換iChannel=start|(stop4;WRITE-PORT-UCH AR(MappedBase+2,iChannel;/設(shè)置轉(zhuǎn)換通道WRITE-PO
17、RT-UCH AR(MappedBase+11,iG ain;/設(shè)置轉(zhuǎn)換增益通過(guò)軟件觸發(fā)方式進(jìn)行模數(shù)轉(zhuǎn)換int data-h,data-1,ch,data;WRITE-PORT-UCH AR(MappedBase+9,0;/采用軟件觸發(fā)方式WRITE-PORT-UCH AR(MappedBase,0;/啟動(dòng)軟件觸發(fā)for(int i=0;i1000,i+;/延遲while(i=RE AD-PORT-UCH AR(MappedBase+8&0x80!=0;/判斷是否準(zhǔn)備好AD轉(zhuǎn)換dat-1=RE AD-PORT-UCH AR(MappedBase;/從base+0中取出轉(zhuǎn)換后的低字節(jié)dat-h=
18、RE AD-PORT-UCH AR(MappedBase+1;/從base+1中取出轉(zhuǎn)換后的高字節(jié)ch=(data-1&0x0f;/讀取轉(zhuǎn)換通道dat=(data-h4;if(i=RE AD-PORT-UCH AR(MappedBase+8&0x40=0/判斷是否為雙極模式MessageBox(NU LL,TEXT(“Now is Bipolar!”,TEXT(“B OR U”,M B-OK;52第3期王少紅等:Windows CE平臺(tái)上開(kāi)發(fā)采集板驅(qū)動(dòng)程序dat-=2048;wsprintf(szBu f,TEXT(“Nchannel%dNdata%dn”,ch,data;MessageBox(NU LL,szBu f,TEXT(“DAT A:”,M B-OK;判斷差動(dòng)模式或單端模式:if(RE AD-PORT-UCH AR(MappedBase+8&0x20=0x20;/單極:bit5=1使用通道0:WRITE-PORT-UCH AR(MappedBase+4,dat-l;WRITE-PORT-UCH AR(MappedBase+5,dat-h;脈沖發(fā)送:int iPulseWide,iPusleNum;/定義脈沖寬度和脈沖數(shù)Bool Dir;/定義電機(jī)旋轉(zhuǎn)方向MappedBase =(PUCH ARMm MapI oS pace(P ortAddr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園白露教案反思學(xué)習(xí)小故事
- 建筑施工特種作業(yè)-建筑焊工真題庫(kù)-3
- 2025屆湖北省八市高三下學(xué)期3月聯(lián)考語(yǔ)文試題(解析版)
- 2024-2025學(xué)年浙江省嘉興市高一上學(xué)期期末考試語(yǔ)文試題(解析版)
- 新疆日新恒力橡塑有限公司年處理6萬(wàn)噸廢舊輪胎熱解項(xiàng)目報(bào)告書(shū)報(bào)告書(shū)簡(jiǎn)寫(xiě)本
- 江蘇勃晟包裝有限公司年產(chǎn)2300噸日用塑料制品(焊絲盤(pán)、包裝盒、灑水壺、花盆)及300噸流延膜項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 話(huà)劇熱泉心得體會(huì)
- 環(huán)境工程實(shí)驗(yàn)課件下載
- 環(huán)境工程專(zhuān)題課件
- 腦出血患者營(yíng)養(yǎng)治療講課件
- 高中家長(zhǎng)會(huì) 高三上學(xué)期迎戰(zhàn)首考家長(zhǎng)會(huì)課件
- 四川省第二地質(zhì)大隊(duì)招聘考試真題2024
- 學(xué)習(xí)解讀公平競(jìng)爭(zhēng)審查條例實(shí)施辦法課件
- 基于物聯(lián)網(wǎng)的智能家居安全監(jiān)控系統(tǒng)建設(shè)方案
- 2024年中國(guó)農(nóng)業(yè)銀行深圳市分行招聘筆試真題
- 技能培訓(xùn)學(xué)校的部門(mén)設(shè)置與職責(zé)劃分
- 大數(shù)據(jù)分析在運(yùn)維中的應(yīng)用-第1篇-深度研究
- 七年級(jí)道法下冊(cè) 第二學(xué)期 期末綜合測(cè)試卷(人教河北版 2025年春)
- 2025年中國(guó)鱈魚(yú)行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 交流激勵(lì)下的鋸齒環(huán)狀表面介質(zhì)阻擋放電特性
- 持續(xù)質(zhì)量改進(jìn)提高霧化吸入正確率
評(píng)論
0/150
提交評(píng)論