下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于CPCI總線的數(shù)據(jù)網(wǎng)羅卡及其驅(qū)動(dòng)程序方案摘要介紹了一種基于pi總線的下速數(shù)據(jù)網(wǎng)羅卡硬件及其d驅(qū)動(dòng)程序方案要收,詳細(xì)闡年夜黑策畫(huà)機(jī)經(jīng)由過(guò)程驅(qū)動(dòng)程序與數(shù)據(jù)網(wǎng)羅卡硬件舉止下速數(shù)據(jù)交換的要收,操做driverrks完成了開(kāi)意下速數(shù)據(jù)傳輸要供的d驅(qū)動(dòng)程序方案,真現(xiàn)了數(shù)據(jù)網(wǎng)羅卡與主機(jī)內(nèi)存之間數(shù)據(jù)傳輸?shù)膁a要收。閉鍵詞數(shù)據(jù)網(wǎng)羅;d;pi;driverrks;da1引止pi總線機(jī)械特征上有ve總線的穩(wěn)固特征,正在數(shù)據(jù)傳輸圓里采與與pi劃一的傳輸要收。下速數(shù)據(jù)網(wǎng)羅系統(tǒng)中,總線數(shù)據(jù)傳輸本領(lǐng)要供強(qiáng),數(shù)據(jù)網(wǎng)羅系統(tǒng)采與pi總線,極年夜前進(jìn)了數(shù)據(jù)網(wǎng)羅卡的數(shù)據(jù)傳輸本領(lǐng)。為了充分闡揚(yáng)pi總線數(shù)據(jù)傳輸快、下牢靠的下風(fēng),要挨
2、面好基于pi總線的數(shù)據(jù)網(wǎng)羅卡與策畫(huà)機(jī)主機(jī)之間的通信標(biāo)題問(wèn)題。inds2000操做系統(tǒng)對(duì)pi總線供給良好的支撐,該操做系統(tǒng)下,驅(qū)動(dòng)程序的編寫基于一種新的驅(qū)動(dòng)模型d(indsdriverdel),d為inds98/2000/xp操做系統(tǒng)的裝備驅(qū)動(dòng)程序的方案供給了統(tǒng)一的框架。本文介紹的基于pi總線的下速數(shù)據(jù)網(wǎng)羅卡用于某數(shù)字化儀digitizer中,借助用driverrks開(kāi)拓的d裝備驅(qū)動(dòng)程序,用戶使用程序戰(zhàn)數(shù)據(jù)網(wǎng)羅卡之間互相通信,真現(xiàn)主機(jī)命令的坐即傳支戰(zhàn)板卡網(wǎng)羅數(shù)據(jù)的下速傳輸。2硬件系統(tǒng)方案針對(duì)沒(méi)有同的使用要供,pi接心卡方案采與的方案方案,一是操做pi公用接心芯片與fpga相結(jié)開(kāi)的方案,公用接心芯
3、片完成從pi總線到本天用戶總線的轉(zhuǎn)接;fpga靈敏的轉(zhuǎn)換邏輯時(shí)序,以逆應(yīng)沒(méi)有同的中設(shè)時(shí)序要供;兩是采與可編程邏輯器件真現(xiàn)通用pi總線接心,很多消費(fèi)可編程邏輯器件的廠商皆供給經(jīng)過(guò)寬酷測(cè)試的pi接心成效模塊,由用戶舉止簡(jiǎn)樸的組開(kāi)方案便可??紤]到開(kāi)拓周期,本pi數(shù)據(jù)網(wǎng)羅卡采與前一種方案要收,用pi公用接心芯片真現(xiàn)。系統(tǒng)硬件組成如圖1所示。本數(shù)據(jù)網(wǎng)羅卡pi接心芯片選用plx公司的pi9054,pi9054供給兩個(gè)自力的可編程da操做器,有兩個(gè)da通講,每一個(gè)通講均支撐blk(塊傳輸)戰(zhàn)satter/gather(散/散傳輸)的da方法,pi總線端支撐32位/33hz;本天端可編程真現(xiàn)8、16、32位數(shù)
4、據(jù)寬度,傳輸速度最下可抵達(dá)132字節(jié)/秒。本天總線端時(shí)鐘最下可達(dá)50hz,支撐復(fù)用j形式戰(zhàn)非復(fù)用的32位所在/數(shù)據(jù)形式。pi9054工作方法有:間接主形式,間接從形式戰(zhàn)da形式。間接主形式由本天處理器訪謁pi總線上的i/接心戰(zhàn)策畫(huà)機(jī)內(nèi)存資本,本天處理器倡導(dǎo)數(shù)據(jù)的傳輸。間接從形式指pi總線做為主控裝備倡導(dǎo)對(duì)本天總線資本的訪謁,包含對(duì)本天處理器的操做戰(zhàn)對(duì)本天內(nèi)存的訪謁。da形式支撐pi總線與本天總線之間的突收傳輸。pi9054真現(xiàn)了pi總線到局部端總線的轉(zhuǎn)接,用該芯片做方案時(shí),沒(méi)必要對(duì)pi標(biāo)準(zhǔn)做片里深化年夜黑,便當(dāng)用戶正在方案時(shí)專注于詳細(xì)成效的真現(xiàn)。本方案中pi9054設(shè)置為非復(fù)用的32位所在/數(shù)
5、據(jù),即形式,采與間接從形式戰(zhàn)da方法分別傳輸主機(jī)命令戰(zhàn)數(shù)據(jù)網(wǎng)羅卡網(wǎng)羅到的數(shù)據(jù);可編程邏輯器件fpga里邊設(shè)置一個(gè)fif做為緩沖器,當(dāng)主機(jī)背數(shù)據(jù)網(wǎng)羅卡收支命令時(shí),fif做為命令數(shù)據(jù)的緩沖器,命令數(shù)據(jù)收支終了,惹起dsp的一此截至,dsp從fif里讀出命令數(shù)據(jù),對(duì)命令分析,完成真踐的硬件操做;當(dāng)主機(jī)稀讀與數(shù)據(jù)網(wǎng)羅卡網(wǎng)羅到的數(shù)據(jù)時(shí),dsp對(duì)sra中數(shù)據(jù)做預(yù)處理,上傳到fpga里邊設(shè)置的fif中,那時(shí)fif做為數(shù)據(jù)網(wǎng)羅卡上傳數(shù)據(jù)的緩沖器,當(dāng)fif數(shù)據(jù)謙時(shí),惹起pi截至,照顧上層使用程序讀與數(shù)據(jù)。eepr中存放裝備號(hào),廠商號(hào)和本天總線的基所在空間,i/空間,截至操做疑號(hào)等疑息,初初化時(shí),系統(tǒng)將eepr設(shè)
6、置參數(shù)拆進(jìn)pi設(shè)置存放器,并根據(jù)本天總線對(duì)內(nèi)存,i/端心戰(zhàn)截至的需供統(tǒng)一分別,自動(dòng)分撥系統(tǒng)資本。3數(shù)據(jù)網(wǎng)羅卡d驅(qū)動(dòng)程序方案3.1d模型(indsdriverdel)簡(jiǎn)述d模型(indsdriverdel)是微硬公司為inds98戰(zhàn)inds2000的驅(qū)動(dòng)程序方案的一種架構(gòu),正在d驅(qū)動(dòng)程序模型中,每一個(gè)硬件裝備最少有兩個(gè)驅(qū)動(dòng)程序。其中一個(gè)為成效驅(qū)動(dòng)程序,它理解硬件工作的局部細(xì)節(jié),負(fù)責(zé)初初化i/操做,處理i/操做完成時(shí)所帶去的截至事變,為用戶供給與裝備相恰當(dāng)?shù)牟僮龇椒?;另外一個(gè)驅(qū)動(dòng)程序?yàn)榭偩€驅(qū)動(dòng)程序,它負(fù)責(zé)挨面硬件與策畫(huà)機(jī)的毗鄰,總線驅(qū)動(dòng)程序由操做系統(tǒng)供給。ind2000系統(tǒng)規(guī)劃圖如圖2所示,使用程
7、序挪用inds子系統(tǒng)in32api,那個(gè)挪用由系統(tǒng)處事接心做用到i/挨面器,i/挨面器舉止需要的參數(shù)婚配戰(zhàn)操做安好性檢查,然后由那個(gè)懇供規(guī)劃出契開(kāi)的irp(i/requestpakage)。irp是ddk定義的一個(gè)數(shù)據(jù)規(guī)劃,具有豐富的成員,對(duì)于單層驅(qū)動(dòng)程序,間接擔(dān)任并真止那個(gè)懇供包,完成對(duì)硬件的操做,從而完成i/懇供工作,并將真止的結(jié)果經(jīng)由過(guò)程i/挨面器返回使用程序;對(duì)于多層驅(qū)動(dòng)那么將驅(qū)動(dòng)程序分紅幾層,每層驅(qū)動(dòng)再把i/懇供分別成更簡(jiǎn)樸的懇供,以傳給更基層的驅(qū)動(dòng)真止。圖2inds2000系統(tǒng)規(guī)劃3.2驅(qū)動(dòng)程序方案真現(xiàn)該數(shù)據(jù)網(wǎng)羅卡驅(qū)動(dòng)程序完成以下成效:使用程序操做數(shù)據(jù)網(wǎng)羅卡工作方法,背數(shù)據(jù)網(wǎng)羅卡工
8、作方法緩沖器收支工作方法操做字;使用程序查詢數(shù)據(jù)網(wǎng)羅卡工作形態(tài),從數(shù)據(jù)網(wǎng)羅卡工作狀緩沖器讀與工作形態(tài)字;為了使使用程序能實(shí)時(shí)處理數(shù)據(jù)網(wǎng)羅卡上網(wǎng)羅到的數(shù)據(jù),sra與主機(jī)內(nèi)存之間要真現(xiàn)da方法的數(shù)據(jù)傳輸。采與v+ddk+driverrks舉止驅(qū)動(dòng)程序開(kāi)拓,driverrks為驅(qū)動(dòng)程序開(kāi)拓供給指導(dǎo),可以便當(dāng)?shù)膭?chuàng)坐一個(gè)驅(qū)動(dòng)程序框架。上里分別分析操做命令戰(zhàn)da方法傳輸數(shù)據(jù)的真現(xiàn)要收。1)主機(jī)收支數(shù)據(jù)網(wǎng)羅卡操做命令真現(xiàn)driverrks操做keryrange戰(zhàn)kirange真現(xiàn)內(nèi)存戰(zhàn)i/映照空間的讀寫,經(jīng)由過(guò)程設(shè)置eepr,將pi9054的base2空間設(shè)定為一個(gè)內(nèi)存映照空間,局部端fpga上設(shè)置的fif
9、所在空間映照到該內(nèi)存空間,多么對(duì)fif的訪謁,便是訪謁base2空間。驅(qū)動(dòng)程序中,創(chuàng)坐東西keryrange_eryrangefrb2,并正在nstartdevie(kirpi)例程中對(duì)該東西初初化,使該東西與base2空間聯(lián)絡(luò)閉系,初初化當(dāng)前,驅(qū)動(dòng)程序其他例程便可以操做東西_eryrangefrb2,挪用keryrange類的成員函數(shù)ind、in、inb、utd、ut、utb完成對(duì)pi9054base2空間的單字、字、字節(jié)的輸進(jìn)輸出操做,也便是對(duì)數(shù)據(jù)網(wǎng)羅卡fpga里邊f(xié)if單字、字、字節(jié)的輸進(jìn)輸出操做。對(duì)i端心的訪謁一樣,只是操做的是kirange類去完成。需要注意的是pi9054base0
10、、base1穩(wěn)固設(shè)置為內(nèi)存映照空間戰(zhàn)i/映照空間,用于pi9054內(nèi)部存放器的訪謁,base2、base3用戶自己根據(jù)eepr設(shè)置去設(shè)定為內(nèi)存映照空間年夜要i/0映照空間。正在驅(qū)動(dòng)程序方案過(guò)程中,經(jīng)常需要設(shè)置戰(zhàn)查詢pi9054內(nèi)部存放器,訪謁pi9054內(nèi)部存放器,要用到base0或base1空間,本方案中,對(duì)pi9054內(nèi)部存放器訪謁操做base1,即i映照空間,比方:pi9054da通講0傳輸字節(jié)數(shù)存放器偏偏移為0 x8,假設(shè)要設(shè)定da通講0一次傳輸?shù)淖止?jié)數(shù),可以經(jīng)由過(guò)程初初化了的kirange東西_irange0的成員函數(shù)utd去真現(xiàn)。上里以主機(jī)由驅(qū)動(dòng)程序背數(shù)據(jù)網(wǎng)羅卡收支工作方法操做字為
11、例,分析keryrange成員函數(shù)訪謁硬件的要收,代碼中_eryrangefrb2為keryrange東西,用于base2空間的訪謁。ntstatusdzdevie:dzdriver_itl_rite_handler(kirpi)ntstatusstatus=status_suess;pulngpbuffer=(pulng)i.itlbuffer();/輸進(jìn)參數(shù)ulng_ffset=*pbuffer;/操做字存放器正在局部所在空間上的偏偏移ulng_data=*(pbuffer+2);/操做字_eryrangefrb2.ut(_ffset,_data);/背存放器寫操做字i.infratin(
12、)=sizef(ulng);/本次操做傳輸?shù)淖止?jié)數(shù)returnstatus;驅(qū)動(dòng)程序操做字寫函數(shù)中,起尾獲得從使用程序傳遞的偏偏移所在戰(zhàn)操做字的指針,偏偏移所在戰(zhàn)操做字存儲(chǔ)正在irp的assiatedirp域中systebuffer指針指背的緩沖區(qū),驅(qū)動(dòng)程序先獲得指背該緩沖區(qū)的指針,然后分別獲得偏偏移所在戰(zhàn)操做字,終了背該偏偏移所在寫操做字,程序真止后,即背硬件上的存放器寫進(jìn)了響應(yīng)的操做字。2)da方法讀與fpga上fif數(shù)據(jù)真現(xiàn)driverrks供給了3個(gè)類kdaadapter、kdatransfer、kndabuffer用于真現(xiàn)da操做,kdaadapter類用于創(chuàng)坐一個(gè)da適配器東西,分
13、析da通講特征戰(zhàn)供給串止化訪謁的處事;kdatransfer類用于啟動(dòng),操做da的傳輸和da傳輸竣過(guò)后數(shù)據(jù)由公用緩沖區(qū)拷貝靠使用程序數(shù)據(jù)緩沖區(qū);kndabuffer類用于申請(qǐng)系統(tǒng)供給的公用緩沖區(qū)。driverrks中,真現(xiàn)da傳輸過(guò)程如圖3所示。起尾正在裝備啟動(dòng)例程(nstartdevie)中創(chuàng)坐一個(gè)kdaadapter類真例且正在適配器東西描摹表中準(zhǔn)確描摹適配器東西;創(chuàng)坐一個(gè)kndabufer類真例,挪用該類的成員函數(shù)initialize初初化公用緩沖區(qū)大小;創(chuàng)坐一個(gè)kdatransfer類真例,并初初化為操做公用緩沖區(qū)做為da數(shù)據(jù)區(qū)。然后編寫kdatransfer回調(diào)函數(shù)ndaready,
14、回調(diào)函數(shù)中,先挪用成員函數(shù)bytereaining(),斷定命據(jù)能可傳輸完成。假設(shè)完成,那么挪用函數(shù)terinate()完成相該當(dāng)irp;已完成,那么挪用gettransferdesripters(),獵與當(dāng)前傳輸數(shù)據(jù)的物理所在,傳輸字節(jié)數(shù),然落后進(jìn)startda例程設(shè)置pi9054的da存放器,開(kāi)端真正數(shù)據(jù)傳輸。當(dāng)前段傳輸完成時(shí),pi9054的da截至操做器收死一個(gè)da截至,進(jìn)進(jìn)截至處事例程isr,截至處事例程中,起尾斷定能可為da通講的截至,然后抑造本次截至,再拂拭本次截至,終了毗鄰到延時(shí)過(guò)程挪用(dp)。延時(shí)過(guò)程挪用(dp)中,挪用kdatransfer類的ntinue()成員函數(shù),擔(dān)當(dāng)
15、下一個(gè)段傳輸,曲到da數(shù)據(jù)傳輸完畢,完成該irp。3.3驅(qū)動(dòng)程序戰(zhàn)使用程序之間的通信驅(qū)動(dòng)程序戰(zhàn)使用程序之間的通信包含使用程序與驅(qū)動(dòng)程序通信戰(zhàn)驅(qū)動(dòng)程序與使用程序的通信。使用程序與驅(qū)動(dòng)程序通信過(guò)程為,使用程序先用reatefile函數(shù)翻開(kāi)裝備,然后用devieintrl戰(zhàn)驅(qū)動(dòng)程序通信,devieintrl操做沒(méi)有同的命令字去挪用驅(qū)動(dòng)程序中的函數(shù),包含從驅(qū)動(dòng)驅(qū)動(dòng)程序讀與數(shù)據(jù)戰(zhàn)寫數(shù)據(jù)給驅(qū)動(dòng)程序兩種情況。也可以用readfile從驅(qū)動(dòng)中讀與數(shù)據(jù)年夜要用ritefile寫數(shù)據(jù)給驅(qū)動(dòng)程序,當(dāng)使用程序退出時(shí),用lsehandle啟鎖裝備。當(dāng)驅(qū)動(dòng)程序捕捉到特征事變收死時(shí),該當(dāng)照顧使用程序,與使用程序通信,驅(qū)動(dòng)程序戰(zhàn)使用程序通信的要收主要有兩種,devieintrl同程序用戰(zhàn)in32事變照顧。devieintrl同程序用時(shí),驅(qū)動(dòng)程序先將此irp保存起去,然后挪用i.arkpending(),終了驅(qū)動(dòng)程序返回status_pending,當(dāng)一個(gè)事變收死時(shí),驅(qū)動(dòng)程序再完成那個(gè)irp;操做in32事變照顧戰(zhàn)使用程序通信時(shí),使用程序起初創(chuàng)坐一個(gè)事變,間接將該事變句柄傳遞給驅(qū)動(dòng)程序,使用程序等待驅(qū)動(dòng)程序收支事變動(dòng)靜。4完畢語(yǔ)數(shù)據(jù)網(wǎng)羅是真
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 升旗演講稿500字【五篇】
- 個(gè)人實(shí)習(xí)心得合集15篇
- 海底兩萬(wàn)里讀后感作文10篇
- 事業(yè)單位辭職信15篇
- 學(xué)校外聘教師個(gè)人辭職報(bào)告(6篇)
- 2024-2025學(xué)年高中物理 第六章 傳感器 3 實(shí)驗(yàn):傳感器的應(yīng)用(1)教學(xué)實(shí)錄 新人教版選修3-2
- 2024年五年級(jí)數(shù)學(xué)下冊(cè) 一 分?jǐn)?shù)加減法第4課時(shí) 分?jǐn)?shù)王國(guó)與小數(shù)王國(guó)教學(xué)實(shí)錄 北師大版
- 三年級(jí)下冊(cè)語(yǔ)文教學(xué)計(jì)劃范文匯編6篇
- 重慶市西南大學(xué)附屬中學(xué)2024~2025學(xué)年高三上學(xué)期12月一診模擬考試生物試卷含答案
- 物流術(shù)語(yǔ)英文縮寫(LogisticstermsEnglishabbreviation)
- 研究型課程(跨學(xué)科)項(xiàng)目學(xué)習(xí)設(shè)計(jì)與實(shí)施案例
- 班車安全檢查表(2015-7-14)V3 0 (2)
- 煤層氣地質(zhì)學(xué)內(nèi)容
- 幼兒園幼兒園理事會(huì)成員一覽表
- 不動(dòng)產(chǎn)抵押合同(不動(dòng)產(chǎn)登記標(biāo)準(zhǔn)版)
- 學(xué)生對(duì)課堂教學(xué)滿意度調(diào)查
- 住房公積金中心窗口人員個(gè)人工作總結(jié)
- 明挖明頂方案
- 講師與平臺(tái)的合作協(xié)議
- 空白中心醫(yī)院魚(yú)骨圖分析模板
- 不等式在數(shù)學(xué)問(wèn)題中的應(yīng)用畢業(yè)論文
評(píng)論
0/150
提交評(píng)論