基于单片机的GPRS无线通信协议

来源 :网络与信息 | 被引量 : 0次 | 上传用户:liming10060651088
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1 引言
  
  GPRS技术现在已经非常成熟,具有覆盖范围广、接入速度快、使用成本低和永远在线等特点[3]。因此,采用GPRS方式是一种可行的单片机无线上网方案。
  
  2 设计方案
  
  2.1硬件部分的设计方案
  硬件部分包括单片机(W77E58)、GPRS模块(MC39i)、SIM卡插座、电源系统、外部数据存储器[2]和接口电路等,如图1。
  


  
  2.1.1 单片机W77E58
  单片机采用具有51单片机内核的增强型单片机W77E58。该芯片运行速度快,时钟频率是普通单片机的3倍。具有32K FLASH程序存储器,256字节内部RAM和1024字节片上SRAM,同时支持双串口。是一款非常适合开发嵌入式TCP/IP协议栈的单片机。它控制GPRS模块接收和发送数据,并且通过RS232接口与数据采集终端进行数据交换。从而实现了串口和GPRS网络之间数据的透明传输。
  2.1.2 GPRS模块MC39i
  MC39i采用工业级设计,性能稳定,价格便宜,性价比极高。在执行GPRS上网的PPP协议之前,首先要通过AT指令对MC39i进行设置:
  (1)波特率:使用AT+IPR=57600命令,设置波特率为57600bps,然后用AT&W保存设置。
  (2)PDP上下文: AT+CGD CONT=1,“IP”,“CMNET”。
  (3)拨号:格式为“ATD *99***1#”,如果拨号成功,会收到PPP报文,此时就可以进行PPP协商了。如果返回NO CARRIER则意味着拨号失败,应检查SIM卡是否开通GPRS业务,天线是否安装正确等问题。
  2.2 软件部分的设计方案
  软件部分包括网络协议、GPRS模块驱动程序以及串口透传程序。软件中所有代码都用C语言编写[1],在Keil环境中编译。
  2.2.1 网络协议
  为了使资源相对较少的单片机能够接入互联网,我们对复杂的网络协议栈进行了简化,主要包括链路层、网络层、传输层和应用层。
  (1)链路层PPP协议。PPP协议是一种被广泛使用的链路层协议,由链路控制协议LCP和网络控制协议NCP组成。通过PPP协议,通信双方可以协商数据报大小、认证方式、链路质量等。
  (2)网络层IP协议。IP协议是协议栈的核心部分,所有上层数据报文,包括TCP、DNS报文都是以IP报封装传输的。
  (3)传输层TCP协议。TCP是一种面向连接的数据传输服务,通过复杂的机制保证了传输的可靠性,并且连接建立和断开有严格的步骤,报文在传输过程中有超时重传机制。
  (4)应用层DNS协议。DNS协议应用于域名解析,当服务器端采用动态IP的接入方式时,通过DNS协议可以解析出服务器当前的IP地址。
  2.2.2 GPRS模块的驱动程序
  单片机通过串口和GPRS模块交换数据,所以首先要编写串口驱动程序,包括串口初始化(Init_Comm)、写串口数据(PrintChar)等函数。读串口数据是通过中断来完成的。由于篇幅所限,只给出串口初始化的代码:
  void Init_Comm (void)
  {
  TMOD=TMOD&0x0F;
  TMOD=TMOD|0x20; //定时器1采用方式2,用于产生串口1的波特率
  TL1=0xFD,TH1=0xFD; //32MHz-
  57600bps
  WDCON=0x80; //SMOD1=1 SCON1=0x50;// 串口1采用方式1
  TR1=1; //启动定时器1*/
  }
  在这些串口函数的基础上编写GPRS模块的驱动函数。单片机通过AT命令进行拨号后,GPRS模块就转入在线模式,此时通过PPP协议取得一个IP地址,就可以连接到互联网了。
  2.2.3 透明传输驱动程序
  当单片机通过GPRS模块连接到互联网以后,就可以通过TCP协议与远程服务器进行数据通信了。此时用户通过串口向单片机发送的数据都透明地传送给了远程服务器,同样服务器发过来的数据也通过串口传给用户。由于接收缓冲区空间有限,为了实现大数据量的透明传输,采用了特殊的双指针方法,一个读指针,一个写指针,采用循环读写的方式,如果读写到缓冲区末尾,则返回缓冲区头。当接收到数据后,写指针就把数据写入缓冲区。而读指针不断地扫描缓冲区,一旦发现新数据,就马上读走,腾出空间接收新数据。只要读写指针不重合,就说明缓冲区没有被填满。如此循环往复,就可以利用有限的数据缓冲区实现大量数据透传。
  
  3 结论
  
  本文讨论了一种以8位高速单片机为核心处理器,嵌入了TCP/IP协议栈的GPRS无线数据终端。具有电路简单,成本低廉等优点。终端通过RS232接口与外部控制系统相连,采用透明传输的方式,无需任何协议即可与用户设备相互通信,具有很强的通用性。软件全部采用C51语言编写,稍加改动即可应用到其它控制系统上,可移植性强。
  
  参考文献
  [1]马忠梅,等.单片机的C语言应用程序设计.北京航空航天大学出版社,1999,1.
  [2]何力民.单片机应用技术选编(二). 北京航空航天大学出版社,1994,5.
  [3]钟章队,等.GPRS通用分组无线业务.北京人民邮电出版社,2001,12.
  ——————————
  作者简介:祁国梁(1971-),男,工程师, 研究方向为自动化仪表。
