




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式語音通信系統(tǒng)中VxWorks BSP的設(shè)計(jì)實(shí)現(xiàn)0 引 言 當(dāng)前普遍使用的DSP語音處理技術(shù)只能對(duì)語音進(jìn)行簡(jiǎn)單處理,不能適應(yīng)語音業(yè)務(wù)的多樣化趨勢(shì)。本文介紹利用MPC860和VxWorks實(shí)現(xiàn)綜合語音通信平臺(tái),支持多板卡、多路語音實(shí)時(shí)傳輸,可擴(kuò)展多路語音共聽功能。利用MPC860的通信和信號(hào)處理功能,且Vx-Works具有占用空間小、執(zhí)行效率高、方便進(jìn)行個(gè)性化定制和較好的兼容性等特點(diǎn),所以該綜合語音通信平臺(tái)在功能、硬件結(jié)構(gòu)、體積、功耗以及靈活性上具有較大優(yōu)勢(shì)。 在設(shè)計(jì)中盡量采用嵌入式開發(fā)中的常用器件,以便稍加改動(dòng)即可應(yīng)用于其他設(shè)計(jì)??梢愿鶕?jù)實(shí)際需要更改系統(tǒng)中語音通道的數(shù)目和擴(kuò)展多路語音共聽功
2、能等。1 系統(tǒng)結(jié)構(gòu)及工作原理11 系統(tǒng)組成及特點(diǎn) 整個(gè)通信平臺(tái)由語音通信處理主板和語音采集回放子板組成。語音通信處理主板包括CPU MPC860、FLASH存儲(chǔ)器、SDRAM存儲(chǔ)器、10100Mbs網(wǎng)絡(luò)接口、RS 232串口、BDM調(diào)試接口、Console接口、供電和復(fù)位電路及120pin連接器。通信處理主板的核心MPC860是Motorola公司的一款由MC68360演變而來的通用單片集成嵌入式微處理器,適用于通信和網(wǎng)絡(luò)系統(tǒng)。該微處理器內(nèi)部有兩個(gè)處理器:PowerPC和32位RISC處理器。PowerPC核同內(nèi)存管理單元(MMU)、指令和數(shù)據(jù)Cache一同處理高層次應(yīng)用,CPM則負(fù)責(zé)完成低層
3、數(shù)據(jù)通信。兩個(gè)處理器主要通過共享內(nèi)存交互。通信處理模塊利用SCC,SMC,SPI和I2C串行通道與外部設(shè)備通信,其中SCC和SMC支持時(shí)分復(fù)用。設(shè)計(jì)中,SCC工作在QMC協(xié)議Trans-parent Mode。通信處理模塊(CPM)新增了數(shù)字信號(hào)處理(DSP)功能。語音采集回放子板由語音采集電路、語音回放電路、基于FPGA實(shí)現(xiàn)的通信控制器和與語音通信處理主板連接的120pin連接器組成。 由于MPC860的數(shù)據(jù)傳輸速度相比ADC和DAC要快很多,設(shè)計(jì)相應(yīng)的邏輯電路控制語音的采集和回放、協(xié)調(diào)MPC860和數(shù)據(jù)采集、回放電路之間的通信是保證系統(tǒng)正常工作的關(guān)鍵。文中設(shè)計(jì)了基于Altera公司的Cyc
4、loneEP2C8芯片實(shí)現(xiàn)的通信控制器來解決這一問題。 將通信平臺(tái)分為語音通信處理主板和語音采集回放子板分別設(shè)計(jì)實(shí)現(xiàn),是為了降低系統(tǒng)開發(fā)難度和便于系統(tǒng)維護(hù)、升級(jí)和擴(kuò)展。例如語音通信處理主板無需改動(dòng)即可利用已有的連接器、FEC網(wǎng)絡(luò)接口和SDRAM存儲(chǔ)器等資源與視頻編解碼芯片、視頻壓縮解壓縮芯片組成網(wǎng)絡(luò)視頻服務(wù)器。12 功能結(jié)構(gòu)和工作原理 語音通信處理主板的功能結(jié)構(gòu)如圖1所示。 系統(tǒng)上電后,語音通信處理主板復(fù)位電路產(chǎn)生復(fù)位信號(hào),MPC860接收到復(fù)位信號(hào)后,跳轉(zhuǎn)到0X100處開始執(zhí)行啟動(dòng)代碼。按照BSP配置逐步執(zhí)行CPU初始化、板上其他硬件電路的初始化、操作系統(tǒng)運(yùn)行所需數(shù)據(jù)結(jié)構(gòu)的初始化、啟動(dòng)VxW
5、orks WIND內(nèi)核、創(chuàng)建UserRoot任務(wù)、初始化系統(tǒng)中用到的可選擴(kuò)展模塊(如IO系統(tǒng)、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等)、創(chuàng)建任務(wù)usrAppInit(),此時(shí)語音通信平臺(tái)準(zhǔn)備就緒,可以執(zhí)行語音通信任務(wù)。采集板的功能結(jié)構(gòu)如圖2所示,語音通信處理主板啟動(dòng)完畢后,語音采集回放子板可在通信控制器控制下采集和回放語音,并對(duì)語音數(shù)據(jù)進(jìn)行壓縮編解碼和IP封裝、解封裝處理。13 數(shù)據(jù)處理流程 MPC860T和ADC AD7825,DAC AD7305之間的通信由通信控制器控制。通信控制器由數(shù)據(jù)緩沖區(qū)(Rx FIFO,Tx FIFO),基于FSM(有限狀態(tài)機(jī))實(shí)現(xiàn)的控制邏輯(Rx control,Tx contr
6、ol)和8位串并、并串轉(zhuǎn)換器,時(shí)鐘電路組成。其數(shù)據(jù)接收過程為:接收控制邏輯(Rx control)控制ADC AD7825將各個(gè)通道的語音數(shù)字化,并把轉(zhuǎn)換結(jié)果存入接收緩沖區(qū)(Rx FIFO),直至Rx FIFO滿時(shí)Rx control開始向MPC860T提供周期性幀同步信號(hào),頻率為32 kHz。MPC860在幀同步信號(hào)和時(shí)鐘信號(hào)的驅(qū)動(dòng)下讀取Rx FIFO中的數(shù)據(jù)到SCC數(shù)據(jù)接收緩沖區(qū)。Rx FIFO讀空(即讀指針追上了寫指針)后,Rx control停止向MPC860發(fā)送幀同步信號(hào)終止數(shù)據(jù)傳輸,同時(shí)向MPC860發(fā)送中斷信號(hào)IRQ3,MPC860響應(yīng)中斷把數(shù)據(jù)從接收緩沖區(qū)讀到接收ring bu
7、ffer中等待應(yīng)用程序處理。其數(shù)據(jù)發(fā)送過程為:MPC860完成IP解封裝、解壓縮后的語音數(shù)據(jù)將會(huì)在檢測(cè)到發(fā)送緩沖區(qū)可用時(shí),輸出到SCC發(fā)送緩沖區(qū),通信控制器提供發(fā)送幀同步信號(hào)驅(qū)動(dòng)數(shù)據(jù)傳輸?shù)絋x FIFO(發(fā)送緩沖區(qū)),待到Tx FIFO滿時(shí)停止發(fā)送幀同步信號(hào)。數(shù)據(jù)發(fā)送完后,CPM會(huì)清零,TxBD)中的R位表示MPC860可向SCC發(fā)送緩沖區(qū)中裝入新的數(shù)據(jù),為下次傳輸做準(zhǔn)備。14 QMC通信協(xié)議 多通道控制器(QUICC Multichannel Controler,QMC)是為了實(shí)現(xiàn)時(shí)分復(fù)用數(shù)據(jù)傳輸而設(shè)計(jì)的,它可以把時(shí)分復(fù)用幀的數(shù)據(jù)分發(fā)到多達(dá)64個(gè)邏輯通道。該模式下把每一幀的數(shù)據(jù)劃分成若干個(gè)時(shí)
8、隙(Timeslots),每時(shí)隙8 b。在時(shí)隙分配表中規(guī)定每時(shí)隙數(shù)據(jù)從屬于某個(gè)通道,每個(gè)通道都有一組特定的緩沖區(qū)描述符和相應(yīng)的緩沖區(qū)。一個(gè)時(shí)隙的數(shù)據(jù)在收發(fā)時(shí)被放置在特定的緩沖區(qū)里,MPC860T就可把分散的數(shù)據(jù)聚集在一起發(fā)送,或把聚集在一起的數(shù)據(jù)分發(fā)到各自專用的緩沖區(qū),而不需要額外的處理來區(qū)分各種各樣的數(shù)據(jù)流。2 BSP 設(shè)計(jì)實(shí)現(xiàn) 設(shè)計(jì)中軟件開發(fā)主要包括啟動(dòng)代碼的編寫、操作系統(tǒng)的移植、硬件驅(qū)動(dòng)程序和語音編、解碼和IP封裝、解封裝應(yīng)用程序。篇幅有限,本文僅介紹BSP移植。BSP即板級(jí)支持包,其功能為硬件、軟件初始化、工程影像的下載和設(shè)備驅(qū)動(dòng)等。21 BSP的定制 無論是BootRom還是VxWo
9、rks都要使用BSP代碼,BSP定制需要根據(jù)硬板配置、系統(tǒng)設(shè)計(jì)需求、軟件功能等實(shí)際情況。實(shí)際開發(fā)過程中,為了縮短產(chǎn)品開發(fā)周期,通常以WINDRIVER公司的BSP模板或者第三方公司提供的可供參考的BSP為基礎(chǔ),根據(jù)軟硬件具體配置進(jìn)行修改,添加新的程序驅(qū)動(dòng)新增硬件和功能。本課題中先把APC860開發(fā)板的BSPMPC860TEVB拷貝到installdir:Tornadotargetcollfigppcs860目錄下,主要做下列修改。211 configh文件 根據(jù)實(shí)際情況,需要修改啟動(dòng)行,內(nèi)存地址、容量等配置,修改部分代碼如下: 212 makefile文件的修改 makefile文件的修改,部
10、分程序如下: 213 romInit文件修改 romlnits模塊包含了VxWorks在ROM中的入口點(diǎn)romlnit(),它是單板上電以后最先執(zhí)行的匯編程序代碼。該函數(shù)功能包括處理器的復(fù)位、內(nèi)存的初始化以及其他的最基本和必要的初始化工作。需要修改的內(nèi)容如下: 內(nèi)部存儲(chǔ)器映射寄存器IMMR。該寄存器用來標(biāo)識(shí)內(nèi)部地址空間的基址,將該寄存器設(shè)置為“FF000000”。 SIU模式配置寄存器SIUMCR。包括有外部總線仲裁器配置,外部master的支持,DEBUG調(diào)試端口配置,系統(tǒng)接口引腳配置以及奇偶校驗(yàn)支持,將該寄存器設(shè)置為“00E10000”。 BSP中討論SDRAM的初始化過程,首先對(duì)MAMR
11、寄存器的初始化,再得到UPM的RAM陣列表的地址,然后將RAM陣列表地址中的值寫入MPC860 RAM WORDS ARRAY中,最后初始化OR以及BR寄存器。214 ppcs860h ppcs860h是參數(shù)配置頭文件,該文件包含大量宏定義,為使MPC860T正常運(yùn)行且SCC串口工作在QMC協(xié)議透明模式,根據(jù)實(shí)際需要做了如下配置: (1)修改系統(tǒng)常量對(duì)應(yīng)的宏定義:SCCx參數(shù)在雙端口RAM中存儲(chǔ)的起始地址、緩沖區(qū)描述符(BD)的基地址、緩沖區(qū)和BD的數(shù)目等; (2)串口和時(shí)隙分配表的初始化,主要包括時(shí)隙分配、引腳分配等,通過設(shè)置SI RAM參數(shù),規(guī)定了每個(gè)邏輯通道對(duì)應(yīng)的時(shí)隙和數(shù)據(jù)路由,本系統(tǒng)中
12、選擇SCC2和TDMB接口實(shí)現(xiàn)QMC通信,引腳配置如下: PC6 RSYNC,PA2 RXC,PA10 RXD,PA0 TXC。PA11 TXD (3)SCC2初始化:設(shè)置SCC2工作在QMC模式; (4)QMC全局參數(shù)初始化:MCBASE(多通道基地址指針),初始化為SCC2對(duì)應(yīng)外部BD表的基地址,MRBLR(最大接收緩沖區(qū)長(zhǎng)度),接收、發(fā)送時(shí)隙分配表起始地址的指針(Rx S PTR,Tx S PTR),接收、發(fā)送時(shí)隙分配表當(dāng)前時(shí)隙的指針(Rx PTR,TxPTR),中斷循環(huán)表基地址(INTBASE),中斷循環(huán)表下一可用入口的指針(INTPTR)等; (5)QMC特定通道參數(shù)初始化:TBAS
13、E,RBASE(該邏輯通道的緩沖區(qū)描述符的起始地址),TBPTR,RBPTR(當(dāng)前發(fā)送、接收緩沖區(qū)描述符指針),TMR-BLR(最大接收幀長(zhǎng)度)等。215 驅(qū)動(dòng)程序 驅(qū)動(dòng)程序直接對(duì)硬件操作,實(shí)現(xiàn)硬件和操作系統(tǒng)、應(yīng)用程序之間的交互。需要自行編寫MPC860 SCC串口驅(qū)動(dòng)程序ppcs860QmcSioc,通信平臺(tái)中SCC工作在QMC Transparent模式。ppcs860QmcSioc文件中包含SIO_DRV_FUNCS結(jié)構(gòu)體中定義的5個(gè)函數(shù)和中斷處理函數(shù)ppc860QmcInt()、Qmc邏輯通道復(fù)位函數(shù)ppc860QmcChannelReset()。ppc860SccIoctl()提供了
14、一些設(shè)備控制選項(xiàng),包括停止數(shù)據(jù)傳送、察看當(dāng)前通信狀態(tài)(空閑還是忙)、輪詢或中斷模式選擇等;ppc860sccInt()處理QMC通道的中斷請(qǐng)求,通過中斷方式實(shí)現(xiàn)數(shù)據(jù)的收發(fā)功能;ppc860SccStartuP()函數(shù)啟動(dòng)一個(gè)發(fā)送周期;ppc860SccCallbackInstall()安裝回調(diào)函數(shù)。中斷處理函數(shù)的功能有: (1)提供接收、發(fā)送中斷處理函數(shù),調(diào)用回調(diào)函數(shù)完成設(shè)備和較高層協(xié)議之間的數(shù)據(jù)傳送。 (2)處理數(shù)據(jù)接收過程中出現(xiàn)的接收數(shù)據(jù)過長(zhǎng),數(shù)據(jù)傳送被迫終止等異常。由于不需要QMC的輪詢模式,因此ppc860SccPollInput()和ppc860SccPollOutput()以NUL
15、L函數(shù)的形式實(shí)現(xiàn)。同時(shí)還要編寫sysSccSeri-alc文件,修改sysLibc文件和usrConfigc文件。在sysSccQmcc中提供SCC設(shè)備描述符的初始化例程、SCC中斷連接例程等;通過修改sysLibc和usrCon-figc文件以實(shí)現(xiàn)VxWorks對(duì)QMC驅(qū)動(dòng)程序的調(diào)用和QMC驅(qū)動(dòng)程序與TTY系統(tǒng)的掛接。216 通道中斷處理過程 數(shù)據(jù)收發(fā)的核心是中斷處理函數(shù)。QMC中的所有邏輯通道共享SCC2的中斷,SCC2維持有一個(gè)全局中斷表,表中每一項(xiàng)里面都含有邏輯通道號(hào)和中斷源,可以被驅(qū)動(dòng)識(shí)別以處理不同情況下出現(xiàn)的事件。中斷發(fā)生時(shí),驅(qū)動(dòng)從SCCE寄存器里面判斷全局中斷源,如果中斷是由邏輯
16、通道引起,中斷服務(wù)程序便查找全局中斷表以找到該邏輯通道,并從中斷條目里面檢查中斷信息以確定是什么類型,再調(diào)用相應(yīng)的收發(fā)和錯(cuò)誤處理函數(shù)。217 數(shù)據(jù)接收和發(fā)送 多通道語音通信系統(tǒng)中MPC860T SCC串口時(shí)分復(fù)用即工作在QMC模式,邏輯通道的通信協(xié)議為Trasparent mode,該協(xié)議僅傳輸二進(jìn)制數(shù)據(jù),不對(duì)數(shù)據(jù)流進(jìn)行位級(jí)操作,不區(qū)分?jǐn)?shù)據(jù)幀中的格式位、起止位和數(shù)據(jù)位等,不對(duì)接收的數(shù)據(jù)做檢錯(cuò)處理,因而具有較高的數(shù)據(jù)傳輸速率。 接收函數(shù)由中斷服務(wù)例程調(diào)用。由于是每接收一幀產(chǎn)生一次中斷,故接收函數(shù)也每次處理一幀的數(shù)據(jù)。數(shù)據(jù)的接收由接收描述符RxBD控制。當(dāng)要接收數(shù)據(jù)時(shí),接收函數(shù)首先需要確定RxBD
17、有效;確定沒有問題后,才將數(shù)據(jù)從接收緩沖區(qū)拷貝到接收Ring buffer,并復(fù)位RxBD;否則在進(jìn)行相應(yīng)錯(cuò)誤處理后復(fù)位RxBD。接收函數(shù)流程如圖3所示。 數(shù)據(jù)發(fā)送不調(diào)用中斷處理函數(shù),發(fā)送函數(shù)檢測(cè)到發(fā)送緩沖區(qū)可用(即TxBD中R位為1)后,調(diào)用回調(diào)函數(shù)將數(shù)據(jù)從發(fā)送Ring buffer拷貝到串口發(fā)送緩沖區(qū)(Txbuffer)。這里為發(fā)送功能開辟足夠大的環(huán)形緩沖區(qū)(足以容納應(yīng)用程序每一幀的數(shù)據(jù))。發(fā)送函數(shù)流程如圖4所示。22 BSP調(diào)試方法和遇到的問題221 調(diào)試方法 開發(fā)調(diào)試有兩種方法,一種是使用仿真器通過BDM(后端調(diào)試模式)一步步地跟蹤調(diào)試,另一種是通過點(diǎn)燈的方式進(jìn)行所謂的“黑”調(diào)?!昂凇?/p>
18、調(diào)的方法是通過“燈”閃、用示波器測(cè)片選等,根據(jù)外部現(xiàn)象和所編的測(cè)試代碼進(jìn)行比較分析來調(diào)試程序。進(jìn)行“黑”調(diào)的目的是調(diào)通信串口部分代碼,宿主機(jī)可以通過串口與目標(biāo)機(jī)的通信,然后再調(diào)試其他部分。調(diào)試流程分成兩部分。首先是預(yù)內(nèi)核啟動(dòng)代碼(Pre-Kernel Initializa-tion),待最小內(nèi)核啟動(dòng)正常后再添加IO系統(tǒng)、文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等組件和調(diào)試應(yīng)用程序。使用仿真器Vi-sion Probe通過BDM方式調(diào)試BSP并將BootRom映像燒入FLASH。222 調(diào)試中遇到的問題 (1)系統(tǒng)無法正常復(fù)位 在調(diào)試過程中,發(fā)現(xiàn)MPC860T的CLKOUT引腳無輸出信號(hào),系統(tǒng)上電復(fù)位過程沒有完成,系統(tǒng)無法正常工作。初步判斷是硬件問題。用萬用表和示波器逐步檢查上電復(fù)位、硬件復(fù)位、軟件復(fù)位、時(shí)鐘輸入和BDM調(diào)試等模塊電路,發(fā)現(xiàn)正常。判斷是BGA焊接出現(xiàn)問題,將芯片取下,重新焊接,系統(tǒng)復(fù)位正常,時(shí)鐘信號(hào)輸出穩(wěn)定正常。 (2)網(wǎng)絡(luò)無法與外界通信 100 Mbs快速以太網(wǎng)驅(qū)動(dòng)加載中,網(wǎng)絡(luò)層協(xié)議無法運(yùn)行,目標(biāo)板無法與外界網(wǎng)絡(luò)建立聯(lián)系。目標(biāo)板網(wǎng)絡(luò)啟動(dòng)時(shí)發(fā)出的MAC地址信息幀外界無法收到。通過仿真器發(fā)現(xiàn)程序單步運(yùn)行正常。經(jīng)過反復(fù)試驗(yàn)和測(cè)試,最終發(fā)現(xiàn)因SDRAM初始化程序沒有運(yùn)行導(dǎo)致程序運(yùn)行(需要SDRAM支持突
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湖北國土資源職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫及參考答案
- 商業(yè)綜合體改造抵押協(xié)議
- 2025年度養(yǎng)豬場(chǎng)動(dòng)物疫病監(jiān)測(cè)與預(yù)警協(xié)議
- 2025年度個(gè)人信息保護(hù)與信息安全保密協(xié)議書
- 二零二五年度食品飲料企業(yè)財(cái)務(wù)代理記帳服務(wù)合同
- 2025年廣西自然資源職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫及答案一套
- 商業(yè)廣場(chǎng)改造貸款協(xié)議
- 2025年度公司終止職工勞動(dòng)合同解除與就業(yè)援助合同
- 2025年北京綠色生態(tài)居住區(qū)拆遷補(bǔ)償與生態(tài)修復(fù)合同
- 2025年度商鋪轉(zhuǎn)租定金及租賃期終止處理合同
- (高清版)TDT 1013-2013 土地整治項(xiàng)目驗(yàn)收規(guī)程
- 床位預(yù)約管理提高患者就診效率減少等待時(shí)間
- 吉利圍墻施工組織設(shè)計(jì)樣本
- 人教版三年級(jí)上冊(cè)數(shù)學(xué)應(yīng)用題100題及答案
- 第6課《飛向藍(lán)天的恐龍》兩課時(shí)學(xué)習(xí)任務(wù)單部編版四年級(jí)語文下冊(cè)
- 語文新課標(biāo)背景下單元整體教學(xué):六下第4單元大單元設(shè)計(jì)
- 福州地鐵公司招聘考試題目
- 小學(xué)語文期末質(zhì)量分析報(bào)告
- 口腔醫(yī)院客服培訓(xùn)課件
- 駕照體檢表完整版本
- 04G325吊車軌道聯(lián)結(jié)及車擋
評(píng)論
0/150
提交評(píng)論