摘要:介紹PCF1536的設(shè)計(jì)原理和硬件結(jié)構(gòu);詳細(xì)討論了大容量FIFO的結(jié)構(gòu)及用CPLD實(shí)現(xiàn)FIFO控制器;計(jì)算PCF1536工作于Windows2000操作系統(tǒng)下允許的最大中斷延遲jb后將PCF1536應(yīng)用于多路D/A轉(zhuǎn)換器,指出Windows2000的中斷延遲遠(yuǎn)遠(yuǎn)小于41.2毫秒。
在視頻輸出、聲吶仿真等實(shí)際應(yīng)用中,經(jīng)常要求計(jì)算機(jī)能根據(jù)要求穩(wěn)定輸出連續(xù)數(shù)據(jù)流。然而,當(dāng)計(jì)算機(jī)工作于Windows2000操作系統(tǒng)下時(shí),由于該操作系統(tǒng)是一個(gè)多任務(wù)的非實(shí)時(shí)操作系統(tǒng),當(dāng)它收到外部設(shè)備發(fā)來的中斷時(shí),需要延遲一定時(shí)間間隔后,才開始執(zhí)行中斷服務(wù)程序。這樣,從計(jì)算機(jī)I/O口直接輸出的數(shù)據(jù)流只能是間歇的數(shù)據(jù)流,無法提供連續(xù)數(shù)據(jù)流,不能滿足實(shí)際應(yīng)用的需要。
幸運(yùn)的是,許多實(shí)際應(yīng)用只需要低速的連續(xù)數(shù)據(jù)流。可以利用PCI總線的高速數(shù)據(jù)傳輸特性,在PCI接口后加入一個(gè)大容量FIFO存儲(chǔ)器,高速的PCI數(shù)據(jù)流從FIFO存儲(chǔ)器的輸入端輸入,在FIFO的輸出端就能獲得低速的連續(xù)數(shù)據(jù)流。這樣屏蔽了Windows2000的非實(shí)時(shí)性,成功滿足實(shí)際應(yīng)用的需要。在圖1所示的具體應(yīng)用中,計(jì)算機(jī)與PCI卡之間通過PCI總線形成峰值速率達(dá)132MB/s的間歇數(shù)據(jù)流;PCI卡通過局部總線與大容量存儲(chǔ)器之間同樣是峰值速率達(dá)132MB/s的間歇數(shù)據(jù)流;最后通過多路D/A轉(zhuǎn)換電路獲得了速率為16MB/s的連續(xù)數(shù)據(jù)流。
圖1和圖2
為了便于應(yīng)用,將PCI接口模塊與大容量存儲(chǔ)器結(jié)合,設(shè)計(jì)了一塊能在Windows2000下以16MB/s的速率連續(xù)輸出數(shù)據(jù)的PCI卡PCFl536。
1 PCFl536的工作原理
PCI卡PCFl536是一個(gè)帶有1536KB FIFO的通用PCI卡;在Windows2000操作系統(tǒng)下,它能以16MB/s的速度連續(xù)輸出數(shù)據(jù)。圖2是PCFl536的結(jié)構(gòu)框圖,整個(gè)PCFl536包括PCI接口、大容量FIFO存儲(chǔ)器和驅(qū)動(dòng)器三個(gè)模塊。
1.1 PCI接口模塊
PCI接口模塊由PCI9052和配置EEPROM 93LC46組成。PCI9052是PLX技術(shù)公司的產(chǎn)品,兼容于PCI協(xié)議 (2.1版);它可作為PCI總線的從設(shè)備,支持32位數(shù)據(jù);突發(fā)傳輸。圖3是PCI9052與PCI金手指和存儲(chǔ)器模塊的連接示意圖。
PCI9052與存儲(chǔ)器有三種連接方式:數(shù)據(jù)地址復(fù)用、奴據(jù)地址非復(fù)用和ISA方式。在PCFl536中,PCI9052架用數(shù)據(jù)地址非復(fù)用方式連接FIFO存儲(chǔ)器。其時(shí)序參見文獻(xiàn)[1]。PCI9052與FIFO的連接信號(hào)中,ADS表示一次突發(fā)傳輸?shù)拈_始,BLAST表示一次突發(fā)傳輸?shù)慕Y(jié)束,LAD[0:31]為32位數(shù)據(jù),LBE[0:3]為字節(jié)有效信號(hào)。緩存后的時(shí)鐘輸出信號(hào)BCLKO經(jīng)74LS00送回PCI9052,同時(shí)也送到FIFO。FIFO半滿時(shí)發(fā)出的中斷信號(hào)通過LINTl1進(jìn)入PCI9052,再通過INTA發(fā)送給CPU。由于FIFO的寫入不需要地址,因此PCI9052與FIFO之間沒有地址連接。
1.2 存儲(chǔ)器模塊
1.2.1 存儲(chǔ)器組織
圖4
存儲(chǔ)器模塊由CPLD器件EPM7128SQCl00和四片F(xiàn)IFO器件AL422B組成。AL422B是AVERLOGIC公司的產(chǎn)品,每片AL422B包含384Kx8位DRAM,主要應(yīng)用于視頻輸出。在現(xiàn)有的FIFO存儲(chǔ)器中,AL422B具有最低的價(jià)格/存儲(chǔ)位比。這是PCFl536選擇使用AIA22B的主要原因。AL422B的結(jié)構(gòu)框圖如圖4所示。它能完成初始化、復(fù)位、寫和讀等四種操作。初始化操作發(fā)生在上電后0.1ms內(nèi),WRST和RRST保持為低電子,然后可以開始正常操作。復(fù)位操作中,WRST有效,則輸入數(shù)據(jù)地址設(shè)置為0且清空輸入緩存;RRST有效,則數(shù)據(jù)輸出地址設(shè)置為0且將數(shù)據(jù)預(yù)取到輸出緩存。當(dāng)WE有效時(shí),完成寫操作,在WCK上升沿將D17~D10寫入寫數(shù)據(jù)寄存器;WE無效時(shí),禁止寫操作,寫地址計(jì)數(shù)器保持不變。
四片AL422B通過位擴(kuò)展成384K×32位的FIFO存儲(chǔ)器,如圖5所示。
1.2.2 存儲(chǔ)器控制器
AIA22B雖然有不同的數(shù)據(jù)輸入和輸出端口,但與通用FIFO存儲(chǔ)器不同,它并不提供半滿信號(hào)、數(shù)據(jù)有效信號(hào)等。因此AL422B不是完全意義上的FIFO存儲(chǔ)器。在PCFl536上,使用一片可編程邏輯設(shè)備EPM7128作為FIFO控制器,全面控制AL422B的功能。從圖2和圖5可以看出,EPM7128為FIFO提供RCK、RRST、RE、D1[0:31]、OE、WE、TST、WRST和WCK等讀寫控制信號(hào);當(dāng)FIFO半滿時(shí)提供半滿信號(hào)HF;另外EPM7128為外設(shè)提供正負(fù)數(shù)據(jù)有效信號(hào)、4MHz和8MHz的時(shí)鐘佰弓毒世外設(shè)靈活使用。圖6是用VHDL語言對(duì)EPM7128編程而成的FIFO控制器。該控制器由JTAG模塊、寫模塊、讀模塊和控制模塊組成。計(jì)算機(jī)通過JTAG接口對(duì)EPM7128現(xiàn)場(chǎng)編程。當(dāng)PCI9052的數(shù)據(jù)準(zhǔn)備好后,寫模塊按LCLK時(shí)鐘將數(shù)據(jù)讀入,接著按WCK時(shí)鐘將數(shù)據(jù)寫入AL422B。在FIFO控制器的控制下,整個(gè)384K×32位的FIFO存儲(chǔ)器被分為A、B兩部分。當(dāng)數(shù)據(jù)從A部分讀出時(shí),PCI9052將數(shù)據(jù)寫入B部分;反之, 當(dāng)數(shù)據(jù)從B部分讀出時(shí),PCI9052將數(shù)據(jù)寫入A部分。數(shù)據(jù)讀出的速率為16MB/s。當(dāng)A(或B)部分?jǐn)?shù)據(jù)讀完后,F(xiàn)IFO控制器接著從B(或A)部分讀數(shù),并通過中斷通知CPU向A(或B)部分寫入數(shù)據(jù)。如此循環(huán)往復(fù)。
圖5
1.2.3 最大允許中斷延遲
要保證PCFl536輸出連續(xù)數(shù)據(jù),就必須保證FIFO不會(huì)被讀空。FIFO輸出數(shù)據(jù)的同時(shí),PC機(jī)必須及時(shí)補(bǔ)充數(shù)據(jù)。從上可知,整個(gè)FIFO存儲(chǔ)器被分成A、B兩部分,每部分容量均為192K×32位。下面分析當(dāng)數(shù)據(jù)從存儲(chǔ)器B部分讀取、向存儲(chǔ)器A部分寫入時(shí),讀寫FIFO存儲(chǔ)器的時(shí)間關(guān)系,如圖7所示。
假定PC機(jī)的中斷延遲時(shí)間為TINT_LAT,PC機(jī)寫滿存儲(chǔ)器A部分所用時(shí)間為TPCI,剩余時(shí)間為TREM;讀完存儲(chǔ)器B部分所用時(shí)間為TOUT。如PCFl536輸出連續(xù)數(shù)據(jù)流,剩余時(shí)間TREM必須大于等于0。
通過以上計(jì)算,在Windows2000操作系統(tǒng)的最大中斷延遲不大于41.2ms的情況下,PCFl536能以16MB/s的傳輸率連續(xù)輸出數(shù)據(jù)。
中斷延遲決定了硬件產(chǎn)生的中斷并得到PC機(jī)正確響應(yīng)的最高頻率。實(shí)際上,根據(jù)各種資料分析,雖然Windows2000操作系統(tǒng)的中斷延遲會(huì)隨著應(yīng)用條件不同而差異很大;但可以肯定的是,其中斷延遲遠(yuǎn)遠(yuǎn)小于41.2ms。
1.3 驅(qū)動(dòng)器模塊
驅(qū)動(dòng)器模塊由七個(gè)7412245構(gòu)成。每個(gè)74LS245能為8位數(shù)據(jù)(信號(hào))提供驅(qū)動(dòng),其中四個(gè)74LS245用作32位數(shù)據(jù)線的驅(qū)動(dòng)器,另外三個(gè)用作控制信號(hào)的驅(qū)動(dòng)。
每個(gè)74LS245的輸出分別連接到16腳的插座。16腳插座中的8個(gè)腳接信號(hào)線,另外8個(gè)腳接地線,以提高輸出信號(hào)的抗干擾能力。采用這種輸出方式,PCFl536與外設(shè)之間可以用4m的排線連接而不會(huì)受明顯干擾。
2 測(cè)試過程及測(cè)試結(jié)果
圖8是PCFl536卡的測(cè)試系統(tǒng)。計(jì)算機(jī)重復(fù)發(fā)送如下數(shù)據(jù):0x20002000、Ox32CF32CF、Ox3E6F3E6F、0x3E6F3E6F、Ox32CF32CF、0x20002000、0x0D300D30、0x01900190、Ox01900190、Ox0D300D30。以上10個(gè)數(shù)據(jù)實(shí)際上是對(duì)一個(gè)正弦波的10個(gè)均勻采樣值。用示波器監(jiān)視D/A轉(zhuǎn)換器的輸出。
在示波器上可以觀測(cè)到:36路的D/A輸出都是穩(wěn)定的20kHz正弦波。該測(cè)試系統(tǒng)經(jīng)過連續(xù)48小時(shí)運(yùn)行,沒有出現(xiàn)計(jì)算機(jī)死機(jī)和停止發(fā)送數(shù)據(jù)的現(xiàn)象。因此,結(jié)論顯而易見:在Windows 2000操作系統(tǒng)下,PCFl536能以16MB/s的速度連續(xù)輸出數(shù)據(jù),它滿足某些系統(tǒng)對(duì)連續(xù)數(shù)據(jù)流的要求。利用該測(cè)試系統(tǒng),雖然不能準(zhǔn)確測(cè)出Windows2000的中斷延遲到底有多大,但可以肯定:Windows2000的中斷延遲遠(yuǎn)遠(yuǎn)小于41.2ms。
- PCI卡(8949)
相關(guān)推薦
4個(gè)高速串行通道的AHCC2001PCI/CPCI
PCI 總線接口芯片CH365
PCI 設(shè)備 RTX 驅(qū)動(dòng)開發(fā)方法
PCI-1721板卡可以較好地實(shí)現(xiàn)四通道的高速連續(xù)模擬量輸出或?qū)崟r(shí)波形輸出
PCI卡的PCB布線規(guī)則
PCI總線接口芯片9054及其應(yīng)用
PCI接口卡中的DMA傳輸模塊軟硬件設(shè)計(jì).pdf
PCI設(shè)備的WINDOWS驅(qū)動(dòng)程序的開發(fā)
Windows2000/XP自動(dòng)關(guān)機(jī)命令和Linux自動(dòng)關(guān)機(jī)
Windows2000/98下USB驅(qū)動(dòng)程序的開發(fā)
pci總線的含義是什么
一種在不中斷反饋環(huán)路的情況下模擬連續(xù)時(shí)間環(huán)路增益
一種基于PCI Express接口的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)
一種基于PCI IP核的碼流接收卡的設(shè)計(jì)
Compact PCI簡(jiǎn)介
FPGA+PCI9054數(shù)據(jù)采集卡有人做過嗎
FPGA+pci9054連續(xù)數(shù)據(jù)采集速度很慢
MPC8260和PLX9656組成的嵌入式系統(tǒng)的PCI接口設(shè)計(jì)方案
PLX芯片PCI9052及其應(yīng)用
labview讀取PCI數(shù)據(jù)采集卡的數(shù)字輸出的操作方法
wind2000無盤工作站的配置
【FPGA設(shè)計(jì)實(shí)例】基于FPGA的PCI接口、邏輯分析儀和插件的應(yīng)用
主板從PCI接口拿到視頻數(shù)據(jù)后如何播放?
什么是PCI插槽
什么是Compact PCI?
使用NI PCI-6220多功能數(shù)據(jù)采集卡和LabVIEW 7.1開發(fā)軟件
分享一種不錯(cuò)的一種三十二通道掃描數(shù)據(jù)采集模塊的設(shè)計(jì)方案
分享:基于PCI總線的雙DSP系統(tǒng)及WDM驅(qū)動(dòng)程序設(shè)計(jì)
基于PCI Express的數(shù)據(jù)采集卡設(shè)計(jì)
基于PCI IP核的碼流接收卡的設(shè)計(jì)
基于PCI 總線的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于AEC429-PCI-22/S5總線接口卡的ARINC429總線數(shù)據(jù)的仿真發(fā)送與采集系統(tǒng)
如何利用AMBE-2000設(shè)計(jì)并實(shí)現(xiàn)一種基于AMBE-2000的語音系統(tǒng)?
如何利用LabVIEW實(shí)現(xiàn)一種中頻數(shù)據(jù)采集與處理卡軟件的設(shè)計(jì)?
如何去設(shè)計(jì)一種PCI Express接口?
如何在Windows下搭建一種rt-smart開發(fā)環(huán)境
如何定義pci數(shù)據(jù)采集卡板卡口地址
如何對(duì)一種基于avr的連續(xù)ADC轉(zhuǎn)換例程進(jìn)行仿真?
安裝Windows 2000 Server
嵌入式Linux下PCI設(shè)備驅(qū)動(dòng)的設(shè)計(jì)
怎么實(shí)現(xiàn)基于PCI總線的雷達(dá)視頻高速數(shù)據(jù)采集接口設(shè)計(jì)?
怎樣去搭建一種windows下的linux開發(fā)環(huán)境
怎樣去搭建一種ROS Windows開發(fā)環(huán)境呢
找一種多功能控制器/卡。
求一種Windows2000下連續(xù)輸出數(shù)據(jù)的PCI卡
求一種基于PCI總線的高速噪聲檢測(cè)系統(tǒng)
求助:請(qǐng)問WINDOWS2000系統(tǒng)能裝哪個(gè)版本的labview
求推薦PCI或PCIe數(shù)據(jù)采集卡?
電機(jī)的數(shù)字輸出端口怎樣與采集卡的PCI-6221連接
電機(jī)的數(shù)字輸出端口怎樣與采集卡的PCI-6221連接
解決臺(tái)式機(jī)PCI-E 1X不夠難題 :樂擴(kuò)PCI-E 1X轉(zhuǎn)2口PCI-E 1X擴(kuò)展卡
請(qǐng)教下PCI數(shù)據(jù)采集卡與I/O卡之間的關(guān)系
請(qǐng)問一下,用阿爾泰的PCI8201卡輸入正弦波以后,為什么聲傳感器聽到的聲音不連續(xù)?
請(qǐng)問怎樣去設(shè)計(jì)一種Compact PCI熱插拔系統(tǒng)?
請(qǐng)問怎樣去設(shè)計(jì)一種MJPEG2000編解碼系統(tǒng)?
調(diào)用DAQNavi assistant時(shí)選擇PCI數(shù)據(jù)采集卡
采用PCI IP核實(shí)現(xiàn)碼流接收卡設(shè)計(jì)
采用PCI接口實(shí)現(xiàn)IP驗(yàn)證平臺(tái)
采用PCI接口實(shí)現(xiàn)IP驗(yàn)證平臺(tái)設(shè)計(jì)
Windows 2000中文操作系統(tǒng)培圳教程
![](https://skin.elecfans.com/images/2021-soft/load.png)
一種非透明PCI-PCI橋的應(yīng)用
![](https://skin.elecfans.com/images/2021-soft/load.png)
PCI串口通信卡WDM驅(qū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
PCI串口通信卡WDM驅(qū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
Windows2000/XP下進(jìn)行端口操作的通用模塊的實(shí)現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
安捷倫Agilent 82357B GPIB轉(zhuǎn)USB測(cè)試連接器
高速可編程遙感衛(wèi)星數(shù)據(jù)模擬源的設(shè)計(jì)與實(shí)現(xiàn)
![](https://skin.elecfans.com/images/2021-soft/load.png)
Windows2000/XP下端口訪問器的編寫
![](https://skin.elecfans.com/images/2021-soft/eye.png)
PCI設(shè)備WINDOWS驅(qū)動(dòng)程序的開發(fā)
![](https://skin.elecfans.com/images/2021-soft/eye.png)
如何用Windows 2000 Server充當(dāng)軟路由
![](https://skin.elecfans.com/images/2021-soft/eye.png)
安全配置Windows2000服務(wù)器
![](https://skin.elecfans.com/images/2021-soft/eye.png)
PCI設(shè)備的WDM驅(qū)動(dòng)程序開發(fā)
![](https://skin.elecfans.com/images/2021-soft/load.png)
Windows2000下的Popup發(fā)送功能_Delphi教程
![](https://skin.elecfans.com/images/2021-soft/load.png)
如何使用PCI總線DSP進(jìn)行數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)資料說明
![](https://skin.elecfans.com/images/2021-soft/load.png)
使用PCI總線設(shè)計(jì)高速數(shù)據(jù)采集系統(tǒng)的資料說明
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于Windows2000操作系統(tǒng)和PCF1536的PCI卡的設(shè)計(jì)
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web2/M00/01/35/pYYBAGDB0YCAZITMAABkzvyyi2k165.png)
評(píng)論