DOS下PCI卡內(nèi)存映射空間的訪問方法_第1頁(yè)
DOS下PCI卡內(nèi)存映射空間的訪問方法_第2頁(yè)
DOS下PCI卡內(nèi)存映射空間的訪問方法_第3頁(yè)
DOS下PCI卡內(nèi)存映射空間的訪問方法_第4頁(yè)
DOS下PCI卡內(nèi)存映射空間的訪問方法_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、DOS 下PCI 卡內(nèi)存映射空間的訪問方法萬(wàn)鴻俊1,魏天水2,劉莉1(1.清華大學(xué)北京100084;2.哈爾濱精達(dá)測(cè)量?jī)x器有限公司黑龍江哈爾濱150001摘要:簡(jiǎn)述了PCI 自動(dòng)配置機(jī)制,說明了保護(hù)模式和實(shí)模式的內(nèi)存管理機(jī)制以及兩者之間的聯(lián)系,描述了DOS 操作系統(tǒng)下訪問PCI 設(shè)備的基本原理和步驟,具體給出了2種訪問內(nèi)存映射局部空間的方法,解釋了2種方法各自的優(yōu)缺點(diǎn)和使用范圍,通過例程對(duì)相應(yīng)的方法進(jìn)行了說明,描述了軟件最終使用效果。關(guān)鍵詞:DOS ;內(nèi)存映射;保護(hù)模式;G D T ;描述符中圖分類號(hào):TP342文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X (20061604302Methods

2、 of Accessing PCI Memory mapped Space in DOSWAN Hongjun 1,WEI Tianshui 2,L IU Li 1(1.Tsinghua University ,Beijing ,100084,China ;2.Harbin Jingda Measuring Inst rument Corporation L td.,Harbin ,150001,China Abstract :This paper presents the mechanism of PCI configuration ,explains the memory manageme

3、nt mechanisim of the protect mode and real mode ,describes the principle and process of accessing PCI devices in DOS ,gives two methods on how to access the local space based on memorymapped ,explains the advantage and the application range of each method ,gives oneexample and describes the effect o

4、f the software.K eywords :DOS ;memorymapped ;protect mode ;G D T ;descriptor收稿日期:20060306隨著高性能微處理器的不斷涌現(xiàn),ISA 總線已經(jīng)不適合計(jì)算機(jī)技術(shù)發(fā)展的需要,PCI 總線目前已經(jīng)成為微機(jī)系統(tǒng)總線的事實(shí)標(biāo)準(zhǔn)。PCI 總線是Intel 公司推出的總線標(biāo)準(zhǔn),為32/64位地址數(shù)據(jù)復(fù)用總線,支持猝發(fā)傳輸和即插即用,具有兼容性好、傳輸速度高等優(yōu)點(diǎn)。目前大部分計(jì)算機(jī)主板已經(jīng)取消了ISA 總線接口的設(shè)計(jì),PCI 設(shè)備有完全取代ISA 設(shè)備的趨勢(shì)。DOS 和Windows 是在數(shù)控設(shè)備中使用較多的2種操作系統(tǒng)。Win

5、dows 雖然有多任務(wù)、多線程、界面美觀等優(yōu)點(diǎn),但是其實(shí)時(shí)性在某些工業(yè)控制場(chǎng)合難以符合要求,并且由于系統(tǒng)復(fù)雜而導(dǎo)致穩(wěn)定性降低。相比而言,DOS 需要的硬件資源少、實(shí)時(shí)性好、穩(wěn)定性高。在一些DOS 可以勝任或是系統(tǒng)實(shí)時(shí)性、可靠性要求很高的場(chǎng)合,仍然還是選用DOS 作為其軟件平臺(tái)1。因此,在DOS 下如何能夠使用性能更加優(yōu)良的PCI 板卡就成為許多工業(yè)應(yīng)用場(chǎng)合需要解決的問題。筆者需要在基于DOS 操作系統(tǒng)的齒輪測(cè)量中心上使用PCI 運(yùn)動(dòng)控制卡,因此開展了這方面的研究。1PCI 自動(dòng)配置機(jī)制PCI 協(xié)議定義了3個(gè)物理空間:配置空間、內(nèi)存空間、I/O 空間。對(duì)一個(gè)PCI 設(shè)備的訪問既可以映射到內(nèi)存空間

6、,同時(shí)也可以映射到I/O 空間。這些都取決于配置空間寄存器的內(nèi)容。計(jì)算機(jī)系統(tǒng)在上電之后的POST 階段訪問每個(gè)PCI 設(shè)備的配置空間,取得各個(gè)PCI 設(shè)備的設(shè)備ID 、制造商ID 、申請(qǐng)的內(nèi)存或I/O 地址空間大小、中斷號(hào)等系統(tǒng)資源,然后根據(jù)這些設(shè)備申請(qǐng)情況把基地址和中斷號(hào)等數(shù)據(jù)寫入PCI 配置空間寄存器,從而正常訪問PCI 設(shè)備,這就是PCI 總線的自動(dòng)配置機(jī)制。本文主要討論如何使用這些基址訪問PCI 設(shè)備的局部空間。2保護(hù)模式和實(shí)模式的內(nèi)存管理機(jī)制Intel 第一代微處理器8086有20條地址線,最大尋址空間為1M ,只有實(shí)模式工作方式。Intel 第三代處理器80386是第一款32位微處

7、理器,有32根地址線,有實(shí)模式、保護(hù)模式、虛擬8086模式3種工作方式。在實(shí)模式下,80386與8086兼容,只能使用低20根地址線,最大尋址空間仍為1M 。只有在保護(hù)模式下,32根地址線才可以尋址高達(dá)4G 的物理地址空間。Intel 公司后來(lái)的32位微處理器從Pentium 1到Pentium 4,這個(gè)基本的運(yùn)行機(jī)制沒有改變。如圖1所示,外部可見的是虛擬地址,程序員給出選擇子和偏移量,選擇子可以從G D T 表或者LD T 表中選擇一個(gè)描述符。GD T 表和LD T 表都是由描述符組成的集合,每個(gè)描述符包含了一個(gè)地址段的信息包括基地址、段現(xiàn)代電子技術(shù)2006年第16期總第231期 新型元器件

8、大小、段屬性等。把選擇子賦值給一個(gè)段寄存器在保護(hù)模式中實(shí)際上是給段寄存器裝載了對(duì)應(yīng)的描述符,這個(gè)段的特性由描述符決定。接下來(lái)用描述符指定的基地址加上給定的偏移量就得到了線性地址,這就是分段管理機(jī)制。分頁(yè)管理機(jī)制并不是保護(hù)模式必須的,如果禁用,線性地址就直接等于物理地址。這就是虛擬地址到物理地址的轉(zhuǎn)換過程2 。圖1保護(hù)模式下的地址轉(zhuǎn)換機(jī)制在DOS 實(shí)模式下,尋址方式是大家比較熟悉的段基址316+偏移址。但是實(shí)際上這種地址生成機(jī)制和保護(hù)模式在原理上是一致的。只是實(shí)模式下系統(tǒng)將段描述符的界限值自動(dòng)賦值為0xFFFF ,將給出的段寄存器的基地址316送入段描述符的基地址值,這樣就形成了實(shí)模式下每個(gè)段大

9、小只能為64k 并且可訪問最大地址為1M 的“假象”3。3PCI 內(nèi)存映射局部空間的訪問DOS 操作系統(tǒng)只能工作于處理器的實(shí)模式,因此一般情況下,運(yùn)行于DOS 操作系統(tǒng)的軟件最多只能訪問1M 以內(nèi)的內(nèi)存空間,其余的物理內(nèi)存對(duì)于他來(lái)說都是不可見的。另一方面,PCI 設(shè)備的內(nèi)存空間基地址是由系統(tǒng)自動(dòng)配置的,并且基地址通常會(huì)被分配到1M 以上的內(nèi)存空間(如0xFF9F0000。這樣,在DOS 的實(shí)模式下就無(wú)法訪問到這一段內(nèi)存,從而無(wú)法操作PCI 板卡。下面介紹解決這一問題的2種方法。3.10x15B IOS 中斷調(diào)用中斷號(hào)為0x15的BIOS 中斷調(diào)用實(shí)現(xiàn)了存儲(chǔ)器塊移動(dòng)的功能。首先在存儲(chǔ)器中分配保護(hù)

10、模式下使用的G D T 表所需要的內(nèi)存空間,定義傳送源段描述符和目標(biāo)段描述符,然后把G D T 表的地址裝入寄存器對(duì)ES :SI 中,傳送的字計(jì)數(shù)裝入CX 寄存器,再將塊移動(dòng)功能調(diào)用號(hào)0x87裝入A H 寄存器,最后執(zhí)行0x15中斷完成內(nèi)存數(shù)據(jù)塊移動(dòng),從而實(shí)現(xiàn)1M 以上內(nèi)存的訪問。表1G DT 表結(jié)果00H (描述符0空描述符08H (描述符1GD TR 的基地址和大小10H (描述符2源段描述符18H (描述符3目標(biāo)段描述符20H (描述符4代碼段描述符28H(描述符5棧段描述符如表1所示為功能調(diào)用所需要的G D T 表結(jié)構(gòu),其中描述符0,1,4,5可以都設(shè)置為0,描述符2和描述符3分別設(shè)置

11、傳送源段和目標(biāo)段的地址信息,且數(shù)據(jù)段的低8位屬性必須設(shè)置為93H 。0x15中斷調(diào)用的塊移動(dòng)功能實(shí)際上也是建立在保護(hù)模式傳送機(jī)制上的,每傳送一次數(shù)據(jù)都需要完成實(shí)模式進(jìn)入保護(hù)模式傳送數(shù)據(jù)返回實(shí)模式這樣一個(gè)流程,因此在效率上比較低。但是這種方法在微處理器的實(shí)模式和虛擬8086模式下都可以運(yùn)行。因此即使系統(tǒng)裝載了EMM386.exe 或是在Windows 98下的MSDOS 窗口,此方法都是可行的。下面給出一段例程,用此方法實(shí)現(xiàn)了在任意2個(gè)32位線性地址之間傳遞數(shù)據(jù)塊。程序采用TC2.0編譯,在Pentium4處理器平臺(tái)運(yùn)行成功。typedef struct Descriptorstruct /描述

12、符結(jié)構(gòu)unsigned int size ;unsigned int base low word ;unsigned char base mid byte ;unsigned char attr1;unsigned char attr2;unsigned char base high byte ;Descriptor ;typedef struct G D TStruct /G D T 表結(jié)構(gòu)Descriptor BlankDsc ;Descriptor G D TDsc ;Descriptor SrcDsc ;Descriptor DstDsc ;Descriptor BiosCS ;Des

13、criptor BiosSS ;G D T ;G D T Move G D T =0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x93,0x40,0,0,0,0,0x93,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0;void SetSrcAddr (G D T 3mcb ,unsigned long addr ,unsigned size /設(shè)置源段描述符mcb SrcDsc.base low word =addr &0x0000ffff ;mcb SrcDsc.base mid byte =addr 16;mcb SrcDsc.size =size ;mcb

14、 SrcDsc.base high byte =addr 24;void SetDstAddr (G D T 3mcb ,unsigned long addr ,unsigned size /設(shè)置目標(biāo)段描述符mcb DstDsc.base low word =addr &0x0000ffff ;mcb DstDsc.base mid byte =addr 16;mcb DstDsc.size =size ;mcb DstDsc.base high byte =addr 24;void MoveData (G D T mcb ,unsigned size /Int 15H 傳送數(shù)據(jù)struct

15、REGPAC K reg ;reg.r es =FP SEG (&mcb ;reg.r si =FP OFF (&mcb ;reg.r cx =size 1;reg.r ax =0x8700;intr (0x15, ;void memmove (unsigned long sou addr ,unsigned long des ad 2dr ,unsigned int num /數(shù)據(jù)移動(dòng)函數(shù)SetSrcAddr (&Move G D T ,sou addr ,num ;SetDstAddr (&Move G D T ,des addr ,num ;MoveData (Move G D T ,n

16、um ;3.2DOS 程序中嵌入保護(hù)模式程序段基于第2節(jié)的討論,由于實(shí)模式和保護(hù)模式在內(nèi)存管理機(jī)制上的共性,可以在DOS 實(shí)模式下先自行進(jìn)入保護(hù)模式給一個(gè)段寄存器(比如FS 裝載自定義的段描述符,(下轉(zhuǎn)第48頁(yè)儀器與儀表萬(wàn)鴻俊等:DOS 下PCI 卡內(nèi)存映射空間的訪問方法時(shí),就會(huì)發(fā)送ECN消息。(4Z MAC的同步僅僅發(fā)生在鄰近的發(fā)送者之間,而且這些發(fā)送者處在高競(jìng)爭(zhēng)狀態(tài)下,這樣時(shí)鐘同步的開銷被限制在發(fā)送者的鄰居關(guān)系內(nèi),同步的頻率就會(huì)根據(jù)發(fā)送者的速率調(diào)整,只需接收者的時(shí)鐘被動(dòng)地同步發(fā)送者的時(shí)鐘,不需要發(fā)送任何同步的消息。Z MAC協(xié)議比較好地結(jié)合了CSMA和TDMA的優(yōu)點(diǎn),結(jié)點(diǎn)可以在任何時(shí)隙都可

17、以發(fā)送數(shù)據(jù),信道利用率得到了提高,其缺點(diǎn)是在網(wǎng)絡(luò)開始的時(shí)候,會(huì)花費(fèi)大量的開銷來(lái)初始化網(wǎng)絡(luò),造成網(wǎng)絡(luò)能量的大量消耗。3MAC協(xié)議的評(píng)價(jià)標(biāo)準(zhǔn)由上述分析可知,影響MAC層協(xié)議的主要因素:(1能量約束由于傳感器本身結(jié)構(gòu)和應(yīng)用場(chǎng)合的限制,能量對(duì)于無(wú)線傳感器網(wǎng)絡(luò)的限制是最基本的,評(píng)價(jià)一個(gè)MAC層協(xié)議,首先要看協(xié)議對(duì)于能量節(jié)省方面的考慮,因此MAC 層協(xié)議不能過于復(fù)雜,應(yīng)該是簡(jiǎn)單而能量有效的。(2應(yīng)用約束由于任何一個(gè)無(wú)線傳感器網(wǎng)絡(luò)都是與某種具體應(yīng)用相關(guān),考慮MAC協(xié)議時(shí),應(yīng)考慮應(yīng)用相關(guān)的因素,這樣才可能優(yōu)化協(xié)議設(shè)計(jì),提高協(xié)議效率。(3網(wǎng)絡(luò)拓?fù)浜托阅芗s束所謂的拓?fù)浼s束是指無(wú)線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)在數(shù)目和分布密度

18、方面很容易發(fā)生變化(或是由于能量耗盡,或是由于新結(jié)點(diǎn)的加入,設(shè)計(jì)MAC協(xié)議時(shí)應(yīng)該注重考慮其拓?fù)鋭?dòng)態(tài)變化的性質(zhì)。所謂性能約束就是傳統(tǒng)網(wǎng)絡(luò)所考慮的問題,如信道的利用率,延遲、公平性等參數(shù)。4結(jié)語(yǔ)目前無(wú)線傳感器網(wǎng)絡(luò)MAC層協(xié)議的研究是一個(gè)熱點(diǎn),研究人員不斷地推出新的協(xié)議,本文針對(duì)目前的協(xié)議提出了一種分類方法,對(duì)各類典型協(xié)議進(jìn)行了分析比較,并給出了MAC層協(xié)議的評(píng)價(jià)標(biāo)準(zhǔn)。由于MAC層協(xié)議還處于不斷發(fā)展和完善之中,一種各方面都比較好的協(xié)議還有待進(jìn)一步研究。參考文獻(xiàn)1IEE E Computer Society L AN MAN Standards Committee.IEEE Std802.111999

19、,Wireless L AN Medium Access Control(MACand Physical Layer(P H YSpecifications.1999.2Ye W,Heidemann J,Estrin D.An Energy Efficient MACProtocol for Wireless Sensor Networks.IN FOCOM2002, New Y ork,N Y,J une2002.3L u G,Krishnamachari B,Raghavendra C.An Adaptive Ener2gy Efficient and Low Latency MAC fo

20、r Data G athering in Wireless Sensor Networks.(IPDPS04,2004:224230. 4Rhee L,Warrier A,Aia M,et al.Z MAC:a Hybrid MACfor Wireless Sensor Networks.SenSys05,November24,2005.作者簡(jiǎn)介楊軍男,1972年出生,博士生,講師。研究方向?yàn)樾畔⒕W(wǎng)格、計(jì)算機(jī)網(wǎng)絡(luò)。馬利亞女,工程師。研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)。(上接第44頁(yè)然后返回實(shí)模式,這樣就可以使用FS段寄存器加上給定的32位偏移址訪問1M以上的內(nèi)存空間。如果自定義的段描述符規(guī)定段基地址為0x00,段大小為0xFFFFFFFF,那么可以使用FS寄

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論