?

鴻蒙操作系統在智能測量儀器中的應用

2023-01-28 13:29王晶星李新良李維
計測技術 2022年6期
關鍵詞:鴻蒙時鐘分布式

王晶星,李新良,李維

(航空工業北京長城計量測試技術研究所,北京 100095)

0 引言

測量儀器[1]是科學研究和科學發展的基礎條件,現代科技的重大突破依賴于領先的測量技術[2]。美國商務部研究報告顯示:其測量儀器與設備的生產總值約為美國制造業總量的4%,但對美國國民生產總值的帶動效應卻超過66%。也就是說,測量技術具有價值撬動、有效賦能以及創新帶動經濟的重要功能。當前,測量儀器逐漸朝著數字化和網絡化的總體方向發展,而測量儀器產品性能的發展目標是高精確度、高可靠性、高環境適應性。隨著計算機技術的發展,智能化是測量儀器發展的重要方向。智能測量儀器利用計算機系統實現傳統測量儀器的功能,包括自動采集、實時修正測量誤差、綜合處理測量數據、控制管理輸入輸出設備等功能,促進了儀表的準確性和便捷度,測量儀器的智能化離不開嵌入式操作系統(Embedded Operating System,EOS)的支撐。

隨著國際科研環境的變化,發展具有自主知識產權的嵌入式操作系統已經成為了共識。目前,國內的嵌入式操作系統研究和開發的主要目標是為航空航天、城市軌道交通、信息通信裝備等產業形成自主可控的操作系統。華為的鴻蒙操作系統(Harmony OS)在國產化道路上迅速發展,其分布式和微內核特性,讓測量系統中各模塊的連接更流暢,數據傳輸也有了統一的語言。通過拓展總線接口,有利于實現測量設備之間的智能互聯。將鴻蒙系統植入測量儀器中,可以擴大測量儀器的智能化水平,使測量儀器的功能進一步擴展提高。同時,鴻蒙系統作為國產操作系統,提供了自主可控、國產化的軟件選擇,提升了現有儀器的功能與自主化水平,為計量儀器搭載國產平臺完成了初步的探索。

通過分析智能測量儀器的技術背景和需求,基于嵌入式操作系統的特點和分類,研究鴻蒙系統的基本特性,對鴻蒙系統在智能測量儀器中的應用進行歸納總結,驗證鴻蒙系統的可用性,最后分析和展望鴻蒙系統在測量領域的發展前景。

1 嵌入式操作系統的概念和特點

1.1 嵌入式操作系統的概念

操作系統(Operating System,OS)是計算機系統中基礎的系統程序,它對整個計算機控制系統的硬件和軟件信息進行控制和處理,以合理配置整個計算機控制系統的能力和資源,促進計算機與其他硬件和軟件的連接和通信。如圖1所示,操作系統處于硬件之上,直接面向硬件,統一管理硬件資源;處于用戶和應用程序之下,幫助應用程序訪問各種物理資源并提供抽象的接口。

圖1 計算機體系的層次結構Fig.1 Hierarchy of computer system

嵌入式系統運行在計算機平臺中,用于控制和管理其他設備,其硬件和軟件可進行裁剪和配置,軟件代碼短小而精悍,可以固化,并具有低功耗、高可靠性、高穩定性的特征。嵌入式系統結構通常由四部分組成,包括嵌入式微處理器、外設硬體裝置、嵌入式作業系統和應用程序。嵌入式系統在電信系統、電子產品、儀表、航空電子、醫療設備、智能家居等領域都有廣泛的應用。

嵌入式操作系統[3]在嵌入式芯片環境中運行,并且對整個芯片系統及其可操作、管理的所有單元設備、部件裝置等資源實現統一的協調、調度、指揮和控制[4]。在實現智能測量儀器的過程中,嵌入式操作系統的作用有:為測量儀器的硬件模塊提供底層驅動,以傳遞控制數據信號;協調測量系統應用層各個模塊的功能調度,保證整個系統的實時性。嵌入式操作系統通常分為分時操作系統和實時操作系統。

1.2 分時操作系統

在分時操作系統中,多個用戶共同使用一臺主機,在一定程度上節省了資源。系統服務請求采用時間片輪轉的方式處理,多個終端通過通信線路連接,多個用戶交替地占用主機服務器上的時間片來處理作業。

分時操作系統的典型代表是Linux操作系統,也是目前較為普及的開源操作系統。Linux操作系統的系統內核性能高、穩定、安全、網絡特性好,具有良好的可移植性、可靠的系統安全以及豐富的驅動以支持廣泛的周邊硬件設備。

