一种穿戴式人体运动捕捉系统的节点固件更新方法

文档序号:10615828
一种穿戴式人体运动捕捉系统的节点固件更新方法
【专利摘要】本申请提供的穿戴式人体运动捕捉系统的节点固件更新方法,只需通过向数据协调器发送更新指令和数据包,即可完成协调器所控制范围内所有传感器节点程序升级操作简单方便;此外,无需拆卸传感器节点,或者使用专用编程接口,也不需要逐个节点进行更新升级,可以节省大量的人力成本,避免无用的人力消耗;另外,本申请提供的穿戴式人体运动捕捉系统的节点固件更新方法,无需为节点程序更新安装额外的有线无线连接设备,通过合理利用节点与数据协调器之间的蓝牙通信设备即可实现升级指令和更新数据包的传送。
【专利说明】
-种穿戴式人体运动捕捉系统的节点固件更新方法
技术领域
[0001] 本发明设及穿戴人体健康技术领域,特别设及一种穿戴式人体运动捕捉系统的节 点固件更新方法。
【背景技术】
[0002] 穿戴式人体运动捕捉系统的一般结构是由一个数据协调器(或者数据基站、数据 中转中屯、)和多个传感器节点构成,各个传感器节点分布于身体的各个部位,采集的运动数 据通过有线或者无线的方式传送到数据协调器。一般而言,为了不影响人体的运动,传感器 与数据协调器间的通信方式均采用无线通信方式。
[0003] 在开发过程中,需要多次更改部分需要固化的关键参数,如量程、精度和阔值等, 不得不逐个节点更新程序;一套运动捕捉系统往往由十个左右节点构成。逐个节点地进行 程序更新,既耗费人力也不便捷。在使用过程中,必须要满足客户对系统的性能提升、功能 扩展等要求,能够提供相应的升级方案,通过更新固件程序能够尽可能降低成本、实现对原 有资源的重新利用。
[0004] 在应用编程(In-Application Programming)指在系统运行的过程中对程序执行 代码进行动态修改,可W完成在线升级程序,避免重新拆装设备,相比于原始的在系统编程 (In-System Programming)具有独特的优势。
[0005] 中国专利200720009338.9公开了一种基于GPRS网络的ARM嵌入式终端远程升级装 置,通过GPRS通信模块将升级数据包发送至待升级设备,设备接收到数据包后通过ARM忍片 支持的IAP特性进行程序更新;考虑到升级数据包可能较大,会进行数据包分包传输。
[0006] 中国专利201210216152.6公开了一种空调设备的控制装置、程序更新方法,通过 无线设备(WiFi或Zigbee)向控制器发送更新指令和数据包,完成对控制器的程序更新;同 时,控制器向另一个控制器(室外机)发送指令和数据包,完成室外机的控制程序更新。
[0007] 中国专利201410821443.7公开了一种基于IAP的可配置全网络远程节点固件升级 方法,上位机通过化hernet网络通信将更新数据包传送到化C设备,PLC设备接收到数据包 后通过CAN总线传输到远程节点,特别适合于大区域分布式或大范围可移动的嵌入式设备, 如大型油库、仓储、城市综合体、车载设备等领域。
[000引现有技术都是针对特定的应用场合而设计,并不适合所述穿戴式人体运动捕捉系 统的各个节点控制程序更新,主要存在W下几个方面问题:
[0009] DGPRS远程终端升级适合更新设备远离主机的情况,可W避免长距离情况下人员 奔波和升级成本的增加;但是每个节点必须安装GPRS设备,造成软硬件成本上升;此外, GPRS网络带宽较小,数据包只能切分多个数据块传输,且受网络环境影响,在数据包较大的 情况下,数据传输、校验都会影响升级成败。
[0010] 2)针对空调设备程序更新方法能够实现控制器、空调的一致更新,但是只设及单 一的设备,无法满足传感器网络的多个节点寻址、数据收发等问题。
[0011] 3)采样CAN总线连接网络设备程序更新方案特别适合于大型油库或者楼道等应用 场合,可W在不破坏墙体、设备的情况下进行设备升级,但是CAN通信协议过于复杂,如果应 用于所述穿戴式传感器网络节点会增加开发难度、且需要有线连接,不利于人体活动。

