WindowsXP环境下的PCI设备驱动程序设计_第1页
WindowsXP环境下的PCI设备驱动程序设计_第2页
WindowsXP环境下的PCI设备驱动程序设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、| 维普资讯 h ttp:/SCIENCE INFORMATIONWindowsXP环境下的PCI设备驱动程序设计杨波柳征姜文利(国防科拉大学电子科学与工程学院湖南怅沙410073摘菱:本兗讨论了 WwdowsXP玮址下PCI设号职动輕斥的开丸与实现方胳,从嘻耳近备更动强序的几丰雀魅冋赠入手,民眸材电样連了 PCL说斗盟茹殍库的证计与实现方盍“所浸由的碑直疔羞比伍多丰设齐中秦用,社得崔舟的藪熱*关變词:操齐#址;PCI恿蚁】塑动曜呼:)riv«rSciulio| 维普资讯 h ttp:/| 维普资讯 h ttp:/1JIWPCI 的古义为外设部件生连(Pftripheral Cnmp

2、oofint InBnvmnM), 花支持64位数据传送、梦总线主揑和疑性突毘片式”山韩敕据传 输率雄大可达528Mh/Sc.在PU段番播人PH插槽上电石.总线配置机 构E动棍据PCI设备的醍求冥现配柱。A WindowiXFt中为了偌 证系境运行的安全性和可移植性.对甩JH朝序时于礎件的搽柞进行了 ftiSt不芟持直接对系躱哽件資躱的炭作"闵而在册汁开发PC设缶 时,緬妄开发相应的娈动程序来实现对 吒设备的捉作.用户应用程睜 逋过駅动稈序来访问PCI说酱"DrivexSiudm R用T Windows试备骡动径序开霍和应用禅序开髓 的戟件工為它也括 DnverAgpnlt

3、VktuhD,DrivfirWnrks4SofllCE 導參款功 链遢丸的工具。Dri帳诅阿t用于快速主成用于硬件测试的塑动朋奥; VtovlsD »WT VxD編捍全戟£”类儒龙持;OriyrrWo屉側白动生战 设链强豹程序源程序框架;S血】CE用于奧动程序的澗试a总之. DrivrrSliKliD所具备妁高性麗工具和时现代软件1:程的实践使得设备 晒动程序的集耳不RS®a由于目啊便用DDK相当需軌血阳nD点白 效率较低.所氐迭用DriverSiudio开发设备躺动程序担一种応敕实用 的方涼。2.用DriverWizairl生威靈动程再梅渠FU羽动编程*强们tt

4、先餐建立徑动开股的正鞘歼境。所用到的 工具主费有:Visual C+.OWifKlowii XP DDK.DrivecSiudhl.l 定要 按试牛先后厕序安裝*安牡完覘后.启用工具屮的 SelupDDKandSiBrtMSVC.则会看到在VC+工具栏中多岀几个工具选 项,它我叨Driver5ii>dio己植正确安罢a DrivriStud詁 包存有 DrivWiwH向导.使用它可以快產生底瓠站程序框犁只要遍过I R 娠的设査"即叩口动生雀上千荷的程序代码$实现PC【驅动功陡.只需 在相呢的地方加人功境代码即可实现口生嵐遐功框架需要綽过十一歩 的设ILJC中的关键疥有:L

5、74; 3申,选ff-WDM!B,冇WDJ1功储驰动裡序,叩DM过養器 婆动程序W AVStrrflm 动程憚三种,,这蹩逵功施駅动程序°2.第g歩,设負设备启动时从注册衣中装载的怫识菇数"当设褂 启动执行DriYPrEntn伪程时.将从注册去中装栽这理所费置的标识養 fi.如图1:Q 1 OriverStudiG 辆动同号竝3 ® 10涉,罡哭麻用稈序调用伽诚诞|心谥函敢对WDM聲动 程序通恼的校制命令匚3.PCI设餐更动程序的设计方灌KiHPCIiS备昭动程序面临的主夏-问題足如何谊衬哽杵操作+这 是根据PCI型号的车同而不同的,但基本功能就是FC p|HjK

6、fl,lX> 址叮及中詩控制° F面就WinxlMwXP环吼下这三方面的具体编程展 开时ife.3-1访问PCI设备的配置空间找们琲道,理循PC标椎的的备为我配赶信息撞供了一牛独立的 地址空间*每亍PC1恬邯有1/丁瓯数,并且毎牛画数部有自己配置 佶息的存縮空阎,空间为256牛字节”其中附64亍字节是头怕息“ PCI 协逞宦宣了多种头荷血拈式,通常头信息是通过结构休 PCLCONnG_HEADER_0 来龙义的。聂动桎呼通过类KPtiCgfi叱i蚀可口访问一中PCI董番配It 倍息"在使用这牛类之前.苜先龍知逍PCI设备的VendortD fU Ikvicr 1DO按

