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