×
嵌入式 > 技术百科 > 详情

小编推荐:mPSD32xx单片机无线远程IAP的实现

发布时间:2024-05-21 发布时间:
|

引言

传统的MCU控制系统在下载程序时一般都是通过取下芯片用编程器烧写,或者采用ISP方式进行在线编程。随着用户需求和使用环境的不断变化,就会要求系统程序被升级,而采用上述两种方式进行程序升级时都必须要有开发人员进行现场操作。这种升级方式对于终端分散的控制系统来说无疑极大地增加了开发成本,也延缓了程序的更新时间。因此,本文结合无线基站动态环境监控系统,给出了基于mPSD32xx系列单片机无线远程IAP(应用内编程)的具体实现方法,解决了上述问题。

系统架构

无线基站电源、空调、基站的室内环境等条件对整个系统能否正常运行是至关重要的,为了让无线基站有一个稳定、可靠的运行环境,因而设计了此采集系统。

针对以上环境,本采集系统下位机将基站电源、空调、基站内温度、湿度、烟雾、门控等集于一体,实时采集该系统所需要的各种数据,同时提供自动告警功能;上位机采用C/S模式设置不同级别的权限提供给各个监控中心。系统的数据传输采用GPRS/GSM无线通信网络接入Internet进行远程传输:下位机通过GPRS/GSM把告警信息自动上传到监控中心或手机等;同时,监控中心或手机可以通过GPRS/GSM网络对采集器进行查询、配置等操作,以满足不同的实际需要。在整个系统的设计过程中,为了对多任务进行高效的调度,选用了源码开放的mCOSII嵌入式实时操作系统。


硬件设计原理

mPSD32xx包含一个标准的8032微控制器模块和一个PSD模块。采用模块化设计技术,不仅将构成一个单片机应用系统所需的多个功能块(如8032核、两个Flash、SRAM、I/O、PLD、USB接口、I2C接口、双UART口、用于液晶显示的DDC通道、PWM控制器、4路ADC等)集成在单一硅片上,同时还可以通过JTAG ISP方式进行在系统编程,可简化嵌入式应用系统的设计、缩短产品的开发周期、提高系统的可靠性、降低成本并缩小产品尺寸。

软件设计与实现

本设计选用的GPRS模块是WAVECOM公司的Q2406B,它是双频GPRS/GSM模块(EGSM900/1800MHz或EGSM900/1900 MHz),内嵌完整的TCP/IP协议栈,直接通过AT指令就可以接入Internet,并且其设计开发符合ETSI GSM Phase 2 标准。单片机完全按照标准AT指令使用9.6 kbps波特率通过串口与此模块进行通信。

IAP的实现

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

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

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

IAP功能的主程序设计

系统上电后,程序首先在启动扇区内运行,等待上位机发来的命令,根据命令执行相应操作。超时或没有命令发来就自动切换到用户程序。需要更新用户程序时,切换回启动程序。系统工作中主要有掉电、通信中断、误码这三种情况会导致程序升级失败。以下简单介绍本设计所采取的一些保护措施。

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

结语

本文所介绍的无线远程IAP的实现是基于mPSD32xx系列单片机,且已在无线基站动态环境监控系统项目中使用,极大地方便了系统程序的及时更新,可靠性也得到了验证。可以直接应用到各种电力、水资源和其它无线监控系统中。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
德州仪器推出稳压误差仅为1%的无电容LDO产品