国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

多路實時數(shù)字音頻系統(tǒng)中的PCI通信

發(fā)布時間:2010-6-28 10:29    發(fā)布者:zealot
關(guān)鍵詞: PCI , 多路實時 , 數(shù)字音頻 , 通信
1 引言

多路實時數(shù)字音頻系統(tǒng)采用TI公司的TMS320C5402數(shù)字信號處理芯片來實現(xiàn),由于該系列芯片采用了改進的哈佛結(jié)構(gòu),擁有專用的硬件乘法器和專為數(shù)字信號處理而設(shè)計的指令系統(tǒng),快速的指令周期和良好的多DSP并行運行特性,使得DSP芯片非常適合于實時數(shù)字信號處理,廣泛應(yīng)用于無線通信、語音識別、工業(yè)控制、自動化儀器等領(lǐng)域。該系統(tǒng)用TMS320C5402芯片外接一個2X4路的A/D芯片Maxl25CEAX實現(xiàn)對多路數(shù)字音頻的實時處理,然后將處理數(shù)據(jù)通過PCI2040傳送到PC機進行后繼處理并保存,或從PC機接受命令進行相應(yīng)操作,實現(xiàn)PC機和DSP之間的數(shù)據(jù)傳送,需要DSP程序、應(yīng)用程序、驅(qū)動程序三者相互協(xié)調(diào)工作。

2 WindOWS管理體系

Win98體系結(jié)構(gòu)支持4種基本程序:管理程序、win32應(yīng)用程序、winl6應(yīng)用程序和DOS應(yīng)用程序,每種程序在不同的執(zhí)行環(huán)境中運行。(1)管理程序在Ring0層(核心態(tài))中的保護模式下運行,所以能訪問和控制實際硬件環(huán)境,管理程序是在實際機器上,而不是在虛擬機上運行,在所有構(gòu)成win98的組件中,只有VMM和驅(qū)動程序在管理程序的環(huán)境中執(zhí)行,可以直接對硬件進行操作。(2)Win32應(yīng)用程序和Winl6應(yīng)用程序都在Ring3層(用戶態(tài))的保護模式下運行,Win32應(yīng)用程序可以訪問4GB的虛擬內(nèi)存,而Winl6應(yīng)用程序只能訪問16MB的虛擬內(nèi)存。(3)DOS應(yīng)用程序運行在V86模式下,它也運行在Ring3層的訪問級別上,硬件訪問和中斷被隱藏和虛擬,該系統(tǒng)編寫的是32位應(yīng)用程序,它運行在虛擬環(huán)境之下,它對I/o端口的查詢,對一個內(nèi)存映射的外圍設(shè)備的查詢以及可能導(dǎo)致傳送到虛擬機之外的操作都會被Windows捕獲,所以其本身并不能直接訪問硬件和系統(tǒng)數(shù)據(jù),而需要通過驅(qū)動程序來完成。

即插即用(PnP)是微軟公司為了使新的硬件設(shè)備更加方便使用而采取的一種策略,PnP設(shè)備能夠自身識別、自動提出資源要求,并且可以在運行時接受資源分配。該系統(tǒng)開發(fā)中的PCI總線就是即插即用的。在即插即用的系統(tǒng)中的配置管理是由配置管理器來控制。配置管理器使用設(shè)備節(jié)點、設(shè)備節(jié)點樹、注冊表來保持?jǐn)?shù)據(jù);配置管理器由枚舉器、仲裁器、設(shè)備安裝器、設(shè)備驅(qū)動器4個主要軟件來工作;配置管理器的工作流程如圖1所示。


3 設(shè)備內(nèi)存映射方法

盡管驅(qū)動程序運行在核心層,但它所見的是平面內(nèi)存,只能用線性地址進行訪問。所有驅(qū)動程序?qū)?nèi)存的訪問都必須經(jīng)過頁表將線性地址轉(zhuǎn)換成物理地址。因此,驅(qū)動程序在訪問一個特殊的內(nèi)存映射硬件之前,必須先配置頁表,保證設(shè)備的物理地址與一個線性地址相聯(lián)系。這個線性地址可以用作指針。驅(qū)動程序不能控制頁表,它必須調(diào)用虛擬機管理器提供的服務(wù)。

對老式非即插即用設(shè)備,只要給出設(shè)備內(nèi)存的物理地址和字節(jié)長度,獲取一般在硬件上手動設(shè)置,然后調(diào)用MapPhysToLinear()函數(shù)獲取此物理地址的線性地址,就可進行訪問。

對即插即用設(shè)備,其物理地址可以通過調(diào)用函數(shù)CM_Get_Alloc_Log_Conf()獲取,但因為在Windows運行期間,即插即用的物理地址可能改變,而MapPhys-ToLinear()函數(shù)返回的線性地址所對應(yīng)的物理地址不變,這樣就會造成訪問錯誤。對于物理地址可變的動態(tài)配置設(shè)備,驅(qū)動程序必須將內(nèi)存映射過程分成3步。

