基于3G无线通信网络与云计算平台的软件下载系统研究

侯枫 郑媛媛
摘 要: 采用软件实现的轻量级解决方案,设计合理的结构和接口,实现具有一定可扩展性及可维护性的完整的应用系统。实现了存储模块分析处理业务逻辑,完成存储模块的分块分区域的读、写和擦除功能。同时,采用多线程、软件包拆分下载、存储模块分块管理等做法进行整合形成一套适应于云计算概念的理论,提高了研发和生产效率及存储模块的利用率,系统的稳定性和高效性在平台产品研发过程中得到了证明。
关键词: 云计算; TD?SCDMA; 3G; 存储模块
中图分类号: TN92?34; TM417 文献标识码: A 文章编号: 1004?373X(2017)03?0027?03
Research on software download system based on 3G wireless
communication network and cloud computing platform
HOU Feng, ZHENG Yuanyuan
(Sanmenxia Polytechnic, Sanmenxia 472000, China)
Abstract: A lightweight solution realized with software is used to design the reasonable structure and interface to implement the complete application system with a certain scalability and maintainability, the analysis and processing business logic of the storage module, and the read, write and erasure functions of the blocking and zoning of the storage module. The methods of multithreading, software package splitting multi?channel download, storage module blocking management are integrated to form a unified theory suitable for the cloud computing concept, so as to improve the development efficiency, production efficiency and utilization rate of the storage module. The stability and high efficiency of the system were proved in the research and deve?lopment process of the platform product.
Keywords: cloud computing; TD?SCDMA; 3G; storage module
信息作为现代化企业的宝贵资源,占据着越来越重要的地位,现在已经成为现代化企业科学管理的基础,正确决策的前提,有效调控的手段。互联网、无线通信网络是新时代的两大核心产物,手机和电脑成为人们生活中的“必需品”,随着云计算的出现和3G无线通信网络的成熟,云计算与3G无线通信的交接领域成为了新的研究热点[1]。
1 下載系统概述
一部正常工作的手机,除了要有硬件、结构件外,还必须要有软件支持。手机下载软件一般是在FLASH芯片贴片前将程序烧录在芯片中,或者等到贴片完成后采用在线下载的方式进行运作[2]。本系统是基于云计算概念的TD平台系统中的下载模块。
在线下载方式最大的优点是灵活,比如说在贴片完成或者整机装成后,需对软件进行升级,这种情况下就比较适合采用在线下载的方式。但在大批量生产过程中,芯片烧录方式效率更高。对于一款手机来说,如果用在线方式下载程序,需要的时间是10 min,但如果改用芯片烧录方式下载同样的程序,则只需3~4 min。同时,芯片烧录的过程对该器件也具有检测作用。如某款手机,生产初期采用在线下载的方式下载手机软件,发现有少量手机的软件不能正常进行下载,更换FLASH后可以正常下载[3]。在第二次生产时,改用芯片烧录方式下载软件,烧录过程中发现有2%的FLASH不能正常运行。通过这种方式,可以将不良的FLASH检查出来,避免在帖片后才发现器件的不良问题,减少了手机维修成本[4]。
2 系统设计
下载系统模拟原有硬件下载工具的流程,用户通过PC端可以对设备上的FLASH/RAM/Memory进行读、写、擦除等操作,整体结构见图1。结合实际应用情况,将系统设计为客户端和目标端两部分[5]。客户端是一款基于Windows操作系统的GUI图形化界面的工具,用户通过GUI图像化界面能够进行参数的配置操作,以及对FLASH芯片的下载和可编程操作。而目标模块又划分为目标装载模块和目标设备可编程模块两个子模块。目标装载模块作为设备上的一个中间件下载到ISRAM中,在设备烧录之前,加载本模块并读取系统支持的FLASH芯片信息,包括客户端与目标通信和信令控制[6]。
软件环境架构框图如图2所示,各部分的主要功能如下:
(1)Host system:主机系统架设在PC端,是整个SML系统的中枢,负责整个下载流程的控制、命令发送和处理,目标芯片硬件接口通过串口或者USB口与其相连 [7]。
(2)Target Device:目标设备是一块可以被应用程序编程的芯片,可以是FPGA,ISRAM,ESRAM,FLASH。
(3) TFP:Target Feedback path,是分布在芯片上对客户端软件的状态进行报告的模块。
(4) TDP/TDI:Target Device Programmer,硬件芯片驱动模块能够完成对目标芯片的读、写、映射、擦除等操作。
基于以上理论目标端软件的架构如下:
如图3所示各模块层独立运行操作,且层与层之间的应用可编程接口(API)被明确定义。
(1) Application Layer:应用层是控制软件的信令处理序列和从其他层调用所需功能的模块,包括时序安排、命令的解析和执行等功能。
(2) Protocol Layer:协议层负责将从主机系统中得到的协议数据包进行解码[8]。同样,发送数据包到主机系统时,协议层负责对必要的协议进行打包。协议层只对应用层开放了接口,所以只能通过应用层进入协议层。
(3) Communication Layer:通信传输层主要分布了现在可用芯片的驱动信息,是目标芯片和主机系统的接口部分,即为标准的USB口和串口通信层。
(4) Target Device Driver Layer:目标设备驱动层。
3 功能层实现
3.1 协议层
协议层负责将从主机系统中得到的协议数据包进行解码。同样,发送数据包到主机系统时,协议层负责对必要的协议进行打包。协议层只对应用层开放接口,所以只能通过应用层进入协议层。
接口描述:本层接口只对本层开放并提供编码和解码功能。
VOID ProtocolHandler (PACKET * protocolPacket),
typedef struct packet {
unsigned char cmdID;
unsigned char *pDataBuffer ;
unsigned int dataBufLen;
unsigned char pktDirection;
具体参数描述如下:
cmdID:是Command Identity的缩写,在协议内容被协议层解码之后从客户端得到包括反馈符在内的数据包,客户端收到时进行数据信息的确认。
pDataBuffer:是一个指针,指向从客户端收到的或者准备发送到客户端的数据包存放的缓存寄存器区。
dataBufLen:表示存放在缓冲区的数据的长度,该参数映射自pDataBuffer。
pktDirection:用于存放接收自或者发送至客户端的地址(路径)的数据,如果是接收自客户端,“DATA_FROM_HOST”赋值给这个参数指示协议层模块进行解码;如果是发送到客户端,“DATA_TO_HOST”则指示进行编码。
所以,当协议层模块从客户端接到的参数pktDirecton的值为DATA_FROM_HOST,协议层进行解码操作;相反如果接到的参数pktDirecton的值为“DATA_TO_HOST”,协议层则进行编码操作。
这个流程的主要功能是进行数据包的编码和解码操作,Checksum用来进行数据包的计算,进行数据包接收或者发送校验,如果数据包数量相符那么传送成功,否则视为失败并返回。另外,pDataBuffer,dataBufLen和cmdID参数兼备更新并在通信成功的情况下返回的功能。
3.2 目标设备层
设备接口模块在程序运行时动态加载设备驱动,用一个指针区分表示一款芯片的驱动程序。这样应用层可以很好地区分各种不同的芯片模块。
API描述:
STATUS AccessTargetDevice

unsigned long deviceID,
unsigned char devOperation,
struct deviceCtrl *pDevCtrlParams,

deviceID:表示芯片族。
DeviceID表示各种图同型号的AMDFlashesa如下:
AM29F800BB=0x2258
AM29F800BT=0x22D6
AM29LV800BB=0x225B
AM29LV800BT=0x22DA
AM29LV160BT=0x22C4
AM29LV320DT=0x22F6
devOperation:表示對该模块FLASH芯片进行操作的权限,比如只读、只写、可读写或者可擦除。
3.3 通信传输层
Communication Layer:通信传输层,这一层主要分布了现在可用芯片的驱动信息,是目标芯片和主机系统的接口部分,即为标准的USB口和串口通信层。通信传输层结构如图4所示。

图4 通信传输层结构
API列表:
STATUS ReadHostData (unsigned char *pDataBuffer, unsigned char numberOfBytes)
STATUS WriteHostData (unsigned char *pDataBuffer, unsigned char numberOfByte)
STATUS ChangeDriverConfig (unsigned char *pConfigData, unsigned char configDataLength)

API描述:
STATUS ReadHostData (
unsigned char * pDataBuffer, /* buffer pointer*/
unsigned char numberOfBytes /*no of byte to be read*/

Return Value: ERROR or SUCCESS
STATUS WriteHostData (
unsigned char *pDataBuffer, /* buffer pointer*/
unsigned char numberOfBytes /* no of bytes to be sent */

Return Value: ERROR or SUCCESS
STATUS ChangeDriverConfig(
unsigned char *pConfigData, /* buffer pointer that contains driver configuration information*/
unsigned char configDataLength

Return Value: ERROR or SUCCESS
4 FLASH模塊规划方案
在本研究方案中,硬件的设计采用64 MB FLASH作为永久存储设备,存储软件代码、主要的数据(包括初始化数据等)、加密信息、本地化信息等终端软件运行时所需要的一切资源,同时还将给手机用户提供一定的存储空间,用于存放图片、媒体文件等。
BSP:使用Binary Format进行存储,存放系统启动代码(ARM侧),该数据段可以通过软件工具进行改写。
Code in ARM926EJ?S(ARM侧代码段)使用Binary Format进行存储,存放OS\NetX\FileX\Lib(包括GUI,Device Manager和Mobile Enable)\MeCo\APP和Daemons的代码段和数据段。由于FLASH的速度接近于Extend PSRAM的速度,因此原则上代码段将留在FLASH上进行执行,该数据段可以通过软件进行读写。
DSP侧代码段:使用Binary Format进行存储,存放协议物理层软件的代码段和初始化数据段。
AMR代码段:存放AMR代码段和初始化数据段。
User Region(用户数据区):使用文件系统,格式为FAT或者FAT32。存放包括图片文件、媒体文件等在内的用户数据,对用户可见,用户可以通过文件管理器或者某个特定的应用软件的方式进行维护管理。
NVRAM区域:用于存储系统各部分软件初始化所需的数据及一些可变的配置选项。初始化所需的数据在生产测试模式下写入,可变配置选项可以通过特定的接口进行操作。用户需要存放的一些选项也可以放在这个区域。
NVRAMdata区域:主要存放短消息、电话本及应用MMI资源数据。
异常保存区域:主要存储系统异常时的一些信息。
5 结 论
在研究下载系统时,本文结合云计算的概念并整合现有的TD?SCDMA通信平台以及现有下载方式的最优、最低成本、最高效的解决方案,设计并实现了完整的符合TD?SCDMA通信平台架构要求的应用系统。在通信管理模块中,完成信令的传输,数据的控制与监控,在FLASH模块中对存储片进行分块管理,数据分块多线程同时下载,结合高层协议栈模块,实现了基于云计算概念进行网络数据备份以及无线下载传输,贯穿系统各个模块,并采用MD5加密算法提供安全性保障。
参考文献
[1] IOSUP A, OSTERMANN S, YIGITBASI N, et al. Performance analysis of cloud computing services for many?tasks scientific computing [J]. IEEE transactions on parallel and distributed systems, 2011, 22(6): 931?945.
[2] 李鹏伟,葛文英.云计算环境下虚拟机动态部署研究[J].计算机测量与控制,2013,21(5):1374?1376.
[3] 田冠华,孟丹,詹剑锋.云计算环境下基于失效规则的资源动态提供策略[J].计算机学报,2010,10(15):1859?1872.
[4] 刘德政.基于云计算环境的GIS软件缓存技术实现方法的研究[J].现代电子技术,2016,39(7):33?35.
[5] 孙雅娟,林红.云计算环境下基于Chord环的资源发现模型设计[J].计算机测量与控制,2013,21(9):2573?2575.
[6] 吕良干.云计算环境下资源负载均衡调度算法研究[D].乌鲁木齐:新疆大学,2010.
[7] 周文煜,陈华平,杨寿保,等.基于虚拟机迁移的虚拟机集群资源调度[J].华中科技大学学报(自然科学版),2011,39(z1):130?133.
[8] 姜明月.云计算平台下的大数据分流系统的设计与优化[J].现代电子技术,2016,39(2):28?32.