可以通过CAN总线来升级MCU的固件程序吗?

可以通过CAN总线来升级MCU的固件程序吗?,第1张

CAN 是Controller Area Network 的缩写,是ISO国际标准化的串行通信协议。MCU固件更新现在的各类设备中的固件更新手段多种多样:机顶盒和电视机多采用U盘和SD卡更新,手机和平板电脑采用OTA和网络方式更新,小型设备采用串口/USB下载更新。你是不是想用VB编制一个串口通讯程序,对一大批MCU固件来进行更新升级。VB 可以向计算机的串口发出需要的数据,就看外设的固件能不能接收。

这是STC单片机下载程序时很常见的问题,主要是以下几个原因:

1.波特率太高不稳定,请尝试将最高波特率和最低波特率都设置为2400

2.串口线接触不良,在使用外置的USB-RS232转换器的时候这种问题很常见

3.开发板上与下载有关的跳线设置有误,或者P3.0和P3.1连接的外设影响了串口通讯

4.单片机电源电压过低。在板子上连接电流比较大的外设时有可能出现这种问题

5.单片机在锁紧座上放置不到位

6.选错串口

7.关闭串口,尝试重新插拔下载线,或者重启电脑

8.单片机芯片本身有故障,不能从串口下载程序

       电信原IOT平台(180.101.147.115)已经不在推广,只维持老客户应用,许多应用已经进行了裁剪,比如历史数据存储只保留2天(19年的时候还保留7天)。现在(20年)电信只推广自己的AEP平台(www.ctwing.com,221.229.214.202),所有的应用&更新全部在该平台上,相对于IOT平台支持&功能有很大提升,如历史数据可存储30天。

       用户在实际应用中单独升级模组固件很少,因为系统一般稳定之后模组固件不会变更,更多的是用户MCU的程序升级。这里针对OpenCPU的应用做Fota升级测试。

       为了测试Fota是否成功,这里编写2个程序,分别打印V1.0和V2.0。

       V1.0功能:上电打印V1.0,AEP驻网、通信,模组不休眠

       V2.0功能:上电打印V2.0,无其他 *** 作

      V1.0版本的程序(原版本程序)需要连接AEP,才能进行AEP的FOTA升级。V2.0版本的程序只是打印,以为只作为测试是否成功,所以没有加入连接AEP的功能。

       参考文档《高新兴物联ME3616_WelinkOpen WeFOTA 接口开发指导_V1.3》第3章,制作差分包的工具是"IOTdeltaTool2.0_test.jar",制作方法文章中有详细步骤说明。

      参考文档《远程升级示例及详情说明》,不过该部分文档是针对模组厂商使用,是模组内部的交互流程,但普通用户可以查看对应界面上传差分包位置。

       "产品"-->"远程升级管理"-->" 固件管理 "-->"创建固件"

 "产品"-->"远程升级管理"-->"创建任务"

总觉得这些步骤在哪个文档上看到过,找不到了。

此时在"已选择设备"可以看到添加的模组

此时查看模组打印的信息

      V2.0的程序,不能上电立即驻网,因为模组升级成功后会自行重新驻网(内部设计问题,他怎么知道升级后要连接哪个平台呢,而且容易和用户的程序起冲突),如果用户重新驻网->注册平台会和模组内部固件冲突,导致无法上报"升级完成"信息,进而平台一直显示"升级中..."(不过根据刚刚测试,升级完成后与平台交互还是有些问题)

      IOT的差分包,按照刚刚的流程制作update.zip之后 ,还有修改名字为update.bin,然后通过signaltool进行签名,才是要上传的差分包(容易出错点)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11368992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存