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