2 网关硬件设计方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 网关硬件设计方案
2. 1 微处理器
在整个网关中, 无线传感器网络网关负责
ZigBee 网络和GPRS 网络的数据传输,同时还负责ZigBee 网络的组建、节点的加入和删除等网络维护工作,需要较强的处理能力。

因此,主控芯片采用了SAMSUN G公司的S3C2410 微处理器。

S3C2410
是基于ARM920 T 内核[5 ] 、具有3 通道的UART , 可以方便地与ZigBee 模块和GPRS 模块通信,并且支持嵌入裁剪后的Linux 操作系统,可以方便地对PPP 拨号软件进行移植和配置。

2. 2 无线通信模块
在无线传感器网络中,节点的能量是有限的,因
此要采用一种节能的通信协议进行节点与节点之
间、节点与网关之间的通信。

本系统采用了Chipcon 公司生产的CC2430 芯片实现近距离通信
功能。

由于CC2430 已固化了ZigBee 协议栈,因此只需加上简单的外围电路即可构成网关的收发
模块。

远程通信的GPRS 模块采用了西门子公司生
产的MC35i ,其稳定性比较高。

在通信过程中,网
关通过RS232 串口将A T 指令和数据发送给
MC35i ,此后MC35i 开始登陆GPRS 网关,成功获
得IP 地址后便可以开始与远程监控中心通信,这样
就建立了网关同Internet 的通信链路。

2. 3 外扩存储器
CC2430 使用的是2. 4 GHz 的频段,最高传输
速率为250 kbit/ s ,而MC35i 理论最高上行速率为171. 2 kbit/ s ,因此,在实时传输数据时, GPRS 的上
行速率可能就成了整个网关传输数据的瓶颈。

当传
感器网络的数据量较大、而GPRS 又无法将这些数据全部发送出去时,系统要将未能发送出去的数据
放入缓冲区内,由系统统一管理数据,因此系统需要
外接存储器作为数据缓存来缓解传输速率不同所造
成的瓶颈。

另外,由于S3C2410 需配置Linux 操作
系统,它们都需要大量的内存,所以本系统外接了
64 MB的高速数据存储器作为整个系统的外扩
内存。

3 网关软件设计方案
本文提出的无线传感器网络网关的软件设计采
用典型的嵌入式软件结构, 共由3 层组成: Bootloader 、嵌入式Linux 操作系统、用户程序。

Bootloader 选用的是U2boot , 负责初始化硬件系统,设置内核参数并启动内核;嵌入式Linux 操作系
统是裁剪了的Linux 操作系统,且支持ARM 体系
结构,是网关上面应用软件的工作平台;用户程序的
主要工作是PPP 拨号软件包的移植和配置。

3. 1 系统软件的移植与配置
首先移植启动软件U2boot ,它是一款功能强大
的BootLoader ,可以直接支持基于S3C2410 的平
台,移植工作量相对较小,主要修改几个针对ARM
硬件相关的文件, 包括smdk2410. h 、flash. c 、
memsetup . c 、s3c2410. c 、Makefile 等5 个文件。


成文件修改以后, 通过交叉编译可生成U2boot .
bin ,下载至程序存储器即可引导操作系统启动了。

嵌入式Linux 操作系统的建立是基于U2Boot
实现的,它的建立实际上是Linux 内核在S3C2410
上移植的过程。

笔者针对嵌入式网关的特点,对
Linux 的内核进行了修改和重新编译,保留了Linux
操作系统强大的网络功能、高稳定性、支持丰富的文
件系统等特点。

嵌入式Linux 操作系统的建立主要
分3 个步骤:建立交叉编译环境、编译内核、生成并
配置根文件系统。

建立交叉编译环境的过程实际就是对交叉编译
器压缩包解包的过程,在交叉编译内核之前,对编译
选项的配置是很重要的。

执行“make menuconfig”
指令,进入System Type 选项选择对S3C2410 系统
板的支持,然后配置File System 以及Block device 。

保存配置后要修改Makefile 文件,即将交叉编译的
路径指定为本文中安装的特定目录,修改语句为:
CROSS _ Compile = / usr/ lo2cal/ arm _ cross/
3. 4. 1/ bin/ arm2 linux2 ,最后通过make dep 、make
clean 、make zImage 命令编译内核,得到内核压缩映
像zImage 。

