嵌入式語(yǔ)音通信系統中VxWorks BSP的設計實(shí)現

發(fā)布時(shí)間:2010-11-18 11:47    發(fā)布者:eetech
關(guān)鍵詞: BSP , VxWorks , 嵌入式 , 通信系統 , 語(yǔ)音
當前普遍使用的DSP語(yǔ)音處理技術(shù)只能對語(yǔ)音進(jìn)行簡(jiǎn)單處理,不能適應語(yǔ)音業(yè)務(wù)的多樣化趨勢。本文介紹利用MPC860和VxWorks實(shí)現綜合語(yǔ)音通信平臺,支持多板卡、多路語(yǔ)音實(shí)時(shí)傳輸,可擴展多路語(yǔ)音共聽(tīng)功能。利用MPC860的通信和信號處理功能,且Vx-Works具有占用空間小、執行效率高、方便進(jìn)行個(gè)性化定制和較好的兼容性等特點(diǎn),所以該綜合語(yǔ)音通信平臺在功能、硬件結構、體積、功耗以及靈活性上具有較大優(yōu)勢。

在設計中盡量采用嵌入式開(kāi)發(fā)中的常用器件,以便稍加改動(dòng)即可應用于其他設計?梢愿鶕䦟(shí)際需要更改系統中語(yǔ)音通道的數目和擴展多路語(yǔ)音共聽(tīng)功能等。

1 系統結構及工作原理

1.1 系統組成及特點(diǎn)、
整個(gè)通信平臺由語(yǔ)音通信處理主板和語(yǔ)音采集回放子板組成。語(yǔ)音通信處理主板包括CPU MPC860、FLASH存儲器、SDRAM存儲器、10/100Mb/s網(wǎng)絡(luò )接口、RS 232串口、BDM調試接口、Console接口、供電和復位電路及120pin連接器。通信處理主板的核心MPC860是Motorola公司的一款由MC68360演變而來(lái)的通用單片集成嵌入式微處理器,適用于通信和網(wǎng)絡(luò )系統。該微處理器內部有兩個(gè)處理器:PowerPC和32位RISC處理器。PowerPC核同內存管理單元(MMU)、指令和數據Cache一同處理高層次應用,CPM則負責完成低層數據通信。兩個(gè)處理器主要通過(guò)共享內存交互。通信處理模塊利用SCC,SMC,SPI和I2C串行通道與外部設備通信,其中SCC和SMC支持時(shí)分復用。設計中,SCC工作在QMC協(xié)議Trans-parent Mode。通信處理模塊(CPM)新增了數字信號處理(DSP)功能。語(yǔ)音采集回放子板由語(yǔ)音采集電路、語(yǔ)音回放電路、基于FPGA實(shí)現的通信控制器和與語(yǔ)音通信處理主板連接的120pin連接器組成。

由于MPC860的數據傳輸速度相比ADCDAC要快很多,設計相應的邏輯電路控制語(yǔ)音的采集和回放、協(xié)調MPC860和數據采集、回放電路之間的通信是保證系統正常工作的關(guān)鍵。文中設計了基于Altera公司的CycloneⅡEP2C8芯片實(shí)現的通信控制器來(lái)解決這一問(wèn)題。

將通信平臺分為語(yǔ)音通信處理主板和語(yǔ)音采集回放子板分別設計實(shí)現,是為了降低系統開(kāi)發(fā)難度和便于系統維護、升級和擴展。例如語(yǔ)音通信處理主板無(wú)需改動(dòng)即可利用已有的連接器、FEC網(wǎng)絡(luò )接口和SDRAM存儲器等資源與視頻編解碼芯片、視頻壓縮/解壓縮芯片組成網(wǎng)絡(luò )視頻服務(wù)器。

1.2 功能結構和工作原理

語(yǔ)音通信處理主板的功能結構如圖1所示。





系統上電后,語(yǔ)音通信處理主板復位電路產(chǎn)生復位信號,MPC860接收到復位信號后,跳轉到0X100處開(kāi)始執行啟動(dòng)代碼。按照BSP配置逐步執行CPU初始化、板上其他硬件電路的初始化、操作系統運行所需數據結構的初始化、啟動(dòng)VxWorks WIND內核、創(chuàng )建UserRoot任務(wù)、初始化系統中用到的可選擴展模塊(如I/O系統、文件系統、網(wǎng)絡(luò )協(xié)議等)、創(chuàng )建任務(wù)usrAppInit(),此時(shí)語(yǔ)音通信平臺準備就緒,可以執行語(yǔ)音通信任務(wù)。采集板的功能結構如圖2所示,語(yǔ)音通信處理主板啟動(dòng)完畢后,語(yǔ)音采集回放子板可在通信控制器控制下采集和回放語(yǔ)音,并對語(yǔ)音數據進(jìn)行壓縮編解碼和IP封裝、解封裝處理。





