基于ARM-Linux的无线气象数据通信系统的设计与实现

发布者:朱雀最新更新时间:2013-05-03 来源: 21IC关键字:ARM  Linux  无线气象数据  通信系统 手机看文章 扫描二维码
随时随地手机看文章

自动气象站数据采集器一般基于单片机或PC/104总线控制器设计,具有与PC兼容性好、功耗低、体积紧凑等特点,然而如何设计出功能强大,网络传输功能强的自动气象站数据采集器,满足现代气象检测的要求,是一个值得研究的课题。

文中基于ARM微处理器和Linux操作系统平台,借助前端无线传感器网络的数据输入,利用嵌入式Qt的开发优势并设计数据通信格式,完成无线气象数据通信系统的设计,实现了数据的可靠传输。为天气预报、科学研究、气象灾害预警等提供实时的气象观测数据。

1 无线气象数据通信系统的基本组成

如图1所示,无线气象数据通信系统主要由无线传感器网络节点、协调器、数据通信器(数据通信器以S3C2440AL为核心)、远程服务器等组成,完成对数据的采集、处理、传输和存储等功能。数据的采集基于CC2530的无线传感器网络,传感器节点将采集到的气象数据定时发送给协调器,再由协调器将数据通过RS232接口传给数据通信器,数据通信器按气象数据处理规范对接收到的数据进行处理后,一方面显示在液晶显示屏上,另一方面经以太网发送到远程服务器。此外,数据通信器保存接收的数据。

 

基于ARM-Linux的无线气象数据通信系统的设计与实现

 

2 硬件电路设计

2.1 CC2530与S3C2440AL的连接

CC2530是TI公司以C51为内核的ZigBee芯片,它支持IEEE802.15.4标准以及ZigBee、ZigBee PRO和ZigBee RF4CE标准,提供101 dB的链路质量,具有高接收灵敏度和强抗干扰性,同时具有低功耗、低成本、时延短、高安全等特点。此外,系统采用Samsung S3C2440AL来实现高分辨率彩色显示、触摸控制、高速数据处理及管理、网络接口扩展等需要。

CC2530与S3C2440AL之间采用串口通信,其连接如图2所示。CC2530的串行数据发送端P0_3与S3C2440AL的串行数据接收端RXD1相连,CC25 30的串行数据接收端P0_2与S3C2440AL的串行数据发送端TXD1相连。此处将CC2530的设备类型设置为协调器,实现无线接收各个传感器节点发送的气象数据。

 

基于ARM-Linux的无线气象数据通信系统的设计与实现

 

2.2 S3C2440AL外围电路设计

由于系统需要移植嵌入式Linux操作系统、安装微型数据库、运行可视化应用程序、存储气象数据以及将数据经过以太网发送给远程服务器,需要扩展液晶显示器、外部存储器、以太网控制器等。液晶显示屏采用320x240分辨率的3.5英寸触摸真彩液晶屏,SDRAM采用H57V25 62GTR,NANDFLASH采用K9F1216UOA,以太网控制器采用单芯片快速以太网MAC控制器DM9000。S3C2440AL部分外围电路如图3所示。

 

基于ARM-Linux的无线气象数据通信系统的设计与实现 [page]

3 软件设计

下位机软件的核心是串口通信以及Socket通信。系统采用Qt4.5.0、Qt Creator 1.3.0作为数据通信器软件的开发工具,主要包括数据接收显示、存储以及发送给远程服务器等功能。

系统为了保证气象数据有效、高效、可靠地通信,该系统建立了如表1所示的数据帧格式。

 

 

协调器每次给数据通信器发送10字节数据,其中以“#”为起始符,紧跟4字节浮点数,第6字节表示气象要素类型,第8和第9字节分别为CRC检测的高位和低位,最后以“*”结束。CRC域是两个字节,它由协调器节点计算后加入到数据中,数据通信器对校验信息进行检查,若无错则接收该数据,否则放弃该数据并请求重发。

3.1 串口通信程序设计

协调器通过串口与数据通信器进行数据交互,所以在程序设计时需要对串口的波特率、数据位、奇偶校验、停止位以及数据流控制进行设置,实现数据传输。通过任务接口定时读写串口数据,查看协调器是否有数据,并将数据存入队列供界面显示、存储以及发送。串口设置界面如图4所示。

 

 

