當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]傳統(tǒng)的虛擬儀器由一塊基于PCI總線(xiàn)的直接利用A/D和D/A芯片構(gòu)成的數(shù)據(jù)采集板卡和相應(yīng)的軟件組成,但隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,越來(lái)越多的數(shù)據(jù)需要由計(jì)算機(jī)處理、存儲(chǔ)和傳輸,由于通用計(jì)算機(jī)本身的特點(diǎn)。

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

圖1 虛擬儀器系統(tǒng)的基本框架


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

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


圖2 PCI9052信號(hào)接口

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


圖3 EEPROM和PCI9052的連接電路圖

EEPROM中配置的主要信息包括:設(shè)備識(shí)別號(hào)、供應(yīng)商代號(hào)、四個(gè)局部總線(xiàn)空間的大小以及空間的基地址等。可以事先通過(guò)編程器將配置信息寫(xiě)入配置EEPROM中,也可在系統(tǒng)啟動(dòng)后用PLXMon對(duì)EEPROM進(jìn)行操作。

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

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

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

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


圖4 輸入信號(hào)處理電路原理圖


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

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

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

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

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

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

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

所有蝶形單元的運(yùn)算可統(tǒng)一表示為

(1)

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

(2)

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

(3)

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

3 應(yīng)用控制軟件的設(shè)計(jì)


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

整個(gè)應(yīng)用控制軟件的功能模塊框圖如圖6所示。
基于以上的控制功能模塊圖,選擇使用VC++來(lái)實(shí)現(xiàn)本系統(tǒng)應(yīng)用軟件的人機(jī)界面以及對(duì)系統(tǒng)的控制功能。VC++的開(kāi)發(fā)環(huán)境集編輯、編譯、連接、調(diào)試、向?qū)У榷囗?xiàng)功能于一體,并且提供了目前成為業(yè)界標(biāo)準(zhǔn)的MFC(MicrosoftApplication Foundation Classes)類(lèi)庫(kù)。

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


圖7 程序主界面

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

整個(gè)系統(tǒng)經(jīng)過(guò)綜合調(diào)試和嚴(yán)格測(cè)試后,達(dá)到設(shè)計(jì)需求,業(yè)已投入實(shí)際使用。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