摘要:介紹PCF1536的設計原理和硬件結構;詳細討論了大容量FIFO的結構及用CPLD實現FIFO控制器;計算PCF1536工作于Windows2000操作系統下允許的最大中斷延遲jb后將PCF1536應用于多路D/A轉換器,指出Windows2000的中斷延遲遠遠小于41.2毫秒。
在視頻輸出、聲吶仿真等實際應用中,經常要求計算機能根據要求穩定輸出連續數據流。然而,當計算機工作于Windows2000操作系統下時,由于該操作系統是一個多任務的非實時操作系統,當它收到外部設備發來的中斷時,需要延遲一定時間間隔后,才開始執行中斷服務程序。這樣,從計算機I/O口直接輸出的數據流只能是間歇的數據流,無法提供連續數據流,不能滿足實際應用的需要。
幸運的是,許多實際應用只需要低速的連續數據流。可以利用PCI總線的高速數據傳輸特性,在PCI接口后加入一個大容量FIFO存儲器,高速的PCI數據流從FIFO存儲器的輸入端輸入,在FIFO的輸出端就能獲得低速的連續數據流。這樣屏蔽了Windows2000的非實時性,成功滿足實際應用的需要。在圖1所示的具體應用中,計算機與PCI卡之間通過PCI總線形成峰值速率達132MB/s的間歇數據流;PCI卡通過局部總線與大容量存儲器之間同樣是峰值速率達132MB/s的間歇數據流;最后通過多路D/A轉換電路獲得了速率為16MB/s的連續數據流。
圖1和圖2
為了便于應用,將PCI接口模塊與大容量存儲器結合,設計了一塊能在Windows2000下以16MB/s的速率連續輸出數據的PCI卡PCFl536。
1 PCFl536的工作原理
PCI卡PCFl536是一個帶有1536KB FIFO的通用PCI卡;在Windows2000操作系統下,它能以16MB/s的速度連續輸出數據。圖2是PCFl536的結構框圖,整個PCFl536包括PCI接口、大容量FIFO存儲器和驅動器三個模塊。
1.1 PCI接口模塊
PCI接口模塊由PCI9052和配置EEPROM 93LC46組成。PCI9052是PLX技術公司的產品,兼容于PCI協議 (2.1版);它可作為PCI總線的從設備,支持32位數據;突發傳輸。圖3是PCI9052與PCI金手指和存儲器模塊的連接示意圖。
PCI9052與存儲器有三種連接方式:數據地址復用、奴據地址非復用和ISA方式。在PCFl536中,PCI9052架用數據地址非復用方式連接FIFO存儲器。其時序參見文獻[1]。PCI9052與FIFO的連接信號中,ADS表示一次突發傳輸的開始,BLAST表示一次突發傳輸的結束,LAD[0:31]為32位數據,LBE[0:3]為字節有效信號。緩存后的時鐘輸出信號BCLKO經74LS00送回PCI9052,同時也送到FIFO。FIFO半滿時發出的中斷信號通過LINTl1進入PCI9052,再通過INTA發送給CPU。由于FIFO的寫入不需要地址,因此PCI9052與FIFO之間沒有地址連接。
1.2 存儲器模塊
1.2.1 存儲器組織
圖4
存儲器模塊由CPLD器件EPM7128SQCl00和四片FIFO器件AL422B組成。AL422B是AVERLOGIC公司的產品,每片AL422B包含384Kx8位DRAM,主要應用于視頻輸出。在現有的FIFO存儲器中,AL422B具有最低的價格/存儲位比。這是PCFl536選擇使用AIA22B的主要原因。AL422B的結構框圖如圖4所示。它能完成初始化、復位、寫和讀等四種操作。初始化操作發生在上電后0.1ms內,WRST和RRST保持為低電子,然后可以開始正常操作。復位操作中,WRST有效,則輸入數據地址設置為0且清空輸入緩存;RRST有效,則數據輸出地址設置為0且將數據預取到輸出緩存。當WE有效時,完成寫操作,在WCK上升沿將D17~D10寫入寫數據寄存器;WE無效時,禁止寫操作,寫地址計數器保持不變。
四片AL422B通過位擴展成384K×32位的FIFO存儲器,如圖5所示。
1.2.2 存儲器控制器
AIA22B雖然有不同的數據輸入和輸出端口,但與通用FIFO存儲器不同,它并不提供半滿信號、數據有效信號等。因此AL422B不是完全意義上的FIFO存儲器。在PCFl536上,使用一片可編程邏輯設備EPM7128作為FIFO控制器,全面控制AL422B的功能。從圖2和圖5可以看出,EPM7128為FIFO提供RCK、RRST、RE、D1[0:31]、OE、WE、TST、WRST和WCK等讀寫控制信號;當FIFO半滿時提供半滿信號HF;另外EPM7128為外設提供正負數據有效信號、4MHz和8MHz的時鐘佰弓毒世外設靈活使用。圖6是用VHDL語言對EPM7128編程而成的FIFO控制器。該控制器由JTAG模塊、寫模塊、讀模塊和控制模塊組成。計算機通過JTAG接口對EPM7128現場編程。當PCI9052的數據準備好后,寫模塊按LCLK時鐘將數據讀入,接著按WCK時鐘將數據寫入AL422B。在FIFO控制器的控制下,整個384K×32位的FIFO存儲器被分為A、B兩部分。當數據從A部分讀出時,PCI9052將數據寫入B部分;反之, 當數據從B部分讀出時,PCI9052將數據寫入A部分。數據讀出的速率為16MB/s。當A(或B)部分數據讀完后,FIFO控制器接著從B(或A)部分讀數,并通過中斷通知CPU向A(或B)部分寫入數據。如此循環往復。
圖5
1.2.3 最大允許中斷延遲
要保證PCFl536輸出連續數據,就必須保證FIFO不會被讀空。FIFO輸出數據的同時,PC機必須及時補充數據。從上可知,整個FIFO存儲器被分成A、B兩部分,每部分容量均為192K×32位。下面分析當數據從存儲器B部分讀取、向存儲器A部分寫入時,讀寫FIFO存儲器的時間關系,如圖7所示。
假定PC機的中斷延遲時間為TINT_LAT,PC機寫滿存儲器A部分所用時間為TPCI,剩余時間為TREM;讀完存儲器B部分所用時間為TOUT。如PCFl536輸出連續數據流,剩余時間TREM必須大于等于0。
通過以上計算,在Windows2000操作系統的最大中斷延遲不大于41.2ms的情況下,PCFl536能以16MB/s的傳輸率連續輸出數據。
中斷延遲決定了硬件產生的中斷并得到PC機正確響應的最高頻率。實際上,根據各種資料分析,雖然Windows2000操作系統的中斷延遲會隨著應用條件不同而差異很大;但可以肯定的是,其中斷延遲遠遠小于41.2ms。
1.3 驅動器模塊
驅動器模塊由七個7412245構成。每個74LS245能為8位數據(信號)提供驅動,其中四個74LS245用作32位數據線的驅動器,另外三個用作控制信號的驅動。
每個74LS245的輸出分別連接到16腳的插座。16腳插座中的8個腳接信號線,另外8個腳接地線,以提高輸出信號的抗干擾能力。采用這種輸出方式,PCFl536與外設之間可以用4m的排線連接而不會受明顯干擾。
2 測試過程及測試結果
圖8是PCFl536卡的測試系統。計算機重復發送如下數據:0x20002000、Ox32CF32CF、Ox3E6F3E6F、0x3E6F3E6F、Ox32CF32CF、0x20002000、0x0D300D30、0x01900190、Ox01900190、Ox0D300D30。以上10個數據實際上是對一個正弦波的10個均勻采樣值。用示波器監視D/A轉換器的輸出。
在示波器上可以觀測到:36路的D/A輸出都是穩定的20kHz正弦波。該測試系統經過連續48小時運行,沒有出現計算機死機和停止發送數據的現象。因此,結論顯而易見:在Windows 2000操作系統下,PCFl536能以16MB/s的速度連續輸出數據,它滿足某些系統對連續數據流的要求。利用該測試系統,雖然不能準確測出Windows2000的中斷延遲到底有多大,但可以肯定:Windows2000的中斷延遲遠遠小于41.2ms。
- PCI卡(9142)
一種采用PCI軟核的軸角數據采集系統
9244
4個高速串行通道的AHCC2001PCI/CPCI
PCI-1721板卡可以較好地實現四通道的高速連續模擬量輸出或實時波形輸出
PCI接口卡中的DMA傳輸模塊軟硬件設計.pdf
PCI設備的WINDOWS驅動程序的開發
Windows2000/XP自動關機命令和Linux自動關機
Windows2000/98下USB驅動程序的開發
pci總線的含義是什么
一種基于PCI Express接口的數據采集存儲系統設計
一種基于PCI IP核的碼流接收卡的設計
FPGA+PCI9054數據采集卡有人做過嗎
wind2000無盤工作站的配置
什么是Compact PCI?
分享一種不錯的一種三十二通道掃描數據采集模塊的設計方案
分享:基于PCI總線的雙DSP系統及WDM驅動程序設計
基于PCI Express的數據采集卡設計
基于PCI IP核的碼流接收卡的設計
如何利用AMBE-2000設計并實現一種基于AMBE-2000的語音系統?
如何利用LabVIEW實現一種中頻數據采集與處理卡軟件的設計?
如何去設計一種PCI Express接口?
如何在Windows下搭建一種rt-smart開發環境
如何對一種基于avr的連續ADC轉換例程進行仿真?
嵌入式Linux下PCI設備驅動的設計
怎么實現基于PCI總線的雷達視頻高速數據采集接口設計?
求一種基于PCI總線的高速噪聲檢測系統
電機的數字輸出端口怎樣與采集卡的PCI-6221連接
請問一下,用阿爾泰的PCI8201卡輸入正弦波以后,為什么聲傳感器聽到的聲音不連續?
一種非透明PCI-PCI橋的應用
16Windows 2000/XP下I/O設備驅動程序的設計
18基于PCI總線的高速數據采集卡系統設計與實現
55一種基于PCI總線的高速數據采集系統的設計
17WINDOWS下PCI接口卡WDM驅動程序的DMA編程技術
28一種PCI 數據采集卡中DMA模塊的軟硬件設計
22一種基于FPGA和DSP的高性能PCI數據采集處理卡設計
34基于PCI總線的高速數據采集卡的設計
19PCI串口通信卡WDM驅動程序設計與實現
37PCI串口通信卡WDM驅動程序設計與實現
2一種PCI總線的高性價比數據采集卡的研制
18Windows2000/XP下進行端口操作的通用模塊的實現
22Windows環境下開發PCI接口卡DMA應用的WDM編程技
24基于PCI的視頻編碼卡的設計與實現
0應用PCI 9656的數據接收卡設計
28基于PCI Express總線高速數據采集卡的設計與實現
62PCI-5565PIORC-110000 反射內存卡
PCI-5565PIORC-111000 反射內存卡
TH-PCI-210反射內存卡
TH-PCI-111反射內存卡
Windows2000/XP下端口訪問器的編寫
830一種基于PCI總線和DSP技術的虛擬儀器設計
1007PCI設備WINDOWS驅動程序的開發
3532pci卡設計心得
1009Windows2000下并口數據采集的驅動設計和實現
1906
基于PCI IP核的碼流接收卡的設計
912
PCI傳輸卡的WDM驅動程序設計
1261安全配置Windows2000服務器
550基于PCI總線的反射內存卡設計
2490
PCI設備的WDM驅動程序開發
0一種高速數據采集卡實現方案
60一種FPGA高速數據采集卡的硬件設計
183PCI總線實現DSP伺服控制卡
39一種PCI總線ARINC429通信卡實現方法
43基于PCI局部總線的1553B總線接口卡設計
4123
基于PCI總線無時鐘LVDS數據采集卡的研究
34Windows 2000下WDM驅動程序的研究與開發
0如何使用PCI總線DSP進行數據采集系統的設計資料說明
4使用PCI總線設計高速數據采集系統的資料說明
4基于PCI9820數據采集卡實現對GP2015輸出中頻GPS的數據進行采集
1956
PCI光電隔離16路輸入16路達林頓輸出卡的使用手冊免費下載
13基于Windows2000操作系統和PCF1536的PCI卡的設計
2789
串口通信下連續輸出Hello windows
6PCI-5565反射內存卡
1347PCI 接口的反射內存卡
962
CPCI轉PCI載板轉接卡 PCI2CPCI
1314
電子發燒友App



評論