利索能及
我要发布
收藏
专利号: 2024113072092
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-06
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于LoRaWAN的实验设备管理系统,其特征在于,包括:设备控制单元、LoRaWAN通信单元、电能监测单元、用户交互显示单元、远程预约管理平台、网关与服务器单元、固件管理与升级单元;

所述设备控制单元用于控制实验设备的电源,包含一个由单片机控制的继电器模块,实现设备的电源开关控制;所述LoRaWAN通信单元使用无线通信Soc芯片,通过LoRaWAN网络与远程服务器通信,负责接收和传输设备状态信息及固件升级数据包;所述电能监测单元包含电能计量芯片,用于实时监测实验设备的电流、电压和功率等参数;所述用户交互显示单元包含通过485通信连接的串口屏,用于显示实验设备的预约信息、操作流程、设备介绍图片及注意事项;所述远程预约管理平台运行在服务器端,用于管理实验设备的使用预约,监控设备的运行状态;所述网关与服务器用于处理系统的通信与数据传输,其中,服务器运行远程预约管理平台和固件升级管理系统,网关则通过LoRaWAN网络负责设备通信与固件更新管理;

所述固件管理与升级单元采用动态差分升级策略对显示单元的固件进行远程更新,具体为:首先获取目标终端设备的旧版固件,并将其与服务器端的新固件进行比较,生成差分包;然后,将该差分包分成若干小块,并基于当前网络状况和设备的正常业务数据传输情况,动态调整分块的大小和传输频率;在无正常业务数据传输时,按照最大传输容量进行分块传输;在有正常业务数据传输时,通过插帧策略将差分包数据嵌入到正常业务数据的传输间隙中;在终端设备处,接收并校验每个分块数据,根据校验结果确认或请求重传;在所有分块接收并重组完成后,基于差分包和旧固件生成新固件,并在校验无误后将其覆盖写入至终端设备的主存储区;单片机启动固件升级程序,将新固件用于更新显示单元的内容,确保显示单元功能的正常运行。

2.根据权利要求1所述的基于LoRaWAN的实验设备管理系统,其特征在于,所述实验设备管理系统中,实验人员通过远程预约管理平台预约设备的使用时间,所述设备控制单元在预约时间到达时执行通电操作,接通设备电源供实验人员使用,并在预约时间结束后,实验人员自行关闭设备电源。

3.根据权利要求1所述的基于LoRaWAN的实验设备管理系统,其特征在于,所述设备控制单元与电能监测单元协同工作,实时控制并监测实验设备的运行状态。在实验设备预约使用结束后,所述电能监测单元通过监测设备电流判断设备是否仍在使用,若设备仍在使用,则通过远程预约管理平台向预约人员发送通知,提示预约时间已到,并要求实验人员手动关闭设备电源,为了保护设备安全,只有在设备电源被手动关闭后,设备控制单元方可执行断电操作。

4.根据权利要求1所述的基于LoRaWAN的实验设备管理系统,其特征在于,所述串口屏的显示内容通过固件管理与升级单元进行远程动态差分升级,以更新设备介绍图片和操作流程。

5.根据权利要求1所述的基于LoRaWAN的实验设备管理系统,其特征在于,所述固件管理与升级单元存储区包括一个存储芯片,用于存储当前固件和接收到的差分升级包。

6.根据权利要求1所述的基于LoRaWAN的实验设备管理系统,其特征在于,所述的动态差分升级策略具体通过以下子步骤实现:S1:差分包生成;

S1.1:服务器接收到更新的请求,获取到需要更新的设备编号和新的更新包,接着通过网关向目标终端发送获取版本信息的请求消息;

S1.2:服务器根据接收到的版本号,检索并获取存储在服务器内的对应旧版更新包;服务器端将获取到的新旧更新包,使用BSDIFF算法对新旧版本文件进行比较,生成差分包,使用LZ77无损压缩算法对差分包进行压缩。制作好差分升级包,将其下发至网关存储;

S2:网络质量评估;

S2.1:网关向需要升级的目标终端节点发送升级请求,包含升级包的基本信息(包括文件大小和CRC16校验码);目标节点在接收到请求后,记录升级包信息,并启动升级程序;

S2.2:节点在启动升级程序后发送一次空的数据包(即空的上行消息)给网关;网关在接收到数据包后,测量接收信号强度指示(RSSI)和信噪比(SNR),并计算出链路余量(Margin);链路余量的计算公式为:Margin=SNRmeasured‑SNRrequired(1)

其中,SNRmeasured是网关接收到的空数据包的信噪比,SNRrequired网关成功解调该信号所需的最低信噪比(通常根据所使用的扩频因子(SF)而定);

S3:差分包传输;

S3.1:网关根据步骤S2.2计算的链路余量(Margin)和当前的扩频因子(SF),将升级包文件分割成若干个文件块并动态调整文件块的大小,设文件块大小为Bn;

