当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]以uBASE-III嵌入式操作系统和ARM7处理器平台为基础实现了GSM 短信通信的功能,通过utools工具在Microsoft Visual C++6.0上进行开发。该系统具有友好的用户界面、便捷的操作流程。本文以短信通信为实例,给出了 一套在uBASE-III系统上进行嵌入式软件开发的方法。

引言


随着嵌入式及通信技术的发展,移动手持设备出现在很多应用场合,比如天然气公司开始采用智能化的方式来管理用户的用气情况,如何在服务端和表具终端间进行通信,成为系统的主要考虑因素。本文对系统进行需求分析后,以移动手持设备进行小规模通信为出发点,提出使用短信通信的方式来解决这一问题的方法。这种方式不仅使通信质量能够得到保证,而且价格合理,易于操作员来管理和维护,是一种行之有效的通信方式。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的各个成员来获取编程接口所读取到的短消息的详细信息的[3]。SMS_API提供了如下几大类操作:◆GSMOpen():打开GSM设备;◆InitSms():根据相应参数初始化设备;◆SendOrWriteSm_1Sm():发送短信,支持中文和英文。这些接口函数是在该系统上编写应用程序的基础,尤其是该系统中,GSM短信模块和文件相关操作是主要内容。3系统软件开发

3.1短信通信程序开发示例

图3为短信通信系统主程序流程,系统在登录后就处于收发短信的状态中。可以将主程序中的短信分为两部分,前台为操作员提供短信编辑命令,发送短信主要函数如下:intSendSms(char*strPhoneAddr,unsignedchar*pMessage,int msgBytes){SSmInfosmi={0},*pSmi=&smi;strcpy((char*)smi.Addr_MS,(char*)strPhoneAddr);inti,errcode;for(i=0;i<5;i++){//这里需要端口号、发送方式、SSmInfo对象、短信内容、//有效字节数和编码方式errcode=SendOrWriteSm_1Sm(g_ComPort,CMD_CMGS,pSmi,(Uint8*)pMessage,msgBytes,BITS_DCS_DEF_ALPHABET);if(errcode==0){return0;}return1;}图3短信通信系统主程序流程后台用于接收短信,进行处理后通常会对文件继续操作。这部分的难点在于如何设置短信通知格式,如何在后台运行处理短信和写回文件部分程序,并且要对前台的用户作出提示。因此这里用到了uBASE-III提供的多线程技术,让处理短信的主要函数工作在后台线程,有短信到来自动会处理“_thread_checkUnreadSm()”函数,列出“未读短信”,转到处理部分。这样就避免了在主程序中对“未读短信”的轮询,避免了处理器处于一种资源浪费且效率并不高的模式。函数代码如下:staticint_thread_checkUnreadSm(void*param){RE_CODEerrcode=0;errcode=ListSm(g_ComPort,MSGSTAT_RECUNREAD,s_SmNotify,NULL,NULL,NULL);returnerrcode;}其中“ListSm()”函数是短信模块提供的API,供程序员直接调用,可以列出各种格式的短信,具体方式和其他函数可以参考相关文档。3.2文件操作示例

在操作员对表具进行测试的时候,需要先上传“操作员数据”(用于存放操作员的用户名和密码)、“移动设备参数”,同时在程序运行过程中还会产生“通信命令帧核销数据”等文件,如何合理组织这些文件的结构和访问方式是本系统中又一重点内容,因为这些文件中的某些项是互相有关联的,并不完全独立。因此最核心的问题就是如何定义文件的结构,结构确定了,程序的操作方式也就确定了。拿“通信命令帧核销数据”举例,它里面包括了流水号、设备号、操作码、帧顺序号、核销状态和命令帧,后面的操作要依赖于其中的所有项,因此采用了定义结构体的方式,将上面的基本项封装起来,以结构体为基本单位去实现文件的操作。文件采用TXT格式,便于创建和导出。文件操作代码如下:intDeleteFrameVerifyInfo(intindex){UEnterMutex(g_mtxFrameVerifyOP,TIMEOUT_INFINITE);……//相关处理函数ULeaveMutex(g_mtxFrameVerifyOP);return0;}其中有一点要注意,多线程持有同一文件句柄进行读写操作是允许的,文件系统内部代码会将不同线程的读写操作串行化。因此,在对文件进行读写操作时,要注意互斥问题。结语

嵌入式操作系统在如今很多工业领域都有广泛的应用,它的优势往往在于内核可裁剪,体积小,应用在嵌入式设备上功耗低。本文就从移动手持设备通信引申,以uBASE-III系统和NLS-PT850设备为实例,着重从短信通信方式和文件操作两个方面来讲解短信通信的嵌入式软件开发的流程和方法。该示例程序在目标设备上可稳定运行,通信状况良好,可以作为移动手持设备短信通信的一个解决方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