实现基于GPRS的无线远程IAP功能
时间:08-31
来源:互联网
点击:
3.1系统工作状态分析
① 用户程序工作状态,在远程数据传输系统中,用户程序完成数据采集、存储、发送,系统监控、报警,接收执行上位机设置、控制命令等正常用户功能。
② IAP工作状态,如图2所示。上位机发送升级程序信令,数传终端收到并回复确认信息后,开始等待下载信令;收到正确下载信令后开始下载代码到FM24C256暂存。按帧顺序号发送、接收数据,校验帧的正确性,采用握手数据流保证每帧完全正确接收、存储。代码发送完毕后,发送下载完毕信令,包括代码总长度和块校验码;每阶段都采取延时处理:延时时间到继续重发过程三次,还没收到就报告出错信息,强行下线,切换到待升级用户程序运行。如果通信正常,就进入最关键一步——Flash擦除和编程。
Philips在P89LPC936地址FF00H~FFFFH的空间里固化一个256字节的引导ROM,所有MCU对内部Flash的操作都可以调用这个子程序完成。使用IAP功能时就是提供这个子程序的入口参数(参考Philips的数据手册),然后调用程序的入口地址FF00H,就可以实现读、写、擦除Flash。擦除、编程Flash时需要关闭所有中断,不能对同一块Flash同时进行擦除和编程,而且编程之前要先把扇区清除。对Flash的扇区进行擦除操作的程序清单(入口参数A、R7、R4和R5,返回参数(F0(C)、R7)如下:
ERASE_FLASH:
MOVA,#04H; A为操作类型(A=04H,告诉IAP; 执行的是擦除操作)
MOVR7,#01H ; R7删除操作方式(00H表示删除; 页;01H表示删除扇区)
MOVR4,#HIGH ; 操作的Flash地址高8位
MOVR5,#LOW ; 操作的Flash地址低8位
LCALLFF00H
JCERASE_FLASH; F0(C): 0表示擦除成功,1表示
; 擦除失败
3.2IAP功能系统SFR配置
(1) 用户保密扇区设置MOVSEC6,#04H;禁止对Flash扇区6的擦除MOVSEC7,#04H;禁止对Flash扇区7的擦除扇区6和扇区7代码是控制擦除、编程Flash。为保证不被误操作,只允许在出厂时用专门的编程器擦写。
(2) IAP特许关键值设置执行擦除或写Flash的IAP功能,需要在调用IAP功能程序前,把96H写入RAM单元FFH来设置特许关键值。程序代码如下:MOVR0,#0FFHMOV@R0,#96HIAP程序处理完功能调用后,特许关键值被清除。因此在每次调用IAP功能程序前必须设置特许关键值。
3.3IAP功能实现流程
IAP功能实现流程如图3、图4所示。flagIAP为下载程序完毕,并且校验码确认后,准备擦写Flash的标志。在FM24C256开辟单元存储功能很重要:在程序擦写发生异常,如掉电复位,可以在程序启动后,与上位机确认擦写后,继续完成升级任务。每次编程的字节数和上位机传输的1帧数据中,代码字节数保持一致,帧序号数表示程序分成多少帧传输和多少次编程操作。
3.4协议设计
GPRS网络速度理论上有117 kbps,实际上远远没达到;GPRS与Internet连接建立后,进入数据透明传输阶段。本系统在完善的TCP/IP机制基础上设计用户应用层协议。为实现对系统某个终端的系统软件升级,可将要升级的程序代码通过写码软件转化为系统信令,接入Internet到GPRS网络,透明传输下载到目标数传终端。本系统的信令格式采用如下代码帧格式:

开始信令帧和结束信令帧代码数据段都是FFH。同步码设置为AAH,55H;字节长度(1B)表示此数据帧包含代码数据的字节数,通常小于64;下载目标地址(5B)设定为出厂ID号,赋予一个特定代码含义,只有校验ID号正确后数据传输终端才可能接收命令,而且是唯一标识,不可改变;从安全性出发,本系统中设置为出厂日期和编号的组合:0501160000表示2005年1月16号出厂的第一个产品。帧序号(1B)表明此次升级程序分成的传送帧数,在命令传送过程中,此域为00H。控制字段(1B)表示传送的是操作命令还是数据。结束码设置55H,AAH。数据传输终端上行和下行数据格式完全相同,上行响应数据除代码数据段不同之外,其他字段都是下行控制数据的复制,实现数据流控制。
4 IAP功能可靠性探讨
系统升级过程不免受到环境的干扰,如系统断电或网络通信阻塞、故障等意外事故,而导致IAP升级失败。因此必须有一套可靠的软、硬件机制来保障IAP的完全正常工作。以下介绍本系统所采取的一些措施:
① 掉电情况处理。现场环境的电网波动相当大,而且经常性停电,甚至影响到系统的正常工作。可采用蓄电池供电,提供稳定的、可靠的工作电源;外加一充电板电路,能在有电的时候直接给电路充电。此外,软件上还做了完善的握手机制,信令设置回执,确保通信正确不会发生误操作;下载和擦写Flash部分时序上隔离,网络通信性能和掉电异常对系统正常工作的影响减到最小。

② 数据传输过程产生的误码。通用的、有效的解决办法就是用CRC循环冗余效验和重传机制。数据校验码正确后存入FM24C256,错误或超时就发帧序号请求重发,直到检测到结束帧。 3823 最后一帧数据长度不够就用FFH填满一帧发送。
③ 数据传输过程大延迟或阻塞情况处理。数据传输采用超时处理,三次握手失败,作异常处理机制。
该技术方案从根本上解决了本系统现场升级困难的问题,大大提高了系统的可维护性,加速了新产品上市时间,可以提供更快、更完美的用户服务,增强产品的市场竞争力。以GPRS网络为载体,在广大接入Internet困难的监控现场或农村地区,该技术提出了一个解决方案。
- 浅谈E1线路维护技术与应用(01-12)
- R4网络接口和电路域容灾技术(01-05)
- 移动通信网引入IMS的相关探讨(02-21)
- 未来接入网的结构与演进(01-26)
- 电子熔丝在计算机应用中的优势(06-08)
- 高性能、高集成度的TD-SCDMA模拟基带集成电路的实现和应用(01-09)
