基于MPEG-2算法的列車(chē)語(yǔ)音記錄設(shè)備
前言
列車(chē)運(yùn)行監(jiān)控記錄裝置在鐵路的安全運(yùn)輸過(guò)程中發(fā)揮了巨大的作用,但不足的是沒(méi)有語(yǔ)音記錄功能。為了解決這個(gè)問(wèn)題,按照鐵道部的技術(shù)要求,本文研究開(kāi)發(fā)了一種新型列車(chē)語(yǔ)音記錄設(shè)備。該設(shè)備主要用于對(duì)乘務(wù)員機(jī)車(chē)聯(lián)控進(jìn)行錄音,并可協(xié)同監(jiān)控裝置分析行車(chē)事故,為機(jī)務(wù)部門(mén)和運(yùn)輸部門(mén)的科學(xué)管理提供新的技術(shù)手段。鑒于常見(jiàn)設(shè)備的技術(shù)指標(biāo)及標(biāo)準(zhǔn),對(duì)于語(yǔ)音的數(shù)字化,以16khz的采樣頻率、16位量化精度進(jìn)行采樣,在編碼方面,采用mpeg-2壓縮編碼方式。
硬件系統(tǒng)組成
該語(yǔ)音記錄設(shè)備如圖1所示,整個(gè)系統(tǒng)由adc、dsp、cpld控制器,flash大容量存儲(chǔ)器及l(fā)cd顯示屏等組成。
在本系統(tǒng)中,adc用來(lái)完成信號(hào)的轉(zhuǎn)換,數(shù)據(jù)格式在16、18、20位之間可選,dsp為系統(tǒng)的核心數(shù)字處理器,功能強(qiáng)大,完成數(shù)字信號(hào)的壓縮編碼,cpld用于數(shù)據(jù)傳送的控制以及對(duì)adc、flash和lcd顯示屏等器件的初始化檢測(cè)設(shè)置,flash用來(lái)存儲(chǔ)數(shù)據(jù),lcd顯示屏用來(lái)顯示當(dāng)前系統(tǒng)的狀態(tài),如運(yùn)行等待和數(shù)據(jù)處理等。系統(tǒng)上電后,若有語(yǔ)音信號(hào),則輸入adc,得到一串?dāng)?shù)字信號(hào)送入dsp進(jìn)行數(shù)據(jù)壓縮編碼,經(jīng)過(guò)壓縮編碼的數(shù)據(jù)由cpld存儲(chǔ)到flash中,整個(gè)系統(tǒng)以流水線(xiàn)的方式工作,數(shù)據(jù)的采集、壓縮編碼和存儲(chǔ)同時(shí)進(jìn)行。
a/d轉(zhuǎn)換器uda1341ts
uda1341ts是由philips公司生產(chǎn)的一款單片立體聲a/d、d/a轉(zhuǎn)換器,工作電壓為3.0v,信噪比為97db,具有雙通道輸入功能,采樣頻率在16,32和44.1khz之間可選。
uda1341ts與dsp構(gòu)成語(yǔ)音信號(hào)采集系統(tǒng),主要涉及到位采樣時(shí)鐘(bck)、字同步時(shí)鐘(ws)、采樣數(shù)據(jù)輸出(datao),系統(tǒng)時(shí)鐘輸入(sysclk)這幾個(gè)對(duì)時(shí)序有要求的引腳。系統(tǒng)中,datao作為輸出引腳,與dsp的bdr0引腳相連;bck、ws、sysclk作為輸入引腳,其時(shí)序由dsp供給。uda1341ts的系統(tǒng)時(shí)鐘只能是256fs、384fs、512fs,通過(guò)對(duì)狀態(tài)寄存器的sc0位和sc1位編程可實(shí)現(xiàn)系統(tǒng)時(shí)鐘的選擇設(shè)置。這里fs是語(yǔ)音信號(hào)的采樣頻率。在采樣數(shù)據(jù)時(shí),ws用來(lái)指明uda1341ts的datao輸出的有效數(shù)據(jù)。當(dāng)系統(tǒng)對(duì)vinl(左聲道)端口進(jìn)行采樣時(shí),ws的上升沿表明一幀數(shù)據(jù)的起始,下降沿表明一幀數(shù)據(jù)的結(jié)束;當(dāng)系統(tǒng)對(duì)vinr(右聲道)端口進(jìn)行采樣時(shí),ws的下降沿表明一幀數(shù)據(jù)的起始,上升沿表明一幀數(shù)據(jù)的結(jié)束。
uda1341ts提供了一個(gè)l3端口,利用cpld控制器對(duì)l3的l3data、l3mode和l3clock三個(gè)引腳進(jìn)行編程,可以設(shè)置其內(nèi)部的寄存器。當(dāng)l3mode引腳為低電平時(shí),通過(guò)l3data引腳輸入寄存器地址信息;當(dāng)l3data引腳為高電平時(shí),通過(guò)l3data引腳輸入有關(guān)寄存器設(shè)置的數(shù)據(jù)信息(如設(shè)置芯片系統(tǒng)時(shí)鐘頻率、數(shù)據(jù)輸入格式、芯片工作模式等)。uda1341ts與dsp的mcbsp(多通道緩沖同步串口)相連,各種同步信號(hào)由dsp產(chǎn)生,這樣就保證了新數(shù)據(jù)的正常接收以及已接收數(shù)據(jù)的正常處理。uda1341ts與dsp的硬件連接如圖2所示。
語(yǔ)音編碼器tms320vc5402
數(shù)字語(yǔ)音信號(hào)的壓縮需要大量的數(shù)字信號(hào)處理,一般單片機(jī)是無(wú)法完成的,所以本系統(tǒng)選用ti公司的dsp芯片tms320vc5402(以下簡(jiǎn)稱(chēng)c5402)對(duì)語(yǔ)音信號(hào)進(jìn)行壓縮處理。
c5402通過(guò)它的msbsp與語(yǔ)音采樣轉(zhuǎn)換器uda1341ts通信。mcbsp提供了全雙工的通信機(jī)制,以及雙緩存的發(fā)送寄存器和三緩存的接收寄存器,允許連續(xù)的數(shù)據(jù)流傳輸,數(shù)據(jù)寬度的8、12、16、20、24、32位之間可選;mcbsp與adc的通信通過(guò)bdr0引腳實(shí)現(xiàn),通信過(guò)程的控制則由bclkr0、bclkr1、bfsr0等三條引腳實(shí)現(xiàn)。
cpld低速控制
dsp作為高速的運(yùn)算處理器不合適低速的控制應(yīng)用。對(duì)uda1341ts檢測(cè)、初始化,對(duì)lcd的控制以及對(duì)flash的存儲(chǔ)控制都是低速的控制。本系統(tǒng)選用cpld來(lái)完成這些工作。cpld為altera公司的epm7128s,開(kāi)發(fā)仿真環(huán)境為altera公司的max-plusii。因?yàn)閐sp的地址線(xiàn)a0、a1、a2要被某些芯片使用,所以選取a3-a7、a15共6根地址線(xiàn)和i/o空間選擇信號(hào)is的反共同產(chǎn)生系統(tǒng)中各芯片的選通信號(hào)。cpld中的控制電路負(fù)責(zé)產(chǎn)生各種讀寫(xiě)信號(hào),如flash的讀信號(hào)mem_rd和寫(xiě)信號(hào)mem_wr等。
在該系統(tǒng)中,c5402要產(chǎn)生許多控制信號(hào)(如flash程序頁(yè)的選擇信號(hào)ppg2-ppgo等),同時(shí)也要監(jiān)視和讀取外部的狀態(tài)。因?yàn)閏5402只有兩個(gè)通用i/o引腳,所以用cpld來(lái)對(duì)其進(jìn)行i/o端口擴(kuò)展。cpld內(nèi)部通過(guò)一個(gè)8位dff觸發(fā)器實(shí)現(xiàn)對(duì)數(shù)據(jù)的輸出。另外,通過(guò)8個(gè)三態(tài)門(mén),將8位輸入狀態(tài)放到c5402數(shù)據(jù)總線(xiàn)的低8位上。c5402有4個(gè)中斷輸入intr3反—intr0的反。cpld的中斷選擇模塊可以從最多8個(gè)外部中斷信號(hào)中選擇4個(gè)作為c5402的中斷輸入,提高了系統(tǒng)的靈活性。
軟件設(shè)計(jì)
軟件設(shè)計(jì)主要包括adc的程序設(shè)計(jì),語(yǔ)音數(shù)據(jù)的壓縮編碼等。
adc的程序設(shè)計(jì)
adc以16khz的采樣頻率、16位量化精度進(jìn)行采樣,采樣的位同步信號(hào),幀同步信號(hào)、數(shù)據(jù)位時(shí)鐘信號(hào)均由dsp提供,所以對(duì)mcbsp相關(guān)寄存器的編程,如引腳控制寄存器(pcr)的編程,串口控制器(spcr1,spcr2)的編程,接收控制寄存器(rcr1x,rcr2x)以及發(fā)送控制寄存器(xcr1,xcr2)的編程會(huì)影響語(yǔ)音信號(hào)的最終效果,所以用戶(hù)在開(kāi)發(fā)之前必須詳細(xì)參閱相關(guān)資料。
語(yǔ)音數(shù)據(jù)編碼
本文采用通用的mpeg-2語(yǔ)音壓縮編碼算法,該算法是幀數(shù)據(jù)結(jié)構(gòu)編碼,一幀的樣點(diǎn)值是576,以u(píng)da1341ts的16khz采樣頻率計(jì)算,一幀數(shù)據(jù)的編碼要求在72ms內(nèi)完成。c5402的指令周期是10ns,在滿(mǎn)足算法要求的情況下,進(jìn)行雙通道實(shí)時(shí)編碼約需要10ms,所以c5402可以完成該算法的實(shí)時(shí)編碼。主要包括以下幾方面:濾波器組的運(yùn)算;心理聲學(xué)模型的運(yùn)算;量化編碼;幀數(shù)據(jù)格式化。
濾波器組的作用是完成信號(hào)從時(shí)域到頻域的映射。心理聲學(xué)模型的計(jì)算是利用1024點(diǎn)的fft,對(duì)輸入的語(yǔ)音信號(hào)進(jìn)行頻譜分析,再結(jié)合時(shí)頻映射的結(jié)果,計(jì)算出各子帶人耳的掩蔽特性。量化編碼是通過(guò)各子帶人耳的掩蔽特性和輸出比特率的要求,計(jì)算出各子帶編碼所需的比特分配信息,并且對(duì)各子帶數(shù)據(jù)進(jìn)行線(xiàn)性量化編碼的過(guò)程。程序的后續(xù)工作是按照mpeg-2標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行格式化,其目的是使數(shù)據(jù)編碼后能被正確地解碼、系統(tǒng)主程序如圖3所示。
幀內(nèi)編碼是dsp按照mpeg-2標(biāo)準(zhǔn)對(duì)adc傳來(lái)的數(shù)字語(yǔ)音信號(hào)進(jìn)行壓縮編碼,其流程如圖4所示。
結(jié)語(yǔ)
系統(tǒng)上電運(yùn)行后,經(jīng)多次實(shí)驗(yàn)測(cè)試,運(yùn)行情況穩(wěn)定。目前該設(shè)備已經(jīng)進(jìn)行現(xiàn)場(chǎng)調(diào)試運(yùn)用,開(kāi)始部分裝車(chē)運(yùn)行,滿(mǎn)足了列車(chē)語(yǔ)音記錄的實(shí)際要求。
評(píng)論