首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于Linux2.6.24内核的WSN多频段网关设计 02

基于Linux2.6.24内核的WSN多频段网关设计 02

欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入



2.2 3G网络接入接口部分
        
3G网络接入部分采用USB接口的华为ET128无线网卡。接入接口使用USB—HUB芯片AU9254A21,它是一款单芯片USB集线器控制器。AU92 54A21采用12MHz无源晶振,为芯片工作提供独立的时钟。3G网络接入部分接口电路如图4所示。

   
    2.3 以太网接入部分
        
网关通过以太网口发送数据包的原理是:处理器先将待发送的数据存入到内部存储器,提供发送缓冲区的首地址和数据长度,然后执行发送命令,由DM9000A将数据按TCP/IP协议格式发送到物理链路上。
        因以太网信号电平与以太网控制器信号电平不同,所以在硬件电路实现上需要在控制器与RJ-45接口间增加一个网络变压器,网络变压器
    采用TRC9016。
        电信号通过网络变压器转换,然后经RJ-45接口接入以太网,从而完成数据发送过程。DM9000A主要完成数据包和数字电信号之间的相互转换。
   
    3 网关软件系统设计
        
网关的软件环境采用的是嵌入式Linux系统。移植好的Linux2.6.24源码已经包含了以太网控制器DM9000A、USB接口芯片等芯片的驱动。因此,软件部分只需要设计串口扩展芯片TL1 6C554A的驱动程序以及Linux环境下的应用程序即可。
    3.1 串口扩展芯片TL16C554A驱动的实现
        
Linux2.6.24内核提供了统一的设备驱动模型。多串口设备驱动的注册,流程如图5所示。

   
    3.2 Linux下PPP的管理和配置
        
根据网关硬件接口的情况修改、移植通用驱动代码后,通过相关的配置,定制和编译网关所需的内核映像文件。内核编译采用的交叉编译器版本为arm-linux-gcc3.4.1,使用makemenuconfig ARCH=arm命令进入内核配置图形化界面,选择和PPP(Point-to-Point,点对点协议)有关的选项,添加系统对PPP功能的支持。界面如图6所示。配置完成以后,保存设置,退出内核配置图形化界面。使用命令:makeuImage ARCH=arm CROSS_COMPILE=arm-linux-.编译完成以后,会在源码包的arch/arm/boot路径下生成内核映像文件uImage,如图7所示。




3.3 嵌入式Linux网络编程
        
本设计中通过TD—SCDMA网络接入Internet。WSN子网的某一节点在上电后,网关分配给其一个1 6位的短地址,使其在子网中标识自己,然后周期性地发送其采集到的数据。网关收到传感器节点传送过来的数据之后,进行IEEE 802.15.4协议与以太网协议的转换,为了向网络设备提供透明的接口和区分串口数据的来源,需要制定统一的数据帧格式,所以协议转换后加上slip的帧头,通过串口设备发送给arm
        arm在解析了slip帧头之后交给上层以及MAC层,解析以太网头,然后上交给适配层,适配层将对完整的IPv6数据进行压缩或者分片。数据在IPv6层根据邻居发现,找到要发送的网络,并且进行路由转发,经过在MAC层加上相应的MAC头后,经TD模块发送到TD—SCDMA通信网。这样,从子网到TD网络的数据转发结束。
    3.3.1 PPP协议简介
        
PPP是一种提供两个实体之间数据包传输的链路连接设计的链路层协议。这种链路具有全双工操作、实现流量和差错控制等功能,并按照顺序传递数据包。可以通过拨号或者专线方式,让客户端和服务端建立起一种点对点的连接,传递数据。
    3.3.2 建立拨号连接
        
在Linux系统中,通过PPP可以将主机与一个PPP服务器连接并进入该服务器所连接的网络资源,就好像直接连上那个网络一样。建立一个PPP连接上网主要有以下步骤:第一步是调用会话程序。然后会话程序通过发送AT指令给3G模块,完成拨号、身份验证、配置等工作。最后,客户端的pppd程序与服务器端的pppd程序进行握手,建立好连接,相互传递数据。多频段网关建立网络连接流程图如图8所示。

   
    3.4 应用程序的设计
        
由于数据来源于4个频段子网汇聚节点的串口,因此网关的应用程序采集多频段子网汇聚节点数据部分设计上采用Linux系统中的多设备读取机制select(I/O多工机制)来实现对多个串口的监听。多串口采集数据的流程如图9所示。
返回列表