李俊鋒,周 南
(電子科技大學 電子工程學院,四川 成都 610054)
當今數字技術的發展越來越快,人們對廣播電視節目的質量需求也越來越高。AES/EBU(Audio Engineering Society/European Broadcast Union)現已成為專業數字音頻較為流行的標準。大量民用產品和專業音頻數字設備如CD機、DAT、MD機、數字調音臺、數字音頻工作站等都支持AES3接口。AES3通過單根絞合線對來串行傳輸數字音頻數據,充分發揮了數字信號易處理、音質優良和抗干擾能力強的優勢[1]。它提供兩個信道的音頻數據,信道自動計時和自同步,同時提供了傳輸控制的方法和狀態信息的表示和一些誤碼的檢測能力[2]。
鑒于人們對高質量音樂的追求以及AES3接口的縱多優點,設計出一個能夠接收和發送AES3音頻信號的簡單系統是很有價值的。本設計由LPC2138控制音響設備專用芯片實現AES3接口,只需簡單地修改芯片配置,即可實現系統的特性調整及性能擴展,簡單穩定,具有較強地實用價值。
AES3接口[2]在單根傳輸線上串行傳輸兩路數字音頻信號。每個音頻塊(Audio block)包含192幀,每幀包括2個子幀,即左右兩個通道,每個通道包含32個時隙(slot)。0~3時隙為X、Y、Z 3種幀頭,其中X和Y表示一個子幀的開始,Z表示一個塊(block)的開始。 4~7時隙為輔助數據,8~27時隙為音頻數據位,音頻數據位可以多達24位。如果音頻數據超過20位,則4~7位將被用作音頻數據位。最后的4個時隙分別為有效位、用戶數據位、通道狀態位和奇偶校驗位。每192幀信號的通道狀態位組成通道狀態數據,通道狀態中含有豐富的音頻特征信息,通過獲取通道狀態數據便可以得知音頻信號是否是專業型,是否預加重,以及采樣頻率等信息。每一位的具體含義請參考文獻[2],本設計不做詳細介紹。AES3接口傳輸的數字音頻信號格式如圖1所示。

圖1 塊/幀格式Fig.1 Block/frame format
本設計的信號源為模擬音頻信號、I2S串行音頻信號和傳輸線上接收到的AES3數字音頻信號。
模擬音頻信號經調節后,送至模數轉換器,經過48 k的采樣頻率采樣(本設計統一使用48 k的采樣率),轉換成I2S數字音頻信號。I2S信號(包括模數轉換得到的I2S和I2S信號源的信號)送入SRC4382,SRC4382將I2S信號的采樣頻率轉換為48 k,并進行格式轉換,轉換后得到的AES3信號可以通過單根絞合線進行傳輸。相反過程,接收到的AES3數字音頻信號經過采樣頻率轉換和格式轉換后,轉換為采樣率為48 k的I2S信號。I2S信號可以直接作為輸出,也可以經過數模轉換器后,再經過濾波放大處理,轉化為模擬音頻信號輸出。整體框架的部署如圖2所示。

圖2 系統結構框圖Fig.2 Structure of system framework
本設計中的微控制芯片需要提供I2C總線來控制CS5368、CS4382和SRC4382的操作模式,并且提供外部中斷接口來接收外部的中斷。LPC2138微控制芯片是Philips公司的ARM7芯片,它擁有豐富的外部串行接口(UART、SPI以及I2C),向量中斷控制器,支持實時調試和高速跟蹤執行代碼,是一款高性能低功耗的32位微控制器[3],在微控制領域已經得到廣泛的應用。鑒于以上特性,本設計選用LPC2138作為微控制芯片,通過 I2C總線接口實現 CS5368、CS4382和SRC4382的內部寄存器配置,使這些器件工作在合適的工作狀態,并通過外部中斷接口實現中斷管理。
硬件系統平臺要求的供電電源電壓有:±12 V、5 V、3.3 V、2.5 V和1.8 V。其中±12 V和5 V是由變壓器直接輸入得到,3.3 V、2.5 V和1.8 V由電源IC轉換得到。±12 V主要為運放供電,3.3 V、2.5 V和1.8 V電源芯片的輸入電壓均為5 V。其中,3.3 V電壓、2.5 V電壓和1.8 V電壓分別由芯片LM1085、TPS79325和LM1117-1.8輸出提供,輸出的2.5 V電壓提供給運放NE5532做基準電壓。
模擬信號輸入前置電路,包括濾波限幅電路、阻容耦合電路和低通濾波衰減電路[4]。模擬信號輸入前置電路主要用來隔離后級直流分量對前級的影響,限制輸入信號的幅度,濾去輸入信號中的高頻分量,濾除串擾噪聲。輸入模擬音頻信號電壓幅度比較大,不能直接作為A/D轉換器的輸入,因此前置電路必須對信號進行衰減,同時基準電壓提高到2.5 V。如圖3所示。信號的衰減系數為:


圖3 模擬信號輸入前置電路Fig.3 Analog input front-end circuit
人耳能聽見的音頻信號頻率范圍在20 Hz~20 kHz之間,而數字音頻信號經過傳輸和D/A轉換后可能會引入各種噪聲,因此需要在D/A轉換后進行低通模擬濾波來濾除噪聲。此處由一個隔直流電路(由C5與R15組成高通濾波器)和二階巴特沃茲低通濾波器,如圖4所示。圖中,二階巴特沃茲低通濾波電路引入正負反饋,用來去除信號的高頻分量。

圖4 輸出模擬音頻調節電路Fig.4 Analog audio output adjustment circuit
其中,C5和R15組成的高通濾波器的截止頻率為:

二階巴特沃茲低通濾波器截止頻率為

模擬音頻信號經過濾波電路后功率比較小,如果直接輸出,則輸出音頻的音量會非常小。因此必須對濾波后的模擬

模數轉換模塊采用Cirrus Logic公司的模數轉換芯片CS5368。它具有24位轉換位寬,114 dB的動態范圍,-105 dB的總諧波失真加噪聲,可選的音頻接口格式,低延遲數字濾音頻信號進行非失真放大,提高輸出模擬音頻信號的功率[4],使得音量能達到更好效果。如圖4所示,經過濾波后的模擬音頻信號由NE5532放大器進行功率放大,放大倍數為:波器,差分模擬結構,從模式(slave mode)下支持速度自檢,支持標準的I2C控制接口,適用于專業的音響設備[5]。
在本設計中,CS5368工作于控制端口模式 (control port mode),通過LPC2138的I2C總線控制,器件地址為0x98H。CS5368可接收8路的差分模擬信號AINLx+、AINLx-,輸出的4路數字音頻信號CS5368_SDOx格式設置為I2S模式,采樣頻率為 48 kΩ。 MCLK、SCLK、LRCK 分別為 12.288 MHz、3.072 MHz、48 kHz,由外部提供。CS5368的外圍電路如圖5所示。

圖5 CS5368外圍電路Fig.5 Peripheral circuit of CS5368
數模轉換模塊采用Cirrus Logic公司的數模轉換芯片CS4382。它是一個完整的8通道數模轉換系統,具有114 dB的動態范圍,-100 dB的總諧波失真加噪聲,支持標準的I2C控制接口,具有理想的差分線性,高保真機制,無線性漂移等優勢,適用于專業的音響設備[6]。
在本設計中,CS4382工作于控制端口模式,通過LPC2138的I2C總線控制,器件地址為0x30H。CS4382可接收4路I2S的數字音頻信號SDIN1~SDIN4,輸出8路的差分模擬信號,采樣頻率取 48 k。MCLK、SCLK、LRCK同 CS5368,分別為12.288 MHz、3.072 MHz、48 kHz,由外部提供。
音頻格式轉換模塊采用TI公司的SRC4382芯片。它是一款專用于廣播數字音頻系統的芯片,它集成了帶有采樣頻率轉換的數字音頻接口發送器(DIT)和接收器(DIR),2個音頻串行接口,以及支持數據和時鐘內聯的分布式邏輯,DIT和DIR 兼容 AES3,S/PDIF,IEC 60958和 EIAJCP-1201接口標準,采樣頻率最高支持216 kHz,并且支持通過I2C總線控制芯片的工作狀態[7]。
本設計中,通過LPC2138的I2C總線接口控制SRC4382的工作模式,器件地址為0xE0H。通過設置SRC4382內部寄存器,使其同時有2條工作的信號路徑,一條為RX+、RX-差分信號經過DIR單元的采樣頻率轉換和解碼后,轉換為I2S信號,由SDOUT輸出;另一條為I2S信號SDIN經過DIT單元的采樣頻率轉換和編碼后,轉換為數字音頻接口AES3信號,由差分線TX+、TX-輸出。LRCK與SCLK同CS5368,均由外部提供。 RX+、RX-與 DIN+、DIN-之間以及 TX+、TX-與DOUTR+、DOUTR-之間均需要用變壓器做隔離去耦合,以防止前后級之間相互干擾。SRC4382的外圍電路如圖6所示。
CS5368、CS4382、SRC4382 3款芯片均可通過設置其內部寄存器,獲得不同的工作狀態。