2015年,董思喬[5]等人基于Linux和Wi-Fi構建了智能家居控制系統,系統采用PC主機和智能手機作為基本硬件平臺,輔助Wi-Fi智能插座、Wi-Fi智能傳感器和Wi-Fi設備控制電路,實現了運行穩定且響應快速的智能家居控制系統。2017年,孫忠祥[6]基于Linux系統完成了聯網與數據轉發、傳感器數據采集以及遠程監控的功能,實現了智能農業溫室大棚遠,程監控系統的設備云平臺。2021年,郭堂偉[7]等基于Linux和ARM芯片設計了醫院空氣質量實時檢測系統,采用Lora無線技術作為通信支撐,設計了主控、采集和通信三大模塊,空氣質量檢測效率顯著提升。

分時操作系統能夠向用戶提供良好的界面和及時的響應,每次應用中得到系統資源的機會比較平等,而且出現重復垃圾任務的機會較小,相對來說也能夠縮短CPU的閑置時間。不過分時操作系統還面臨著可靠性問題和數據通信的困難,因此需要特別注意用戶程序和用戶數據的安全與完整性,而且分時操作系統不能處理一些緊急任務,它循環地為每個用戶/作業服務一個時間片,對每個用戶/作業完全公平,所以實時處理用戶任務的能力比較欠缺。

1.3 實時操作系統

實時操作系統,是指能夠在有限的響應時間內,將所需緊急性等級的服務提供給應用程序的操作系統?!皩崟r”是指運行操作系統的計算機對于輸入信息可以做出及時的處理,并在被處理對象指導的時間范圍內迅速做出反應。因此,實時操作系統在內核設計、調度策略選擇、任務優先級的分配等方面與其他操作系統均有顯著差異,典型例子是VxWorks,RT-Thread、鴻蒙系統等。

VxWorks是一個具有高性能的內核以及友好的用戶開發環境的嵌入式實時操作系統。VxWorks的特性是:可裁剪的微內核結構、允許按需選擇的操作系統組件、高效的任務管理、靈活的任務間通訊和微秒級中斷處理。VxWorks系統由于公用程序精練且效率很高,使延遲時間很短,所以系統自身開銷很小,實現了VxWorks優越的實時性。

RT-Thread是一款國產的物聯網操作系統,開發簡易、超低功耗、安全性高,具備嵌入式操作系統所需的所有關鍵組件(包括GUI、網絡協議棧、安全傳輸、低功耗組件等),因此具有大量的可支持的芯片、合作廠商、踴躍的社區開發者和廣泛的應用領域。表1對比了VxWorks和RTThread實時性能方面的主要指標。

表1 VxWorks和RT-Thread實時性能主要指標Tab.1 VxWorks/RT-Thread real-time performance

楊文豪[8]等人設計了基于VxWorks的PXI 實時讀寫接口,對設備驅動進行了開發、封裝和整合,解決了高速數據采集控制卡在分時操作系統下存在的實時性差、不穩定、控制復雜等問題。劉恩凡[9]等人設計了基于VxWorks的某裝備自動測試系統,軟件采用虛擬儀器技術,系統采用標準化信號接口,滿足了裝備測試的實時性需求。張明利[10]等人設計了基于VxWorks的嵌入式多協議通信控制器,實現了效率高并且可靠性好的管理和控制,適用于通訊控制器系統接口多、功能復雜、信息處理能力要求高的場景。

2014年,李明[11]在RT-Thread上設計了全自動生化分析儀測控系統,系統使用CAN總線,RT-Thread提供的實時多任務處理功能滿足了儀器對復雜控制的要求。2018年,盛蔚[12]等人設計了基于RT-Thread的無人機數據記錄儀,對傳統無人機數據記錄儀存在的功耗大、存儲效率低、實用性差的問題做出改進,實現了多通道、大數據流輸入環境下的長時間準確存儲。2019年,莫小凡[13]等人利用RT-Thread和生物傳感器設計了葡萄糖檢測儀,滿足了分析儀線性檢測范圍寬、檢測速度快、檢測精度高的檢測需求。

實時操作系統的顯著特點是具有較高的及時性,根據任務的實時需求,執行優先調度,在規定時間內完成對該事件的處理;同時也具有較高的可靠性。而鴻蒙操作系統不僅提供了自主可控的選擇,還采用了微內核的架構,很好地解決了裁剪嵌入式系統時面臨的問題,并且采用分布式技術來統一協議和數據接口,解決了測量儀器設備語言不統一的問題。

