一
前言
手頭有一款閑置串口屏,其型號為,是一款7寸800*480分辨率的電容觸摸屏。這款屏幕是支持6~36V供電的,自帶3個串口輸出,分別是UART2,UART4,UART5。其中UART2和UART4是RS232接口的,UART2也作為系統默認的調試串口,UART5是RS485接口的,但UART4和UART5都需要對系統的OS核做修改才能使用。迪文的資料較為混亂,花費了大量的時間研究。

首先:迪文芯片分為T5和T5L系列,并不兼容,在T5L內同時分為T5L0\T5L1\T5L2,但在官網最新的<迪文 T5L ASIC 應用開發指南.pdf>版本為V1.1,這一參考資料中,僅描述了T5L1以及T5L2系列,這個區別主要是屏幕顯示分辨率和存儲扇區以及單個文件大小的限制方面有區別。



通過查看迪文給出的手冊得知此款屏幕采用的迪文自研的T5L0芯片,但不知為何手上這款雖然型號相同,但在程序更新時顯示的則是T5L1,與手冊標注并不相同。但在開發過程中選擇T5L0或是T5L1沒有區別,也可能是沒有達到等級的分水嶺。
其次:如手冊所說,T5L是單芯雙核,指的是芯片內部是兩個單獨的8051核心,分別是GUI核和OS核,兩個核心對應的功能不同,開發方式也截然不同,這點需要特別注意。GUI核運行迪文自己的DGUS Ⅱ系統,使用迪文推出的上位機軟件進行開發,OS核可以由用戶自己開發功能或使用迪文提供的基本功能示例,但遇見復雜情況還是無法滿足需求,需要用戶自己編寫處理邏輯,有兩種開發方式可選:一是標準C代碼,二是匯編指令開發,可以采用KEIL或迪文推出的< DWIN C Complier>進行8051內核OS代碼的開發,KEIL開發需要安裝迪文提供的驅動包< KEIL AGDI T5 >。
二
需求
使用這款屏幕的目標是:
①作為主機進行ModBus通信
②讀取指定從機數據并顯示到屏幕中的指定變量
③支持下發參數至從機ModBus寄存器
④使用RS485接口
從需求來看,需要做的事情可以分為兩個部分,一是UI數據的顯示,迪文的DGUS Ⅱ采用的方式是用事先設計好的圖片做背景,所有的操作均以圖片為基礎進行布局、顯示和觸摸,這就需要提前設計好整個系統的UI原型和交互流程。二則是ModBus數據交互,數據交互已經超出了GUI核的處理范圍,所以需要進行OS核的代碼編寫,因為ModBus已經是廣泛的工業協議,所以迪文已經提前編譯了各個串口的ModBus協議棧程序了,用戶需要替換對應的DWINOS程序以及按要求下載指令配置文件即可。
三
實施
1. UI數據顯示
素材準備
如上所說,整個系統流程是以圖片為導向的,所以在設計系統前即應該畫出設計原型,這里選擇的800*480分辨率的屏幕,所以在圖片尺寸上也應設置相同尺寸,但在圖片的格式上迪文做了一些限制,需要24bit色深的bmp或jpg\jpeg格式,Windows可以在圖片上右擊->屬性->詳細信息中看到圖片的分辨率和大小以及色深,如果圖片不滿足要求的話下載進屏幕會導致屏幕出現黑屏或其他無法正常顯示的情況。

當確定所有的圖片格式后,需要將圖片統一按0x[_xx]的序號進行命名,序號后的漢字不做要求,可有可無,這里為了方便對圖片做區分,選擇添加。

圖片準備好后, DGUS Ⅱ不支持直接在文件系統中以圖片格式(bmp/jpg)顯示背景,需要將其轉換為ICL文件格式。這里使用的DGUS Ⅱ軟件自帶的轉換工具即可。

