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