曹龍
北方民族大學(xué)電氣信息工程學(xué)院
?
基于STM32的學(xué)習(xí)型紅外收發(fā)系統(tǒng)的設(shè)計(jì)與研究
曹龍
北方民族大學(xué)電氣信息工程學(xué)院
隨著人們生活水平的提高,家庭中各種家電設(shè)備也越來(lái)越多,遙控器的數(shù)量也越來(lái)越多,給家庭生活帶來(lái)了一些不便。本文設(shè)計(jì)了一種基于STM32的學(xué)習(xí)型紅外收發(fā)系統(tǒng),以STM32F103C8T6單片機(jī)為核心,結(jié)合深圳宏芯達(dá)科技有限公司的HXD019智能遙控IC,通過(guò)上位機(jī)的控制,實(shí)現(xiàn)對(duì)紅外遙控信號(hào)進(jìn)行學(xué)習(xí)和發(fā)射,從而方便人們的生活。
STM32 紅外收發(fā) HXD019
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,樣式繁多的家電設(shè)備正成為人們的生活必需品,隨之而來(lái)的遙控設(shè)備也越來(lái)越多,但是繁多的遙控器也給家庭生活帶來(lái)了一些不便,本文設(shè)計(jì)出一種基于STM32的學(xué)習(xí)型紅外收發(fā)系統(tǒng),為解決該問(wèn)題提供了新思路。
學(xué)習(xí)型紅外收發(fā)系統(tǒng)主要包括STM32紅外學(xué)習(xí)收發(fā)控制部分和上位機(jī)部分,上位機(jī)通過(guò)串口對(duì)STM32紅外學(xué)習(xí)收發(fā)控制部分發(fā)送指令,STM32系統(tǒng)解析上位機(jī)的命令,通過(guò)HXD019完成對(duì)紅外家電遙控編碼的學(xué)習(xí),在完成編碼學(xué)習(xí)后,即可通過(guò)上位機(jī)直接控制紅外家用電器,替代遙控器控制。下圖1是系統(tǒng)總體框圖。
圖1 系統(tǒng)總體框圖
3.1STM32最小系統(tǒng)
系統(tǒng)主控芯片采用意法半導(dǎo)體公司推出的32位RISC(精簡(jiǎn)指令集計(jì)算機(jī))微控制器STM32F103C8T6,其使用高性能的ARM Cortex-M3內(nèi)核,工作頻率為72MHz。STM32最小系統(tǒng)主要包括晶振時(shí)鐘電路,復(fù)位電路,調(diào)試接口,串行通信接口等,其主要完成對(duì)紅外編碼的數(shù)據(jù)的處理分析,同時(shí)接收上位機(jī)的信息,解析指令,控制紅外發(fā)射模塊將對(duì)應(yīng)的編碼通過(guò)紅外發(fā)射管輸出。
3.2紅外收發(fā)模塊
紅外收發(fā)模塊核心芯片采用深圳宏芯達(dá)科技有限公司的HXD019智能遙控IC,其集多種遙控編碼協(xié)議于一體,具有學(xué)習(xí)各種紅外編碼格式、紅外協(xié)議的功能。學(xué)習(xí)型紅外收發(fā)模塊采用I2C協(xié)議與MCU進(jìn)行數(shù)據(jù)交互,其中PA0_SCL引腳和PA0_SDA引腳分別為I2C總線的時(shí)鐘線和數(shù)據(jù)線;BUSY引腳用于檢測(cè)紅外學(xué)習(xí)過(guò)程是否結(jié)束;紅外收發(fā)部分采用收發(fā)一體式紅外二極管,與HXD019的IROUT引腳連接,紅外載頻信號(hào)范圍為16-80KHZ,可完成對(duì)市場(chǎng)上常見(jiàn)紅外家電遙控編碼的學(xué)習(xí)。
紅外收發(fā)模塊軟件設(shè)計(jì)主要包括紅外學(xué)習(xí)過(guò)程和紅外發(fā)射過(guò)程。這里以空調(diào)啟動(dòng)紅外信號(hào)為例介紹紅外學(xué)習(xí)和發(fā)射的過(guò)程:
4.1紅外學(xué)習(xí)過(guò)程
①進(jìn)入上位機(jī)界面的按鈕學(xué)習(xí)模式,單擊上位機(jī)界面的“空調(diào)啟動(dòng)”按鈕,上位機(jī)將按照一定的幀格式,通過(guò)串口下發(fā)紅外學(xué)習(xí)命令;
②STM32的學(xué)習(xí)型紅外收發(fā)系統(tǒng)解析收到的紅外學(xué)習(xí)命令,調(diào)用IR_Learn_Start()函數(shù),啟動(dòng)紅外按鈕學(xué)習(xí)進(jìn)程,BUSY引腳設(shè)置為低電平,此時(shí)紅外學(xué)習(xí)指示燈進(jìn)入閃爍狀態(tài);
③用戶按下空調(diào)“啟動(dòng)按鈕”,對(duì)準(zhǔn)系統(tǒng)的紅外二極管,學(xué)習(xí)紅外編碼信號(hào);
④若BUSY引腳為高電平則表示HXD019模塊已完成紅外編碼學(xué)習(xí),調(diào)用Get_Learn_Data(unsigned char*learn_data_ out)函數(shù)讀取112字節(jié)的紅外編碼;
⑤將讀取到的紅外編碼按照一定的幀格式進(jìn)行打包,通過(guò)串口將數(shù)據(jù)傳送至上位機(jī);
⑥上位機(jī)收到紅外編碼數(shù)據(jù)解析存儲(chǔ),完成整個(gè)“空調(diào)啟動(dòng)”按鍵的學(xué)習(xí)過(guò)程。
4.2紅外發(fā)射過(guò)程
①進(jìn)入上位機(jī)紅外設(shè)備調(diào)控界面,單擊“空調(diào)啟動(dòng)”按鈕,上位機(jī)將“空調(diào)啟動(dòng)”按鈕所對(duì)應(yīng)的紅外編碼進(jìn)行組幀,通過(guò)串口下發(fā)紅外發(fā)射命令;
②STM32的學(xué)習(xí)型紅外收發(fā)系統(tǒng)解析收到的紅外發(fā)送命令,提取紅外控制編碼,調(diào)用Send_IR_Data(char* dat, UINT8 count)函數(shù)向HXD019模塊發(fā)送紅外編碼,紅外信號(hào)通過(guò)紅外二極管控制空調(diào)啟動(dòng);
③紅外發(fā)射過(guò)程結(jié)束。
經(jīng)過(guò)大量實(shí)際測(cè)試,本文提供的一種基于STM32的學(xué)習(xí)型紅外收發(fā)系統(tǒng)可以完成一般紅外家電設(shè)備的紅外遙控編碼的學(xué)習(xí),通過(guò)上位機(jī)可以實(shí)現(xiàn)對(duì)不同家電的控制,有效的解決了人們生活中頻繁更換遙控器的麻煩,具有一定的實(shí)用型,為現(xiàn)代家居生活提供了便捷的條件。
[1]肖旸,劉昌屏.基于AT89C52的學(xué)習(xí)型紅外遙控器的設(shè)計(jì)[J].湖北第二師范學(xué)院學(xué)報(bào),2011,28(2):93-96
[2]唐寶壽.學(xué)習(xí)型紅外遙控器的實(shí)現(xiàn)[J].信息通信,2011(4):189-190