2012-11-14 63 views
0

我們正在開發一個新的嵌入式Linux板。我希望的一個功能是當電力丟失並能夠安全關機時能夠得到通知。 Linux中是否有標準的機制來表示電源故障事件?寧願不要捆綁完整的串行線來處理這個問題。Linux:電源故障輸入?

我們正在開發定製電源板,因此可以選擇使用小型UPS構建電路。問題是該電路如何告訴Linux電源已經失效?

+2

不可能,除非你有UPS或其他類似的外部存儲系統。根據定義,如果權力消失了,你不能迴應,因爲董事會已經死了。所以你需要一些外部的電源來提供短暫的時間間隔,再加上通知信號。 –

+0

請[不要在您的帖子中使用簽名或標語](http://stackoverflow.com/faq#signatures)。 – meagar

+1

在許多情況下,「安全關閉」是一個簡單的「/ bin/init 0」命令,或者是新手或系統等效的命令。這將是特定於您的發行版,並且相對容易完成。但連接到你的電源故障信號是一個**硬件問題,「Linux」中沒有任何東西可以幫助你。你的電路板提供什麼樣的電源管理? –

回答

2

查找到NUT,網絡UPS工具。它可能已經打包用於作爲基本操作系統使用的Linux發行版。

您可能能夠使用NUT,不被開箱,如果外部電路板可以跟現有的contact closure driver

聯繫人關閉界面僅適用於少量的信息位;標誌,如果你願意。 「電源丟失」,「電池充電故障」等。如果您需要從電源板獲取更多信息,則可以使用現有的智能UPS協議clone。如果由於某種原因,您只需重新發明輪子,則可以使用write a NUT driver作爲自定義協議。

你會發現,大多數智能UPS協議使用RS-232串口或USB,但我發現從你的問題定製的嵌入式Linux的氛圍。您可能需要使用I ² C或SPI,因爲您的微控制器可能已經具有I/O引腳。

我希望這是你清楚爲什麼這是一個好主意,因爲你已經在Linux上構建:NUT好,穩定,可用的,免費的基礎設施,就像Linux操作系統。

1

我做了逃跑的電池一次的Linux機器類似的東西:

簡而言之:兩個數字電錶,一個電池和Linux機器之間,以及電池和外部電源之間的一個。這些通過兩個串行端口再次連接到機器上。當外部電流表的讀數比內部電流表低得多(超過可能是充滿電的電池的結果)時,機器上的cron作業將執行關閉。是的,這很可能已經在一個更簡單的方法做,好像它是根據各地的舊筆記本電腦或一些與包括電池,但這種方式是丟棄的筆記本電腦都容易獲得:)

在我目前的工作我們有Linux系統運行在一個預計會頻繁出現電源故障的環境中。安全關機並不是真的需要,因爲CF卡包含文件系統,然後以只讀模式啓動。然後所有的東西都被讀入RAM磁盤,所以CF卡上沒有發生任何寫入。但是,這樣你顯然失去了在引導之間持久存儲的能力。