《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于GPRS的嵌入式远程数据采集系统设计

基于GPRS的嵌入式远程数据采集系统设计

2009-05-22
作者:付 扬, 赵丽丽

    摘  要: 介绍了基于GPRS的通信方式,采用嵌入式ARM9微处理器S3C2410X作为主控制器,通过短信息方式实现对远程端数据的采集和监测的远程数据采集系统。在系统的远程端和用户端,分别使用μC/OS-II和Linux为操作系统。用户端通过GPRS网络发出检测信息,远程端将检测到的数据送回到指定用户端,以此作为管理和监控人员统计和处理的数据。系统具有技术先进、简单经济、准确实用的特点,在实际应用中具有一定的参考价值。 

    关键词: 数据采集; 嵌入式系统; 通用分组无线业务(GPRS); 操作系统

 

    本系统的设计融合了当今两大热点技术:嵌入式技术和通用分组无线业务GPRS(General Packet Radio Service)技术。嵌入式系统具有功耗低、体积小等优点。系统的通信方式采用基于通用分组无线业务(GPRS)技术。GPRS 是为无线数据传输服务量身定造的,该技术提供端到端的、广域的无线IP 连接,具有随时查询、连接时间短、实时性强、设备成本低、维护费用小、收费合理、价格便宜、适合不定期、长时间的数据传输等诸多优点。因此,基于GPRS的嵌入式远程数据采集系统具有很强的优势,在目前的电力系统、天然气等资源的监测中具有很好的应用前景。 

1 远程数据采集系统的总体结构 

    基于GPRS的嵌入式远程电量数据采集系统设计结构图如图1所示。 

 

 

    基于ARM9的S3C2410X是Samsung公司推出的16/32位RISC微处理器S3C2410X,它为手持设备和一般类型应用提供了低价格、低功耗、高性能的解决方案。S3C2410X采用ARM920T内核和AMBA总线,并增添了丰富的外围资源,其中包括本系统使用的8通道的10位ADC。GPRS模块采用Wavecom Q2403A,它是双频GSM/GPRS MODEM模块,在短消息服务方面,支持点对点的MT&MO、短消息区域广播、回复呼叫信息、电话簿、记费等。  

    本设计中,把远程采集到的电量分为正常值和异常值两种。用户在用户端的宿主机上按下编辑短信功能键,开始编辑短信,系统会自动将编辑好的短信息传送到用户端的GPRS模块,远程端通过现有的GPRS网络将信息传输到远程端的GPRS模块,模块接收到用户的查询信息之后,将信息内容交给远程端的S3C2410X进行判断,判断用户选择的功能。当程序确认用户要查询电量值时,程序调用A/D转换模块函数,启动A/D转换模块,去读取电量值,并将电量值转换成数字信号,送给远程端的S3C2410X,这样系统已经按照用户的需求检测了电量值。然后,系统将进入信息发送的阶段,远程端的S3C2410X将准备好的二进制电压值及相关信息送入远程端的GPRS模块,再以短信的形式传回给用户端。用户通过在用户端的宿主机上键入接收短信功能键后,在屏幕上看到接收到的短信内容。如果此时的电量值在系统规定的安全电量值内,查询过程到此结束;如果此时电量值超出系统规定电量值,则系统会自动启动电机。电机启动意味着可以带动其他装置,做出相应的控制调整。 

2 系统软件设计 

2.1 远程端的程序设计 

    远程端使用的是μC/OS-II操作系统。μC/OS-II 是面向中小型的嵌入式操作系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。应用程序运行之前,要给设备加载驱动程序,这样应用程序才能在系统中正常运行。远程端的程序流程图如图2所示。 

 

 

  程序开始运行后首先进行各个模块的初始化,包括嵌入式系统开发板的初始化、GPRS模块的初始化、电机模块的初始化和ADC的初始化;其后,程序会设置好短信息的类型,并进入等待接收短信息状态。当有短信接收到后,程序将取出信息中的内容,进行判断信息所选择的功能。远程端的程序功能有3种:“G”代表查询A/D转换值,“S”代表停止电机,其他信息程序会自动返回操作错误提示信息。 

    如果信息的内容是“G”,则程序会启动A/D转换,将寄存器ADCCON的ENABLE_START位置“1”,之后循环查询寄存器ADCCON的ECFLG位等待转换的完成。一旦此位被置“1”,说明转换已经结束,程序会判断转换值是否大于3(此值根据系统需要任意设定),如果大于等于3,则起动电机,回复带有电压值的短信息;如果小于3,直接回复短信息。短信回复后,程序会继续回到等待短信的状态,循环往复。 

    远程端的ADC模块包括3个函数:初始化ADC函数(void init_ADdevice( ))、获取A/D转换值函数(int GetADresult(int channel))和A/D转换工作函数(extern char *SetAdc(void))。初始化ADC函数在系统主函数中调用。A/D转换工作函数是一个返回字符型指针值的函数,该函数首先定义了一些变量、数组和指针,然后调用获取A/D转换值函数获得转换后的电量值。此时的电量值为二进制代码,而要想在短信中传输,数据必须是字符串形式,所以接下来程序将原来的二进制电压值转换成ASCII形式,并增加了一些辅助信息组成字符串,最终函数将字符串的首地址传回。 

    远程端短信发送模块只包括1个短信发送函数,首先函数通过AT+CMGF=1指令设置短信格式,然后用AT+CMGS指令来发送短信。函数的两个形参指针分别指向收信人电话号码和短信内容。 

    远程端电机模块包括电机模块初始化函数(void init_MotorPort( ))和电机工作函数(void SetPWM(int value)),与ADC的初始化函数相同,电机模块初始化函数在系统主函数中被调用。电机工作函数唯一的任务就是启动电机,其中形参(int value)控制电机转动的速度,如果它为0,即实现了电机的停止功能。 

