国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的人機交互終端的設(shè)計

2020-03-26 08:50:32翟延忠翟寶蓉
儀表技術(shù)與傳感器 2020年2期
關(guān)鍵詞:參數(shù)設(shè)置總線像素

翟延忠,翟寶蓉,馬 強,李 燕

(1.華北科技學(xué)院電子信息工程學(xué)院,北京 101601;2.華北科技學(xué)院研究生院,北京 101601)

0 引言

近年來,隨著微處理器性能的提升,嵌入式實時操作系統(tǒng)的引入和圖形界面庫的出現(xiàn)等,為人機交互終端的開發(fā)提供了極大的便利,使得開發(fā)人員可以設(shè)計出能夠深度滿足用戶需求的交互終端[1-3],例如觸摸屏、專門的通訊接口、個性化的畫面顯示等[4]。

針對交互終端的一般應(yīng)用需求,本文設(shè)計了一款基于STM32F407ZGT6微控制器實現(xiàn)的交互終端,軟件運行于FreeRTOS實時多任務(wù)操作系統(tǒng),與控制端通過CAN總線通信,人機界面采用800×480的7″液晶觸摸屏,應(yīng)用EmWin實現(xiàn)圖形界面設(shè)計,并給出了一種高效的動畫設(shè)計方法。

1 硬件設(shè)計

交互終端以STM32F407ZGT6微控制器[5]為核心構(gòu)成最小系統(tǒng),包括電源模塊、液晶觸摸屏、CAN通信模塊、EEPROM存儲器、外部SRAM和SWD下載調(diào)試模塊,整體結(jié)構(gòu)如圖1所示。

圖1 交互終端硬件結(jié)構(gòu)圖

1.1 最小系統(tǒng)

基于高性能ARM Cortex-M4內(nèi)核的STM32F407ZGT6微控制器, 3.3 V供電,外接8M晶振,內(nèi)核工作頻率168 MHz,片外低電平的復(fù)位阻容電路實現(xiàn)微控制器與液晶觸摸屏復(fù)位,軟件下載調(diào)試采用SWD模式。

1.2 電源模塊

交互終端外部接入24VDC,其內(nèi)部電路需要5 V和3.3 V的兩種電源供電,其中5 V為液晶觸摸屏的背光供電,而3.3 V為微控制器和其他模塊供電的主電源。輸入24VDC經(jīng)TPS5403單片降壓穩(wěn)壓器轉(zhuǎn)換輸出電壓/電流為3.3 V/710 mA,經(jīng)TPS5405單片降壓穩(wěn)壓器轉(zhuǎn)換輸出電壓/電流為5 V/500 mA。

1.3 觸摸屏、SRAM與EEPROM

顯示屏選用了7″彩色TFT-LCD電容觸摸屏,分辨率為800×480,16位彩色顯示,驅(qū)動芯片為SSD1963,觸屏驅(qū)動芯片為FT5206。由于STM32F407ZGT6片內(nèi)SRAM容量僅192 KB,難以支撐畫面顯示需求,為此外擴一片1M SRAM的IS62WV51216芯片。STM32F407ZGT6以FSMC方式與TFTLCD 模塊及外部SRAM接口,使用FSMC_NE3片選TFTLCD 模塊,使用FSMC_NE4片選SRAM芯片,微控制器以IIC接口驅(qū)動觸屏芯片[6]。

交互終端應(yīng)用中會有參數(shù)掉電記憶的需求,為此電路中加入EEPROM芯片,這里選用IIC 接口的AT24C02。

1.4 CAN通信

STM32F407ZGT6內(nèi)置bxCAN(基本擴展CAN)控制器,波特率最高達1 Mbps,CAN總線驅(qū)動選用總線收發(fā)器SN65HVD230,該芯片具有差分收發(fā)能力和良好抗干擾能力,適用于較高通訊速率與高可靠性的CAN總線通信[7]。

2 軟件設(shè)計

2.1 軟件功能

2.1.1 CAN通信

