提高智能硬件鲁棒性的方法与流程

文档序号:16972047发布日期:2019-02-26 18:38阅读:418来源:国知局
提高智能硬件鲁棒性的方法与流程
本发明涉及电子设备领域,特别是一种提高智能硬件鲁棒性的方法。
背景技术
:所谓鲁棒性,是指控制系统在一定的参数摄动下,维持其它某些性能的特性。在物联网智能采集器领域,智能硬件主控以stm32f103vct6为平台,智能硬件对外接口包括开关量输入输出接口,模拟量输入输出接口,电量计输入接口,485通信接口,以太网输入输出接口以及无线通信输入输出接口以及显示等接口。智能硬件能够采集各种开关量,模拟量,视频等信息,经过智能判别处理,通过有线或无线的方式,采用tcp/ip协议和远端数据中心通信服务器建立连接,采集的信息存储于远端云中心数据库中,提供智能查询、统计、大数据分析,及控制远端设备等系统功能。当智能硬件工作于室外环境时,经常受到电网、静电、雷击等外界环境因素的严重干扰。严重的情况下将导致主控芯片、接口等芯片损坏,比如芯片的io接口对地击穿短路,vdd对gnd击穿短路等现象;轻者的会导致微处理器内部sram数据丢失以及片内eflash数据丢失等现象,导致设备采集的数据出现严重误差,影响数据的准确性。对于采集的数据,有时必须要保存到非易失性存储器中(nvm),防止系统在重启时丢失一些累加的数据,比如智能硬件中的电量计度数的累加。一般通用的做法是采用i2c总线结构的eeprom,比如at24c08。由于各种原因,可能导致无法采用外部eeprom,由于stm32f103具有在线可编程功能(iap),其内部的eflash可以作为eeprom使用,但利用eflash进行备份,主要问题是eflash的擦写方式为以页的方式进行擦除且eflash擦写次数有限。eflash擦除数远小于eeprom。一般外带eeprom的擦写次数可达100万次,而eflash的次数一般只有1万次。技术实现要素:有鉴于此,本发明提供了一种防止数据出错且实现有效数据备份的提高智能硬件鲁棒性的方法,以解决上述问题。一种提高智能硬件鲁棒性的方法包括静态随机存取存储器(sram)数据识别步骤及嵌入式快闪记忆体(eflash)数据读取与备份步骤,所述sram数据识别步骤包括:步骤s11:设置sram电量数据格式,sram电量数据依次包括前标志位、总电量数据、电量计芯片的电量读数及后标志位;步骤s12:电量计芯片的电量读数初始化为零;步骤s13:从内部eflash中读取总电量数据;步骤s14:电量计芯片的电量读数开始进行电量计量;步骤s15:更新总电量数据,新的总电量数据等于原总电量数据加上电量计芯片的电量读数;步骤s16:判断sram电量数据的前标志位是否为预定的第一特征值,后标志位是否为预定的第二特征值;步骤s17:若sram电量数据的前标志位为第一特征值,且后标志位为第二特征值,则判断sram电量数据正常,按照一定的时间间隔将总电量数据上传至云平台数据中心,并存入智能硬件中的控制器内部的eflash中;步骤s18:若sram电量数据的前标志位不为第一特征值,或后标志位不为第二特征值,则判断sram电量数据异常,控制系统重启,电量计芯片进行初始化;嵌入式快闪记忆体数据读取与备份步骤包括:步骤s21:设置3页eflash的末尾标志位;步骤s22:判断3页eflash的末尾标志位是否为预定的第三特征值;步骤s23:若3页eflash的末尾标志位均为第三特征值,则电量计芯片初始化;步骤s24:若任意一页eflash的起始标志位不为第三特征值,则返回步骤s22;步骤s25:若3页eflash内最新的总电量数据相同且不为零,则读取其总电量数据至sram电量数据中;步骤s26:若3页eflash中的两页中最新的总电量数据相同且不为零,则读取数据相同的两页eflash中的总电量数据至sram电量数据中;步骤s27:若3页eflash中最新的总电量数据均不相同,则进行系统报警;步骤s28:将sram电量数据更新后的总电量数据同时写入3页eflash的当前地址中,完成eflash数据备份;页写满则擦除3页eflash中的所有数据,并将3页eflash中的所有数据均变为第三特征值。进一步地,所述前标志位的第一特征值为0x55555555。进一步地,所述后标志位的第二特征值为0xaaaaaaaa。进一步地,所述eflash的起始标志位的第三特征值为0xffffffff。进一步地,所述每页eflash中存放512个总电量数据。进一步地,所述智能硬件的外接端口处设有防雷击浪涌电路,所述防雷击浪涌电路包括:正极线路d+、负极线路d-、若干瞬变电压抑制二极管tvs及气体放电管gdt,正极线路d+、负极线路d-均具有正常段(11)及宽度小于正常段(11)的收窄段(12),气体放电管gdt的两端分别与正极线路d+、负极线路d-的收窄段(12)连接,气体放电管gdt的接地端接防雷地。正极线路d+位于收窄段(12)的前端通过第一瞬变电压抑制二极管tvs1接防雷地,正极线路d+、负极线路d-位于收窄段(12)的前端之间连接有第二瞬变电压抑制二极管tvs2,负极线路d-位于收窄段(12)的前端通过第三瞬变电压抑制二极管tvs3接防雷地。与现有技术相比,本发明的提高智能硬件鲁棒性的方法包括静态随机存取存储器(sram)数据识别步骤及嵌入式快闪记忆体(eflash)数据读取与备份步骤。如此防止数据出错且实现有效数据备份,提高了智能硬件的鲁棒性。附图说明以下结合附图描述本发明的实施例,其中:图1为本发明提供的提高智能硬件鲁棒性的方法采用的防雷击浪涌电路的示意图。具体实施方式以下基于附图对本发明的具体实施例进行进一步详细说明。应当理解的是,此处对本发明实施例的说明并不用于限定本发明的保护范围。请参考表1,本发明提供的提高智能硬件鲁棒性的方法包括静态随机存取存储器(staticrandom-accessmemory,sram)数据识别步骤及嵌入式快闪记忆体(eflash)数据读取与备份步骤。其中,sram数据识别步骤包括:步骤s11:设置sram电量数据格式,sram电量数据依次包括前标志位、总电量数据(totalpower)、电量计芯片的电量读数(lastpower)及后标志位,如表1所示:表1sram电量数据格式前标志位0x55555555总电量数据(totalpower)xxxxxxxx当前电量数据(lastpower)xxxxxxxx后标志位0xaaaaaaaa总电量数据是总的电量读数,电量计芯片的电量读数是当前电量计芯片的电量读数,数据为4个字节。步骤s12:当系统初始化时,电量计芯片的电量读数初始化为零。步骤s13:从内部eflash中读取总电量数据。步骤s14:当系统控制的设备工作时,电量计芯片的电量读数开始进行电量计量。步骤s15:更新总电量数据,新的总电量数据(totalpower1)等于原总电量数据(totalpower0)加上电量计芯片的电量读数(lastpower)。步骤s16:在上传总电量数据或将总电量数据存入eflash前,先判别sram电量数据的前标志位是否为0x55555555,后标志位是否为0xaaaaaaaa。步骤s17:若sram电量数据的前标志位为0x55555555,且后标志位为0xaaaaaaaa,则判断sram电量数据没有受到干扰,数据正常,按照一定的时间间隔将总电量数据上传至云平台数据中心,并存入智能硬件中的微控制器内部的eflash中。步骤s18:若sram电量数据的前标志位不为0x55555555,或者后标志位不为0xaaaaaaaa,则判断sram电量数据受到外部干扰,即总电量数据及电量计芯片的电量读数数据无效,控制系统重启,进行初始化,电量计芯片也重新进行初始化。嵌入式快闪记忆体数据读取与备份步骤包括:步骤s21:读取3页eflash的末尾标志位,如默认为0xffffffff。步骤s22:判断3页eflash的末尾标志位是否为预定的第三特征值。步骤s23:若3页eflash的末尾标志位均为第三特征值,则说明本页数据上一地址数据为有效最新待读取数据,电量计芯片初始化,从零开始计数。步骤s24:若任意一页eflash的末尾标志位不为0xffffffff,则说明本页数据不是有效待读取数据,电量计芯片无需初始化,返回步骤s22。步骤s25:若3页eflash内最新的总电量数据相同且不为零,则读取其总电量数据至sram电量数据中。步骤s26:若3页eflash中的两页中的最新的总电量数据相同且不为零,则读取数据相同的两页eflash中的最新的总电量数据至sram电量数据中。步骤s27:若3页eflash中的最新的总电量数据均不相同,则进行系统报警。步骤s28:将sram电量数据更新后的总电量数据同时写入3页eflash的当前地址中,完成eflash数据备份。步骤s29:页写满则擦除3页eflash中的所有数据,并将3页eflash中的所有数据均变为第三特征值。数据备份重新从本页的起始数据开始进行。以一定的时间间隔重复完成以上步骤,即可实现总电量数据的实时更新。eflash备份数据如表2所示:表2eflash备份数据格式如表2所示,每页可存放512个总电量数据,每页2k个字节(2048byte),这样eflash就有512万次的擦写次数,满足系统指标要求。为了进一步提高智能硬件鲁棒性,采用以下措施:1、整体电路采用良好的防雷接地装置。2、智能硬件的电源接口采用tvs管及压敏电阻提高抗雷击能力。3、智能硬件的对外接口、开关量输入输出接口采用全隔离方法,包括电源隔离及信号隔离,信号隔离采用光电隔离。4、智能硬件的485通信接口采用全隔离的方式,包括电源隔离及信号隔离,信号隔离可采用高速光电隔离或者磁隔离的方式。5、智能硬件的485通信接口外接tvs管及气体放电管,进行防雷保护。tvs管能够提供共模及差模保护,其抗共模电压大于4kv。6、智能硬件的电量计输入接口采用电流互感器和电压互感器以和电网进行隔离。7、智能硬件的以太网接口采用抗雷击设计措施,抗共模电压大于4kv。可采用高隔离变压器外加低电容tvs阵列及气体放电管的方式。8、模拟电路(电流为4ma~20ma,电压为0~5v)采用全隔离的方式,可采用电源隔离及隔离信号放大器,以及外加tvs管及气体放电管,进行防雷保护设计,请参考图1,在智能硬件的外接端口处设置的防雷击浪涌电路包括:正极线路d+、负极线路d-、若干瞬变电压抑制二极管tvs及气体放电管gdt,正极线路d+、负极线路d-均具有正常段11及宽度小于正常段11的收窄段12。气体放电管gdt的两端分别与正极线路d+、负极线路d-的收窄段12连接,气体放电管gdt的接地端接防雷地。正极线路d+位于收窄段12的前端通过第一瞬变电压抑制二极管tvs1接防雷地,正极线路d+、负极线路d-位于收窄段12的前端之间连接有第二瞬变电压抑制二极管tvs2,负极线路d-位于收窄段12的前端通过第三瞬变电压抑制二极管tvs3接防雷地。9、设置pcb板隔离电路之间的爬电距离大于2mm。10、设置有与智能硬件连接的电源监测电路,电源监测电路设置有电压预定阈值,当电源电压下降到电压预定阈值时,电源监测电路控制系统复位,防止程序误操作eflash及sram。11、智能硬件通过无线通信模块(4glte)或者有线通信模块与云中心通信通信服务器通信,无线通信模块(4glte)或者有线通信模块与云中心通信通信服务器的底层之间采用tcp/ip连接,上层采用握手协议,即智能硬件发出命令帧后,服务器必须有响应帧。如果智能硬件发了5次命令帧后,服务器没有响应,则智能硬件认为低层的tcp/ip连接已经掉线了,然后智能硬件重新进行tcp/ip的连接。如果tcpip连接还是连接不上,系统切断无线模块或有线模块的电源,在重新进行tcpip连接,做到永不掉线。12、设置有与智能硬件连接的在线识别模块,用于自动识别外部设备是否在线,即外部设备是否与智能硬件通信连接。如果外部设备无法和智能硬件进行通信,在线识别模块发出提示信息,提示外接设备离线。13、软件上,采用看门狗技术,看门狗时钟由芯片内部独立振荡器提供,定期进行喂狗操作。与现有技术相比,本发明的提高智能硬件鲁棒性的方法包括静态随机存取存储器(sram)数据识别步骤及嵌入式快闪记忆体(eflash)数据读取与备份步骤,所述sram数据识别步骤包括:步骤s11:设置sram电量数据格式,sram电量数据依次包括前标志位、总电量数据、电量计芯片的电量读数及后标志位;步骤s12:电量计芯片的电量读数初始化为零;步骤s13:从内部eflash中读取总电量数据;步骤s14:电量计芯片的电量读数开始进行电量计量;步骤s15:更新总电量数据,新的总电量数据等于原总电量数据加上电量计芯片的电量读数;步骤s16:判断sram电量数据的前标志位是否为预定的第一特征值,后标志位是否为预定的第二特征值;步骤s17:若sram电量数据的前标志位为第一特征值,且后标志位为第二特征值,则判断sram电量数据正常,按照一定的时间间隔将总电量数据上传至云平台数据中心,并存入智能硬件中的控制器内部的eflash中;步骤s18:若sram电量数据的前标志位不为第一特征值,或后标志位不为第二特征值,则判断sram电量数据异常,控制系统重启,电量计芯片进行初始化;嵌入式快闪记忆体数据读取与备份步骤包括:步骤s21:设置3页eflash的末尾标志位;步骤s22:判断3页eflash的末尾标志位是否为预定的第三特征值;步骤s23:若3页eflash的末尾标志位均为第三特征值,则电量计芯片初始化;步骤s24:若任意一页eflash的末尾标志位不为第三特征值,则返回步骤s22;步骤s25:若3页eflash内的总电量数据相同且不为零,则读取其总电量数据至sram电量数据中;步骤s26:若3页eflash中的两页中的总电量数据相同且不为零,则读取数据相同的两页eflash中的总电量数据至sram电量数据中;步骤s27:若3页eflash中的总电量数据均不相同,则进行系统报警;步骤s28:将sram电量数据更新后的总电量数据同时写入3页eflash的当前地址中,完成eflash数据备份;步骤s29:页写满则擦除3页eflash中的所有数据,并将3页eflash中的所有数据均变为第三特征值。如此防止数据出错且实现有效数据备份,提高了智能硬件的鲁棒性。以上仅为本发明的较佳实施例,并不用于局限本发明的保护范围,任何在本发明精神内的修改、等同替换或改进等,都涵盖在本发明的权利要求范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1