金笛工业手机论坛  

返回   金笛工业手机论坛 > 开发者乐园 > 短信开发资料

短信开发资料 短信开发技巧,代码分析

回复
 
LinkBack 主题工具 显示模式
旧 2012-08-15   #1 (permalink)
普通会员
 
hek320 的头像
 
注册日期: 2012-01-12
帖子: 50
hek320 正向着好的方向发展
默认 基于 GPRS 数据传输终端的远程升级系统的设计

1 前言
随着现代科技的飞速发展,嵌入式系统已经广泛地渗入到科学研究、工程设计 、军事技术 、各类产业和商业文化艺术以及人们的日常生活的方方面面。 嵌入式系统一般是以应用为中心和以计算机技术为基础的,并且软硬件是可裁减的,能满足应用系统对功能 、可靠性 、成本、体积、功耗等综合性有着严格要求的专用计算机系统 。它具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系 ,可以实现对其它设备的控制、监控或管理等功能。 数据传输终端 (以下简称 DTU)作为嵌入式大家庭中的一员,也广泛用于数据采集 、安防等领域的监控数据的传输随着代码版本的更新,DTU 程序的升级在所难免 ,但传统的嵌入式系统升级方式通常是技术人员到达设备现场 ,开箱重写或者更换 FLASH。 DTU 主要是用于监控,应用场合主要是人员不方便达到的地方 (如野外 ),而且设备数目庞大、分布地点较广,升级和维护过程就显得繁琐 、成本昂贵。
本文设计并实现了一种基于 GPRS 的嵌入式系统在线升级方案 。借助GPRS,维护人员通过 INTERNET,只需在服务器端就可以远程升级操作系统内核和应用程序,克服了传统方式的不足。
2 DTU软件结构
OPEN AT系统具有较完整的PPP 协议以及 TCP/IP 协议栈。BSP将系统初始化后 ,PPP协议通过底层的串口驱动程序与 GPRS 模块进行通信,从而完成 DTU 的PPP拨号。当DTU接入GPRS网络以后,在通过 TCP/IP 协议栈,与远程的INTERNET服务器(该服务器具有一个公网IP)建立TCP的连接。APP层可调用TCP的接口函数与服务器之间进行数据的收发操作。
3 升级系统的实现
3.1 原理介绍
在升级操作之前,NORFLASH中存储分布如下:NORFLASH首地址addressA放置bootloader,addressB放置DTU.bin。DTU上电后,首先运行的是 bootloader(虽然 bootloader 存储的地址为 ad-dressA,但上电时硬件已经将 0x00000000 与 addressA 做过了地址重映射)。它先将主处理器进行初始化,并负责将存放在NOR-FLASH中主程序的bin文件搬运到SDRAM的相应位置ad-dressC,随 后 将0x0000000与addressC 进行地址重映射,并把PC指针指向 SDRAM 中的代码运行的起始位置。通过 GPRS 网络进行升级可以从以下两个方面入手 。其一,服务器端发送新的主程序 bin 文件,更新存储在 NORFLASH 中的bin文件;其二 ,将新的主程序bin 文件存在NORFLASH的一个新地址ad-dressD中,并在 flash中设置相应的升级标志位,bootloader 进行代码搬运时通过判断代码更新的标志位决定是否搬运新地址中的bin文件。第二种更新方式将新旧版本的代码都保留在NORFLASH 当中,更具有选择性,用户可以在必要的时候恢复出厂时的版本代码。(注意:addressA 与addressB不能处于同一个block 地址当中。因为当将 DTU.bin 进行擦除操作时,会将 DTU.bin所处的整个 block 擦除,如果 bootloader 也处于同一个 block 下,将也会被删除 ,从而会导致系统的瘫痪。同理,addressB 和 addressD也应处于不同的 block 块)。
3.2 软件流程
上电后,bootloader 通过判断预先设置的升级标志位(烧写在FLASH当中),决定是从addressB还是addressD地址搬运 bin文件。代码搬运完成后即进行PPP拨号 ,登陆GPRS网络,进而连接上INTERNET上的远程TCP服务器 。如要进行代码升级,服务器端会主动发出升级请求。DTU在接收到升级请求以后就会进入升级模式进程,并开始等待升级bin文件数据的到来 (此处 DTU 数据的接收设置为非阻塞态,需要进行多次接收才能收齐整个 bin 文件数据 )。由于是利用TCP 进行数据传输,所以不需要担心数据出错的问题,只需关心数据是否完整(由于 GPRS 信号的问题,可能会导致数据的丢失,一旦出现这种问题,升级任务将立即终止 ,DTU 将会重新连接 TCP 服务器,进行新一轮的升级操 作)。数据接收完整以后,将bin文件烧录到NORFLASH的 addressD地址,随后将SEP3203复位。(以上操作假设新旧版本的程序都具有升级功能。 )
由于 NORFLASH 的擦写次数是有限的,所以其中很可能有坏块的存在 ,在烧写过程中要进行坏块检查,并在确定NORFLASH损坏的情况下及时向服务器端报告。
4 结束语
本文所设计的通过 GPRS 的升级方案,为嵌入式无线数据终端提供了一种简便、易行的升级手段。既克服了传统的现场升级的繁琐,也没有一般的有线升级(通过串口、USB 或以太网)的布线接入操作。虽然升级速度上与 USB、以太网升级方式有较大的差距(GPRS 传输速率的限制),但服务器端只要通过发送相应的升级指令,即可实现真正意义上的远程、无线升级操作,并且可以在必要的时候恢复到出厂时的代码版本 (通过服务器发送相应的指令),给用户提供了多种选择。
hek320 当前离线   回复时引用此帖
回复

书签


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用


相似的主题
主题 主题作者 版面 回复 最后发表
【转】基于GPRS的客户用电在线监测系统 admin 行业的笛声 0 2010-10-27 15:41
基于GPRS通信的配变监测系统 admin 行业的笛声 0 2010-10-14 16:39
基于GPRS 技术的地质灾害无线遥测系统 admin 行业的笛声 0 2010-01-05 17:19
GPRS常见问题——常识类[GPRS-GPS] zxm 产品资料专区 2 2009-08-05 20:01
用于GPRS的AT命令 s0z0y 售后服务专区 0 2009-07-10 13:24


所有时间均为北京时间。现在的时间是 19:50


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.