下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于GPRS modem的嵌入式Internet的实现肖春华1,2,张洪涛1, 李秀红3,2,孙忠富2,宋子凯1 ,李金学1 (1湖北工业大学电气与电子工程学院 武汉 4300682 中国农业科学院农业环境与可持续发展研究所 北京 1000813 武汉大学电子信息学院 武汉 430079 ) 摘 要:本文根据现代信息农业的发展需求,在嵌入式无线远程环境监测系统的研究的基础之上,成功地完成了GPRSmodem的internet接入。远端基于ARM的嵌入式模块在C/OS-II操作系统的调度下实现信号的采集,在通过串口与模块相连的GPRSmodem与Internet建立连接后,将数据发送到现场服务
2、器,从而完成了底层的采集与发送。 关键字:嵌入式系统;GPRS modem;C/OS-II;AT指令;Implementation of embeded Internet based on GPRS modemXIAO Chun-hua 1,2, ZHANG Hong-tao 1, LI Xiu-hong 3,2, SUN Zhong-fu 2, SONG Zi-kai 1, LI Jin-xue 1(1 School of Electrical and Electronic Engineering, HBUT, Wuhan, 430068, China;2 Institute of Envi
3、ronment and Development in Agriculture, CAAS, Beijing 100081,China;3 School of Electronics and Information, Wuhan University, Wuhan 430079,China)Abstract: According to the need of the modern information agriculture, this article illustrated a successful connection method between GPRS modem and Inter
4、net based on the wireless system and remote environment monitor. Due to C/OS-II double task of the ARM7 embedded machine, the remote data monitored is able to be collected. The GPRS modem is connected with ARM embedded machine by their ports, GPRS modem sends the data to the local web server when co
5、nnected with Internet .Then the collection of Information could well finished.Key words:Embeded system; GPRS modem; C/OS-II;AT commands0. 概述无线通讯模块GPRS用于数据接入有着传输速率高、接入范围广、接入时间短、提供实时在线功能和按流量计费等优点1 2,同时随着GPRS技术在无线通信领域应用的不断拓展和深入,GPRS modem作为GPRS在Internet的PC机终端已经得到了广泛的应用。本课题组研制的“嵌入式无线远程环境监测系统”就成功的利用了这个技术
6、,下面将详细介绍GPRS modem接入Internet进行数据传输,从而实现了底层的采集与上层的网络发布的连接。1 GPRS接入Internet的系统设计 图1 GPRS接入Internet系统模型中图分类号:TP391 文献标识码:A 基金项目:教育部重点科技项目(206095), 湖北省教育厅重点项目(D200614002).作者简介: 肖春华,男,(1981-),湖北松滋人,硕士研究生,研究方向:嵌入式系统 Author brief introduction: 通讯地址:湖北工业大学电气与电子工程学院#926信箱。邮编:430068EMAIL:本系统采用的是WAVECOM GPRS m
7、odem,这是一款内嵌TCP/IP/PPP协议的无线传输模块,无须在ARM板内移植通讯协议,极大的缩短了开发周期。它适用于在GSM网络下实现各种无线业务,其中主要包括电话、短信、GPRS无线上网等业务。图1为GPRS接入Internet的系统模型,GPRS modem将底层电路板采集到的信息以无线传输方式发送出去,通过无线网络供应商转送到Internet,经由Internet最终进入数据处理中心。底层核心板为本课题组自行研制,是一款以ARM7芯片LPC2210为核心处理器,有16KB片内静态RAM,通过外部存储器接口可将外部存储器配置成4组,每组的容量高达16Mb,满足C/OS-II移植要求。
8、本硬件设计有两个通用的九针232输入/输出串口,一个串口GPRS modem连接,另外一个串口通过转接器与传感器组相连实现数据的采集。在GPRS的接入Internet并与远程的服务器接收端连接的设计中,关键的设计有三个方面,一是底层ARM板将数据通过串口发送到与之相连的GPRS modem上,二是在ARM CPU中移植嵌入式适时操作系统C/OS-II,并在操作系统下实现任务的建立,三是在C/OS-II下用AT指令实现GPRS modem与网络的连接。2 C/OS-II操作系统的移植与任务的建立2.1操作系统的移植 移植3 5工作主要针对三个与处理器相关的文件进行修改,使之与处理器相适合,即:C
9、语言文件OS_CPUH,OS_CPU_CC和汇编文件OS_CPU_AASM。(1)0S_CPU.H 编译器相关数据类型的设定:用#define语句定义两个宏开关中断定义堆栈方向(从上向下递增):#define OS_STK_GROWTH 1 OS_TASK_SW()、OSCtxSw ()的移植:#define OS_TASK_SW() OSCtxSw ()C/OS-II从低优先级任务切换到高优先级任务时,通过执行OS_TASK_SW()仿中断的产生。中断服务子程序的中断向量地址指向汇编语言函数OSCtxSw()。(2)修改OS_CPU_CCOS_CPU_CC文件中需要用户定义6个C语言函数:O
10、STaskStklnit(),OSSTaskCreateHook(),OSTaskDelHook(),OS_TaskSwHook(),OSTaskStatHook(),OSTimeTickHook()。实际必须定义的只有OSTaskStklnit()函数,其它5个函数需要声明,但可以不加代码,但要将OS_CFGH中的OS_CPU_HOOKS_EN设为0。(3)修改OS_CPU_AASMOS_CPU_AASM中要改写四个汇编语言函数:OSStarHighRdy(),OSCtxSw() 2.2任务的建立4C/OS-II是多任务嵌入式RTOS,最多可添加64个不同的任务6,可以很好的满足系统设计的要
11、求,在C/OS-II下可以采用模块化设计,这样不同的任务的添加变得非常简单,同时极大的减小了编程的难度,增加了程序的可读性。基于此,在设计时将GPRS与网络的连接和信息的发送分成两个不同的任务建立,在任务的建立时首先要给任务定义自己的堆栈,由于系统中还有流水灯和多组传感器的采集,因此在设计时暂将GPRS的连接和数据的发送分别作为第四、第五个任务来编写。OS_STKTaskStk4 TaskStkLengh;/ 定义Task4的堆栈OS_STKTaskStk5 TaskStkLengh;/ 定义Task5的堆栈void gprslianjie(void*pdata); / Task4 任务4vo
12、id shujufasong(void*pdata); / Task5 任务5OS_EVENT *USEPORTMutex;int main (void) OSInit (); /操作系统的初始化OSTaskCreate (gprslianjie,(void *)0, &TaskStk4TaskStkLengh - 1,7);/建立GPRS与网络连接的任务,任务名为gprslianjie OSTaskCreate (shujufasong,(void *)0, &TaskStk5TaskStkLengh - 1,8);/建立数据发送的任务,任务名为shujufasongUSEP
13、ORTMutex=OSMutexCreate(2,&err);OSStart ();return 0;因为GPRS与网络连接是本系统建立的第五个任务,所以定义时用TaskStk4表示它的堆栈名,由于设计时本着先采集再连接发送的思想,而且数据要按照一定的顺序定时发送,另外,还要避免资源的共享与冲突的出现,于是建立了互斥型信号量加以控制,并且数据发送任务的优先级要低于GPRS连接的优先级。其中阿拉伯数字7、8分别代表任务的优先级,需要指出的是数字越小,优先级别越高。这样一来GPRS与网络连接的任务就在C/OS-II中建立了。3 GPRS modem的AT指令的介绍限于篇幅,在本文中只介绍G
14、PRS modem接入Internet和与服务器连接的必要指令,按照接入网络时需要发送AT指令的顺序介绍。(1)AT,测试GPRS modem是否于ARM板连接好,正常时返回OK;(2)AT+CGCLASS=”B”,设置模块工作类型为B,正常时返回OK;(3)AT+CGDCONT=1,”IP”,”CMNET”,上网设置,只有开通GPRS功能的SIM卡可以使用,设置成功后返回OK;(4)AT+WOPEN=1,激活Q2406B中的TCP/IP协议栈,成功时返回OK;(5)AT+CGATT=1,GPRS附着到网络,成功后返回OK;(6)at#connectionstart,模块中封装的TCP/IP栈
15、拨号并启动GPRS连接,成功后返回网关随机分配IP地址。OK_Info_GprsActivation (7),设置上位机(TCP server)的IP地址,成功后返回OK;(8)at#tcpport=1,"1433",设置上位机与Q2406B间的通讯端口,这需与服务器端正侦听的端口相同。成功后返回OK;(9)at#otcp=1,开启与上位机的通讯,成功后返回Ok_Info_WaitingForData从而进入等待输入数据的状态。 通过这九步的成功设置后GPRS modem就成功的与远程的服务器之间建立了连接,进入了数据的通讯状态。值得注意的是在编写程序过程中,在定义AT指令
16、时,一条完整的AT指令可以用大写英文字符定义,也可以用小写的英文字符定义,但如果是在同一条指令中英文字符的大小写要一致。另外一点就是引号不能够省略,也不能够写成文本编辑状态下的双引号,否则GPRS modem不予辨别,如输入AT#tcpport=1,"1433"、at#tcpport=1,1143、at#tcpport=1,“1433” 等,通过串口返回的将都会是ERROR。 4软件编程注意事项及流程图 由于通过GPRS modem实现通过无线网络与远程服务器的连接存在不稳定和掉线等情况,如当时所在地区GPRS网络不稳定。因此在编写程序的时候做了以下的 一些处理,以保证系统
17、的连接和通讯处于正常和规范的状态。(1)建立TCP连接的过程中要考虑到每一步可能会出现的错误,比如设备没有连接好、网络信号质量不高引起连接失败等,因此在程序设计的时候要做到两点,一是在modem依附到网络、启动GPRS连接以及开启与上位机的通讯等过程中从发送指令到接收指令之间要有一定的等待时间;二是所有的步骤中,需要判断从串口返回的字符串是不是表示ERROR,如果是则再发送一次该指令,再次对返回的字符串进行判断,如果显示操作成功则进入下一步,否则第三次发送该指令,第三次判断后如果还是显示操作失败则放弃本次TCP/IP的连接。 (2)由于两次发送数据之间有一定的时间间隔,在此期间也有可能因为一些
18、因素造成连接关闭,因此在程序的编写过程中笔者采用每发送一次数据后自动让连接关闭,下次要发送数据时从新进行TCP的连接的机制。这样就避免了数据采集成功而发送不成功的隐患的出现。 图2为软件实现的流程图。 图2 GPRS接入Internet软件实现流程图4 软件的实现char str4="AT+CGATT=1r" char str5="at#connectionstartr"char *test="K" char strget100;char str8="at#otcp=1r" /部分字符串的定义void gprsli
19、anjie(void *pdata) /Q2406B接入Internet的任务 。while (1)。 uart1_sendstr(str4); /进入TCP连接的第五步 OSTimeDly(OS_TICKS_PER_SEC*6); /延时等待串口返回数据 uart1_getstr( strget,16); /串口1接收Q2406B返回的字符串value=strstr(strget,test); /判断返回字符串中是否有“OK“,有表示连接成功 if(value != NULL) /第一次连接如果成功 uart1_sendstr(str5); /进入下一步 U1FCR=0X07; /串口要及时清空,避免出现乱码 else if(value = NULL)/第二次连接及判断 。else /第二次连接不成功则再次发送该指令 。else OSTimeDly(OS_TICKS_PER_SEC); /三次判断后连接不成功则进行任务的下一次调度,退出本次连接 。void shujufasong(void *pdata) 。 while (1) OSMutexPend(USEPORTMutex,0,&err);/等待互斥性信号量uart1_sendstr(data);/data为采集到的数据,按照接收软件及数据库定义的格式定义 。uart1_sendstr(str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资产清查工作审计方案(3篇)
- 新学期开学主题班会策划方案(2篇)
- 春节后复工复产验收实施方案模版(2篇)
- 亲子春游活动方案例文(2篇)
- 医疗责任保险工作方案模版(2篇)
- 双结对实施方案例文(3篇)
- 中秋节国庆节超市促销活动方案(三篇)
- 小学主题班会方案范例(三篇)
- 防护棚搭设方案(3篇)
- 关于清除街道乱写乱画活动实施方案样本(5篇)
- 成人肠造口护理-2019中华护理学会团体标准
- 森林防火智能监测预警指挥系统建设方案-
- 内蒙古自治区呼和浩特市单招综合素质真题(含答案)
- 2023学年完整公开课版冰粉的制作
- 高中美术 主题一 实体与虚空-凝固的音乐-课件
- GB/T 36344-2018信息技术数据质量评价指标
- GB/T 15856.2-2002十字槽沉头自钻自攻螺钉
- 物业管理有限公司组织架构图
- GA 261-2009警服男春秋、冬常服
- 第三节词本义和引申义
- jgj t17-2008蒸压加气混凝土建筑应用技术
评论
0/150
提交评论