2.2 用户端程序设计 

    用户端主要由用户在PC机的Linux操作系统下控制,它的主要功能就是短信的收发和阅读。本系统用户端程序设计流程图如图3所示。 

 

 

    程序开始后,首先初始化串口,使PC机和嵌入式系统联系起来,以便用户可以在PC机上操作;然后打印提示信息,此时用户可以根据屏幕上的信息进行操作。用户可选的功能有3种:“1”代表发送短信息,“2”代表阅读接收到的短信息,“3”代表退出整个工作环境。 

    当用户在键盘上键入“1”后,系统会进入发短信的模式,用户只需根据屏幕上的信息输入电话号码和短信内容就可成功发送短信到远程端;当用户键入“2”后,系统会进入读短信的模式,此时屏幕上会显示出所收短信的内容;当用户键入“3”后,屏幕上显示结束语,系统退出工作环境,并关闭串口;如果用户再键入“1”或“2”,则当程序运行完发送短信子程序或读短信子程序后,系统会自动回到功能选择提示信息,等待用户选择。 

    用户端短信发送模块程序在Linux操作系统下运行。它与远程端的短信发送函数的不同之处在于此信息的电话号码和内容均需要用户键入,所以多了一个采集键值的过程。 

    用户端阅读短信模块用于用户阅读接收到的短信息。AT+CMGL指令用于列出SIM卡中的短信息。其中信息有五种情况:未读(REC UNREAD)、已读(REC READ)、待发(STO UNSENT)、已发(STO SENT)和全部(ALL)。本程序中使用了全部(ALL),当用户选择此功能时,屏幕上会列出所有接收到的短信息。 

    系统调试时,将2张不同的SIM卡装入远程端和用户端的GPRS模块;安装远程端的驱动程序,烧写μC/OS-II操作系统,配置用户端PC机上的Linux RedHat 9.0;给用户端的嵌入式系统开发板烧制bootloader、armLinux内核,并建立文件系统。将远程端的应用程序,编译后发送到远程端的嵌入式开发板上,运行程序。在用户端,把设计好的应用程序复制到/nfs文件,使用交叉编译的方法编译用户端的应用程序。至此,系统的软硬件已经配置好,随时可以使用。经过调试与检测,系统各项功能均已满足设计要求,可以正常使用了。 

    该系统具有如下特点:(1)自主性强:用户可根据自己的需求随时查询;(2)实时性强:本系统没有过多造成延时的因素,几秒内就能将采集好的电量数据传送回用户端,使用户能够了解到实时的电量值;(3)费用低:因GPRS采用的是“按数据流量计费”的原则;(4)速率快:目前的GPRS技术是基于GSM公用无线网的2.5代无线传输手段。理论上最高速率可达170 kb/s。目前国内只开通了4个通道中的1个。因此,当前可用的实际速率为34 Kb/s左右。尽管如此, 这一速率也比当前有线电话网上的电量采集系统的通讯速率高出许多;(5)结构小巧:本系统充分利用了嵌入式系统功耗低、体积小的优点,用户端经过改造甚至可以成为一种供野外监控人员使用的手持设备。 

参考文献 

[1] 桑楠.嵌入式系统原理及应用开发技术(第2版)[M].北京:高等教育出版社,2008. 

[2] 李可,刘跃,周新志.基于ARM和GPRS网络的水情信息系统设计[J].电子技术应用,2007,33(12):130-133.  

[3] 葛纫秋,韩宇龙.嵌入式系统设计[M].北京:高等教育出版社,2008. 

[4] 施威铭研究室.Linux命令详解词典[M].北京:机械工业出版社,2008. 

[5] ARM. ARM920T technical reference manual[DB/OL].www.arm.com,2008. 

[6] Umsung Electtonics. S3C2410X 32-bit RISC microprocessor user’s manual[DB/OL].www.hhcn.org,2008.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。