當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1 引言隨著數(shù)字信號(hào)處理器性能的不斷提高及其成本與售價(jià)的大幅下降,數(shù)字信號(hào)處理應(yīng)用領(lǐng)域飛速擴(kuò)展,信號(hào)處理進(jìn)入了一個(gè)新的發(fā)展時(shí)期。同時(shí)隨著計(jì)算機(jī)技術(shù)以及互聯(lián)網(wǎng)絡(luò)技術(shù)

1 引言

隨著數(shù)字信號(hào)處理器性能的不斷提高及其成本與售價(jià)的大幅下降,數(shù)字信號(hào)處理應(yīng)用領(lǐng)域飛速擴(kuò)展,信號(hào)處理進(jìn)入了一個(gè)新的發(fā)展時(shí)期。同時(shí)隨著計(jì)算機(jī)技術(shù)以及互聯(lián)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,越來越多的數(shù)據(jù)需要經(jīng)過計(jì)算機(jī)來進(jìn)行處理、存儲(chǔ)、傳輸籌操作。計(jì)算機(jī)的應(yīng)用已經(jīng)遍及我們生活的每一個(gè)角落。由于計(jì)算機(jī)本身的特點(diǎn),通用計(jì)算機(jī)通常僅負(fù)責(zé)沒有實(shí)時(shí)性要求的工作,而不適于進(jìn)行實(shí)時(shí)性要求很高的數(shù)字信號(hào)處理。將計(jì)算機(jī)和DSP有機(jī)地結(jié)合起來,充分利用各自的優(yōu)點(diǎn),它們將會(huì)相得益彰,滿足現(xiàn)實(shí)應(yīng)用中對(duì)數(shù)據(jù)實(shí)時(shí)處理能力、數(shù)據(jù)傳輸能力以及數(shù)據(jù)管理能力提出的越來越高的要求。PCI總線以其眾多優(yōu)點(diǎn)在計(jì)算機(jī)中具有不可取代的作用,采用PCI總線使DSP與計(jì)算機(jī)通信可以很好地滿足其對(duì)高速數(shù)據(jù)傳輸?shù)囊蟆1疚囊詫?shí)際開發(fā)系統(tǒng)為背景,以TI公司的TMS320VC5402與PLX公司的PCI9052為基礎(chǔ)。詳細(xì)論述了基于DSP的PCI總線結(jié)構(gòu)的數(shù)據(jù)采集系統(tǒng)硬件及軟件設(shè)計(jì)方案和實(shí)現(xiàn)方法。

2 數(shù)據(jù)采集系統(tǒng)硬件設(shè)計(jì)

2.1 系統(tǒng)結(jié)構(gòu)及原理

基于DSP的PCI總線高速數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)如圖1所示,它主要由A/D轉(zhuǎn)換器、DSP數(shù)據(jù)讀取及處理、PCI通信接口和PC機(jī)等部分組成。模擬信號(hào)經(jīng)A/D采樣后由DSP通過并行I/O讀取,并將處理后的數(shù)據(jù)通過PCI總線送到通用計(jì)算機(jī)做進(jìn)一步處理[1]。

 

A/D轉(zhuǎn)換器采用TI公司的TLC5510,TLC5510為8 bit、20 MS/s的高速并行A/D轉(zhuǎn)換器。TLC5510在每個(gè)時(shí)鐘的下降沿采樣,該采樣點(diǎn)的轉(zhuǎn)換數(shù)據(jù)經(jīng)過2.5個(gè)延遲后,在時(shí)鐘的上升沿輸出,也就是每個(gè)點(diǎn)的轉(zhuǎn)換時(shí)間為2.5個(gè)時(shí)鐘周期,一旦轉(zhuǎn)換流水線啟動(dòng),則在每個(gè)時(shí)鐘的上升沿都有一個(gè)轉(zhuǎn)換數(shù)據(jù)輸出。

DSP與計(jì)算機(jī)之間的通信由接口電路 PCI9052實(shí)現(xiàn)。PCI9052是PLX公司推出的一種簡(jiǎn)單、高效的PCI從設(shè)備接口,可實(shí)現(xiàn)多種外設(shè)局部總線和PCI總線的互連。根據(jù)PCI規(guī)范,主設(shè)備和從設(shè)備的劃分本質(zhì)上是確定數(shù)據(jù)傳輸雙方訪問與被訪問的能力和關(guān)系。在此,PCI9052只能由主機(jī)或其它擁有總線主控制能力的設(shè)備進(jìn)行數(shù)據(jù)的讀寫操作。但由于其內(nèi)部有64Byte寫FIFO和32Byte讀FIFO,使PCI9052的局部總線和PCI總線能互相獨(dú)立工作,可支持傳輸速度為132 Mb/s的突發(fā)傳輸[2]。

DSP采用TI公司的TMS320VC5402,它的處理能力可達(dá)到100 Mb/s,具有改進(jìn)型的8位HPI接口,有16 K*16 Bit DARAM,以及4 K*l6 Bit ROM存儲(chǔ)空間。具有較高的性價(jià)比[3]。

