
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、pci總線語音卡及wdm驅(qū)動程序設(shè)計cti(computer telephone integration)即計算機(jī)電話集成技術(shù)已經(jīng)進(jìn)展了30多年。其中電話語音卡是cti中的典型應(yīng)用之一,它作為電腦與公用電話網(wǎng)的接口設(shè)備,應(yīng)用領(lǐng)域已經(jīng)滲透到社會各個部門。同時,在語音卡的開發(fā)中也不斷注入了新的技術(shù),軟件上有語音合成、語音識別等技術(shù),而硬件上最重要的就是技術(shù)和pci技術(shù)。研制了基于tms320vc5410 dsp的pci語音卡,并設(shè)計了相應(yīng)的wdm設(shè)備驅(qū)動程序,取得了良好的效果。1 硬件設(shè)計1.1 pci總線控制芯片pci2040pci總線是一種不依附于某個詳細(xì)處理器的局部總線,它支持32位或64位
2、的總線寬度,頻率通常是33mhz,目前最快的pci2.0總線工作頻率是66mhz。工作在33mhz、32位時,理論上最大數(shù)據(jù)傳輸速率能達(dá)到133mb/s。它支持猝發(fā)工作方式,提高了傳輸速度,支持即插即用,pci部件和驅(qū)動程序可以在各種不同的平臺上運(yùn)行。實現(xiàn)pci總線協(xié)議普通有兩種辦法,一是用設(shè)計實現(xiàn),但pci協(xié)議比較復(fù)雜,因此難度較大;二是采納pci總線控制芯片,如amcc公司的s5933、plx公司的pci9080等通用的pci接口芯片。ti公司特地推出了針對pci總線和dsp接口的芯片pci20402,它不但實現(xiàn)了pci總線控制的功能,而且提供了和dsp芯片無縫的接口,因而大大簡化了系統(tǒng)設(shè)
3、計的復(fù)雜度并縮短了開發(fā)時光。pci2040內(nèi)部功能框圖1所示。pci2040是一個pci-dsp橋接器件,它提供了pci局部總線和tms320c54x 8位主機(jī)接口(hpi)與tms320c6x 16位主機(jī)接口的無縫銜接。一片pci2040最多能同時掛接4片dsp芯片。同時,它還提供了一個串行eeprom接口,一個通用輸入輸出接口(gpio)和一個16位通用總線接口(為ti jtag測試總線控制器提供接口)。pci2040只能作為pci目標(biāo)設(shè)備用法,不能作為pci主設(shè)備用法;它只支持單字的讀寫,不能提供dma操作。pci2040能夠兼容3.3v和5v信號環(huán)境?系統(tǒng)中的3.3v和5v信號可以挺直
4、從pci插槽中獲得。1.2 語音卡硬件設(shè)計1.2.1 功能簡介及硬件框圖語音卡是基于tms320vc5410 dsp和pci2040而設(shè)計的。此卡的主要功能是:(1)通過電話信號音檢測模塊,將對方說話的聲音經(jīng)a/d轉(zhuǎn)換后,交給dsp舉行壓縮處理,采納g.729編碼算法壓縮后速率可達(dá)到8kbps,然后將壓縮后的碼流通過pci2040經(jīng)pci總線存放在計算機(jī)硬盤上,從而實現(xiàn)錄音功能。(2)將存在硬盤上的壓縮碼流(以文件形式存在),通過pci2040經(jīng)pci總線傳送到dsp的內(nèi)部緩沖區(qū)中,舉行解壓縮處理(g.729解碼算法),并將解碼后的數(shù)據(jù)通過d/a轉(zhuǎn)換回放出來。語音卡硬件框圖2所示。電話信號音檢
5、測部分主要實現(xiàn)振鈴檢測、摘掛機(jī)及話音傳輸功能。系統(tǒng)的核心是dsp,它完成各種復(fù)雜算法的處理,包括g.729編解碼算法、回聲消退算法、話音檢測及軟件摘掛機(jī)算法等。tms320vc5410是ti 54x系列中一款高性能的dsp,它的處理功能達(dá)到100,因此能滿足算法復(fù)雜度的要求。它的最大特點(diǎn)是片內(nèi)集成了64k×16bit的ram和16k×16bit的rom因而不需要外加sram或sdram就可以滿足系統(tǒng)設(shè)計的要求。tms320vc5410內(nèi)置了3個多通道緩沖串行口(mcbsp)、6個dma通道和一個8位增加型hpi口,可以便利地和外部舉行數(shù)據(jù)交換。在語音卡的設(shè)計中,采納pci2
6、040來完成dsp與主機(jī)交換數(shù)據(jù)的任務(wù)。1.2.2 pci2040與tms320vc5410接口pci2040與tms320vc5410 hpi口的銜接3所示。pci_ad31pci_ad15打算了pci2040的控制空間基地址(control space base address)寄存器的值,這個值事實上是系統(tǒng)自動分配的。全部的pnp器件都是如此?它將控制空間映射到主機(jī)內(nèi)存,映射的空間大小為232-17=32kb。dsp芯片的挑選是通過解碼pci_ad14、pci_ad13來實現(xiàn)的。而pci_ad12和pci_ad11分離映射到hcntl1和hcntl0,用以打算拜訪dsp hpi寄存器的方
7、式。其對應(yīng)關(guān)系如表1所示。因此,dsp與pc交換數(shù)據(jù)的過程,也就是讀寫hpi寄存器的過程。詳細(xì)描述如下:(1)初始化pci2040內(nèi)部配置寄存器,指向特定的dsp(本系統(tǒng)惟獨(dú)一個dsp和pci2040相連),指定數(shù)據(jù)傳輸寬度為8位。(2)分配hpi 基地址和控制空間基地址,允許pci2040舉行內(nèi)存映射或i/o端口映射。值得注重的是,pci2040控制空間只能映射在主機(jī)的內(nèi)存空間里,不能映射在i/o空間。以上兩步都由驅(qū)動程序完成。(3)脫離復(fù)位狀態(tài)后,pci2040解碼從pci總線來的地址,以此來做出響應(yīng)。若落入32kb的控制空間中,則按照hcntl1和hcntl0及片選狀況拜訪相應(yīng)hpi寄存
8、器。(4)設(shè)定hpi控制寄存器中的bob位,挑選正確的凹凸8位羅列方式。(5)主機(jī)開頭對hpi寄存器舉行讀寫。2 基于wdm的pci驅(qū)動程序設(shè)計2.1 wdm驅(qū)動程序結(jié)構(gòu)及原理wdm是新一代的驅(qū)動程序構(gòu)架,它是一個跨平臺的驅(qū)動程序模型,在windows 98以上的操作系統(tǒng)中都實現(xiàn)了全面兼容。不僅如此,wdm驅(qū)動程序還可以在不修改源代碼的狀況下經(jīng)過重新編譯后在非intel平臺上運(yùn)行,因而為驅(qū)動程序開發(fā)人員提供了極大的便利。wdm驅(qū)動程序是分層的,即不同層上的驅(qū)動程序有著不同的優(yōu)先級,而windows 9x下的vxd則沒有此結(jié)構(gòu)。另外,wdm還引入了功能設(shè)備對象fdo(functional dev
9、ice object)與物理設(shè)備對象pdo(physical device object)兩個新概念來描述硬件。pdo代表實際存在的硬件設(shè)備,它是在總線驅(qū)動程序(bus driver)下枚舉并建立的,負(fù)責(zé)與真切硬件舉行i/o操作。fdo是由用戶驅(qū)動程序建立的,普通來說,它是用戶與真切硬件舉行i/o操作的一個窗口,是win32賴以交流內(nèi)核的一個橋梁。對于驅(qū)動程序開發(fā)者,真正需要做的就是開發(fā)fdo。至于pdo,則由bus driver建立,并在需要的時候作為參數(shù)由i/o manager或其它系統(tǒng)組件傳給你的fdo。在應(yīng)用層與底層舉行通訊時,操作系統(tǒng)為每一個用戶哀求打包成一個irp(io reque
10、st packet)結(jié)構(gòu),將其發(fā)送至驅(qū)動程序,并通過識別irp中的pdo來識別是發(fā)送給哪一個設(shè)備的。另外,wdm不是通過驅(qū)動程序名稱,而是通過一個128位的全局惟一標(biāo)識符(guid)來識別驅(qū)動程序的。wdm驅(qū)動程序都有一個初始化入口點(diǎn),即driverentry,它相當(dāng)于中的main函數(shù)。當(dāng)wdm驅(qū)動程序被裝入時,內(nèi)核調(diào)用driverentry例程。另外wdm設(shè)備驅(qū)動程序還需要一個即插即用模塊,即adddevice。adddevice例程就是pnp管理器在用戶插入新設(shè)備時調(diào)用它來創(chuàng)建wdm設(shè)備對象的。2.2 pci語音卡驅(qū)動程序設(shè)計pci總線支持即插即用,因而采納wdm模型來設(shè)計驅(qū)動程序?qū)⑹钩绦?/p>
11、越發(fā)合理,支持更多的操作系統(tǒng),并且在安裝維護(hù)上越發(fā)便利。該驅(qū)動程序主要用driverstudio 2.5加vc+ 6.0設(shè)計。driverstudio對ddk舉行封裝,利用向?qū)Э缮沈?qū)動程序框架。在此基礎(chǔ)上再添加針對語音卡處理的函數(shù)及語句即可完成設(shè)計,調(diào)試工具為softice。程序結(jié)構(gòu)框圖4所示。pci2040.lib和pci2040.dll處于ring3層,它封裝了和底層驅(qū)動打交道的函數(shù),對外只顯現(xiàn)出如open_device()、close_device(handle hdevice)、record(handle hdevice,lpstr filename)、play(handle hde
12、vice,lpstr filename)等api函數(shù)。這樣可以讓多種編程語言以dll的形式來調(diào)用,給用法者提供了便利。核心編程是pci2040.sys,它處于ring0層,為ring3層和pci語音卡舉行數(shù)據(jù)交換搭建了一個橋梁。驅(qū)動程序中主要模塊有:?(1)onstartdevice(),在這個例程里驅(qū)動程序?qū)⒌玫絧np管理器為語音卡所分配的硬件資源,包括hpi csr基地址和hpi控制空間基地址,對pci配置空間舉行初始化。初始化中斷等。需要注重的是,在初始化中斷之前禁止卡向主機(jī)發(fā)中斷,因此應(yīng)有屏蔽中斷的操作。(2)devicecontrol(),在這個例程中可以定制自己的函數(shù)來達(dá)到ring
13、3層和ring0層互相通訊的目的。通過ioctl_code可以區(qū)別不同的哀求。例如:define send_hevent ctl_code(file_device_unknown, 0x802, method_buffered, file_any_access)在devicecontrol()中,可執(zhí)行如下語句:case send_hevent:status = send_hevent_handler(i);/接收應(yīng)用程序傳遞給wdm的大事句柄m_irq.connect(linkto(isr_irq), this); /銜接中斷int_mask_set_ul=(ulong)0x80000001
14、; /開相應(yīng)中斷屏蔽位m_ctlmemoryrange.outw(ulong)0x0000,0x0b0b);/清除中斷位,等待中斷到來break;把銜接中斷的函數(shù)放在devicecontrol()里,并沒有和初始化中斷(在onstartdevice()中)放在一起,不然會在win2000里引起死機(jī)。dsp語音卡是基于中斷處理的,因此上面的程序就起了這樣一個作用:當(dāng)語音卡向主機(jī)發(fā)中斷時,驅(qū)動程序就跳到isr_irq執(zhí)行,并在dpcfor_irq中將大事設(shè)置為信號態(tài),從而通知上層應(yīng)用程序舉行處理。(3)isr_irq(),這個例程是用來處理中斷的。windows 2000的中斷處理機(jī)制是假定多個設(shè)備可以分享一個硬件中斷。因此,isr的首要工作就是找出哪一個設(shè)備發(fā)生了中斷。假如沒有,則應(yīng)當(dāng)立即返回false,以便hal能把中斷送往其它設(shè)備驅(qū)動程序。中斷服務(wù)例程isr執(zhí)行在提升的irql上,在dirql級別上運(yùn)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲文員崗位面試問題及答案
- 采購總監(jiān)崗位面試問題及答案
- 2025屆廣東省廣州市廣東二師番禺附中化學(xué)高一下期末檢測模擬試題含解析
- 2025屆陜西省銅川市高二化學(xué)第二學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 農(nóng)業(yè)監(jiān)督項目管理辦法
- 園區(qū)綠化養(yǎng)護(hù)管理辦法
- 醫(yī)保總額付費(fèi)管理辦法
- 保健食品銷售管理辦法
- 復(fù)合地層盾構(gòu)掘進(jìn)管線保護(hù)與地層加固優(yōu)化方案研究
- 家驢MRFs基因家族的全基因組鑒定與轉(zhuǎn)錄組學(xué)分析探究
- 暑假假期安全教育 家長會課件
- 四川省成都市泡桐樹小學(xué)六年級小升初語文測試卷(8套試卷帶答案解析)
- 2023-2024年全科醫(yī)學(xué)(正高)考試高頻題庫(歷年考點(diǎn)版)帶答案解析
- YY/T 0870.2-2019醫(yī)療器械遺傳毒性試驗第2部分:體外哺乳動物細(xì)胞染色體畸變試驗
- JJG 40-2011X射線探傷機(jī)
- GB/T 8923.1-2011涂覆涂料前鋼材表面處理表面清潔度的目視評定第1部分:未涂覆過的鋼材表面和全面清除原有涂層后的鋼材表面的銹蝕等級和處理等級
- GB/T 7778-2017制冷劑編號方法和安全性分類
- GB/T 4169.4-2006塑料注射模零件第4部分:帶頭導(dǎo)柱
- 天津2023年天津銀行信息技術(shù)崗招聘黑鉆模擬III試題3套含答案詳解
- 01-TOC約束理論(瓶頸管理)八講 作業(yè)
- 《國家學(xué)生體質(zhì)健康標(biāo)準(zhǔn)》登記卡(高中樣表)
評論
0/150
提交評論