陽(yáng)俊, 王文虎
觸摸式遠(yuǎn)程控制終端設(shè)計(jì)
陽(yáng)俊, 王文虎
(湖南文理學(xué)院 電氣與信息工程學(xué)院, 湖南 常德, 415000)
設(shè)計(jì)的觸摸式遠(yuǎn)程控制終端由主控制端和從控制端2部分所組成, 硬件結(jié)構(gòu)包括STM32處理器、TFT觸摸屏、CAN總線、nRF24L01模塊、串口通信模塊和電源模塊。利用Keil MDK-ARM 5實(shí)現(xiàn)終端軟件的開發(fā), CAN總線通信網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通訊, nRF24L01無線通訊進(jìn)行指令傳輸。實(shí)驗(yàn)結(jié)果表明, 觸摸式遠(yuǎn)程控制終端能夠可靠傳輸數(shù)據(jù), 快速響應(yīng)遠(yuǎn)程操作。
遠(yuǎn)程控制; 微處理器; TFT屏; CAN總線; nRF24L01模塊
隨著物聯(lián)網(wǎng)、無線通信、控制等技術(shù)的發(fā)展, 遠(yuǎn)程控制技術(shù)正在深刻地影響人們的工作習(xí)慣和生活方式。遠(yuǎn)程控制是指計(jì)算機(jī)設(shè)備或移動(dòng)終端通過網(wǎng)絡(luò)技術(shù)傳輸指令控制遠(yuǎn)程終端設(shè)備, 并傳回終端設(shè)備的運(yùn)行狀態(tài)信息, 達(dá)到監(jiān)測(cè)與控制的目的。遠(yuǎn)程控制技術(shù)能使機(jī)器代替人在復(fù)雜惡劣的環(huán)境中完成工作任務(wù), 達(dá)到降低工作危險(xiǎn)系數(shù)、減輕勞動(dòng)強(qiáng)度、提高工作效率的目的。觸摸式遠(yuǎn)程控制終端在技術(shù)手段上是替換或彌補(bǔ)現(xiàn)有遠(yuǎn)程操作的有效措施。本設(shè)計(jì)運(yùn)用 CAN總線實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程收發(fā), 以及運(yùn)用2.4G無線網(wǎng)絡(luò)完成指令發(fā)送及執(zhí)行狀態(tài)監(jiān)視的操作。
圖1 觸摸式遠(yuǎn)程控制終端結(jié)構(gòu)
觸摸式遠(yuǎn)程控制終端結(jié)構(gòu)如圖 1所示。觸摸式遠(yuǎn)程控制終端硬件系統(tǒng)包括主控制端和從控制端, 由STM32最小系統(tǒng)、TFT屏模塊、CAN總線模塊、nRF24L01
終端硬件包括STM32最小系統(tǒng)、TFT屏驅(qū)動(dòng)電路、CAN總線電路、nRF24L01模塊電路、從控制端電路及工作電源。
2.1STM32最小系統(tǒng)
STM32最小應(yīng)用系統(tǒng)由復(fù)位、時(shí)鐘、SWD下載和Boot程序引導(dǎo)等組成, 其中時(shí)鐘采用8 MHz外部晶振, 程序下載選用SWD下載方式, 程序運(yùn)行選擇在flash存儲(chǔ)器的工作模式[1-2]。
2.2TFT屏驅(qū)動(dòng)電路
TFT屏模塊包括TFT觸摸顯示屏、液晶顯示控制器SSD1963QL9、觸摸屏控制器XPT2046、SD卡槽等。由LED_A引腳控制背光, 可以采用PWM指令, 實(shí)現(xiàn)128級(jí)亮度調(diào)節(jié), 也可以直接接高電平,但亮度不可調(diào)。使用STM32靈活的靜態(tài)存儲(chǔ)器控制器(FSMC)端口與TFT屏數(shù)據(jù)線連接, 使用SPI2端口與 XPT2046觸摸屏控制器通信。STM32與 SD卡采用 SPI方式通信。SSD1963QL9嵌入了1 215 kB顯示緩存。用STM32的FSMC做驅(qū)動(dòng), 可以利用其官方庫(kù)函數(shù)使編程變得容易。為便于保存觸摸屏校準(zhǔn)數(shù)據(jù), 在STM32上接一片EEPROM存儲(chǔ)器AT24C16。
2.3CAN總線電路
STM32F103是基于高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核處理器芯片[3]。STM32F103的所有型號(hào)芯片都具有bxCAN控制器(Basic Extended CAN), 它支持CAN協(xié)議2.0A和2.0B。bxCAN接口可以自動(dòng)地接收和發(fā)送CAN報(bào)文, 支持標(biāo)準(zhǔn)標(biāo)識(shí)符和擴(kuò)展標(biāo)識(shí)符。CAN總線電路由高速光電耦合器、CAN收發(fā)器等組成, 電路如圖2所示。6N136是高速光電耦合器, 隔離微處理器與CAN網(wǎng)絡(luò)。TJA1050是CAN收發(fā)器, 用來驅(qū)動(dòng)CAN總線下掛載的CAN總線器件[4-5]。
圖2 CAN總線電路
2.4nRF24L01模塊電路
nRF24L01是一種單芯片無線收發(fā)芯片, 工作在2.4~2.5 GHz的全球免申請(qǐng)(ISM)頻段。芯片包括一個(gè)完全集成的頻率合成器、功率放大器、晶體振蕩器和調(diào)制器, 具有傳輸穩(wěn)定可靠、距離遠(yuǎn)、功耗低、價(jià)格低廉等優(yōu)點(diǎn)。nRF24L01無線模塊的最大傳輸速度可以達(dá)到1 Mbps, 在樓房?jī)?nèi)傳輸距離小于200 m, 在空曠地小于1 000 m。無線模塊通過間歇式方式接收指令和數(shù)據(jù), 具有低功耗等特點(diǎn), 通過微控制器設(shè)置不同地址, 可以區(qū)分不同無線通訊單元, 達(dá)到組網(wǎng)目的[6-8]。
nRF24L01有接收、發(fā)送、待機(jī)、掉電等4種工作模式, 其工作模式、工作頻率、發(fā)射功率等可以通過4線SPI端口(CSN、SCK、MOSI、MISO)進(jìn)行配置,電路如圖3所示, 只有當(dāng)模塊有效配置后才能實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。
圖3 nRF24L01模塊電路
2.5從控制端電路
從控制端圍繞實(shí)現(xiàn)遠(yuǎn)程通訊的電路結(jié)構(gòu)與主控制端電路一致, 可以依據(jù)實(shí)際需要在從控制端設(shè)置控制輸出或檢測(cè)輸入單元。
3.1主程序系統(tǒng)上電(復(fù)位)后, 通過啟動(dòng)文件中的SystemInit()函數(shù)配置時(shí)鐘, 并進(jìn)入 main函數(shù), 系統(tǒng)時(shí)鐘在main函數(shù)執(zhí)行之前就已經(jīng)初始化完成, CPU主頻為72 MHz。main函數(shù)的工作流程如圖4所示。系統(tǒng)初始化包括延時(shí)函數(shù)初始化、中斷優(yōu)先級(jí)分組配置、串口初始化、LED初始化、LCD顯示初始化和觸摸屏初始化。LCD顯示初始化是對(duì)SSD1963QL9進(jìn)行參數(shù)設(shè)置, 如鎖相環(huán)、顏色模式、屏幕大小等。觸摸屏初始化是對(duì)XPT2046進(jìn)行參數(shù)設(shè)置, 讀取XPT2046控制器內(nèi)部的模數(shù)轉(zhuǎn)化數(shù)據(jù)以達(dá)到屏幕校準(zhǔn)、坐標(biāo)轉(zhuǎn)換的目的, 觸摸屏校準(zhǔn), 且校準(zhǔn)數(shù)據(jù)存儲(chǔ)在AT24C16中。完成初始化后, 在初始界面選擇通信方式, 更新顯示界面。
圖4 main函數(shù)流程圖
3.2TFT屏驅(qū)動(dòng)程序
TFT屏驅(qū)動(dòng)程序包含顯示屏驅(qū)動(dòng)程序、觸摸屏初始化程序、觸摸屏校準(zhǔn)程序和觸摸屏坐標(biāo)采集濾波程序。
顯示屏驅(qū)動(dòng)程序包括寫地址函數(shù)、寫命令函數(shù)、顯示初始化函數(shù)、畫點(diǎn)函數(shù)、畫線函數(shù)、字符顯示函數(shù)和漢字顯示函數(shù)等。
STM32通過可變靜態(tài)存儲(chǔ)控制器FSMC來控制SSD1963, 以間接控制TFT屏。FSMC接口是16位接口, 輸入SSD1963的數(shù)據(jù)總線為24位, 需要將SSD1963輸入數(shù)據(jù)總線的高8位懸空, 低16位和FSMC接口連接, 通過FSMC接口發(fā)給SSD1963驅(qū)動(dòng)器的16位數(shù)據(jù)格式只能是RGB565數(shù)據(jù)格式。TFT屏的數(shù)據(jù)寄存器地址和控制寄存器地址由FMSC的地址線FMSC_A16和控制線FSMC_NE1決定,數(shù)據(jù)寄存器地址為0x60020000, 控制寄存器地址為0x60000000。
觸摸屏與TFT顯示屏是2個(gè)不同的物理器件, TFT屏的分辨率為480 × 272, 而觸摸屏的分辨率是4 096 × 4 096, 兩者融合時(shí)需要進(jìn)行坐標(biāo)轉(zhuǎn)換。在安裝觸摸屏?xí)r, 不可避免存在一定的誤差, 如旋轉(zhuǎn)、平移, 因此在初次使用觸摸屏前必須對(duì)觸摸屏校準(zhǔn), 從而減少誤差, 校準(zhǔn)就是得到觸摸屏坐標(biāo)和 TFT屏坐標(biāo)的轉(zhuǎn)換關(guān)系。
觸摸屏驅(qū)動(dòng)程序是通過配置 XPT2046控制器完成屏幕坐標(biāo)和觸控坐標(biāo)的相互轉(zhuǎn)換, 觸摸屏校準(zhǔn)原理是二維幾何變換中的平移、旋轉(zhuǎn)和縮放。觸摸屏的精確校準(zhǔn), 需要篩選指定位置讀取到坐標(biāo)是否達(dá)到校準(zhǔn)標(biāo)準(zhǔn), 其原理就是計(jì)算讀到的5點(diǎn)坐標(biāo)中任意2點(diǎn)之間的距離, 判斷相對(duì)應(yīng)的線段長(zhǎng)度的比值是否在 0.94 和1.06之間。如果超出此范圍則重新采集5點(diǎn)坐標(biāo)重新計(jì)算, 直到達(dá)到校準(zhǔn)標(biāo)準(zhǔn), 退出校準(zhǔn)坐標(biāo)篩選。由于AD采樣的數(shù)據(jù)具有不確定性、多變性, 因此每個(gè)采樣點(diǎn)需要采集10次坐標(biāo)數(shù)據(jù), 將采集得到的X坐標(biāo)與Y坐標(biāo)分成 2組, 并按從大到小排序, 去掉每組中的最大值和最小值, 求取該點(diǎn)的X坐標(biāo)平均值和Y坐標(biāo)平均值。
圖5 nRF24L01工作流程圖
3.3通信程序
CAN總線驅(qū)動(dòng)程序主要是配置CAN總線引腳、配置CAN總線中斷、中斷服務(wù)程序、設(shè)置標(biāo)識(shí)符。nRF24L01的工作流程如圖5所示。按照nRF24L01的數(shù)據(jù)手冊(cè)初始化SPI總線, 編寫發(fā)送函數(shù)和接收函數(shù)。
借助STM32F103開發(fā)板搭建實(shí)驗(yàn)平臺(tái), 觸摸屏能夠正常讀取點(diǎn)坐標(biāo), 能夠顯示點(diǎn)、橫線、矩形、圓形圖塊、圖片、字符、漢字。主控制端預(yù)置數(shù)據(jù)通過CAN總線發(fā)送給從控制端, 從控制端接收到數(shù)據(jù)后又通過CAN總線將數(shù)據(jù)發(fā)送給主控制端, 主控制端將接收到的數(shù)據(jù)顯示到屏幕上, 所接收到的數(shù)據(jù)和發(fā)送的數(shù)據(jù)完全一致, CAN總線數(shù)據(jù)的準(zhǔn)確性值得信賴。主控制端通過nRF24L01模塊發(fā)送指令給從控制端, 從控制端接收到指令后, 從控制端繼電器動(dòng)作,并通過 nRF24L01模塊將特定的一組數(shù)據(jù)發(fā)送給主控制端, 主控制端將接收到數(shù)據(jù)顯示到屏幕上, 測(cè)試結(jié)果符合要求。
針對(duì)觸摸屏技術(shù)和遠(yuǎn)程控制技術(shù), 提出一種基于CAN總線和nRF24L01的觸摸式遠(yuǎn)程控制終端設(shè)計(jì)方案, 并利用 STM32開發(fā)板進(jìn)行了整機(jī)調(diào)試, 通過對(duì)顯示測(cè)試、觸摸測(cè)試、CAN總線通信測(cè)試、nRF24L01通信測(cè)試等測(cè)試結(jié)果進(jìn)行分析, 觸摸屏能清晰地顯示英文字符、漢字、圖形、圖片、按鈕等控件; 用觸摸筆點(diǎn)擊菜單按鈕, 響應(yīng)延時(shí)不超過 1 s; 能顯示被控對(duì)象的控制狀態(tài); 可以有線與無線方式傳輸信號(hào); 能對(duì)控制對(duì)象進(jìn)行有效控制。裝置性能達(dá)到設(shè)計(jì)預(yù)期要求。
[1] 王文虎, 楊峰. 基于μCOS-II技術(shù)的考勤機(jī)設(shè)計(jì)[J]. 湖南文理學(xué)院學(xué)報(bào)(自然科學(xué)版), 2014, 26(3): 79-82.
[2] 王文虎, 楊峰, 胡杰. 料臺(tái)超載遠(yuǎn)程報(bào)警裝置設(shè)計(jì)[J]. 自動(dòng)化技術(shù)與應(yīng)用, 2014, 33(8): 73-76.
[3] Joseph Yiu. Cotex-M3權(quán)威指南[M]. 宋巖, 譯. 北京: 北京航空航天大學(xué)出版社, 2009.
[4] 喬嘯乾. 基于CAN總線的觸摸式汽車空調(diào)控制器的研究及應(yīng)用[D]. 天津: 天津大學(xué), 2012.
[5] 賈南. 基于CAN總線的多傳感器監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J]. 廊坊師范學(xué)院學(xué)報(bào)(自然科學(xué)版), 2016, 16(1): 51-54.
[6] 唐先登, 楊經(jīng)國(guó), 李賀威, 等. 基于nRF24L01的多點(diǎn)無線環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J]. 電子設(shè)計(jì)工程, 2015, 23(5): 81-83.
[7] 沈飛. 基于nRF24L01的無線溫度監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 自動(dòng)化應(yīng)用, 2016(1): 33-34.
[8] 劉紅亮. 局域網(wǎng)遠(yuǎn)程移動(dòng)控制系統(tǒng)研究[D]. 南昌: 南昌航空大學(xué)信息工程學(xué)院, 2014.
(責(zé)任編校: 劉剛毅)
Design for touch remote control terminal
Yang Jun, Wang Wenhu
(College of Electrical and Information Engineering, Hunan University Arts & Science, Changde 415000, China)
Touch remote control terminal can effectively implement remote operation. The control terminal is composed of two parts, the main terminal and the slave terminal, and the hardware structure includes STM32 processor, TFT touch screen, CAN bus, nRF24L01 module, serial communication module and power module. Using MDK-ARM Keil 5 to achieve the development of terminal software, CAN cable communication network for data communications, nRF24L01 wireless communications to carry out the instruction transmission . Experimental results show that the touch remote control terminal can transmit data reliably, and respond to the remote operation rapidy.
remote control; microprocessor; TFT screen; CAN bus; nRF24L01 module
TP 368; TN 919.7
1672-6146(2016)03-0034-04
10.3969/j.issn.1672-6146.2016.03.008
陽(yáng)俊, huxiangfengyun@foxmail.com。
2016-04-18
國(guó)家自然科學(xué)基金項(xiàng)目(61403136); 湖南省自然科學(xué)基金項(xiàng)目(14JJ5008)。模塊、串口通信模塊(編程調(diào)試用)和電源模塊等組成。利用觸摸屏上的控制鍵, 主控制端發(fā)出控制信號(hào)或數(shù)據(jù), 經(jīng)過有線或無線信道發(fā)送到從控制端, 從控制端響應(yīng)動(dòng)作。主控制端由微處理器、觸摸屏、信號(hào)發(fā)送裝置和工作電源組成。從控制端由信號(hào)接收處理裝置、被控對(duì)象接口和工作電源組成。微控制器運(yùn)行主程序驅(qū)動(dòng)觸摸屏以及收發(fā)信號(hào)。觸摸屏顯示圖形界面, 被用來輸入控制指令, 反映被控對(duì)象的狀態(tài)。