S3.2:首先计算当前的扩频因子(SF)下的最大负载容量PSF:根据当前的扩频因子(SF)和带宽,最大有效载荷容量PSF可以通过以下公式计算:其中,DR是数据速率,由SF和带宽决定,TOA是空气时间,表示数据包在空中传播所需的时间,Header Size是物理层头的大小,Payload Overhead是LoRaWAN传输的开销,计算结果PSF代表了当前SF下能够承载的最大负载容量;

S3.3:文件块大小Bn根据Margin的变化情况和当最大负载容量PSF按以下公式调整:

其中,Bn‑1为前一次传输的文件块大小,Marginn‑1为前一次测得的链路余量,Marginbaseline为预设的基准Margin值;通过该调整方法,当链路余量较高时,文件块大小增大,以提高传输效率;当链路余量较低时,文件块大小减小,以提高传输成功率;

S3.4:当业务数据和升级包数据同时需要传输时,网关可以在单个业务传输帧中插入升级包数据,如果业务数据未占满最大负载容量PSF,则将剩余的容量用于传输升级包数据;

具体地,如果业务数据大小Bdata小于最大负载容量PSF,则将剩余容量用于插入升级包数据Bupgrade,插帧传输的调整公式如下:Bupgrade=min(PSF‑Bdata,Bn)(4)其中,Bupgrade为实际插入传输帧的升级包数据大小,Bn为根据Margin动态调整后的升级包数据块大小;通过该插帧方法,业务数据与升级包数据共享传输帧,在确保业务数据优先传输的前提下,充分利用带宽资源进行高效的升级包传输;

S3.5:在每次文件块传输成功并经节点校验后,节点发送一个简短的确认信息(ACK)至网关,以确认文件块的接收和校验成功。网关接收到该确认信息后,测量该确认信息的信号质量(如信号强度和信噪比),并据此计算链路余量(Margin);在整个升级过程中,网关不断根据接收到的空数据包所测得的网络质量和当前扩频因子SF值动态调整文件块大小和传输频率,确保在不同网络条件下优化传输效率与成功率;

S4:差分包存储与处理;

S4.1:每个数据块在发送时都添加上一个索引序号和一个结束标志;结束标志为1时表示这是最后一个数据块,为0时表示还有后续数据块,数据块的最后是CRC‑16校验码,用于验证数据包的准确性;

S4.2:终端节点首先为接收的数据块分配一个缓冲区,用于暂存每个数据块的内容,在数据块存入缓冲区后,节点立即计算该数据块的CRC‑16校验码,并与数据块中携带的校验码进行比较,如果校验成功,数据块将被标记为可写入,向网关发送ACK信号,如果校验失败,缓冲区中的数据块将被丢弃,并立即发送NACK信号给网关,请求重传;

S4.3:在网关端,每次发送数据块后,等待终端节点的ACK信号,如果在设定的超时时间内未收到ACK,网关将重传该数据块。重传次数设置为3次,如果在3次重传后仍未成功,网关将触发错误处理机制,暂停升级并报告服务器;

S4.4:在终端节点中,将存储空间划分为三个独立的存储分区:Slot A、Slot B和Slot C,分别用于存储旧固件、新固件以及差分包;Slot A用于存储当前正在运行的旧固件版本,在新固件完全验证无误之前,该分区内的固件不会被擦除,以确保系统始终有一个稳定的运行版本;Slot B用于存储生成的新固件版本,在生成新固件时,系统会将其临时存储在此分区中,待验证无误后,再将其覆盖写入Slot B;Slot C用于存储接收到的差分包,该分区用于临时存储和处理差分数据,直到新固件生成并通过验证;

S4.5:如果接收的数据块通过校验,终端节点根据数据块的索引号,将其内容写入存储芯片的Slot C区,每次写入时,确保单个数据块的大小不超过256字节;如果数据块小于256字节,用特定的填充字节0xFF填充剩余部分,以保证页写入的一致性,在写入每个数据块后,终端节点立即从存储芯片读取已写入的数据,并再次进行CRC校验,确保数据在写入过程中没有发生错误;

S5:差分包重组与校验;

S5.1:在所有数据块接收完毕并成功写入Slot C区后,终端节点开始差分包的重组;终端节点将接收的数据块按索引顺序排列,首先创建一个大小足够的数组,保存所有数据块的指针,然后按照索引号逐个插入数据块,确保它们按照正确的顺序排列,排序完成后,将这些有序的数据块合并为一个连续的差分包,重组完成后,终端节点对整个差分包进行一次全包CRC校验,以确保数据完整性;

S6:新固件生成与旧固件替换;

S6.1:终端节点使用BSDIFF算法,基于Slot A中的旧固件和Slot C中的差分包,生成新固件,新固件暂时存储在Slot B中;

S6.2:生成新固件后,终端节点触发升级系统,屏幕进入升级程序;

S6.3:屏幕升级成功后,终端节点擦除Slot A中的旧固件;擦除完成后,终端节点将Slot B中的新固件写入Slot A,覆盖原有的旧固件;新固件写入Slot A后,终端节点将擦除Slot B和Slot C,释放存储空间。