其他文献
可能最近越来越多的人发现自己的QQ号码经常出现异常情况,有的甚至被盗。告诉你吧,这是因为你的号码已经被黑客光顾过!   据悉有两个黑客,他们每天光顾的号码高达2000万之多。但是黑客一般只对自己有用的号码下手。下面列举两类:   第一,有Q币、游戏币的QQ号。他们会将里面的Q币兑换成游戏币,然后利用双开外挂都转到他们自己的号码上。大家会问,为什么这样做呢?因为单独Q币是不能赠送的,而游戏币则可以转
期刊
Adobe Systems在近日于芝加哥举办的Max 2007开发者大会中,详细介绍了若干进行中的开发计划和产品,及该公司将如何利用在线服务创造更多盈利。   首席软件工程师Kevin Lynch在演讲中宣布,Adobe已收购了在线字处理软件Buzzword,并展示出若干由伙伴制作、利用AIR(Adobe Runtime Environment)开发的应用软件。目前仍属测试阶段的AIR是一种可供在
期刊
处理器的迅驰笔记本都是Santa Rosa平台的,比如有不少采用Core 2 Duo T5500和T7200处理器的笔记本实际上是Napa Refresh平台的。  另外一点需要说明的是,虽然Merom核心的Core 2 Duo处理器使用在Napa Refresh平台上,但其规格和最新的Santa Rosa平台上的Merom处理器还是有区别的。第一个是硬件接口上的区别。Napa平台的接口是Sock
期刊
近日,Linux之父、芬兰人李纳斯·托沃兹发布了Linux开源操作系统的最新版内核。   据国外媒体报道,托沃兹在Linux内核邮件列表发帖表示,由于部分小补丁的原因,新版本内核发布稍稍推迟,但“并不是什么大的原因”。Linux2.6.23包括许多技术改进的成份,比如对Sun微系统公司的64位Sparc芯片及Analog Devices内嵌的Blackfin处理器提供支持,这些改进也是开发者一直期
期刊
1 引言    近年来,我国电子政务建设取得巨大成就,很多政府机关都建立了局域网。自2000年1月1日起施行的《计算机信息系统国际联网保密管理规定》第六条明确规定涉及国家秘密的计算机信息系统,不得直接或间接地与国际互联网或其他公共信息网络相联接,必须实行物理隔离。根据这一规定,许多党政机关的办公局域网都与互联网等外部网络实行了物理隔离,这些局域网内的计算机就不能联接到互联网进行操作系统更新,造成计
期刊
最近看到几个网友由于不熟悉市场价格,购买的本本大幅高于了市场零售价,在论坛后悔莫及,本人深表同情,但是看到更多的是我们POP论坛的兄弟姐妹成功智斗JS的购机经历,忽然想到,难道买个笔记本就要这么复杂,没有非常深入地了解就不能下手了?可以说不是我们不机灵,而是JS太狡猾。   为了方便大家更轻松地买本,故写下10招给大家参考。    1.微步凌波     在我们购买本本前,最有效最省时的办法就是来z
期刊
当你常去的论坛上有个 Flash 广告,而你每次刷新页面的时候它都会从头播放,会不会感觉很烦? 所以我们要改装一下这个Flash,给它植入记忆功能。    要实现的效果:  刷新或关闭页面的时候记住上次的播放位置;  下一次打开页面时,动画接着上一次的位置继续播放。    应用效果:可以看经典论坛的 Banner 广告。    实现代码如下(发布成AS1/AS2):  var deng = Sha
期刊
在网页制作过程中,也许我们会遇到这样的情况,当我们的大量网页已经完成,却发现它们都有一个共同错误需要修改。这时候不可能完全依靠手工去更改了,怎么办呢?利用Dreamweaver中的查找和替换功能就能帮助你快速而准确地完成修改。   大家都使用过Word等软件的查找和替换功能,Dreamweaver的查找和替换功能与那些软件的查找和替换的用法相似,但功能更强大。在它的查找和替换对话框中甚至可以用精确
期刊
1 引言    网络故障管理是网络管理的一个重要组成部分。故障管理的有效与否和功能强弱直接关系到被管理网络的可用性和可靠性。传统的基于SNMP的网络故障管理模型是以Client/ Server 技术为核心的集中故障管理方式。它通过不断轮询被管对象 Agents (Servers) 和接收 Agents 的报告(Trap)两种机制获得故障信息。该机制主要存在两个方面的问题:(1) 缺乏灵活性、可扩展
期刊
eMule服务器资源丰富,内容繁多,我们想找的资源几乎都能找到,所以使用eMule(电驴)下载的用户很多。下面给大家介绍两款小软件,用它们可以让电驴下载更加得心应手,速度更加快。     eMule(电驴)资源更新提前知    一般我们通常使用VeryCD进行eMule(电驴)下载。而在VeryCD上寻找资源,就必须去到VeryCD网站上查看,尤其是在进行下载较新的动画片、电影、电视剧时。由于这些
期刊