黃夏陽,張 濤,朱秋煜,鄭偉波,樊 平
(1.上海大學通信與信息工程學院,上海 200444;2.中國科學院上海技術物理研究所,上海 200083;3.中國科學院大學電子電氣與通信工程學院,北京 100049)
空間生物實驗系統(以下簡稱實驗系統)是用于在空間飛行器平臺上開展生物科學研究的特殊專用實驗裝置[1-2]。實驗系統通常采用遠程操控工作模式,一方面,實驗系統采集、存儲實驗過程中的各類科學數據、圖像和工程數據[3],并按照規定的協議及時將數據下傳至地面,供科學研究人員分析判斷;另一方面,實驗系統接收由地面上傳的各項指令,并按照指令控制實驗流程,實現實驗遠程操作[4]。實驗系統的遠程測控監視軟件是實現下行數據監視和上行測控指令生成的重要組成部分,軟件的功能和性能與實驗系統的具體需求密切相關。
國際空間站配置的生物實驗平臺Biolab利用遠程監控系統實現了在地面接收反演由航天器平臺數據傳輸系統實時傳送的測量數據和圖像信息,以及科學研究人員利用自動操作模式和遙科學控制方式對空間實驗的操控。
2006年發射的實踐八號衛星搭載的高等植物培養實驗中,采用遠程監控軟件支持實現中國首次實時觀察并記錄了空間環境下青菜開花生長實驗全過程。
2016年發射的實踐十號衛星開展的微重力條件下哺乳動物早期胚胎發育實驗中,采用遠程成像監控軟件支持實現了胚胎顯微圖像數據下傳、培養實驗過程測控,以及地面研究人員對空間實驗的遙操作。
2017年發射的“天舟一號”貨運飛船開展的細胞培養實驗中,采用遠程成像監控軟件實現了基于在軌顯微圖像和地基注入實驗參數模式的細胞固定、多次染色和清洗的全自動操作與遙控制[5]。
綜上所述,實驗系統測控監視軟件的定制化程度較高,需要密切配合實驗系統的設計需求,共同可靠高效地完成實驗任務。在上述若干應用中,實驗系統測控監視軟件具備了通過遠程通信在地面測控空間實驗的能力,尚不具備支持在軌人員直接干預空間實驗的人機交互接口,只能通過地面人員進行遙操作,及時性和便利性有待改進。
C# .Net框架是微軟公司推出的應用軟件開發平臺,可以進行高效、高質量的Windows應用程序開發,得到了各個領域的廣泛應用,如實時監測[6]、數據可視化[7]、工業控制[8]、人工智能[9-10]等領域。
根據實驗系統任務需求,基于C# .NET平臺研究實現實驗系統測控監視軟件,需要滿足實驗系統綜合性能要求,要求結合實驗系統實際測試驗證監顯軟件的有效性,且人機交互接口通過人機工效學評價。
實驗系統硬件主要由箱體結構、微重力培養模塊、模擬重力比對模塊、可見光成像模塊和電控箱組成,主要實現生物樣本連續培養、顯微成像觀察、模擬重力對照、實驗環境及流程控制、科學和工程參數采集傳輸等,實驗系統內部組成與功能關系如圖1所示。

圖1 實驗系統功能框圖Fig.1 Functional block diagram of the experimental system
實驗系統采用嵌入式軟件,由主控數字信號處理器(digital signal processor,DSP)軟件、溫控DSP軟件、以太網復接現場可編程邏輯門陣列(field programmable gate array,FPGA)邏輯組成,如圖2中虛框部分所示。軟件在硬件平臺上完成相應的測量、運算和控制功能,主要包括實時采集和處理實驗系統內部的溫度、氣體濃度等參數,通過算法實現對溫度、氣體濃度的精確控制;按照參數設置控制離心機電機轉速,提供適宜的模擬重力環境;根據實驗流程控制實驗進程,適時采集和下傳顯微圖像。