2.2 PCI9052與TMS320VC5402的接口

PCI9052的局部總線設(shè)置為8位局部總線,采用地址數(shù)據(jù)非復(fù)用模式,PCI9052和TMS320VC5402的接口電路如圖2所示 [4,5]。此時(shí),LBE1為L(zhǎng)A1,LBE0為L(zhǎng)A0。將PCI9052的LBE0接HPI的HBIL,用以區(qū)分第一字節(jié)和第二字節(jié)。PCI9052的 LA17接TMS320VC5402的HCNTL1,LA16接HC-NTL0,以選擇HPI寄存器。PCI9052的LAD[0:7]接 TMS320VC5402的HD[7:0]。TMS320VC5402的HINT反向后接至PCI9052的LINT1,之所以反向是由于HINT低電平有效,而UNT1是高電平有效。PCI9052的LW/R反向后接至TMS320VC5402的HR/W,因?yàn)長(zhǎng)W/R高電平表示寫,低電平表示讀;而 HR/W高電平表示主機(jī)要讀HPI,低電平表示主機(jī)要寫HPI。PCI9052的CS0與CS1相或后連接至HCS,RD和WR分別連接到 HDS1,HDS2。TMS320VC5402的LRDY通過一定的邏輯組合再加上一個(gè)D觸發(fā)器與PCI9052的LRDY相連以實(shí)現(xiàn)PCI9052與 HPI的同步。PCI9052局部時(shí)鐘采用40MHz。其中CPLD選用EPM7128,使用MAX+PLUSⅡ進(jìn)行設(shè)計(jì)。

 

HPI主機(jī)接口采用訪問寄存器的方式來進(jìn)行DSP內(nèi)部數(shù)據(jù)的讀寫,把HPI口單純映射到PCI的I/O空間或者存儲(chǔ)器空間都有不可避免的缺點(diǎn),因此本接口電路采用雙映射方式,利用映射來訪問控制、地址寄存器和單個(gè)數(shù)據(jù)口,而利用存儲(chǔ)器映射來訪問連續(xù)數(shù)據(jù)口。以實(shí)現(xiàn)TMS320VC5402與 PCI9052之間方便、高效的數(shù)據(jù)通信[6]。

3 數(shù)據(jù)采集系統(tǒng)軟件的設(shè)計(jì)

數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)包括三個(gè)部分:DSP上的采集程序及響應(yīng)程序。數(shù)據(jù)采集卡的驅(qū)動(dòng)程序,在驅(qū)動(dòng)程序上構(gòu)建的應(yīng)用程序。驅(qū)動(dòng)程序是實(shí)現(xiàn)DSP與計(jì)算機(jī)通信的關(guān)鍵,本文主要介紹設(shè)備驅(qū)動(dòng)模型及其初始化的設(shè)計(jì)方法。

3.1 驅(qū)動(dòng)程序模型

Win2000不支持直接訪問硬件,虛擬驅(qū)動(dòng)器依賴運(yùn)行在內(nèi)核模式的真正的驅(qū)動(dòng)器。內(nèi)核模式驅(qū)動(dòng)程序使用系統(tǒng)級(jí)代碼編寫,且運(yùn)行在內(nèi)核模式下,因?yàn)閮?nèi)核模式允許直接硬件訪問。內(nèi)核驅(qū)動(dòng)程序可被進(jìn)一步分成遺留模式的驅(qū)動(dòng)程序和Windows驅(qū)動(dòng)模式的驅(qū)動(dòng)程序(WDM)。

Windows 驅(qū)動(dòng)程序模型(WDM)如圖3所示。圖中左邊是一個(gè)設(shè)備對(duì)象堆棧。設(shè)備對(duì)象是系統(tǒng)為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。處于堆棧最底層的設(shè)備對(duì)象稱為物理設(shè)備對(duì)象(PDO)。在設(shè)備對(duì)象堆棧的中間某處有一個(gè)功能設(shè)備對(duì)象(FDO)。FDO的上面和下面還會(huì)有一些過濾設(shè)備對(duì)象。位于FDO上面的過濾設(shè)備對(duì)象稱為上層過濾器,位于FDO下面的過濾器設(shè)備對(duì)象稱為下層過濾器。

 

總線驅(qū)動(dòng)器的任務(wù)之一就是枚舉總線上的設(shè)備。并為每個(gè)設(shè)備創(chuàng)建一個(gè)PDO。一旦總線驅(qū)動(dòng)器程序檢查到新硬件存在,PnP管理器就創(chuàng)建一個(gè)PDO,創(chuàng)建完P(guān)DO后,PnP管理器參照注冊(cè)表中的信息查找與這個(gè)PDO相關(guān)的過濾器和功能驅(qū)動(dòng)程序。系統(tǒng)安裝程序負(fù)責(zé)這些注冊(cè)表項(xiàng),而驅(qū)動(dòng)程序包中控制硬件安裝的INF文件負(fù)責(zé)添加其他表項(xiàng)。這些表項(xiàng)定義了過濾器和功能驅(qū)動(dòng)程序在堆棧中的次序。

