我们正在开发一款新的嵌入式Linux板。我想要的一个功能是能够在断电时得到通知并进行安全关机。Linux中是否有任何标准机制来指示电源故障事件?我不想占用完整的串行线路来处理这个问题。
我们正在开发一个定制的电源板,所以有一个小UPS一样的电路建设的选择。问题是,该电路如何告诉Linux电源已失效?
发布于 2012-11-16 07:51:31
查看NUT,网络不间断电源工具。它可能已经为您用作基础操作系统的Linux发行版打包了。
如果您的外板可以与现有的contact closure driver通信,那么您可以开箱即用地使用NUT。
触点闭合界面只适用于少量的信息;如果您愿意的话,也可以使用标志。“断电”、“电池充电失败”等。如果您需要从电源板返回更多信息,您可以使用clone现有的智能不间断电源协议。如果出于某种原因你不得不重新发明轮子,你可以为你的自定义协议使用write a NUT driver。
你会发现大多数智能UPS协议使用RS-232串行或USB,但我从你的问题中得到了自定义的嵌入式Linux体验。您可能希望使用I²C或SPI,因为您的微控制器可能已经有I/O引脚。
我希望您很清楚为什么这是一个好主意,因为您已经在Linux之上构建:坚果是一个很好的、稳定的、可用的、免费的基础设施,就像Linux一样。
发布于 2012-11-15 03:37:08
我曾经为一台耗尽电池的Linux机器做过类似的事情:
简单地说:两个数字电流表,一个在电池和Linux盒之间,另一个在电池和外部电源之间。这些设备再次通过两个串行端口连接到机器。当外部电流表的读数远低于内部读数时(超过充满电的电池可能产生的读数),机器上的cron作业将执行关机。是的,如果它是基于一台旧笔记本电脑或带有电池的东西,这可能会以一种更容易的方式完成,但这是丢弃的笔记本电脑很容易获得的方式:)
在我目前的工作中,我们有运行Linux系统的环境,在这个环境中,预计会有一些频繁的电源故障。实际上并不需要安全关机,因为CF卡包含文件系统,然后以只读模式引导文件系统。然后所有的内容都被读到RAM磁盘中,所以CF卡不会发生写入。然而,通过这种方式,您显然失去了在两次启动之间进行持久存储的能力。
https://stackoverflow.com/questions/13385859
复制相似问题