下面是串口设置的部分代码:

 

 

其中,getPortSettings()函数返回一个PortSettings型变量,包含了对波特率、数据位、停止位等的设置,getPortName()函数返回字符串型变量,用于串口号的设置。

3.2 网络通信程序设计

网络传输是本设计的主要任务之一,将数据通信器接收的数据经过Socket发送给远程服务器。而Qt提供了QTcpSocket类,用于编写TCP客户端的应用程序。QTcpSocket类提供了一个有缓冲的TCP连接,可以用来实现其他标准协议也可以用来实现自定义的协议。OTcpSocket采用异步工作方式,它依靠Qt事件循环发现外来数据和向外发送数据,并以信号的方式报告状态的改变或产生的错误,一旦网络的某一种状态发生改变(如网络断开),就会发出信号(如connectionClosed()),再通过信号与槽函数相关联进行处理。服务器设置界面如图5所示。

 

 

下面是网络传输相应槽函数:

 

4 结论

首次使用时,在系统设置界面对服务器地址、服务器端口、经度、纬度、台站号进行设置,在串口设置界面对串口的波特率、数据位、停止位等信息进行设置。设置完成后连接服务器并打开串口,在数据显示界面将会实时动态显示各传感器节点发来的气象数据。与服务器的连接状态等信息在程序状态栏会有相关提示,一旦与服务器断开,系统将会自动连接服务器并将这段时间内收到的数据保存起来等待连接成功后重新发送。

系统已经完成制作调试,效果良好,可以成功地实现数据通信、处理、存储、网络连接以及网络异常处理等功能。本系统低成本、无布线、可扩展性强等特点,在自动气象站应用中具有广泛的潜在市场和应用空间。

关键字:ARM  Linux  无线气象数据  通信系统 引用地址:基于ARM-Linux的无线气象数据通信系统的设计与实现

上一篇:英飞凌与GLOBALFOUNDRIES宣布围绕40纳米嵌入式闪存工艺建立开发和生产展开合作
下一篇:基于Proteus的SPI接口的设计与实现

推荐阅读最新更新时间:2024-03-16 13:22

扩大ARM SoC的验证覆盖与缩短仿真时间
验证复杂的SoC设计要耗费极大的成本和时间。据证实,验证一个设计所需的时间会随着设计大小的增加而成倍增加。在过去的几年中,出现了很多的技术和工具,使验证工程师可以用它们来处理这类问题。但是,这些技术中很多基于动态仿真,并依靠电路操作来发现设计问题,因此设计者仍面临为设计创建激励的问题。 设计者可以使用运行在处理器上的固件作为验证仿真激励的一部分,这也是目前通常采用的方法----使用全功能处理器模型。与在HDL中编写激励相比,固件作为激励速度更快,并且更容易创建。在一个全功能处理器模型上执行代码的缺点是模型运行较慢,因此只有少量软件会使用这个技术执行。很多固件执行由取指令操作和内存读写周期组成,验证价值很低。在逻辑仿真器中屏蔽这
[单片机]
基于DSP+CPLD的嵌入式高速图像通信系统设计
   1 引言   随着现代的图形采集技术发展迅速,各种基于ISA,PCI,USB1.1等总线的图形采集卡速度已经不能满足用户的需求,而采用 USB2.0以后就可以解决这个传输速度上的瓶颈,USB2.0的速度是480Mbits/s,完全可以满足图像采集、传输以及后续处理的要求。系统中采用 DSP+CPLD的硬件设计方案,采用现场可编程芯片 CPLD及两片 SRAM构成的图像采集和存储系统,可以根据不同的需要进行现场编程,具有通用性好、价格相对便宜,易于系统调试,升级等特点。系统中 CPLD选择的型号是 ALTERA公司的MAX7000系列低功耗芯片EPM7128A。片外大容量 SRAM是DSP与 CPLD的联系桥梁,系统设计也
