没有合适的资源?快使用搜索试试~ 我知道了~
首页基于单片机的GPRS无线通信协议
基于单片机的GPRS无线通信协议

基于单片机和网络技术的GPRS 无线数据终端, 它采用嵌入式结构, 通过把 PPP 和TCP/IP 协议移植到单片机系统中, 实现串口和GPRS 之间的数据透明传输
资源详情
资源评论
资源推荐

1
引言
GPRS
技术现在已经非常成熟, 具有覆盖
范围广、接入 速 度 快 、使用成本低和永远在线
等特点
[3]
。因此, 采用
GPRS
方式是一种可行的
单片机无线上网方案。
2
设计方案
2.1
硬件部分的设计方案
硬 件 部 分 包 括 单 片 机
(
W77E58
) 、
GPRS
模块(
MC39i
) 、
SIM
卡插座、电源系统、外部数
据存储器
[2]
和接口电路等, 如图
1
。
图
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- ),
男
,
工程师
,
研究方
向为自动化仪表。
基于单片机的 GPRS 无线通信协议
祁国梁
(
山东省科学院海洋仪器仪表研究所, 青岛
266001
)
摘要: 本文介绍了一种基于单片机和网络技术的
GPRS
无线数据终端, 它采用嵌入式结构, 通过把
PPP
和
TCP/IP
协议移植到单片机系统中, 实现串口和
GPRS
之间的数据透明传输。详细介绍了
W77E58
单片机和
GPRS
模块
MC39i
的硬件接口以及软件设计。
关键词:
GPRS
; 单片机; 透明传输
Telecom and Internet
无线互联
32

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论4