嵌入式語(yǔ)音通信系統中VxWorks BSP的設計實(shí)現
當前普遍使用的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的數據傳輸速度相比ADC和DAC要快很多,設計相應的邏輯電路控制語(yǔ)音的采集和回放、協(xié)調MPC860和數據采集、回放電路之間的通信是保證系統正常工作的關(guān)鍵。文中設計了基于A(yíng)ltera公司的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文件的修改,部分程序如下:
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論