挾技術優越性 DSP車用音訊系統設計搶眼

作者: 趙傳禹
2007 年 10 月 02 日

DSP處理器核心模組性能出色
 



在整體系統架構(圖1)中,收音和音訊訊號的處理是核心模組,其型號選擇將決定系統最終的音效和可提供的功能。市場經常採用的是類比音訊處理器(ASP)或者以DSP處理核心為基礎的的音訊處理器(以下簡稱為DSP),相較之下前者具有成本優勢,但是後者卻有明顯的技術優越性,主要包括下列幾項優勢︰DSP處理核心的處理能力強大,透過可編程的數位濾波器可提供更好的輸出音質;DSP藉由數位與類比介面能支援多種外部音源,擴展到DVD、MP3、數位廣播、語音識別等功能;因為ASP的性能容易受到環境因素的影響,相比之下,DSP的運作更為穩定、可預期,能增強系統的可靠性;此外,由於DSP的功能可透過軟體來增減,非常靈活,是ASP所無法達成,所以用戶可根據系統規格和目標成本選擇不同版本的DSP產品,甚至在DSP的韌體中建入自己所需的特定功能,以貼近實際需求,同時DSP可用於構建一個平台,藉著透過軟體模組重複使用,以更短的設計週期透過差異化的軟體來滿足未來不同車廠的需求,增強系統的靈活性和擴展性。


圖1 車用音訊系統的架構圖




車用音訊處理器走向高整合趨勢
 



SAF7730(圖2)是恩智浦推出的車用音訊處理器晶片,已經在歐洲和北美前端市場(OEM Market)被廣泛的應用採納。以恩智浦自行設計的可編程DSP處理核心為基礎,SAF7730同時整合類比數位轉換器(ADC)、數位類比轉換器(DAC)和音訊選擇電路,可在一顆IC內完成所有車用音訊處理常見的功能。SAF7730引入多DSP處理核心架構,處理能力達到650MIPS。針對收音(Radio)功能,SAF7730能同時處理前端給出的兩路中頻(IF)訊號,以此進行多徑干擾和臨近頻道干擾的去除,以獲取最好的接收音效。針對音訊處理功能,SAF7730能完成輸入音源採樣頻率轉換、第三方音效渲染等功能,並且透過協處理器可支援高畫質收音(HD Radio)和數位版權管理(DRM)的應用。


圖2 SAF7730功能架構圖




SAF7730的硬體設計比較簡單,電源部分需要1.8伏特和3.3伏特分別供電給DSP處理核心與外圍整合模組;41.6MHz的外部晶振提供系統所需的原始時鐘頻率;控制部分透過I2C匯流排來實現MCU和DSP的通訊;DSP和協處理器晶片透過I2S和SPDIF介面完成音訊數據的交換。
 



與硬體設計相比,比較複雜的是控制軟體的設計,也是本文討論的重點。


DSP控制軟體透過相應暫存器讀寫實現功能運作


在音訊處理中常見下面的運算︰

y = mx + b


其中m和b稱之為係數(Coefficients),x和y稱之為數值。由於通常係數和數值對精度的要求不同,所以在晶片設計上,SAF7730內建的DSP處理核心選擇雙哈佛架構(Double Harvard Architecture),資訊儲存器分為兩部分,分別是XRAM,為24位位寬,主要用於儲存數值;另YRAM為12位元,主要用於儲存係數。指令儲存器PRAM為32位元,用於儲存指令。
 



由於DSP的韌體已設定至晶片中,所以通常開發工程師只須編寫於微控制器(MCU)中控制DSP工作的程式,透過I2C協議對XRAM、YRAM、PRAM中的相應暫存器做讀寫操作,即可實現規格書所定義的相應功能。
 



在編寫程式之前須做如下的說明:為了最大限度的利用儲存器位元,寫入暫存器的值都是經過轉換的小數,範圍在(-1,1)之間。比如頻率、音量這些音訊參數,並不是原始值×Hz,×dB直接寫入暫存器,而是首先經過某種約定的運算,得到一個小數結果,然後寫入指定的某個暫存器中。若此暫存器是24位(XRAM),那麼寫入的值是這個小數結果乘以8,388,608(2的23次方)去除小數點後的整數部分;若此暫存器是12位(YRAM),那麼寫入的值是這個小數結果乘以2,048(2的11次方)去除小數點後的整數部分。寫入的數值用16進位數表示。
 



DSP軟體啟動頻率轉換/音訊功能
 