圖2 實驗系統軟件功能框圖Fig.2 Functional block diagram of experimental system software
主控DSP軟件按照科學需求實現實驗系統實驗流程控制,通過串口與以太網復接FPGA邏輯進行數據通信。
溫控DSP軟件通過串口與以太網復接FPGA邏輯實現數據通信,接收并解析由以太網復接FPGA邏輯轉發的控制指令,按照指令參數進行溫度控制和參數采集與傳輸。
以太網復接FPGA邏輯按照通信協議實現接收主控DSP指令、指令解析并分發、接收圖像數據、數據打包和上傳。
遠程測控監視軟件(以下簡稱“測控軟件”)安裝運行于信息綜合管理系統(以下簡稱“綜管系統”)內,主要功能包括:接收、處理、存儲、顯示實驗系統發送的科學數據和工程參數等信息,并通過綜管系統下傳地面;通過綜管系統接收地面上傳數據,并將上傳數據解析、顯示和轉發實驗系統。
測控軟件通過以太網復接FPGA邏輯與實驗系統使用用戶數據報協議(user datagram protocol,UDP)進行數據通信。通過以太網復接FPGA邏輯,測控軟件將數據注入、注入時間碼等發送給主控DSP軟件和溫控DSP軟件,調控實驗系統的過程和狀態;按指定格式接收主控DSP軟件和溫控DSP軟件發來的實驗數據包,解析并顯示科學數據和工程參數。
測控軟件內部功能模塊由顯示模塊、圖像處理模塊、指令處理模塊、工程參數處理模塊和數據管理模塊組成,外部接口包括文件存儲接口、以太網接收接口、以太網發送接口和用戶接口(user interface,UI)。測控軟件功能結構如圖3所示。

圖3 遠程測控軟件功能結構Fig.3 Functional structureof remote control and monitoring software
2.2.1 軟件邏輯視圖
根據功能需求對測控軟件內部模塊按照類、包形式進行設計。類是包裝信息和包裝對信息進行的處理行為;包是具有共性的類的組合。測控軟件劃分為若干包的集合,各個類歸并到不同的包中。最后將類、包或子系統的粗粒度按層分組,按照包層次結構自頂向下逐層分解,測控軟件的邏輯視圖如圖4所示。

圖4 遠程測控監視軟件邏輯視圖Fig.4 Remote control and monitoring software logic view
對類、包或子系統的粗粒度按層分組,按照包層次結構自頂向下逐層分解,具體分層包括用戶界面層、核心功能層、數據處理層及端口協議層。
(1)用戶界面層是測控軟件的人機交互界面,主要實現了包括實驗系統工作參數顯示、樣本培養環境參數顯示、樣本實時圖像顯示、重要事件的提示,以及數據信息接收或發送統計信息等上位機軟件工作狀態的顯示,并提供與用戶的人機交互。
(2)核心功能層是測控軟件的核心層,主要實現測控軟件及其各個接口組件的統籌調度,對接收到的各類信息進行分析判斷處理,決定將進行輸出的數據內容后,將其送往用戶界面與底層接口模塊。
(3)數據處理層是測控軟件的接口層,將來自上層的指令、數據等信息發送給各接口外設,同時接收自外部接口的數據并對進行簡單處理后供核心功能層使用。
(4)接口協議層是軟件進行輸入輸出的基礎,由軟件與外界各類交互信息的格式組成,提供給數據處理層進行輸入信息的解碼與輸出信息的編碼。
2.2.2 軟件模塊功能說明
測控軟件內部模塊設計為22類、合并為8包,類/包劃分及功能說明如表1所示。

續表1
2.2.3 軟件用況視圖
測控軟件包/類采用活動圖(activity diagram)建立用況的動態模型,描述包/類操作實現過程中實現的功能及相互間的交互活動等。
1)通信模塊接收功能
監聽線程啟動后,使用套接字在指定端口監聽接收實驗系統發送的UDP包。由于UDP包長度固定,而某些協議如Jpeg2000格式壓縮圖像長度不固定,因此UDP包中包含的內容無法對齊,需要先暫存于解包緩存類后,再經過逐一判斷格式后解出。主控板消息類解出后更新實驗系統狀態類,其余消息類則觸發事件,通知相關操作線程調用。通信模塊接收功能用況視圖如圖5所示。

圖5 通信模塊接收功能用況視圖Fig.5 Communication module receive function use case view
2)通信模塊發送功能
可靠發送線程從一個指令消息類的并發隊列中接收其他線程生成指令消息類,并按照協議生成UDP包通過套接字向實驗系統發送。然后發送線程等待實驗系統狀態類更新,如果實驗系統狀態類中的指令計數增加,說明發送成功;否則將進行再次發送,直到發送成功或超過3次并發出網絡失敗警報。通信模塊發送功能用況視圖如圖6所示。

圖6 通信模塊發送功能用況視圖Fig.6 Communication module send function use case view
3)指令計劃維護模塊
通過指令計劃類讀取計劃文件并生成指令類隊列后等待計劃維護線程處理。線程根據上位機狀態類中的計劃發送進度信息以及實驗系統狀態類中計劃存儲空間剩余信息確定是否向實驗系統補充計劃中的指令。指令計劃維護模塊用況視圖如圖7所示。

圖7 指令計劃維護模塊用況視圖Fig.7 Instruction table maintenance module use case view
4)存儲數據回讀模塊
回讀線程根據存儲板消息類提供的存儲數據增量信息,生成存儲板指令類后進入等待狀態。存儲板指令通過發送過程后到達實驗系統存儲板,存儲板響應指令向上位機發送存儲的數據,數據經過接收過程后生成回讀數據消息類并觸發回讀線程。回讀線程調用回讀數據記錄類將回讀數據類保存為數據文件。存儲數據回讀模塊用況視圖如圖8所示。