2 鴻蒙操作系統概述

2.1 鴻蒙操作系統概述

鴻蒙操作系統是華為自主研發的一款基于微內核的實時多任務操作系統。于2019年8月9日正式發布,目前已更新至鴻蒙3.0系統。鴻蒙系統的分布式概念是從傳統的單一設備的系統能力出發,對多種終端形式的特性進行適配,能夠同時對多種終端設備進行支持,解決了很多割裂智能終端體驗的難題。從用戶的角度來看,鴻蒙系統可以讓應用場景中的各類終端實現能力互相融合,從而構成一個能夠在不同終端設備之間實現快速連接、能力互助、資源共享的“虛擬超級終端”,匹配合適的設備,提供全場景的流暢體驗。從應用開發者的角度來看,鴻蒙系統引用了各種分布式技術的開放方式,使得開發實現應用程序不受終端設備形態差異的影響,大大降低了開發復雜度和開發成本,使開發者將精力專注在上層業務邏輯上,更加輕松高效地開發應用程序。從設備開發者的角度來看,鴻蒙系統采用模塊化的設計方式,能夠靈活裁剪設備的資源能力和業務特性,適應操作系統對終端設備的各種形態要求。

鴻蒙系統整體遵從分層設計,從下到上依次為:內核層、系統服務層、框架層和應用層。內核層包括內核子系統和驅動子系統。系統服務層包括系統基本能力子系統集、基礎軟件服務子系統集、增強軟件服務子系統集、硬件服務子系統集,可根據實際應用情況對子系統進行裁剪??蚣軐訛殚_發應用程序提供了多語言框架。應用層由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。鴻蒙系統的技術架構如圖2所示。

圖2 鴻蒙系統技術架構Fig.2 Technical architecture of Harmony system

2.2 鴻蒙對傳輸層策略的優化

傳統分布式操作系統的不同終端之間屬于點對點連接,帶寬較為固定,遠端到中心計算機的延遲時間較高。若整體鏈路中有設備突然離線,會導致與其相連的分布式節點受到影響,從而導致整體網絡不穩定。而不同節點的節點能力也不對等,資源分配不均勻的情況下會導致算力、帶寬受到限制,從而導致整體效率的下降。為優化這些不足,低功耗傳感網一般采用ZigBee或藍牙進行組網,拓展整體帶寬,并保證單一設備支持熱插拔。然而這些方式仍然不能解決單一設備算力過低、組網困難的情況,同時也無法保證傳輸時鐘的對等。

鴻蒙系統為解決上述問題,首先從連接協議入手。以藍牙為例,傳統的終端為BLE協議,利用3個固定信道來回掃描進行查找和匹配,效率較低,而鴻蒙則利用對占空比進行控制調速,以特殊頻率匹配,加速發現過程。同時,啟用帶寬更大的Wi-Fi與藍牙配合連接,進行異構混組網,用戶無須設置連接方式,無需復雜的操作即可對不同的設備進行匹配。當需匹配1臺設備時,鴻蒙和傳統分布式操作系統匹配速度時間差異如表2所示。當需匹配設備為4臺時,鴻蒙和傳統操作系統匹配速度時間差異如表3所示。

表2 匹配1臺設備時間差異Tab.2 Matching time difference of one device

表3 匹配4臺設備時間差異Tab.3 Matching time difference of four device

為保證Wi-Fi與藍牙同時開啟的情況下盡量降低功耗,鴻蒙引入了策略控制,即根據當前設備狀態控制設備接入的耗能模塊是否工作。同時采用快速喚醒與啟動芯片,控制Wi-Fi傳輸速率,將芯片性能發揮到極致。

如圖3所示,綠線代表鴻蒙的Wi-Fi調度策略,藍線則為傳統操作系統的Wi-Fi調度策略。在初期的相應階段,鴻蒙快速分配帶寬與存儲資源,使Wi-Fi速率快速達到網絡帶寬的上限,并一直接近滿速率波動。同樣,在穩定階段,網絡限制產生變化時,鴻蒙的調度策略相較于傳統操作系統來說也不會產生過度地上沖或下沖,并持續保持接近滿速率運行。

圖3 鴻蒙與傳統系統Wi-Fi效率對比Fig.3 Comparison of Wi-Fi efficiency between Harmony system and traditional system

