基于片上Flash嵌入式系统的远程更新方法
【专利摘要】一种基于片上Flash嵌入式系统的远程更新方法,在通信方法的辅助确保下,可以很好地保证每次传输的可靠性,如有问题,产品端会发信号要求重传,直到数据包完整,并根据更新组件的大小来计算需传输的次数,从而确保整个组件的完整性,另外在更新传输完成时,在更新策略的引导下,系统可以很好的进行完全稳定的更新,并具备复位初始状态功能,且能反复更新。
【专利说明】基于片上Flash嵌入式系统的远程更新方法
【技术领域】
[0001]本发明属工业控制领域中的嵌入式设备进行远程在线可靠更新【技术领域】,具体涉及到一种基于片上Flash嵌入式系统的远程更新方法。
【背景技术】
[0002]嵌入式系统是当今最热门的,最有发展前途的IT应用领域之一,小到MP3,PDA等微型数字化产品,大到网络家电,智能工具,车载电子设备,数字机床。都是嵌入式系统应用广泛的地方。随着其广泛的应用,其软件维护也变得越来越重要。
[0003]但是嵌入式研发人员不可能把所有问题都在研发当中解决,只有投入实际应用环境才能暴露其不足之处,并且在运行期间,用户对产品提出新的功能要求,因此软件的更新成了必不可少的维护环节。如果采用人工维护更新,随着产品投入市场数量越来越多,这将是一笔巨大的开支。这样采用网络通信进行远程更新成了降低维护成本的必要手段。在片上RAM上运行嵌入式系统的远程更新多有研究,这里不赘述。而由于片上RAM容量不足只能在片上Flash上运行的嵌入式系统的远程更新也少有提及,对如何确保更新过程的安全性也没有进行深入研究。
【发明内容】
[0004]本发明提供一种基于片上Flash嵌入式系统的远程更新方法,在通信方法的辅助确保下,可以很好地保证每次传输的可靠性,如有问题,产品端会发信号要求重传,直到数据包完整,并根据更新组件的大小来计算需传输的次数,从而确保整个组件的完整性,另外在更新传输完成时,在更新策略的引导下,系统可以很好的进行完全稳定的更新,并具备复位初始状态功能,且能反复更新。
[0005]为实现上述目的,本发明的技术方案为:
[0006]一种基于片上Flash嵌入式系统的远程更新方法,步骤如下:
[0007]步骤1:本地监控端或PC机发出更新命令,发出更新命令后本地监控端或PC机等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的更新命令,如果本地监控端或PC机发送所述的更新命令的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号;
[0008]步骤2:如果远程终端对本地监控端或PC机发出的更新命令做出了对应的应答,也即表示远程终端接收到了本地监控端或PC机发出的更新命令,这样在本地监控端或PC机接受到远程终端发送来的应答信号后,本地监控端或PC机对远程终端发送更新数据包的字节数量值信号,发送出更新数据包的字节数量值信号后等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的更新数据包的字节数量值信号,如果本地监控端或PC机发送所述的更新数据包的字节数量值信号的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号;
[0009]步骤3:如果远程终端接收到了本地监控端或PC机发出的更新数据包的字节数量值信号,远程终端的嵌入式处理器对远程终端的内存中存储更新数据包长度值的可变存储单元进行赋值,这样远程终端的嵌入式处理器结合更新数据包长度值的导出需要接收分段更新包的次数,并将该需要接收分段更新包的次数值发送到远程终端的内存里用来存储分段更新包的次数值的可变存储单元中,然后远程终端对本地监控端或PC机发出应答信号;
[0010]步骤4:本地监控端或PC机接收到远程终端发送来的应答信号后,就对远程终端发送第一个更新包,发送出第一个更新包后等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的第一个更新包,如果本地监控端或PC机发送所述的第一个更新包的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号;
[0011]步骤5:如果远程终端接收到了第一个更新包,然后远程终端的处理器把接受到的更新包的个数存储到内存里用于存储更新包个数的可变存储单元中;
[0012]步骤6:接着远程终端的处理器启动比较器来将存储更新包个数同所述的分段更新包的次数值进行比较,如果更新包个数等于分段更新包的次数值,远程终端就对本地监控端或PC机发送接收成功的信号并且远程终端的处理器将内存中的存储更新标志的可变存储单元的值设定为1,然后进入步骤8,如果更新包个数小于分段更新包的次数值,远程终端就对本地监控端或PC机发送请求下一个更新包的应答命令,如果本地监控端或PC机接收到了请求下一个更新包的应答命令,本地监控端或PC机就发送下一个更新包,如果本地监控端或PC机没有接收到请求下一个更新包的应答命令,本地监控端或PC机就进入等待请求下一个更新包的应答命令的状态;
[0013]步骤7:如果远程终端接收到了地监控端或PC机发来的下一个更新包,然后远程终端的处理器操纵加法器以加一的方式把内存里用于存储更新包个数的可变存储单元中的值加一,然后返回步骤6;
[0014]步骤8:上述的七个步骤就构成了基于片上Flash嵌入式系统的远程通信方法,然后在需要进行远程终端的远程更新时,远程终端执行远程更新操作。
[0015]所述的步骤8中的远程终端执行远程更新操作的步骤如下:
[0016]步骤1:在步骤8中的远程终端执行远程更新操作前,对应的需要被远程更新的组件保留在远程终端的第一扇区区域内,并且在远程终端中的Flash芯片上预留可变存储单元区域来存储代码更新标志信号值和程序跳转标志信号值,在此条件下上电启动远程终端,首先初始化远程终端的所有硬件,确保远程终端的所有硬件正常运转,然后远程终端的处理器开启中断机构,该中断机构包括定时器中断机构、看门狗中断机构、网口中断机构以及远程终端上的其它的中断机构,这样远程终端的处理器就能够凭借中断机构的处理流程来处理对应的中断事务;
[0017]步骤2:远程终端的处理器对需要初始化的可变存储单元的值进行初始化,其中包括将存储程序跳转标志信号值的可变存储单元的值设定为不可用;
[0018]步骤3:远程终端的处理器检索存储代码更新标志信号值的可变存储单元的值是否为可用状态,如果存储代码更新标志信号值为不可用状态,直接转入步骤5执行,如果存储代码更新标志信号值的可变存储单元的值为可用状态,就表示已经有新的更新数据包已经进入了远程终端的用于更新数据包存储的第三扇区,并且该新的更新数据包正等待拷贝到远程终端设定的第二扇区中,这样远程终端的处理器将新的更新数据包拷贝到远程终端设定的第二扇区中,远程终端的处理器把存储跳转第二扇区标志信号的可变存储单元的值擦写为可用状态,并把存储代码更新标志信号值的可变存储单元的值设定为不可用状态,转入步骤4去继续执行;
[0019]步骤4:远程终端的处理器进入死循环模式,等待远程终端的看门狗复位,然后远程终端重启,返回步骤I执行;
[0020]步骤5:远程终端的处理器把存储定时器等待置跳转标志信号值的可变存储单元的值置为可用状态,此时定时器中断处理机构中的对应的等待置跳转标志信号值的组件开始启动,该等待置跳转标志信号值的组件会在等待的5?10秒的时间范围内向客户发送请求命令,请求等待置跳转标志信号值的组件是否返回第一扇区进行工作,如果等待5-10秒时间后客户发送返回第一扇区命令,这时远程终端的处理器把存储定时器等待置跳转标志信号值的可变存储单元的值置为不可用状态,并且存储定时器等待置跳转标志信号值的可变存储单元的值将在后续执行中不再改动,而第一扇区的组件继续在第一扇区上运行,如果等待5-10秒时间后客户没有反馈信号,则定时器中断处理机构执行步骤7 ;
[0021]步骤6:远程终端的处理器循环执行其他组件或等待客户下发命令,当远程终端的处理器接受到组件更新命令时,就按照所述的基于片上Flash嵌入式系统的远程通信方法接收更新数据包,并存储在第三扇区区域中,远程终端的处理器还把存储代码更新标志信号值的可变存储单元的值擦写为可用状态,这样就重启远程终端,返回步骤I中执行;
[0022]步骤7:远程终端的处理器检测存储跳转第二扇区标志信号值的可变存储单元的值是否为可用状态,如果为不可用状态,则返回步骤6去执行,如果为可用状态,则远程终端的处理器进入第二扇区执行第二扇区的组件。
[0023]通本发明的基于片上Flash嵌入式系统的远程更新方法,根据通信方法,远程通信的可靠性依靠通信方法的校验码以及判断更新包的大小个数来保证,每次更新包的传送都会自己计算校验码并跟传送过来的校验码相比对,相同则判断此次更新传送成功。而整个更新程序的正确行则依靠客户端更新前发送的更新组件大小进行判断;另外对存储区域的规划,合理的规划能确保此策略的安全可靠性,三个区域都具有不同的目的,第一扇区负责启动,第二扇区负责升级,第三扇区负责备用以及预留一段很小的存储区域保留全局更新信号。第一扇区为远程终端第一次导进组件的区域,此区域具有完整的更新功能和更新后跳转到下扇区的功能。扇区I的首地址为0,至于第一扇区的容量随研发人员自己定,系统每次重启会先进入第一扇区中运行组件,第二扇区为产品后续更新时所运行的区域,产品更新后就不再在第一扇区运行了,第三扇区为产品接收更新数据包后所存放的区域,主要确保更新数据包的完整性扇区。
[0024]具体实施方法
[0025]下面通过具体实施例对本发明做进一步说明:
[0026]本发明的基于片上Flash嵌入式系统的远程更新方法,步骤如下:
[0027]基于片上Flash嵌入式系统的远程更新方法,步骤如下:
[0028]步骤1:本地监控端或PC机发出更新命令,发出更新命令后本地监控端或PC机等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的更新命令,如果本地监控端或PC机发送所述的更新命令的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号;[0029]步骤2:如果远程终端对本地监控端或PC机发出的更新命令做出了对应的应答,也即表示远程终端接收到了本地监控端或PC机发出的更新命令,这样在本地监控端或PC机接受到远程终端发送来的应答信号后,本地监控端或PC机对远程终端发送更新数据包的字节数量值信号,发送出更新数据包的字节数量值信号后等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的更新数据包的字节数量值信号,如果本地监控端或PC机发送所述的更新数据包的字节数量值信号的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号;
[0030]步骤3:如果远程终端接收到了本地监控端或PC机发出的更新数据包的字节数量值信号,远程终端的嵌入式处理器对远程终端的内存中存储更新数据包长度值的可变存储单元进行赋值,这样远程终端的嵌入式处理器结合更新数据包长度值的导出需要接收分段更新包的次数,并将该需要接收分段更新包的次数值发送到远程终端的内存里用来存储分段更新包的次数值的可变存储单元中,然后远程终端对本地监控端或PC机发出应答信号;
[0031]步骤4:本地监控端或PC机接收到远程终端发送来的应答信号后,就对远程终端发送第一个更新包,发送出第一个更新包后等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的第一个更新包,如果本地监控端或PC机发送所述的第一个更新包的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号;
[0032]步骤5:如果远程终端接收到了第一个更新包,然后远程终端的处理器把接受到的更新包的个数存储到内存里用于存储更新包个数的可变存储单元中;
[0033]步骤6:接着远程终端的处理器启动比较器来将存储更新包个数同所述的分段更新包的次数值进行比较,如果更新包个数等于分段更新包的次数值,远程终端就对本地监控端或PC机发送接收成功的信号并且远程终端的处理器将内存中的存储更新标志的可变存储单元的值设定为1,然后进入步骤8,如果更新包个数小于分段更新包的次数值,远程终端就对本地监控端或PC机发送请求下一个更新包的应答命令,如果本地监控端或PC机接收到了请求下一个更新包的应答命令,本地监控端或PC机就发送下一个更新包,如果本地监控端或PC机没有接收到请求下一个更新包的应答命令,本地监控端或PC机就进入等待请求下一个更新包的应答命令的状态;
[0034]步骤7:如果远程终端接收到了地监控端或PC机发来的下一个更新包,然后远程终端的处理器操纵加法器以加一的方式把内存里用于存储更新包个数的可变存储单元中的值加一,然后返回步骤6;
[0035]步骤8:上述的七个步骤就构成了基于片上Flash嵌入式系统的远程通信方法,然后在需要进行远程终端的远程更新时,远程终端执行远程更新操作。
[0036]本文对前期导入组件没做改动,而是从跳转到应用组件的开头着手进行设计,这样所述的步骤8中的远程终端执行远程更新操作的步骤如下:
[0037]步骤1:在步骤8中的远程终端执行远程更新操作前,对应的需要被远程更新的组件保留在远程终端的第一扇区区域内,并且在远程终端中的Flash芯片上预留可变存储单元区域来存储代码更新标志信号值和程序跳转标志信号值,在此条件下上电启动远程终端,首先初始化远程终端的所有硬件,确保远程终端的所有硬件正常运转,然后远程终端的处理器开启中断机构,该中断机构包括定时器中断机构、看门狗中断机构、网口中断机构以及远程终端上的其它的中断机构,这样远程终端的处理器就能够凭借中断机构的处理流程来处理对应的中断事务;
[0038]步骤2:远程终端的处理器对需要初始化的可变存储单元的值进行初始化,其中包括将存储程序跳转标志信号值的可变存储单元的值设定为不可用;
[0039]步骤3:远程终端的处理器检索存储代码更新标志信号值的可变存储单元的值是否为可用状态,如果存储代码更新标志信号值的可变存储单元的值为不可用状态,转入步骤5继续执行,如果存储代码更新标志信号值的可变存储单元的值为可用状态,就表示已经有新的更新数据包已经进入了远程终端的用于更新数据包存储的第三扇区,并且该新的更新数据包正等待拷贝到远程终端设定的第二扇区中,这样远程中断处理器将该新的更新数据包拷贝到远程中断设定的第二扇区中,远程终端的处理器把存储跳转第二扇区标志信号的可变存储单元的值擦写为可用状态并把存储代码更新标志信号值的可变存储单元的值设定为不可用状态,转入步骤4去执行;
[0040]步骤4:远程终端的处理器进入死循环模式,等待远程终端的看门狗复位,然后远程终端重启,返回步骤I执行,这里说明一点代码更新标志信号值和程序跳转标志信号值很重要,必须存储在远程终端的Flash芯片上,也就是之前所说预留的一段可变存储单元区域来存储代码更新标志信号值和程序跳转标志信号值,因此上述两个代码更新标志信号值和程序跳转标志信号值每次更新为可用状态后远程终端都会被重启,而储存在RAM上会掉电消失变为不可用;
[0041]步骤5:远程终端的处理器把存储定时器等待置跳转标志信号值的可变存储单元的值置为可用状态,此时定时器中断处理机构中的对应的等待置跳转标志信号值的组件开始启动,该等待置跳转标志信号值的组件会在等待的5?10秒的时间范围内向客户发送请求命令,请求等待置跳转标志信号值的组件是否返回第一扇区进行工作,这样做的目的是为了防止第二扇区的组件成功更新但可能不稳定,出各种缺陷,需要第一扇区的组件重新对更新后的组件进行维护更新,确保万无一失。如果等待5-10秒时间后客户发送返回第一扇区命令,这时远程终端的处理器把存储定时器等待置跳转标志信号值的可变存储单元的值置为不可用状态,并且存储定时器等待置跳转标志信号值的可变存储单元的值将在后续执行中不再改动,而第一扇区的组件继续在第一扇区上运行,如果等待5-10秒时间后客户没有反馈信号,则定时器中断处理机构执行步骤7 ;
[0042]步骤6:远程终端的处理器循环等待客户下发命令,当远程终端的处理器接收到组件更新命令时,就按照所述的基于片上Flash嵌入式系统的远程通信方法接收更新数据包,并存储在第三扇区区域中,远程终端的处理器还把存储代码更新标志信号值的可变存储单元的值擦写为可用状态,这样就重启远程终端,返回步骤I中执行,如果没有接收到组件更新命令,远程终端的处理器就循环执行其他组件;
[0043]步骤7:远程终端的处理器检测存储跳转第二扇区标志信号值的可变存储单元的值是否为可用状态,如果为不可用状态,则返回步骤6去执行,如果为可用状态,则远程终端的处理器进入第二扇区执行第二扇区的组件。第二扇区的组件为更新组件,一般产品以后都运行在此区域,因此更新组件中不需要包含检测存储代码更新标志信号值的可变存储单元的值和存储程序跳转标志信号值的可变存储单元的值是否为可用,但必须包含接收程序更新命令组件。并重启跳回第一扇区中执行步骤1,开始循环等待用户下发命令或其他功倉泛。
[0044]以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
【权利要求】
1.一种基于片上Flash嵌入式系统的远程更新方法,其特征在于,步骤如下: 步骤1:本地监控端或PC机发出更新命令,发出更新命令后本地监控端或PC机等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的更新命令,如果本地监控端或PC机发送所述的更新命令的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号; 步骤2:如果远程终端对本地监控端或PC机发出的更新命令做出了对应的应答,也即表示远程终端接收到了本地监控端或PC机发出的更新命令,这样在本地监控端或PC机接受到远程终端发送来的应答信号后,本地监控端或PC机对远程终端发送更新数据包的字节数量值信号,发送出更新数据包的字节数量值信号后等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的更新数据包的字节数量值信号,如果本地监控端或PC机发送所述的更新数据包的字节数量值信号的次数达到五次后远程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败信号; 步骤3:如果远程终端接收到了本地监控端或PC机发出的更新数据包的字节数量值信号,远程终端的嵌入式处理器对远程终端的内存中存储更新数据包长度值的可变存储单元进行赋值,这样远程终端的嵌入式处理器结合更新数据包长度值的导出需要接收分段更新包的次数,并将该需要接收分段更新包的次数值发送到远程终端的内存里用来存储分段更新包的次数值的可变存储单元中,然后远程终端对本地监控端或PC机发出应答信号; 步骤4:本地监控端或PC机接收到远程终端发送来的应答信号后,就对远程终端发送第一个更新包,发送出第一个更新包后等待远程终端的应答,如果远程终端没有应答就每间隔10秒重新发送所述的第一个更新包,如果本地监控端或PC机发送所述的第一个更新包的次数达到五次后远 程终端仍然没有应答,本地监控端或PC机向自身的处理器反馈回失败号; 步骤5:如果远程终端接收到了第一个更新包,然后远程终端的处理器把接受到的更新包的个数存储到内存里用于存储更新包个数的可变存储单元中; 步骤6:接着远程终端的处理器启动比较器来将存储更新包个数同所述的分段更新包的次数值进行比较,如果更新包个数等于分段更新包的次数值,远程终端就对本地监控端或PC机发送接收成功的信号并且远程终端的处理器将内存中的存储更新标志的可变存储单元的值设定为1,然后进入步骤8,如果更新包个数小于分段更新包的次数值,远程终端就对本地监控端或PC机发送请求下一个更新包的应答命令,如果本地监控端或PC机接收到了请求下一个更新包的应答命令,本地监控端或PC机就发送下一个更新包,如果本地监控端或PC机没有接收到请求下一个更新包的应答命令,本地监控端或PC机就进入等待请求下一个更新包的应答命令的状态; 步骤7:如果远程终端接收到了地监控端或PC机发来的下一个更新包,然后远程终端的处理器操纵加法器以加一的方式把内存里用于存储更新包个数的可变存储单元中的值加一,然后返回步骤6 ; 步骤8:上述的七个步骤就构成了基于片上Flash嵌入式系统的远程通信方法,然后在需要进行远程终端的远程更新时,远程终端执行远程更新操作。
2.根据权利要求1所述的基于片上Flash嵌入式系统的远程更新方法,其特征在于所述的步骤8中的远程终端执行远程更新操作的步骤如下:步骤1:在步骤8中的远程终端执行远程更新操作前,对应的需要被远程更新的组件保留在远程终端的第一扇区区域内,并且在远程终端中的Flash芯片上预留可变存储单元区域来存储代码更新标志信号值和程序跳转标志信号值,在此条件下上电启动远程终端,首先初始化远程终端的所有硬件,确保远程终端的所有硬件正常运转,然后远程终端的处理器开启中断机构,该中断机构包括定时器中断机构、看门狗中断机构、网口中断机构以及远程终端上的其它的中断机构,这样远程终端的处理器就能够凭借中断机构的处理流程来处理对应的中断事务;步骤2:远程终端的处理器对需要初始化的可变存储单元的值进行初始化,其中包括将存储程序跳转标志信号值的可变存储单元的值设定为不可用;步骤3:远程终端的处理器检索存储代码更新标志信号值的可变存储单元的值是否为可用状态,如果存储代码更新标志信号值得可变存储单元的值为不可用状态时,直接转入步骤5去执行,如果存储代码更新标志信号值的可变存储单元的值为可用状态,就表示已经有新的更新数据包已经进入了远程终端的用于更新数据包存储的第三扇区,并且该新的更新数据包正等待拷贝到远程终端设定的第二扇区中,这样远程中断处理器将该新更新数据包拷贝到远程终端设定的第二扇区中,远程终端的处理器把存储跳转第二扇区标志信号的可变存储单元的值擦写为可用状态并把存储代码更新标志信号值的可变存储单元的值设定为不可用状态,转入步骤4去执行;步骤4:远程终端的处理器进入死循环模式,等待远程终端的看门狗复位,然后远程终端重启,返回步骤1执行;步骤5:远程终端的处理器把存储定时器等待置跳转标志信号值的可变存储单元的值置为可用状态,此时定时器中断处理机构中的对应的等待置跳转标志信号值的组件开始启动,该等待置跳转标志信号值的组件会在等待的5~10秒的时间范围内向客户发送请求命令,请求等待置跳转标志信号值的组件是否返回第一扇区进行工作,如果等待5-10秒时间后客户发送返回第一扇区命令,这时远程终端的处理器把存储定时器等待置跳转标志信号值的可变存储单元的值置为不可用状态,并且存储定时器等待置跳转标志信号值的可变存储单元的值将在后续执行中不再改动,而第一扇区的组件继续在第一扇区上运行,如果等待5-10秒时间后客户没有反馈信号,则定时器中断处理机构执行步骤7 ;步骤6:远程终端的处理器循环等待客户下发命令,当远程终端的处理器接收到组件更新命令时,就按照所述的基于片上Flash嵌入式系统的远程通信方法接收更新数据包,并存储在第三扇区区域中,远程终端的处理器还把存储代码更新标志信号值的可变存储单元的值擦写为可用状态,这样就重启远程终端,返回步骤1中执行,如果远程终端处理器没接收到组件更新命令,远程终端的处理器就循环执行其他组件;步骤7:远程终端的处理器检测存储跳转第二扇区标志信号值的可变存储单元的值是否为可用状态,如果为不可用状态,则返回步骤6去执行,如果为可用状态,则远程终端的处理器进入第二扇区执行第二扇区的组件。
【文档编号】G06F9/445GK103713929SQ201310749627
【公开日】2014年4月9日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】冷先进, 甘智峰, 丁天, 邵文简, 赖页 申请人:南京新奕天科技有限公司