李和平
(婁底職業(yè)技術(shù)學(xué)院,湖南婁底 417000)
一種基于STM32的嵌入式遙控器設(shè)計(jì)
李和平
(婁底職業(yè)技術(shù)學(xué)院,湖南婁底 417000)
提出了一種基于STM32的低功耗、高性能的嵌入式學(xué)習(xí)型遙控器解決方案,闡述了系統(tǒng)的工作原理及其軟硬件設(shè)計(jì).該遙控器解決了傳統(tǒng)單片機(jī)因時(shí)鐘頻率低而無(wú)法對(duì)載波頻率進(jìn)行測(cè)量的瓶頸,實(shí)現(xiàn)了對(duì)任何一款普通遙控器的按鍵編碼學(xué)習(xí),并且利用STM32豐富的內(nèi)部資源,實(shí)現(xiàn)一遙控器控制多設(shè)備的一種集成化智能遙控,真正地完善了嵌入式學(xué)習(xí)型遙控器的智能化功能.
uClinux;STM32;遙控器;ARM-CORTEX-M3
目前國(guó)內(nèi)學(xué)習(xí)型遙控器大部分采用復(fù)制遙控器紅外波形的思想,方法很多.針對(duì)目前市面上已有的學(xué)習(xí)型遙控器都只能對(duì)一些特定的紅外遙控編碼進(jìn)行學(xué)習(xí)的情況,設(shè)計(jì)了一種基于STM32的紅外學(xué)習(xí)型遙控器,該遙控器把載波頻率測(cè)量、紅外信號(hào)解調(diào)、脈寬測(cè)量、調(diào)制發(fā)送IP核集中到STM32(ARM)器件上,極大地簡(jiǎn)化外圍硬件電路,并且利用uClinux軟核CPU的32位處理器,可以對(duì)脈寬進(jìn)行精確測(cè)量,同時(shí)提高處理速度,能夠精確地對(duì)載波頻率進(jìn)行測(cè)量,將原始的紅外信號(hào)進(jìn)行最大程度上無(wú)失真還原.該學(xué)習(xí)型遙控器能成功地學(xué)習(xí)、記憶和再現(xiàn)各種紅外遙控編碼,真正地完善了學(xué)習(xí)型遙控器的學(xué)習(xí)功能.
系統(tǒng)主要由uClinux(ARM-CORTEX-M3)處理器、輸入輸出I/O口、紅外接收電路、按鍵和顯示電路、紅外發(fā)送調(diào)制邏輯電路、中斷控制器等組成,如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)上電后,首先進(jìn)行初始化,然后進(jìn)入低功耗模式等待按鍵中斷進(jìn)行相對(duì)應(yīng)操作.當(dāng)有按鍵按下時(shí),通過(guò)I/O口產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),此時(shí)喚醒系統(tǒng),并對(duì)按鍵進(jìn)行相對(duì)應(yīng)的操作,如一段時(shí)間后對(duì)系統(tǒng)沒(méi)有做任何操作,將繼續(xù)進(jìn)入低功耗模式.如學(xué)習(xí)功能鍵按下,“學(xué)習(xí)”指示燈亮,表示系統(tǒng)被喚醒并進(jìn)入了學(xué)習(xí)狀態(tài),用戶只需要將家電遙控器對(duì)準(zhǔn)學(xué)習(xí)型遙控器的接收窗口,然后把想要學(xué)習(xí)的家電遙控器按鍵按下并在學(xué)習(xí)型遙控器上按下相對(duì)應(yīng)的按鍵即可.此時(shí)“學(xué)習(xí)”指示燈會(huì)閃爍,等到變成常亮,表示該按鍵學(xué)習(xí)完成,遙控器將學(xué)習(xí)到的數(shù)據(jù)對(duì)應(yīng)記錄到剛按下的功能鍵下,同時(shí)將記錄在SRAM當(dāng)中的數(shù)據(jù)存入STM32的FLASH中.學(xué)習(xí)操作完成后,用戶按一下學(xué)習(xí)型遙控器的“學(xué)習(xí)”功能鍵,系統(tǒng)將退出學(xué)習(xí)狀態(tài).當(dāng)用戶需要進(jìn)行實(shí)際遙控操作時(shí),只需要根據(jù)自己的功能需求,按一下學(xué)習(xí)型遙控器的指定功能鍵,系統(tǒng)將從FLASH當(dāng)中將對(duì)應(yīng)功能鍵的數(shù)據(jù)讀出,并加載等精度載波調(diào)制,啟動(dòng)高速DMA控制器,通過(guò)高分辨率的PWM端口將紅外信號(hào)發(fā)送到紅外發(fā)送電路,完成紅外信號(hào)的還原,實(shí)現(xiàn)此次遙控操作.
2.1 主控制電路設(shè)計(jì)
主控制電路(圖2)主要以STM32系列STM32F107VB(LQFP100)器件為載體,通過(guò)uClinux Cortex-M3處理器平臺(tái),運(yùn)用C語(yǔ)言設(shè)計(jì)等精度測(cè)量載波頻率、紅外信號(hào)解調(diào)、紅外編碼脈寬測(cè)量和紅外發(fā)送調(diào)制邏輯電路,以實(shí)現(xiàn)載波的精確測(cè)量、紅外信號(hào)解調(diào)、脈寬測(cè)量和調(diào)制等功能.復(fù)位電路采用專用看門狗芯片CAT1025以避免電路的死循環(huán),同時(shí)也可以通過(guò)手動(dòng)按下復(fù)位鍵使系統(tǒng)重新啟動(dòng).主控電路時(shí)鐘頻率通過(guò)PLL倍頻到64 MHz.STM32芯片內(nèi)部具有大容量的FLASH和SRAM,所以學(xué)習(xí)到的紅外編碼數(shù)據(jù)利用內(nèi)部資源作儲(chǔ)存器,不必在硬件上增加額外的FLASH存儲(chǔ)芯片和SRAM芯片,降低了成本.
圖2 主控制電路
2.2 外圍硬件電路設(shè)計(jì)
2.2.1 按鍵與指示電路 結(jié)合STM32多I/O口的優(yōu)勢(shì),本設(shè)計(jì)采用獨(dú)立按鍵方式.當(dāng)按鍵按下時(shí),STM32對(duì)應(yīng)的I/O口會(huì)檢測(cè)到低電平,按鍵彈起時(shí),STM32對(duì)應(yīng)的I/O口會(huì)檢測(cè)到高電平,從而STM32實(shí)現(xiàn)按鍵對(duì)應(yīng)的操作.這樣設(shè)計(jì)簡(jiǎn)化了軟件程序,多按鍵操作時(shí)也不會(huì)相互不沖突.對(duì)于指示電路,采用多個(gè)多色的發(fā)光二極管組合的形式來(lái)指示不同的狀態(tài)或控制不同的家用電器.當(dāng)其中的1個(gè)指示燈以指定顏色閃爍時(shí),表示正在學(xué)習(xí)對(duì)應(yīng)的家電遙控器或發(fā)送對(duì)應(yīng)的家電遙控信號(hào),顯示非常的直觀,同時(shí)節(jié)約了“指示”成本.
圖3 紅外發(fā)送和接收電路
2.2.2 紅外接收和發(fā)送電路 紅外發(fā)射、接受頭采用的是集成對(duì)管.電路采用的是傳統(tǒng)的紅外發(fā)射接受電路.整個(gè)電路都是以常用的三極管(9014)、電阻、電容和紅外對(duì)管(紅外二級(jí)管)組成,通過(guò)簡(jiǎn)單的信號(hào)過(guò)濾,直接輸入到STM32的I/O上.信號(hào)的處理工作全部由資源豐富的STM32來(lái)處理,利用內(nèi)部資源的邏輯電路結(jié)合軟件對(duì)信號(hào)進(jìn)行調(diào)制與解調(diào),來(lái)實(shí)現(xiàn)對(duì)紅外信號(hào)的發(fā)送與接收(圖3).
當(dāng)系統(tǒng)上電后進(jìn)入等待狀態(tài).當(dāng)檢測(cè)到學(xué)習(xí)鍵按下時(shí)候,系統(tǒng)進(jìn)入學(xué)習(xí)狀態(tài).在學(xué)習(xí)過(guò)程中,ARMCORTEX-M3處理器對(duì)按鍵與信號(hào)進(jìn)行多次檢測(cè)與測(cè)量,取多次測(cè)量結(jié)果,測(cè)量完成后,對(duì)測(cè)量結(jié)果進(jìn)行分析取中間值,作為該功能鍵的數(shù)據(jù)信號(hào),并儲(chǔ)存到指定的儲(chǔ)存區(qū)域,完成本次學(xué)習(xí)過(guò)程(圖4).還原信號(hào)時(shí),調(diào)用儲(chǔ)存器內(nèi)相對(duì)應(yīng)的數(shù)據(jù),處理器寫入發(fā)送調(diào)制控制字,發(fā)送完成后返回等待狀態(tài),等待下一次發(fā)送.發(fā)送信號(hào)流程如圖5所示.
圖4 遙控器學(xué)習(xí)流程
圖5 遙控器發(fā)送信號(hào)流程
實(shí)驗(yàn)表明,該嵌入式遙控器解決了傳統(tǒng)單片機(jī)因時(shí)鐘頻率低而無(wú)法對(duì)載波頻率進(jìn)行準(zhǔn)確測(cè)量的問(wèn)題,實(shí)現(xiàn)了對(duì)任何一款普通遙控器的按鍵編碼學(xué)習(xí),并且能學(xué)習(xí)多個(gè)遙控器,使用方便,完全具備自學(xué)習(xí)功能,從而實(shí)現(xiàn)了對(duì)多個(gè)紅外遙控裝置的統(tǒng)一管理.
[1] 陳天水,秦 文.基于ATmega128單片機(jī)的學(xué)習(xí)型紅外遙控器設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2011(30):26-28.
[2] 韋祿民,盧丹萍,盧勇威.基于ATmega16的萬(wàn)能型遙控器設(shè)計(jì)[J].低壓電器,2009(8):23-26.
[3] 陳祖爵,王建毅.智能型紅外遙控器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(2):305-307.
[4] 徐 志,何明華.一類基于軟件載波的學(xué)習(xí)型遙控器的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2009(6):36-38.
[5] 梅運(yùn)華.基于uClinux的無(wú)線監(jiān)控終端的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2009(2):56-58.
Design of Embedded Remote Controller Based on STM32
LI He-ping
(Loudi Vocational &Technical College,Loudi 417000,Hunan China)
This paper proposes a solution for a learning-oriented remote controller based on uClinux system and with low consumption and high efficiency.The working principle of the system and the design of the hardware and software are illustrated.This remote controller solves the bottleneck that because of the SCM’s low frequency of clock,it can’t measure the carrier frequency,realizes the key coding learning of any common remote control,and really achieves the learning function of a learning-oriented remote controller.
uClinux;STM32;remote controller;ARM-CORTEX-M3
book=66,ebook=158
TP368.1
A
10.3969/j.issn.1007-2985.2012.04.014
(責(zé)任編輯 陳炳權(quán))
1007-2985(2012)04-0066-03
2012-04-11
湖南省科技計(jì)劃資助項(xiàng)目(2011SK3069)
李和平(1971-),男,湖南漣源人,婁底職業(yè)技術(shù)學(xué)院副教授,高級(jí)技師,碩士,主要從事嵌入式系統(tǒng)及其應(yīng)用研究.