一種基于PCI總線(xiàn)和DSP技術(shù)的虛擬儀器設計

發(fā)布時(shí)間:2009-4-15 16:45    發(fā)布者:比爾蓋
關(guān)鍵詞: dsp , PCI , 虛擬儀器
傳統的虛擬儀器由一塊基于PCI總線(xiàn)的直接利用A/D和D/A芯片構成的數據采集板卡和相應的軟件組成,但隨著(zhù)計算機網(wǎng)絡(luò )技術(shù)的迅速發(fā)展,越來(lái)越多的數據需要由計算機處理、存儲和傳輸,由于通用計算機本身的特點(diǎn),它們通常不適于進(jìn)行實(shí)時(shí)性要求很高的數字信號處理,因此這種虛擬儀器不能滿(mǎn)足現實(shí)應用對數據實(shí)時(shí)處理能力、數據傳輸能力以及數據管理能力所提出的越來(lái)越高的要求。
與此同時(shí),隨著(zhù)數字信號處理器(DSP)性?xún)r(jià)比的不斷提高,其應用領(lǐng)域飛速擴展,從而使基于PCI總線(xiàn)和DSP技術(shù)的新型虛擬儀器應運而生。
系統的基本框架
筆者設計的基于PCI總線(xiàn)和DSP技術(shù)的虛擬儀器的基本框架如圖1所示。
整個(gè)系統是基于模塊化的設計理念來(lái)實(shí)現的,該系統的開(kāi)發(fā)主要有以下幾步:1)設計一塊基于PCI總線(xiàn)的母板,該板上有自己定義的總線(xiàn)接插件,以及整個(gè)系統的邏輯控制單元和數據緩沖存儲芯片;2)設計數據采集模塊和數據輸出模塊;3)開(kāi)發(fā)PCI母板的Windows驅動(dòng)程序,使PC能正常識別該板卡并分配所需系統資源;4)開(kāi)發(fā)系統下位機DSP數據采集模塊的程序,實(shí)現對模擬信號的采集以及數據的FFT算法處理;5)開(kāi)發(fā)系統上位機PC的控制軟件,實(shí)現數據波形顯示、端口配置、內存讀寫(xiě)以及對儀器的控制功能。


圖1 虛擬儀器系統的基本框架

系統的硬件設計
由圖1可見(jiàn),本虛擬儀器系統首先要有一塊基于PCI總線(xiàn)的母板,該板上有自定義的總線(xiàn)接插件,可以插接其他基于該總線(xiàn)的數據采集DSP子板,此外,該板上還有整個(gè)系統的邏輯控制單元以及數據緩沖存儲芯片;其他各個(gè)功能模塊都基于該擴展板來(lái)實(shí)現;各個(gè)模塊之間數據的存儲和傳輸可以通過(guò)雙端口RAM來(lái)實(shí)現,我們選用Cypress公司8K×16b高速雙口RAM芯片CY7C025V,因為它的時(shí)序與DSP時(shí)序相配,特別適用于DSP與PC之間大量數據的高速雙向傳送。

1 PCI接口的實(shí)現
在PCI總線(xiàn)適配卡的設計中,采用專(zhuān)用的PCI接口芯片來(lái)實(shí)現PCI接口,設計者不需要將精力投入到復雜的PCI接口功能設計和驗證測試上。專(zhuān)用的接口芯片可以實(shí)現完整的PCI主控模塊和目標接口功能,將復雜的PCI接口轉換為簡(jiǎn)單的接口。在本設計中選用PLX公司通用接口芯片PCI9052,它包含讀和寫(xiě)FIFO,以便將32bit、33MHz的PCI總線(xiàn)與總線(xiàn)寬度有可能比它窄或總線(xiàn)速度有可能比它慢的局部總線(xiàn)進(jìn)行匹配。PCI9052有最大5個(gè)局部地址空間和4個(gè)片選支持,圖2為PCI9052的信號接口模塊圖。


圖2 PCI9052信號接口


PCI分配資源的數據來(lái)源是通過(guò)外擴的EEPROM來(lái)實(shí)現的,根據PCI9052接口芯片的要求,選用Microchip公司支持三線(xiàn)串行接口的EEPROM。在電源上電期間,PCI的RST#信號復位PCI9052內部寄存器。而PCI9052也輸出局部復位信號(LRESET#)并檢查是否存在外部EEPROM,如果存在并且第一個(gè)16位字不是FFFFH,則PCI9052加載EEPROM中的數據到PCI9052的內部寄存器中;否則默認值被使用。PCI9052配置寄存器僅能由EEPROM或PCI主機處理器寫(xiě)。在EEPROM初始化期間,PCI9052用RETRY信號來(lái)響應PCI目標訪(fǎng)問(wèn)。圖3給出了本設計中EEPROM(93CS46)和PCI9052的連接電路圖。


