日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)
 更新時(shí)間:2008-8-4 4:41:02  點(diǎn)擊數(shù):21
【字體: 字體顏色
字  段值或含義字段值或含義
VendorID1172Class Code040000,即視頻卡
DeviceID8901Base Adress Register映射到I/O空間
Command0082Interrupt Line中斷號(hào)A
Status0400Interrupt Pin使用INTA中斷引腳

IDLE是系統(tǒng)的缺省狀態(tài),表示總線當(dāng)前空閑。通常,設(shè)備處在IDLE狀態(tài)時(shí),要檢測(cè)來自PCI總線和后級(jí)設(shè)備的信號(hào),便設(shè)備作出合適的響應(yīng)。設(shè)備處于S_DATA狀態(tài)時(shí)完成第一次數(shù)據(jù)傳輸,直接無條件跳到BACKOFF狀態(tài)。設(shè)備在BACKOFF狀態(tài)時(shí)進(jìn)行多個(gè)數(shù)據(jù)傳輸,直到主設(shè)備斷開訪問。需要注意的是:任何對(duì)I/O空間、配置空間以及內(nèi)存空間的突發(fā)傳輸?shù)牡刂烦^了設(shè)備映射地址的范圍時(shí),從設(shè)備要在此狀態(tài)建立STOP信號(hào),斷開訪問。當(dāng)幀信號(hào)無效或主設(shè)備終止傳輸時(shí),設(shè)備回到初始的IDLE狀態(tài)。BUS_BUSY狀態(tài)時(shí)總線忙,表示總線正在被其它設(shè)備使用。有兩條轉(zhuǎn)移路徑,若總線仍然被占用,則停留在BUS_BUSY狀態(tài),否則返回空頭狀態(tài)IDLE。

2.4 地址譯碼和命令譯碼模塊

地址譯碼模塊主要檢測(cè)PCI地址與本PCI卡的基地址是否匹配,可以通過AD[31:00]信號(hào)線上的值與設(shè)備的基地址作比較判斷。如果PCI地址落在設(shè)置的基地址范圍內(nèi),則PCI卡響應(yīng)當(dāng)前的總線操作。

命令譯碼模塊指示PCI卡響應(yīng)不同的總線命令,通過檢測(cè)C/BE[3:0]#信號(hào)線上的值,與表1列出的總線命令作比較,完成命令譯碼。

3 Windows9x系統(tǒng)下驅(qū)動(dòng)程序的設(shè)計(jì)

對(duì)PCI設(shè)備而言,驅(qū)動(dòng)程序提供了獲取PCI卡的配置空間信息、勾掛PCI中斷、總線數(shù)據(jù)傳輸?shù)裙δ。本文介紹使用Numega公司的VtooIsD軟件進(jìn)行驅(qū)動(dòng)設(shè)計(jì)的方法。

3.1 尋找PCI卡并讀取配置空間信息

配置空間包含了系統(tǒng)初始化PCI設(shè)備所必需的信息,首先需要遍歷整個(gè)硬件樹結(jié)構(gòu)來尋找指定的PCI設(shè)備。對(duì)于每一個(gè)設(shè)備,比較其廠商號(hào)(Vendor ID)和設(shè)備編號(hào)(Device ID),如果與設(shè)計(jì)的PCI卡的信息匹配,則讀取它的配置空間信息。

3.2 I/O方式下的讀寫操作

I/O方式下的讀寫比較簡(jiǎn)單。在得到PCI設(shè)備基地址信息后,通過C++語言中的端口讀寫函數(shù)inpd和outpd即可完成。舉例如下:

Temp=_inpd(gBaseAddresses);//Temp中得到讀出的數(shù)據(jù)

_outpd(gBaseAddresses,Data);//向基地址寫入數(shù)據(jù)

其中,gBaseAddresses為基地址值,Data為寫操作時(shí)的數(shù)據(jù)。

3.3 內(nèi)存方式下的讀寫

對(duì)于內(nèi)存方式下的讀寫,一個(gè)重要問題就是地址的映射。因?yàn)橛布O(shè)備讀寫的是物理內(nèi)存,但應(yīng)用程序讀寫的是虛擬地址,所以存在著將物理內(nèi)存地址映射到用戶程序線性地址的問題。