Wi-Fi與藍牙共同啟用的另一個好處是最大程度地避免了自身通信產生的數據阻塞。在Wi-Fi速率跑滿的狀態下,鴻蒙可將控制幀分配給藍牙傳輸,Wi-Fi則負責大型數據流的傳輸,減少Wi-Fi處理的管理消息。

與藍牙相似,為最大程度地避免其他Wi-Fi設備搶占信道,該Wi-Fi采用了2.4 GHz和5 GHz多徑雙路并發的機制,且不局限于傳統2.4 GHz無線網的20 MHz / 40 MHz窄帶寬,擴展了國內對于5 GHz避讓頻段的限制,提升了文件的吞吐能力。

盡管鴻蒙Wi-Fi和藍牙的積極調度策略相較于傳統Wi-Fi和藍牙共同使用的功耗降低了10%,但也可以舍棄Wi-Fi從而進一步降低功耗,單通道傳輸則勢必會遇到運力不足等問題,于是鴻蒙也加入了多級動態緩沖池作為到端運力的調度策略,在高帶寬設備未找到其他網內高帶寬設備并對低帶寬設備發送數據時,將無法迅速接收到的數據先緩存至本地存儲,再根據低帶寬設備的接收速度逐步將全部數據發送,防止了數據的重傳,同時解決了老設備對新傳輸協議的兼容問題。

鴻蒙操作系統使用近端控制,擺脫了極端條件下對云端網絡的要求。同時引入了基于軟時鐘的軟總線架構,不但對信道分時復用,防止連接設備過多導致的信號沖突問題,也可以最大程度地降低組網設備掉線導致的數據丟失、大面積設備掉線等風險。設備之間也可進行信息交換,可信設備自組網,并感知上下線及完善信息管理。

2.3 基于軟時鐘的軟總線網絡架構

總線(Bus)是一種內部結構,是CPU、內存、輸入、輸出設備傳遞信息的公用通道,傳統的終端通過總線連接主機各部件,再將外部設備與總線通過相應的接口電路連接,從而構成計算機硬件系統的公用通道[14]。通過這種方式產生了三層線路,分別為地址線、數據線和控制線,且不同設備之間相互獨立,控制者無法利用組網設備與被控設備共享地址線而單獨調試該設備。單獨的設備也由于端對端傳輸而無法在不影響整體網絡的情況下實現熱插拔。

針對傳統分布式的網絡不可靠、延遲受環境影響可能較高、由于設備未形成網絡而導致的有限帶寬、網絡拓撲改變導致的組網失敗等,鴻蒙的分布式架構設計了基于任務總線(sendByte)和數據總線(sendMessage)的軟總線。分布式軟總線的架構如圖4所示。進行分布式軟總線的改造后,全部入網設備被視為超級終端,通過感知、計算、調度將高速通道(Lane)引入資源,將所有終端并為共享資源的集合,同在異構組網內的pad、手機、pc等則可通過LaneHub獲取共享資源。

圖4 分布式軟總線Fig.4 Distributed soft bus

除此之外,為最大程度地利用分布式的空口資源,避免頻段沖突和競爭,鴻蒙系統也舍棄了分布式設備的內部時鐘。這些時鐘由于內部晶振的不同質量決定時鐘偏移不同,很難保證時間的同步性,持續同步又會帶來功耗與通信消耗。而鴻蒙的超級終端則共用一條時鐘,以異構網絡拓撲與結構為基礎,以時間同步的方式為超級終端分布式系統構建統一的時鐘源,協調各設備業務時鐘,并保持高精度時鐘進行分布式業務,即為軟時鐘。軟時鐘的同步算法如圖5所示。以節點P作為基準的時鐘源,其他節點(例如節點A和節點B)與節點P之間,除了本地時間差異外,還存在晶振不同所導致的時間漂移和時鐘頻率差異等。由此可得出節點A和節點B上的數據包接收時間分別為

圖5 軟時鐘同步算法Fig.5 Soft clock synchronization algorithm

式中:T1,1和T1,i為 節點P的數 據 包發 送 時間;

節點之間的數據包接收時間差值為

傳輸時隨機干擾等因素帶來的漂移值為

通過調整時間差,可實現多節點之間的時鐘同步。引入時鐘后,時分復用讓極少的頻譜資源支持更多設備的連接成為可能。根據每個設備的特征、賬號、承載的業務等信息,就可以自動組裝成一個超級終端。同時,可以將現有BLE的3個廣播信道基于分布式軟時鐘的不同時間戳來連接不同設備,使未來幾百臺智能設備連接在一起成為可能。

