摘 要: 在紅外遙控設備的使用中,設備的穩(wěn)定性和調節(jié)平滑性是最基本而最重要的指標。根據NEC紅外協(xié)議,設計了一種基于STM32F103C8單片機的紅外可調的功放系統(tǒng)。此系統(tǒng)通過STM32F103C8的輸入端口捕獲紅外遙控器發(fā)射的脈沖信號,用其強大的定時器對遙控編碼進行解碼,判斷出哪個功能鍵被按下,根據所按下的功能鍵驅動單片機的GPIO口輸出控制信號來調節(jié)數(shù)控電位器X9313,實現(xiàn)功放輸入電壓的調節(jié),從而平滑地調節(jié)音量的增加和減少。通過測試,功放系統(tǒng)可通過紅外遙控器進行有效的、平滑穩(wěn)定的音量調節(jié)。
關鍵詞: STM32F103C8; 紅外; X9313; PAM8403
隨著音視頻領域數(shù)字化大浪潮的發(fā)展,傳統(tǒng)的按鈕調節(jié)型音量控制器漸漸地失去主導地位,高效、平穩(wěn)的紅外遙控倍受用戶喜愛。紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強、信息傳輸可靠、功耗低、成本低、易實現(xiàn)等顯著優(yōu)點,廣泛應用于諸多電子設備特別是家用電器,并越來越多地應用到計算機系統(tǒng)中。
常見的D類功率放大器采用51單片機作為主控芯片,本文使用ST公司的32位ARM單片機,其主頻可以達到72 MHz,能快速高效地對紅外進行解碼,調節(jié)音量的大小。STM32F103C8的通用定時器是一個通過可編程預分頻器驅動的16 bit自動裝載計數(shù)器,它適用于多種場合,包括測量輸入信號的脈沖長度(輸入捕獲)或者產生輸出波形(輸出比較和PWM)[1]。
1 STM32F103C8單片機簡述
本系統(tǒng)選用意法半導體STM32F103C8芯片為主控芯片,這是一款以ARM Cortex-M3為內核的32 bit 芯片,時鐘頻率為72 MHz,從而區(qū)別于功能簡單的8 bit 單片機,專門應用于對性能要求較高、成本要求較低以及低功耗的場合[2]。具有運行速度高、處理能力強、外設界面豐富、價格低廉和控制、運算性能很強等特點。其具體性能指標如下:(1)最高工作頻率為72 MHz;工作溫度范圍:-40℃~+85℃;寬電壓供電:2.0 V~3.6 V;(2)128 KB的閃存和16 KB的SRAM;(3)12位16通道A/D轉換器,具有雙采樣和保持功能,轉換時間最短1 s。(4)3個16位通用定時器,每個定時器有多達4個通道用于輸入捕獲、輸出比較PWM或脈沖輸出[3]。本系統(tǒng)用到STM32F103C8的通用定時器2的輸入捕獲模式對紅外信號進行解碼,與傳統(tǒng)的單片機相比省去了同時要打開外部中斷和定時器中斷的繁瑣過程,節(jié)約了資源。
2 紅外簡介
紅外線遙控沒有無線電遙控那樣穿過障礙物去控制被控對象的能力,因此在設計紅外線遙控器時,不需要像無線電遙控器那樣每套(發(fā)射器和接收器)有不同的遙控頻率或編碼(否則可能隔墻控制或干擾鄰居的家用電器)。同時,同類產品的紅外線遙控器可以有相同的編碼或遙控頻率,且不會出現(xiàn)遙控信號“串門”的情況,這使得紅外遙控得以大批量生產,在家電設備上得到了普遍應用。
紅外遙控的編碼一般使用NEC Protocol的PWM(脈沖寬度調制)和NXP RC-5 Protocol的PPM(脈沖位置調制)[4]。本系統(tǒng)中遙控器使用NEC協(xié)議,其特征如下:
(1) 8 bit地址和8 bit指令長度;
(2) 命令和地址傳輸2次,確??煽啃?;
(3) 采用PWM脈沖位置調制,根據發(fā)射紅外載波的占空比來區(qū)分代表“0”和“1”;
(4) 載波頻率為38 kHz;
(5) 位時間為1.125 ms或2.25 ms。
NEC碼的位定義:一個脈沖對應560μs的連續(xù)載波,一個邏輯1傳輸需要2.25 ms(560 μs脈沖+1 680 μs低電平),一個邏輯0的傳輸需要1.125 ms(560μs脈沖+560 μs低電平)。遙控器接收頭在沒有脈沖時為高電平,收到脈沖后變?yōu)榈碗娖?,這樣,在接收頭端收到的信號為:邏輯1時間為560 μs(低)+1 680 μs(高),邏輯0時間為560 μs(低)+560μs(高)。
NEC遙控指令的數(shù)據格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼由一個9 ms的低電平和一個4.5 ms的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是8 bit數(shù)據格式。按照低位在前、高位在后的順序發(fā)送。傳輸時采用反碼傳輸,增加傳輸?shù)目煽啃?。遙控器的任意一按鍵被按下時,從紅外接收頭端收到的波形如圖1所示。
3 系統(tǒng)硬件設計
基于STM32F103C8的功放系統(tǒng)硬件部分主要由STM32最小系統(tǒng)、紅外接收電路、音頻調節(jié)電路、功放電路組成。硬件結構框圖如圖2所示。
3.1 嵌入式微處理器單元
主控芯片STM32F103C8、電源、復位電路、晶振電路、J-LINK調試界面構成STM32最小系統(tǒng)。STM32F103C8內嵌經出廠調校的8 MHz的RC振蕩器,2.0~3.6 V供電,能使系統(tǒng)的工作頻率為72 MHz。外部接有按鍵,10 kΩ的電阻,0.1 μF的電容組成復位電路。
3.2 紅外信號的接收和處理
紅外接收電路采用Vishay Semiconductor GmbH公司的HS0038紅外一體化接收頭,接收紅外信號頻率為38 kHz,周期約26 μs,同時能對信號進行放大、檢波、整形,得到TTL 電平的編碼信號。3個管腳分別是地、+5 V電源、解調信號輸出端。為了消除干擾,對紅外接收頭的輸出信號接到74HC14進行兩次反相后接入STM32的PA6腳,目的是為了得到理想平穩(wěn)的、有規(guī)則的高低電平波形,以便于STM32的解碼。其紅外信號接收、處理電路如圖3所示。
3.3 音量調節(jié)電路
美國XICOR公司研制的X9313是一種非易失性數(shù)控電位器,是理想的可調電阻器。與機械式電位器相比有以下優(yōu)點:調節(jié)精度高,不易受振動、污染等影響,無機械磨損,易于用單片機或邏輯電路控制,體積小巧易于安裝,適用于音量、燈光控制等場合[5]。音頻信號的左聲道分別經過10 k?贅電阻和10 ?滋F電容后接入數(shù)控電位器X9313的高端Rh端,STM32F103C8的GPIOA的PA4口接X9313的“增加”控制引腳INC,PA5口接X9313的升/降控制輸入腳U/D, 數(shù)控電位器的低端RL接地, 滑動端RW經過10 ?滋F的極性電容后接入PAM8403模塊的左聲道輸入引腳LIN。右聲道同樣經過另一數(shù)控電位器后接入PAM8403模塊的右聲道輸入引腳RIN。功放電路部分采用由PAM公司生產的PAM8403和部分器件組成數(shù)字功放板模塊。PAM8403立體聲D類音頻功率放大器能夠以D類放大器的效率提供AB類放大器的性能,能夠以高于85%的效率提供3 W功率。音量調節(jié)電路圖如圖4所示。
系統(tǒng)上電后進行系統(tǒng)初始化,包括:使能用于輸入捕獲的定時器時鐘、輸入捕獲和輸出的I/O引腳時鐘;初始化GPIO,PA1為上拉輸入,PA2~PA7為推挽輸出;定義定時器輸入捕獲結構體,進行各參數(shù)設置;設置定時器輸入捕獲通道,捕獲下降沿,設置采樣分頻系數(shù),濾波機制等。數(shù)控電位器X9313的片選輸入腳CS給低電平,器件被選中,在音頻信號接入的情況下等待紅外遙控器的按鍵信號。紅外接收頭的信號輸出端經反相器74HC14兩次反相后接入STM32的PA6腳,當有鍵按下時PA6腳電平由高電平變?yōu)榈碗娖?,觸發(fā)定時器2中斷進行紅外中斷解碼。如圖6所示STM32輸入捕獲紅外解碼流程,PA6腳由高電平變?yōu)榈碗娖綍r,觸發(fā)中斷判斷是否接收到引導碼,當引導碼接收成功后接著接收地址碼、地址反碼、數(shù)據碼、數(shù)據反碼,32 bit數(shù)據接收完后判斷數(shù)據碼和數(shù)據反碼之和是否為0FFH,之和等于0FFH則此次數(shù)據有效準備下次數(shù)據的接收,否則數(shù)據無效進行下次數(shù)據的接收。
當紅外遙控有鍵按下時,STM32輸入捕獲紅外解碼出“1”、“0”對應的程序代碼如下所示:
if((IR_PluseSub>900)&&(IR_PluseSub<1300))
{
Im[m/8]=Im[m/8]>>1|0x80;
m++;
}
if((IR_PluseSub>450)&&(IR_PluseSub<900))
{
Im[m/8]=Im[m/8]>>1;
m++;
}
文中建立的紅外遙控音量可調系統(tǒng)使用功能強大的32位STM32F103C8單片機,可實現(xiàn)音量的平穩(wěn)、有效的調節(jié),對于智能化家居系統(tǒng)中多個遙控家電設備共享一個紅外遙控器的實現(xiàn)能提供一定的參考價值。該系統(tǒng)紅外遙控將來可以直接利用STM32的內部定時器產生38 kHz的紅外載波,通過學習目前市場上各種紅外遙控器的紅外編碼即可成為萬能遙控器[6],為智能化家居的發(fā)展帶來一定的推進作用。
參考文獻
[1] 黃智偉,王兵,朱衛(wèi)華. STM32 32位ARM微控制器應用設計與實踐[M].北京:北京航空航天大學出版社,2012.
[2] 許雪楠,梁晉濤,黃邦宇.基于STM32的健康一體機控制系統(tǒng)的設計[J].微型機與應用,2013,32(16):20-22.
[3] STMicroelectronics.STM32F103xB STM32F103x8 data sheet [EB/OL].(2009)[2013].http://www.st.com.
[4] 劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011.
[5] 李學海.非易失性數(shù)控電位器E2POT-X9313[J].電子制作,1997(8):12-13.
[6] 邵振,章勇,劉培培.應用于智能家居中的紅外學習型紅外模塊設計[J]. 通信市場,2011(4):7-8,27.