原创 基于 HTTP的远程配置和固件更新

2013-11-28 14:35 839 18 18 分类: 消费电子

(已在《无线电》杂志第10期刊登)

对于HTTP的思考

你也许会问,既然通过一个上位机程序可以完成这个任务,为什么还要通过浏览器实现呢?其实这两个方法各有优缺点,用上位机程序,用户可以自己定制协议,但是用户不仅需要安装该上位机程序,而且还要考虑面对不同的操作系统下的兼容情况。然而通过网页更新的话,只需要设备内嵌一个HTTP服务器,便省去了编写上位机程序的负担,并无须考虑去兼容不同的操作系统。当然,上位机程序可以实现UDP广播寻址终端,无需知道终端IP地址即可找到同一网段下的多个终端。而使用网页的话就只能是预先知道终端IP地址并逐一配置。

其实,对于通过网页配置相信大家并不陌生,家里有无线路由器的朋友估计都有实践经验。通过浏览器键入路由器的默认IP,然后根据网页提示就可以一步步地实现设备信息配置,诸如WiFi密码、SSID等。今天,我们就是来探究一下这个应用的原理,在单片机里实现一个HTTP服务器,通过这个HTTP服务器来配置设备信息,并实现了设备固件更新。

当然,我这里的这个HTTP服务器没有家里的路由器那样的功能强大,在这里也只是抛砖引玉,希望大家能够从中获取启发,设计出更出色的产品。方便起见,我们仍旧延续上一篇文章的平台——基于Cortex-M3的W5200评估板(STM32F108C8 + W5200)。

 http1

图1 W5200评估板

该评估板单片机的系统资源:64KB的闪存和20KB的SRAM。

(W5200可以和任何单片机配合使用,如果用户想使用其他单片机+W5200来实现的话,需要您自行修改代码,这里暂不提供其他库。)

功能演示

在我们展开谈论基于HTTP的远程配置和固件更新的原理之前,先给大家看一下我们这个程序小样的功能演示。感兴趣的朋友可以在接下来的文章中,了解到具体该功能是如何实现的。

步骤1

用ISP工具烧录Boot(评估板SW2 调至PROP),不了解的话,可以参考我们上一个主题内容。

 http2

图2用FlashLoader烧录boot.bin

步骤2

将评估板上SW2 调到RUN模式,打开ConfigTool。点击按钮http3,可查找到当前设备,并可通过按钮http4,将app.bin程序上传至评估板中,右侧可看到当前设备的IP地址及版本号等信息,此时版本号为1.0,如图:

http5

图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’,设置并重启生效;

http6

图4 Web配置界面

如:

在WEB界面上,将IP地址192.168.1.2改为192.168.1.20。更改后保存,等待后更改成功:

http7

图5更改IP成功

步骤4

下面针对固件更新,点击“浏览”按钮,选择好要更新文件。

继续阅读:http://blog.iwiznet.cn/?p=5861

作者:Katrina,Jerry,Cillian 

感谢阅读!

更多信息请关注WIZnet官方微博:

http://weibo.com/wiznet2012

 

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /2 下一条