????? ?1 系統(tǒng)結(jié)構(gòu)及工作事理
1.1 系統(tǒng)組成及特點(diǎn)
整個(gè)通信平臺(tái)由語音通信措置主板和語音采集回放子板組成。語音通信措置主板搜羅CPU MPC860、FLASH存儲(chǔ)器、SDRAM存儲(chǔ)器、10/100Mb/s收集接口、RS 232串口、BDM調(diào)試接口、Console接口、供電和復(fù)位電路及120pin毗連器。通信措置主板的焦點(diǎn)MPC860是Motorola公司的一款由MC68360演變而來的通用單片集成嵌入式微措置器,合用于通信和收集系統(tǒng)。該微措置器內(nèi)部有兩個(gè)措置器:PowerPC和32位RISC措置器。PowerPC核同內(nèi)存打點(diǎn)單元(MMU)、指令和數(shù)據(jù)Cache一同措置高條理應(yīng)用,CPM則負(fù)責(zé)完成低層數(shù)據(jù)通信。兩個(gè)措置器首要經(jīng)由過程共享內(nèi)存交互。通信措置模塊操作SCC,SMC,SPI和I2C串行通道與外部設(shè)備通信,其中SCC和SMC撐持時(shí)分復(fù)用。設(shè)計(jì)中,SCC工作在QMC和談Trans-parent Mode。通信措置模塊(CPM)新增了數(shù)字旌旗燈號(hào)措置(DSP)功能。語音采集回放子板由語音采集電路、語音回放電路、基于FPGA實(shí)現(xiàn)的通信節(jié)制器和與語音通信措置主板毗連的120pin毗連器組成。
因?yàn)镸PC860的數(shù)據(jù)傳輸速度對(duì)比ADC和DAC要快良多,設(shè)計(jì)響應(yīng)的邏輯電路節(jié)制語音的采集和回放、協(xié)調(diào)MPC860和數(shù)據(jù)采集、回放電路之間的通信是保證系統(tǒng)正常工作的關(guān)頭。文中設(shè)計(jì)了基于Altera公司的CycloneⅡEP2C8芯片實(shí)現(xiàn)的通信節(jié)制器來解決這一問題。
將通信平臺(tái)分為語音通信措置主板和語音采集回放子板分袂設(shè)計(jì)實(shí)現(xiàn),是為了降低系統(tǒng)開舉事度和便于系統(tǒng)維護(hù)、進(jìn)級(jí)和擴(kuò)展。例如語音通信措置主板無需改動(dòng)即可操作已有的毗連器、FEC收集接口和SDRAM存儲(chǔ)器等資本與視頻編解碼芯片、視頻壓縮/解壓縮芯片組成收集視頻處事器。
1.2 功能結(jié)構(gòu)和工作事理
???????? 系統(tǒng)上電后,語音通信措置主板復(fù)位電路發(fā)生復(fù)位旌旗燈號(hào),MPC860領(lǐng)受到復(fù)位旌旗燈號(hào)后,跳轉(zhuǎn)到0X100處起頭執(zhí)行啟動(dòng)代碼。按照BSP設(shè)置裝備擺設(shè)慢慢執(zhí)行CPU初始化、板上其他硬件電路的初始化、操作系統(tǒng)運(yùn)行所需數(shù)據(jù)結(jié)構(gòu)的初始化、啟動(dòng)VxWorks WIND內(nèi)核、建樹UserRoot使命、初始化系統(tǒng)頂用到的可選擴(kuò)展模塊(如I/O系統(tǒng)、文件系統(tǒng)、收集和談等)、建樹使命usrAppInit(),此時(shí)語音通信平臺(tái)籌備停當(dāng),可以執(zhí)行語音通信使命。?
??????? 1.3 數(shù)據(jù)措置流程
MPC860T和ADC AD7825,DAC AD7305之間的通信由通信節(jié)制器節(jié)制。通信節(jié)制器由數(shù)據(jù)緩沖區(qū)(Rx FIFO,Tx FIFO),基于FSM(有限狀況機(jī))實(shí)現(xiàn)的節(jié)制邏輯(Rx control,Tx control)和8位串并、并串轉(zhuǎn)換器,時(shí)鐘電路組成。其數(shù)據(jù)領(lǐng)受過程為:領(lǐng)受節(jié)制邏輯(Rx control)節(jié)制ADC AD7825將各個(gè)通道的語音數(shù)字化,并把轉(zhuǎn)換功效存入領(lǐng)受緩沖區(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ù)領(lǐng)受緩沖區(qū)。Rx FIFO讀空(即讀指針追上了寫指針)后,Rx control遏制向MPC860發(fā)送幀同步旌旗燈號(hào)終止數(shù)據(jù)傳輸,同時(shí)向MPC860發(fā)送間斷旌旗燈號(hào)IRQ3,MPC860響應(yīng)間斷把數(shù)據(jù)從領(lǐng)受緩沖區(qū)讀到領(lǐng)受ring buffer中期待應(yīng)用軌范措置。其數(shù)據(jù)發(fā)送過程為:MPC860完成IP解封裝、解壓縮后的語音數(shù)據(jù)將會(huì)在檢測(cè)到發(fā)送緩沖區(qū)可用時(shí),輸出到SCC發(fā)送緩沖區(qū),通信節(jié)制器供給發(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ù),為下次傳輸做籌備。
1.4 QMC通信和談
多通道節(jié)制器(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í)隙(Timeslots),每時(shí)隙8 b。在時(shí)隙分配表中劃定每時(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)等。
2.1 BSP的定制
無論是BootRom仍是VxWorks都要使用BSP代碼,BSP定制需要按照硬板設(shè)置裝備擺設(shè)、系統(tǒng)設(shè)計(jì)需求、軟件功能等現(xiàn)實(shí)情形。現(xiàn)實(shí)開發(fā)過程中,為了縮短產(chǎn)物開發(fā)周期,凡是以WINDRIVER公司的BSP模板或者第三方公司供給的可供參考的BSP為基本,按照軟硬件具體設(shè)置裝備擺設(shè)進(jìn)行改削,添加新的軌范驅(qū)動(dòng)新增硬件和功能。本課題中先把APC860開發(fā)板的BSPMPC860TEVB拷貝到installdir:\Tornado\target\collfig\ppcs860目錄下,首要做下列改削。
2.1.1 config.h文件
按照現(xiàn)實(shí)情形,需要改削啟動(dòng)行,內(nèi)存地址、容量等設(shè)置裝備擺設(shè).?
??
2.1.3 romInit文件改削
romlnit.s模塊包含了VxWorks在ROM中的進(jìn)口點(diǎn)romlnit(),它是單板上電往后最先執(zhí)行的匯編軌范代碼。該函數(shù)功能搜羅措置器的復(fù)位、內(nèi)存的初始化以及其他的最根基和需要的初始化工作。
??????? 需要改削的內(nèi)容有:內(nèi)部存儲(chǔ)器映射寄放器IMMR。該寄放器用來標(biāo)識(shí)內(nèi)部地址空間的基址,將該寄放器設(shè)置為“FF000000”。
SIU模式設(shè)置裝備擺設(shè)寄放器SIUMCR。搜羅有外部總線仲裁器設(shè)置裝備擺設(shè),外部master的撐持,DEBUG調(diào)試端口設(shè)置裝備擺設(shè),系統(tǒng)接口引腳設(shè)置裝備擺設(shè)以及奇偶校驗(yàn)撐持,將該寄放器設(shè)置為“00E10000”。
BSP中談判SDRAM的初始化過程,首先對(duì)MAMR寄放器的初始化,再獲得UPM的RAM陣列表的地址,然后將RAM陣列表地址中的值寫入MPC860 RAM WORDS ARRAY中,最后初始化OR以及BR寄放器。
2.1.4 ppcs860.h
ppcs860.h是參數(shù)設(shè)置裝備擺設(shè)頭文件,該文件包含年夜量宏界說,為使MPC860T正常運(yùn)行且SCC串口工作在QMC和談透明模式,按照現(xiàn)實(shí)需要做了如下設(shè)置裝備擺設(shè):
(1)改削系統(tǒng)常量對(duì)應(yīng)的宏界說:SCCx參數(shù)在雙端口RAM中存儲(chǔ)的肇端地址、緩沖區(qū)描述符(BD)的基地址、緩沖區(qū)和BD的數(shù)目等;
(2)串口和時(shí)隙分配表的初始化,首要搜羅時(shí)隙分配、引腳分配等,經(jīng)由過程設(shè)置SI RAM參數(shù),劃定了每個(gè)邏輯通道對(duì)應(yīng)的時(shí)隙和數(shù)據(jù)路由,本系統(tǒng)中選擇SCC2和TDMB接口實(shí)現(xiàn)QMC通信,引腳設(shè)置裝備擺設(shè)如下:
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(最年夜領(lǐng)受緩沖區(qū)長(zhǎng)度),領(lǐng)受、發(fā)送時(shí)隙分配表肇端地址的指針(Rx S PTR,Tx S PTR),領(lǐng)受、發(fā)送時(shí)隙分配表當(dāng)前時(shí)隙的指針(Rx PTR,TxPTR),間斷輪回表基地址(INTBASE),間斷輪回表下一可用進(jìn)口的指針(INTPTR)等;
(5)QMC特定通道參數(shù)初始化:TBASE,RBASE(該邏輯通道的緩沖區(qū)描述符的肇端地址),TBPTR,RBPTR(當(dāng)前發(fā)送、領(lǐng)受緩沖區(qū)描述符指針),TMR-BLR(最年夜領(lǐng)受幀長(zhǎng)度)等。
2.1.5 驅(qū)動(dòng)軌范
驅(qū)動(dòng)軌范直接對(duì)硬件操作,實(shí)現(xiàn)硬件和操作系統(tǒng)、應(yīng)用軌范之間的交互。需要自行編寫MPC860 SCC串口驅(qū)動(dòng)軌范ppcs860QmcSio.c,通信平臺(tái)中SCC工作在QMC Transparent模式。ppcs860QmcSio.c文件中包含SIO_DRV_FUNCS結(jié)構(gòu)體中界說的5個(gè)函數(shù)和間斷措置函數(shù)ppc860QmcInt()、Qmc邏輯通道復(fù)位函數(shù)ppc860QmcChannelReset()。ppc860SccIoctl()供給了一些設(shè)備節(jié)制選項(xiàng),搜羅遏制數(shù)據(jù)傳送、察看當(dāng)前通信狀況(余暇仍是忙)、輪詢或間斷模式選擇等;ppc860sccInt()措置QMC通道的間斷請(qǐng)求,經(jīng)由過程間斷體例實(shí)現(xiàn)數(shù)據(jù)的收發(fā)功能;ppc860SccStartuP()函數(shù)啟動(dòng)一個(gè)發(fā)送周期;ppc860SccCallbackInstall()安裝回調(diào)函數(shù)。間斷措置函數(shù)的功能有:
(1)供給領(lǐng)受、發(fā)送間斷措置函數(shù),挪用回調(diào)函數(shù)完成設(shè)備和較高層和談之間的數(shù)據(jù)傳送。
(2)措置數(shù)據(jù)領(lǐng)受過程中呈現(xiàn)的領(lǐng)受數(shù)據(jù)過長(zhǎng),數(shù)據(jù)傳送被迫終止等異常。因?yàn)椴恍枰猀MC的輪詢模式,是以ppc860SccPollInput()和ppc860SccPollOutput()以NULL函數(shù)的形式實(shí)現(xiàn)。同時(shí)還要編寫sysSccSeri-al.c文件,改削sysLib.c文件和usrConfig.c文件。在sysSccQmc.c中供給SCC設(shè)備描述符的初始化例程、SCC間斷毗連例程等;經(jīng)由過程改削sysLib.c和usrCon-fig.c文件以實(shí)現(xiàn)VxWorks對(duì)QMC驅(qū)動(dòng)軌范
?
電子發(fā)燒友App












評(píng)論