趙巧妮
(1.西南交通大學(xué) 2.湖南鐵道職業(yè)技術(shù)學(xué)院)
功率放大器是把來(lái)自音源或前級(jí)放大器的弱信號(hào)放大,推動(dòng)音箱放聲。目前市場(chǎng)上大部分功放的音響效果控制是模擬的,無(wú)法調(diào)節(jié)具體的參數(shù)。本文設(shè)計(jì)一套數(shù)字控制功放,能把音量、音調(diào)以及響度準(zhǔn)確地調(diào)整到所需參數(shù),達(dá)到最佳聽(tīng)覺(jué)要求。
在功放系統(tǒng)中,按照工作點(diǎn)可分為A類(lèi)、B類(lèi)、AB類(lèi)和D類(lèi)。A類(lèi)功放效率最低;B類(lèi)功放有交越失真;AB類(lèi)功放結(jié)合了A、B兩類(lèi)功放的優(yōu)點(diǎn),效率適中又沒(méi)有失真;D類(lèi)功放稱為數(shù)字功放,雖然效率高但音質(zhì)不及模擬功放。結(jié)合它們的優(yōu)點(diǎn),選擇AB類(lèi)集成芯片功放 TDA7372和音效控制芯片SC7313為功放的核心器件[1]。
系統(tǒng)主要包括單片機(jī)控制模塊和數(shù)字控制模塊兩大類(lèi),如圖1所示。
單片機(jī)控制模塊主要包括液晶電路和按鍵電路。通過(guò)鍵盤(pán)可以控制音量的大小、音源的選擇以及系統(tǒng)設(shè)置等。
數(shù)字控制模塊主要實(shí)現(xiàn)數(shù)字音頻信號(hào)的前期數(shù)字聲場(chǎng)處理,由用戶通過(guò)編程控制音量、音調(diào)、響度等參數(shù),再將處理后的數(shù)字音頻信號(hào)送入后級(jí)音頻功率放大電路進(jìn)行功率放大。
圖1 系統(tǒng)框圖
(1)矩陣鍵盤(pán)模塊
本系統(tǒng)共使用了24個(gè)鍵盤(pán),為減少I(mǎi)/O口的占用,把按鍵排列成4×6矩陣形式,通過(guò)J1與單片機(jī)的P1、P3.0、P3.1共計(jì)10個(gè)I/O口相接,其電路圖如圖2 所示。按鍵功能分別為通道選擇(共有三個(gè)信號(hào)通道可供選擇)、響度、輸入信號(hào)加減、音量加減、低音加減、高音加減、左邊低音加減(FL)、右邊低音加減(FR)、左后方低音加減(RL)、右后方低音加減(RR)、增加(up)、減小(down)、確定(enter)、退出(esc)、開(kāi)關(guān)、靜音。各按鍵功能的實(shí)現(xiàn)通過(guò)軟件編程實(shí)現(xiàn)。
圖2 按鍵電路圖
(2)液晶模塊和存儲(chǔ)模塊
液晶模塊是功放與用戶機(jī)通信的主要界面。芯片采用具有中文顯示功能的LM3033B液晶,與單片機(jī)的P0口進(jìn)行并行的數(shù)據(jù)通信。
存儲(chǔ)模塊采用I2C芯片AT24C02保存功放上次設(shè)置的參數(shù),無(wú)需每次設(shè)置功放的聲場(chǎng)參數(shù)。
(3)單片機(jī)模塊
核心處理器 MCU采用51單片機(jī)89s51,與存儲(chǔ)電路、數(shù)字控制等電路采用 I2C總線來(lái)操作,電路如圖3 所示。單片機(jī)本身不是 I2C總線的芯片,用單片機(jī)的P3.6、P3.7來(lái)模擬I2C總線的SDA、SCL線。單片機(jī)各 I/O口的分配如表1所示。
圖3 單片機(jī)與從機(jī)連線圖
表1 單片機(jī)的I/O口分配
數(shù)字控制部分采用具有音量、音調(diào)、平衡度和響度控制的音頻處理芯片 SC7313。三路立體聲數(shù)字音頻信號(hào)通過(guò)阻容耦合分別從 SC7313的引腳 L1(Pin15)、R1(Pin11)、L2(Pin14)、R2(Pin10)、L3(Pin13)、R3(Pin9)輸入,通過(guò)編程選擇三路中任一路的音頻信號(hào),最小可實(shí)現(xiàn) 1.25dB的音量調(diào)節(jié),范圍在0dB~128dB[2]。經(jīng)SC7313內(nèi)部處理后,以獨(dú)立控制的四聲道方式通過(guò)電容耦合至AB類(lèi)功放TDA7372,被放大后再送入揚(yáng)聲器還原為聲音信號(hào)。功放數(shù)控電路圖見(jiàn)圖4。
圖4 功放數(shù)控電路圖
功放除了能正常放大音頻信號(hào),還具有靜音功能,當(dāng)3腳低電平的時(shí)候,功放無(wú)聲音輸出。還可設(shè)定某個(gè)時(shí)間點(diǎn)讓功放進(jìn)入省電模式(10腳低電平時(shí)進(jìn)入省電模式),自動(dòng)關(guān)機(jī),方便快捷。
系統(tǒng)軟件部分包括I2C總線的相關(guān)讀、寫(xiě)函數(shù),單片機(jī)與各個(gè)I2C器件通信的協(xié)議函數(shù),液晶的讀寫(xiě)函數(shù)以及按鍵的函數(shù),本文主要描述I2C的相關(guān)函數(shù)。其它函數(shù)之間的關(guān)系用系統(tǒng)的總流程圖(圖5)來(lái)表示。程序首先對(duì)所有的器件初始化,液晶再顯示功放的相關(guān)參數(shù)設(shè)置。若功放的設(shè)置不符合用戶的要求,可通過(guò)按鍵來(lái)調(diào)整,也可通過(guò)液晶的菜單方式來(lái)確定是調(diào)整系統(tǒng)參數(shù)還是功放參數(shù)或是時(shí)間參數(shù),最后將調(diào)整好的參數(shù)保存即可。
單片機(jī)沒(méi)有I2C總線,故用兩根I/O口(P3.6口、P3.7口)來(lái)模擬I2C總線,定義位變量:sbit sda=P3^6;sbit scl=P3^7。
I2C總線以字節(jié)位為單位收發(fā)數(shù)據(jù)[4]。每次傳輸?shù)淖止?jié)數(shù)量沒(méi)有嚴(yán)格限制。首先傳輸?shù)氖菙?shù)據(jù)的最高位,最后傳輸?shù)氖亲畹臀?,并且每個(gè)字節(jié)之后還要跟一個(gè)響應(yīng)位成為應(yīng)答位。依據(jù)I2C的數(shù)據(jù)傳輸協(xié)議規(guī)則,編寫(xiě)了對(duì)應(yīng)的讀函數(shù)uchar read_byte()、寫(xiě)子函數(shù)void write_byte(uchar dat)。
由I2C總線讀寫(xiě)數(shù)據(jù)的傳輸協(xié)議,定義了初始化函數(shù)void init(),開(kāi)始函數(shù)void start(),停止子函數(shù)void stop()。
圖5 系統(tǒng)總流程圖
具體初始化函數(shù)內(nèi)容編寫(xiě)如下:
時(shí)鐘芯片PCF8563、音頻處理芯片PT2313、存儲(chǔ)芯片AT24C02均是I2C器件的從機(jī),為了在呼叫時(shí)確定某個(gè)器件,依據(jù)電路圖定義三個(gè)從機(jī)的地址分別如下:
#define PCF8563 0xa3;
#define AT24C02 0xa1;
#define pt2313_init_code 0xaa//pt2313 初始化特征碼。
再依據(jù)I2C協(xié)議的時(shí)序定義單片機(jī)與PT2313、PCF8563以及AT24C02之間讀寫(xiě)的字節(jié)的子函數(shù)。
給pt2313寫(xiě)一個(gè)字節(jié)的函數(shù):
void write_pt2313(uchar dat)
pt2313設(shè)置子函數(shù):
void pt2313_set(uchar key_code)
初始化子函數(shù):
void pt2313_init(void)
//將pt2313中的參數(shù)從AT24C02中讀出。
給選定的 I2C器件中的某個(gè)存儲(chǔ)單元寫(xiě)一個(gè)字節(jié)數(shù)據(jù)的函數(shù):
void write_iic()
從選定的I2C器件讀一個(gè)字節(jié)數(shù)據(jù)的函數(shù):
Uchar read_iic()
實(shí)驗(yàn)證明,該數(shù)控功放的聲場(chǎng)參數(shù)(音量、音調(diào)、響度)可以定量調(diào)節(jié),使用便捷,控制可靠,音響效果較好,其功效在同類(lèi)產(chǎn)品中性價(jià)比較高,值得在市場(chǎng)上推廣應(yīng)用。
[1]沙占友,馬洪濤.純數(shù)字音頻立體聲功率放大器設(shè)計(jì)[J].電聲技術(shù),2003(4):29-31.
[2]粟慧龍,韓雪.基于AT89S52智能家居背景音樂(lè)控制器的設(shè)計(jì)與實(shí)現(xiàn).科技信息[J],2011(2):111-112.
[3]謝世武.I2c總線及其在視聽(tīng)系統(tǒng)中應(yīng)用電腦知識(shí)與技術(shù)[J].電腦知識(shí)與技術(shù),2004(23):58-60.