1.3 數據處理流程

MPC860T和ADC AD7825,DAC AD7305之間的通信由通信控制器控制。通信控制器由數據緩沖區(Rx FIFO,Tx FIFO),基于FSM(有限狀態(tài)機)實(shí)現的控制邏輯(Rx control,Tx control)和8位串并、并串轉換器,時(shí)鐘電路組成。其數據接收過(guò)程為:接收控制邏輯(Rx control)控制ADC AD7825將各個(gè)通道的語(yǔ)音數字化,并把轉換結果存入接收緩沖區(Rx FIFO),直至Rx FIFO滿(mǎn)時(shí)Rx control開(kāi)始向MPC860T提供周期性幀同步信號,頻率為32 kHz。MPC860在幀同步信號和時(shí)鐘信號的驅動(dòng)下讀取Rx FIFO中的數據到SCC數據接收緩沖區。Rx FIFO讀空(即讀指針追上了寫(xiě)指針)后,Rx control停止向MPC860發(fā)送幀同步信號終止數據傳輸,同時(shí)向MPC860發(fā)送中斷信號IRQ3,MPC860響應中斷把數據從接收緩沖區讀到接收ring buffer中等待應用程序處理。其數據發(fā)送過(guò)程為:MPC860完成IP解封裝、解壓縮后的語(yǔ)音數據將會(huì )在檢測到發(fā)送緩沖區可用時(shí),輸出到SCC發(fā)送緩沖區,通信控制器提供發(fā)送幀同步信號驅動(dòng)數據傳輸到Tx FIFO(發(fā)送緩沖區),待到Tx FIFO滿(mǎn)時(shí)停止發(fā)送幀同步信號。數據發(fā)送完后,CPM會(huì )清零,TxBD)中的R位表示MPC860可向SCC發(fā)送緩沖區中裝入新的數據,為下次傳輸做準備。

1.4 QMC通信協(xié)議

多通道控制器(QUICC Multichannel Controler,QMC)是為了實(shí)現時(shí)分復用數據傳輸而設計的,它可以把時(shí)分復用幀的數據分發(fā)到多達64個(gè)邏輯通道。該模式下把每一幀的數據劃分成若干個(gè)時(shí)隙(Timeslots),每時(shí)隙8 b。在時(shí)隙分配表中規定每時(shí)隙數據從屬于某個(gè)通道,每個(gè)通道都有一組特定的緩沖區描述符和相應的緩沖區。一個(gè)時(shí)隙的數據在收發(fā)時(shí)被放置在特定的緩沖區里,MPC860T就可把分散的數據聚集在一起發(fā)送,或把聚集在一起的數據分發(fā)到各自專(zhuān)用的緩沖區,而不需要額外的處理來(lái)區分各種各樣的數據流。

2 BSP 設計實(shí)現

設計中軟件開(kāi)發(fā)主要包括啟動(dòng)代碼的編寫(xiě)、操作系統的移植、硬件驅動(dòng)程序和語(yǔ)音編、解碼和IP封裝、解封裝應用程序。篇幅有限,本文僅介紹BSP移植。BSP即板級支持包,其功能為硬件、軟件初始化、工程影像的下載和設備驅動(dòng)等。

2.1 BSP的定制

無(wú)論是BootRom還是VxWorks都要使用BSP代碼,BSP定制需要根據硬板配置、系統設計需求、軟件功能等實(shí)際情況。實(shí)際開(kāi)發(fā)過(guò)程中,為了縮短產(chǎn)品開(kāi)發(fā)周期,通常以WINDRIVER公司的BSP模板或者第三方公司提供的可供參考的BSP為基礎,根據軟硬件具體配置進(jìn)行修改,添加新的程序驅動(dòng)新增硬件和功能。本課題中先把APC860開(kāi)發(fā)板的BSPMPC860TEVB拷貝到installdir:\Tornado\target\collfig\ppcs860目錄下,主要做下列修改。

2.1.1 config.h文件

根據實(shí)際情況,需要修改啟動(dòng)行,內存地址、容量等配置,修改部分代碼如下:





2.1.2 makefile文件的修改

makefile文件的修改,部分程序如下:





2.1.3 romInit文件修改

romlnit.s模塊包含了VxWorks在ROM中的入口點(diǎn)romlnit(),它是單板上電以后最先執行的匯編程序代碼。該函數功能包括處理器的復位、內存的初始化以及其他的最基本和必要的初始化工作。需要修改的內容如下:

內部存儲器映射寄存器IMMR。該寄存器用來(lái)標識內部地址空間的基址,將該寄存器設置為“FF000000”。

SIU模式配置寄存器SIUMCR。包括有外部總線(xiàn)仲裁器配置,外部master的支持,DEBUG調試端口配置,系統接口引腳配置以及奇偶校驗支持,將該寄存器設置為“00E10000”。

