24小時(shí)聯(lián)系電話:18217114652、13661815404
中文
技術(shù)專題
智能自檢流程可優(yōu)化嵌入式系統(tǒng)的加電
智能自檢流程可優(yōu)化嵌入式系統(tǒng)的加電
為什么加電自檢很重要
在典型的嵌入式系統(tǒng)中,微控制器連接到PCB上的各種組件。它依靠?jī)?nèi)存芯片來(lái)存儲(chǔ)關(guān)鍵參數(shù)或歷史記錄。參數(shù)的每一位都可能影響功能算法的結(jié)果。
使工業(yè)設(shè)備自動(dòng)化的嵌入式系統(tǒng)還依靠輸入來(lái)激活某些閥門或電動(dòng)機(jī)。在大多數(shù)情況下,輸入是從連接到PCB的傳感器獲得的模擬信號(hào)。確保系統(tǒng)加電時(shí)傳感器正常運(yùn)行是很重要的。
隨著世界擁抱物聯(lián)網(wǎng),嵌入式系統(tǒng)可以通過(guò)更廣泛的技術(shù)相互通信。無(wú)論使用哪種接口,傳統(tǒng)活動(dòng)(如基本握手協(xié)議或簡(jiǎn)單的狀態(tài)檢查)對(duì)于確保系統(tǒng)以正確的方式通電仍然至關(guān)重要。
當(dāng)然,有人會(huì)爭(zhēng)辯說(shuō),可靠的固件將確保在執(zhí)行算法之前評(píng)估正確的輸入或參數(shù)。那么,為什么還要進(jìn)行一系列的自檢呢?
對(duì)系統(tǒng)故障采取行動(dòng)的最佳時(shí)間是在加電期間。
在大多數(shù)應(yīng)用中,嵌入式系統(tǒng)由設(shè)備附近的技術(shù)人員供電。與在執(zhí)行某些邏輯之前發(fā)現(xiàn)的異常相比,啟動(dòng)期間發(fā)現(xiàn)的任何異常都可以立即采取行動(dòng),這可能需要幾天或幾周的時(shí)間。
除此之外,由于電源故障而中斷的嵌入式系統(tǒng)可能沒有機(jī)會(huì)完成其最后的操作。他們可能在斷電之前已部分存儲(chǔ)了交易記錄。在某些情況下,在電源恢復(fù)后,嵌入式系統(tǒng)根本就沒有準(zhǔn)備好應(yīng)對(duì)這種情況。
有用的嵌入式系統(tǒng)自檢程序
就像嵌入式系統(tǒng)的設(shè)計(jì)可能有所不同一樣,所需的自檢程序也可能有所不同。根據(jù)我在開發(fā)用于商業(yè)和工業(yè)應(yīng)用的嵌入式系統(tǒng)方面的經(jīng)驗(yàn),以下是一些在加電期間要執(zhí)行的最自檢:
1.內(nèi)存檢查
嵌入式系統(tǒng)通常將參數(shù)或歷史日志存儲(chǔ)在閃存,鐵磁隨機(jī)存取存儲(chǔ)器(FRAM)和靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)等存儲(chǔ)器中。這些存儲(chǔ)芯片通常通過(guò)內(nèi)部集成電路(I2C)或串行外圍接口(SPI)協(xié)議連接到微控制器。
執(zhí)行讀取命令時(shí)SPI的問(wèn)題在于,即使相應(yīng)的存儲(chǔ)芯片出現(xiàn)故障,您也可能會(huì)收到無(wú)效的0xFF十六進(jìn)制值。這可能導(dǎo)致微控制器執(zhí)行錯(cuò)誤的算法。
因此,請(qǐng)謹(jǐn)慎確保在啟動(dòng)過(guò)程中PCB中使用的每個(gè)存儲(chǔ)芯片都可以正常工作。例如,在FRAM和SRAM中分配一個(gè)虛擬字節(jié)以比較“讀”和“寫”值或從閃存中檢索設(shè)備ID。
通過(guò)快速自檢,確保所有內(nèi)存芯片在啟動(dòng)過(guò)程中均正常運(yùn)行。
2.數(shù)據(jù)庫(kù)檢查
在歷史記錄對(duì)應(yīng)用程序至關(guān)重要的嵌入式系統(tǒng)中,確保電源恢復(fù)后存儲(chǔ)任何記錄之前數(shù)據(jù)庫(kù)處于良好狀態(tài)是一種很好的做法。與軟件應(yīng)用程序中的SQL副本相比,嵌入式系統(tǒng)中的數(shù)據(jù)庫(kù)相當(dāng)原始。
嵌入式系統(tǒng)數(shù)據(jù)庫(kù)通常是自定義構(gòu)建的,并且可能存在潛在的漏洞,無(wú)法通過(guò)測(cè)試。需要對(duì)記錄指針進(jìn)行基本檢查,以確保它們?cè)谄渲付ǖ纳葏^(qū)內(nèi)。這樣可以防止由于覆蓋不同數(shù)據(jù)類型之間的扇區(qū)而導(dǎo)致數(shù)據(jù)庫(kù)損壞。
3.輸入檢查
用于工業(yè)自動(dòng)化的嵌入式系統(tǒng)在很大程度上依賴于數(shù)字和模擬輸入來(lái)執(zhí)行相關(guān)功能。對(duì)于微控制器,在啟動(dòng)主算法之前,請(qǐng)確保連接安全開關(guān)的數(shù)字輸入端提供正確的值,這是一個(gè)好習(xí)慣。
在使用4-20 mA模擬傳感器的應(yīng)用中,微控制器可以快速檢查傳感器是否正確連接。等效模擬值小于4 mA表示傳感器有故障,應(yīng)立即警告技術(shù)人員。
4.通訊檢查
在某些情況下,嵌入式系統(tǒng)通過(guò)有線或無(wú)線通信連接到其他設(shè)備。讓微控制器在這些設(shè)備上啟動(dòng)狀態(tài)檢查是在系統(tǒng)開始運(yùn)行之前識(shí)別任何故障設(shè)備的好方法。
雖然我們樂(lè)觀地期望第三方設(shè)備是完美的,但我的經(jīng)驗(yàn)證明了事實(shí)并非如此。我有一些有時(shí)會(huì)拒絕正確啟動(dòng)的工業(yè)條碼打印機(jī)。通過(guò)在啟動(dòng)過(guò)程中進(jìn)行的快速調(diào)查,我可以確保立即解決所有緊迫的問(wèn)題,并且不會(huì)有生氣的客戶在我的脖子上喘不過(guò)氣來(lái)。