圖3 EEPROM和PCI9052的連接電路


EEPROM中配置的主要信息包括:設備識別號、供應商代號、四個(gè)局部總線(xiàn)空間的大小以及空間的基地址等?梢允孪韧ㄟ^(guò)編程器將配置信息寫(xiě)入配置EEPROM中,也可在系統啟動(dòng)后用PLXMon對EEPROM進(jìn)行操作。

2 系統控制邏輯的實(shí)現
由于CPLD器件掉電后可保存芯片內部程序,無(wú)須煩瑣的重復燒寫(xiě),因此本設計采用Altera公司的CPLD器件,作為PCI接口芯片及存儲芯片的邏輯控制?紤]到需要使用局部地址/數據各16根線(xiàn),控制信號線(xiàn)22根,還要為數據采集電路預留些I/O引腳,最后決定采用144腳TQFP封裝的EPM3128。

在本系統中,EPM3128的主要功能是實(shí)現PCI Local端的地址譯碼、DSPLocal端對各個(gè)DRAM控制的地址譯碼、對板上功能選擇開(kāi)關(guān)的狀態(tài)進(jìn)行譯碼,從而實(shí)現對系統功能的配置以及對各芯片的控制信號進(jìn)行邏輯譯碼。所有的譯碼工作都通過(guò)VHDL編程語(yǔ)言來(lái)實(shí)現。綜合和編譯工作是在A(yíng)ltera公司的QuartusII集成編譯環(huán)境中完成的。

3 數據采集電路的實(shí)現
數據采集電路是本系統的關(guān)鍵,數據采集電路設計的好壞將直接影響到本系統的性能。為了實(shí)現系統功能的可配置和可擴展性,數據采集模塊設計成可配置的模式插接在總線(xiàn)接口母板上,實(shí)現對外部信號的數據采集。數據采集模塊由高速16位adc(LTC1608)和高性能DSP芯片(TMS320C6713)構成,LTC1608的并行數字接口可方便地與包括TMS320C6713在內的多種DSP通信,并可連接3V或5V邏輯。

由于對采集精度的高要求,在信號進(jìn)入ADC之前,需要對模擬信號進(jìn)行一系列的處理以保證信號的可靠性:模擬信號首先經(jīng)過(guò)電壓跟隨運算放大器增加輸入阻抗,再經(jīng)過(guò)電壓比例放大和一階RC低通濾波,最后輸入到ADC。


圖4 輸入信號處理電路原理圖



圖5 LTC1608 A/D芯片引腳連接電路圖


具體的信號處理電路如圖4和圖5所示。
系統軟件設計
正如圖1所示,硬件設計完成后,要使整個(gè)系統工作還需要軟件的支持,這些軟件包括PCI設備驅動(dòng)程序、數據處理算法程序和系統控制軟件。

1 設備驅動(dòng)程序設計

設備驅動(dòng)程序不是單獨存在的,而是相關(guān)操作系統內核的一部分,所以需要對操作系統有一定的了解。Windows2000操作系統是32位的多任務(wù)非實(shí)時(shí)操作系統。對整個(gè)系統底層的操作和用戶(hù)與硬件打交道的權力被屏蔽,必須通過(guò)操作系統統一管理設備驅動(dòng)程序和其他內核訪(fǎng)問(wèn)來(lái)實(shí)現應用軟件對硬件的訪(fǎng)問(wèn)。在設計和使用PCI設備時(shí),經(jīng)常要在軟件中對系統資源進(jìn)行訪(fǎng)問(wèn),因此只有編制設備驅動(dòng)程序才能實(shí)現對PCI總線(xiàn)設備的完全訪(fǎng)問(wèn)。