多設備自動組網后,監測設備可以通過高速通道監測到設備的發生業務、業務特征、需要的帶寬、時延、功耗等,也能從單設備看到設備與全局的關系。這樣,當超級終端中的多對設備發生業務時,就可以通過全視角、單設備視角為其選擇合適的頻點、頻寬的信道為其工作,再加上分層控制及QoS管理,就能最大程度地降低干擾。

除了以上給出的分布式軟時鐘常用的場景,隨著業務復雜性越來越多,分布式軟時鐘還可以在更多場景中發揮更多的作用。比如多設備所帶傳感器信號的采集,分布式軟時鐘就可以使得不同傳感器上時鐘保持一致,以便于保證不同信號的正確性。

分布式軟時鐘對于物理層協同時延小于300 μs,傳輸層時延為500 μs,窗口協同則為1 ms,在日常使用中基本可以忽略該時延產生的誤差。同時,隨著不同設備屬性不同,所承載業務的網絡拓撲不同,其所需要的時鐘不同,軟時鐘將引入復雜網絡時鐘,為業務提供更加精準的時間同步。

2.4 分布式數據管理

在分布式軟總線的能力基礎上,分布式數據管理可以實現測量數據的分布式管理。用戶數據和測量數據不再綁定單一的物理設備,業務邏輯脫離數據存儲,數據在跨設備運行的應用中無縫連接,使測量設備操作更加流暢。圖6為分布式數據管理示意圖。

圖6 分布式數據管理Fig.6 Distributed data management

2.5 分布式任務調度

分布式任務調度構建統一的分布式服務管理(發現、同步、注冊、調用)機制,基于分布式軟總線、分布式數據管理、分布式Profile等技術特性,支持遠程啟動、遠程調用、遠程連接以及跨設備應用的遷移等操作,能夠根據不同設備的能力、位置、業務運行狀態、資源使用、用戶習慣和意圖等,實現跨設備應用的一體化,選擇合適的設備運行分布式任務。圖7以應用遷移為例,對分布式任務調度能力進行了簡要展示。

圖7 分布式任務調度Fig.7 Distributed task scheduling

總的來說,分布式的軟總線可實現測量硬件能力虛擬化、多終端的能力共享、彼此之間進行外設。分布式數據管理及任務調度使操作使用更流暢,跨設備的數據處理方便快捷,對硬件能力進行跨設備的調度,從而做到數據共享、算力共享、人工智能共享。

2.6 Linux、鴻蒙優劣勢分析

在內核方面,鴻蒙采用微內核結構,內核的可移植性比Linux更好,內核穩定性更高,減少了內存的開銷,通過IPC(進程間通信機制)實現進程間通信;而Linux采用宏內核結構,內核的可移植性較鴻蒙差,內核維護量大,系統內核相對較大,因為包含了文件系統、設備驅動,對內存的需求增加,但是通過函數調用直接實現內核模塊之間的通信,提高了內核效率。

在實時性方面,鴻蒙采用硬實時中斷響應機制,真正做到了在規定的時間內完成事件處理的任務響應要實時;而Linux采用軟實時機制,在時間的確定性上比較沒有保障。

3 鴻蒙系統在智能測量儀器中的應用

利用鴻蒙系統在分布式軟總線和軟時鐘中展現出的易于組網、對時準確、實時性高的優越性,對傳統電子測量儀器進行智能化改造。

整個測量系統由下至上包含了三個部分:①感知層:傳感器與專用數據采集設備;②傳輸層:Hi3861開發板;③應用層:鴻蒙終端。感知層中,測量數據由大量散布在一定區域內的各類傳感器節點感知物理量的變化,經過傳感器接口電路對信號進行放大后,由ADC芯片完成模擬到數字信號的轉換,將測量數據送入專用的數據采集設備。傳輸層中,由數據采集設備處理后通過RS485串口通信線路傳遞至海思Hi3861芯片,該芯片將作為數據傳輸模塊,形成一個數據匯聚節點,向下進行串口通訊,向上連接Wi-Fi網絡;接著,傳感器的測量數據通過Wi-Fi無線通信,借助鴻蒙組網技術,建立近場無線通信,實現UDP協議傳輸。應用層中,由搭載鴻蒙系統的設備終端實現應用層功能,完成測量數據的可視化顯示和用戶交互、WEB聯網、數據采集的控制指令、提供開放API等。整體上,由鴻蒙終端完成數據的采集、監控、記錄、控制,實現整體功能邏輯,系統結構如圖8。為將鴻蒙系統移植入智能測量儀器中,進行了以下應用研究。