7、辟以卜涉陳可以建立对协问PC1址备配宣信息的豹动程序:(门声明一个类KP石CmfipLEHm型对SL.这牛时银谥常在鞠遵 (+申接收Vendor ID fll Device 1DC 如:#dflfir*F VENDORJD OxTCEOttdeflne DEVICEJD 0x1000KRiCwifimiraiion MyPtiCIgfVEX DOR_D, DEVICEID);试构建雄否正确,如聚为JL则对这牛PCI设备iE确能位°(3)巾请设备需蜃的齋薦。一股通过类ICK* 畋Request和 KR«»nun:eAwigiunrnt来避 冇资諒 申请 艮 井配,当

8、总 KReauihAAainmetJ 般只能便用(4对于支持多牛PCI扯备系疑主槌来说,骐动程序凰滇列举这 些设帝并且产生相应的设事対離"(51tt用娄KPHC血Eueiion屮的威园Bfi数就可以存聴PO配置 空间,玉2读写"0需存器提忤杲址区并U0睜间和内存空间,在零总线系藐结构屮,毎牛 总级也都支持内夸和I/O访何"一盤来悦,UO空何I町取在1/0总线冏 期中存取,扭是"棗址也抚许外圉筑址中的UO空间映射到乘蜒内存 空阖“因此.醐动程序在存靈I/O寄存春时*!&須整知道 悶带存器在 酬牛总线上,井H晏知道总城地址密間范国a总线号描述总线特徂

9、。在曬动趕序中*总罐类喇和啟険吕通戳在 初瞪牝时瑚超,檯用类Kfonfifiu刚ionQiE可以获樗这岂信息“懂照 以下方袪可以存JR PCI谏备的UO寄存th(I)构薩类KI込ngt的SR.W产生UO对醍,冥現设备寄存器的 瓠KJdiAH铁 Deviciua;Stdlu!i=Drvicrofin 讣讪 i 跆(isa,oT(hETOO)卩)便用类監bHan趾腔员确證存臓播存罟。#dpf5nf COMMANDO#definft STATUS 1#define WDATA 2(3)JtlT上面的操作”也可以憧用类KkRe护血实例来产生牛 实例便用成员画数来存取览岳寄存龄口实现如仁KJnReste

10、r CDikinHndRe£= Df*iceItHCOMM A N D);KJoReaicr SuIuRfVcv iwIosfTATUSJ;Comnifliid Res= UCHAR)RESET;UCHAR stiilu&=StaluBRf!;3.3实现屮断挖制许多黑动弄序需要控制换件中虧当中斷发生时,靈动程序髓执 行相应的中新IK务輛程ISR,由T 1SR总是运行在DJRQL±,BJt在 硬件中断眼务中.常使用dpc+即延迟过程nmr当处理器赴于 DlSPATCH_LEVELh时用即执幵杓应的DPC时聚*按IUT歩理.可以实现PC中折掠制;(门产生中斷KJmer的

11、一犷实例,即产生屮断(下转第9页| 维普资讯 h ttp:/| 维普资讯 h ttp:/| 维普资讯 h ttp:/2007年第1期SCIENCE INFORMATION| 维普资讯 h ttp:/| 维普资讯 h ttp:/的舞袪能凶较樑的連產找到第一个利離籽一卜不透明度不沟0的体 元即P3点和P占点。先尿出光纯与休数抵场的陶e交API WP2f$到计算机阳舉学 二堆艇敎屮申点廿割馳减1祛的心蜕+求出PL和P2的屮点Pm.U求 那一个不透朗度军为0体元即P策点为例“先在PI和Pm间去kf不蚪 很务)牛等审采样点.如杲k个采样点不遴册度之和为0,则P3点在 P2和血之何.将Pm作为新的PI.帝

12、则将张作为新的P2+循环枫 行.世到Pl flJPm之乐",Pm即为所求P3.同理可求P4点*井且P3. R4可同时壊,以加怏遽度'3,实验第果在内存256M,灶理AMD Athlon (im)XP 2440+的織机匕.柱 WlndowsIOOO Pmfftssional, VC+6.Q,使用 OpsnGL 的平台"实規光线投 肘体绘制算法,住光线投射法的荐伞环竹悝用上述加連算底完疲页 学图像的三堆聲建"下面四幅图尿甘别呆用传疣朮线送肘算医秤推文所迷的朮线透 射存法所绘制的結果"Ifl 5 £ 109-256*256的MH1帽博绘制结果

13、,圏 6屋256*25*256的MRI图像绘制結果它1均为&质曲«(家,绘制时 间比轨如去U(上播第10页)对象,逋竜便用屁设备类中谨人中新类的方祛产生中 新对象°采用这种方祛的忧点屋,当栩症设备对象产生时,中断对象就 产生.当燃遠时贋中斷时矗沿有初始址,当址备对栽在卸就过程中廉 请国时.中斷对象也白动核荫盟平貝怵方医如F:PClDh¥fTDevi«public KDevirt-(pubtir:Klntitmipi m_TheninrLijrt;):(打中晰脱务飙程1SR可以杲标淮曲数或君是自定宜的嚴生类嵐 时函数,蛆鬓和轴1代厳生类的鱼M函数“

14、LSK衆用标准函数比自毎丈 类的卓员函数有帚盘的优点。下面的函数可威声聊一伞标淮类型的1SR例程:传统算出=u»加逮算怯t=109传st算氓戶156加連算怯1= 2W體处理时IM*536350J503酷制肘间380325MSS0.6293.5炷时冋416.8289S9M9r4906M1罐制时風比轻羸(时RMtts)卩)恃统算法(b)加速算法BOOLEAN IPKINTERBLPT nlenupt.PVOID SendceContOi如果蹩用谁生类腔员审数实规ER+必加便用世MEMBER_ISR 在类中点测这个函数"廉定中斷对象谢数.如中箭忧先级、中断矢掀、橈式*於事牌 性、

15、总疑等通席这些粉敷确毎在设备类枸适I*屮实现,在PC】嚥功程 序中,逋常从注册我中获取参数.越JS进订贾理请求“,如下曲的程序KKiUftrRec|urfil HcRh|鼬J ”0 ”0);HegRrq-Addlrqtl HQRQ);W)使ffl成员两数!*roniwc|断开钩fita4.驱动穆序的安装PC】聲功程序编璋成剳垢,就会生JtJUnf的安装信息丈件。翌门将 其拷罚到:屉泸他jchlE乾旷目暈F"可从“控制面飯”的"系址襄 醬一-逛加磴件向导”幵蛤运行*按其向导一母一申世完感PCT贏融 魏序的餐装过程*證有一种更简甲的方袪.在菜承“幵熾*程序” "Com

