張盼華,張偉濤,樊浩,陳華強,呂輝杰,劉金寶,曹文峰
(同方電子科技有限公司,江西九江,332100)
短波電臺的人機交互信息內容顯示有多種手段,串口屏是其中方法之一。串口屏是指一種自帶串口控制的液晶屏模塊。通常由驅動板、外殼、LCD液晶顯示屏等三部分組成,通過一系列的串口控制指令實現相關內容信息顯示。工業串口屏的出現約近十年左右時間,作為數據內容顯示載體之一,其友好的使用和開發方式,如文獻[1-10]可知其廣泛應用在工業、電力、自動化、電信、軍工等領域[1-10]。串口屏的架構設計中,通常會有一個通信幀緩沖區,用于存放串口命令,并且為FIFO結構。當串口屏應用于顯示項目與內容條數多,刷新速率快的場景,常常會出現“丟幀”現象,即某些數據內容沒有顯示出來。串口屏自身為了解決上述問題,采用提供一個對外的GPIO口線,通過高低電平判定串口屏是否處于“忙”的狀態。當信號為“忙”時,則不允許繼續向串口屏發送命令,通常會打亂預期的顯示效果。然而,人們總希望信息顯示能夠實時推送給串口屏,實時的顯示出來。
因此,為較好有效的解決短波電臺中串口屏應用中出現“丟幀”現象,提供了一種解決方法。該方法從應用層角度,將離散的數據內容進分層和再加工聚合,通過設計較為合理控制方法,進而優化顯示,提高開發效率。
短波電臺的界面顯示使用的工業串口屏僅需與帶串口通信的任意模塊單片機、片上系統等芯片就可以擴展出顯示功能,表現出優異的可擴展性。其原理示意框圖,如圖1所示。

圖1 短波電臺串口屏顯示串口通信框圖
然而,串口通信速率并不特別快,工業串口屏在設計時帶有一個通信幀緩沖區存放通信控制命令。受串口通信速率、緩沖區大小、人眼視覺效果等限制。對于顯示項目內容多、刷新速率快的應用場景,則會出現“丟幀”,表現為屏幕上某些內容沒有顯示出來的現象。
上述現象的本質為,短波電臺中串口屏接收到外部控制模塊串口命令存放于通信幀緩沖區中,未能及時得到相應操作處理,而被后續的命令覆蓋。其存儲邏輯圖,揭示了串口屏微觀的通信幀命令存儲邏輯。
以北京迪文公司的串口屏為例,其(型號:DMG32240S035-01WT)允許最大通信幀緩沖區大小為24。便于圖形示意,將該型號串口屏的通信幀緩沖區歸一化為10個單位邏輯區。其存通信幀數據緩沖區存儲邏輯關系如圖2所示。其中,圖2(a)為初始化的存儲緩沖區。當收到第1個數據時,存儲在緩沖區第一個緩沖區塊中,如圖2(b)所示。以此類推,后續收到數據放置下一個緩沖區,示例圖如圖2(c)、2(d)所示。

圖2 短波電臺顯示通信幀數據緩沖區存儲邏輯
由于串口屏緩沖區采用FIFO(先進先出)結構,當收到第11個通信數據幀時,則必須指向緩沖區的第1個緩沖區存放。如果串口屏還沒來對D1命令數據進行處理,如圖2(e)所示,會被D11命令數據所取代,其映射到界面顯示相關,出現“丟幀”現象,即預設想要的顯示操作被另外一種操作所取代。在刷新速率快的應用場景,如果串口連續收到11條通信幀數據,則會出現上述情況。
因此,在短波電臺外部控制模塊程序設計之前,對應用層通過定性分析和定量計算,確保后續不會出現上述情況,完成每一界面設計與規劃,是一種能夠解決上述問題的較為理想方法。
基于分層聚合模型的工業串口屏內容顯示控制方法,從設計原理階段對顯示控制方法進行了優化聚合。相鄰兩個不同界面間或當前某一界面內的顯示項目內容是具有一定相關性的,這一相關性特征是進行分類的主要依據和原則。
依據界面顯示項目內容的相關性特征進行分類,將分類后聚合完成數據視為一個局部矩陣圖層,一個完整的顯示界面可分解為多個局部矩陣圖層。顯示項目內容的相關性越強、粘合程度越高,則聚合的數目越多,通過聚合后與串口屏所需通信幀就越少,從而減小工業串口屏“資源”開銷,消除了“丟幀”現象。
多個顯示內容分類聚合,得到一條融合后的新顯示數據命令,而該條命令具備融合前被融合對象全部項目內容信息;一個局部圖層中顯示項目內容相關性越大、數量越多,則融合后需要與串口屏通信命令幀的命令條數減少就越多,從而降低了串口屏的處理負荷。
每一層為一種類型與數據集合,分層模型示意圖如圖3所示。