圖8 智能測量系統結構Fig.8 Intelligent measurement system architecture

3.1 改進任務調度算法

針對測量系統的特點,優化并移植鴻蒙系統內核,改進其任務調度[15]及中斷處理算法。

鴻蒙系統采用的分布式任務調度是多級反饋隊列(Multi-Level Feed-back Queue,MLFQ),不同于Linux使用的完全公平調度模式。設有N個隊列(Q1,Q2,...,QN),其中各個隊列對于處理機的優先級不同,一般來說,優先級Priority(Q1) > Priority (Q2) > ... > Priority(QN),那么位于Q1中的任何進程相對于CPU的優先級,都要高于Q2中的任何進程,依次類推其他隊列。進程調度在優先級最低的隊列QN中,按照時間片輪換法進行;對于其他隊列,遵循先來后到的服務算法,每個進程分配一定的時間片,如果時間片運行完畢,進程還沒有結束,就會進入下一個優先級隊列的末尾。并且,每個隊列的時間片隨著優先級的增加而遞減,其時間片在優先級越高的隊列中會縮短。優先級最低的隊列QN為了方便那些超大作業的完成,時間片一般都很大。

MLFQ調度的重點在于調度器如何設定優先任務。MLFQ并不固定地賦予每項任務優先級。而是隨著任務的運行動態,對優先級進行調整。如果一個任務不停地放棄CPU,比如在等待I/O完成,MLFQ會保持它的高優先級,因為它是個交互式任務。相反如果一個任務占用CPU很長時間,也就是長任務,MLFQ會降低其優先級。通過這種方式MLFQ會隨著任務的運行,不停地學習,進而預測任務未來可能的運行方式。當一個長任務和交互式任務同時運行時,交互式任務一直在最高優先級隊列中,長任務不停地運行到最低優先級隊列中,交互式任務仿佛穿插運行在長任務中一樣。這樣互動式的任務,反應時間很好,而長任務也獲得了良好的周轉時間。所以MLFQ的4個基本規則可以提煉如下:

規則1:Priority(Q1) > Priority (Q2),則運行A,而B不運行。

規則2:如果A,B優先級相同,那么A和B都輪流運行,采用輪詢調度策略。

規則3:當任務到達系統時,把它放在最高優先級隊列中。

規則4:如果任務用完整個時間片,把它從高優先隊列往下移動一級;如果工作在其時間片以內主動釋放CPU,則優先級不變。

目前的MLFQ,看起來似乎是公平的,對長任務來說會公平地分享CPU,對短任務或者IO敏感的交互式任務也能更快地運行。然而,這種實現方式還有嚴重的問題,就是“餓死”問題,如果系統中有太多的交互式任務運行,他們加起來會消耗掉所有的CPU時間,則長任務不可能獲得任何的CPU時間(稱為“餓死”)。

隨著時間的改變,任務的類型也會發生改變。CPU密集型的程序可能會在后面變成交互型的程序,按照這種策略,到了最低優先級后無法再往上移動,也就無法重新被系統當作是交互式任務。

這個問題基本的解決思路就是周期性地提升系統中任務的優先級,把任務放到最高優先級隊列中,因此可以提出一條新規則5:在一段時間S后,將所有任務移至最高優先級隊列。

S的大小值得關注,若S值設置過大,長任務“餓死”時間會變長;若S值設置過小,交互式程序就不會獲得本該公平的CPU資源,如圖9所示。

圖9 設置S值Fig.9 Setting of S value

引用新規則后解決了兩個問題,保證不會有任務被餓死。當CPU密集型的程序變成交互式程序時,能再次獲得調度器的信任。首先,這個過程不會餓死,在最高優先級隊列中,它會以輪轉的方式將CPU分享給其他高優先級的工作,這樣才能最終得到執行;其次,如果一個CPU密集型的工作變成了交互,那么當它的優先級提高時,能再次獲得調度器的信任。

3.2 中斷控制設計

