新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW中DSP目標(biāo)文件加載的實(shí)現(xiàn)

基于LabVIEW中DSP目標(biāo)文件加載的實(shí)現(xiàn)

作者:吉林大學(xué)朝陽校區(qū)電子學(xué)院DSP實(shí)驗(yàn)室 鄭桂芬 時(shí)間:2002-12-05 來源:電子設(shè)計(jì)應(yīng)用 收藏
引言
數(shù)據(jù)采集卡(DAQ)的存儲(chǔ)空間是系統(tǒng)設(shè)計(jì)的一個(gè)重要的硬件資源,對采樣速率、實(shí)時(shí)處理性與系統(tǒng)功能都有很大的影響。在虛擬頻譜儀設(shè)計(jì)中,信號采樣數(shù)據(jù)的存儲(chǔ)、分析、處理信號程序,都需要有足夠內(nèi)存空間。由于該儀器信號采集數(shù)據(jù)量大,所實(shí)現(xiàn)的功能多,導(dǎo)致出現(xiàn)存儲(chǔ)空間不足。針對上述問題,本文談?wù)勗鯓踊贚abVIEW通過CLFN調(diào)用DLL加載 目標(biāo)文件(*.out),從而在一定的程序存儲(chǔ)空間情況下來完成基于DSP數(shù)據(jù)采集卡的虛擬儀器的研制。

LabVIEW中的CLFN
LabVIEW程序由三部分組成:前面板、框圖程序和圖標(biāo)/連接器。程序前面板用于設(shè)置輸入量和觀測量,模擬真實(shí)儀器的前面板;每一個(gè)程序前面板都有相應(yīng)的框圖程序與之對應(yīng),框圖程序用圖形編程語言編寫。圖標(biāo)/連接端口可以讓用戶把VI程序定義為一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程。
調(diào)用庫函數(shù)節(jié)點(diǎn)(Call Library Function Node,CLFN)是一個(gè)圖形化節(jié)點(diǎn),是LabVIEW調(diào)用C語言編寫的可執(zhí)行程序代碼的一個(gè)通用的方法,常用于調(diào)用動(dòng)態(tài)連接庫(DLL),這種方式特別適合于用戶創(chuàng)建實(shí)現(xiàn)自己特定功能的DLL。但是對C語言的編譯必須通過外部的開發(fā)平臺環(huán)境,在Win9x/NT下可以使用Microsoft Visual C++軟件平臺。
用CLFN調(diào)用DLL來實(shí)現(xiàn)DSP 目標(biāo)文件加載,簡要步驟如下:
(1)在LabVIEW程序框圖中放置一CLFN節(jié)點(diǎn)。對CLFN設(shè)置,建立函數(shù)原型:unsigned char dspload(CStr coffname)。其中coffname 是被加載的DSP 目標(biāo)文件名(*.out),unsigned char 是函數(shù)dspload返回值error的類型,返回值為0,表明DSP目標(biāo)文件加載成功,其它值表明加載失敗。
(2)在Microsoft Visual C++環(huán)境下建立DLL工程,從而生成dspload.dll文件。
在源程序中必須包含頭文件:extcode.h和evm6xdll.h。前者是LabVIEW調(diào)用外部代碼管理函數(shù)集的頭文件,后者是DSP數(shù)據(jù)采集卡的DLL的頭文件。
(3)設(shè)置前面板參數(shù)并完成框圖程序,將DSP目標(biāo)文件加載的前面板與相應(yīng)的框圖程序,保存為dspload.vi。執(zhí)行程序dspload.vi前,輸入目標(biāo)文件名(*.out)。

