色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

          LabVIEW中的CLFN
          LabVIEW程序由三部分組成:前面板、框圖程序和圖標(biāo)/連接器。程序前面板用于設(shè)置輸入量和觀測(cè)量,模擬真實(shí)儀器的前面板;每一個(gè)程序前面板都有相應(yīng)的框圖程序與之對(duì)應(yīng),框圖程序用圖形編程語(yǔ)言編寫(xiě)。圖標(biāo)/連接端口可以讓用戶把VI程序定義為一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程。
          調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(Call Library Function Node,CLFN)是一個(gè)圖形化節(jié)點(diǎn),是LabVIEW調(diào)用C語(yǔ)言編寫(xiě)的可執(zhí)行程序代碼的一個(gè)通用的方法,常用于調(diào)用動(dòng)態(tài)連接庫(kù)(DLL),這種方式特別適合于用戶創(chuàng)建實(shí)現(xiàn)自己特定功能的DLL。但是對(duì)C語(yǔ)言的編譯必須通過(guò)外部的開(kāi)發(fā)平臺(tái)環(huán)境,在Win9x/NT下可以使用Microsoft Visual C++軟件平臺(tái)。
          用CLFN調(diào)用DLL來(lái)實(shí)現(xiàn)DSP 目標(biāo)文件加載,簡(jiǎn)要步驟如下:
          (1)在LabVIEW程序框圖中放置一CLFN節(jié)點(diǎn)。對(duì)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ù)采集卡是美國(guó)TI公司的TMS320C6701 DSP數(shù)據(jù)采集卡,方框圖如圖1所示。
          DSP數(shù)據(jù)采集卡的特點(diǎn)有:
          PCI總線接口,支持即插即用;通過(guò)HPI(Host Port Interface)訪問(wèn)DSP內(nèi)存;16-bit音頻編解碼器,支持5.5kHz~48kHz采樣率;三種DSP boot 模式:無(wú)自舉模式,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)采用甚長(zhǎng)指令字(VLIW)結(jié)構(gòu),8個(gè)指令組成一個(gè)指令包,總字長(zhǎng)為256 bit。芯片內(nèi)部設(shè)置了專門(mén)的指令分配模塊,可以將每個(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ī)可以通過(guò)HPI直接訪問(wèn)CPU的存儲(chǔ)空間。外部的主機(jī)是該接口的主控者。
          HPI存取的接口由一套寄存器來(lái)實(shí)現(xiàn)。HPI控制寄存器HPIC(HPI Control Register)完成對(duì)接口的設(shè)置,主機(jī)和CPU都可以訪問(wèn)HPIC;外部主機(jī)進(jìn)一步通過(guò)主機(jī)地址寄存器HPIA(Host Address Register)和主機(jī)數(shù)據(jù)寄存器HPID(Host Data Register)來(lái)完成對(duì)CPU存儲(chǔ)空間的訪問(wèn)。主機(jī)對(duì)這些寄存器的訪問(wèn)是通過(guò)外部的控制信號(hào)實(shí)現(xiàn)的。
          HPI到CPU的存儲(chǔ)空間的連接由DMA控制器完成。在C6701中有專門(mén)的DMA輔助通道完成數(shù)據(jù)傳輸任務(wù)。

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

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

          參考文獻(xiàn):
          1. TMS320C6201/6701 Evaluation Module Technical Reference, Texas Instruments, 1998.
          2. 任麗香,馬淑芬,李方慧,TMS320C6000系列DSPs的原理與應(yīng)用,北京:電子工業(yè)出版社,2000.
          3. 張雄偉,曹鐵勇,DSP芯片的原理與開(kāi)發(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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