鴻蒙操作系統的中斷均采用中斷向量表的方式進行處理,中斷號是一個特定的中斷請求信號標志,與中斷號對應的是中斷向量,中斷向量是一個入口地址,用于中斷服務程序。中斷向量表是所有中斷處理程序的入口,處理過程是將一個函數與中斷向量表中的中斷向量在一個虛擬中斷向量表中連接起來。當中斷向量對應中斷發生時,會調用已掛斷的用戶中斷服務程序執行。當一個中斷觸發時,處理器會跳轉到中斷源相應的位置進行處理,并且每個中斷服務程序必須排列在一個統一的地址上。中斷向量表一般是由一個數組定義出來的,或者在起始代碼里給出中斷向量表。如圖10所示。

圖10 中斷向量表Fig.10 Interrupt vector table

為方便測量儀器的使用,特別選擇LOSCFG_PLATFORM_BSP_GIC_V2作為中斷控制器,對應中斷控制過程如圖11所示。

圖11 中斷控制過程圖Fig.11 Interrupt control diagram

3.3 測量方法邏輯判別

當前的自動化檢定軟件普遍是由上位機控制、讀取測量儀器傳輸回的數據并進行數據處理,大部分操作必須由計量人員手工完成,并且無法進行規程要求的環境實時監測等功能。

在對鴻蒙系統進行任務調度處理和中斷控制設計后,測量系統可以在計量任務中合理的調度如邏輯判斷、命令識別、自采集、自適應、自檢驗與故障自診斷等。經過對鴻蒙開發板的模塊化改造與本次任務的數字化計量規程規范的分析,程序可對傳感器、環境條件進行自檢驗與故障自診斷,然后提取規程規范中的操作步驟,包括提供計量參量的儀器控制、計量過程控制、通過算法的邏輯判別完成命令的識別和數據的自動采集與數據處理。在測量過程中可對測量儀器進行自動切換量程、自動適應測量參數,并在監控終端對測量結果進行自適應顯示。通過軟時鐘進行高精度的時序控制,利用優化后的任務調度和中斷控制算法增強儀器軟件實時測量控制的性能。

3.4 自校準與實時校準

傳統上位機一般只能記錄測量儀器傳回的原始數據,并且無法集成對儀器的校準工作,而智能測量儀器可借助鴻蒙系統集成的傳感器自校準方法在檢定前對傳感器進行零位校準,標準校準等。在計量過程中,根據當前接入的儀器數據對傳感器采用校正算法消除系統誤差,實現自校準和自補償,完成對傳感器測量誤差的實時修正,并且提供數字濾波算法,消除隨機誤差,實現測量數據的噪聲抑制。還可以利用數據處理技術對儀表進行非線性特征的自校正,自動按照對應的非線性特性進行轉換,實現測量系統輸入與輸出的理想直線關系,實現方法多采用分段線性插值法和曲線擬合法。

引入鴻蒙系統后,利用其軟時鐘的特性,為測量系統設置一個整體時鐘信號,來保證每個測量模塊時鐘的準確性和同步性,可以避免不同測量時用到的儀器接收指令和處理數據的時鐘不一致,實現在測量條件迅速變換下的實時自校準。同時,由于測量系統需要定時修正誤差,普通智能測量儀器在這部分的開銷較大,而鴻蒙系統可通過分布式軟總線合理分配資源,使自校準任務不會過度占用采集資源與數據處理的資源。

3.5 測量數據的擴展性與準確性保證

鴻蒙系統對計量設備的智能化改造大幅度減少了整體系統的開銷,并加入了自組網、軟總線等功能,可以拓展計量任務的空間范圍、被檢數量等。同時,可以在測量儀器到鴻蒙開發版之外拓展高精度環境信息監控等,與規程規范中的要求進行比對,保證量值的準確性。由于鴻蒙分布式節點造價低的特點,在特殊計量條件下,例如惡劣環境、非標計量要求等,可以設置多臺計量設備終端作為冗余,保證鏈路的通暢以及數據的準確。

同時,分布式軟總線的軟時鐘可以確保遠端計量設備傳輸數據的實時性,外加對計量參量的儀器控制,使數據更加準確。用戶可通過手機、平板等匯總設備實時監控每一臺設備的運行情況以及環境信息,也可以單獨查看某一臺遠端設備的狀態,同時可以控制此次計量任務的進行。

得益于鴻蒙對任務優先級的分配,一般計量任務所用到的業務也可根據重要性進行優先級排布,如表4所示。

表4 計量任務優先級排布Tab.4 Measurement task prioritization

對于數據采集設備,盡量提升其資源占用以保證計量數據順利地快速回傳,同時調用鴻蒙系統的任務總線,將原始記錄和校準修正計算保存至分布式終端中處理性能較強的手機、平板設備,同時可以設計對應專業的計量軟件,進行原始記錄表格的生成以及證書的上傳。在全程的低功耗環境監測下,整體任務完畢后,用戶便可選擇將數據上傳至云端或快速出具校準證書,大大降低了數據處理的時間和人力成本,同時大幅提高了數據的準確性。

