热度 21
2013-12-3 09:12
1348 次阅读|
0 个评论
(已在《无线电》杂志第10期刊登) 对于HTTP的思考 你也许会问,既然通过一个上位机程序可以完成这个任务,为什么还要通过浏览器实现呢?其实这两个方法各有优缺点,用上位机程序,用户可以自己定制协议,但是用户不仅需要安装该上位机程序,而且还要考虑面对不同的操作系统下的兼容情况。然而通过网页更新的话,只需要设备内嵌一个HTTP服务器,便省去了编写上位机程序的负担,并无须考虑去兼容不同的操作系统。当然,上位机程序可以实现UDP广播寻址终端,无需知道终端IP地址即可找到同一网段下的多个终端。而使用网页的话就只能是预先知道终端IP地址并逐一配置。 其实,对于通过网页配置相信大家并不陌生,家里有无线路由器的朋友估计都有实践经验。通过浏览器键入路由器的默认IP,然后根据网页提示就可以一步步地实现设备信息配置,诸如WiFi密码、SSID等。今天,我们就是来探究一下这个应用的原理,在单片机里实现一个HTTP服务器,通过这个HTTP服务器来配置设备信息,并实现了设备固件更新。 当然,我这里的这个HTTP服务器没有家里的路由器那样的功能强大,在这里也只是抛砖引玉,希望大家能够从中获取启发,设计出更出色的产品。方便起见,我们仍旧延续上一篇文章的平台——基于Cortex-M3的W5200评估板(STM32F108C8 + W5200)。 图1 W5200评估板 该评估板单片机的系统资源:64KB的闪存和20KB的SRAM。 (W5200可以和任何单片机配合使用,如果用户想使用其他单片机+W5200来实现的话,需要您自行修改代码,这里暂不提供其他库。) 功能演示 在我们展开谈论基于HTTP的远程配置和固件更新的原理之前,先给大家看一下我们这个程序小样的功能演示。感兴趣的朋友可以在接下来的文章中,了解到具体该功能是如何实现的。 步骤 1 : 用ISP工具烧录Boot(评估板SW2 调至PROP),不了解的话,可以参考我们上一个主题内容。 图2用FlashLoader烧录boot.bin 步骤 2 : 将评估板上SW2 调到RUN模式,打开ConfigTool。点击按钮 ,可查找到当前设备,并可通过按钮 ,将app.bin程序上传至评估板中,右侧可看到当前设备的IP地址及版本号等信息,此时版本号为1.0,如图: 图3配置工具烧录app.bin成功 ConfigTool这里的工作也很简单,就是在第一次Boot启动时,把App传给单片机。当App运行时,ConfigTool就无用武之地了,因为用浏览器就可以完成ConfigTool的工作了。 (注:以上途径并不是必须的,仅为了方便演示,保证boot和app程序已经烧录好即可。) 步骤 3 : 在浏览器中输入W5200评估板的IP地址,回车后出现Web界面。 如图可看到,界面分为Device Settings和Firmware Updating两部分,其中Device Settings中依次列出W5200评估板的硬件版本号、MAC地址、IP地址、子网掩码以及默认网关基本配置。 用户可以配置其他IP地址,子网掩码及网关,并点击’Save settings and Reboot’,设置并重启生效; 图4 Web配置界面 如:在WEB界面上,将IP地址192.168.1.2改为192.168.1.20。更改后保存,等待后更改成功: 图5更改IP成功 步骤 4 : 下面针对固件更新,点击“浏览”按钮,选择好要更新文件。 ;选好后开始上传,出现以下界面,更新过程需要6s. 图6等待升级完成 更新完成,可以看到新成功,版本号更改为5.0,IP地址以及界面颜色都进行了更新,如下图: 图7升级成功 是不是很简单?马上动手,也给你的设备加入一个HTTP服务器,实现远程配置升级功能吧。当然,配置和升级只是应用的一小部分,你也完全可以通过模拟/数字输入接入几个传感器,比如温度、湿度和PM2.5,这样打开浏览器就可以监视这些传感器数据了。 这个小样只是一个简单的功能及原理演示,下面就让我们来看一下这个基于 HTTP的远程配置和固件更新实现的思路及原理。 应用原理 1. 方框图 图8 HTTP远程更新固件框图 每次重启,均从首地址开始执行程序: 1启动进入BOOT区,若BOOT检测APP区的不为空,则跳转到APP区的首地址执行主程序; 2浏览器访问APP区的网页服务器 l 配置网络参数:即将浏览器中键入的参数通过APP更新到Configure Information区 l 远程更新固件:即进入到以下步骤3 3浏览器访问APP主程序的网页服务器,并通过浏览器将即将更新的APP写入到Backup区; 4当APP检测到Backup区域已经有新的APP程序后,跳转到BOOT区,执行更新操作; 5BOOT将APP区擦除,并将新APP从Backup区写入到APP区; 重启,重新执行程序。 继续阅读: http://blog.iwiznet.cn/?p=5861 作者:Katrina,Jerry,Cillian 感谢阅读! 更多信息请关注WIZnet官方微博: http://weibo.com/wiznet2012