tag 标签: 远程固件更新

相关博文
  • 热度 15
    2013-2-21 10:06
    1085 次阅读|
    0 个评论
        前几章给大家讲解了有关W5200E01-M3远程固件更新的系统说明 ,boot.bin程序说明,zpp.bin程序说明以及上位机说明相关内容。对其远程更新的内容有所了解。     今天给大家介绍一下,如何通过我们的Nuri配置工具来进行远程固件更新。一下给出详细步骤,供您使用. 5.1  概述 WIZnet的W5200E01-M3模块是一款硬件TCP/IP嵌入式以太网控制器。由于该模块通常被固化在其他设备当中,因此WIZnet特别为该模块开发了一款应用程序——Nuri,来实现对该模块固件的远程更新,避免了繁琐复杂的手动连接。只要设备连接到网络,就能够对其进行设置或重置。同时,通过网络的广播和组播,还可实现对多个设备的同时更新,省时省力。 5.2  操作方法 现在W5200E01-M3中已装载有固件boot.bin,接下来介绍Nuri的基本操作和远程更新W5200E01-M3固件的方法。 首先,利用220V@AC~5V@DC电源适配器通过USB数据线为W5200E01-M3模块供电(或者直接通过USB数据线连接至电脑,为W5200E-M3模块提供稳定的5V电源)。同时,利用网线将该模块连接到以太网中。 然后,打开应用程序ConfigTool_Nuri.exe,出现如下界面: 截图 1  主程序界面 点击“Search”图标,进行设备搜索。找到设备,出现如下界面: 截图 2  查找设备 此时,设备信息即更新到“Device”,“Connection”和“Option”标签下。点开左侧串口转以太网下面的设备MAC地址前面的“加号”,可以查看该硬件设备的固件版本信息,如图所示,当前版本信息为0.1。 截图 3  查看固件版本 接下来进行基本操作:更改设备IP地址和恢复出厂设置。 更改设备IP地址: 修改Device IP address中的内容为192.168.11.101,然后点击“Setting”图标,即完成了硬件设备的IP地址更改操作。设备的IP地址被设置为192.168.11.101。如下图所示: 点开左侧串口转以太网下面的设备MAC地址前面的“加号”,可以查看该硬件设备的固件版本信息,如图所示,当前版本信息为0.1。 截图 4  设置IP地址 恢复出厂设置: 点击“Factory Reset”图标,实现恢复出厂设置的功能,再点击“Search”图标更新界面信息,发现Device IP address又恢复为192.168.11.100,即完成了恢复出厂设置的操作。 截图 5  恢复出厂设置 最后,介绍利用Nuri对W5200进行固件远程更新的方法。 点击“Firmware Upload”图标,弹出窗口,要求选择固件。 选定新版本的固件,单击“打开”,确认升级。 截图 6  查找可用固件 耐心等待固件升级完成。 截图 7  等待升级完成 固件升级完成后会出现提示: 截图 8  升级完成提示 升级完成后,点击“Search”图标,更新显示信息:可以看到固件版本从0.1升级为1.0。 截图 9  更新显示信息 需要注意的内容: 远程更新固件时,主机与设备必须处于同一网段内,否则更新将不被允许。 远程更新固件时,W5200硬件开关必须处于“RUN”运行模式下,而不是“PROM”编程模式,否则更新将不被允许。 以上是《W5200E01-M3远程固件更新教程》的全部内容,感谢您的关注!    更多相关内容: 第三章: 《W5200E01-M3远程固件更新教程》之app.bin程序说明上位机程序说明 (http://blog.iwiznet.cn/?p=4357) 第二章: 《W5200E01-M3远程固件更新教程》之boot.bin程序说明(http://blog.iwiznet.cn/?p=4328) 第一章:《W5200E01-M3远程固件更新教程》之系统说明 (http://blog.iwiznet.cn/?p=4322)      
  • 热度 12
    2013-2-21 10:05
    1211 次阅读|
    0 个评论
        前几章给大家讲解了有关W5200E01-M3远程固件更新的系统说明 ,boot.bin程序说明,zpp.bin程序说明以及上位机说明相关内容。对其远程更新的内容有所了解。     今天给大家介绍一下,如何通过我们的Nuri配置工具来进行远程固件更新。一下给出详细步骤,供您使用. 5.1  概述 WIZnet的W5200E01-M3模块是一款硬件TCP/IP嵌入式以太网控制器。由于该模块通常被固化在其他设备当中,因此WIZnet特别为该模块开发了一款应用程序——Nuri,来实现对该模块固件的远程更新,避免了繁琐复杂的手动连接。只要设备连接到网络,就能够对其进行设置或重置。同时,通过网络的广播和组播,还可实现对多个设备的同时更新,省时省力。 5.2  操作方法 现在W5200E01-M3中已装载有固件boot.bin,接下来介绍Nuri的基本操作和远程更新W5200E01-M3固件的方法。 首先,利用220V@AC~5V@DC电源适配器通过USB数据线为W5200E01-M3模块供电(或者直接通过USB数据线连接至电脑,为W5200E-M3模块提供稳定的5V电源)。同时,利用网线将该模块连接到以太网中。 然后,打开应用程序ConfigTool_Nuri.exe,出现如下界面: 截图 1  主程序界面 点击“Search”图标,进行设备搜索。找到设备,出现如下界面: 截图 2  查找设备 此时,设备信息即更新到“Device”,“Connection”和“Option”标签下。点开左侧串口转以太网下面的设备MAC地址前面的“加号”,可以查看该硬件设备的固件版本信息,如图所示,当前版本信息为0.1。 截图 3  查看固件版本 接下来进行基本操作:更改设备IP地址和恢复出厂设置。 更改设备IP地址: 修改Device IP address中的内容为192.168.11.101,然后点击“Setting”图标,即完成了硬件设备的IP地址更改操作。设备的IP地址被设置为192.168.11.101。如下图所示: 点开左侧串口转以太网下面的设备MAC地址前面的“加号”,可以查看该硬件设备的固件版本信息,如图所示,当前版本信息为0.1。 截图 4  设置IP地址 恢复出厂设置: 点击“Factory Reset”图标,实现恢复出厂设置的功能,再点击“Search”图标更新界面信息,发现Device IP address又恢复为192.168.11.100,即完成了恢复出厂设置的操作。 截图 5  恢复出厂设置 最后,介绍利用Nuri对W5200进行固件远程更新的方法。 点击“Firmware Upload”图标,弹出窗口,要求选择固件。 选定新版本的固件,单击“打开”,确认升级。 截图 6  查找可用固件 耐心等待固件升级完成。 截图 7  等待升级完成 固件升级完成后会出现提示: 截图 8  升级完成提示 升级完成后,点击“Search”图标,更新显示信息:可以看到固件版本从0.1升级为1.0。 截图 9  更新显示信息 需要注意的内容: 远程更新固件时,主机与设备必须处于同一网段内,否则更新将不被允许。 远程更新固件时,W5200硬件开关必须处于“RUN”运行模式下,而不是“PROM”编程模式,否则更新将不被允许。 以上是《W5200E01-M3远程固件更新教程》的全部内容,感谢您的关注!    更多相关内容:   第三章: 《W5200E01-M3远程固件更新教程》之app.bin程序说明上位机程序说明 (http://blog.iwiznet.cn/?p=4357) 第二章: 《W5200E01-M3远程固件更新教程》之boot.bin程序说明(http://blog.iwiznet.cn/?p=4328) 第一章:《W5200E01-M3远程固件更新教程》之系统说明 (http://blog.iwiznet.cn/?p=4322)    
  • 热度 12
    2013-2-20 15:59
    1201 次阅读|
    0 个评论
    今天给大家继续介绍《W5200E01-M3远程固件更新教程》中,app.bin及上位机程序的说明。 3.1   main 函数 首先,对系统各个组件进行初始化,该过程包括系统时钟初始化、输入输出引脚初始化、嵌套中断向量初始化、计时器初始化、串行通信端口初始化、WIZnet W5200的SPI通信端口初始化,再对W5200进行复位操作。同时,打印输出“W5200 init over”。 然后,获取当前配置信息,并打印固件版本号,检查配置信息中的调试标志ConfigMsg.debug。如果调试标志位为0,则调试标志置1,并进行网络设置。 最后,循环执行do_dhcp(),do_dns(),do_udp_config()函数,以实现动态主机配合功能和域名系统功能。   图10  主函数流程图 3.2   app.bin main() function source code 4.上位机程序说明 上位机通过电缆与下位机相连。下位机进行数据预处理,组成一定的数据格式,通过RS-232串行口,将数据送到上位机,上位机采用串口终端方式接收数据,保证采集数据的实时处理。  那么在远程固件更新的过程中。PC机作为上位机,接收数据,进行固件程序的更新。 我们在更新过程中,使用Nuri配置工具。 配置工具软件NURI通过PC的RS232与设置相连接,作用有两个: 1.设备对数据进行预处理,并组帧上传给PC。 2.PC可以通过软件对设备固件进行升级。 点击此按钮,即可上传更新程序到上位机。实现快速更新。 感谢关注! 明天继续介绍 更新过程的操作方法 相关内容: 《W5200E01-M3远程固件更新教程》之boot.bin程序说明( http://blog.iwiznet.cn/?p=4328 ) 《W5200E01-M3远程固件更新教程》之系统说明( http://blog.iwiznet.cn/?p=4322 )  
  • 热度 16
    2013-2-19 15:26
    1251 次阅读|
    0 个评论
          上一次给大家介绍了《W5200E01-M3远程固件更新教程》中系统说明的部分,对此更新方式有了大概的了解。在ISP更新过程中,首先我们先来看一下关于boot.bin程序的说明。 2.1  main 函数        首先,对系统各个组件进行初始化,该过程包括系统时钟初始化、输入输出引脚初始化、嵌套中断向量初始化、串行通信端口初始化、WIZnet W5200的SPI通信端口初始化,再对W5200进行复位操作。同时,打印输出“W5200 Demo Code for Remote IAP.”         然后,从闪存中读取配置信息,从应用程序的开始地址处读取4字节信息,该信息指明了在闪存中是否存在应用程序。值得注意的是,引导程序(boot)的存储地址范围是0x08000000到0x08004fff,而应用程序(app)的存储地址范围从0x08005000开始。 若应用程序没有存在于闪存中,那么再通过已经读取的配置信息检查固件版本号,如果固件版本号是0xffff,则恢复默认配置 。如果固件版本号是0x00,同样恢复默认配置;否则通过已读取的配置信息检查硬件地址,如果mac地址是0xffffffffff,则恢复默认配置。最后,配置网络信息 。 若应用程序存在于闪存中,那么再通过已读取的配置信息检查固件版本号,如果固件版本号为0x00,则进行网络配置;否则,查找到应用程序地址,并跳转至应用程序。 恢复默认配置的函数set_default(),该函数执行的操作包括:设置DHCP为静态模式,设置固件版本号,设置当前模式为TCP混合模式,设置默认端口,设置波特率为115200,设置数据位为8位,设置无校验,设置停止位为1位,设置停止流控制,DNS标志复位,设置设备默认名称和设备默认序列号。 配置网络信息的函数set_network(),该函数执行的操作包括:配置mac地址,配置子网掩码,配置网关地址,配置源IP地址,发送接收缓存初始化,设置重传时间,设置重传次数。 图1  主函数流程图 2.2  boot.bin main() function source code 上述内容均是和主机应用程序通信之前的准备工作,通过主机应用程序对设备进行设置和固件更新的具体操作如下: 2.3  do_udp_config函数 UDP配置函数do_udp_config()执行的主要功能是:建立UDP通信端口,实现主机PC端软件与W5200E01-M3模块之间的通信。用户使用主机PC端软件与模块进行交互,PC端以UDP广播的形式向模块发送指令,指令包含“FIND(查找设备)”、“SETT(设置)”、“FIRM(固件更新)”、“FACT(复位)”等操作。而W5200E01-M3同样以UDP广播的形式对接收到的命令进行回复。该函数执行过程如下: 图2  Do_udp_config() 函数流程图    UDP配置过程使用的端口为SOCK_CONFIG. SOCK_CONFIG 可能出现的状态如下: SOCK_UDP                 UDP端口打开 SOCK_CLOSED          UDP端口关闭 根据SOCK_CONFIG 的状态,执行如下操作: 如果当前状态是SOCK_CLOSED,则建立UDP端口。 如果当前状态是SOCK_UDP,则与主机程序进行通信。     图3  do_udp_config() 函数状态图   在UDP 模式下,主机程序与W5200E01-M3 的通信过程如下: 若接收到“FIND”字符,即操作人员点击主机应用程序界面的“Search”按钮时,则利用配置信息ConfigMsg来更新接收信息RecvMsg,并将RecvMsg的op字段改写为“FIND”重新发回主机程序,告知主机设备已找到,配置信息已发送,发送模式为UDP广播数据包。     图4  “FIND”指令下的通信时序图 若接收到“SETT”字符,即操作人员点击主机应用程序界面的“Setting”按钮时,首先检查配置信息与接收信息中的mac地址是否一致,若一致,则利用接受信息RecvMsg来更新配置信息,同时修改配置信息中的软件版本号ConfigMsg.sw_ver并写入闪存,再将配置信息发回主机程序,告知主机当前配置信息,发送模式为UDP广播数据包,最后重新启动程序。若mac地址不一致,则不会执行上述操作。     图5  “SETT”指令下的时序图 若接收到“FIRM”字符,即操作人员点击主机应用程序界面的“Firmware Upload”按钮时,首先检查配置信息与接收信息中的mac地址是否一致,若一致,则修改配置信息中的软件版本号ConfigMsg为0x00写入闪存,再将接收信息发回主机程序,告知主机固件升级已准备好,发送模式为UDP广播数据包,最后重新启动程序。若mac地址不一致,则不执行上述操作。     图7  “FACT”指令下的时序图   2.4  boot.bin do_udp_config() function source code 2.5  do_fw_update函数 在上述过程中,若接收到“FIRM”信息,则固件更新过程开始,根据固件更新端口SOCK_FW状态的不同,执行不同的操作。 SOCK_FW可能的状态如下: SOCK_INIT                          TCP连接正在建立 SOCK_ESTABLISHED                  TCP连接已经建立 SOCK_CLOSE_WAIT          TCP连接正在关闭 SOCK_CLOSED                   TCP连接已经关闭 根据SOCK_FW的状态,执行如下操作: 如果当前状态是连接正在关闭,则等待连接关闭; 如果当前状态是连接已经关闭,则重新建立连接; 如果当前状态是建立正在连接,则等待连接建立完成; 如果当前状态是连接已经建立,则开始进行固件更新 。 固件更新正式开始之前还要进行解锁闪存FLASH_Unlock(),清除闪存标志位FLASH_ClearFlag()和寄存器设置setSn_IR()等操作。 图8  do_fw_update() 函数状态图 为保证固件文件的可靠传输,用于固件更新的端口SOCK_FW采用的是TCP连接模式。最先收到的TCP数据包包含有固件长度信息,为4个字节,接收到该数据包后,将其存储于变量fLen中,并根据固件文件的大小计算出更新固件需要擦除闪存页数,完成擦除后将擦除标志isErased置位。 此后接收到的若干TCP数据包即为固件文件,逐次写入闪存并记录已经写入数据的长度,直到该长度与fLen一致时,即完成了固件文件的接收。接下来,发送断开连接请求disconnect(),同时更新配置信息ConfigMsg中的软件版本信息sw_ver为0xffff,并将该信息写入EEPROM,打印输出“OK”。最后,重新启动并执行新版固件的应用程序。 下面根据该过程的时序图对固件更新过程进行说明。W5200E01-M3始终监听TCP连接状态,检测到连接建立后,其与主机之间的通信如下: (1)     主机发送包含固件长度信息的TCP数据包。W5200E01-M3将固件长度保存在fLen变量中。同时根据固件长度擦除闪存。 (2)     W5200E01-M3将fLen发回主机,告知其已准备好接收固件。 (3)     主机发送固件文件。W5200E01-M3接收固件文件,并写入闪存。同时将已接收的固件长度保存在rxLen变量中。 (4)     W5200E01-M3将len发回主机,告知其已接收到此次发送的数据。 (5)     反复执行步骤(3)(4),直到rxLen==fLen时,表明全部固件文件都已经接收完毕,此时,W5200E01-M3发送断开连接的请求disconnect()。 需要着重说明的是,在每一次的连接关闭之后,即端口状态变成SOCK_CLOSED之后,要重新初始化rxLen, nPage, nErasedPage, fLen, isErased, flashdest等变量,以便为下一次的固件更新做好准备。 远程固件更新时序图如下: 图9  do_fw_update() 序列图   2.6  boot.bin do_fw_update() function source code 1 恢复默认配置的函数set_default(),该函数执行的操作包括:设置DHCP为静态模式,设置固件版本号,设置当前模式为TCP混合模式,设置默认端口,设置波特率为115200,设置数据位为8位,设置无校验,设置停止位为1位,设置停止流控制,DNS标志复位,设置设备默认名称和设备默认序列号。 2 配置网络信息的函数set_network(),该函数执行的操作包括:配置mac地址,配置子网掩码,配置网关地址,配置源IP地址,发送接收缓存初始化,设置重传时间,设置重传次数。 3 固件更新正式开始之前还要进行解锁闪存FLASH_Unlock(),清除闪存标志位FLASH_ClearFlag()和寄存器设置setSn_IR()等操作。   明天讲解的是第三部分:app.bin程序说明   相关内容: 《W5200E01-M3远程固件更新教程》之系统说明 (  comco http://blog.iwiznet.cn/?p=4322)    
  • 热度 17
    2013-2-19 09:31
    906 次阅读|
    1 个评论
           今天给开始大家介绍《W5200E01-M3 远程固件更新教程》的相关内容,教您一步一步实现便捷更新。         首先,先让大家了解一下W5200E01-M3. W5200E01-M3 是WIZnet公司出产的一款开发板, 用于W5200芯片的测试和原型开发,可实现各种以太网应用程序。W5200E01-M3内嵌W5200芯片--高速SPI以太网控制芯片,具有全硬件TCP/IP协议栈。并采用STM32 MCU。操作便捷。功耗低。应用广泛。        对于拥有全硬件TCP/IP协议栈的WIZnet芯片。远程的固件更新 更带来了便捷。 1.1  在线编程技术简介         那么以往在烧写芯片时,往往需要将芯片从系统中取出,离开电路后,才能用编程器烧写程序。也就是说芯片不能脱离系统而进行写入。         现在介绍两种在线编程技术——ISP和IAP,支持在线烧写。芯片不需要从电路板上取下,不离开系统,甚至不离开应用,就可以完成固件程序的写入。这两种技术有效避免了调试时由于频繁的插入取出芯片对芯片和电路板带来的不便和损伤,同时也节省了大量时间和金钱上的开销。因此,ISP和IAP技术将是未来嵌入式编程的主要发展方向。 ISP(In-System Programming) “在系统可编程”,即逻辑器件不用脱离系统,就可以进行程序写入。 ISP实现起来相对容易,通常的做法是利用上位机软件通过串口来改写单片机的内部存储器。条件是单片机需要具备非易失性存储器,用来存储由上位机传来的程序和数据。实现ISP的硬件接口支持JTAG、串口、无线等等。该接口通常固化在单片机所在的电路板上,芯片烧写时无需返厂或技术人员亲临现场,用户只需要通过计算机上的RS232接口或者USB接口就可以自行改写程序。 IAP(In-Application Programming) “在应用可编程”,即逻辑器件不用脱离应用,就可以进行程序写入。 IAP实现起来相对要复杂一些,单片机内部需要有两个存储区,一块被称为BOOT区,一块被称为APP区。单片机上电后,首先运行在BOOT区,如果满足改写程序的条件时,则对APP区的程序进行改写操作,程序改写完成后,单片机重新启动;如果不满足改写程序的条件时,程序指针直接跳转到APP区,开始执行存放在APP区的程序。实现IAP的硬件接口支持串口、无线、网口等等。由于网口的原因,一方面工作人员可以不用亲临现场即可实现固件的远程更新,另一方面,可以通过以太网的广播、组播数据包实现多个用户的同时全部更新,节省人力物力资源。 1.2 系统说明        在W5200E01-M3中,通过ISP的方式来烧写BOOT程序。之后由BOOT程序远程更新APP程序时,采用的是IAP方式。        在W5300E01-M3中,单片机使用的是STM32F103CB。该单片机有128KB的FLASH存储空间,可以将固件程序存储在该存储器中。在我们的程序中,实际上是将FLASH存储器映射为两个存储区,其中BOOT区映射地址是从0x0800 0000到0x0800 4FFF,合计20KB;APP区映射地址是从0x0800 5000到0x0801 FFFF,合计108KB。详细内容请参考第二章boot.bin程序说明和第三章app.bin程序说明中的具体介绍。        上位机程序Nuri.exe的主要作用是为用户提供图形界面,使得用户可以通过远程的方式利用以太网UDP广播更新固件程序。上位机程序的工作原理请参考第四章上位机程序说明。上位机程序的具体使用方法请参考第五章操作方法。        下次给大家讲解 boot.bin程序说明 的内容。期待您继续关注!   更多信息请关注: WIZnet中文官方网站:http://www.iwiznet.cn/ WIZnet企业官方微博:http://e.weibo.com/wiznet2012/
相关资源
  • 所需E币: 4
    时间: 2019-12-24 15:03
    大小: 6.68MB
    上传者: 二不过三
    本文详细说明了如何使STM32官方提供的代码使HTTP协议完成IAP(远程固件更新),除官方内容的译文外,还根据自已使用过程中遇到的问题,添加了Keil配置的方法,及更多的注意点,新手也可以轻松搞定远程固件更新………………