圖8 存儲數據回讀模塊用況視圖Fig.8 Storage data readback module use case view
5)日志記錄模塊
監聽線程等工作線程在運行時,將相關運行參數如計數等更新到線程安全的上位機狀態類中。
狀態保存線程則定時將上位機狀態類按照一定格式保存為日志文件。日志記錄模塊用況視圖如圖9所示。

圖9 日志模塊用況視圖Fig.9 Log module use case view map
6)顯示界面模塊
顯示界面模塊包含實驗系統指令注入界面、手動拍攝操作界面、狀態顯示和提示界面、上位機工作狀態顯示界面,各界面用況視圖如圖10所示。

圖10 顯示界面模塊用況視圖Fig.10 Display interface module use case view map
在實驗系統指令注入界面中,用戶在顯示界面點擊指令注入操作按鈕后,將生成相關主控板指令類,經過發送過程到達實驗系統主控板。
在手動拍攝操作界面中,用戶在操作界面點擊相機操作按鈕后,將生成相機操作相關的主控板指令類,經過發送過程到達實驗系統主控板,主控板根據指令修改相機參數,相機拍攝的新圖片再經過接收過程返回上位機后,接收線程喚起主線程更新圖片顯示,如圖10所示。整個流程的時間跨度約為百毫秒量級,基本上可以實現實時操作響應。
在狀態顯示和提示界面中,實驗系統狀態類更新實驗系統實時狀態并根據實驗計劃推算人工介入提示信息后,喚起主線程更新實驗系統狀態顯示界面和人工介入提示界面。
在上位機工作狀態顯示界面中,上位機狀態類更新后,喚起主線程更新工作狀態顯示界面。
在Microsoft Visual Studio開發環境下,基于.Net Framework框架,采用C#面向對象編程語言,按照以上設計開發實現了測控軟件原型,從底層到頂端分別實現了數據協議、UDP網絡通信、數據處理、功能調度、界面顯示等功能。
將安裝有測控軟件的計算機與實驗系統通過以太網網口相連,實驗系統通電,啟動測控軟件進行測試,測試過程中顯示界面如圖11、圖12所示。主要測試過程如下。

圖11 軟件主界面Fig.11 Software main window

圖12 軟件高級控制界面Fig.12 Software advanced control window
(1)界面顯示功能測試。啟動軟件后,主界面正常顯示,并隨實驗系統回傳數據實時更新。界面右側工作參數區中顯示溫度、二氧化碳濃度、模擬微重力大小等參數;樣品圖示區中顯示實驗系統中樣品裝置狀態及相機工作狀態等。界面左側的拍攝操作區實時顯示相機碼流,后臺輸出調試信息正常顯示刷新幀率。
(2)參數設置功能測試。設置目標溫度值、目標二氧化碳濃度值、目標微重力大小等,觀察到在下一次實驗系統回傳數據時,對應顯示項被更新,說明指令已成功被實驗系統接收。
(3)拍攝操作功能測試。選擇自動對焦模式或者手動對焦模式;在手動對焦模式下,通過方向鍵對相機進行工位微調,觀察到圖像發生相應方向移動。查閱和回放圖像功能正常。
(4)數據回讀功能測試。觀察到軟件成功在目錄下生成了預定大小的回讀文件,文件內容正確。
(5)指令注入功能測試。選擇預設的指令文件注入,觀察到指令注入進度條顯示正常,實驗系統在預定時間點響應了計劃指令。
(6)切換子界面,實驗系統詳細設置顯示正常。勾選若干指令注入,實驗系統響應正常。
其中,參數設置功能、拍攝操作功能、指令注入功能和界面顯示功能都可以通過人機交互接口,由在軌人員現場操作來實現對實驗系統的設置和控制。
測試結果表明,測控軟件運行穩定,指令發送、數據顯示、文件存儲等各項功能運行正常,關鍵性能指標達到要求。
測控軟件構成實驗系統的重要組成部分,一方面通過交互界面支持用戶遠程監控實驗系統運行狀態,另一方面可以擴展實驗系統的數據處理能力,提高了實驗系統的綜合性能。以實現空間生物實驗系統的遠程測量、控制、監視和顯示等功能性能的需求為目標,設計開發了測控軟件,實現了從底層通信到頂層界面顯示等各級功能。通過搭建測試平臺綜合測試,測控軟件運行穩定正常,各項功能性能滿足實驗系統的需求。下一步將針對軟件的靈活性、復用性進行改進,實現各種場景下不同接口不同協議的靈活切換。