圖3 分層模型示意圖
①層1(L1)為顯示基礎框架層:顯示界面功能區域劃分與構建,奠定顯示整體效果的基礎;
②層2(L2)為常規參數顯示層:與功能實現有關,用戶所關心和關注的當前運行主要參數顯示;
③層3(L3)為狀態顯示層:整個系統和運行狀態顯示,比如運行日志等的顯示;
④層4(L4)為操作標識層:主要為用戶提供交互操作標識和標注。
依據上述模型核心思想,對分層聚合模型的具體運用進行詳細描述,該方法的流程示意圖,如圖4所示。

圖4 方法設計原理流程圖
具體方法流程如下:
S0:查找所使用工業串口屏的技術資料,確定所使用的工業串口屏通信幀緩沖區最大值,將緩沖區最大值定義為UNb。
S1:將項目規定所需全部顯示內容進行規劃,分解成多個功能幀界面,其中:分解后每一張顯示界面定義為一幀,每一幀界面記為Px,x為幀的序號;分解得到所有幀定義為總幀數,記為PX。
S2:計算當前幀內容顯示所需與工業串口屏通信命令總數量PxNb,其中Px標識為哪一幀,Nb為當前幀所命令數。
S3:判斷當前幀通信命令數量PxNb是否小于UNb,如果小于則進入S6,否則判定為需要進行分層聚合界面進入步驟S4。
S4:依據當前幀顯示內容的相關性進行分類,完成初步分類,計算分層聚合后內容顯示所需通信命令,定義為NPxNb。
S5:判斷NPxNb是否小于UNb,如果小于則進入S6,否則重復S4步驟,繼續進行聚合分層。
S6:判定當前幀為合格顯示幀,在后續顯示中不會出現“丟幀”現象,執行進入步驟S7。
S7:判斷當前分析的幀界面序號Px是大于總幀數PX,如果小于則完成第Px+1幀分析判定,執行步驟S2,否則執行步驟S8;
S8:完成項目全部幀內容顯示分層、聚合與規劃。
該方法在工程項目“XXX短波通信電臺”上進行了實際工程應用。
其應用場景抽象模型如圖5所示:

圖5 實際應用模型圖
實驗應用場景與參數,如下:
(1)工業串口屏型號:迪文DMG32240S035-01WT;
(2)主控板:PowerPC P1012模塊,VxWorks6.9系統;其中,串口1通信波特率為38400 bps,串口2通信波特率為9600 bps;
(3)輸入鍵盤:帶RS232串口的4x4矩陣鍵盤;
(4)“XXX短波通信裝置”其他功能單元。
實際項目方法實施某一界面如圖6所示。

圖6 短波通信裝置顯示界面分層模型示意圖
其通信命令幀數量對比,如表1所示。可以看出,分層聚合模型的方法所需的通信命令幀數量小于常用方法。

表1 短波通信裝置界面通信幀命令數量比較
該方法在實際的工程項目“短波通信電臺裝置”的人機交互中進行了應用。
圖7所示,為截取的幾個典型應用場景,如:掃描守候狀態(圖7(a)),其信道號、接收頻率顯示的速度較快,其界面刷新的速率最高;呼叫探測狀態,其信息狀態顯示數量和發射時的狀態變隨時變化,是一種促發性變化;定頻操作界面(圖7(b)),其需要顯示的信息內容相對穩定,一般僅在發射狀態下狀態信息變化較快;系統參數時間設置(圖7(c)),其顯示的信息內容相對固定。

圖7 分層模型短波電臺串口屏顯示效果實物圖
通過上述幾個場景的應用可以看出,針對不同場景下的應用,其實際顯示內容完整,清晰可懂,沒有出現“丟幀”現象。
串口屏在短波電臺中使用廣泛,本文從串口屏的設計原理角度,分析了出現“丟幀”現象的本質原因;從應用層角度,通過前期的顯示控制原理設計,對顯現控制進行定性分析(分類、分層)和定量計算,定量計算得到所需的通信命令開銷,分類后構建了合理的界面顯示分層模型,提高代碼設計階段工業串口屏的使用與開發效率,保障了目標顯示效果實現,實現較好的用戶體驗。