(1)使用PageReserve()函數(shù),分配一塊線性地址空間。此空間并不和具體的物理地址相關(guān)聯(lián),僅是線性地址的頁表進入項。

(2)使用PageCommitPhys()函數(shù),將線性地址映射到設(shè)備的物理地址,此時對線性地址的操作就是在相應(yīng)的物理地址之上操作。

(3)使用LinPageLock()函數(shù),阻止虛擬內(nèi)存管理器將這些頁交換到磁盤空間,以保證在硬件中斷期間,這些地址都是有效的。

當(dāng)設(shè)備卸載時,驅(qū)動程序可以調(diào)用LinPageUnLock(),PageDecommit(),PageFree()來解除設(shè)備的內(nèi)存映射,這里每一個調(diào)用都是上述3步調(diào)用的反過程。

4 PCI配置寄存器訪問

根據(jù)PCI總線規(guī)范要求,任何PCI設(shè)備都必須提供256字節(jié)的配置空間,用來完成對設(shè)備的安裝、配置、引導(dǎo)和設(shè)備再定位等功能。在該系統(tǒng)中要求將HPI控制標(biāo)志和狀態(tài)寄存器以及HPI控制空間映射到PC機內(nèi)存,所以必須對PCI2040配置寄存中的命令寄存器進行修改,從而實現(xiàn)設(shè)備內(nèi)存映射。這需要通過32位配置地址端口(占用IO地址OxOcf8~OxOcfb)和32位配置數(shù)據(jù)端口(占用IO地址OxOcfc~OxOcff)訪問PCI配置寄存器。其中位于0xcf8的IO端口的寄存器相當(dāng)于一個地址寄存器,位于0xcfc端口的寄存器相當(dāng)于數(shù)據(jù)寄存器。配置數(shù)據(jù)端口中存放著配置地址端口中的配置地址所指向的內(nèi)存的內(nèi)容。配置地址端口寄存器各位的意義見表1。


因為PCI設(shè)備的總線號和PCI2040的功能號一般為0,所以只需變化設(shè)備號來尋找硬件的位置。圖2是基于Vtoolsd使用VC++6.0具體對PCI配置寄存器的訪問程序框圖。


5 HPI(Host Port Interface)寄存器介紹

PCI2040橋控制器可方便實現(xiàn)一個PCI插槽與4片C54x或C6x系列的DSP之間的通信,它提供了兩種數(shù)據(jù)傳輸?shù)姆绞剑阂皇峭ㄟ^HPI口傳輸,另一種是通過GPBUS總線傳輸。其中GPBUS總線傳輸方式比較簡單但傳輸速率低,通過HPI口的傳輸可以實現(xiàn)高速的數(shù)據(jù)通信,所以在該系統(tǒng)中采用了HPI口傳輸?shù)耐ㄐ欧绞健in98先獲取HPI寄存器的物理地址進行映射,然后用映射得到的線性地址就可以對HPI口進行訪問。

(1)HPI控制寄存器(HPIC)。可以被PC機和DSP訪問,它是一個16位的寄存器,其高8位和低8位表示的意義相同,低8位所表示的意義見表2。

(2)HPI地址寄存器(HPIA)。只可由PC機訪問,寄存器中保存了當(dāng)前要訪問的DSP的片內(nèi)存儲器地址,它們可以被PC機映射,其映射空間大小為2K。

(3)HPI數(shù)據(jù)寄存器(HPID)。只可由PC機訪問,它的值隨HPIA變化而變化,它保存HPIA中地址所指向的DSP內(nèi)存數(shù)據(jù)的值。通過對它的讀寫,可以訪問相應(yīng)的DSP內(nèi)存的值,也可以設(shè)置成自增方式。這樣,每對它讀寫一次,HPIA的數(shù)據(jù)就自動加1,HPID相應(yīng)保存內(nèi)存中下一個16位數(shù)據(jù)。

6 驅(qū)動、應(yīng)用及DSP程序的設(shè)計

6.1 總體設(shè)計思想

為實現(xiàn)應(yīng)用程序和DSP程序在工作中的同步問題,將在DSP與PC機映射的內(nèi)存區(qū)間建立了一個公共標(biāo)志數(shù)據(jù)區(qū),用來傳送DSP和PC機的工作狀態(tài)和控制字。設(shè)有以下幾個公共標(biāo)志數(shù)據(jù)區(qū):

(1)DSP狀態(tài)字(16位)。用來標(biāo)識數(shù)據(jù)在傳送中DSP的工作狀態(tài)和命令(命令由DSP和PC機約定)。

(2)PC機狀態(tài)字(16位)。用來標(biāo)識數(shù)據(jù)傳送中PC機的工作狀態(tài)和命令。

(3)數(shù)據(jù)起始位置字(16位)。用來標(biāo)識數(shù)據(jù)傳送中,數(shù)據(jù)存放的起始位置。

(4)數(shù)據(jù)長度字(16位)。用來標(biāo)識存放數(shù)據(jù)的長度。

(5)頻率設(shè)置字(16位)。用來控制輸入輸出頻率。

