工控机掉电保护功能设计2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工控机掉电保护功能设计
1.那些情况需要用到掉电保护功能
在大多数工控应用中,由于各种复杂的环境因素,使工控设备不可避免的会面临供电突然断掉的情况。
为了可以保证系统运行状态确定性以及记录数据完整性,当系统供电恢复后,现场数据可以及时恢复,避免应用系统产生混乱。
为了保证保存数据的实时性,现场数据的存储频率还会非常高,因此还要求数据保存的速度应足够快,从而不影响应用程序的正常运行。
对目前的非易失性存储器,NandFlash、NorFlash、EEPROM,有一定的擦写寿命限制,而且写入速度也不高,不利于现场数据实时保存。
但是成本较低。
对于一些成本较高的非易失性存储器,例如铁电存储器,不利于降低产品的成本;而且容量也不大。
对目前的易失性存储器如DDR,数据写入和读取速度都非常的高,不过掉电后,数据将会全部掉失。
如果使用一个后备电池的话,使得DDR一直通电,数据就不会掉失。
但是电池有充电和放电时间,使用寿命的限制。
也不利于产品的维护和降低成本。
因此本文提出一种“NandFlash + DDR + 法拉电容(又叫超级电容)”的低成本,高可靠性的解决方案。
NandFlash(SLC)具有擦除次数高,达10万次,数据存储时间长,成本低等特点,被大多数嵌入式工控机所使用。
2.实现的原理
如果能预知掉电的发生,并能够利用超级电容继续为最小系统供电2秒钟。
侧可以在有外电时把实时性比较高的数据保存在内存DDR里。
获得掉电发生时,在超级电容供电的2秒钟里,把内存的一些重要的数据和现场运行状态数据打包成文件保存到NandFlash存储器。
以保证工控设备在供电回复后能继续正常运行。
基于这个原理广州市微嵌计算机科技有限公司生产的8寸WINCE工业平板电脑(WLT_TFT8060_080)已经实现了这个掉电保护功能。
只需要在购买时选配这个掉电保护模块就可以了。
3.硬件说明
上图中的+5V为外部供电电源,+3.3V给CPU、NandFlash和DDRII 供电,C3为超级电容(法拉电容)。
外部供电后,D3导通前,通过R1,R2充电;D3导通后,通过R1、D3快速通电;电容电压上升到4.7V左右后,通过R1、R2缓慢充电。
+5V系统掉电时,U1是一个复位芯片,电压低于4.2V后,RST脚立刻产生一个低电平通知CPU,同时C3通过D2放电,维持核心系统工作至少2S。
CPU可以有2S以上的时间充分保存现场的数据。
4.软件的编程
本公司提供一个动态库“PwLostSave.dll”,用户只需要在应用程序中使用该库的两个函数即可。
“PwLostSave.dll”的函数定义在“PwLostSave.h”头文件中。
提供了两个函数:
BOOL InitPowLostSave(void (*lpfnNotify)(void), DWORD dwpriority);
功能说明:注册和初始化掉电通知功能,该函数只能执行一次。
BOOL CheckPowerOn(DWORD dwChkTimes);
功能说明:用于检测外部电源是否重新供电。
一般用于用户编写的函数lpfnNotify(回调函数)中。
5.软件说明
一般掉电保护是强实时性的任务,可以通过触发中断的方式来获得Windows CE操作系统的服务。
InitPowLostSave(void (*lpfnNotify)(void), DWORD dwpriority);函数的实现如下:
用户在回调函数“lpfnNotify”中实现自己编写的掉电处理程序即可。
6.总结
使用广州市微嵌计算机科技有限公司生产的8寸WINCE工业平板电脑(WLT_TFT8060_080),测试结果如下。
在上电2分钟后,电容充电,掉电后可以保存到Nandflash的数据大小约为800Kb;上电10分钟后,电容充分充电,可以保存到Nandflash的数据大小约为3Mb。
当然,如果用户在回调函数“lpfnNotify”中处理过
多的内容,则影响保存数据量。
对于实时采集数据的用户来说,应先将数据保存到DDR中,当达到一定大小,例如1M,立刻将数据写入到NandFlash。
系统掉电时候,将剩余的数据在“lpfnNotify”中保存到NandFlash即可。
详细到查看或见:微嵌8寸WINCE工业平板电脑(WLT_TFT8060_080)。