文/李崇 宋宇寧 欒顯曄 姜淇 李嘉巍
隨著智能化水平不斷提高,越來越多的醫療設備開始具備數據通信和可視化的功能,以方便現場監視和集中監控、提高操作安全性。但醫療康復設備操作這種產品的可視化功能設計還不夠成熟,集中于界面的數據及圖片更新無法實現單獨控制,短時間內無法實現數據的同步更新,及界面更新時刷新速度慢導致拖尾等問題,尚不能滿足人性化需求。
本文設計了一種基于STM32的液晶屏圖像顯示及數據傳輸控制系統,對液晶屏顯示窗口分區劃分處理,區域之間互不干擾,解決了刷屏速度慢的問題。采用ModBus RTU協議實時傳輸數據,提高了數據傳輸的速度和數據處理的靈活性。
液晶屏圖像顯示及數據傳輸控制系統的結構圖如圖1所示。該電路板采用意法半導體的STM32F103芯片作為主控芯片,通過串口與主控設備相連,通過操作ILI9341液晶屏控制芯片對LCD模塊進行控制。薄膜按鍵采用矩陣式布線方式,應用并行IO接口連接。
本文選用的2.4寸液晶顯示屏。控制器型號為ILI9341,該控制器支持8/9/16/18位數據總線的MCU接口,6/16/18位數據總線的RGB接口,以及3/4線的SPI接口。MCU為主機,LCD采用并行接口控制模式,和MCU通過IO接口相連接。由于MCU只發不收,只需要連接片選信號線L_CS、寫使能輸入信號線S_WE、傳輸數據類型信號線L_D/C、主設備輸出線S_Dn(n=0~7)、液晶屏背光控制信號LED-A。本系統薄膜按鍵采用矩陣式布線結構。
本文液晶屏圖像顯示及數據傳輸控制系統軟件設計如下:首先對液晶屏參數設置、系統模塊的功能以及對應的MCU接口初始化,4*4矩陣分布按鍵逐行逐列掃描,根據鍵值切換液晶屏圖片區的內容。模塊間通過判斷全局變量及狀態標志位的值實現主設備狀態信息和液晶屏顯示的同步更新。
本系統中液晶顯示屏尺寸240*320,采用豎屏橫顯示方式。屏幕顯示內容包括產品logo、圖片、連接狀態、剩余電量值和被控設備當前的姿態角度值。為避免切換圖片時或動畫顯示時屏幕出現刷屏拖尾等問題,本文對此采用特殊分屏處理的方式。
首先對液晶屏模塊進行初始化,用于功能的設定、清屏。創建兩個獨立的窗口,圖片窗口——用于圖片和動畫的顯示區,背景窗口——logo區和數據更新實時顯示區(除圖片區以外的區域即為背景窗口區)。
背景窗口的設置函數為void WM_SetSize();圖片窗口的設置函數WM_HWINWM_CreateWindowAsChild();在創建新窗口前必須調用函數WM_SetCreateFlags(),兩個窗口創建后必須添加窗口分離函數void WM_DetachWindow(),保持兩個窗口的獨立性,很好地解決了刷屏問題。
背景窗口的數據顯示區使用EDIT文本編輯框小工具進行數值的顯示,并在背景窗口創建1ms定時器對數值定時更新。圖片區根據薄膜按鍵值的不同顯示不同的圖片內容。logo區為產品的個性標識。
本系統中數據傳輸顯示板與上位機之間的通信采用Modbus RTU協議。本系統中數據傳輸顯示板作為主站,上位機作為從站。數據傳輸顯示板通過查詢方式進行上位機數據的收集,并將設置、控制命令發送下去。上位機支持0x04、0x06兩種功能碼,分別可以實現讀保持寄存器、寫單個寄存器。

圖1:液晶屏圖像顯示及數據傳輸控制系統結構圖
本文提出了一種基于STM32的液晶屏圖像顯示及數據傳輸控制系統的實現方法。與傳統的液晶屏顯示設備相比,該系統將液晶屏分成多個獨立的窗口,將固定圖形以及實時顯示數據分開處理,應用窗口定時器實現文本編輯框內數據的顯示,采用的Modbus RTU協議兼顧數據傳輸的實時性與硬件接口的通用性,有效的提高了實時數據的刷新速率,解決了液晶屏顯示易出現的拖尾等現象,極大的提升了用戶的體驗,在醫療康復設備的操作手柄中得到了廣泛的應用。