(6)保留字空間。用于以后擴展。

DSP與PC機之間采用中斷的通信方式,每次中斷發(fā)送之前,都先訪問以上的這些控制字,這樣就為PC機和DSP之間通信的協(xié)調(diào)帶來了很多的方便。整體設(shè)計框圖如圖3。


6.2 應(yīng)用程序設(shè)計

應(yīng)用程序要調(diào)用驅(qū)動程序來完成兩件事,一是獲取DSP采集的數(shù)據(jù),二是將自己的數(shù)據(jù)發(fā)送給DSP。應(yīng)用程序整體功能框架如圖4。


應(yīng)用程序只需通過CreateFile()函數(shù)來加載驅(qū)動程序,加載成功之后,應(yīng)用程序就可以通過調(diào)用Devi-ceIoControl()函數(shù)與驅(qū)動程序通信。

6.3 驅(qū)動程序設(shè)計

驅(qū)動程序在系統(tǒng)中起紐帶作用,它響應(yīng)DSP中斷,并向DSP發(fā)送中斷,傳送或讀取數(shù)據(jù)給應(yīng)用程序。

6.3.1 響應(yīng)DSP硬件中斷

Vtoolsd提供中斷類,可以方便地完成對中斷的響應(yīng)工作。其硬件中斷信號處理函數(shù)如下:
BOOL MyHwInt::OnSharedHardwareInt(VMHANDLE hVM)
{

//清除DSP上的中斷寄存器,加人中斷處理代碼。

//讀取公共數(shù)據(jù)區(qū)的數(shù)據(jù),按要求進程操作。

sendPhysicalEOI0; //完成中斷服務(wù),打開中斷,
//準(zhǔn)備接受下一次中斷。

return FALSE; //因為中斷號是共享的,

//此時必須返回FALSE。
}

6.3.2 與應(yīng)用程序通信

在Vtoolsd中使用VDevice類中的OnW32Devi-ceIoControl()函數(shù)響應(yīng)應(yīng)用程序發(fā)送的消息。同時驅(qū)動程序通過異步調(diào)用函數(shù)VWIN32 -QueueUserApc()向應(yīng)用程序傳送數(shù)據(jù)。驅(qū)動程序運行過程框架如圖5,其中虛線框的工作由DSP程序或應(yīng)用程序完成。


6.4 DSP程序設(shè)計

DSP程序?qū)崿F(xiàn)多路數(shù)字音頻信號實時處理,通過對定時器和Maxl25CEAX芯片的設(shè)置,實現(xiàn)采樣率可以變化的多路輸入輸出,通過向PC機發(fā)送中斷和響應(yīng)中斷,實現(xiàn)PC機保存數(shù)據(jù)和實時處理數(shù)據(jù)。DSP在內(nèi)存中開設(shè)兩個數(shù)據(jù)區(qū),數(shù)據(jù)存放在兩個數(shù)據(jù)區(qū)中交替進行。DSP的運行框架如圖6。


7 結(jié)束語

多路數(shù)字音頻系統(tǒng)已經(jīng)調(diào)試通過,并成功地在盲源信號實時分離系統(tǒng)中獲得應(yīng)用。利用TMS320C54x系列DSP的實時信號處理能力,實現(xiàn)PC機與DSP通信在多路實時數(shù)字音頻系統(tǒng)、智能機器人等領(lǐng)域中有廣闊的應(yīng)用前景。
本文地址:http://www.qingdxww.cn/thread-13828-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區(qū)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB® SiC電源仿真器!
  • 安靜高效的電機控制——這才是正確的方向!
  • PIC18-Q71系列MCU概述
  • 無線充電基礎(chǔ)知識及應(yīng)用培訓(xùn)教程3
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: h日本动漫无删减在线观看免 | 91精品国产免费久久国语麻豆 | 国产在线视频一区二区三区 | 最新国产三级久久 | 国产全部理论片线观看 | 成人精品免费网站 | 91综合国产| 天天操夜夜艹 | 国产精品久久久久久久久久免费 | 黄色网址中文字幕 | 久久久久国产一级毛片高清片 | 日本a级黄 | 欧美日韩一本 | 欧美视频在线不卡 | 1024你懂的国产精品 | 日韩欧美在线观看成人 | 久久机热综合久久国产 | 国产成人看片免费视频观看 | 亚洲视频手机在线观看 | 九九精品99久久久香蕉 | 国产成人精品一区二区三区 | 四虎影视在线麻豆国产 | 操老逼网| 亚洲精品网址 | 欧美日韩一区视频 | 免费在线视频日本 | 最新亚洲国产有精品 | 欧美区亚洲区 | 久久九九青青国产精品 | 色综合网址| 免费黄色在线观看 | 久久精品国产精品亚洲毛片 | 在线麻豆国产传媒60在线观看 | 91伊人网| 五月婷婷综合在线 | 一区二区三区日韩精品 | 天天插天天插天天插 | 老师的兔子又大又好吃又多 | 国产国片精品jk制服 | 视频在线观看一区二区 | 抄逼 |