獲取設備運行狀態的方法、裝置及系統的製作方法
2023-12-02 02:27:31 1
專利名稱:獲取設備運行狀態的方法、裝置及系統的製作方法
技術領域:
本發明涉及一種獲取設備運行狀態的方法,特別是一種在嵌入式設備故障時獲取設備系統運行狀態的方法;本發明還涉及一種獲取設備運行狀態的 裝置,特別是一種在系統故障時獲取系統狀態的裝置;本發明還涉及一種獲 取設備運行狀態的系統,特別是一種在設備故障時獲取設備狀態的系統,屬 於數據通信技術領域。
背景技術:
現有的通信技術中,嵌入式系統存在廣泛的應用範圍。嵌入式系統 是指以應用為中心、軟硬體可裁減、綜合性要求較高的專用計算機系統, 其嵌入式硬體稱為嵌入式設備,運行的作業系統稱為嵌入式作業系統。現有通信技術中,如圖1所示,主要通過兩種方式實現對嵌入式設備 的管理1. 網絡管理通過網絡遠程登陸到嵌入式設備,從而實現對設備的 遠程管理。這種方式需要嵌入式設備的網絡硬體及網絡協議軟體運行正 常;2. 串口管理直接用串口線將嵌入式設備連接到終端,在終端上對 嵌入式設備進行管理。這種方式需要嵌入式設備的串口運行正常。在系統串口正常運行中,由於嵌入式作業系統實時性要求高,中斷 不能處理太長時間,因此通常用一個線程實現與串口通信。嵌入式操作系 統串口中斷程序接收從串口收到的數據,並發送給與串口通信的線程,後 續由串口通信線程對收到的數據進行命令解析執行,然後將命令執行的結 果信息寫入串口,發送給終端。如圖2串口接收中斷及圖3串口通信線程
的處理流程所示。在嵌入式設備運行發生故障時,很多時候網絡通信無法正常工作, 嵌入式系統無法接收和/或發送網絡報文,導致無法用網絡來管理嵌入式設備;但串口通常使用簡單的字節傳輸方式,無需使用複雜的協議,因此 在網絡通信異常時,串口通信還處於正常狀態,可以使用串口來和嵌入式 設備進行通信。但是,現有嵌入式設備的串口通信中存在如下問題1. 其它高優先級的通信線程故障導致無法與終端正常通信。由於嵌入 式系統實時性要求高,嵌入式系統中每個多線程都有其特定的主要功能, 對於這些功能對應的線程,都會被設置為高優先級。在這種情況下,串口 通信線程的優先級要低於嵌入式系統的功能線程,以便運行終端命令時不 影響系統的實時性。但是,如果高優先級的功能線程發生故障,導致死循 環,則串口通信線程無法得到調度,由此導致終端無法利用串口管理設備;2. 串口通信線程本身出現故障導致無法與終端正常通信。在串口通信 線程執行命令解析時,會執行終端發送來的命令,如果在命令執行中出現 故障,同樣會導致終端無法與嵌入式設備通信。在上述兩種故障發生時,雖然串口通信依然正常,但由於管理串口通 信的線程無法運行,導致了終端仍無法與嵌入式設備通信。終端無法獲知 嵌入式設備的運行狀態,支持人員也無法獲知該設備發生故障的原因,由 此導致處理故障困難,如需要開發人員介入、使用掛接調試器、重新編 譯軟體等方式進行故障定位。如果是在用戶的運行環境裡面出現上述類似 的故障,處理起來會更加困難,耗費大量的時間和精力。發明內容本發明的第一目的是提供一種獲取設備運行狀態的方法,用以解決現有 的串口通信正常卻無法獲得嵌入式設備運行狀態,處理故障及定位故障困難 的問題,實現嵌入式設備系統軟體故障時可以獲取設備的運行狀態,進行快速故障定位和處理故障。本發明的第二目的是提供一種獲取設備運行狀態的裝置,用以解決現有 的串口通信正常卻無法獲得嵌入式設備運行狀態,處理故障及定位故障困難 的問題,實現系統故障時仍可以獲取系統的運行狀態,以快速故障定位和處 理故障。本發明的第三目的是提供一種獲取設備運行狀態的系統,用以解決現 有的串口通信正常卻無法獲得嵌入式設備運行狀態,處理故障及定位故障 困難的問題,實現設備故障時仍可以獲取其運行狀態,以快速故障定位和 處理故障。為了實現本發明第一目的,本發明一些實施方式的獲取設備運行狀態的方法,包4舌終端未收到設備對終端發送命令的返回信息時,向設備串口發送預設 的探測信息;所述設備串口收到所述探測信息後,直接讀取設備運行狀態,並通過所述設備串口發送包含設備運行狀態的運行信息;終端根據所述運行信息獲知設備是否處於正常運行狀態; 所述探測信息為直接讀取設備運行狀態且與所有串口解析命令均不相同的預設信息。從現有技術的缺陷可知,在使用串口時終端無法與嵌入式設備通信, 主要是通信線程上出了故障,但串口中斷可能仍可以正常工作。而本發明 實施方式中對串口的接收中斷進行了特殊處理,在收到預設的探測信息 時,直接讀取設備的運行狀態,並將獲得的運行信息直接發送到串口。由 於串口中斷屬於硬體中斷,優於設備作業系統中的所有線程,因此,只要 設備的中斷運行正常,上述方法的特殊處理在任何時候均可以觸發。同時, 在設備發生故障或異常時,對故障的定位和解決是最主要的問題,本發明 實現第一目的的實施方式不僅可以獲得設備的運行狀態,也為故障定位提
供了重要的信息。為了實現本發明第二目的,本發明通過另一些實施例提供了獲取設備運行狀態的裝置,具體包括接口模塊,與處理模塊連接,用於接收串口的數據,並將處理模塊的 數發送出去;處理模塊,與接口模塊連接,用於判斷接收的字符是否組成預設的探測 信息,並在接收的字符組成預設的探測信息時,直接讀取設備作業系統的運 行狀態,並將包含設備統運行狀態的運行信息發送到接口模塊。本發明獲取設備運行狀態的裝置的實施例具有如下優點或有益效果由 於串口中斷屬於硬體中斷,優於設備作業系統中的所有線程,因此,只要 設備的中斷運行正常,上述裝置中處理模塊對串口的接收中斷進行的特殊 處理在收到預設的探測信息時,直接讀取設備的運行狀態,並將獲得的 運行信息直接發送到串口,在任何時候均可以觸發。同時,獲得的設備的 運行狀態,也為故障定位提供了重要的信息。為了實現本發明第三目的,本發明一些實施方式的獲取設備運行狀態 的系統,包括嵌入式設備及對嵌入式設備進行管理的終端,所述嵌入式設 備還設置有獲取設備運行狀態的裝置,終端通過所述獲取設備運行狀態的 裝置獲取嵌入式設備作業系統的運行狀態和/或根據多次返回的設備運行 狀態信息對設備進行故障定位。實現本發明第三目的的技術方案具有與第一目的和第二目的類似的優 點或有益效果只要嵌入式設備的串口中斷運行正常,上述系統在任何時 候均可以獲取嵌入式設備的運行狀態。同時,當嵌入式設備故障或異常時, 可以在故障當時進行定位,無需使用現有的解決故障的方法,如使用硬體 調試器等進行故障定位,可以節省大量人力、時間及成本,當用戶的運行 環境裡面出現故障時,可以快速處理故障,為用戶儘快解決問題,提高了 解決故障的質量。
下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
圖1為現有的嵌入式設備通信示意圖;圖2為圖1中設備的串口接收中斷處理流程圖;圖3為圖1設備中與串口通信的線程的處理流程圖;圖4為本發明獲取設備運行狀態的方法實施例流程圖;圖5為本發明獲取設備運行狀態的方法中串口中斷實施例流程圖;圖6為本發明獲取設備運行狀態的裝置實施例一示意圖;圖7為本發明獲取設備運行狀態的裝置實施例二示意圖;圖8為本發明獲取設備運行狀態的系統實施例示意圖。
具體實施方式
參見圖4,為本發明獲取設備運行狀態的方法實施例流程圖。如圖4所 示,本實施例包括步驟1.終端判斷設備對串口輸入的命令是否未返回信息,是則向設備 串口發送預設的探測信息,執行步驟2;否則根據返回的信息判斷設備的 運行狀態,結束;步驟2.設備串口收到所述預設的探測信息後;直接讀取設備運行狀 態,並通過所述設備串口發送包含設備運行狀態的運行信息; 步驟3.終端根據所述運行信息獲知設備的運行狀態; 所述探測信息為直接讀取設備運行狀態且與所有串口解析命令均不 相同的預設信息。在使用串口時終端無法與嵌入式設備通信,主要是通信線程上出了故 障,但串口中斷可能仍可以正常工作。本實施例對設備串口的接收中斷進 行了特殊處理,在收到預設的探測信息時,直接讀取設備的運行狀態,並 將獲得的運行信息直接發送到串口。由於串口中斷屬於硬體中斷,優於設 備作業系統中的所有線程,因此,只要設備的中斷運行正常,上述方法的 特殊處理在任何時候均可以觸發。同時,在設備發生故障或異常時,對故 障的定位和解決是最主要的問題,本實施例可以有效解決現有的串口通信 正常卻無法獲得嵌入式設備運行狀態,處理故障及定位故障困難的問題, 實現了設備系統軟體故障時可以獲取設備的運行狀態,進行快速故障定位 和處理故障。本實施例中各步驟並不唯一,可能對設備多次發送預設的探測信息,在 本次發送探測信息時,設備在進行根據上次收到的預設的探測信息,直接讀取設備運行狀態,並通過串口發送包含設備運行狀態的運行信息的操作;也可能根據上次設備返回的運行信息獲知設備的運行狀態後,繼續向設備 發送包含預設的探測信息,測試設備是否還處於原來的運行狀態,總之本實施例中上述3步操作並不唯一排列,可能某一時間只進行其中一個步驟,也可能某一時間這3步同時進行,並不唯一排列。本實施例中預設的探測信息為預設的可以直接讀取設備運行狀態且 與所有串口解析命令均不相同的信息,由不會在解析命令中出現的字符和/或字符串組合而成。參見圖5,為本發明獲取設備運行狀態的方法中串口中斷實施例流程 圖。圖5實施例為設備從串口接收到數據後的中斷處理過程,現有技術中向 設備串口發送數據,只發送可以解析的命令,本實施例不僅可以發送與解析 相關的命令,還可以在設定時間內未收到所述設備的任何反饋信息後,向 設備串口發送與所有串口解析命令均不相同的特殊含義探測信息,以進入 獲取設備運行狀態的處理流程。如圖5所示,為本發明獲取設備運行狀態的方法中串口接收中斷處理流 程,具體包括步驟l.設備串口檢測到有數據,觸發系統的串口接收中斷;
步驟2.串口接收中斷從硬體上將字符讀出來,並記錄接收的字符; 步驟3.判斷接收的字符是否和前面的字符組成預設的特殊含義字符 串,是則執行步驟4,否則執行步驟7; 步驟4.清除已接收的字符;步驟5.直接讀取設備軟體系統(如,嵌入式系統)的運行信息,對 收到特殊含義的字符串後的特殊處理操作可以在開發時即設計好,要求執 行速度快,能直接獲取系統故障相關的信息;步驟6.將獲取的運行信息寫入串口,通過串口將系統運行信息發送 出去,執行步驟9;步驟7.接收的字符未組成特殊含義的字符串時,將接收的字符發送到 與串口通信的命令解析線程,將其喚醒,並由串口通信線程將命令的執行結 果通過串口發送出去,如圖3所示;步驟8.判斷串口是否還有數據,是則轉入步驟2繼續接收串口數據, 否則執行步驟9;步驟9.中斷處理結束。上述技術方案,探測信息為預設的特殊含義字符串,這需要終端和設備 協商一致,在串口中斷中增加對特殊含義字符串的判斷,當判斷出連續輸入 的字符串為預設的特殊含義字符串時,執行特殊處理直接讀取設備的運行 狀態,並將獲得的運行信息直接發送到串口。現有技術中將接收的字符直接 發送到與串口通信的線程,由串口通信的線程進行解析,本發明在此之前增加特殊操作,可以在設備發生故障時跳過與串口通信線程的操作直接讀取設 備系統的運行信息返回給終端,由於串口中斷屬於硬體中斷,優於設備操作 系統中的所有線程,因此,只要設備的串口中斷運行正常,上述方法的特殊 處理在任何時候均可以觸發。本發明中探測信息可以設置的比較特殊,如本實施例中的特殊含義字符 串,探測信息可以根據需要進行設置, 一般設置的比較特殊,不會在需要解 析的命令中出現,如設置a! debug! 5)等,具體可根據需要設置不同的字符 和/或字符串。一. _—(曰,常時,通過串口獲取設備的運行狀態,還可以確定設備發生故障的原因。 假設設備的嵌入式系統有3個線程A. 線程(TASK) l執行嵌入式系統的主要功能,優先級為高;B. 線程(TASK) 2為串口通信線程,優先級為中;C. 線程(TASK) 3優先級為低。某一時刻,系統產生故障,TASK1進入死循環,TASK2由於優先級低於 TASK1,無法調度,故與串口通信停止。從設備的外部來看,該設備無法處理 任何輸入,也無給出任何輸出,因此無法獲知該設備發生什麼情況,是否發 生故障以及發生故障的原因。此時串口接收中斷仍可以正常工作,對設備發送預設的包含特殊含義的 探測信息,如上面介紹的特殊字符串,該設備的串口中斷進入特殊操作,可 以讀取設備作業系統的運行信息,並輸出到串口 。這時根據設備輸出的運行 信息,可以獲知TASK1正在執行。可以多次輸入特殊字符串,從連續得到的運行狀態信息,可以獲知TASK1 正處於死循環狀態。因此,很容易發現故障原因並進行處理。在設備發生故障或異常時,對故障的定位和解決是最主要的問題,本實 施例可以有效解決現有的串口通信正常卻無法獲得嵌入式設備運行狀態,處 理故障及定位故障困難的問題,實現了設備系統軟體故障時可以獲取設備的 運行狀態,進行快速故障定位和處理故障。上述各實施例中,只要設備的串口中斷運行正常,在任何時候均可以獲 取設備的運行狀態。同時,當設備故障或異常時,可以在故障當時進行定位, 無需使用現有的解決故障的方法,如使用硬體調試器等進行故障定位,可以 節省大量人力、時間及成本,當用戶的運行環境裡面出現故障時,可以快速
處理故障,為用戶儘快解決問題,提高了解決故障的質量。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成,前述的程序可以存儲於一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述 的存儲介質包括R0M、 RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。 參見圖6,為本發明獲取設備運行狀態的裝置實施例一示意圖。本實施 例包括接口模塊,與處理模塊連接,用於接收串口的數據,並將處理模塊的 數據發送出去;處理模塊,與接口模塊連接,用於判斷接收的字符是否組成預設的探測 信息,並在接收的字符組成預設的探測信息時,直接讀取設備作業系統的運 行狀態,並將包含設備統運行狀態的運行信息發送到接口模塊。本實施例的技術方案具有如下優點或有益效果由於串口中斷屬於硬 件中斷,優於設備作業系統中的所有線程,因此,只要設備的中斷運行正 常,上述裝置中處理模塊對串口的接收中斷進行的特殊處理在收到預設 的探測信息時,直接讀取設備的運行狀態,並將獲得的運行信息直接發送 到串口,在任何時候均可以觸發。同時,獲得的設備的運行狀態,也為故 障定位提供了重要的信息。本實施例獲取設備運行狀態的裝置可以固化到 被管理的設備內部,與設備成一體設置,通過接口模塊及處理模塊獲取設 備的運行狀態,簡化設備總體結構。圖7為本發明獲取設備運行狀態的裝置實施例二示意圖。圖7與圖6類 似,但對處理模塊內部進一步細化,如圖7所示,本實施例中處理模塊包 括判別子模塊,與存儲子模塊及執行子模塊連接,用於判斷接收的字符 是否組成預設的探測信息;存儲子模塊,與判別子模塊連接,用於存儲預設的探測信息,所述探 測信息為直接讀取設備運行狀態且與所有串口解析命令均不相同的預設 4呂息5執行子模塊,與判別子模塊連接,用於在接收的字符組成探測信息時, 直接讀取設備運行狀態,並將包含設備運行狀態的運行信息發送到接口模塊。本實施例具有圖6實施例所述的功能,並且對內部結構進一步細化, 具體的功能可參見本發明方法的實施例圖4、圖5及對應的說明。相同 功能不再贅述。本實施例中執行子模塊還可以進一步包括連接子模塊, 用於在接收的字符未組成預設的探測信息時,將接收的字符發送到與設備通 信的命令解析線程,並將命令解析線程將命令的執行結果發送到接口模塊。參見圖8,為本發明獲取設備運行狀態的系統實施例示意圖。如圖8所 示,本實施例系統中包括相互通過串口連接的嵌入式設備及對嵌入式設備 進行管理的終端,所述嵌入式設備上還設置有圖6或圖7所示的任一獲取 設備運行狀態的裝置(具體可參見圖6-圖7實施例的說明),終端通過所 述獲取設備運行狀態的裝置獲取嵌入式設備作業系統的運行狀態。實現本發明第三目的獲取設備運行狀態的系統實施例具有與獲取設備運 行狀態的方法和裝置實施例類似的優點或有益效果只要嵌入式設備的串 口中斷運行正常,上述系統在任何時候均可以獲取嵌入式設備的運行狀 態。同時,當嵌入式設備故障或異常時,可以在故障當時進行定位,無需 使用現有的解決故障的方法,如使用硬體調試器等進行故障定位,可以節 省大量人力、時間及成本,當用戶的運行環境裡面出現故障時,可以快速 處理故障,為用戶儘快解決問題,提高了解決故障的質量。本實施例中所述終端上還可以包括接口模塊,與獲取模塊連接,用 於發送探測信息或接收從終端串口獲取的信息;獲取模塊,與接口模塊連 接,用於在所述嵌入式設備對終端發送的命令未返回信息時,向串口發送 預設的探測信息;並從接口模塊獲取嵌入式設備對探測信息返回的包含設 備運行狀態的運行信息,判斷嵌入式設備是的運行狀態和/或根據多次返 回的設備運行信息對設備進行故障定位。本發明能有多種不同形式的具體實施方式
,上面以圖4-圖8為例結合附圖對本發明的技術方案作舉例說明,這並不意味著本發明所應用的具體實例 只能局限在特定的實施例中,本領域的普通技術人員應當了解,上文所提供 的具體實施方案只是多種優選用法中的一些示例,任何在串口中增加對特殊含義探測信息進行的與現有的串口解析命令不同的特殊處理操作,直接讀取 系統運行信息的實施方式均應在本發明技術方案所要求保護的範圍之內。最後應說明的是以上實施例僅用以說明本發明的技術方案,而非對其 限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術 人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技 術方案的本質脫離本發明各實施例技術方案的精神和範圍。
權利要求
1.一種獲取設備運行狀態的方法,其特徵在於,包括終端未收到設備對終端發送命令的返回信息時,向設備串口發送預設的探測信息;所述設備串口收到探測信息後,直接讀取設備運行狀態,並通過所述設備串口發送包含設備運行狀態的運行信息;終端根據所述運行信息獲知設備的運行狀態;所述探測信息為直接讀取設備運行狀態且與所有串口解析命令均不相同的預設信息。
2. 根據權利要求1所述的獲取設備運行狀態的方法,其特徵在於,所 述終端未收到設備對串口輸入的命令的返回信息時,向設備串口發送探測 信息具體為對設備進行管理的終端在設定時間內未收到所述設備對終端發送命 令的任何反饋信息,向設備串口發送預設的與所有串口解析命令均不相同 的探測信息,所述探測信息由不會在解析命令中出現的字符和/或字符串 組合而成。
3. 根據權利要求1所述的獲取設備運行狀態的方法,其特徵在於,所述設備串口收到探測信息,直接讀取設備運行狀態,並通過串口發送包含設備運行狀態的運行信息具體為 從串口讀取串口字符並保存;當接收的字符與已保存的字符組成預設的探測信息時,清除已接收的 字符,直接讀取設備的相關運行信息;將獲取的運行信息通過串口發送給對設備進行管理的終端。
4. 根據權利要求3所述的獲取設備運行狀態的方法,其特徵在於,還 包括接收的字符未組成預設的探測信息時,將接收的字符發送到與設備通信 的命令解析模塊,並由命令解析模塊將命令的執行結果通過串口發送到終端。
5. 根據權利要求l-4所述的任一獲取設備運行狀態的方法,其特徵在於,終端多次向設備發送預設的探測信息時,從對應多次獲得的包含設備 運行狀態的運行信息獲知設備發生故障的通信或功能線程。
6. —種獲取設備運行狀態的裝置,其特徵在於,包括接口模塊及處理 模塊,其中接口模塊,與處理模塊連接,用於接收串口的數據,並將處理模塊的 數發送出去;處理模塊,與接口模塊連接,用於判斷接收的字符是否組成預設的探測 信息,並在接收的字符組成預設的探測信息時,直接讀取設備作業系統的運 行狀態,並將包含設備統運行狀態的運行信息發送到接口模塊。
7. 根據權利要求6所述的獲取設備運行狀態的裝置,其特徵在於,所 述處理模塊包括判別子模塊,用於判斷接收的字符是否組成預設的探測信息; 存儲子模塊,與判別子模塊連接,用於存儲預設的探測信息,所述探測信息為直接讀取設備運行狀態且與所有串口解析命令均不相同的預設4呂息5執行子模塊,與判別子模塊連接,用於在接收的字符組成預設的探測信 息時,直接讀取設備運行狀態,並將包含設備運行狀態的運行信息發送到接 口模塊。
8. 根據權利要求7所述的獲取設備運行狀態的裝置,其特徵在於,所 述執行子模塊還包括連接模塊,用於在接收的字符未組成預設的探測信息 時,將接收的字符發送到與設備通信的命令解析模塊,並由命令解析模塊將 命令的執行結果發送到接口模塊。
9. 一種獲取設備運行狀態的系統,包括相互連接的嵌入式設備及對嵌 入式設備進行管理的終端,其特徵在於,所述嵌入式設備上還設置有權利要求6-8所述的任一獲取設備運行狀態的裝置,終端通過所述獲取設備運 行狀態的裝置獲取嵌入式設備作業系統的運行狀態和/或根據多次返回的 設備運行狀態信息對設備進行故障定位。
10. 根據權利要9所述的獲取設備運行狀態的系統,其特徵在於,所 述終端上還包括接口模塊,與獲取模塊連接,用於發送探測信息或接收從終端串口獲 取的信息;獲取模塊,與接口模塊連接,用於在所述嵌入式設備對終端發送的命 令未返回信息時,向串口發送預設的探測信息;並從接口模塊獲取嵌入式 設備對探測信息返回的包含設備運行狀態的運行信息,判斷嵌入式設備是 的運行狀態和/或根據多次返回的設備運行狀態信息對設備進行故障定 位。
全文摘要
本發明通過若干實施例公開了一種獲取設備運行狀態的方法、一種獲取設備運行狀態的裝置及獲取設備運行狀態的系統,其中,該方法包括終端未收到設備對串口輸入的命令的返回信息時,向設備串口發送預設的探測信息;設備串口收到探測信息後,直接讀取設備運行狀態,並通過所述設備串口發送包含設備運行狀態的運行信息;終端根據所述運行信息獲知設備的運行狀態。本發明各實施例解決了現有的串口通信正常卻無法獲得嵌入式設備運行狀態,處理故障及定位故障困難的問題,實現嵌入式設備系統軟體故障時可以獲取設備的運行狀態,進行快速故障定位和處理故障。
文檔編號G08C17/00GK101119233SQ200710120438
公開日2008年2月6日 申請日期2007年8月17日 優先權日2007年8月17日
發明者陳昆斌 申請人:福建星網銳捷網絡有限公司