原创 pic18fxxx 串口通讯 云端升级的学习

2018-9-2 10:52 902 1 分类: MCU/ 嵌入式 文集: 网络
参考资料
《PIC16PIC18器件的高速串行自举程序》
《8位PIC MCU自举程序代码生成器》
云端用自己的服务器。  
1 首先要获取 目录下的版本号。 并经过判断是否下载。
2  要分段下载数据,并依次更新。  这个在HTTP1.1协议上可以实现。
材料都好了, 大体细节也都好了,一步一步的玩一下。
2018  0902  

我下载了AN1310ui.exe,官网的。 
解压后, 里面有PIC16 ,PIC18的  APP 和 BOOTLD 的程序。 
令人遗憾的是  都是老版本的IDE 编写的,  没有新的IED  MPLAB X
打开APP ,只是个简单的程序。 
BOOTLD 是用汇编写的, 这么多年没有看汇编了,实在是。。。没看。
奇怪的是PIC18 的BOOTLD 可以编译成功,
PIC16的却编译失败,说没有定义RC7 ,简单修改一下,编译也没有成功,就放弃了。
官网的DEMO 都不能编译通过,看来官方不太重视这个很久了。
把BOOTLD的 程序,改一下芯片,按照配置位建议设置 改了一下配置位。 并用PIK3  下载下去。 
上电,打开AN1310ui.exe,在一次不好就倒换RX,TX,之后,连接上了。
能看到BOOTLD的程序。  当然都是0XFF, 在ROM的最后有个区域是不允许写了,看来是被BOOTLD 占了。 
下个个APP的HEX ,   点击下载,好长时间,没有任何显示。
再查看里面的程序,明显是被写进去了。。。。。连个回馈也没有。。。差评。
这个BOOTLD 延续了MICROCHIP 一贯的思维, 开机的时候,检查RC7  是否被按下来决定是否进入自举还是应用程序。
这个不是我想要的,我想应该是接收到特殊的指令后,开始进入自举程序。
这个自举程序还是用汇编写的。。。谁愿意去改动呢?
2018 0903
   MPLAB X 在MCC中把BOOTLD 集成了,作为一个LIB 使用。  在16系列中 提示可以使用,但是没有经过仔细验证。
也就是说使用要小心,可能有一定的局限。 
    加载BOOTLD 后,生成工程,在正常的文件之外,又生成了2个文件  BOODLOAD.H  BOODLOAD.C  .
里面写的程序  风格不太像官方的风格。
     里面写的还算详细。。。也是在上电判断是否有updata的标志位,据此来跳转到app 还是 boodld.
这个不符合我想要的云端升级的标准,估计要重新改写这个bootld。
    ---------  2018  0915
            升级程序的另一个难点是分段升级。  这个主要是AIR模块来完成。    
主要步骤:  1)    AIR202  通电后,  发UART 给MCU   要求获取企业号和软件版本  {"id":"?"}              波特率是115200
                   2) MCU 得到JOSN  的ID 后,  回复 {"CompanyID": "XXX", "Version":"xxx"}
                   3 ) AIR202 得到 Company and version 的ID 后,和网上服务器获取的 企业ID 版本号进行比较,如果条件符合,开始拉数据下来。
   4) 数据是256 或固定的字节拉下来的。 
  AIR202 通过以下格式 发送给MCU
 {    Mode:hex/bin,                  
      blockCount :xx, --是第几段数据
      blockLength:xxx, -- 这一段的数据长度
      Data:........... -- 数据
  }

5)  MCU 接收到数据后, 进行解码 并处理,处理完毕后,发送回应

    { "CheckCode" : "xxx" }

6) air202 接收到后,和自己的校验码 比较,成功,则继续拉数据。 
  GRPS模块的程序已经做好,数据已经可以GET到,并验证。  下一步就是MCU的uart  IAP 了。
                                                                2018  10 19


   


  








广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
esad0 2020-02-10 19:32
NTP 不好用
[2020-02-10 19:29:09.704]: [I]-[testNtp.printTime] 2012/06/01,11:17:12[2020-02-10 19:29:10.701]: [I]...
esad0 2020-02-09 15:27
用AIR202 在ONENET 上位置定位
onenet 有位置的增值服务。是收费的。 但是ONENET 还是很厚道的, 每天300万以下的定位服务是不收费的。 鉴于我的设备是固定安装的, 因此只使用应用管理中的  地图 ...
esad0 2020-02-06 10:44
python 做智力题
和儿子一块学PYTHON .   感觉和C 语言基础的没有什么不同。感觉还不如C语言灵活。编程语言,一通百通。题目见下图。结题思路:   这是一个最简单的密码加...
esad0 2019-12-31 15:23
超声波模块开放笔记
       这是简单文章。       市场上的超声波模块大部分和我DIY的一样 是用HOLTEK的45F23A做的。...
esad0 2019-12-07 09:56
初始化holtek的45f23的PWM0
/*************************************************函数名称:  初始化holtek的45f23 的PWM0简要描述:  此程序同样...
广告
我要评论
0
1
广告
关闭 热点推荐上一条 /2 下一条