交互終端界面上顯示的信息來源于其服務(wù)的控制系統(tǒng),而控制參數(shù)與行為又反作用于其服務(wù)的系統(tǒng),信息的傳輸通過CAN通信實現(xiàn),CAN信息的收發(fā)及處理需通過交互終端的軟件功能實現(xiàn)。

2.1.2 動畫顯示

人機界面是一個控制系統(tǒng)的窗口,除常規(guī)的參數(shù)與狀態(tài)顯示外,參數(shù)與狀態(tài)驅(qū)動的動畫顯示可顯著提升界面表現(xiàn)力,而動畫實現(xiàn)的本質(zhì)是在短時間內(nèi)(<20 ms)實現(xiàn)畫面像素的改變與刷新,由于嵌入式系統(tǒng)的資源有限,動畫顯示功能需得到高效處理。

2.1.3 界面管理

交互終端要展現(xiàn)的就是界面,一方面展示控制系統(tǒng)的運行狀態(tài)與參數(shù),將參數(shù)與狀態(tài)信息在選擇的位置,以設(shè)定顏色、大小、字體等屬性顯示出來;另一方面,控制參數(shù)與命令的設(shè)置與顯示,除完成相關(guān)信息的顯示外,參數(shù)設(shè)置界面還涉及到按鈕操作、對話框等窗口操作;此外還涉及觸屏的驅(qū)動與檢測。

2.2 操作系統(tǒng)

本設(shè)計采用FreeRTOS操作系統(tǒng),將系統(tǒng)功能劃分為若干個任務(wù)、合理設(shè)置任務(wù)優(yōu)先級、選擇適當(dāng)?shù)耐脚c通信機制使得軟件結(jié)構(gòu)清晰、模塊化、容易維護[8]。

2.3 GUI圖形庫

EmWin專為LCD圖形界面提供了模塊化設(shè)計并且適用于多任務(wù)操作環(huán)境,除可實現(xiàn)基本圖形繪制、顏色填充、圖片文字的顯示外,它的強大功能表現(xiàn)在豐富的可直接調(diào)用的接口函數(shù)、窗口管理功能等,借助GUI開發(fā)工具EmWin進行人機界面的開發(fā)可有效地提升開發(fā)效率[9]。

2.4 任務(wù)架構(gòu)

綜合上述因素,構(gòu)建軟件總體框架如圖2所示。

圖2 軟件總體框架

觸屏檢測任務(wù)用于各界面的觸屏檢測管理,當(dāng)點擊界面上的按鈕(或圖標(biāo))時,產(chǎn)生相應(yīng)的標(biāo)志,通知界面管理任務(wù);CAN接收及接收中斷服務(wù)用于CAN總線信息接收;界面的切換與交互操作由界面管理任務(wù)實現(xiàn);實時顯示任務(wù)用于實時數(shù)據(jù)及狀態(tài)的更新顯示;動畫任務(wù)用于監(jiān)控界面的同步動畫顯示。

3 CAN通信

本交互終端通過CAN總線與控制裝置進行通信,一方面接收控制裝置發(fā)來的信息,將信息以某種形式記錄或顯示在界面上。另一方面,交互終端接受人工操作并將操作信息發(fā)往控制終端。在RTOS運行環(huán)境下,交互終端會有多個任務(wù),任務(wù)間的通信可通過信號量、事件標(biāo)志組、消息隊列等方式實現(xiàn)。CAN通信按照如下思路實現(xiàn)。

3.1 通信任務(wù)的規(guī)劃

在RTOS的多任務(wù)運行環(huán)境下,CAN總線通信需根據(jù)信息接收與發(fā)送的特點與過程來處理,為便于處理,設(shè)立多個任務(wù)處理CAN通信。

中斷服務(wù)程序:總線通訊時,信息的接收是被動的,時間上是隨機的,為不致接收信息的溢出或丟失, CAN信息的接收采用中斷方式,在中斷服務(wù)程序中快速完成信息的接收與轉(zhuǎn)發(fā),以減少對CPU時間的占用。

CAN接收任務(wù):對接收信息需進行解析以進行相應(yīng)的處理。