這里引出來在開發中遇見的一個大坑點,就是關于迪文DGUS Ⅱ文件系統索引,DGUS Ⅱ將系統flash分為多個扇區,每個扇區的大小是256K,扇區號從0開始,所有的需要存入屏幕flash的文件都需要用戶手動來確定扇區大小,其中0號為默認的系統字庫,使用軟件默認生成的大小為3011K,按256K一個扇區來算,0號字庫占據12個扇區,緊接著是系統配置的觸摸文件13、用于數據顯示的數據文件14以及系統配置文件22。


這三個文件是系統默認生成的,在文件選項卡-單擊生成即可,但請注意,當13文件超過32K后無法使用B0指令關閉指定的觸控控件, 并且22文件系統開機是默認不加載的,需要在CFG文件中指定開機加載22文件功能。官方默認的扇區號是有64個,除了這1~14,22號扇區用戶不能使用之外,其余的用戶都可以使用,官方有推薦的劃分表,具體可以查看手冊。
接下來講需要用戶準備的,首先就是背景圖文件,其次是圖標文件,如果你的工程內不需要顯示圖標也可以不準備,再次注意,在官方的歷程中推薦的背景文件扇區號是32,圖標文件扇區號是48,因為他們歷程中使用的屏幕內置FLASH大小是16M的,而手頭這一款屏幕內置FLASH只有8M,當按照官方推進的扇區號進行開發時出現字庫亂碼現象,幾經排查無果,詢問技術支持得知FLASH大小不夠,能用的扇區只有32個,導致覆蓋掉了FLASH前段的字庫文件照成了顯示異常,由于圖片ICL與圖標ICL占據不大,將其調整為23/24號,調整了默認圖片索引后需要在CFG文件中修改圖片起始扇區號,最終問題得到解決。

當素材準備完畢后打開DGUS Ⅱ軟件,選擇新建工程,選擇適合自己的屏幕分辨率,進入工程后,點擊主頁左側?號,進行素材的導入,可一次導入多張圖片。

當導入圖片過后,即可在圖片上繪制數據顯示位置和顯示方式等,當前示例中,假設數據為數值類型,點擊文本顯示->數據變量,在設定的位置拖放數據顯示區域大小即可。

將需要顯示的數據按需求放置完成后,即需要對每個數據變量進行單獨設置,這就引出了DGUS Ⅱ系統中另一個坑點-<變量地址>,是的,DGUS Ⅱ系統中需要用戶來確認每一個控件的大小和地址,每一種控件的大小并不一致,為了避免麻煩和后期隱患,所以在很多的教程中都是建議直接間隔0x10,例如:

在這里要注意變量類型,需要與最終的呈現效果一致,在這里筆者需要顯示浮點數并帶一位小數,所以將其設置為單精度浮點數即可。

當設置完成后,可以在顯示選項卡-從當前頁開始預覽即可看到效果,但請注意軟件內存在bug,不能完全模擬出實際效果,部分情況下當確認設置沒有問題之后,可以將其下載到串口屏內查看,配置文件/ICL/字庫文件可以通過軟件內的串口下載。

但注意串口下載工具不能下載OS程序/CFG文件以及內核文件,這類文件均只能使用SD卡進行離線更新。SD卡下載需要對卡進行特殊處理且下載時具有特定的命名規則,這里建議最好是按他這個格式要求格式化一次,后續可以使用Windows的快速格式化功能,直接使用快速格式化有可能屏幕是無法正常讀取的。


篇幅有限,具體ModBus部分等待后期文章展開。
-
觸摸屏
+關注
關注
42文章
2460瀏覽量
121965 -
GUI
+關注
關注
3文章
697瀏覽量
43467 -
串口屏
+關注
關注
8文章
621瀏覽量
39500 -
迪文屏
+關注
關注
3文章
88瀏覽量
6028
發布評論請先 登錄
迪文DWIN串口屏的使用經驗
迪文DWIN串口屏的使用經驗
【迪文COF結構智能屏試用體驗】基本開發流程
【迪文COF結構智能屏試用體驗】迪文屏優缺點分析和適用場景
【迪文COF結構智能屏試用體驗】基于串口通信的電子相冊(動態平滑、完整代碼)
單片機控制迪文串口屏
迪文串口屏基礎GUI開發流程
評論