【发明内容】

[0012] 有鉴于此,有必要提供一种操作简单、节约成本的穿戴式人体运动捕捉系统的节 点固件更新方法。
[0013] 为实现上述目的,本申请采用下述技术方案:
[0014] -种穿戴式人体运动捕捉系统的节点固件更新方法,所述穿戴式人体运动捕捉系 统包括上位机、一个数据协调器及多个传感器节点、所述上位机信号连接于所述数据协调 器,用于将更新固件指令和固件数据包发送到所述数据协调器,所述数据协调器轮询扫描 每个传感器节点并发送指令和数据包,所述传感器节点接收来自数据协调器的程序更新 包,完成固件程序更新,所述穿戴式人体运动捕捉系统的节点固件更新方法包括下述步骤:
[0015] 步骤SlO:初始化所述上位机;
[0016] 步骤S20:测试所述上位机与所述数据协调器串口通信是否正常,如果正常则发送 固件更新指令"衝PdateFirmr,所述数据协调器接收到指令后向所述上位机发送指令"@ ReceiveingFirm妒;
[0017] 步骤S30:所述上位机判别指令后,将程序所需的固件更新数据包传送到所述数据 协调器,并等待数据协调器返回结果;
[0018] 步骤S40:所述数据协调器通过串口接收数据包,如果传输未完成,向所述上位机 发送"传输失败"指令,请求重传;如果接收成功,还需进行CRC校验:如果校验成功,向上位 机发送"传输完成"指令;如果校验失败,则发送指令"校验失败"指令,请求重传;
[0019] 步骤S50:所述数据协调器成功接收固件更新包后,进行数据包重新封装,所述数 据包包括所述传感器节点的ID号、蓝牙配对码、数据包W及其他附加信息;
[0020] 步骤S60:所述数据协调器设定的ID测试蓝牙通信是否正常,如果正常,发送更新 指令1化dateXXr,其中"XX"代表所述传感器节点的编号,对应一个设定的ID号,所述传感 器节点接收到指令,产生软中断,所述单片机响应软中断重启;
[0021 ]步骤S70:所述传感器节点重启后执行IAP程序,进入数据接收准备,如果接收成 功,向数据协调器返回"接收成功"指令;反之,返回"接收失败"指令;
[0022] 步骤S80:所述传感器节点接收完成数据包后,解析出固件更新数据包,转而执行 IAP程序,将数据包写入所述传感器节点忍片的FLASH存储区,同时向数据协调器发送"更新 成功"指令,并产生一个软中断,控制忍片重启执行FLASH用户区代码;
[0023] 步骤S90:数据协调器接收到"更新成功"的指令,继续对下一个节点进行通信连 接、数据传输和固件更新,并重复上述步骤,直至所有节点完成,并向所述上位机发送"固件 升级成功"指令。
[0024] 优选地,所述数据协调器由第一主控单片机、无线通信模块、串口通信模块组成, 所述第一主控单片机用于完成所述上位机的指令判别、数据包的存储和转发和所有传感器 节点的通信;所述无线通信模块用于与所述传感器节点的一对一通信、数据包传送和校验; 所述串口通信模块用于连接所述第一主控单片机和所述上位机。
[0025] 优选地,所述第一主控单片机采用ST公司的STM32F405RG,所述无线通信模块为蓝 牙4.0,所述串口通信模块为USART通信模块。
[0026] 优选地,在进行所述穿戴式人体运动捕捉系统的节点固件更新之前还包括对所述 数据协调器进行更新,具体包括下述步骤:
[0027] 步骤SllO:初始化所述数据协调器,包括初始化所述第一主控单片机、无线通信模 块、串口通信模块;
[00%]步骤S120:所述第一主控单片机判别是否接收到固件更新指令"軌JpdateFirmO", 如果没有,正常执行既定程序;如果接收到更新指令,进入中断,跳转执行更新程序;
[0029] 步骤S130:开始执行更新程序,所述第一主控单片机向所述上位机发送数据接收 准备好指令"SReceiveingFirm妒,通过串口接收来自上位机的数据包,如果传输未完成,向 所述上位机发送指令"CTransError妒;如果传输完成,再需进行CRC校验:如果校验成功,将 "数据传输完成"标记位值' 1',并向上位机发送指令"@FirmFinished@" W报告数据传输完 成;如果校验失败,则向上位机发送指令"OCRCErrorO",请求重传;校验成功则发送"@ FirmSuccess妒指示固件接收成功;
[0030] 步骤S140:所述第一主控单片机判断"数据传输完成"标记位,如果为1,先将数据 包存储在在所述数据协调器忍片的RAM区,同时向指定所述传感器节点发送蓝牙配对码,建 立蓝牙连接;
[0031] 步骤S150:连接成功后,先向所述传感器节点发送固件更新指令$UpdateXX$,其中 为目标节点ID号,如果返回等待固件数据包指令IWaitin评,则进行数据包封 装,格式为"数据包同步头+传感器节点ID+蓝牙配对码+更新固件数据包+CRC校验值",并通 过蓝牙传输到指定ID的节点;
[0032] 步骤S160:接收所述传感器节点返回的指令,如果传输未完成、或者传输完成而 CRC校验出错则重新传送数据包;如果,传输成功则将子节点ID对应"数据传输成功"标记位 置'1';
[0033] 步骤S170:等待节点返回固件更新成功指令,如果超过20秒未接收到,则重新进行 步骤S140~150;如果接收到指令则将子节点ID对应"固件更新成功"标记位置'1',同时向 上位机发送"ID号为XX的子节点已更新固件";
[0034] 步骤S180:检查所有的ID号对应的"固件更新成功"标记位,如果全部为'1',则向 上位机发送信息,指示所有节点固件程序均已更新;如果有某个ID号对应的"固件更新成 功"标记位为0,则执行步骤S140~160。
[0035] 优选地,所述传感器节点包括带IAP特性的第二主控单片机、无线通信模块及运动 传感器,其中,无线通信模块主要完成与数据协调器的通信、数据包接收和校验;所述第二 主控单片机对接收到的数据包解析,指令识别、FLASH读写;运动传感器用于采集人体运动 信息。
[0036] 优选地,所述第二主控单片机采用ST公司的STM3化151QC、所述运动传感器采用 InvenSense 公司的MPU9150。
[0037] 优选地,在进行所述穿戴式人体运动捕捉系统的节点固件更新之前还包括对所述 传感器节点进行更新,具体包括下述步骤:
[0038] 步骤S210:所述传感器节点初始化;
[0039] 步骤S220:所述第二主控单片监测是否有固件更新指令$UpdateXX$,并匹配自身 设置的节点ID值,如果检测到命令,退出运动监测模式,产生软中断,使得第二主控单片重 启执行IAP程序;反之,继续监测更新指令,如果20秒内未接收到则执行工作区程序,完成运 动监测;
[0040] 步骤S230:进入IAP程序后,第二主控单片先向数据协调器发送准备好传送固件更 新数据包指令IWaitin评并通过蓝牙接收数据包;如果等待10秒没有数据接收到, 跳转到用户区程序;反之,进入数据接收部分;
[0041] 步骤S240:进入数据接收部分后,如果传输未完成、或者传输完成而CRC校验出错 则向协调器分别发送IxxiYsans化iIdr、IXXCRCErrorr指令,指示数据包传输未完成, 请求重传;如果传输完成,则将更新准备好标志位置' 1',同时向所述上位机发送传输完成 指令"$XXTrsansFinished$",并进入固件更新子程序;
[0042] 步骤S250:进入固件更新子程序后,第二主控单片先提取出固件更新数据包,并依 据IAP设置,写入指定化ASH区域,写入完成后,向数据协调器发送固件更新成功指令"$ XXFirmUpdateSuccessS";
[0043] 步骤S250:利用第二主控单片机中断系统产生一个软中断,触发中断响应重启第 二主控单片,使得第二主控单片进入IAP程序,等待20秒后跳转到用户区程序,执行更新 FLA甜工作区域的代码,完成固件升级。
[0044] 本发明采用上述技术方案,其有益效果在于:
[0045] 本发明提供的穿戴式人体运动捕捉系统的节点固件更新方法,利用所述上位机将 更新固件指令和固件数据包发送到所述数据协调器,所述数据协调器轮询扫描每个传感器 节点并发送指令和数据包,所述传感器节点接收来自数据协调器的程序更新包,完成固件 程序更新。本申请提供的穿戴式人体运动捕捉系统的节点固件更新方法,只需通过向数据 协调器发送更新指令和数据包,即可完成协调器所控制范围内所有传感器节点程序升级操 作简单方便;此外,无需拆卸传感器节点,或者使用专用编程接口,也不需要逐个节点进行 更新升级,可W节省大量的人力成本,避免无用的人力消耗;另外,本申请提供的穿戴式人 体运动捕捉系统的节点固件更新方法,无需为节点程序更新安装额外的有线无线连接设 备,通过合理利用节点与数据协调器之间的蓝牙通信设备即可实现升级指令和更新数据包 的传送。
【附图说明】
[0046] 图1为本发明提供的穿戴式人体运动捕捉系统的结构示意图。
[0047] 图2为所述数据协调器的结构示意图。
[004引图3为多个传感器节点130的结构示意图。
[0049] 图4(a)为上位机与数据协调器间固件更新数据包结构图。
[0050] 图4(b)为数据协调器与传感器节点间固件更新数据包结构图。
[0051 ]图5为对所述数据协调器进行更新的步骤流程图。
[0052]图6为对所述传感器节点进行更新的步骤流程图。
[005引图7为IAP升级设及FLASH存储区域划分示意图。
【具体实施方式】
[0054] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0055] 请参阅图1,为本发明提供的穿戴式人体运动捕捉系统的结构示意图,所述穿戴式 人体运动捕捉系统包括上位机110、一个数据协调器120及多个传感器节点130、所述上位机 110信号连接于所述数据协调器120,用于将更新固件指令和固件数据包发送到所述数据协 调器120,所述数据协调器120轮询扫描每个传感器节点130并发送指令和数据包,所述传感 器节点130接收来自数据协调器120的程序更新包,完成固件程序更新。
[0056] 请参阅图2,为所述数据协调器120的结构示意图,所述数据协调器120由第一主控 单片机121、无线通信模块122、串口通信模块123组成,所述第一主控单片121机用于完成所 述上位机110的指令判别、数据包的存储和转发和所有传感器节点130的通信;所述无线通 信模块122用于与所述传感器节点130的一对一通信、数据包传送和校验;所述串口通信模 块123用于连接所述第一主控单片机121和所述上位机130。
[0057] 优选地,所述无线通信模块122采用蓝牙4.0,第一主控单片机121采用ST公司的 STM32F405RG、蓝牙忍片为TI公司的CC254U配置为主设备模式)、所述串口通信模块123使 用CP2102实现USB转串口。
[0058] 请参阅图3,为多个传感器节点130的结构示意图,包括:带IAP特性的第二主控单 片机131、无线通信模块132及运动传感器133,其中,无线通信模块132完成与数据协调器的 通信、数据包接收和校验;所述第二主控单片机131对接收到的数据包解析,指令识别、 flash读写;运动传感器133用于采集人体运动信息。
[0059] 优选地,第二主控单片机131采用ST公司的STM32L15 IQC、运动传感器采用 InvenSense 公司的MPU9150。
[0060] 本发明提供的穿戴式人体运动捕捉系统的节点固件更新方法,包括下述步骤:
[0061 ] 步骤SlO:初始化所述上位机;
[0062] 步骤S20:测试所述上位机与所述数据协调器串口通信是否正常,如果正常则发送 固件更新指令"衝PdateFirmr,所述数据协调器接收到指令后向所述上位机发送指令"@ ReceiveingFirm妒;
[0063] 步骤S30:所述上位机判别指令后,将程序所需的固件更新数据包传送到所述数据 协调器,并等待数据协调器返回结果;
[0064] 步骤S40:所述数据协调器通过串口接收数据包,如果传输未完成,向所述上位机 发送"传输失败"指令,请求重传;如果接收成功,还需进行CRC校验:如果校验成功,向上位 机发送"传输完成"指令;如果校验失败,则发送指令"校验失败"指令,请求重传;
[0065] 步骤S50:所述数据协调器成功接收固件更新包后,进行数据包重新封装,所述数 据包包括所述传感器节点的ID号、蓝牙配对码、数据包W及其他附加信息;
[0066] 步骤S60:所述数据协调器设定的ID测试蓝牙通信是否正常,如果正常,发送更新 指令1化dateXXr,其中"XX"代表所述传感器节点的编号,对应一个设定的ID号,所述传感 器节点接收到指令,产生软中断,所述单片机响应软中断重启;
[0067] 步骤S70:所述传感器节点重启后执行IAP程序,进入数据接收准备,如果接收成 功,向数据协调器返回"接收成功"指令;反之,返回"接收失败"指令;
[0068] 步骤S80:所述传感器节点接收完成数据包后,解析出固件更新数据包,转而执行 IAP程序,将数据包写入所述传感器节点忍片的FLASH存储区,同时向数据协调器发送"更新 成功"指令,并产生一个软中断,控制忍片重启执行FLASH用户区代码;
[0069] 步骤S90:数据协调器接收到"更新成功"的指令,继续对下一个节点进行通信连 接、数据传输和固件更新,并重复上述步骤,直至所有节点完成,并向所述上位机发送"固件 升级成功"指令。
[0070] 参阅图4(a)及图4(b),分别表示为上位机与数据协调器间固件更新数据包结构图 及数据协调器与传感器节点间固件更新数据包结构图。
[0071] 其中;
[0072] ①数据协调器与上位机间指令:
[0073]
[0074]
[0075]
[0076] 本发明提供的穿戴式人体运动捕捉系统的节点固件更新方法,利用所述上位机将 更新固件指令和固件数据包发送到所述数据协调器,所述数据协调器轮询扫描每个传感器 节点并发送指令和数据包,所述传感器节点接收来自数据协调器的程序更新包,完成固件 程序更新。
[0077] 优选地,请参阅图5,在进行所述穿戴式人体运动捕捉系统的节点固件更新之前还 包括对所述数据协调器进行更新,具体包括下述步骤:
[0078] 步骤SllO:初始化所述数据协调器,包括初始化所述第一主控单片机、无线通信模 块、串口通信模块;
[0079] 步骤S120:所述第一主控单片机判别是否接收到固件更新指令"軌JpdateFirmO", 如果没有,正常执行既定程序;如果接收到更新指令,进入中断,跳转执行更新程序;
[0080] 步骤S130:开始执行更新程序,所述第一主控单片机向所述上位机发送数据接收 准备好指令"SReceiveingFirm妒,通过串口接收来自上位机的数据包,如果传输未完成,向 所述上位机发送指令"CTransError妒;如果传输完成,再需进行CRC校验:如果校验成功,将 "数据传输完成"标记位值' 1',并向上位机发送指令"@FirmFinished@" W报告数据传输完 成;如果校验失败,则向上位机发送指令"OCRCErrorO",请求重传;校验成功则发送"@ FirmSuccess妒指示固件接收成功;
[0081 ]步骤S140:所述第一主控单片机判断"数据传输完成"标记位,如果为1,先将数据 包存储在在所述数据协调器忍片的RAM区,同时向指定所述传感器节点发送蓝牙配对码,建 立蓝牙连接;
[0082] 步骤S150:连接成功后,先向所述传感器节点发送固件更新指令$UpdateXX$,其中 为目标节点ID号,如果返回等待固件数据包指令IWaitin评,则进行数据包封 装,格式为"数据包同步头+传感器节点ID+蓝牙配对码+更新固件数据包+CRC校验值",并通 过蓝牙传输到指定ID的节点;
[0083] 步骤S160:接收所述传感器节点返回的指令,如果传输未完成、或者传输完成而 CRC校验出错则重新传送数据包;如果,传输成功则将子节点ID对应"数据传输成功"标记位 置'1';
[0084] 步骤S170:等待节点返回固件更新成功指令,如果超过20秒未接收到,则重新进行 步骤S140~150;如果接收到指令则将子节点ID对应"固件更新成功"标记位置'1',同时向 上位机发送"ID号为XX的子节点已更新固件";
[0085] 步骤S180:检查所有的ID号对应的"固件更新成功"标记位,如果全部为'1',则向 上位机发送信息,指示所有节点固件程序均已更新;如果有某个ID号对应的"固件更新成 功"标记位为0,则执行步骤S140~160。
[0086] 优选地,请参阅图6,在进行所述穿戴式人体运动捕捉系统的节点固件更新之前还 包括对所述传感器节点进行更新,具体包括下述步骤:
[0087] 步骤S210:所述传感器节点初始化;
[0088] 步骤S220:所述第二主控单片监测是否有固件更新指令$UpdateXX$,并匹配自身 设置的节点ID值,如果检测到命令,退出运动监测模式,产生软中断,使得第二主控单片重 启执行IAP程序;反之,继续监测更新指令,如果20秒内未接收到则执行工作区程序,完成运 动监测;
[0089] 步骤S230:进入IAP程序后,第二主控单片先向数据协调器发送准备好传送固件更 新数据包指令IWaitin评并通过蓝牙接收数据包;如果等待10秒没有数据接收到, 跳转到用户区程序;反之,进入数据接收部分;
[0090] 步骤S240:进入数据接收部分后,如果传输未完成、或者传输完成而CRC校验出错 则向协调器分别发送IxxiYsans化iIdr、IXXCRCErrorr指令,指示数据包传输未完成, 请求重传;如果传输完成,则将更新准备好标志位置' 1',同时向所述上位机发送传输完成 指令"$XXTrsansFinished$",并进入固件更新子程序;
[0091 ]步骤S250:进入固件更新子程序后,第二主控单片先提取出固件更新数据包,并依 据IAP设置,写入指定化ASH区域,写入完成后,向数据协调器发送固件更新成功指令"$ XXFirmUpdateSuccessS";
[0092] 步骤S260:利用第二主控单片机中断系统产生一个软中断,触发中断响应重启第 二主控单片,使得第二主控单片进入IAP程序,等待20秒后跳转到用户区程序,执行更新 FLA甜工作区域的代码,完成固件升级。
[0093] 请参阅图7,为IAP升级设及化A甜存储区域划分示意图。可W理解,ARM微控制忍片 的固件代码存储于初始地址为0X800 0000的化A細地址区域,IAP特性将整片地址划分为 IAP代码区和工作代码区.
[0094] ARM忍片重启或者上电后,首先执行IAP代码,如果在设置的时间内接收到更新指 令,则执行固件更新的一些列操作:接收数据、解析数据W及写入工作FLASH代码区等;如果 超时,自动跳转执行工作区代码,完成既定的功能。
[0095] 本申请提供的穿戴式人体运动捕捉系统的节点固件更新方法,只需通过向数据协 调器发送更新指令和数据包,即可完成协调器所控制范围内所有传感器节点程序升级操作 简单方便;此外,无需拆卸传感器节点,或者使用专用编程接口,也不需要逐个节点进行更 新升级,可W节省大量的人力成本,避免无用的人力消耗;另外,本申请提供的穿戴式人体 运动捕捉系统的节点固件更新方法,无需为节点程序更新安装额外的有线无线连接设备, 通过合理利用节点与数据协调器之间的蓝牙通信设备即可实现升级指令和更新数据包的 传送。
[0096] 虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理 解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明 的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保 护范围之内。
【主权项】
1. 一种穿戴式人体运动捕捉系统的节点固件更新方法,所述穿戴式人体运动捕捉系统 包括上位机、一个数据协调器及多个传感器节点、所述上位机信号连接于所述数据协调器, 用于将更新固件指令和固件数据包发送到所述数据协调器,所述数据协调器轮询扫描每个 传感器节点并发送指令和数据包,所述传感器节点接收来自数据协调器的程序更新包,完 成固件程序更新,其特征在于,所述穿戴式人体运动捕捉系统的节点固件更新方法包括下 述步骤: 步骤S10:初始化所述上位机; 步骤S20:测试所述上位机与所述数据协调器串口通信是否正常,如果正常则发送固件 更新指令"OUpdateFirmO",所述数据协调器接收到指令后向所述上位机发送指令 ReceiveingFirmO"; 步骤S30:所述上位机判别指令后,将程序所需的固件更新数据包传送到所述数据协调 器,并等待数据协调器返回结果; 步骤S40 :所述数据协调器通过串口接收数据包,如果传输未完成,向所述上位机发送 "传输失败"指令,请求重传;如果接收成功,还需进行CRC校验:如果校验成功,向上位机发 送"传输完成"指令;如果校验失败,则发送指令"校验失败"指令,请求重传; 步骤S50:所述数据协调器成功接收固件更新包后,进行数据包重新封装,所述数据包 包括所述传感器节点的ID号、蓝牙配对码、数据包以及其他附加信息; 步骤S60:所述数据协调器设定的ID测试蓝牙通信是否正常,如果正常,发送更新指令 "$UpdateXXr,其中"XX"代表所述传感器节点的编号,对应一个设定的ID号,所述传感器节 点接收到指令,产生软中断,所述单片机响应软中断重启; 步骤S70:所述传感器节点重启后执行IAP程序,进入数据接收准备,如果接收成功,向 数据协调器返回"接收成功"指令;反之,返回"接收失败"指令; 步骤S80:所述传感器节点接收完成数据包后,解析出固件更新数据包,转而执行IAP程 序,将数据包写入所述传感器节点芯片的FLASH存储区,同时向数据协调器发送"更新成功" 指令,并产生一个软中断,控制芯片重启执行FLASH用户区代码; 步骤S90:数据协调器接收到"更新成功"的指令,继续对下一个节点进行通信连接、数 据传输和固件更新,并重复上述步骤,直至所有节点完成,并向所述上位机发送"固件升级 成功"指令。2. 如权利要求1所述的穿戴式人体运动捕捉系统的节点固件更新方法,其特征在于,所 述数据协调器由第一主控单片机、无线通信模块、串口通信模块组成,所述第一主控单片机 用于完成所述上位机的指令判别、数据包的存储和转发和所有传感器节点的通信;所述无 线通信模块用于与所述传感器节点的一对一通信、数据包传送和校验;所述串口通信模块 用于连接所述第一主控单片机和所述上位机。3. 如权利要求2所述的穿戴式人体运动捕捉系统的节点固件更新方法,其特征在于,所 述第一主控单片机采用ST公司的STM32F405RG,所述无线通信模块为蓝牙4.0,所述串口通 信模块为USART通信模块。4. 如权利要求3所述的穿戴式人体运动捕捉系统的节点固件更新方法,其特征在于,在 进行所述穿戴式人体运动捕捉系统的节点固件更新之前还包括对所述数据协调器进行更 新,具体包括下述步骤: 步骤S110:初始化所述数据协调器,包括初始化所述第一主控单片机、无线通信模块、 串口通信模块; 步骤S120:所述第一主控单片机判别是否接收到固件更新指令"OUpdateFirmO",如果 没有,正常执行既定程序;如果接收到更新指令,进入中断,跳转执行更新程序; 步骤S130:开始执行更新程序,所述第一主控单片机向所述上位机发送数据接收准备 好指令"@ReceiveingFirm@",通过串口接收来自上位机的数据包,如果传输未完成,向所述 上位机发送指令"OTransErrorO" ;如果传输完成,再需进行CRC校验:如果校验成功,将"数 据传输完成"标记位值'1',并向上位机发送指令"OFirmFinishedO"以报告数据传输完成; 如果校验失败,则向上位机发送指令"OCRCErrorO",请求重传;校验成功则发送 FirmSuccessO"指示固件接收成功; 步骤S140:所述第一主控单片机判断"数据传输完成"标记位,如果为1,先将数据包存 储在在所述数据协调器芯片的RAM区,同时向指定所述传感器节点发送蓝牙配对码,建立蓝 牙连接; 步骤S150:连接成功后,先向所述传感器节点发送固件更新指令$UpdateXX$,其中"XX" 为目标节点ID号,如果返回等待固件数据包指令"$WaitingFirm$",则进行数据包封装,格 式为"数据包同步头+传感器节点ID+蓝牙配对码+更新固件数据包+CRC校验值",并通过蓝 牙传输到指定ID的节点; 步骤S160:接收所述传感器节点返回的指令,如果传输未完成、或者传输完成而CRC校 验出错则重新传送数据包;如果,传输成功则将子节点ID对应"数据传输成功"标记位置 '1,; 步骤S170:等待节点返回固件更新成功指令,如果超过20秒未接收到,则重新进行步骤 S140~150;如果接收到指令则将子节点ID对应"固件更新成功"标记位置' Γ,同时向上位 机发送"ID号为XX的子节点已更新固件"; 步骤S180:检查所有的ID号对应的"固件更新成功"标记位,如果全部为'1',则向上位 机发送信息,指示所有节点固件程序均已更新;如果有某个ID号对应的"固件更新成功"标 记位为0,则执行步骤S140~160。5. 如权利要求1所述的穿戴式人体运动捕捉系统的节点固件更新方法,其特征在于,所 述传感器节点包括带IAP特性的第二主控单片机、无线通信模块及运动传感器,其中,无线 通信模块完成与数据协调器的通信、数据包接收和校验;所述第二主控单片机对接收到的 数据包解析,指令识别、FLASH读写;运动传感器用于采集人体运动信息。6. 如权利要求5所述的穿戴式人体运动捕捉系统的节点固件更新方法,其特征在于,所 述第二主控单片机采用ST公司的STM32L151QC、所述运动传感器采用InvenSense公司的 MPU9150。7. 如权利要求6所述的穿戴式人体运动捕捉系统的节点固件更新方法,其特征在于,在 进行所述穿戴式人体运动捕捉系统的节点固件更新之前还包括对所述传感器节点进行更 新,具体包括下述步骤: 步骤S210:所述传感器节点初始化; 步骤S220:所述第二主控单片监测是否有固件更新指令$UpdateXX$,并匹配自身设置 的节点ID值,如果检测到命令,退出运动监测模式,产生软中断,使得第二主控单片重启执 行IAP程序;反之,继续监测更新指令,如果20秒内未接收到则执行工作区程序,完成运动监 测; 步骤S230:进入ΙΑΡ程序后,第二主控单片先向数据协调器发送准备好传送固件更新数 据包指令"$WaitingFiri4",并通过蓝牙接收数据包;如果等待1〇秒没有数据接收到,跳转 到用户区程序;反之,进入数据接收部分; 步骤S240:进入数据接收部分后,如果传输未完成、或者传输完成而CRC校验出错则向 协调器分别发送"$XXTrsansFaild$"、"$XXCRCError$"指令,指示数据包传输未完成,请求 重传;如果传输完成,则将更新准备好标志位置' Γ,同时向所述上位机发送传输完成指令 "$XXTrsansFinished$",并进入固件更新子程序; 步骤S250 :进入固件更新子程序后,第二主控单片先提取出固件更新数据包,并依据 IAP设置,写入指定FLASH区域,写入完成后,向数据协调器发送固件更新成功指令"$ XXFirmUpdateSuccess$,> ; 步骤S260:利用第二主控单片机中断系统产生一个软中断,触发中断响应重启第二主 控单片,使得第二主控单片进入IAP程序,等待20秒后跳转到用户区程序,执行更新FLASH工 作区域的代码,完成固件升级。
【文档编号】G06F9/445GK105978727SQ201610424641
【公开日】2016年9月28日
【申请日】2016年6月16日
【发明人】宁运琨, 赵国如, 全永奇, 谢高生
【申请人】深圳先进技术研究院
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1