基于嵌入式Linux系统平台的传感器网络系统设计与实现

控制/MCU

1811人已加入

描述

O 引言

    随着嵌入式系统与通信技术的不断发展,各种嵌入式设备正在以不同形式改变着人们的日常生活,ARM技术作为嵌入式系统的主流技术,它己逐渐取代了单片机控制技术,使用ARM处理器对工业现场传感器传出的电流电压信号以及一些热工参数进行数据采集已经成为主流。
    本设计在基于嵌入式Linux系统平台上。实现一个基于ARM、Linux平台的传感器网络系统,完成数据的采集、处理、通讯、存储、查询和图形显示功能。

1 系统总体组成

    本设计采用将数据采集节点作为客户端,将采集得来数据通过TCP/IP协议传输到网关节点,由网关服务器存储数据,并转发。主控机可以通过CGI查询任—个客户端传感器数据,并对传感器进行控制。如图l所示。

传感器网络

1.1 节点的硬件组成
    考虑到各采集节点的完全独立性,前端设备采用嵌入式设计方法,其硬件组成结构如图2所示。

传感器网络

传感器节点作为客户端负责对数据采集,并通过模数转化将数据传输给网关节点。网关节点接受到数据后存入数据库。通过CGI响应PC机上的查询、控制。
1.2 数据的预处理
    节点数据的预处理,主要是检测采集的数据,对其进行合法过滤。按照既定协议,为数据分配数据头、间隔符、校验码,重新封装成数据流,采用TCP/IP协议,通过网络发送到主机。
1.3 数据的存储及传输
    存储器系统负责系统的静态存储与动态存储。其中flash用于静态存储,SDRAM用于动态存储。flash又分为norflash和nandflash。no-rflash支持直接启动用于存储程序代码,nandflash用于存储数据信息。SDRAM存储器速度快,主要作为程序的运行空间。
     采集节点作为客户端,将数据打包传输给网关节点,网关节点作为服务器,校验数据有效后,存入flash数据库中。通过CGI程序响应PC查询。

2 系统的软件设计

    系统的软件构成分为引导驱动程序、操作系统、文件系统和应用程序4部分,如图3所示,引导驱动程序在系统启动时进行内存重映射,将保存在Flash中的操作系统和应用程序重新映射到SDRAM中,为方便起见也可以配置好启动脚本。Linux内核版本为LinuX2.6。文件系统为Yaffs。包括模块、配置文件和库等。系统的应用程序建立在Linux内核、ADC字符驱动和文件系统之上,可动态加载。
 

传感器网络

 

3 节点配置

3.1 采集节点配置
    (1)配置S3C2410开发板的NFS Root启动方式。先把rootfs/目录下的srv目录删除,再把采集端发布包中的srv与node两个目录都拷贝到rootfs目录下。
    (2)以NFS方式启动S3C2410开发板,配置YAFFS文件系统。
    (3)在配置YAFFS文件系统的过程中,在mount-t yaffs/dev/mtdblock3/mnt这一步之后,增加以下步骤:
    cd/mnt
    rm-r srv
    cp-r/srv/node/mnt
    然后继续继续完成剩下的yaffs文件系统的配置步骤,最后注意一定要
    mount/mnt
    (4)配置采集端启动脚本
    vi/etc/init.d/rcS
    在里面httpd-h/srv/www一句之前增加以下内容:
    Ifconfig eth0 up
    Ifconfig eth0 192.168.0.25(注意:这里192.168.0.25是采集端开发板IP,各采集端IP不同,而且需要都在同一个网段上,我们统一选择网段192.168.0.*)。
    Ifconfig lo up
    mknod/dev/adc_char c 240 0
    cd/node
    Insmod ado.ko
    (5)重启S3C2410采集端开发板,进入vivi,配置paraset linux_cmd_line启动参数为从YAFFS启动。para save之后键入boot,启动开发板,把开发板接入网络中,从PC机上运行浏览器,在地址栏上输入http://192.168.0.25/,(注意,这里192.168.0.25是采集端IP地址,应根据实际IP地址输入),打开设置网关IP地址的网页,设置网关IP地址为192.168.0.100。
    在采集端串口终端下执行如下内容:
    #cd/node
    #./app
3.2 网关节点配置
    (1)配置S3C2A10开发板的NFS Root启动方式。先把rootfs/目录下的srv目录删除,再把采集端发布包中的www文件夹与app可执行文件拷贝到rootfs/srv/目录下和rootfs/srv/www 下。
    (2)以NFS方式启动S3C2410开发板,配置YAFFS文件系统。
    (3)在配置YAFFS文件系统的过程中,在mount-t ysffs/dev/mtdblock3/mnt这一步之后,增加以下步骤:
    cd/mnt
    rm-r srv
    cp-r/srv/mnt
    然后继续继续完成剩下的yaffs文件系统的配置步骤,最后注意一定要
    umount/mnt
    (4)配置采集端启动脚本
    vi/etc/init.d/rcS
    在里面httpd-h/srv/www一句之前增加以下内容:
    Ifconfig eth0 up
    Ifconfig eth0 192.168.0.100
    Ifconfig lo up
    (5)重启S3C2410采集端开发板,进入vivi,配置paraset linux_cmd_line启动参数为从YAFFS启动。para save之后键入boot,启动开发板,到/srv/www下执行app,把开发板接入网络中,从PC机上运行浏览器,在地址栏上输入http://192.168.0.100/,输入IP地址就可以找刭相应节点所采集到的数值。

4 总结

    嵌入式Linux因其源码开放、内核稳定高效及支持多种体系结构等优点在嵌入式系统中应用广泛,本文在陆眦操作系统上,通过交叉编译环境编译后生成可执行代码,可以成功移植到目标平台上,经测试发现,本系统稳定,易维护。可实现包括数据采集、处理、通讯、存储、查询等功能。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分