一种基于BootLoader的UVLED固化系统远程升级方法

文档序号:9396719阅读:560来源:国知局
一种基于BootLoader的UV LED固化系统远程升级方法
【技术领域】
[0001]本发明涉及UV LED固化设备和工业控制等技术领域,尤其涉及一种基于BootLoader的UV LED固化系统远程升级方法。
【背景技术】
[0002]随着科学技术的发展,各类印刷行业中的固化工艺正发生颠覆性的变化。传统的长时间、大风速、高热量的热风固化工艺由于其效率低、高耗能、不环保等致命性弱点已渐渐被行业所淘汰,紫外光固化技术一经研制成功就得到了迅速普及与发展。在倡导节能环保的当今,业界一直致力于改进,而紫外线二极管(Ultrav1let Light Emitting D1de,UVLED)技术的出现随即引起一场轰动,UV LED固化技术开始广泛的应用到各个行业中,例如印刷、PCB曝光等。
[0003]目前UVLED固化系统大都处在研发阶段,现有的技术仅能制造出单一功能的设备。而市场对固化设备的功能、控制要求是多样的,如点胶行业要求UV LED固化控制方式为脚踏控制,时间可由人工控制;大型写真喷绘UV LED固化控制方式为喷绘机内部PLC编程控制;医疗行业的UV LED杀菌控制由光源控制器直接控制等等。面对这些不同的要求,大部分厂商依靠设计各种不同的机型和建立庞大的售后服务网络来满足各个行业对UVLED的控制需求。这样不但大大增加了产品的设计周期,同时使产品的附加成本大幅提高。针对这样的现状,提出了一种基于BootLoader的UV LED固化系统远程升级方法。
[0004]在嵌入式操作系统中,BootLoader是运行在操作系统内核之前的程序。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在通常的嵌入式系统中,整个系统的加载启动任务就完全由BootLoader来完成。一般的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
[0005]远程升级技术是建立在嵌入式系统的IAP技术上的。IAP,全称是“In-Applicat1n Programming”,中文解释为“在程序中编程”。IAP是一种通过微处理器的通信接口(如USART,IIC, CAN,USB,以太网接口甚至是无线射频通道)对正在运行程序的微处理器进行内部程序更新的技术(完全有别于ICP或者ISP技术)。
[0006]目前,基于BootLoader的系统远程升级的应用研究在固化系统领域里并不多,而厂商大多采用传统的技术人员现场调试、下载程序,有着效率和经济上的严重缺点。

【发明内容】

