国产毛片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è)備的查詢以及可能導致傳送到虛擬機之外的操作都會被Windows捕獲,所以其本身并不能直接訪問硬件和系統(tǒng)數(shù)據(jù),而需要通過驅(qū)動程序來完成。

即插即用(PnP)是微軟公司為了使新的硬件設(shè)備更加方便使用而采取的一種策略,PnP設(shè)備能夠自身識別、自動提出資源要求,并且可以在運行時接受資源分配。該系統(tǒng)開發(fā)中的PCI總線就是即插即用的。在即插即用的系統(tǒng)中的配置管理是由配置管理器來控制。配置管理器使用設(shè)備節(jié)點、設(shè)備節(jié)點樹、注冊表來保持數(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)存管理器將這些頁交換到磁盤空間,以保證在硬件中斷期間,這些地址都是有效的。

當設(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è)備的安裝、配置、引導和設(shè)備再定位等功能。在該系統(tǒng)中要求將HPI控制標志和狀態(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端口的寄存器相當于一個地址寄存器,位于0xcfc端口的寄存器相當于數(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機訪問,寄存器中保存了當前要訪問的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ū)間建立了一個公共標志數(shù)據(jù)區(qū),用來傳送DSP和PC機的工作狀態(tài)和控制字。設(shè)有以下幾個公共標志數(shù)據(jù)區(qū):

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

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

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

(4)數(shù)據(jù)長度字(16位)。用來標識存放數(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ù),打開中斷,
//準備接受下一次中斷。

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://m.qingdxww.cn/thread-13828-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區(qū)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 我們是Microchip
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓教程
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進行安全電路設(shè)計
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 大伊香蕉精品二区视频在线 | 成人在线免费视频观看 | 国产网站在线播放 | 好吊爽在线播放视频 | 欧美视频网站免费看 | 四虎影院在线免费播放 | 终极教师电视剧免费观看完整版 | 一区二区三区精品国产欧美 | 亚洲综合五月天欧美 | 成 年 人 视频在线播放 | 日本不卡一区二区三区在线观看 | 五月天亚洲综合 | 欧美 中文字幕 | 国产成人精品一区二区三在线观看 | 精品一区二区三区的国产在线观看 | 中国国产aa一级毛片 | 国产性大片黄在线观看在线放 | 国产精品视频专区 | 黄视频网站大全 | 亚洲欧美在线精品一区二区 | 岛国片在线免费观看 | 日日日夜夜操 | 麻豆md国产在线观看 | 视频一区欧美 | 四色网站 | 麻豆视 | 日韩免费高清一级毛片 | 麻豆国产一区二区在线观看 | 国产美女在线免费观看 | 日韩精品国产自在欧美 | 国产精品国产三级在线高清观看 | 深夜福利国产精品亚洲尤物 | 男女羞羞的视频网站在线观看 | 点击进入不卡毛片免费观看 | 韩国a级毛片 | 四虎网址换成什么了2021 | tube.8xxxxvedeo | 五月天福利视频 | 特级毛片在线 | 1024在线观看国产天堂 | 国产在线精品一区二区三区 |