DSP軟件設(shè)計(jì)
系統(tǒng)的軟件總體結(jié)構(gòu)如圖1所示。鍵盤監(jiān)控的初始化、液晶顯示的初始化、時(shí)間、采樣頻率、顯示狀態(tài)等各種信息。
圖1 系統(tǒng)軟件結(jié)構(gòu) 監(jiān)控模塊隨時(shí)判斷各種中斷是否到達(dá),這其中包括摘機(jī)中斷、掛機(jī)中斷、振鈴中斷、鍵盤中斷、液晶顯示定時(shí)中斷等。監(jiān)控模塊程序完成查詢以上工作并調(diào)用各個(gè)相應(yīng)的處理子程序。 系統(tǒng)的程序流程如圖2所示。在整個(gè)程序中,掛機(jī)中斷具有最高優(yōu)先權(quán),只要發(fā)生掛機(jī)中斷,程序就返回到監(jiān)控狀態(tài)。尤其是在通話過程中,隨時(shí)監(jiān)測掛機(jī)中斷和對方狀態(tài),一旦自身掛機(jī)或者對方掛機(jī),將馬上中止通信過程。
圖2 程序流程 系統(tǒng)上電后,總是檢測有無中斷產(chǎn)生,中斷包括摘機(jī)中斷、振鈴中斷、鍵盤中斷和顯示定時(shí)中斷。中斷產(chǎn)生,系統(tǒng)將進(jìn)入相應(yīng)的中斷處理程序?! sp和客戶端芯片s13016的通信是由dsp的緩沖串口2進(jìn)行的。其中,dsp通過對s13016的寄存器的讀寫實(shí)現(xiàn)數(shù)據(jù)交換和控制。圖3是dsp從s13016讀取數(shù)據(jù)的時(shí)序,首先dsp向其緩沖串口2寫數(shù)據(jù)001aaaaa xxxxxxxx,其中001為固定的數(shù)據(jù)位,表示讀操作;5個(gè)a位表示讀取的地址(address),例如讀取s13016的第13寄存器,則5個(gè)a位值為01101;最低8個(gè)x位,表示無關(guān)位。s13016收到dsp的以上信/崽,迅速將該寄存器的數(shù)據(jù)送到dsp的緩沖串口2的接收寄存器中,并發(fā)出接收中斷到dsp。注意,513016幾乎是一收到寄存器地址,就發(fā)出該地址的數(shù)據(jù),延遲時(shí)間可認(rèn)為是0,如圖3所示。
圖3 dsp讀si3016的時(shí)序 圖4是dsp向s13016寫寄存器的時(shí)序。和讀513016寄存器的時(shí)序相同,將固定的高3位設(shè)置成000,表示寫寄存器;接下來仍然是5個(gè)a位,表示寫哪個(gè)寄存器;最后低8位就是寫人的內(nèi)容。和讀一樣,s13016一接收到地址信息,馬上將8位信息寫入該寄存器,延遲時(shí)間幾乎為0。
圖4 dsp寫si3016的時(shí)序 信號處理算法主要包括回音相消、自動增益控制、數(shù)字濾波等。 ?。?)回應(yīng)相消?;匾粝嘞幚磉^程如圖5所示?;匾糁饕峭ㄟ^對不同端的信號采集,得到遠(yuǎn)端回音信號,作為回音的參考信號。而帶有回音的混合信號和參考信號進(jìn)行自適應(yīng)減法運(yùn)算,從而將回音從混合信號中去除。圖5中虛線框內(nèi)為回音處理算法。
圖5 回音相消處理過程 ?。?)自動增益控制。語音在采集和傳輸過程中,語音源的差異、信道的衰減以及噪聲的干擾,使得信號的幅度相差較大,從而需要自動增益控制。模擬信號中一般很難實(shí)現(xiàn)自動增益,而數(shù)字電話通過對數(shù)字信號的幅度的估計(jì),調(diào)整信號增益參數(shù),從而保證在任何情況均可以輸出最大幅度,達(dá)到最佳的語音質(zhì)量?! 。?)數(shù)字濾波。輸入和輸出的模擬信號都經(jīng)過一個(gè)具有線性相位的πr帶通濾波器。根據(jù)語音信號的特點(diǎn),濾波器的通帶在3khz~300khz之間。其阻帶衰減為一60db,根據(jù)實(shí)際情況,濾波器的各種參數(shù)可以通過軟件調(diào)整。信號中的直流分量也可以通過預(yù)估均值去除,從而進(jìn)一步提高語音質(zhì)量。
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)()