基于STM32F103ZET6的紅外遙控盒設計
作者簡介:胡方猛(1987—),初級工程師職稱,硬件測試工程師,主要從事物聯網產品硬件測試、自動化測試設計以及測試儀器開發工作。E-mail: woanzf@163.com。
本文引用地址:http://www.104case.com/article/202111/429667.htm0 引言
隨著社會經濟、科技的發展和人民生活水平的持續提高,人們對于液晶電視的需求也在日益擴大,同時對于品質的要求也越來越高。目前液晶電視生產商出廠前的功能測試主要通過人工遙控進行,效率較低,而且受人為因素影響,易出現質量問題。
為了提高生產測試效率和品控質量,本文設計了一款基于STM32F103ZET6 的遙控盒,遙控碼保存于SD卡中,方便編輯保存,微控制器通過FATFS 文件系統讀取SD 卡中的遙控碼[1],解析后通過紅外遙控頭發射出去。紅外遙控抗干擾能力強,成本低,多數家電控制采用此種方式[2-3]。本系統支持遙控碼單碼和多碼發送模式,同時支持多碼一鍵連續發送,而且采用彩色TFT-LCD 液晶模組[4],當前發送的遙控碼功能可以實時顯示,可為液晶電視等家電生產商提高生產測試效率和品質控制帶來很大益處。
1 系統總體設計概述
1.1 硬件組成電路框圖
紅外遙控盒主要由電源模塊、MCU 控制單元、彩色TFT-LCD 液晶顯示單元、SD 讀卡單元、遙控碼段選擇單元、串口通信單元、設備聯動單元等幾個部分組成,其總體設計框圖如圖1 所示。
圖1 系統總體設計框圖
1.2 系統工作原理及主要功能介紹
MCU 主控單元首先讀取當前遙控碼的碼段并顯示于彩色TFT-LCD。本系統通過碼段選擇單元可實現16個碼段,每個碼段可以實現單個遙控碼發送或連續1 ~ 8個紅外遙控碼同時發送。碼段選擇完成后,遙控碼發射按鍵將SD 存儲卡中對應遙控碼段的遙控碼通過IR 紅外發射單元發送出去,同時彩色TFT-LCD 顯示屏會在固定位置實時顯示當前發送的遙控碼。本系統目前支持NEC 和SHARP 的紅外遙控碼協議,通過擴展編程,可以實現其他協議的遙控碼。同時,通過設備聯動單元,紅外遙控盒可與生產線自動化設備,如PLC 控制柜,實現通信、控制,從而達到設備聯動、自動化測試的目的。而且用戶可以根據需求,對SD 存儲卡內的遙控碼任意裁剪或組合,靈活、便捷。
2 系統硬件電路設計
2.1 電源管理電路
本系統通過外部直流12 V 提供電源輸入,然后通過DC-DC 轉換將直流12 V 降為直流5 V,為TFT-LCD 液晶顯示模塊和USB 轉串口芯片供電,之后利用LDO 將直流5 V 降為直流3.3 V,為MCU 主控單元及外圍設備提供電源。詳細電路如圖2 所示。
圖2 電源轉換模塊電路圖
2.2 MCU主控單元電路
STM32F103ZET6 微控制器使用高性能的ARM Cortex-M3 內核。默認工作主頻為72 MHz,內置高速存儲器,具有豐富的增強型I/O 端口和外設,不僅支持JTAG調試,還支持SWD 調試方式。該芯片具有64 kB SRAM、512 kB FLASH、2 個基本定時器、4 個通用定時器、2 個高級定時器、2 個DMA 控制器(共12 個通道)、3 個SPI、2個IIC、5 個串口、1 個USB、1個CAN、3 個12 位ADC、1 個12 位DAC、1 個SDIO 接口、1個FSMC 接口以及112 個通用IO,強大的功能和豐富的外設接口完全滿足本系統的實時控制要求。詳細如圖3 所示。
圖3 主控單元電路圖
2.3 彩色TFT-LCD顯示電路
MCU 主控單元通過FSMC外設接口控制彩色TFT-LCD液晶屏顯示。詳細如圖4 所示。
圖4 彩色TFT-LCD顯示屏接口電路
TFT-LCD 即薄膜晶體管液晶顯示器,其英文全稱為:thin film transistor-liquid crystal display。TFT-LCD與無源TN-LCD、STN-LCD 的簡單矩陣不同,它在液晶顯示屏的每一個像素上都有一個薄膜晶體管[5],每個像素都可以通過點脈沖直接控制,每個節點都相對獨立,并且可以連續控制,這樣不僅提高了顯示屏的反應速度,同時可以精確控制顯示色階,所以TFT 液晶的色彩更逼真。
FSMC,即靈活的靜態存儲控制器,能夠與同步或異步存儲器和16 位PC 存儲器卡連接。本系統采用的STM32F103ZET6 芯片自身帶有FSMC 接口,該接口支持SRAM、NAND FLASH、NOR FLASH 和PSRAM 等存儲器。本系統通過FSMC 將TFT-LCD 當作SRAM使用,可以有效驅動TFT-LCD,顯示當前系統運行狀態和遙控碼。
2.4 讀SD卡單元電路
MCU 主控單元通過FATFS 文件系統讀取SD 卡中.txt 格式文件,SD 卡可以隨時從遙控盒取出,通過讀卡器編輯保存其中的遙控碼。詳細電路如圖5 所示。
圖5 讀SD單元電路圖
.txt 文本文件中存儲的是十六進制遙控碼,程序將文件中以ASCII 存儲的十六進制遙控碼,通過計算轉換成相應的遙控碼協議,然后通過紅外遙控頭以二進制遙控碼時序發送出去。
2.5 IR紅外發射單元電路
本系統紅外發射單元采用微控制器PF12引腳驅動,如圖6。
圖6 IR紅外發射單元電路圖
圖7 遙控碼發送時序
紅外線的光譜位于紅色光之外,波長是(0.76 ~ 1.5)μm。紅外線通過紅外發光二極管(LED)發射出去,紅外發光二極管的內部構造與普通發光二極管基本相同,但材料與普通發光二極管不同[6],在紅外發射管兩端施加一定電壓時,它即可發出紅外線。紅外遙控是利用紅外線進行傳遞信息的一種控制方式,紅外遙控抗干擾能力強,電路簡單,容易編碼和解碼,而且功耗小,成本低,幾乎適用于所有家電的控制。紅外遙控調制載波頻率一般在(30 ~ 60)kHz,大多數使用的是38 kHz,占空比1/3 的方波。
本系統在遙控發射開始按鍵按下以后,會查詢系統當前設置的是哪一遙控碼段,即實現的遙控功能。當確認碼段后,系統會判斷當前遙控碼是單碼模式發送還是多碼模式發送,多碼模式時,還會判斷是否為一鍵連續發送。微控制器定時器3 通過定時溢出時中斷程序使紅外管接口電平反轉一次,實現38 kHz 調制載波,同時通過控制參數設定時延來實現邏輯“1”和邏輯“0”。
本系統采用的是SHARP 紅外遙控協議:Sharp 遙控碼的位定義:1 個脈沖對應320 μs 的連續載波,1 個邏輯“1”傳輸需要2 ms,1 個邏輯“0”的傳輸需要1 ms(320 μs 脈沖+680 μs 低電平)。15 位遙控碼由5 位系統碼、8 位數據碼和2 位結束碼組成。1 個完整的遙控命令包含2 幀數據。發送時,首先發送1 幀15 位數據,延時40 ms 后發送另1 幀數據,此幀的系統碼與前幀相同,數據碼和結束碼與前幀相反。
經過程序編碼,按下開始發送按鍵,將具體遙控碼編碼后按時序發送出去,如圖7 所示。
2.6 串口通信單元電路
本系統串口通信單元電路采用CH340 實現USB 轉串口電路,方便串口調試及一鍵下載。詳細電路圖如圖8 所示。
圖8 串口通信單元電路圖
3 系統軟件設計
本系統的程序使用C 語言編寫,采用模塊化和層次化的設計方法,提高各模塊的獨立性,方便開發人員進行調試和后期維護。程序的功能模塊包括程序初始化模塊、碼段選擇處理模塊、讀SD 卡模塊、紅外遙控命令解析模塊、彩色TFT-LCD 顯示模塊,在主函數中調用各個模塊的接口,按照既定的控制邏輯,實現碼段選擇、讀SD 卡內遙控命令并按照遙控碼協議發送,以及實時顯示于彩色TFT-LCD 的功能。本系統主程序流程圖如圖9所示。
圖9 主程序流程圖
4 實現功能
本系統實現的遙控功能可選擇、可編輯,方便客戶根據需要自由編輯保存所需的遙控功能,主要實現功能如下。
1)遙控碼存儲于SD 卡,變更遙控功能時只需將SD 卡取出,使用讀卡器編輯完再插入遙控盒即可,不需再燒錄固件;
2)相較于傳統遙控器的按鍵固定不可更改,本遙控盒可以對遙控碼進行編輯,而且可以實現不同遙控碼的一鍵連續發送;
3)發射遙控碼的同時,實時顯示當前所做的遙控功能,方便用戶進行狀態跟蹤;
4)預留了設備聯動接口,可以與生產商的自動化設備,如PLC 等進行對接,實現與自動化設備聯動,加快生產效率。
5 結束語
本系統設計的遙控盒經客戶試用完全達到設計預期,且經過了長期穩定性測試,工作穩定、可靠,極大提高了生產廠商的檢測效率及品控質量。另外,本遙控盒提供了與自動化設備聯動的接口,客戶可以根據需要對接到生產線的自動化設備,實現遙控與自動化設備的聯動。
參考文獻:
[1] 李世奇,董浩斌,李榮生.基于FatFs文件系統的SD卡存儲器設計[J].測控技術,2011(12):79-81.
[2] 聶詩良,李磊民.紅外遙控信號的一種編碼解碼方法[J].儀表技術與傳感器,2004(8):28-29.
[3] 陳陽海.紅外遙控工作原理編碼方式及常用信號傳輸協議[J].電子制作,2007(11):6-9.
[4] 李創業.基于GPRS和紅外探測技術的家庭安防系統的研究與設計[D].長沙:湖南大學,2014.
[5] 程靜濤.基于ARM的觸摸屏TFT液晶顯示電路設計[J].電視技術,2012(9):27-27.
[6] 林淑.基于單片機的紅外遙控密碼鎖的設計[J].廣西輕工業,2014(8):77-78.
(本文來源于《電子產品世界》雜志2021年10月期)
評論