3.2 驅(qū)動(dòng)程序的初始化

PnP管理器先裝入硬件需要的驅(qū)動(dòng)程序,然后再調(diào)用驅(qū)動(dòng)程序中的 AddDevice函數(shù)。一個(gè)驅(qū)動(dòng)程序可以被多個(gè)類似的硬件使用。但驅(qū)動(dòng)程序的某些全局初始化操作只能在第一次被裝入時(shí)執(zhí)行一次。而 DriverEntry例程就是用于這個(gè)目的。DriverEntry是內(nèi)核模式驅(qū)動(dòng)程序主入口點(diǎn)常用的名字。I/O管理器按下面方式調(diào)用該例程:

 

DriverEntry的第一個(gè)參數(shù)是一個(gè)指針,指向一個(gè)被初始化的驅(qū)動(dòng)程序?qū)ο?,該?duì)象代表用戶的驅(qū)動(dòng)程序。DriverEntry的第二個(gè)參數(shù)是設(shè)備服務(wù)鍵鍵名,其主要工作是把各種函數(shù)指針填入驅(qū)動(dòng)程序?qū)ο?。這些指針為操作系統(tǒng)指明了驅(qū)動(dòng)程序容器中各種子例程的位置。

PnP 管理器先裝入最底層的過濾器驅(qū)動(dòng)程序并調(diào)用其AddDevice函數(shù)。該函數(shù)創(chuàng)建一個(gè)FiDO,這樣就在過濾器驅(qū)動(dòng)程序和FiDO之間建立了水平連接。然后AddDevice把PDO連接到FiDO上。PnP管理器繼續(xù)下上執(zhí)行,裝入并調(diào)用每個(gè)底層過濾器、功能驅(qū)動(dòng)程序、高層過濾器,直到完成這個(gè)堆棧。該函數(shù)的原型如下:

 

DriverObject參數(shù)指向一個(gè)驅(qū)動(dòng)程序?qū)ο?,就是在DriverEntry例程中初始化的那個(gè)驅(qū)動(dòng)程序?qū)ο?。PDO參數(shù)指向設(shè)備堆棧底部的物理設(shè)備對(duì)象。AddDevice函數(shù)的基本任務(wù)是創(chuàng)建一個(gè)設(shè)備對(duì)象并把它連接到以PDO為底的設(shè)備堆棧中。

當(dāng) AddDevice函數(shù)將FDO和FiDO創(chuàng)建且連接好后,PnP管理器分配資源且發(fā)送PRP_MN_START_DEVICE,功能驅(qū)動(dòng)程序需要在這個(gè) IRP上做大量工作,包括分配并配置額外的軟件資源以及為設(shè)備操作做準(zhǔn)備。處理這個(gè)IRP主要通過PnPStartDevice函數(shù)完成。 PnPStartDevice函數(shù)首先將IRP傳遞到底層驅(qū)動(dòng)程序。等待完成后,調(diào)用IoGetCurrentIrpStackLocation函數(shù)得到當(dāng)前自己的堆棧單元。I/O堆棧單元的Parameters聯(lián)合有一個(gè)名為StarDevice的子結(jié)構(gòu),該結(jié)構(gòu)包含了資源分配信息。在 StarDevice里就可以將分配的資源填充到PDO的設(shè)備擴(kuò)展域中,并且調(diào)用IoConnectInterrupt函數(shù)連接中斷。

層次結(jié)構(gòu)可以使I/O請(qǐng)求過程更加明了。每個(gè)影響到設(shè)備的操作都使用I/O請(qǐng)求包。通常IRP先被送到設(shè)備堆棧的最上層驅(qū)動(dòng)程序,然后逐漸過濾到下面的驅(qū)動(dòng)程序。內(nèi)核通常通過發(fā)送I/O請(qǐng)求包(IRP)來運(yùn)行驅(qū)動(dòng)程序中的代碼。

4 結(jié)束語

基于DSP的PCI總線數(shù)據(jù)采集系統(tǒng)充分利用了DSP豐富的內(nèi)部資源、強(qiáng)大的數(shù)字信號(hào)處理能力及PCI總線的高傳輸速度,能夠方便的開發(fā)數(shù)據(jù)壓縮、語音壓縮存儲(chǔ)等新功能信號(hào),并進(jìn)行預(yù)處理與分析處理。通過PCI總線進(jìn)行數(shù)據(jù)傳送可大大提高傳輸速度。本系統(tǒng)適用于高速數(shù)據(jù)的采集和處理以及需要進(jìn)行大量數(shù)據(jù)傳輸?shù)膽?yīng)用場(chǎng)合。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(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ì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(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)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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