圖6 SRC4382外圍電路Fig.6 Peripheral circuit of SRC4382
系統上電之后需對CS5368進行初始化。GCTL(global mode control register)控制芯片的工作模式[5],本設計工作狀態為:控制端口模式,時鐘為256采樣率,輸出I2S模式,從模式下的所有采樣頻率。因此GCTL的值設置為0x87H。其他寄存器保持默認值即可。初始化程序如下:
//I2C寫一個字節0x87到地址GCTL(0x01)
I2c_WriteNByte(CS5368_Addr, 1,GCTL, &gctl, 1);
當CS5368發生溢出中斷時,會向LPC2138的外部中斷INT0發送中斷信號,同時LED燈D1被點亮。在中斷程序中,查詢OVFL寄存器狀態,設置相應通道的輸出消聲(mute)。中斷服務程序如下:
char ovfl,mute;
I2c_ReadNByte(CS5368_Addr, 1,OVFL, &ovfl, 1);
mute= ~ovfl;
I2c_WriteNByte(CS5368_Addr, 1,MUTE, &mute, 1);
系統上電之后需對CS4382進行初始化。MC1、MC2和FC共同控制CS4382的工作狀態[6],本設計中將其值分別設置為0x80H,0x10H,0x05H。芯片工作在控制端口模式下,輸入音頻格式為24位I2S信號,去加重濾波器響應頻率為48kHz。其他寄存器保持默認值。初始化程序如下:
mc1=0x80; mc2=0x10; fc=0x05;
I2c_WriteNByte(CS4382_Addr, 1, MC1, &mc1, 1);
I2c_WriteNByte(CS4382_Addr, 1, MC2, &mc2, 1);
I2c_WriteNByte(CS4382_Addr, 1, FC, &fc, 1);
4.3.1 SRC4382初始化
系統上電之后需要對SRC4382進行初始化。SRC4382的寄存器分為4頁,第0頁為控制和狀態寄存器,第1頁為DIR通道狀態和用戶數據緩沖寄存器,第2頁為DIT通道狀態和用戶數據緩沖寄存器,第3頁保留。在操作每頁寄存器之前,必須通過設置每頁的頁選擇寄存器來確定要操作的頁[7]。初始化程序中只需將寄存器 07,09,0b,0d,0e,0f,16,17,2d分別設置為 0x22,0x02,0x33,0x08,0x09,0x12,0xfe,0x01,0x42,其他保留默認值即可。各寄存器的具體值及其含義請參考技術手冊。初始化程序如下:
char reg_7f=0x00;
//select page 0
I2c_WriteNByte(SRC4382_Addr,1, PagSel, ®_7f, 1);
I2c_WriteNByte(SRC4382_Addr,1,TxCtrl1,®_07, 1);
I2c_WriteNByte(SRC4382_Addr,1,TxCtrl3,®_09, 1);
I2c_WriteNByte(SRC4382_Addr, 1, SRCDITIntSta, ®_0b, 1);
I2c_WriteNByte (SRC4382_Addr, 1, RecvCtrl1, ®_0d, 1);
I2c_WriteNByte(SRC4382_Addr,1,RecvCtrl2,®_0e, 1);
I2c_WriteNByte(SRC4382_Addr, 1, RecvPLLcfg1, ®_0f, 1);
I2c_WriteNByte(SRC4382_Addr, 1, RecvIntMask1, ®_16, 1);
I2c_WriteNByte(SRC4382_Addr, 1, RecvIntMask2, ®_17, 1);
I2c_WriteNByte(SRC4382_Addr,1,SRCCtrl1,®_2d, 1);
4.3.2 SRC4382讀通道狀態
由第一部分介紹可知,通道狀態中含有豐富的信息。通過讀第1頁寄存器,便可以獲得接收的AES3數字音頻的特征信息。讀通道狀態之前,應先在第0頁禁止DIR,然后切換到第1頁,讀完通道狀態后再切換回第0頁,使能DIR[7]。讀通道狀態程序如下:
//定義字符數組,存放通道狀態信息
char DIR_Reg_CA[48];
I2c_WriteNByte(SRC4382_Addr,1,PagSel,®_7f_p0, 1);
I2c_WriteNByte (SRC4382_Addr,1, RecvCtrl1, ®_0d_DIR_Disable, 1);
I2c_WriteNByte(SRC4382_Addr,1,PagSel,®_7f_p1, 1);
for(i=0;i<48;i++){
I2c_ReadNByte (SRC4382_Addr, 1, i, &(DIR_Reg_CA[i]), 1); }
I2c_WriteNByte(SRC4382_Addr,1,PagSel,®_7f_p0,1);
I2c_WriteNByte(SRC4382_Addr, 1, RecvCtrl1, ®_0d_DIR_Enable, 1);
4.3.3 SRC4382寫通道狀態
通過寫第2頁的相關寄存器,便可將需要發送的AES3數字音頻的特征信息寫入到每一幀的通道狀態位中。寫通道狀態之前,應先在第0頁禁止DIT,然后切換到第2頁,寫完通道狀態后再切換到第0頁,使能DIT[7]。讀通道狀態程序如下:
//需要發送的通道狀態信息
char DIT_Reg_ChnelStaData[48]={0xa1,0xa1,0x40,0x40,...};
char reg_09_IIC_Source=0x01;
I2c_WriteNByte(SRC4382_Addr,1,PagSel,®_7f_p0, 1);//設置通過I2C接口寫入DIT通道狀態信息
I2c_WriteNByte(SRC4382_Addr, 1, TxCtrl3, ®_09_IIC_Source, 1);
I2c_WriteNByte (SRC4382_Addr, 1, TxCtrl2, ®_08_DIT_Disable, 1);
I2c_WriteNByte(SRC4382_Addr,1,PagSel,®_7f_p2, 1);for(i=0;i<48;i++){
I2c_WriteNByte (SRC4382_Addr, 1,i, & (DIT_Reg_ChnelStaData[i]), 1);}
I2c_WriteNByte(SRC4382_Addr,1,PagSel,®_7f_p0, 1);
I2c_WriteNByte (SRC4382_Addr, 1, TxCtrl2, ®_08_DIT_Enabled, 1);
該設計通過微控制器LPC2138控制專業音頻處理芯片,實現了AES3數字音頻接口的設計。本設計中發送的音頻信息源和接收處理后的音頻信息均可以為模擬信號和串行I2S信號的形式,可用性較強。由于該設計采用專業音頻處理芯片實現,因此音質比較好,穩定性比較高。只需簡單修改軟件部分對音頻處理芯片的寄存器配置,即可實現系統特性的改變,所以靈活性和可擴展性較好。該設計可以具體應用于數字調音臺的混音器和音頻矩陣切換器中,也可以為CD機、MD機的設計提供參考,因此具有較強的工程使用價值。
[1]王珂.AES/EBU數字音頻接口及分配標準[J].(視聽界)廣播電視技術,2005(6): 57-59.WANG Ke.AES/EBU digital audio interface and allocation standard[J].Radio&TVBroadcast Engineering,2005(6):57-59.
[2]Audio Engeering Sociaty.AES Recommended Practice for Digital Audio Engineering—Serial Mutichannel Audio Digital Interface[S].2003.
[3]周立功.深入淺出ARM7——LPC213x/LPC214x[M].北京:北京航空航天大學出版社,2005.
[4]謝自美.電子線路設計·實驗·測試[M].3版.武漢:華中科技大學出版社,2006.
[5]Cirrus Logic.CS5368:114 dB, 192 kHz, 8-Channel A/D Converter datasheet[EB/OL].[2012-03-02].http://www.cirrus.com/en/products/cs5364-66-68.html.
[6]Cirrus Logic.CS4382:114 dB, 192 kHz, 8-Channel D/A Converter datasheet[EB/OL].[2012-03-02].http://www.cirrus.com/en/products/cs4362-82.html.
[7]TI.SRC4382:Two-Channel asynchronous sample rate converter with integrated digital audio interface receiver and transmitter datasheet[EB/OL].[2012-03-02].http://www.ti.com/lit/ds/symlink/src4382.pdf.