基于DSP的TETRA話音編碼系統的設計與實現
2.1.3 DSP與存儲器接口設計
AT49LV001存儲器內部以扇區組織,在對其編程前,必須對相應區域擦除。使用時可根據需要選擇扇區擦除或芯片擦除。圖3為5409與 AT49LV001的接口示意圖,AT49LV001的地址總線和數據總線分別接至5409的地址總線和數據總線,5409的地址總線A22~A18懸空,數據總線D15~D8懸空。DS作為使能信號,XF則控制編程狀態。應當注意,AT49LV001為8 b存儲器,DSP為16 b處理器,所以每存儲一條DSP指令需2個存儲單元,且高字節在前。
2.2 軟件設計
2.2.1 初始化程序
完成DSP的初始化工作,包括設置SWWSR,PMST等寄存器的值;根據需要設置CLKMD寄存器改變倍頻數;配置串口。
2.2.2 中斷服務程序
中斷服務程序主要是串口接收和發送中斷。接收中斷從Codec的DS腳接收采樣數據,放入接收緩沖區MicIn,當接收到30 ms的數據(算法要求),啟動編碼標志SpeechFlag。當解碼程序從Acelp碼流中解出話音后,放入發送緩沖區Sout中,然后通過串口發送中斷發至Codec。MicIn和Sout均為雙緩沖區。
2.2.3 算法設計
編碼程序每30 ms執行一次,將240個采樣值編成137 b,傳遞給解碼程序,再將解碼合成的話音通過音箱放出。在硬件平臺上做自環實驗,下面給出部分C代碼。
3 結 語
本文從軟件設計和硬件設計兩方面介紹了在TMS320VC5409芯片上實現TETRA話音編碼算法的具體步驟。通過標準P.862對算法評測,平均MOS得分為3.474。同時,在做抗噪實驗時,本算法在10-2誤碼率下,仍能保持良好的通信質量。
評論