3.6 用戶界面顯示

傳統的儀表由于專注于測量的準確性,往往只提供最基本的字符顯示功能,如果對儀器不熟悉,需要耗費很長時間學習操作。而鴻蒙系統則可通過向儀器直接發送指令,而將晦澀難懂的儀器指令變成可視化操作界面,通過增加輔助功能,大大增加了儀器的可用性。

開啟鴻蒙終端APP后,完成主窗口的創建。首先創建事件,初始化定時器,定時器每隔1 s顯示時間,向開發板發送指令。UDP開始監聽特定端口,UDP接收到數據產生中斷事件,進行顯示。設置時鐘1,使其每隔1 s在右上角顯示當前時間,并通過UDP以“GBK”的數據格式發送命令“sendcmd”,IP地址為當前IP地址192.168.1.169,UDP在192.168.1.-網段內監聽,監聽到數據后觸發收到數據事件,將接收到的字節數據轉化為文本,分別放到各個標簽中,即可完成顯示。

使用標簽、按鈕、時鐘、數據報等組件進行頁面布局設計,鴻蒙終端APP的主界面如圖12所示。

圖12 鴻蒙終端APP的主界面Fig.12 Main interface of Harmony terminal APP

3.7 硬件功能拓展

在鴻蒙操作系統環境中實現智能測量儀器的開發,脫離了傳統的C51,STM32等嵌入式平臺,采用可運行鴻蒙系統的海思Hi3861芯片作為主控芯片。該芯片集成了32位高性能微處理器,包含硬件安全引擎,并且具備豐富的外設接口,包括SPI,UART,I2C,PWM等,可通過對GPIO口的編程與配置,實現與測量系統中的各種測量儀器、數據采集卡、信號放大器、主傳感器、附加傳感器、傳感器模擬器等設備的連接,通過串行和并行的通信接口組成測量控制系統,可提高智能測量儀器的硬件拓展性和兼容性。同時,基于鴻蒙系統的分布式軟總線特性,合理分配并實時監控各任務和線程的通信接口,使硬件設備更便捷地與上位機終端設備進行連接和通信,實現對輸入輸出設備的自動控制與管理。利用Wi-Fi結合UDP協議傳輸的網絡特性,增強智能測量儀器分布式測量與控制性能。

串口通信[16]是最基本的單片機通信,在鴻蒙開發板的海思Hi3861模塊中,用于串口通信的UART2接口使用GPIO11和GPIO12管腳。在通信過程中,首先實現UART2的初始化,編寫初始化函數、讀數據函數以及收發數據函數,將接收到的數據再次發送出去。在開發過程中,需對UART2進行使能,初始化GPIO為UART2,對GPIO11和GPIO12進行初始化,接著配置UART2的波特率、數據位、停止位、奇偶校驗和流控,設計數據傳輸的協議和格式,然后在任務中調用UART2串口讀寫函數和任務處理函數,最后對業務代碼和模塊的腳本進行編譯。

4 總結

在分析了鴻蒙系統的技術架構以及分布式特性后,發現其在可靠性、安全性、連接性方面均有較高的優越性。和已有的Linux系統進行比較,鴻蒙系統的內核移植性好、系統穩定且開銷較小。本文設計了基于鴻蒙系統的智能測量系統,驗證了鴻蒙系統可以在任務調度與中斷控制、自動采集、自動校準、數據傳輸、用戶界面和硬件通信方面,滿足智能測量儀器對嵌入式操作系統的需求。

將鴻蒙系統根據測量系統的特點進行優化,結合其分布式軟總線與軟時鐘的特性,可為測量系統提供更智能、實時性更強的操作平臺。將來可在長、熱、力、電等測量領域進行功能拓展,利用鴻蒙系統的多任務開發模式,不斷更新配置功能,從而實現全面的智能測量云平臺。

猜你喜歡
鴻蒙時鐘分布式
奇思妙想(4)
別樣的“時鐘”
鴻蒙:打破安卓壟斷 所有權歸屬國家
鴻蒙來了
古代的時鐘
華為一大批鴻蒙商標等待審查
分布式光伏熱錢洶涌
分布式光伏:爆發還是徘徊
有趣的時鐘
時鐘會開“花”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合