3. 2 CC2430 的软件设计
各节点数据在CC2430 模块中的传输路径及其
过程如图2 所示。

图2 数据在CC2430 模块中的传输路径及其过程示意图
CC2430 从天线接收到无线信号通过内部一系
列的硬件处理,将信号转换为数据存放在接收缓冲
区中,通过直接内存读取方式送入数据存储区的低
128 B 中,再通过串口将接收到的数据传给网关或
其它模块。

DMA (直接内存存储) 向存储器写数据
2009 年第8 期何明星:基于ZigBee 与GPRS技术的无线传感器网络网关的设计·107·
流程如图3 所示。

图3 DMA 向存储器写数据流程图
3. 3 MC35i 的软件设计
通过GPRS 进行数据的传输需要经过Internet
网络的中转, 因而对传输数据的封装必须利用
TCP/ IP 协议。

需要传输的数据经过传输层UDP
协议头封装,然后是IP 协议头封装,最后进行PPP
协议封装。

经过封装传输到MC35i 的数据格式如
表1 所示。

表1 MC35i 的数据格式表
PPP 协议头IP 协议头UDP 协议头数据校验码
MC35i 将接收到的数据透明地传输到Internet
网络中。

通过Internet 网络路由器中转,最终将数
据传输到监控中心。

接收端对接收到的数据按照相
应的层次进行解析,从而确定数据的目标程序。

MC35i 的软件设计采用分层的结构,从底层到
上层分别为串口驱动层(物理层) 、PPP 协议层(链
路层) 、IP 协议层(网络层) 、UDP 协议和ICMP 层
(传输层) 以及应用层,通过在各层中建立相应功能的线程实现数据的封装。

底层软件为上层软件提供
函数支持,上层软件利用底层软件完成应用程序的
编写和实现。

软件采用自底向上的设计方法逐步实
现系统中各个函数的功能,各部分函数实现均采用
模块化的设计方法,每个任务对应1 个模块。


每个任务单独进行设计后,最终由Linux 操作系统
统一管理。

PPP 软件包工作于Linux 操作系统上, 控制
MC35i 完成网络接入工作, 其软件结构如图4
所示。

图4 PPP 软件结构图
PPP 拨号上网主要是通过调用pppd 和chat 这
2 个应用程序,并通过A T 指令实现。

PPP 上网拨号的命令列格式如下:
pppd[ tty_name ] [ speed] [options ]
< t ty_name > 表示在该设备上进行通信。

如果
需要的话可以前置一个“/ dev/ ”字串。

如果没有给
出设备名称,pppd 将会使用控制台的终端机。

< speed > 将串口通信的波特率设为speed 值。

chat 拨号文件可以放在系统的任何位置,该文
件可以由pppd 的选项指定chat 文件的位置,一般
都放在/ / etc/ ppp/ chat 中,具体内容如下:
AT
OK AT + CGDCONT = 1 ," IP" . "CMNET"
OK ATD 3 99 3 3 3 1 #
CONNECT
A T 就是表示发送字符串A T ,期望得到O K,
然后设置中国移动的GPRS 接入点为CMNET (移
动梦网) ,用A TD 3 99 3 3 3 1 # 拨号登陆到移动GGSN 网关,拨号后期望得到字符串CONNECT。

一切准备好以后,在终端中输入以下命令行:
# pppd/ dev/ ttyS1 19200 connect ’ / usrlsbinlchat - v - f / etc/
ppp/ chat’
运行pppd 后,利用PPP 拨号上网。

A T 命令模式是MC35i 一开始所处的模式,
S3C2410 向串口发送的所有数据都传给了MC35i 。

拨号成功后,应该在拨号信息中得到由服务器动态分配的IP 地址和DNS 地址。

3. 4 网关在线保持的解决方案
由于网络和信号较弱等原因,可能导致节点与GPRS 网络连接的失败。

采用基于状态机的结构设计方法对各个阶段产生的错误进行处理,能保障模块与GPRS 网络建立可靠连接。

GPRS 网络连接任务状态机设计流程如图5 所示。

图。

相关文档
最新文档