tag 标签: 远程配置

相关博文
  • 热度 14
    2014-6-3 14:57
    2957 次阅读|
    0 个评论
            最近的一个项目里有一项功能是,用ARM来配置FPGA,配置模式是FPP模式。这么做的目的是,ARM可以实现通过网络来实现FPGA配置文件的远程升级,从而实现FPGA的远程配置。          参考FPGA的芯片手册中关于其FPP配置的描述,FPGA要想实现FPP配置,需要完成三步:         第一步:硬件连接。硬件连接只要按照FPGA芯片手册中提供的参考电路连接即可,要注意手册中关于FPGA的模式选择的配置电路。         第二步:配置文件的生成。测试的时候我们使用的配置文件时.rbf格式的,由Quartus II软件直接生成,也可由.sof转换得来。         第三步:按照FPP配置时序来写入配置文件。FPGA芯片手册中给出了FPP配置的时序图,按照这个时序图来编写实现FPGA配置的程序(这里是ARM程序)。         在完成第三步以后,FPGA并不能初始化成功,测量FPGA引出来的CONF_DONE引脚,也是一直为低(CONF_DONE为低,说明FPGA在配置阶段就没有成功)。起初怀疑是FPP配置的连接电路有问题,检查排除了这个可能。后猜测可能是发送的数据不对的原因,可能是ARM这边发送一个数据,但FPGA这边接收的确实错误的数据,因为这块电路板上,ARM部分的最高电压是1.8V,而FPGA这边的最高电压是3.3V。打算编写程序测试一下是否是由于传输过程中数据不能正常接收的,但是由于一些原因,最终没有测试。而是一直在测是不是ARM的配置程序有问题,问题没有找到原因。偶然一个测试发现,在ARM发送.rbf文件的数据给FPGA时,nSTATUS信号会被拉低,而不是正常写入数据是的拉高。猜测nSTATUS被拉低的原因是由于nCONFIG信号被置低了,用示波器测量在写入配置数据期间nCONFIG的变化情况,果然nCONFIG被置低,导致FPGA重新开始配置过程。为什么写入.rbf的配置数据时,nCONFIG会被置低呢?测试发现,当不写入任何数据时,只用ARM拉高nCONFIG信号,nCONFIG不会变低。我们把写入的数据换成足够多数量的0x55数据组成的数组,重新写入到FPGA中,nCONFIG信号不会被置低。由此推断nCONFIG被置低应该是写入.rbf配置文件导致的。写入.rbf文件的过程是这样的,在ARM中读取.rbf文件,把读出的数据放到一个buffer里,然后发送给FPGA。因此我们就直接把.rbf文件中的数据读出并打印出来,然后做成一个数组,重新写入FPGA,nCONFIG依然会被置低。由于之前测试过把这个数组里的数据换成0x55,nCONFIG不会被置低,因此应该不是.rbf文件的读取并写入到FPGA的过程引发的问题,而是.rbf文件本身的问题导致nCONFIG被置低的。重新在Quartus II里 设置配置模式(Configure Scheme) , 把AS模式更改为FPP模式 ,并且设置成配置文件不压缩的方式,重新编译生成.rbf文件。把更改后的.rbf文件写入到FPGA中,问题就解决了,FPGA也可以正常配置并正常进入到用户模式,自此,应用ARM对FPGA进行FPP配置就大功告成了。可是,问题虽然解决了,但是还有一些疑问没有消除,如果说只是.rbf文件的格式不对,那为什么只写入0x55时nCONFIG不被置低呢?还有为什么更改后的.rbf文件就可以实现FPGA的正常配置,而之前的.rbf不能实现FPGA的配置,而且会出现nCONFIG被置低的问题?猜测问题可能的原因是,没更改的.rbf文件由于生成的时候,在Quartus II中设置的配置模式是AS模式,因此在把这个.rbf文件数据写入的时候,FPGA被引导成AS模式,所以nCONFIG会被置低。写入更改后的.rbf文件到FPGA,在这个文件中FPGA的配置模式被设成了FPP模式,所以可以实现FPGA的正常配置。写入0x55,nCONFIG不被置低,有可能是因为0x55组成的数组中,并没有FPGA配置模式的引导数据,所以nCONFIG不会被FPGA置低,而是由ARM控制,被一直拉高。
  • 热度 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
  • 热度 20
    2013-11-28 14:35
    862 次阅读|
    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 : 下面针对固件更新,点击“浏览”按钮,选择好要更新文件。 继续阅读:http://blog.iwiznet.cn/?p=5861 作者:Katrina,Jerry,Cillian  感谢阅读! 更多信息请关注WIZnet官方微博: http://weibo.com/wiznet2012  
  • 热度 15
    2013-11-28 14:32
    1090 次阅读|
    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 : 下面针对固件更新,点击“浏览”按钮,选择好要更新文件。 继续阅读:http://blog.iwiznet.cn/?p=5861 作者:Katrina,Jerry,Cillian  感谢阅读! 更多信息请关注WIZnet官方微博: http://weibo.com/wiznet2012