應用程序對設備I/O進(jìn)行Win32調用,這個(gè)調用由I/O系統服務(wù)接收。I/O管理器從這個(gè)請求構造一個(gè)合適的I/O請求包(IRP)。在最簡(jiǎn)單的情況下,I/O管理器只是把IRP傳遞給一個(gè)設備驅動(dòng)程序,這個(gè)驅動(dòng)程序與硬件打交道,并完成IRP的處理。I/O管理器把數據和結果返回給Win32和用戶(hù)應用程序。而一個(gè)IRP由一個(gè)分層的設備驅動(dòng)程序棧處理是很常見(jiàn)的。每個(gè)驅動(dòng)程序把該請求劃分成更簡(jiǎn)單的請求。最高層的驅動(dòng)程序(如文件系統驅動(dòng)程序)知道文件如何在磁盤(pán)上表示,但不知道如何得到數據的細節;中間層次的驅動(dòng)程序進(jìn)一步處理請求;最低層的驅動(dòng)程序與硬件實(shí)際打交道。

本設計選擇的硬件驅動(dòng)程序開(kāi)發(fā)工具是Compuware公司提供的一個(gè)驅動(dòng)程序集成開(kāi)發(fā)包(DriverStudio)。利用其中的DriverWorks工具可以生成一個(gè)PCI總線(xiàn)驅動(dòng)框架,然后在WDM中實(shí)現輸入輸出處理,可以用KIoRange類(lèi)來(lái)實(shí)現。

在驅動(dòng)程序框架生成的過(guò)程中,我們可以通過(guò)向導聲明驅動(dòng)程序中將要使用的資源;通過(guò)調用KIoRange類(lèi)的Initialize()函數,可以對資源進(jìn)行初始化(映射PCI局部空間);應用層通過(guò)DeviceIoControl函數向驅動(dòng)程序發(fā)命令來(lái)調用KIoRange的成員函數實(shí)現應用層對I/O空間的處理。開(kāi)發(fā)PCI母板的windows驅動(dòng)程序,就是使PC能正常識別該板卡并分配所需的系統資源。

2 FFT算法的實(shí)現
系統需要針對DSP數據采集模塊,開(kāi)發(fā)并實(shí)現對模擬信號的采集以及對數據進(jìn)行FFT(快速傅立葉變換)算法處理的程序。
作為一般的情況,設:x(n)和X(k)都是復數,因為從實(shí)際計算過(guò)程看,實(shí)數和復數沒(méi)有區別,唯一不同的是:實(shí)數的虛部為零,表達式簡(jiǎn)單些。而運算過(guò)程所有的計算都是對實(shí)數進(jìn)行的,如果信號或頻譜是復數,就把最后計算的結果再組合成為復數分量。FFT運算的基本單元是“蝶形單元”,其蝶形運算的基本形式如下式所示:

所有蝶形單元的運算可統一表示為

               (1)

式(1)中,A和B是蝶形單元的輸入,C和D是輸出。同時(shí)將表示為

        (2)

式(1)可以表示為虛部和實(shí)部形式,帶下標R的字符表示實(shí)部,帶下標I的為虛部,即

     (3)

根據算法原理和上面的說(shuō)明,用C語(yǔ)言編制出一個(gè)按時(shí)間抽取的FFT算法程序,結構上分為幾個(gè)部分:首先是碼位的倒置,然后根據計算的點(diǎn)數確定蝶形運算的級數,接著(zhù)是逐級進(jìn)行蝶形運算,完成FFT運算。

3 應用控制軟件的設計



圖6 控制軟件功能模塊框圖


整個(gè)應用控制軟件的功能模塊框圖如圖6所示。
基于以上的控制功能模塊圖,選擇使用VC++來(lái)實(shí)現本系統應用軟件的人機界面以及對系統的控制功能。VC++的開(kāi)發(fā)環(huán)境集編輯、編譯、連接、調試、向導等多項功能于一體,并且提供了目前成為業(yè)界標準的MFC(MicrosoftApplication Foundation Classes)類(lèi)庫。

我們開(kāi)發(fā)的虛擬儀器系統PC端控制軟件可實(shí)現數據波形顯示、端口配置、內存讀寫(xiě)以及對儀器的控制功能,其主界面如圖7所示。


圖7 程序主界面


結語(yǔ)

本設計實(shí)現了基于DSP技術(shù)與PCI總線(xiàn)的數據采集處理卡,開(kāi)發(fā)了虛擬式實(shí)時(shí)多通道FFT頻譜分析儀的應用程序以及主機監控界面。通過(guò)在數據采集卡上集成DSP,使得該卡不但能實(shí)時(shí)不掉點(diǎn)地采集外界信號,而且能在卡上實(shí)現數字濾波、FFT頻譜分析。

整個(gè)系統經(jīng)過(guò)綜合調試和嚴格測試后,達到設計需求,業(yè)已投入實(shí)際使用。
本文地址:http://selenalain.com/thread-3142-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页