[嵌入式]
基于ARM的小区供水嵌入式智能控制系统
引言   目前的小区和楼宇供水系统普遍采用基于变频调速技术的恒压供水系统,与传统的恒速供水系统相比取得了可观的节能效果。但由于供水系统的泵出口压力恒定,不能依据用户需求做相应调节,因此从泵理论和水动力学来分析它并没有把变频调速的节能潜力充分发挥出来。   本文针对小区供水系统节能这一课题,提出了一种基于ARM的小区供水嵌入式智能控制系统,它能实时跟踪用户需求,因而能较充分发挥变频调速的节能潜力,与常规恒压供水系统相比能更大限度的节能。   1 ARM处理器的性能特点简介   LPC2000系列CPU都是基于16/32位ARM7TDMI-S,并支持实时仿真和跟踪的CPU,对于代码规模有严格控制的应用场合可使用16位Thu
[单片机]
基于<font color='red'>ARM</font>的小区供水嵌入式智能控制系统
ARM笔记:U-Boot之移植 nand-flash 驱动
1、增加nand_flash.c 文件:cpu/arm920t/s3c24x0/nand_flash.c #include #if (CONFIG_COMMANDS & CFG_CMD_NAND) && !defined(CFG_NAND_LEGACY) #include #include DECLARE_GLOBAL_DATA_PTR; #define S3C2410_NFSTAT_READY (1 0) #define S3C2410_NFCONF_nFCE (1 11) #define S3C2440_NFSTAT_READY (1 0) #define S3C2440_NFCONT_nFCE (1 1) st
[单片机]
移植qtopia到ARM开发板
前言: 说实话,以前只作过51,而且用的是汇编,C都没有怎么用过。最近才有机会接触到linux,说起来也算是落后分子了。多亏北理论坛里各位大侠的帮忙,还算顺利的把qtopia移植到了ARM开发板上。现整理了下文,抛砖引玉,希望能对大家有所帮助,当然也希望大家多提宝贵意见,mail to ahha1998@126.com即可。当然更希望大家的经验也能告诉我 一、所用的资源: 硬件:华恒HHARM9328MXL-R1 软件:cross-2.95.3.tar.bz2 qt-embedded-2.3.10.tar.gz qt-x11-2.3.2.tar.gz qt-x11-3.3.4.tar.gz qtopia-free-2.1.1.
[单片机]
基于ARM的嵌入式多参数监护仪设计与实现
1 引 言 多参数监护仪广泛应用于ICU、CCU、病房、手术室等。目前我国也有自主知识产权的产品,如迈瑞、金科威、金脑人等,但与GE、飞利浦世界先进产品比较,在监测和计算、可靠性、实时性、稳定性、信号变异的处理分析、远程传输等方面都较落后 。嵌入式系统把计算机直接嵌入到应用系统之中,它融合了通信技术和半导体微电子技术,是信息技术IT的最终产品 。因此将嵌入式系统,网络等技术应用于医用监护仪领域,能使多参数监护仪顺应现代医用监护仪市场缩小体积,提高数据处理能力,远程医疗等方面的要求。 本文介绍一种基于ARM的实时监护系统,它将32位RISC结构的ARM内核处理器与实时多任务嵌入式系统相结合,并通过嵌入式TCP/IP协议栈为平台添
[嵌入式]
ARMLinux驱动移植Watch Dog Timer(看门狗)驱动移植
硬件平台:FL2440 (S3C2440) 内核版本:2.6.28 软件平台:Ubuntu 11.04 内核版本:2.6.39 交叉编译器:arm-linux-gcc 3.4.1 原创作品,转载请标明出处 1、加载看门狗驱动 insmod wdt.ko wdt.ko为驱动文件名,不加任何参数如果不喂狗,则计数器到0时执行中断函数(设置LED的状态,然后喂狗,重新设置WTCNT的值) 可选的参数 module_param(tmr_margin, int, 0); module_param(tmr_atboot, int, 0); module_param(nowayout, int, 0); module_para
[单片机]
ARMLinux驱动移植Watch Dog Timer(看门狗)驱动移植
如何将lua移植到arm平台的linux内核
将脚本移植到内核是一件很酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支持x86,不支持arm,在网上搜索了下,没有找到现成的,于是自己研究了下,现将它分享出来。 移植到arm平台,主要是要重新实现setjmp和longjmp两个函数,网上相关的资料很少,最后终于找到一个klibc的项目,里面有setmp和longjmp的arm平台的实现,于是直接拿来用了,不用说,当看到脚本在内核中执行并打印出 hello,world 的时候,还是很exciting的。这里讲下使用的方法,具体的代码可以去下面的位置下载: https://github.com/
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved