内容解释
本发明涉及一种电能表在线升级方法。

发明背景
电能表启动后,从闪存(Flash)中加载程序代码和CE(电能计量单元)代码运行。在研发设计阶段,可以通过仿真器将已编译好的程序烧录到芯片的闪存中,从而实现对程序的更新升级。在电能表生产阶段,则通过专用的烧录器将程序烧写到芯片中。电能表出厂后,如果有分外哀求须要升级程序时,则只能通过返厂后进行操作。现有的技能虽然在程序设计阶段能方便的对电能表程序进行升级操作,但在电能表生产阶段及其出厂后,若有升级需求,只能通过烧录器对单台电能表逐一进行升级,操作非常之麻烦,尤其是当电能表安装到千家万户后,如果要升级更新的话,则须要将所有的电能表返厂,然后进行升级,或者在去到每一处电表的安装位置,拆掉铅封,通过专用工具进行升级,升级本钱大。
发明内容
本发明的目的是供应一种速率快且操作便捷的电能表在线升级方法。
本发明供应的这种电能表在线升级方法,该方法包括如下步骤:步骤一,上位机发送打消外部存储器的命令到电能表,将升级文件的存储区域清零;步骤二,上位机发送升级文件到指定编号的电能表的外部存储器指定位置,进行升级文件的精确性检讨、外部存储器的读写精确性检讨和MCU的内部Flash的读写精确性检讨,若检讨通过,则转至步骤三;若检讨未通过,则不进行后续的升级操作,需重新发送升级文件;步骤三,电能表重新启动;启动过程中,电能表选择实行或者不实行升级程序;若不实行升级文件,电能表正常运行。
若实行升级文件,电能表检讨外部存储器和MCU内部Flash的读写精确性,并擦除该内部Flash的对应存储区域;再将外部存储器的升级文件分多次读到RAM空间,然后再更新到该内部Flash中,升级文件全部更新完成后,重启电能表,完成升级操作。
所述上位机发送升级文件完成后,打消须要升级标志和检帧精确标志,置位升级文件下发完成标志;所述升级文件的精确性检讨通过后,置位检帧精确标志和须要升级标志;若未通过,则打消该检帧精确标志和升级文件下发完成标志;所述电能表升级完成,打消上述所有标志。
所述检帧精确标志和须要升级标志都有效时,所述电能表实行升级文件;若二者有任一无效,则所述电能表不实行升级文件。所述升级文件的精确性检讨是检讨在外部存储器中存储的升级文件的合法性;包括如下步骤:第一步,从所述升级文件存储起始地址开始,循环读取固定长度的该升级文件内容,再解析出该固定长度升级文件内容中一条完全的记录;第二步,解析该条记录中数据的长度;根据长度判断该记录的末端是否超出固定长度,若超出,则以该记录首端作为开始地址,转至第一步,若不超出,则转至下一步;第三步,判断所述记录长度是否知足设定哀求,如知足,则转至下一步;否则得出未通过精确性检讨的结论,并返回;第四步,解析出当前所述记录的地址、记录类型和校验字;第五步,判断该条记录的地址合法性,若为合法地址,则转至下一步;否则得出未通过精确性检讨的结论,并返回;第六步,判断当前所述记录的校验字是否和打算出的校验字同等,若同等,则从当前所述记录的地址起,再读取所述固定长度的下一条记录,并转至第二步;直至所述升级文件的数据均通过所述数据长度的检讨、所述地址合法性的检讨以及所述校验字的同等性检讨,并得出所述升级文件通过精确性检讨的结论,并返回;否则得出未通过精确性检讨的结论,并返回。
所述记录中数据的长度不知足设定哀求,则判断其长度是否为0,若不为0,则判断得出未通过精确性检讨的结论,并返回;若其长度为0,则判断所述升级文件是否结束,若不为文件结束,则判断得出未通过精确性检讨的结论,并返回;若为文件结束,则将末了读取的所述固定字节数据里的检帧精确字节数和文件结束记录字节数更新到总字节数中,再判断所述升级文件结束后已检总字节数是否与上位机发送的文件总字节数同等,若二者字数同等,则表明通过精确性检讨,并返回;否则判断得出未通过精确性检讨的结论,并返回。
所述实行升级文件前,所述电能表首先关闭所有中断,停滞电能计量;接着该电能表的LCD对应指示升级进行中;然后进行电源检讨,然后检讨检帧精确标志和须要升级标志是否置位,再进行所述外部存储器和所述内部Flash的读写精确性检讨,通过后则进行升级。所述电源检讨是检测电源V3P3,上电N秒后,连续检测M次;若有一次检测该电源低于3 .0V,则重新检测。所述将外部存储器的升级文件分多次读到RAM空间须要对每次读入的内容进行校验位、数据长度和地址的合法性判断;只有每次读入的内容为合法内容时才再更新到所述MCU的内部Flash中。
本发明实现了电能表在线升级,操作难度小,升级方便。电能表有升级需求时,可随时对电能表进行升级更新,而无需将现场电能表返厂更新,极大地节约了升级本钱,同时也增加了电能表产品对快速变革的市场的适应能力,提高了电能表的竞争力。










