新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于ARM的Ad Hoc网络平台的实现

基于ARM的Ad Hoc网络平台的实现

作者:时间:2011-08-29来源:网络收藏

功能概述

本文引用地址:http://www.eepw.com.cn/article/155828.htm

  由于 网络无中心、动态拓扑等特点,它需要各个节点都具有路由转发功能。本文开发的 网络节点通过在平台上移植路由协议而了数据包转发功能。

  

  图1 节点转发

  以图1所示的网络进行功能示意,其中A、B、D是普通的移动电脑终端,C是本文开发的平台。A和D是通信的端点,D不在A的一跳范围之内(A的覆盖范围如图中虚线所示)。假设开始时B成为了A和D的中继节点,完成A、D之间的数据转发功能。当B节点出现故障时,C能自动代替B成为新的中继节点,维持A、D之间的通信。

  该平台除了路由协议以外,同时完成了ftp、iptables等工具的移植,还可以继续增添语音、视频等服务。

  硬件平台

  以处理器为核心,无线网卡收到数据包后交给上层处理,需要发出的数据包也由处理器控制无线网卡来发出。当然SDRAM、闪存、电源这些模块也是系统不可缺少的。

  本文采用ARM920T为内核的三星处理器S3C2410A。S3C2410A 是32位低功耗RISC处理器,同时支持Thumb 16位压缩指令集,其工作频率为203MHz。S3C2410A有292个管脚,集成了许多片上功能,例如以太网控制器、UART控制器、可编程I/O口及中断控制器等。

  考虑到接口体积,该平台选用USB接口的华硕WL-167g无线网卡,提供无线通信功能。

  硬件平台设计结构如图2所示。

  

基于ARM的Ad Hoc网络平台结构

  图2 硬件平台结构图

  在硬件调试中一个应该注意的问题就是S3C2410A的nWait引脚在不使用时应接上拉电阻,否则系统在启动模式时将不能正常启动。

  软件平台

  vivi是韩国MIZI公司开发的Bootloader,适用于ARM9处理器,其作用是初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置成一个合适的状态,以便为运行操作系统准备正确的环境。引导程序执行完后会将控制权交给内核(zImage),内核是操作系统的核心,内核需要的各种配置文件、数据及上层软件都存放在根文件系统之中。整个软件平台的结构如图3所示。

  

  图3 软件平台示意图

  内核镜像的生成

  这里不赘述内核生成方法,需要注意此过程容易遇到三类错误:一是编译出错,应该检查库文件是否齐全,另外gcc版本太高也会导致编译错误,重新安装低版本gcc后即可解决;二是内核配置应将Default kernel command string设置为noinitrd root=/dev/mtdblock3 console=ttySAC0,115200 init=/linuxrc,“console=ttySAC0,115200”使内核启动期间的信息全部输出到串口0上,波特率为115200,“mtdblock3”代表第4个Nand闪存分区,该分区为根文件系统,init是指定启动脚本,“init=/linuxrc”表示启动初始化文件位置;三是应该在drivers/mtd/nand/s3c2410.c中,设置NAND_ECC_SOFT = NAND_ECC_NONE,这样就关闭了ECC校验。因为内核是通过vivi写到Nand闪存中的,vivi使用的软件ECC算法与内核中校验算法不同。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