基于FTP协议栈的OpenAt应用软件远程DOTA系统

2017-11-21 05:17鲍海森
无线互联科技 2017年20期
关键词:嵌入式链路客户端

鲍海森

(华为技术有限公司,广东 深圳 518129)

基于FTP协议栈的OpenAt应用软件远程DOTA系统

鲍海森

(华为技术有限公司,广东 深圳 518129)

OpenAt是一款基于GSM/GPRS无线CPU模块的嵌入式操作系统。OpenAt系统集成了基于GSM/GPRS无线CPU模块的大部分应用开发API函数库。DOTA是指系统远程无线升级功能。文章以Q2686无线CPU为模块为例,介绍OpenAt操作系统平台上的基于FTP的远程DOTA软件设计,为GSM/GPRS产品应用提供一种远程在线升级手段。

文件传输协议;OpenAt;空中无线下载;GPRS;TCP/IP

电子技术的发展,使得电子产品的升级换代越来越快,用户对电子产品的需求也会随着技术的发展而增加或改进,使得产品设计周期越来越短,同时带来的产品后续维护服务也越来越复杂。GPRS网络和互联网技术的发展使得无线远程数据传输技术深入到社会的各个领域,基于GPRS网络的终端系统也越来越多。在众多GPRS终端产品中,由于产品设计的周期变短,系统或多或少会存在软件缺陷,同时由于不同客户的需求也会增加,使得更多GPRS终端产品需要软件升级。相对于传统的有线升级模式,GPRS远程无线升级更具有灵活性,逐渐成为大多数产品远程升级的主要模式。空中无线下载(Download Over The Air,DOTA)的模式有两种,一种主动式,一种被动式。主动式是指GPRS终端获取升级指令后主动到服务器上搜寻升级程序,并下载下来进行系统内编程;被动式则是由服务器端控制软件将升级文件打包,依次将数据发送至GPRS终端。相对于被动式升级,主动式升级速度和效率上更具有优势。在这里,本文介绍基于无线CPU模块Q2686 FTP协议栈的DOTA升级模式。

1 OpenAt系统简介

OpenAt嵌入式系统是为GPRS无线CPU开发的一款小型操作系统,集成了内存分配、FLASH管理、数据流管理、GPIO管理、总线管理、定时器管理等多种功能[1]。底层为嵌入式API应用层,包括程序初始化API、AT指令API、操作系统API、标准API、流控API、总线API等。包含了建立在OpenAt基础之上的应用开发层函数库。应用开发层函数库(Advanced Distributed Learning,ADL)为开发人员提供了上层应用接口,简化了嵌入式应用的开发;同时ADL还提供了嵌入式应用程序框架,包括消息解析器和服务声明机制。基于以上原因,OpenAt应用程序开发应用程序时,更多的时间用于调用服务处理函数,使系统更专注于程序本身的优化。

OpenAt操作系统与应用程序的关系如图1所示。

图1 OpenAt操作系统与应用程序的关系

2 FTP协议栈简介

文件传输协议(File Transfer Protocol,FTP)是TCP/IP协议组中的协议之一[2]。该协议是以Internet文件传送为基础,由一些罗列规格说明的文档组成,目标是提高文件的共享性,提供非直接使用的远程计算机,使存储介质对用户透明和可靠高效地传送数据。FTP属于一种客户端/服务器端的系统,FTP传输包括两种方式:ASCII传输模式和二进制数据传输模式。FTP支持两种工作方式,Standard模式和Passive模式,即主动方式和被动方式,主动模式连接过程是由客户端向FTP服务器端口(默认21)发送连接请求,服务器接收连接,建立一条命令链路,当需要数据传时,客户端在命令链路上发送PORT命令通知服务器发送数据到客户端指定端口;被动模式是指客户端向服务器的FTP端口发送连接请求,服务器接收连接,建立一条命令链路,当需要数据传输时,服务器通过PASV命令通知客户端新建数据传输端口,由客户端向新建FTP端口发送数据连接请求,建立一条数据链路来传输数据。本文,重点讨论被动模式下的FTP数据传输。

3 OpenAt系统DOTA流程

在OpenAt操作系统中,启动DOTA远程升级的流程大致如下:启动WIP服务,建立GPRS链路,打开FTP服务SOCKET连接,连接至指定FTP服务器,打开文件夹查找到目标文件,由客户端发起,执行文件下载,完成下载后,启动OpenAt内部在线编程服务,从而完成升级。完整的系统流程如图2所示。

图2 OpenAt系统DOTA流程

4 GPRS终端硬件系统

在这里,以无线CPU模块Q2686小系统为例,Q2686模块是Sierra公司为工业应用开发的高端GPRS无线CPU,适用于恶劣环境,具备抗强电磁干扰能力。内部集成了32位的ARM9芯片,最高频率为104 MHz,集成了32 M的Flash空间和8 M的RAM,拥有44个GPIO,两路SPI,两路UART口。集成了嵌入式OpenAt操作系统,支持USB Slave和I2C总线[3]。

一个基于Q2686的车载GPS小系统硬件如图3所示。

图3 车载GPS小系统硬件

5 DOTA软件设计

基于上述Q2686小系统,设计OpenAt嵌入式程序。DOTA系统程序设计包括系统初始化,GPRS链路建立,FTP协议栈启动,文件下载,升级安装,系统重启等几个过程。

