祝玲+鐘濤
【摘要】 emWin系統在嵌入式設備中主要使用方向是文本顯示、實時數據顯示、傳遞數據等;根據對emWin的二次開發和利用可以自定義很多控制組件或者子項目,源代碼編寫完成后的編譯下載由于emWin系統第三方插件原因存在差異,從子項目的開發到產品的測試運用均值得關注。
【關鍵詞】 emWin 二次開發 項目應用
一、應用前景
此項目利用emWin系統與STM32單片機通信、人機交互、設計工程控制界面等。最后,將所有的子項目全部合并成了一個完整的項目,其具備圖形顯示、輸入輸出交互、簡易工具設計、數字控件等功能,能夠滿足基本生產環境需求。
二、emWin下載協議
HMI設備是enWin系統的載體和體現,為了使用過程中達到方便、快捷、高效的目的,我們對emWin系統進行了再升級,升級后的emWin系統在源代碼下載時相對于以往的串口下載方式在速度上提升了很大的空間。經改進后的下載協議有以下兩種方式:
2.1 傳統下載方式——串口聯機下載
此下載方式即利用PC機串口調試設備搜索HMI設備的在線情況以及當前設備的波特率;若正確獲取通信數據PC機與HMI設備成功建立通信連接。在此過程中,因為是循環發送聯機指令,所以當emWin系統接收到正確的通信信息后,數據的最前面會有上一次的錯誤通信信息,因此第一條指令會被當作錯誤指令。故在每次發送聯機指令前先發送三個0XFF(空指令);此下載方式的缺點,因為利用串口通信,所以在下載速度上受到了絕對性的限制,例如當我們源代碼中編譯進了圖片信息,下載時間會被圖片的大小影響,圖片越大下載時間越長。
2.2 升級后下載方式——SD卡脫機下載
升級后的SD卡脫機下載大大節省了下載時間,同時也不依賴PC機,便于生產環境使用;其下載過程為:將源代碼下放到emWin系統,emWin利用第三方插件對源代碼進行特定編譯,最后生成后綴名為.tft的編譯文件,可以將此編譯文件利用插件將其導出到本地,再裝載進SD卡,這樣利用裝載有編譯文件的SD卡就可以為任意一臺emWin系統設備脫機下載程序,而且速度大大提高。
三、工程應用注意事項
為了讓emWin和工程項目更加兼容,在工程開發中我們修改了一些必要的部分,所以針對此工程將emWin部署進應用中還應注意一些問題,請參閱如下詳情:1.設備接受指令結束符為“0XFF 0XFF 0XFF”三個字節,所有指令名稱及參數全部采用ASCIA字符串格式,并非是二進制數據,便于閱讀和調試。2.由于項目測試中需要用到串口調試功能,所以預留了硬件串口接口,如在生產使用中不需要此功能,請屏蔽硬件接口(屏蔽接口時注意正負極短路)。3.在此工程中emWin設備采用5V電源驅動顯示液晶,所以在長時間使用情況下會出現物理故障,這是由于工程測試中電源方案與使用環境不同所造成的,在應用中設備電源方案及設備散熱應當重點考慮。
四、工程項目介紹
1、文本框顯示子項目。我們利用emWin文本框控件對項目內容,項目簡介等文本信息打印顯示,同時可以通過觸屏來更改顯示文本框的大小,就像在windows上操作頁面一樣方便快捷;文本框在通信過程中使用px.ty的指令調用;其中px代表工程中第x個頁面,例如P3代表第三個頁面,ty代表某個頁面中的第y個文本框控件,例如t0代表某頁面下第一個文本框;若想在第一個界面第一個文本框顯示“歡迎您”,則可用指令:p0.t0=”歡迎您”來完成。
2、圖像顯示子項目。我們修改了部分emWin源代碼,可以讓emWin支持更多的圖像格式,例如jpg、gif、jpeg、png等,但是引用圖片時應注意圖片的像素大小,我們使用的顯示設備像素分辨率和預顯示的圖片分辨率應完全相同,否則圖像顯示不完全。另外,使用圖像過程中應注意圖片的大小,因為經emWin系統設備后的圖像都會參與編譯,若預顯示圖像過大,則最后程序下載環節使用時間才會越長,反之亦然。
3、數據更新子項目。數據更新子項目包含了進度條、角度顯示儀、實時文本顯示窗三個基礎應用;進度條可以利用emWin系統變量從外界(例如單片機或者PC串口)獲取到實時值并寫入到進度條內部變量,這樣進度條就可以根據變量值實時更新;角度顯示儀是利用指針圓環形式表示,例如顯示90°時母針在0°位置,子針在90°位置。實時文本顯示窗不同于普通文本框,實時文本顯示窗可以根據emWin系統變量string實時獲取輸入設備(項目中是觸摸屏鍵盤輸入)的值,并將值以字符串形式實時顯示;若用戶沒有輸入則繼續顯示上次輸入內容,若用戶更新了輸入內容,則會自動刷新字符串緩存區。
五、總結
如果利用單片機與集成emWin系統的HMI設備通信時應注意字符的轉換,次項目中HMI設備采用ASCIA編碼,而單片機采用二進制碼,所以在兩者之間進行數據互傳時應先將數據內容進行類型變換后才能被正確接收和使用。另外,由于集成emWin系統的HMI設備輸入第三方顯示設備,所以對電源要求較為嚴格,在使用過程中應務必參考HMI顯示屏廠商提供的數據。