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因其源码开放、内核稳定高效及支持多种体系结构等优点在嵌入式系统中应用广泛,本文在陆眦操作系统上,通过交叉编译环境编译后生成可执行代码,可以成功移植到目标平台上,经测试发现,本系统稳定,易维护。可实现包括数据采集、处理、通讯、存储、查询等功能。
电感器:适合汽车应用的紧凑型 Z 轴转发机线圈
三种图像插值方式对比
中科院广州电子CASAIM&沈阳航空航天大学:基于CASAIM激光自动检测技术实现航空部件自动化智能检测
基于Python的scikit-learn编程实例
关于摄像头模组工作原理分析和应用
基于嵌入式Linux系统平台的传感器网络系统设计与实现
田丁智慧社区数据搜集、清洗、沉淀助力决策
新建12英寸晶圆厂,以及12英寸大硅片项目的厂商
选择电流互感器要求
青岛工业互联网青年创新创业平台上线
复合材料在工业阀门中的应用
如何正确使用防爆电加热器
电驱动桥减速器内的润滑油道布置原理和分析实践
Shell基础知识(上)
中国公共充电桩数量持续增长,2019年底设施保有量达到51.6万台
苹果13上市哪些机子会降价
降压转换器的低输出电压噪声和高效率解决方案
关于PCBA设计10个常见错误介绍
一款全新全键盘安卓手机开启众筹 众筹价约合人民币1300元
穿戴式设备蓝海起波澜 巨头搅风浪