映射功能通過調(diào)用VtoolsD軟件的標(biāo)準(zhǔn)庫函數(shù)完成。根據(jù)給定的物理地址和所要求的空間大小,在系統(tǒng)內(nèi)存中分配相應(yīng)空間。首先,用PageReserve函數(shù)分配當(dāng)前保留頁的線性地址空間,再利用PageCommitPhys函數(shù)的服務(wù)對(duì)開始的線性地址空間分配相應(yīng)的物理地址空間。程序如下:

ULONG nPages=_NPAGES_(PhysAddress,SizeInByte);

Linear=PageReserve(PR_SYSTEM,nPages,PR_FIXED);

PageCommitPhys(PAGENUM(Linear),nPages,PAGENUM

(PhysAddress),PC_INCR|PC_WRITEABLE|PC_USER);

LinPageLock(PAGENUM(Linear),nPages,0);

其中,PhysAddress為給定的物理地址,SizeInBytes為需要的空間大小。

建立了物理RAM到系統(tǒng)內(nèi)存的映射后,就可以利用C++語言中的文件操作基類CFile類完成數(shù)據(jù)的讀寫。首先使用CFile類的成員函數(shù)Open打開文件,為保證數(shù)據(jù)讀寫的準(zhǔn)確無誤,必須使用二進(jìn)制方式打開;接下來使用Read和Write成員函數(shù)進(jìn)行文件讀寫;完畢后用Close成員函數(shù)關(guān)閉文件。

3.4 中斷的勾掛和處理

首先在ON_DEVICE_INIT函數(shù)中完成中斷的初始化。即通過前面讀取的PCI設(shè)備的中斷號(hào),使用VPICD_Virtualize_IRQ函數(shù)進(jìn)行中斷勾掛,外調(diào)用VPICD_Physically_Unmask函數(shù)開中斷。

RTCIRQHandle=VPICD_Virtualize_IRQ(&IRQdesc);

VPICD_Physically_Unmask(RTCIRQHandle);

然后在RTCInt_Handler函數(shù)中進(jìn)行中斷處理,可以進(jìn)行各種操作,例如向應(yīng)用程序發(fā)送自定義的消息來通知中斷的發(fā)生。

    3.5 與應(yīng)用程序的通信

一般地,應(yīng)用程序通過CreateFile函數(shù)調(diào)用VxD驅(qū)動(dòng)程序,得到一個(gè)VxD的文件句柄。使用如下的語句可以打開一個(gè)名為mydriver.VXD的文件,得到的句柄保存在hVxD中。

hVxD=CreateFile(\\.\mydriver.VXD,0,0,0,CREATE-NEW,FILE-FLAG-DELETE-ON-CLOSE,0);

通過句柄hVxD和DeviceIoControl函數(shù)就可以與驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)傳輸。

本文采用Altera公司的FLEX6000系列芯片,型號(hào)為EPF6016TC144-3,實(shí)現(xiàn)了簡(jiǎn)化的從設(shè)備模式PCI協(xié)議,并在Windows9x系統(tǒng)下實(shí)現(xiàn)驅(qū)動(dòng)程序的設(shè)計(jì)。整個(gè)系統(tǒng)工作良好。資源占用情況如下:可用I/O引腳113根,占用51根,占用率45%;可用邏輯單元數(shù)1320個(gè),占用151個(gè),占用率11%。

簡(jiǎn)化的PCI協(xié)議的實(shí)現(xiàn)占用較少的邏輯資源,可以靈活方便地進(jìn)行功能添加和改進(jìn),同時(shí)可以在同一塊芯片中集成其他用戶模塊,實(shí)現(xiàn)不同功能,以降低成本。目前,本系統(tǒng)已經(jīng)應(yīng)用在數(shù)據(jù)采集處理、圖像處理等方面。



  • 上一篇: 用于非接觸式IC卡的高頻接口模塊設(shè)計(jì)
  • 下一篇: 基于LabVIEW的USB實(shí)時(shí)數(shù)據(jù)采集處理系統(tǒng)的實(shí)現(xiàn)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1