BSP中討論SDRAM的初始化過(guò)程,首先對MAMR寄存器的初始化,再得到UPM的RAM陣列表的地址,然后將RAM陣列表地址中的值寫(xiě)入MPC860 RAM WORDS ARRAY中,最后初始化OR以及BR寄存器。


   



2.1.4 ppcs860.h

ppcs860.h是參數配置頭文件,該文件包含大量宏定義,為使MPC860T正常運行且SCC串口工作在QMC協(xié)議透明模式,根據實(shí)際需要做了如下配置:

(1)修改系統常量對應的宏定義:SCCx參數在雙端口RAM中存儲的起始地址、緩沖區描述符(BD)的基地址、緩沖區和BD的數目等;

(2)串口和時(shí)隙分配表的初始化,主要包括時(shí)隙分配、引腳分配等,通過(guò)設置SI RAM參數,規定了每個(gè)邏輯通道對應的時(shí)隙和數據路由,本系統中選擇SCC2和TDMB接口實(shí)現QMC通信,引腳配置如下:

PC6 RSYNC,PA2 RXC,PA10 RXD,PA0 TXC。PA11 TXD

(3)SCC2初始化:設置SCC2工作在QMC模式;

(4)QMC全局參數初始化:MCBASE(多通道基地址指針),初始化為SCC2對應外部BD表的基地址,MRBLR(最大接收緩沖區長(cháng)度),接收、發(fā)送時(shí)隙分配表起始地址的指針(Rx S PTR,Tx S PTR),接收、發(fā)送時(shí)隙分配表當前時(shí)隙的指針(Rx PTR,TxPTR),中斷循環(huán)表基地址(INTBASE),中斷循環(huán)表下一可用入口的指針(INTPTR)等;

(5)QMC特定通道參數初始化:TBASE,RBASE(該邏輯通道的緩沖區描述符的起始地址),TBPTR,RBPTR(當前發(fā)送、接收緩沖區描述符指針),TMR-BLR(最大接收幀長(cháng)度)等。

2.1.5 驅動(dòng)程序

驅動(dòng)程序直接對硬件操作,實(shí)現硬件和操作系統、應用程序之間的交互。需要自行編寫(xiě)MPC860 SCC串口驅動(dòng)程序ppcs860QmcSio.c,通信平臺中SCC工作在QMC Transparent模式。ppcs860QmcSio.c文件中包含SIO_DRV_FUNCS結構體中定義的5個(gè)函數和中斷處理函數ppc860QmcInt()、Qmc邏輯通道復位函數ppc860QmcChannelReset()。ppc860SccIoctl()提供了一些設備控制選項,包括停止數據傳送、察看當前通信狀態(tài)(空閑還是忙)、輪詢(xún)或中斷模式選擇等;ppc860sccInt()處理QMC通道的中斷請求,通過(guò)中斷方式實(shí)現數據的收發(fā)功能;ppc860SccStartuP()函數啟動(dòng)一個(gè)發(fā)送周期;ppc860SccCallbackInstall()安裝回調函數。中斷處理函數的功能有:



(1)提供接收、發(fā)送中斷處理函數,調用回調函數完成設備和較高層協(xié)議之間的數據傳送。

(2)處理數據接收過(guò)程中出現的接收數據過(guò)長(cháng),數據傳送被迫終止等異常。由于不需要QMC的輪詢(xún)模式,因此ppc860SccPollInput()和ppc860SccPollOutput()以NULL函數的形式實(shí)現。同時(shí)還要編寫(xiě)sysSccSeri-al.c文件,修改sysLib.c文件和usrConfig.c文件。在sysSccQmc.c中提供SCC設備描述符的初始化例程、SCC中斷連接例程等;通過(guò)修改sysLib.c和usrCon-fig.c文件以實(shí)現VxWorks對QMC驅動(dòng)程序的調用和QMC驅動(dòng)程序與TTY系統的掛接。

2.1.6 通道中斷處理過(guò)程

數據收發(fā)的核心是中斷處理函數。QMC中的所有邏輯通道共享SCC2的中斷,SCC2維持有一個(gè)全局中斷表,表中每一項里面都含有邏輯通道號和中斷源,可以被驅動(dòng)識別以處理不同情況下出現的事件。中斷發(fā)生時(shí),驅動(dòng)從SCCE寄存器里面判斷全局中斷源,如果中斷是由邏輯通道引起,中斷服務(wù)程序便查找全局中斷表以找到該邏輯通道,并從中斷條目里面檢查中斷信息以確定是什么類(lèi)型,再調用相應的收發(fā)和錯誤處理函數。

2.1.7 數據接收和發(fā)送

