黃思遙
摘 要 對于過程自動化和工廠自動化的系統應用的整個過程,有著大量的現場信號需要進行檢測和控制,而這些信號都必須嚴格的符合安全規范的要求,例如必須嚴格的符合著防爆的安全要求,以及ISO機械安全要求等。目前來看,比較主流應用的一些工業儀表之間并沒有存在真正的安全信號的數字化的傳輸。隨著科技的發展、智能化工業的進一步普及,工業儀表的數字化、智能化逐漸的成為了一種大的趨勢。本文主要對基于實時操作系統的智能儀表的軟件設計進行了詳細的介紹。
關鍵詞 實時 操作系統 智能儀表 軟件設計
中圖分類號:TP332 文獻標識碼:A
1智能儀表優勢
智能儀表和那些傳統的機械式、電磁式儀表存在著很大的差異,它主要是使用微處理器通過實時的對軟件進行控制來控制儀表的運行的,這使得系統能夠更加的安全、可靠。傳統的儀表在系統的運行過程中,如果受到了外界的因素的干擾或者自身產生了一些能夠糾正的故障以后,很有可能導致自身的故障,進一步使得整個系統造成癱瘓。而智能儀表則能夠很好地解決這些問題,其自身的微處理器能夠對系統進行自主的干預,實時的減弱外界因素的影響并且糾正自身存在的故障,使得系統的狀態回到穩態。在對儀表進行維修的時候,傳統的一起不能夠自動的指示故障的所在,而智能的儀表能夠對故障進行自動的指示并且反映出可能存在的故障原因,這能夠很好地提高維修的效率。傳統的儀表往往對于測量值都是直接的顯示的,當測量的對象發生了頻繁并且微小的變化的時候,儀表的指示值會發生劇烈的抖動,這很容易導致儀表的不可用或者顯示的不準確,而智能儀表很好地解決了這個問題,它能夠通過平滑的算法很好地消除這些指示值存在的頻繁的、微笑的抖動,從而使得指示值能夠相對來說比較穩定、可靠。因此,對智能儀表進行研究有著很大的必要性。
2硬件系統
目前來看,ARM CortexM3/M4處理器在工業安全上應用有著很多技術性的優勢,例如哈佛總線架構是32位尋址、低功耗、高性能,而且還具有OS支持、軟件的可移植性等優勢。
ARM CortexM3/M4 處理器在設計的最初就考慮到了OS應用的問題,因此它設計所具有的多個特性能夠保證OS的實現和OS的高效運行。
ARM CortexM3/M4 處理器中存儲著主堆棧指針MSP以及進程堆棧指針PSP。對于這種設計而言,所具有的有點就是如果應用遇到了一些問題有可能導致棧的破壞,OS內核中使用的棧以及正在進行其他的任務的棧不會受到影響,這樣能夠保證系統的可靠性得到了進一步的提高。
基于實時操作系統的智能儀表軟件的硬件系統是使用ARM CortexM3/M4 處理器作為核心的,并且使用并行的數據總線、外擴的SRAM、NAND FLASH來進行對存儲器資源的進一步的擴充的。外設的硬件接口中目前涵蓋了工業上的主流的接口配置。
隨著信息技術的發展,德國工業4.0的提出,工業以太網逐漸的興起,網絡通信接口已經逐漸的成為了智能儀表和設備互聯互通的比較簡單方便的一種接口標準。ST公司的幾款M3/M4處理器都繼承了以太網 MAC IEEE 1588,硬件上能夠再通過RMII/MII接口連接一塊物理芯片就能夠實現了。使用的通信協議是使用的比較廣的TCP/IP協議。通過將相應的軟件協議棧進行移植,能夠實現各種主流的現場總線。同時,硬件中還會使用一些包括工業SD卡,RTC時鐘等豐富的設備作為硬件資源,這樣使其能夠更好地滿足工業檢測以及更好的控制對應用場合的需求。
3軟件設計
3.1輪詢模式
對于簡單的系統來說,CPU可以一直處于等待的狀態中,一直到有時間突然的發生的時候,再進行事件的分析和處理,在處理了以后cpu會繼續的等待。而輪詢模式則能夠滿足一些簡單的應用需求。但是,當應用程序變得更加的復雜的時候,也會出現一些其他的問題,如輪詢模式的程序設計和維護會變得更加的困難。除此之外,輪詢模式很難對事件的優先級進行重新的定義,這會導致系統的反應相對來說比較遲鈍。當有進擊的事件發生的時候,cpu如果還在處理那些并不是很重要的事情,直到處理完畢以后才能夠對其進行響應,這樣就會導致系統的實時性能非常差。
3.2中斷驅動模式
對于那些對于功耗有一定的要求的系統來說,只能選擇這種驅動模式。當cpu在等待某個事件的時候,能夠進入到低功耗的模式中,進而降低cpu的工作能耗。在中斷驅動的模式中,不同的外設能夠被設置成不同的中斷優先級,這些優先級的分類是根據系統中的重要等級進行設計分配的,那些優先級比較高的中斷可以打斷那些優先級比較低的中斷程序,這些軟件流程機制的響應是非常的迅速的。在大多數的情況下,軟件的設計會將輪詢模式和中斷驅動模式很好地結合起來,使其能夠更好地滿足實際的需求。在有了某個緊急的時間需要服務的時候,會使用中斷驅動程序剪一個中斷請求出發。當中斷服務子程序處理完畢以后,它就會回到主程序中去,使用輪詢的方式進行應用程序的處理。
3.3時間片輪轉模式
當應用程序復雜到了一定的程度的時候,輪詢模式還有中斷的驅動程序都不能給滿足實際的應用需求,因此需要采用基于實時操作系統的多任務系統來進行操作。當系統中的任務有的執行時間過長的時候,也需要滿足系統的實時性的相應需求,因此為了滿足這種需求需要將處理器的時間劃分為多個時間片,并且可以將這些時間片分給這些任務。實時操作系統RTOS的內核可以處理多任務的調度。目前來看,能夠用于Cortex-M處理器的實時操作系統能夠達到30多種。多任務的系統能夠通過高效的后臺調度以及時間管理等,使得程序的結構變得更加的標準和健壯,這樣能夠保證應用程序的開發過程變得更加的高效。
3.4搶占式調度模型
基于時間的觸發方式在嵌入式的軟件領域有著十分重要的應用,這種方式更加的簡單可靠,并且其預測性也會更好一些,在一些安全的關鍵領域有著十分廣泛的應用。基于這種機制設計的實時操作系統,是一個可剝奪的多任務系統,并且其中沒有任務的數量的限制,因此是 C/OS的第三代的內核。系統中支持先進的搶占式的調度方式,這種調度方式能夠保證當最高優先級的任務一旦就緒,就總是能夠得到CPU的控制權,也就是說優先級高的進程能夠搶占式的調度內核使得優先級低的進程暫時停止任務。也就是說在實際的工作過程中,如果中斷服務子程序使一個優先級比較高的任務進入就緒態,在中斷完成以后,優先級高的那個任務開始運行,這種調度機制能夠保證任務的調度得到快速的響應。
4關鍵技術
4.1中斷和實時措施
響應中斷是十分關鍵的一個技術,就是要調用5個模塊中的某一個運行,如果響應中斷的時候把整個模塊都運行完畢之后在進行中斷返回,由于在這個過程中微處理器的中斷應該進行屏蔽,而計數器的中斷如果很頻繁的話就會導致很多次的計數器的中斷難以得到響應,這樣就使得系統的可靠性大大的降低了。因此可以將中斷響應分為中斷處理和中斷服務這兩個部分,響應中斷的時候只作中斷處理,就是說根據中斷源、系統的狀態以及計數值的情況通知系統需要調用5個模塊中的某一個作為中斷服務的程序,并且對參數進行調用,這個請求被保存到一個等候的服務隊列中,然后將中斷返回,返回的出口就是這個等候服務隊列中優先級最高的請求的服務程序,這樣能夠保證中斷可以及時的得到響應,同時還不會將調用的中斷服務程序中的信息丟失。
而5個模塊的調用級別是不同的,往往根據重要性進行排序。對于同一級別的不同調用參數的調用請求,就會按照時間的順序對其進行調用,也就是按照先來先服務的原則將先進入隊列的請求進行優先的響應。這樣,能夠保證等候調用的隊列可以形成一個優先級維和時間維的二維隊列。也就是說,模塊維內的按照優先級進行響應,時間維內的按照先進先出的原則進行響應。
4.2可靠性措施
可靠性對于一個實時系統來說是十分重要的一個指標,這個系統主要采用這樣的方式來進行可靠性的控制:
第一,設置一個看門狗電壓。這個電壓和微處理器的復位端相互連接,在系統工作比較正常的時候,會定期的進行“喂狗”。
第二,設置一個故障的顯示燈,在系統產生了故障而自己又不能夠修復的時候,可以對軟件進行實時的控制,使用一組發光的二極管將錯誤的代碼顯示出來,這樣維修的人員就能夠知道故障的類型,使得系統維護的可靠性和維修的效率都會大大的提升。
第三,設置大量的冗余代碼。在系統運行的期間,由于一些偶然性的因素很有可能導致程序造成異常的跳轉使得系統死機,因此可以設置大量的冗余代碼,將每個代碼段的出口都跳轉到正確的位置上去,這樣就能夠使得不正常的現象大大的減少。
第四,對指示值進行平滑。可以把測量值進行平滑以后再將其作為指示值,這樣做能夠很好地避免由于地形發生微小的頻繁起伏等原因造成的指示值劇烈抖動等問題。
4.3數字模擬顯示
通常來說,儀表往往只帶模擬的顯示,從而存在直觀性較差的問題,并且當儀表的指針出現機械誤差的時候很有可能造成指示值不準確的問題。因此,在智能的儀表上,在模擬顯示的基礎上增加了使用數碼管進行數字顯示。對于主機和數字顯示的部分之間使用串行通信的方式進行通信。實現數字顯示的關鍵性內容在于:
第一,數據格式。為了能夠使得接收方的負擔大大的降低,發送方應該將高度數據處理成合適的合適,使得接收方能夠使用這樣的格式進行顯示,而數據又不需要被拆開。
第二,數據傳輸機制。發送方會定時的發送數據,這樣做能夠很好地保證數據的刷新頻率,而接收的一方在接到數據以后會給發送方發送應答的信號ACK,如果接收方沒有收到數據,或者收到的數據不正確的時候,數碼管就會顯示錯誤的標志并且對接受黨的串行通信部件進行重新的初始化。而發送方如果長時間的沒有收到應答的信號,就會重新的對發送的數據進行初始化,對于串行的通信部件進行重新的初始化。
5結論
隨著科技的發展、社會的進步,智能化的儀表逐漸的有著越來越廣泛的應用,它有著很多傳統的儀表沒有的優勢。在這樣的背景下,本文主要對于基于實時操作系統的智能儀表的設計進行了深入的分析,首先分析了智能儀表具有的優勢,然后簡單的介紹了其具有的硬件,最后對于軟件設計進行了詳細的分析。軟件是智能儀表的魂所在嗎,也是設計的核心基礎技術,希望本文能夠起到一定的參考價值,從而給相關的技術人員提供一瀉嵌入式智能儀表開發的思路。
參考文獻
[1] 倪敏.基于實時操作系統的智能儀表軟件設計[J].自動化儀表,2017,38(08):96-99.
[2] 張倩.基于WinCE的車載智能儀表系統設計[D].西安:西安電子科技大學,2009.
[3] 童曉斌,戴瑜興.基于實時操作系統 C/OS-II的智能控制器嵌入式軟件設計[J].電氣應用,2007(08):77-80.
[4] 廖遠江.基于ARM嵌入式微處理器的智能儀表軟件設計[D].昆明:昆明理工大學,2007.
[5] 黃琦.新一代智能儀表[D].杭州:浙江大學,2006.
[6] 黃志宏.基于RTOS的無接觸小位移測量系統的設計與實現[D].武漢:武漢理工大學,2006.
[7] 劉俊.嵌入式實時操作系統在溫度測量系統中的應用研究[D].武漢理工大學,2006.
[8] 王克星,歐陽森,宋政湘,陳德桂,王建華.基于實時多任務操作系統的智能脫扣器系統軟件設計[J].西安交通大學學報,2002(08):789-792+797.