在以下論述中,以表1的記號來代表係數名稱和值,由於SAF7730內建多顆DSP處理核心,須要分別啟動專用於取樣頻率轉換的DSP處理核心(SDSP)和專用於音訊處理的DSP處理核心(ADSP);若系統須要啟用特定收音處理,如FM Radio,則須設置專用於收音處理的DSP處理核心(TDSP1),另外SAF7730引入碼鍵(Key Code)機制,對於須要激發高階音訊處理功能,如Adaptive UltraBass II、Elevation、Incredible Mono 2等第三方提供音效的應用而言,還須在ADSP啟動過程中輸入正確的Key Code。







表1 係數名稱和值
符號 獨立位址 預設值
X:SAMlin_inP $0096 #800000
Y:TG2_Clip1 $1170 $128
Y:Tsq_ChimeVol_Bk $0D1128 $7FF


以下是啟動SDSP和ADSP的流程︰




對於SDSP
  設置特定暫存器IIC_DSP_CTR的特定位sdsp_pc_reset,首先置1,然後置0,啟動SDSP內建的程式。

打開所需的取樣頻率轉換器。SDSP的功能是對輸入的數位音訊進行取樣頻率轉換,統一轉換為ADSP能處理的標準頻率。

從邏輯上來說,SDSP提供四個取樣頻率轉換器(SRC),須要手動對某一個或全部進行打開。每個SRC有一個對應的XRAM暫存器,要打開這個SRC時,只要修改對應的暫存器值即可。表2提供對應的暫存器和修改示例。

若要打開SRC1,則#0901FB= #800000;若要關閉SRC4,則#0901FE= #000000。








表2 SRC控制暫存器的位址
取樣頻率轉接器 獨立位址
1 $901FB
2 $901FC
3 $901FD
4 $901FE




對於ADSP
  設置特定暫存器IIC_DSP_CTR的特定位adsp_pc_reset,首先置1,然後置0,啟動ADSP內置的程式。ADSP首先對所有類比和數位輸出均做靜音處理,然後ADSP直接給XRAM、YRAM各個暫存器鍵入預設值,完成初始化。

初始化結束後,DSP程式的主循環開始,進行等待。若須要激發高級音訊處理功能,此時須向特定暫存器輸入正確的Key Code。

向暫存器X:KickOffADSP中寫入#000001。接著,根據需要設置I2S音訊輸入模式。

由於ADSP支援雙路音訊同時處理,此須選擇主通道(Primary Channel)和次通道(Secondary Channel)的音源。

根據應用需要激發那些預設值為「被動(Inactive)」的功能模組,如報時產生器(Chime Generator)/光譜分析(Spectrum Analyzer)等。




對於TDSP1的關閉自動靜音處理
  首先設置暫存器X:FW_RadMod,以選擇收音模式,如FM、AM等;接著設置Key Code,來選擇激發高級的收音處理功能,如狀態多樣性(Phase Diversity),搜尋天線多樣性(Scanning Antenna Diversity)等;最後設置所需的收音處理參數。

在上述步驟中,大部分操作都是固定的暫存器操作。開發工程師須完成的工作集中在ADSP中主次通道的設計,以及TDSP1中收音處理參數的設置。由於後者涉及具體的性能指標要求,在此不再多述。


挑選所需功能模組建置音頻流程圖
 



由於基本的車用音響配置四個喇叭,前左、前右、後左、後右,DSP中基本的音訊訊號處理是基於雙通道模式,主通道處理的音源輸出到前後四個喇叭,次通道處理的音源輸出到後座耳機收聽。當然實際應用中會靈活的多,比如SAF7730的主通道可支援六通道模式,用於同時處理DVD播放端提供的三路I2S訊號,在輸出設備上還可包括中置音箱和低音炮,如此可讓駕駛者欣賞到家庭影院提供的Dolby 5.1聲道環繞身歷聲效果。
 



從技術角度上僅討論雙通道模式,DSP對音頻訊號的處理是在兩個通道中實現的,每一音訊通道可包含不同的處理環節,處理環節的選取稱之為音訊路徑(Audio Path)設計,方法是藉由一種圖示化的工具,稱為音訊訊號的流程圖(Audio Diagram),圖3是完整音訊訊號流程圖的一部分,流程圖中基本的元素有四個︰






(1) 功能塊(Function Block),在圖中用矩形框表示。
(2) 輸入訊號端(Stored Signal),在圖中以空心圓圈「」表示,代表經過這個模組處理後的訊號。
(3) 模式指針(Mode Pointer),在圖中以實心圓圈加延伸線「」表示,意指一個選擇開關,在上圖中X:PProcSelPntr必須選擇包括X:DCfilt_OutPL等某一個訊號端作為輸入。
(4) 音訊指針(Audio Pointer),在圖中以曲線箭頭「」表示,意指一個可選連接。