16、puw&n: DrivcrSludiaT, - Tcsl* 中.ii!现了 一个 EZDrivcdnHtalkr 新:E具.可趾怏速地安装和卸戟WDM程序,如图2:S 5109*256*256MRI 圈性制站果©Ht统算法(b)加速韓崖ffi 6109*256*256制HI囹绘制茁果4.结论从实脸结果可以看出,舉用申文握出的加速算怯对相同的体数据 进行鱼建.绘制图悅站果的质*差别非常小+程对于109*256*25&的 MHJ圈煉绘制时间几乎縄少丁 U3,而时于256*256*256的刑旳阳掠 绘制时何几乎械少了 M2*所以區文提出的加速算法可衬.总 芳宜t【】脾年圣上

17、.堆#(鹫瑪可檯犹M.北京曲年犬卡出fl|社W,2& 29.石鞍英,黨文立一科卡计算可視优算怙与系疑M.北京:科学出IS牡一3 MarkL 3吗一 Displty of wifsA Fnwn Volume Kata (JJ-IEEt Gunpukr GnpkX AppLThHH J 9E&立一4:昨泽至t陶靈五,孚新圧.廿鼎机禺瑕学辜碑fM 一北克:清簞大学出*社. J995262-263,1,理丸菇"誅鶴民,英于故理映第与Phone光的体堆漏加建算怯口.中国 用,2000.9月常零桂祖鬪第?潮:KM8 W(fijftn.庄天龙,-忡篇于处简蛊祕!a的璋绘為明昭度快連

18、算怯口.上待变通大 学学AL2W2J ;Jff 36 卷堀期;K4W.T Pt择圣一用图惮空测为徉的徉蛉制技点园用三维敦搭场JJ.计算SVf报, 1W4J丙第7总第I 期:眈祷05S12 PCI暂动穆序安张處总界眾文帳据笔者前冥囲经魏,介塑了柱Windaw&XP%下开发PCI 卡坚动程序的滝程,给出了一蛮快連可行的弼肉方塞*通述上面的介 虬 可以看到便用Dri炖占tudin可以快連的生腔旳设番矚动程序框 能,然J&只畫粗据鏈件的实际耍求醉加韬应的功話优码錚可完疏相堰 的卑动程序“谨方塞锻程楷晰、編程高效、调试方昼开笈的?CI任銀 动程序离效可靠运行良好.英现了前期的目标1淨远征.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论