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