CAN信息的發(fā)送:相對于信息接收,信息的發(fā)送是主動的,當(dāng)某個任務(wù)需要向CAN總線發(fā)送信息時,將信息按設(shè)定格式裝配好,調(diào)用庫函數(shù)u8 CANx_Send_Msg (u8 *msg,u8 len)即可。

3.2 CAN控制器的初始化

CAN通信初始化除引腳設(shè)置、時鐘使能、波特率設(shè)置、中斷設(shè)置外,還需注意:

3.2.1 過濾器設(shè)置

當(dāng)CAN總線上節(jié)點較多時,傳輸?shù)男畔⒁矔龆?,為不使交互終端受到無關(guān)信息的干擾,CAN提供了28個過濾器,每個過濾器有標(biāo)識符列表與標(biāo)識符屏蔽位兩種模式。標(biāo)識符列表要求列出所有可接收的ID,只有與這些ID完全相同的數(shù)據(jù)幀或遠(yuǎn)程幀才能通過過濾被接收。而屏蔽位模式可將ID的某些位按位屏蔽,從而可過濾出一組ID來。在CAN初始化時,需根據(jù)通信的內(nèi)容設(shè)置過濾模式。

3.2.2 接收隊列的選擇

STM32F407ZGT6的CAN控制器具有2個三級緩沖的FIFO,具有強大的緩沖接收能力,降低了處理器接收CAN信息時的負(fù)擔(dān)。每個過濾器在設(shè)置時,可選擇關(guān)聯(lián)的FIFO,從而使所接收的信息得以按照ID分流。

3.3 接收中斷服務(wù)

初始化后,每當(dāng)CAN總線上有信息幀能夠通過ID過濾進入FIFO,就會觸發(fā)中斷(FIFO內(nèi)消息非空時中斷)。中斷服務(wù)中,首先識別哪個FIFO產(chǎn)生中斷,將信息幀讀出,然后立即將信息存入接收消息隊列。

3.4 CAN接收處理

CAN接收任務(wù)用于消息的解析與處理,程序流程圖如圖3所示。

首先檢查消息隊列是否為空,消息隊列內(nèi)的消息來自于接收中斷服務(wù)。若不為空,將接收消息中的數(shù)據(jù)讀取到數(shù)據(jù)緩沖區(qū),提取其中蘊含的消息類型信息MSG_Type。然后根據(jù)消息類型,對接收到的信息按約定做出相應(yīng)的解析,并通過適當(dāng)?shù)姆绞酵ㄖ渌蝿?wù)進行處理。

圖3 CAN接收任務(wù)流程圖

4 動畫處理

人機交互終端的作用就是要提供友好的人機界面,而其中的監(jiān)控界面是控制系統(tǒng)人機界面開發(fā)的重點,與系統(tǒng)運行狀態(tài)相聯(lián)系的動畫功能是焦點。動畫是指受控圖形按照一定規(guī)律在畫面上運動,以形象表現(xiàn)系統(tǒng)某些受控屬性,動畫顯示對提高人機交互界面乃至整個系統(tǒng)的品質(zhì)有作用。

4.1 動畫原理

最基本的動畫表現(xiàn)形式為圖形的移動與旋轉(zhuǎn),而實際的動畫效果多是由各種圖元的運動組合,其基本原理是使圖形每隔一定時間移動或旋轉(zhuǎn)一定的像素,將各種圖形移動組合在一起就可以獲得表現(xiàn)系統(tǒng)運動特質(zhì)的動畫效果,所移動的像素可由所關(guān)聯(lián)的變量加以確定。

當(dāng)要在顯示屏上呈現(xiàn)圖形的移動或旋轉(zhuǎn)效果時,需要做以下工作:描繪新增區(qū)域的像素;恢復(fù)原被掩蓋區(qū)域的像素。這些工作本質(zhì)上都是像素描繪。

4.2 描繪問題