多通道語(yǔ)音通信系統中MPC860T SCC串口時(shí)分復用即工作在QMC模式,邏輯通道的通信協(xié)議為T(mén)rasparent mode,該協(xié)議僅傳輸二進(jìn)制數據,不對數據流進(jìn)行位級操作,不區分數據幀中的格式位、起止位和數據位等,不對接收的數據做檢錯處理,因而具有較高的數據傳輸速率。

接收函數由中斷服務(wù)例程調用。由于是每接收一幀產(chǎn)生一次中斷,故接收函數也每次處理一幀的數據。數據的接收由接收描述符RxBD控制。當要接收數據時(shí),接收函數首先需要確定RxBD有效;確定沒(méi)有問(wèn)題后,才將數據從接收緩沖區拷貝到接收Ring buffer,并復位RxBD;否則在進(jìn)行相應錯誤處理后復位RxBD。接收函數流程如圖3所示。





數據發(fā)送不調用中斷處理函數,發(fā)送函數檢測到發(fā)送緩沖區可用(即TxBD中R位為1)后,調用回調函數將數據從發(fā)送Ring buffer拷貝到串口發(fā)送緩沖區(Txbuffer)。這里為發(fā)送功能開(kāi)辟足夠大的環(huán)形緩沖區(足以容納應用程序每一幀的數據)。發(fā)送函數流程如圖4所示。





2.2 BSP調試方法和遇到的問(wèn)題

2.2.1 調試方法

開(kāi)發(fā)調試有兩種方法,一種是使用仿真器通過(guò)BDM(后端調試模式)一步步地跟蹤調試,另一種是通過(guò)點(diǎn)燈的方式進(jìn)行所謂的“黑”調!昂凇闭{的方法是通過(guò)“燈”閃、用示波器測片選等,根據外部現象和所編的測試代碼進(jìn)行比較分析來(lái)調試程序。進(jìn)行“黑”調的目的是調通信串口部分代碼,宿主機可以通過(guò)串口與目標機的通信,然后再調試其他部分。調試流程分成兩部分。首先是預內核啟動(dòng)代碼(Pre-Kernel Initializa-tion),待最小內核啟動(dòng)正常后再添加I/O系統、文件系統、網(wǎng)絡(luò )系統等組件和調試應用程序。使用仿真器Vi-sion Probe通過(guò)BDM方式調試BSP并將BootRom映像燒入FLASH。

2.2.2 調試中遇到的問(wèn)題

(1)系統無(wú)法正常復位

在調試過(guò)程中,發(fā)現MPC860T的CLKOUT引腳無(wú)輸出信號,系統上電復位過(guò)程沒(méi)有完成,系統無(wú)法正常工作。初步判斷是硬件問(wèn)題。用萬(wàn)用表和示波器逐步檢查上電復位、硬件復位、軟件復位、時(shí)鐘輸入和BDM調試等模塊電路,發(fā)現正常。判斷是BGA焊接出現問(wèn)題,將芯片取下,重新焊接,系統復位正常,時(shí)鐘信號輸出穩定正常。

(2)網(wǎng)絡(luò )無(wú)法與外界通信

100 Mb/s快速以太網(wǎng)驅動(dòng)加載中,網(wǎng)絡(luò )層協(xié)議無(wú)法運行,目標板無(wú)法與外界網(wǎng)絡(luò )建立聯(lián)系。目標板網(wǎng)絡(luò )啟動(dòng)時(shí)發(fā)出的MAC地址信息幀外界無(wú)法收到。通過(guò)仿真器發(fā)現程序單步運行正常。經(jīng)過(guò)反復試驗和測試,最終發(fā)現因SDRAM初始化程序沒(méi)有運行導致程序運行(需要SDRAM支持突發(fā)模式)出錯。更改調試方式,將BootRom開(kāi)始的所有程序燒入FLASH,上電啟動(dòng),網(wǎng)絡(luò )正常,目標板與外界建立良好的網(wǎng)絡(luò )通信。

3 結 語(yǔ)

該系統在實(shí)際測試中話(huà)音質(zhì)量穩定,測試時(shí)聲音清晰,沒(méi)有串擾和雜音,沒(méi)有較大延遲,說(shuō)明硬件設計正確完備,QMC驅動(dòng)程序和語(yǔ)音編解碼和IP封裝與解封裝應用程序性能優(yōu)良。

如果板卡上語(yǔ)音通道更多,則每幀的時(shí)隙增多、長(cháng)度增大,因為FPGA內部電路所提供的的幀同步信號周期并不改變,所以只是實(shí)際數據傳輸速率提高,可以保證各路語(yǔ)音的同步和實(shí)時(shí)性。系統中QMC工作在Transparent Mode限制了它的應用范圍,如何改進(jìn)使系統支持多種通信協(xié)議是需要進(jìn)一步研究的問(wèn)題。
本文地址:http://selenalain.com/thread-40516-1-1.html     【打印本頁(yè)】

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

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页