DSP數(shù)據(jù)采集卡
所用的數(shù)據(jù)采集卡是美國TI公司的TMS320C6701 DSP數(shù)據(jù)采集卡,方框圖如圖1所示。
DSP數(shù)據(jù)采集卡的特點(diǎn)有:
PCI總線接口,支持即插即用;通過HPI(Host Port Interface)訪問DSP內(nèi)存;16-bit音頻編解碼器,支持5.5kHz~48kHz采樣率;三種DSP boot 模式:無自舉模式,HPI 自舉模式,ROM 自舉 模式;256kB同步突發(fā)靜態(tài)RAM (SBSRAM);8MB同步動(dòng)態(tài)RAM (SDRAM)。
TMS320C6701是浮點(diǎn)型DSP,片內(nèi)有8個(gè)并行的處理單元,分為相同的兩組。8個(gè)獨(dú)立的功能單元采用加載/存儲(chǔ)(load/store)體系結(jié)構(gòu),數(shù)據(jù)在多處理單元之間的傳輸依靠32個(gè)32bit通用寄存器。
DSP的體系結(jié)構(gòu)采用甚長指令字(VLIW)結(jié)構(gòu),8個(gè)指令組成一個(gè)指令包,總字長為256 bit。芯片內(nèi)部設(shè)置了專門的指令分配模塊,可以將每個(gè)256bit的指令包同時(shí)分配到8個(gè)處理單元,并由8個(gè)單元同時(shí)運(yùn)行。芯片最大處理能力可以達(dá)到2400MIPs。
C6701的存儲(chǔ)器尋址空間為32bit,片內(nèi)RAM被分為內(nèi)部程序/Cache存儲(chǔ)器和內(nèi)部數(shù)據(jù)/Cache存儲(chǔ)器。當(dāng)片內(nèi)的RAM容量不滿足系統(tǒng)的程序/數(shù)據(jù)空間要求時(shí),可利用外存儲(chǔ)器接口(External Memory Interface,EMIF)在片外進(jìn)行存儲(chǔ)器擴(kuò)展。EMIF整個(gè)外部空間最大容量為64MB,分為4個(gè)空間CE0~CE3。
HPI(Host-Port Interface)是一個(gè)16bit 的并行接口,外部主機(jī)可以通過HPI直接訪問CPU的存儲(chǔ)空間。外部的主機(jī)是該接口的主控者。
HPI存取的接口由一套寄存器來實(shí)現(xiàn)。HPI控制寄存器HPIC(HPI Control Register)完成對接口的設(shè)置,主機(jī)和CPU都可以訪問HPIC;外部主機(jī)進(jìn)一步通過主機(jī)地址寄存器HPIA(Host Address Register)和主機(jī)數(shù)據(jù)寄存器HPID(Host Data Register)來完成對CPU存儲(chǔ)空間的訪問。主機(jī)對這些寄存器的訪問是通過外部的控制信號實(shí)現(xiàn)的。
HPI到CPU的存儲(chǔ)空間的連接由DMA控制器完成。在C6701中有專門的DMA輔助通道完成數(shù)據(jù)傳輸任務(wù)。

軟件設(shè)計(jì)
在DSP數(shù)據(jù)采集卡與LabVIEW 的接口應(yīng)用中主要利用CLFN來實(shí)現(xiàn)此功能:PC機(jī)通過HPI接口把文件名為*.out可執(zhí)行文件裝載到DSP程序存儲(chǔ)空間,之后DSP執(zhí)行該文件。
DSP boot模式設(shè)置為HPI 自舉。HPI自舉工作原理如下:在自舉時(shí),核心CPU停留在復(fù)位狀態(tài),硬件其余部分均保持正常狀態(tài)。在這期間,外部主機(jī)通過HPI初始化CPU的存儲(chǔ)空間。主機(jī)完成所有的初始化工作后,將HPI控制存儲(chǔ)器中的DSPINT設(shè)置為1,結(jié)束自舉過程。此時(shí)CPU退出復(fù)位狀態(tài),開始執(zhí)行地址0處的指令。HPI自舉過程中,主機(jī)可以對DSPs所有的存儲(chǔ)空間進(jìn)行讀和寫。
在軟件設(shè)計(jì)中,打開數(shù)據(jù)采集卡,以獲取采集卡的句柄;復(fù)位DAQ卡之后,設(shè)置HPI自舉模式,使DSP處于復(fù)位狀態(tài);這時(shí)如果DSP與HPI建立了連接,并且DMA輔助通道的優(yōu)先級比DSP高,通過調(diào)用函數(shù)evm6x_coff_load把coffname所指定的目標(biāo)文件加載到DSP內(nèi)存中。一旦DSP不處于復(fù)位狀態(tài)時(shí),DSP就開始執(zhí)行被加載的文件。

結(jié)語
通過CLFN調(diào)用DLL加載DSP目標(biāo)文件從而節(jié)省數(shù)據(jù)采集卡的內(nèi)存空間的方法已經(jīng)應(yīng)用到吉林大學(xué)-TI DSPs實(shí)驗(yàn)室的虛擬頻譜分析儀中。由于DSP加載程序是C語言程序,因此可移植性好。另外,可看出通過調(diào)用庫函數(shù)節(jié)點(diǎn)CLFN,將C語言同LabVIEW中編程直觀方便的圖形化G語言結(jié)合起來,以加快程序運(yùn)行速度,提高軟件性能,并方便程序模塊共享,節(jié)省編程時(shí)間。■

參考文獻(xiàn):
1. TMS320C6201/6701 Evaluation Module Technical Reference, Texas Instruments, 1998.
2. 任麗香,馬淑芬,李方慧,TMS320C6000系列DSPs的原理與應(yīng)用,北京:電子工業(yè)出版社,2000.
3. 張雄偉,曹鐵勇,DSP芯片的原理與開發(fā)應(yīng)用(第2版),北京:電子工業(yè)出版社,2001.
4. Using External Code in LabVIEW, National Instruments, 2000.
5. 袁淵,古軍,虛擬儀器基礎(chǔ)教程,電子科技大學(xué)出版社,2000.



圖1 TMS320C6701 DSP數(shù)據(jù)采集卡方框圖



關(guān)鍵詞: DSP

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