发明内容
本发明的目的在于提供一种电子标签软件更新方法、设备及其系统,解决了电子标签软件更新的效率低的问题。
针对上述现有技术存在的问题,本发明提供一种电子标签软件更新方法,包括:预先在所述电子标签设置BootLoader区、应用程序区、临时存储区,所述方法包括:
所述电子标签接收路侧单元下发的程序数据帧,及存储在所述临时存储区,并对更新标志位进行置位,跳转至所述BootLoader区,所述电子标签启动所述BootLoader区以检测所述程序数据帧的更新标志位是否置位;
如果所述更新标志位置位,则所述电子标签将所述程序数据帧下载到应用程序区进行程序更新。
本发明还提供一种电子标签,包括:BootLoader模块,用于引导所述电子标签的应用程序区;
检测单元,用于检测所述程序数据帧的更新标志位是否置位;
处理单元,用于所述临时存储区存储的程序数据下载至所述应用程序区;
初始化模块,用于初始化所述电子标签运行应用程序区所需的数据;以及用于当所述处理单元将所述临时存储区存储的程序数据完全下载至所述应用程序区时,清除所述更新标志位的置位信息;
转换单元,根据初始化所述电子标签运行应用程序区所需的数据跳转到应用程序区。
最后,本发明还提供一种以上电子标签软件更新系统,包括:;电子标签、及,
路侧单元,用于向所述电子标签发送下行命令,所述下行命令至少包括软件更新命令,以使所述电子标签判断接收到的下行命令是否为软件更新命令;还用于向所述电子标签逐帧发送程序数据帧,以使所述电子标签接收所述程序数据帧以及判断所述程序数据帧是否为最后一帧,以使所述电子标签根据判断所述程序数据帧为最后一帧的结果置位更新标志位,使所述电子标签根据置位的更新标志位将临时存储区的程序数据覆盖到应用程序区。
本发明实施例中,在BootLoader区软件开始运行后;通过检测更新标志位是否置位后,根据置位的更新标志位将临时存储区的程序数据下载到应用程序存储区,完成更新,然后初始化所述电子标签运行应用程序区所需的数据,以根据初始化所述电子标签运行应用程序区所需的数据跳转到应用程序区。通过更新标志位的设置,则不需要在BootLoader区软件开始运行后初始化外围设备,只需在启动应用程序区时才进行初始化操作。根据置位的更新标志位,不需要检测预设时间段内是否接收到软件更新的命令,以及也不需要检测是否等待超时,提升了软件更新的速率,也可进一步减少更新电子标签程序的麻烦,提升用户体验感和营业网点的营业效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供电子标签及软件更新方法、设备及其系统,解决了电子标签软件更新的效率低的问题。以下分别进行详细说明。
实施例1
参见图1,本实施例提供的使用BootLoader的单片机系统的程序区至少分为三个区,分别是Bootloader区、应用程序存储区以及临时存储区。
参阅图2,本实施例提供的电子标签软件更新方法包括:
S110,所述电子标签接收路侧单元下发的程序数据帧;
S120,存储在所述临时存储区;
S130,对更新标志位进行置位;
S140,跳转至所述BootLoader区;
S150,启动所述BootLoader区以检测程序数据帧的更新标志位是否置位;
如果所述更新标志位置位,则执行步骤S160,将所述程序数据帧下载到应用程序区进行程序更新。
进一步参见图3,执行所述步骤S110前,所述方法还包括:
S109,所述电子标签判断接收到的所述程序数据帧是否为程序更新命令,如果为所述程序更新命令,则执行步骤S110,所述电子标签逐帧接收所述路侧单元下发的程序数据帧,以及S120,下载所述程序数据帧至所述临时存储区;
执行步骤S120后,所述方法还包括:
S121,所述电子标签判断所述程序数据帧是否为最后一帧,如果所述程序数据帧为最后一帧,则执行步骤S130,将所述更新标志位置位,反之继续接收所述路侧单元下发的程序数据帧。
进一步参见图4,执行所述步骤S109前,所述方法还包括:
S108,向所述路侧单元发送当前应用程序的版本号;以使所述路侧单元判断所述电子标签当前应用程序的版本号与所述需下发的所述程序数据帧的版本号是否一致,如果不一致,则所述路侧单元逐帧发送程序数据帧,反之所述路侧单元不作任何处理。
执行步骤S120前,所述方法还包括:
S119,检测所述程序数据帧与应用程序区当前应用的程序代码是否存在差异性;
如果存在差异性,则所述BootLoader区将具有所述差异性程序代码的程序数据帧覆盖当前应用的程序,即所述临时存储区存储的程序数据为具有差异性程序代码的程序数据帧。
以及,继步骤S108以后,所述路侧单元判断所述电子标签当前应用程序的版本号与所述需下发的所述程序数据帧的版本号不一致后,向电子标签发送需要更新程序命令,
进一步,如果所述电子标签发送的是上一次接收的程序数据帧时,则所述电子标签则从上一次的断点处开始接收,直到全部接收,并对更新标志位置位。
参见图5,本实施例的电子标签110包括:BootLoader模块111、检测单元112、处理单元113、初始化模块114、转换单元115、接收单元116以及发送单元117。
其中,BootLoader111模块用于引导所述电子标签的应用程序区。
检测单元112,用于检测所述程序数据帧的更新标志位是否置位;还用于判断接收到的所述网络设备发送的下行命令是否为软件更新命令。
处理单元113,用于所述临时存储区存储的程序数据下载至所述应用程序区。
初始化模块114,用于初始化所述电子标签运行应用程序区所需的数据;以及用于当所述处理单元将所述临时存储区存储的程序数据完全下载至所述应用程序区时,清除所述更新标志位的置位信息;还用于根据所述判断单元判断所述程序数据帧为最后一帧的通知将所述更新标志位置位。
转换单元115,根据初始化所述电子标签运行应用程序区所需的数据跳转到应用程序区。
接收单元116,用于接收所述路侧单元下发的下行命令;还用于根据判断所述路侧单元发送的下行命令为软件更新命令的通知逐帧接收所述路侧单元发送的程序数据帧。
发送单元117,用于向所述路侧单元发送当前应用软件的版本号。
本实施例的电子标签软件更新系统包括:电子标签110以及路侧单元,其中电子标签的结构原理图以及与所述路侧单元之间的通信方法已通过图1至图5清楚地描述了,不再赘述。
本实施例的路侧单元用于向所述电子标签发送下行命令,所述下行命令至少包括软件更新命令,以使所述电子标签判断接收到的下行命令是否为软件更新命令;还用于向所述电子标签逐帧发送程序数据帧,以使所述电子标签接收所述程序数据帧以及判断所述程序数据帧是否为最后一帧,以使所述电子标签根据判断所述程序数据帧为最后一帧的结果置位更新标志位,使所述电子标签根据置位的更新标志位将临时存储区的程序数据覆盖到应用程序区。进一步,如果更新不成功,所述电子标签将进行恢复操作。
进一步,路侧单元,还用于接收所述电子标签发送的当前应用的版本软件的版本号,并向所述电子标签发送程序数据帧;或者所述路侧单元根据所述电子标签当前应用程序的版本号,对比所述需下发的所述程序数据帧得出差异性程序代码的程序数据帧,使所述路侧单元逐帧发送具有差异性程序代码的所述程序数据帧。
实施例2
本实施例与实施例1的区别之处在于,本实施例中,步骤S108的执行,其目的是使所述路侧单元根据所述电子标签当前应用程序的版本号,对比所述需下发的所述程序数据帧得出差异性程序代码的程序数据帧,使所述路侧单元逐帧发送具有差异性程序代码的所述程序数据帧。
以及省略了实施例1中的步骤S119,即得出差异性程序代码的步骤可以通过所述路侧单元对比所述需下发的所述程序数据帧得出差异性程序代码的程序数据帧。与实施例1中通过电子标签将接收到的程序数据帧与应用程序区当前应用的程序代码对比以得出差异性代码的程序数据帧的技术方案相比,实施例2中通过路侧单元下发差异性程序代码的程序帧的技术方案进一步提高了电子标签更新程序的速度,提升了运营商运营营业网点的效率。
上述发明实施例中,在BootLoader区软件开始运行后;通过检测更新标志位是否置位后,根据置位的更新标志位将临时存储区的程序数据下载到应用程序存储区,完成更新,然后初始化所述电子标签运行应用程序区所需的数据,以根据初始化所述电子标签运行应用程序区所需的数据跳转到应用程序区。通过更新标志位的设置,从Bootloader区的启动到应用程序区的初始化,只需判断更新标志位是否有效,无须等待超时,避免了延迟更新程序的麻烦,以及简化了电子标签更新程序及运行程序时需多次初始化电子标签运行应用程序区所需的数据的步骤,提高了电子标签的交易速度以及营业网点的营业效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上对本实施例所提供的电子标签软件更新方法、设备及其系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。