由于顯示屏的像素描繪是逐點進行的,每個像素點的描繪需要指定像素坐標(biāo),發(fā)出寫GRAM命令,然后再輸出顏色信息這一操作過程。作為外設(shè)的顯示屏,其訪問速度相對處理器內(nèi)部指令執(zhí)行速度要慢得多,使得每個像素點的描繪需要耗用處理器很多的指令執(zhí)行時間。當(dāng)要實現(xiàn)一個圖形的移動效果時,如果整個圖形全部擦除后再在新的位置重新描繪圖形的所有像素,要消耗處理器很長時間,不僅畫面的觀感會有閃爍,而且也會擠壓其他應(yīng)用代碼的運行時間,尤其在處理器負(fù)荷較重時。

4.3 有效描繪

由于在每幀畫面的圖形移動過程中只是部分區(qū)域的像素發(fā)生了改變,即移進區(qū)域需新繪和移出區(qū)域需恢復(fù)原覆蓋的顯示。如果僅對變化的像素點進行描繪,而不是將整個圖形擦除后在新的位置上進行重繪,減少了對CPU時間的消耗,從而改善畫面動畫效果。

以一個填充矩形的水平移動為例,設(shè)矩形的像素數(shù)為x(U)*y(V),如果按簡單的擦掉重繪的方式,需要描繪2xy個像素。實際圖形在平面移動中,如果移動Δx個像素,需重繪的像素為2yΔx個,而中間的(x-Δx)y像素沒有變化,不需要重繪。如圖4所示:由于Δx很小,需重繪的像素量大幅降低,從而大幅節(jié)省了處理器的時間。

圖4 圖形移動像素變更示意圖

一個人機界面由若干個圖形元素合成,當(dāng)一個移動圖形掠過不同的圖形元素時,移出的區(qū)域就要恢復(fù)成原來被掩蓋的圖形元素像素,需要判斷像素恢復(fù)點屬于哪個可顯示的圖形,這將增加像素描繪的復(fù)雜性,使描繪時間加長。因此,應(yīng)盡可能使移動圖形在一個單色背景中移動,以簡化軟件的設(shè)計。

5 界面管理

人機交互終端除了實現(xiàn)控制系統(tǒng)的監(jiān)控畫面外,還需要若干的參數(shù)(或狀態(tài))的顯示/設(shè)置界面,用以實現(xiàn)參數(shù)設(shè)置、數(shù)據(jù)統(tǒng)計、狀態(tài)指示與設(shè)置等功能。內(nèi)容涉及按鈕的操作、參數(shù)與圖形的顯示、對話框操作等[10],開發(fā)這類的界面是耗時與繁瑣的,利用EmWin的圖形界面庫可使這類開發(fā)的工作量顯著降低。具體地,利用EmWin附帶的GUIBuilder工具創(chuàng)建界面。GUIBuilder是一款無需編程即可創(chuàng)建對話框的工具,它提供了豐富的控件,只需簡單的拖拽、擺放與屬性設(shè)置即可完成界面的設(shè)計,結(jié)果生成.c文件嵌入應(yīng)用程序中即可,設(shè)計的初始參數(shù)設(shè)置界面如圖5所示。

圖5 參數(shù)設(shè)置界面

在多界面工作的情況下,必然存在界面之間的切換問題,界面切換時需要載入界面的圖形與參數(shù),并接受這一界面的操作管理。以下以載入某一參數(shù)設(shè)置界面的過程為例加以說明,界面任務(wù)流程圖如圖6所示,其中需顯示的參數(shù)位于控制端,還需通過CAN通信獲取參數(shù)。

圖6 界面管理任務(wù)流程圖

在界面管理任務(wù)中,需要等待界面更新標(biāo)志,只有出現(xiàn)界面更新標(biāo)志,界面切換工作才開始執(zhí)行。在進入界面時,需要獲取該界面的參數(shù)。如果界面參數(shù)位于控制端,界面管理任務(wù)需通過消息隊列向CAN發(fā)送任務(wù)發(fā)送請求參數(shù)的消息,再由CAN發(fā)送任務(wù)將其發(fā)送到控制端。CAN接收任務(wù)接收控制端的響應(yīng)消息并將解析后的參數(shù)存入緩沖區(qū)。與控制端的通信有時間約束,若在規(guī)定時間內(nèi)收到參數(shù)則在界面上顯示,若超時則指示通訊失敗。