5.1 GPRS数据链路的建立

在OpenAt嵌入式系统中,启动GPRS的功能模块是WIP插件库,该插件库集成了TCP/IP,UDP,FTP,HTTP等多种网络协议栈,根据需要启动相应的协议栈函数库。在这里,我们建立FTP客户端[4]。

OpenAt系统中,启动WIP登录GPRS网络首先启动系统的Bearer,Bearer在OpenAt中作为一种数据通道,在一个Bearer下可以建立多条不同协议栈的数据链路。Bearer的建立示例代码如下:

Bearer通道建立完成后,当BearerHandler返回函数返回WIP_BEV_IP_CONNECTED事件时,表明当前的PPP连接建立成功。

5.2 FTP协议栈的启动

完成WIP_BEV_IP_CONNECTED事件返回后,创建FTP协议栈的客户端连接[4]。启动函数为:

其中Channel值即FTP链路返回句柄。返回函数ClientEventHandler定义如下:

Download()函数下载文件到文件尾时,系统自动进入WIP_CEV_PEER_CLOSE事件状态,完成下载。

5.3 升级程序

在WIP_CEV_PEER_CLOSE事件状态启动install()函数,安装下载完成的file.dwl文件。Install()函数运行大约耗时3~5秒,安装过程中,系统输出ADL_AD_EVENT_INSTALL事件状态,表明系统已经完成新程序的安装,系统硬件自动重新启动,启动运行新程序。完成整个下载过程。

5.4 系统的安全性设计

在实际的DOTA程序设计中,存在很多不可预见的灾难性错误,容易导致系统崩溃。为了保证系统DOTA程序的顺利进行,需要在DOTA过程中增加多级灾难预警以及保护措施[5]。保护措施如图4所示。

图4 DOTA过程中的保护措施

6 远程DOTA系统的应用

对基于GPRS无线CPU的终端产品进行远程DOTA,可以很方便地实现软件系统版本的更新,又减少了现场服务的成本,所以DOTA功能被很多产品采用,包括儿童追踪器、车载GPS系统、GSM直放站监控系统、GPRS道路交通诱导系统和家庭无线报警系统中。而基于FTP协议栈的DOTA应用更具备一些优势,首先是无需服务器端控制软件,减少了服务器软件开发成本,其次是DOTA过程全部由下位机独立完成,只需要将升级文件上载至固定FTP服务器的固定文件夹即可,下位机完成升级后自动重启运行新程序,减少了人工干预的过程,实现了系统的自动化运行。

7 结语

市场机遇和应用技术的成熟往往是互相矛盾的[5],产品更新换代的速度随着技术的发展而加快,系统潜在的BUG会随着产品的使用出现,客户的需求也会随时改变,尤其对于车载类GPRS远程数据传输产品的设计,往往客户的需求并不是一次性提出的,后续的产品升级如果继续采用传统的现场烧录方式已经不合时宜,而且花费的人力物力也非常庞大。GPRS类产品本身就是远程数据传输,借助于远程数据传输,通过CPU内部的自安装功能,设计可以随时随地远程升级的程序,为客户提供最好的非现场技术支持手段,关键可以在客户不知不觉的情况下实视远程DOTA升级。该方案从根本上解决了现场升级困难和耗费大量财力的情况,加速了新产品上市的时间,可以为产品的售后提供更快更完美的用户服务,增强产品的市场竞争力。

[1]洪利,王敏,章扬,等.无线CPU与移动IP网络开发技术[M].北京:北京航空航天大学出版社,2008.

[2](美)理查德·史蒂芬.TCP/IP详解卷1协议[M].范建华,胥光辉,张涛,译.北京:北京大学出版社,1999.

[3]Wavecom Corporation. WM_Q2686_modules_spec_sheet[EB/OL].(2007-03-06)[2017-10-25].http://3.imimg.com/data3/TE/LA/MY-1833510/wavecom-gsm-gprs-q2686a.pdf.

[4]Wavecom Corporation. ADL_user_guide for openat@os v3.13[EB/OL].(2007-05-03)[2017-10-25].http://bbs.sendsms.com.cn/attachments/f20/1952d1286003062-basic_development_guide-adl_user_guide.pdf.

[5]胡静静.实现基于GPRS的无线远程IAP功能[J].单片机与嵌入式系统应用,2005(1):21-23.

Remote DOTA system of OpenAt application software based on FTP protocol stack

Bao Haisen
(Huawei Technology Co., Ltd., Shenzhen 518129, China)

OpenAt is an embedded operating system based on GSM/GPRS wireless CPU module. OpenAt system integrates most of application development API libraries based on GSM/GPRS wireless CPU module. Download over the air(DOTA)refers to system remote wireless upgrade function. Taking Q2686 wireless CPU as an example, this paper introduces the remote DOTA software design based on file transfer protocol(FTP)on OpenAt operating system platform, and provides a method of remote online upgrade for GSM/GPRS product application.

FTP; OpenAt; DOTA; GPRS; TCP/IP

鲍海森(1977— ),男,河北衡水人,高级工程师,学士;研究方向:车联网技术。

猜你喜欢
嵌入式链路客户端
家纺“全链路”升级
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于3G的VPDN技术在高速公路备份链路中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
高速光纤链路通信HSSL的设计与实现