[0007]为了克服现有技术存在的缺陷,本发明提出了一种基于BootLoader的UV LED固化系统远程升级方法。本发明将Bootloader与IAP结合,通过上位机通讯或配置GPRS、WiF1、以太网卡等通信模块完成的远程升级系统,集成在一个UV LED控制设备上,可完成设备的远程调试、程序更新,大大减少了维护成本和维护周期。
[0008]本发明的技术方案为:一种基于BootLoader的UV LED固化系统远程升级方法,包括步骤:
[0009]步骤1,根据处理器模块、光源驱动模块中的STM32F103R8T6的内存架构完成对内存页的分配,将FLASH分为四个区,即BootLoader、用户程序区、升级存储区、参数保存区,并初始化BootLoader ;
[0010]步骤2,BootLoader初始化结束后,判断参数保存区中的升级标志Updata_Flag,若升级标志为OxFA,说明接收到远程升级指令,接着判断是处理器模块的程序升级还是光源驱动模块的程序升级;确定后相应的模块则由BootLoader引导程序跳转进入升级程序,程序跳转指令符合STM32F10X系列的指令协议,升级确认指令反馈给上位机;
[0011]步骤3,STM32F103R8T6 微处理器调用 FLASH 擦除函数 Flash_SectorErase O 按页擦除FLASH中升级储存区的相应数据,并注意将程序存储的地址与FLASH进行页对齐,每页占用 2048bit ;
[0012]步骤4,为了保证程序的安全,本发明引入抗误码环节,上位机在对新程序BIN文件分包的环节会按照一定格式打包成每一个数据包;
[0013]步骤5,数据引导包接收完毕后,BootLoader中的升级程序会根据引导包的信息进行数据包的接收,每包数据接收完毕后会在控制器端再次计算CRC,并校验是否与数据包中的CRC校验码相同,若不相同则会重新申请本序号的数据包,并以5次申请为限,若5次都错误则退出升级;若相同则申请下一包的发送,直到所有的数据包发送完毕;
[0014]步骤6,为了加强系统的抗误码能力,除了对每个数据包的校验,还会在最后对总数据包进行校验;
[0015]步骤7,确认升级成功后,客户端的BootLoader程序会将当前的版本号保存进FLASH的参数区中,并上传给上位机存储,至此升级过程确认成功。
[0016]进一步,所述UV LED固化系统主要包含通信模块、处理器模块、光源驱动模块以及交互模块,所述通信模块通过RS485分别连接处理器模块、光源驱动模块,所述处理器模块用于控制整个系统的运行,所述光源驱动模块用于控制电流的分配,所述交互模块和处理器模块相连,用于UV LED固化系统的显示和手动输入。
[0017]进一步,所述步骤I中,BootLoader是嵌入式系统在上电后执行的第一段代码,在完成初始化硬件设备、建立内存空间映射后,再跳转到操作系统映像或固化的嵌入式应用程序的内存空间,启动运行系统;用户程序区是储存需要运行的用户程序;升级存储区是用来暂时存储新的程序的二进制文件,待校验完成后再写入用户程序区;参数保存区内定义一个升级状态的结构体,成员包括升级标志,最近一次的升级信息,CRC校验码。
[0018]进一步,所述BootLoader以及用户程序区的首地址,需要在KEIL中的Opt1nsfor target 中手动设置为 0x8000000 和 0x8010000。
[0019]进一步,所述步骤3在擦除的过程中,Flash_SectorErase()会返回每页的擦除结果,将擦除的结果返回给上位机;若擦除成功则开始请求数据引导包,若不成功则由上位机询问是否结束升级;数据引导包是上位机对新程序BIN文件解析并分包后生成的,引导包中包含程序包的总包数、总字节数、版本号及总CRC(16Bit M0DELBUS模式)校验码。
[0020]进一步,所述步骤4中具体过程为:每个数据包分别含有帧头(lBit)、序号(IBit)、文件长度(2Bit)、文件数据(1024BU以内)、校验码(2Bit)、帧尾(IBit);帧头和帧尾是根据通信协议固定的0x5A和0xA5 ;校验环节采用的是CRC (16Bit M0DELBUS模式),上位机在传输数据包前对每一数据包计算一次CRC并生成校验码;STM32F103R8T6微处理器在每一包数据的接收后都会校验CRC,如果校验不成功则发出错误指令,要求重新发送一遍当前数据包。
[0021]进一步,所述步骤6还包括:全部数据包传输完成后,上位机和STM32F103R8T6微处理器都会对这些储存的CRC校验码做一个总的CRC,判断上位机与微处理器计算得到的总CRC校验码是否一致,若不一致也会判断为升级失败。
[0022]本发明的有益效果为:
[0023]I)本发明将Bootloader与IAP结合,通过上位机通讯或配置GPRS、WiF1、以太网卡等通信模块完成的远程升级系统,集成在一个UV LED控制设备上,可完成设备的远程调试、程序更新。由于固化行业的特殊性,技术人员需要经常根据不同的流水线调试固化设备的程序。本发明提出的性能可靠的远程升级方案,不再需要技术人员奔赴各个工业现场进行程序的调试和升级,极大程度上减少了维护成本和调试周期,带来经济和时间的利益。
[0024]2)步骤I中创新地将STM32F103R8T6的FLASH分为四个区,较传统IAP升级多出了升级存储区和参数保存区。升
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1