摘 要: 介紹了一種應(yīng)用MPEG算法的新型列車音頻,、語音監(jiān)控記錄設(shè)備的系統(tǒng)架構(gòu)、特點和硬軟件的實現(xiàn)方法,。運用DSP技術(shù)對音頻,、語音信號" title="語音信號">語音信號進(jìn)行處理、壓縮和記錄,,從而實現(xiàn)了列車當(dāng)前狀態(tài)信息的記錄和機(jī)車語音聯(lián)控,,進(jìn)而協(xié)同監(jiān)控裝置分析行車故障并規(guī)范乘務(wù)員的工作用語。
關(guān)鍵詞: 音頻/語音處理器 音頻/語音數(shù)據(jù)編碼 循環(huán)冗余校驗
列車運行監(jiān)控記錄裝置已在鐵路的安全運輸過程中發(fā)揮了巨大的作用,,其不足之處是沒有音頻,、語音記錄功能。為了解決這個問題,,按照鐵道部的技術(shù)要求,研究開發(fā)了一種新型列車音頻,、語音記錄設(shè)備,。該設(shè)備主要用于協(xié)同監(jiān)控裝置分析行車事故,運用相關(guān)技術(shù)記錄設(shè)備運行的狀態(tài)信息,,以及對乘務(wù)員機(jī)車聯(lián)控進(jìn)行錄音,,為機(jī)務(wù)部門和運輸部門的科學(xué)管理提供新的技術(shù)手段。鑒于常見設(shè)備的技術(shù)指標(biāo)及技術(shù)標(biāo)準(zhǔn),,對于音頻的數(shù)字化,,以44.1kHz的采樣頻率" title="采樣頻率">采樣頻率,、16bit的量化精度進(jìn)行采樣,在編碼方面,,采用MPEGI-LayerⅡ壓縮編碼" title="壓縮編碼">壓縮編碼方式,;對于語音的數(shù)字化,以16kHz的采樣頻率,、16bit量化精度進(jìn)行采樣,,在編碼方面,采用MPEG-2壓縮編碼方式,。
1 硬件系統(tǒng)組成
該監(jiān)控記錄設(shè)備總體結(jié)構(gòu)如圖1所示,,整個系統(tǒng)由 A/D" title="A/D">A/D轉(zhuǎn)換芯片、數(shù)字信號處理器DSP,、CPLD控制器,、Flash大容量" title="大容量">大容量存儲器及LCD顯示屏等組成。
在本系統(tǒng)中A/D轉(zhuǎn)換芯片用來完成信號的轉(zhuǎn)換,,數(shù)據(jù)格式在16,、18、20bit之間可選,;數(shù)字信號處理器(DSP)為系統(tǒng)的核心數(shù)字處理器,,功能強(qiáng)大,完成數(shù)字信號的壓縮編碼,;CPLD用于數(shù)據(jù)傳送的控制以及對A/D轉(zhuǎn)換器,、Flash存儲器和LCD顯示屏等器件的初始化檢測設(shè)置;Flash大容量存儲器用來進(jìn)行數(shù)據(jù)的存儲,;LCD顯示屏用來顯示當(dāng)前系統(tǒng)所處的狀態(tài),,如運行等待、數(shù)據(jù)處理等,。系統(tǒng)上電后,,若有音頻/語音信號輸入A/D轉(zhuǎn)換器,通過中斷,、查詢判斷輸入的信號類別,,之后進(jìn)行音頻/語音信號的模擬/數(shù)字格式轉(zhuǎn)換,得到的一串?dāng)?shù)字信號送入DSP進(jìn)行數(shù)據(jù)壓縮編碼后,,經(jīng)由CPLD存儲到Flash大容量存儲器中,。整個系統(tǒng)以流水線的方式工作,數(shù)據(jù)的采集,、壓縮編碼,、存儲同時進(jìn)行。
1.1 音頻/語音處理器UDA1341TS
UDA1341TS是由Philips公司生產(chǎn)的一款單片立體聲A/D、D/A轉(zhuǎn)換器,,低功耗,,工作電壓3.0V,信噪比為97dB,,具有雙通道輸入功能,,采樣頻率在16kHz、32kHz和44.1kHz之間可選,。
UDA1341TS與DSP構(gòu)成音頻/語音信號采集系統(tǒng),,主要涉及到位采樣時鐘(BCK)、字同步時鐘(WS),、采樣數(shù)據(jù)輸出(DATAO),、系統(tǒng)時鐘輸入(SYSCLK)這幾個對時序有要求的引腳。系統(tǒng)中,,DATAO作為輸出引腳,,與DSP的BDR0引腳相連;BCK,、WS,、SYSCLK作為輸入引腳,其時序由DSP供給,。UDA1341TS的系統(tǒng)時鐘只能是256Fs,、384Fs、512Fs,通過對狀態(tài)寄存器的SC0位和SC1位編程可實現(xiàn)系統(tǒng)時鐘的選擇設(shè)置,。這里Fs是音頻/語音信號的采樣頻率,。在數(shù)據(jù)采樣時,WS用來指明UDA1341TS的DATAO輸出的有效數(shù)據(jù),。當(dāng)系統(tǒng)對VINL(左聲道)端口進(jìn)行采樣時,,WS的上升沿表明一幀數(shù)據(jù)的起始,下降沿表明一幀數(shù)據(jù)的結(jié)束,;當(dāng)系統(tǒng)對VINR(右聲道)端口進(jìn)行采樣時,,WS的下降沿表明一幀數(shù)據(jù)的起始,上升沿表明一幀數(shù)據(jù)的結(jié)束,。
UDA1341TS提供了一個L3端口,,利用CPLD控制器對L3的L3DATA、L3MODE,、L3CLOCK三個引腳進(jìn)行編程,,可以設(shè)置其內(nèi)部的寄存器。當(dāng)L3MODE引腳為低電平時,,通過L3DATA引腳輸入寄存器地址信息;當(dāng)L3MODE引腳為高電平時,通過L3DATA引腳輸入有關(guān)寄存器設(shè)置的數(shù)據(jù)信息(如設(shè)置芯片系統(tǒng)時鐘頻率,、數(shù)據(jù)輸入格式,、芯片工作模式等)。UDA1341TS與DSP的McBSP(多通道緩沖同步串口)相連,,各種同步信號由DSP產(chǎn)生,,這樣就保證了新數(shù)據(jù)的正常接收以及已接收數(shù)據(jù)的正常處理。UDA1341TS與DSP的硬件連接圖如圖2所示,。
1.2 音頻/語音編碼器TMS320VC5402
數(shù)字音頻/語音信號的壓縮需要大量的數(shù)字信號處理,,一般單片機(jī)是無法完成的,所以本系統(tǒng)中選用TI公司的DSP芯片TMS320VC5402(以下簡稱‘C5402)對音頻/語音信號進(jìn)行壓縮處理,?!瓹5402是TI 公司于1999年10月推出的54X系列定點DSP,操作速率達(dá)100MIPS,,具有增強(qiáng)的多總線結(jié)構(gòu),,三條獨立的16位數(shù)據(jù)存儲器總線和一條程序存儲器總線;40位的算術(shù)邏輯單元,,包括兩個獨立的40位累加器,、17位×17位的并行乘法器和一個40位的桶形移位器;支持單指令循環(huán)和塊循環(huán),,存儲塊移動指令提供了高效的程序和數(shù)據(jù)存儲器管理,,支持并行存儲和并行加載的算術(shù)指令、條件存儲指令和中斷快速返回,,支持定點DSP C語言編譯器,。
‘C5402通過它的多通道緩存串行口(McBSP)與音頻/語音處理器UDA1341TS通信。McBSP提供了全雙工的通信機(jī)制以及雙緩存的發(fā)送寄存器和三緩存的接收寄存器,,允許連續(xù)的數(shù)據(jù)流傳輸,,數(shù)據(jù)寬度在8、12,、16,、20、24,、32比特之間可選,;McBSP與音頻/語音處理器的通信通過BDR0引腳實現(xiàn),通信過程的控制則由BCLKR0,、BCLKR1,、BFSR0等三條引腳實現(xiàn)。
1.3 CPLD低速控制
DSP作為高速的運算處理器不適合低速的控制應(yīng)用,。本系統(tǒng)中對UDA1341TS檢測,、初始化,對液晶顯示LCD的控制以及對Flash的存儲控制都是一些低速的控制。本系統(tǒng)采用Altera公司的EPM7128S CPLD來完成這些工作,,這樣就給系統(tǒng)的編程調(diào)試帶來了極大的方便,,縮短了開發(fā)周期。
2 運行軟件開發(fā)
軟件設(shè)計方面主要包括音頻/語音數(shù)據(jù)的壓縮編碼以及音頻/語音數(shù)據(jù)的差錯校驗,。
2.1音頻/語音數(shù)據(jù)編碼
音頻編碼算法方面采用了目前通用的MPEGI-LayerII壓縮編碼算法,,該算法是幀數(shù)據(jù)結(jié)構(gòu)編碼,一幀的樣點值是1152,,以處理器件UDA1341TS 的44.1kHz采樣頻率計算,,一幀數(shù)據(jù)的編碼要求在26ms內(nèi)完成。語音編碼算法方面采用了MPEG-2壓縮編碼算法,。MPEG-2算法是MPEG-I算法的擴(kuò)展,,一幀的樣點值是576,以處理器件UDA1341TS 的16kHz采樣頻率計算,,一幀數(shù)據(jù)的編碼要求在72ms內(nèi)完成,。而‘C5402的指令周期是10ns,對于這里的MPEG算法,在滿足算法要求的情況下,,進(jìn)行雙通道的實時編碼最多需要15ms,,所以‘C5402可以完成算法的實時編碼。其算法流程如圖3所示,,主要包括以下幾方面:(1)濾波器組的運算,。(2)心理聲學(xué)模型的運算。(3)量化編碼,。(4)幀數(shù)據(jù)格式化,。
濾波器組的作用是完成信號從時域到頻域的映射。心理聲學(xué)模型的計算是利用1024點的FFT,,對輸入的音頻/語音信號進(jìn)行頻譜分析,,再結(jié)合時頻映射的結(jié)果,計算出各子帶人耳的掩蔽特性,。量化編碼是由各子帶人耳的掩蔽特性和輸出比特率的要求,,計算出各子帶編碼所需的比特分配信息,并且對各子帶數(shù)據(jù)進(jìn)行線性量化編碼的過程,。程序的后續(xù)工作是按照MPEG標(biāo)準(zhǔn)對數(shù)據(jù)進(jìn)行格式化,,其目的是為了使數(shù)據(jù)編碼后能被正確地解碼。系統(tǒng)主程序流程圖如圖4所示,。
幀內(nèi)編碼是DSP按照MPEG標(biāo)準(zhǔn)把A/D轉(zhuǎn)換器傳來的數(shù)字音頻/語音信號進(jìn)行壓縮編碼,。其流程如圖5所示。
?
?
2.2數(shù)據(jù)的差錯校驗
2.2.1 校驗原理
音頻/語音數(shù)據(jù)的差錯校驗采用循環(huán)冗余 CRC-16校驗方式,,即被處理的數(shù)據(jù)塊可以被看作是一個N階的二進(jìn)制多項式D(X),,如一個16位二進(jìn)制數(shù)1010010110100101可以表示為:X15+X13+X10+X8+X7+X5+X2+1,。多項式乘除法與普通代數(shù)多項式的乘除法運算相同,多項式的加減法以2為模,,進(jìn)行邏輯異或運算,。采用CRC校驗時,發(fā)送方和接收方采用同一個生成多項式S(X),并且S(X)的首位和最后一位的系數(shù)必須為1,,本算法中S(X)采用多項式。CRC的處理方法是:發(fā)送方以生成多項式S(X)去除待處理的數(shù)據(jù)D(X),,得到余數(shù)作為CRC校驗碼,。校驗時,以計算的校正結(jié)果是否為0來判斷數(shù)據(jù)幀是否出錯,。
2.2.2 校驗算法實現(xiàn)
用‘C5402來進(jìn)行CRC校驗的關(guān)鍵是運用其40位的累加器A作為移位寄存器,,實現(xiàn)CRC碼的模2多項式除法。此時CRC-16碼占用累加器A的高16位,,其余位補0,。運算中利用SFTA(算術(shù)移位)和XOR(異或)指令完成編碼過程中碼的移位和異或操作,利用XC指令完成條件語句的判斷執(zhí)行,?!瓹5402提供了特殊指令BITT,BITT利用寄存器T取出一個16位數(shù)據(jù)中的第(15-T)位,,并送入TC(TC是特殊寄存器中的一位),。具體算法步驟如圖6所示。
?。?)首先將CRC移位寄存器A (即余數(shù)寄存器)的高16位初始化為全0,,其余位清0。
?。?)將CRC移位寄存器A中的值左移一位,,即最高位移入C中,然后利用指令BITT取出輸入校驗數(shù)據(jù)的最高位送入寄存器B,,判斷C中移入的最高位與輸入校驗數(shù)據(jù)的最高位異或之后是否為1,。
(3)若為1,,則將寄存器A中的值與輸入寄存器B中的生成多項式X16+X15+X2+1進(jìn)行異或后再跳到步驟(2)處理下一位,;若不為1,直接跳到步驟(2)處理下一位,。重復(fù)上述的數(shù)值左移和異或判斷,,直到輸入的數(shù)據(jù)位全部處理完為止,則寄存器A的最高16位即為進(jìn)行多項式除法后所得的余數(shù),,此時寄存器A的最高16位就是CRC校驗碼[2],。
系統(tǒng)上電運行后,,經(jīng)多次實驗測試,運行情況穩(wěn)定,。目前該設(shè)備已經(jīng)進(jìn)行現(xiàn)場調(diào)試運用,,開始部分裝車運行,滿足了列車監(jiān)控記錄的實際要求,。
參考文獻(xiàn)
1 UDA1341TS Product specification[Z].Netherlands: Philips Semiconductors,2002
2尹冬元,,梁松海.40位以內(nèi)任意長度的CRC計算及校驗的實現(xiàn)[J]. 電子工程師,2003,;(2):17~18