參數(shù)設(shè)置界面中要顯示若干個標(biāo)號與觸屏按鈕,每個按鈕為一個控件,界面的交互操作涉及按鈕檢測、參數(shù)值修改、界面刷新、消息傳遞等內(nèi)容。這些功能均利用EmWin的圖形庫實現(xiàn),所生成的代碼文件以回調(diào)函數(shù)的形式被調(diào)用運行。

當(dāng)查詢到退出參數(shù)設(shè)置界面標(biāo)志置位時,判斷參數(shù)是否更改。若更改則將修改后的參數(shù)放入消息隊列由CAN發(fā)送任務(wù)推送到控制端,將界面標(biāo)號設(shè)置為監(jiān)控主界面且置位界面更新標(biāo)志位,從而退出參數(shù)設(shè)置界面。

6 應(yīng)用

基于STM32開發(fā)的嵌入式人機交互終端在快開壓濾機控制系統(tǒng)中得以應(yīng)用,如圖7所示。

圖7 嵌入式人機交互終端監(jiān)控畫面示例

系統(tǒng)中,交互終端安裝于控制柜上,與位于現(xiàn)場的壓濾機控制器間通過CAN總線通信,控制器的某些運行參數(shù)與狀態(tài)通過CAN通信傳輸至交互終端并在交互終端上以多種方式呈現(xiàn),交互終端上的某些設(shè)置參數(shù)與命令也通過CAN通信傳輸至控制器以控制系統(tǒng)的運行。為了生動體現(xiàn)控制系統(tǒng)的運行狀況,交互終端的監(jiān)控界面以動畫形式顯示控制系統(tǒng)的壓緊、進料、卸料等進程,形象地表現(xiàn)了控制系統(tǒng)的實時進程。此外,交互終端上還設(shè)有若干個參數(shù)設(shè)置與統(tǒng)計、狀態(tài)設(shè)置與顯示界面,各個界面間可方便地通過觸屏按鈕進行切換。

7 結(jié)束語

基于STM32所設(shè)計的嵌入式交互終端,硬件設(shè)計簡單合理。FreeRTOS實時操作系統(tǒng)環(huán)境下的軟件開發(fā)將交互終端的功能分成了若干個相對獨立又相互配合的任務(wù),EmWin圖形庫的使用使界面設(shè)計變得方便快捷,軟件開發(fā)效率顯著提高,而有效的實時動畫實現(xiàn)方法與嵌入式處理器的運行相匹配,動畫功能的實現(xiàn)更是提高了交互終端的品質(zhì)。

動畫功能的進一步開發(fā),需借助于輔助軟件的開發(fā),以實現(xiàn)更為生動與靈活的動畫功能。

猜你喜歡
參數(shù)設(shè)置總線像素
趙運哲作品
藝術(shù)家(2023年8期)2023-11-02 02:05:28
像素前線之“幻影”2000
“像素”仙人掌
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
蟻群算法求解TSP中的參數(shù)設(shè)置
高像素不是全部
CHIP新電腦(2016年3期)2016-03-10 14:22:03
動車環(huán)境下U900異頻切換參數(shù)設(shè)置探討
多通道ARINC429總線檢查儀
基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
河南科技(2014年16期)2014-02-27 14:13:22
进贤县| 札达县| 嘉祥县| 泸定县| 桐柏县| 抚顺县| 包头市| 凉城县| 盐津县| 盐山县| 南充市| 兰坪| 任丘市| 芦溪县| 兴安县| 和政县| 家居| 宜黄县| 如皋市| 岢岚县| 阳高县| 麟游县| 尼木县| 邵东县| 肥西县| 施甸县| 醴陵市| 栾城县| 司法| 遂溪县| 侯马市| 浦北县| 北宁市| 兴仁县| 辽阳县| 长顺县| 鲜城| 呼伦贝尔市| 荔浦县| 濮阳市| 苏州市|