0

我们正在开发一种新的嵌入式 Linux 板。我想要的一项功能是能够在断电时收到通知并进行安全关机。Linux 中是否有任何标准机制来指示电源故障事件?不希望占用完整的串行线路来处理此问题。

我们正在开发定制电源板,因此可以选择构建小型 UPS 之类的电路。问题是该电路如何告诉 Linux 电源出现故障?

4

2 回答 2

2

查看NUT网络 UPS 工具。它可能已经为您用作基本操作系统的 Linux 发行版打包。

如果您的外部板可以与现有的触点闭合驱动程序通信,则您可以按原样使用 NUT 。

触点闭合接口只适用于少量信息;旗帜,如果你愿意的话。“掉电”、“电池充电失败”等等。如果您需要从电源板返回更多信息,您可以克隆现有的智能 UPS 协议。如果由于某种原因您不得不重新发明轮子,您可以为您的自定义协议编写一个 NUT 驱动程序。

您会发现大多数智能 UPS 协议都使用 RS-232 串行或 USB,但我从您的问题中得到了定制的嵌入式 Linux 氛围。您可能想改用 I²C 或 SPI,因为您的微控制器可能已经有 I/O 引脚。

我希望您清楚为什么这是一个好主意,因为您已经在 Linux 之上构建:NUT 是好的、稳定的、可用的、免费的基础架构,就像 Linux 一样。

于 2012-11-15T23:51:30.920 回答
1

我为一台没电的 Linux 机器做了类似的事情:

简单地说:两个数字电流表,一个在电池和Linux盒子之间,一个在电池和外部电源之间。这些再次通过两个串行端口连接到机器。当外部电流表的读数比内部电流表的读数低得多(超过电池充满电的结果)时,机器上的 cron 作业将执行关机。是的,如果它是基于旧笔记本电脑或包含电池的东西,这可能会以更简单的方式完成,但这是很容易获得废弃笔记本电脑的方式:)

在我目前的工作中,我们的 Linux 系统运行在一个经常会出现电源故障的环境中。实际上并不需要安全关机,因为 CF 卡包含文件系统,然后以只读模式启动。然后所有的东西都被读入 RAM 磁盘,因此 CF 卡不会发生写入。但是,这样您显然会失去在两次启动之间进行持久存储的能力。

于 2012-11-14T19:37:08.153 回答