基于mPSD32xx系列单片机无线远程IAP的实现

时间:2013-09-11来源:网络


IAP的实现
  IAP就是启动程序把新的用户程序编程到指定的Flash中。对Flash程序存储器的读/写操作是实现IAP的关键,下面给予详细介绍。

  MCU可以像读ROM器件那样读Flash存储器,但只能使用特殊的擦除和编程指令对Flash存储器进行编程。

  Flash存储器在被编程之前必须先被擦除。Flash存储器的一个字节被擦除为全1(FF h), 通过设置选择位为0来编程。MCU可一次擦除所有Flash存储器或一个扇区,不能按字节擦除,而MCU可以按字节编程。一旦MCU 发出Flash存储器编程/擦除指令,可以通过几种方法判断是否编程/擦除完毕,程序中用到了下面两种判断方法来对Flash进行编程。

数据轮询法
  数据轮询法的编程由函数unsigned char? flash_boot_write_ with_poll(volatile uchar xdata* addr, uchar dat)完成。当从监控中心接收的命令是要求用数据轮询法对旧用户程序更新时,主程序中就会调用此函数,MCU发出一个编程指令,内置的算法就开始运行。出错标志(DQ5)位为1标志编程周期超时,为0标志没有出错。MCU可以读取被编程扇区任意位置的数据轮询(DQ7)位和出错标志位。

数据跳转法
  数据跳转法的编程由函数unsigned char flash_write_with_toggle (volatile uchar xdata* addr, uchar dat)完成。编程周期与数据轮询法大致相同,区别在于MCU读的不是DQ7,而是数据跳转标志(DQ6)位。在编程期间,DQ6位一直跳转,直到编程周期完成。DQ5位为1标志编程周期超时,为0标志没有出错。MCU可以读取被编程扇区任意位置的DQ6位和DQ5位。

  另外,此芯片还有Flash存储器扇区保护功能:主Flash和第二Flash存储器的每个扇区都可以被单独地保护,防止被编程和擦除。该功能为所有的编程或擦除失效提供了额外的数据安全保障。

  在本设计中,第二Flash的CSBOOT1扇区保存了门控的一些固定卡号,此扇区应被保护。第二Flash的其余几个扇区都作为备用,保存一些电源或空调参数以及需要添加的门控卡号,这些数据都是可变的,所以不被保护。可以通过JTAG 口或器件编程器设置使Flash存储扇区被保护或解除保护。MCU可以通过读扇区保护寄存器(CSIOP块里)来读取扇区保护状态,但不能改变它。

IAP功能的主程序设计
  系统上电后,程序首先在启动扇区内运行,等待上位机发来的命令,根据命令执行相应操作(见图2)。超时或没有命令发来就自动切换到用户程序。需要更新用户程序时,切换回启动程序。

异常处理
  系统工作中主要有掉电、通信中断、误码这三种情况会导致程序升级失败。以下简单介绍本设计所采取的一些保护措施。

  第一种情况,考虑到环境导致的电源稳定性差和雷电、继电器等高压信号的干扰。系统采用了高隔离度DC/DC电源模块把外界地和系统地隔离开,并且在容易受干扰的串口部分加入了高速光耦进行隔离;第二种情况,系统用到了串口、GPRS/GSM、TCP/IP组合成的复杂通信网络。由于只要有一个通信故障就会造成上、下位机之间的通信失败,所以,为了防止因通信失败而造成系统瘫痪,程序中用Eeprom_Init 函数在通信失败或掉电情况下对数据进行恢复和修理;第三种情况,在上、下位机通信过程中,尽管通信正常,但由于数据量大,有产生误码的可能性。因此,程序中对接收到的每一帧数据都先检验帧类型,然后对其作4字节的校验和判断。如果校验有误,将错误信息类型回传给上位机重发,直到数据完全正确,才将这一帧数据保存到Flash相应地址里。
  
结语
  本文所介绍的无线远程IAP的实现是基于mPSD32xx系列单片机,且已在无线基站动态环境监控系统项目中使用,极大地方便了系统程序的及时更新,可靠性也得到了验证。可以直接应用到各种电力、水资源和其它无线监控系统中。



参考文献:

[1].GPRSdatasheethttp://www.dzsc.com/datasheet/GPRS_1594650.html.
[2].DDCdatasheethttp://www.dzsc.com/datasheet/DDC_1870710.html.
[3].Maximdatasheethttp://www.dzsc.com/datasheet/Maxim_1062568.html.
[4].MAX202CPEdatasheethttp://www.dzsc.com/datasheet/MAX202CPE.html.
[5].74LS11datasheethttp://www.dzsc.com/datasheet/74LS11_1493173.html.
[6].Q2406Bdatasheethttp://www.dzsc.com/datasheet/Q2406B_561524.html.
[7].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.

1 2

关键词: mPSD32xx系列 单片机 无线远程 IAP

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版