圖3 SAF7730音頻訊號流程圖



根據上面的介紹,若須搭建起一個音訊流程圖,首先是選擇需要的功能模組,然後參照完整的音訊路徑做取捨或更改連接(注意通常毋須改動各個功能模組在流程圖上的先後順序)即可。
 



下面例舉一個簡單的例子,假如須要測試DSP晶片的正弦產生器(Sine Generator)的功能,一個簡單的方法就是把Sine Generator的輸出訊號直接連接到類比音訊輸出,也就是圖4的框架圖。


圖4 輸出訊號直接連接到類比音頻輸出



那麼在實際的代碼設置中,只須要將X:SinGen_OutL的相對位址分別賦予X:FDACPntr和X:RDACPntr,則FLV/RLV輸出的就是Sine Generator產生的左路音訊訊號,RLV/RRV輸出的就是Sine Generator產生的右路音訊訊號。
 



I2C輔助工具/代碼協助軟體開發
 



在電腦安裝I2C的驅動器後,使用I2C線纜連接評估板和電腦,即可使用這兩個輔助工具。PC GUI是針對特定晶片版本,用於展示各種功能並可提供功能所相應的暫存器操作流程。(圖5)


圖5 SAF7730N331的PC GUI介面和部分子菜單



ITS可用於各類使用標準I2C協議通訊的元件,透過編寫指定格式的腳本,在ITS中執行,即可觀察一系列暫存器讀寫操作的結果。(圖6)


圖6 ITS的操作介面



根據前面所述的DSP晶片啟動流程和音訊流程圖設計原理,能舉例出下面的一個示例。
 




點圖放大
圖7 ITS腳本代碼



以下有兩路音源,一路是CD Digital,從I2C介面輸入;一路是導航訊號,從類比介面輸入,兩者均不做特殊的音效處理,CD音源從FL/FR/RL/RR輸出,疊加導航的音頻輸出。圖7是ITS的腳本代碼,設計者能很容易改寫為C代碼植入最終的控制程式。


把上面的腳本編輯好,裝入ITS並開始運作。一切正常的話,評估板的輸出端即可以聽到CD的音樂以及導航的聲音。
 



控制軟體開發的一般流程
 



由先前內容所敘述的結果,現在可以歸納出DSP軟體開發的建議流程如圖8。並說明如下:
 



選擇功能模塊,並確定相關的係數值可區分為兩個步驟:首先,確定整個音訊處理部分的功能模組,以及相關係數,並且完成腳本、測試、移植經過試驗通過;之後再確定收音處理的功能模組,主要是收音訊號處理模組中的相關係數。
 



因為收音訊號處理模組中涉及到的係數很多,控制也比較複雜,所以此設計是本著先易後難的原則,也利於軟體測試中定位錯誤。
 



在移植程式到目標系統上進行測試之前,可以用先前小節中所提到的Sine Generator的示範程式,讓目標系統運行第一次出聲,由此以作為驗證DSP晶片電氣連接的正確性。


圖8 DSP軟體開發的建議流程



DSP軟體有利縮短系統開發時程
 



上文簡要介紹利用DSP核心處理器如何構建一個車用音訊解決方案。
 



音訊路徑的中間處理環節大多是可以編程的數位濾波器,因此可以在不改變控制程式的情況下,僅僅透過改變濾波器的係數設置即可獲得不同的音效。另外,透過增減音訊路徑的組成模組,則可以非常容易地增減功能。
 



透過這種基於軟體來實現系統功能的模式,使得設計人員能在未來規畫功能擴展的過程中,輕鬆地實現原有程式的重複使用或者移植性能,藉此可大大節省後續產品的開發時間,以實現、產品快速進入市場的目的。
 



(本文作者任職於恩智浦)

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

從微米走向奈米 半導體製程推進難關不斷

2005 年 10 月 21 日

立體顯示硬體技術迭有進展<br>3D顯示器商品化指日可待

2009 年 07 月 02 日

樹立市電同價里程碑 PV直交流轉換重要性大增

2010 年 10 月 14 日

健康照護成穿戴式賣點 生物/環境感測器需求飆漲

2015 年 05 月 04 日

大廠/學術/政府力挺 RISC-V開放架構顯神威

2018 年 08 月 02 日

身懷多種亮眼新絕技 USB Type-C測試馬虎不得

2017 年 06 月 01 日
前一篇
凌力爾特3.2MHz雙組微功率比較器面世
下一篇
盛群推出1.8伏特低壓OTP MCU