基于uBASE-Ⅲ系统的短信通信程序开发
引言
随着嵌入式及通信技术的发展,移动手持设备出现在很多应用场合,比如天然气公司开始采用智能化的方式来管理用户的用气情况,如何在服务端和表具终端间进行通信,成为系统的主要考虑因素。本文对系统进行需求分析后,以移动手持设备进行小规模通信为出发点,提出使用短信通信的方式来解决这一问题的方法。这种方式不仅使通信质量能够得到保证,而且价格合理,易于操作员来管理和维护,是一种行之有效的通信方式。
1研究背景及系统框架
短信通信示意图如图1所示。PC机表示服务器端运行程序的平台,是操作员对表具和手持设备操作的环境;表具表示天然气表具,在里面配置了接收命令的固化程序;手持设备表示本论文研究的平台,是短信通信程序运行环境的主要部分。三者之间均可进行通信,它们之间已经有完整的命令帧格式,下面讨论如何设计并实现这样的通信子系统,而不研究具体的命令帧格式,假定是在统一的帧格式下完成的。
现场操作员需要设备有与表具进行通信的功能,能够测试表具的通信状况。因此,需要解决的主要有以下几个问题:图1短信通信示意图①选取合适的手持设备,能够有运行短信通信程序的基本硬件配置(需要配备GPRS模块)。
②选取合适的嵌入式操作系统,保证程序的稳定运行。
③如何进行有效的收发短信来完成通信功能,以测试表具的通信状况。
④需要有对文件操作的支持,操作员是需要上传和保存文件的。
嵌入式系统的开发既要实现程序的功能性,也要选取特定的硬件平台,嵌入式系统是为了完成某一项或有限项功能,系统功能可以根据产品的设计要求进行裁剪、调整[1]。并具体阐述了选取硬件设备与完成程序的功能。
2系统软硬件环境
2.1硬件平台
NLS-PT850是新大陆公司的一款基于嵌入式处理器的智能手持设备,它的基本硬件配置为ARM7处理器、32位RISC、74MHz频率以及标准手机键盘和扫描仪;内存为8MRAM、2MNORFlash和32MNandFlash(可扩展至128M)。上面搭载uBASE-III嵌入式实时多任务操作系统。嵌入式硬件设备的考虑应该完全满足目标系统的图2手持设备硬件结构框图要求,在功能上很容易满足,但是在性能上,尤其是在功耗上应最适合系统,而不是越充分越好。
手持设备硬件结构框图如图2所示。
该手持设备配备了GPS模块,具有SIM卡接口,存储容量合适,程序下载方便,因此选取该设备来作为短信通信系统的硬件平台。
2.2uBASE-III嵌入式操作系统
uBASE-III是一个嵌入式实时多任务操作系统,主要有多任务内核模块、内存管理模块、文件系统、设备管理模块、应用程序管理模块等[2]。uBASE-III之所以在很多嵌入式设备上广泛使用,有一个很重要的原因是它提供了一个C++类库"UFCL(ubaseFoundationClassLibrary)"。
另外,它还提供了大量的API,供程序员调用。这里选取该嵌入式操作系统的原因是它支持文件操作和短信通信。
文件系统用于文件操作,将程序中的相关数据以二进制文件的形式存放在Flash存储器中。uBASE-III采用了zfile2.0文件系统,zfile2.0是专为嵌入式系统设计的Flash文件系统,常用的函数有:◆打开一个文件以便读写其内容ZFILE*zfopen(constchar*filename,constchar*pmode);◆从当前文件指针位置开始写入size*count个字节的数据intzfwrite(constvoid*buf,intsize,intcount,ZFILE*stream);◆从当前文件指针位置读入size*count个字节intzfread(void*buf,intsize,intcount,ZFILE*stream);◆关闭打开的文件intzfclose(ZFILE*stream);uBASE-III系统对文件的支持相比其他环境也有一些不足之处,在嵌入式设备上使用文件操作有很多的限制,比如uBase-III的文件系统仅有单层目录结构,即不能创建子目录、文件系统API,不区分文本模式和二进制模式的概念,都当作是二进制模式。
短信通信是这样定义的:uBASE-III提供了一套短消息编程接口"SMS_API",它是通过向连接在主机串行端口上的GSMModem(或笼统地称为"移动设备(ME)")发出AT命令来完成短消息的发送、接收,以及对移动设备的其他相关操作的。该编程接口内部使用PDU(Protocol DescriptionUnit)格式与ME交换短消息的内容,也就是说,在AT命令的接口层来看,短消息是使用PDU报文来表示的,PDU报文是由许多字段组成的,不同的字段描述了短消息的不同属性。该编程接口使用SSmInfo结构体来描述PDU的各个字段,用户通过设定SSmInfo的不同成员来指定所要发送短消息的各种"属性",同样,用户也是通过SSmInfo的各个成员
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)