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