基于ARM微处理器和Linux的无线气象数据通信系统

发布者:BlissfulAura最新更新时间:2020-09-03 来源: elecfans关键字: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来实现高分辨率彩色显示、触摸控制、高速数据处理及管理、网络接口扩展等需要。

基于ARM微处理器和Linux的无线气象数据通信系统

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


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

基于ARM微处理器和Linux的无线气象数据通信系统


3 软件设计

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

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


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


3.1 串口通信程序设计

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

基于ARM微处理器和Linux的无线气象数据通信系统


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

基于ARM微处理器和Linux的无线气象数据通信系统

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


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

基于ARM微处理器和Linux的无线气象数据通信系统

4 结论

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


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

关键字:ARM微处理器  Linux  无线气象数据  通信系统 引用地址: 基于ARM微处理器和Linux的无线气象数据通信系统

上一篇:基于CSMA/CA的MAC协议设计实现
下一篇:基于ARM中的IRQ的中断处理

推荐阅读最新更新时间:2024-11-01 21:15

S3C2410的linux下DMA驱动程序开发
网上介绍LINUX下的一般驱动程序开发示例浩如烟海,或是因为简单,关于DMA驱动的介绍却寥寥无几;近期zhaoyang因工作需要,花了几日时间开发了某设备在S3C2410处理器Linux下DMA通信的驱动程序,有感于刚接手时无资料借鉴的茫然,故写点介绍,期待能给有DMA开发任务的网友们一点帮助。 本文将包括如下内容: DMA驱动主要函数功能 驱动中关键技术分析 具体的DMA实例分析 申明:本DMA驱动开发介绍仅适合S3C2410处理器类型,分析源码为韩国MIZI研究中心维护的dma驱动代码: linux/arch/arm/mach-s3c2410/dma.h,linux/arch/arm/mach-s3c2410/dma.c,其它
[单片机]
MSC1210的GPRS无线通信系统设计
   引言 近年来,通信技术和网络技术的迅速发展,特别是无线通信技术的发展,使得电力系统的自动化程度进一步提高。GSM网络出现后,技术人员很快把GSM模块嵌入到各种仪表仪器中,如多功能电能表、故障测录仪、抄表系统和用电负荷监控等,从而使这些仪表仪器具有远程通信功能。 GPRS是在现有GSM系统上发展出来的一种新的数据承载业务,支持TCP/IP协议,可以与分组数据网(Internet等)直接互通。GPRS无线传输系统的应用范围非常广泛,几乎可以涵盖所有的中低业务和低速率的数据传输,尤其适合突发的小流量数据传输业务。 本文设计的GPRS无线通信模块,内嵌了TCP/IP协议,采用工业级的GPRS模块,适用于单片机数据采集传输系统没有T
[网络通信]
黑客破解任天堂Switch运行Linux 称补丁无法修复漏洞
    黑客组织fail0verflow分享了运行Debian(一个Linux发行版)的任天堂Switch的图片,并且声称,任天堂不能通过未来的固件补丁来修复该漏洞。   根据fail0verflow的说法,Nvidia Tegra X1片上系统的启动ROM存在漏洞。当Switch启动时,它会读取并执行存储在只读存储器(ROM)中的一段代码,该代码包含有关启动过程的说明。这意味着当Nvidia制造它时,启动ROM就已经被存储在芯片上,之后不能被修改。即使任天堂发布软件更新,这个软件更新也不会影响启动ROM。而且由于Switch在按下电源按钮后立即加载启动ROM,所以无法绕过它。   唯一的解决办法就是制造新的Nvidia Teg
[手机便携]
联想:今年超过36款平台将提供Linux支持
近日在科索沃召开的 DebConf22 大会上,负责联想 Linux 相关计划的马克·皮尔逊(Mark Pearson)从个人角度出发,谈公司在过去几年所获得的升级,以及在 2022 年其平台对 Linux 的支持进度。 联想的 Linux 工程师在过去一年时间里面临着多项挑战,包括面板刷新问题、WiFi更改、英特尔网络驱动问题、AMD 功耗问题、NVIDIA 对能源认证的驱动问题,以及供应链短缺问题等等。不过,好消息是通过和 OEM 硬件供应商建立更紧密的合作关系从而增加对 Linux 的支持和兼容度。 近期围绕着新款联想系统的问题是由于禁用了第三方 UEFI CA 认证,因此无法默认启动到 Linux 系统。它是由Mi
[嵌入式]
PC控制将会占据PLC市场份额的40%?
前段时间美国一个资深的自动化人士宣称PC控制将会占到PLC市场份额的40%,这引起了不少人对PC控制的前世今生感到了兴趣。为了弄清PC控制的来龙去脉,今后还有没有发展余地,我们首先要回顾PC控制的发展过程。 PC控制的发展的背景 1981年IBM推出了个人电脑PC机,使用的操作系统是由微软推出的标准磁盘操作系统(DOS)。PC是一种通用计算机,其成本远远低于当时流行的小型计算机。从硬件的视角看,PC的架构为扩展卡提供了开放的硬件总线,这大大激发了大量开发人员的创新和创造力;而从软件的视角看,操作系统的开放性为各个应用领域的开发人员提供了适应各种场景应用程序开发的机会。换言之,PC平台的开放性极大地扩展了各类可资运用的应用程序,
[嵌入式]
PC控制将会占据PLC市场份额的40%?
基于触摸屏和DSP的串行通信系统设计
  在现代工业控制中,最常用的人机接口界面依然采用的是键盘和液晶相结合的方式,要让触摸屏取代以前的人机接口界面,还存在一定的问题。在实际应用中,触摸屏一般是针对可编程控制器PLC 设计的,所以DSP 与触摸屏不能直接通信,必须根据触摸屏的通信协议开发相应的通信程序。本文研究基于MODBUS 协议的触摸屏和DSP 的通信方法,其中DSP 使用TI公司的TMS320F2812,触摸屏使用维控科技的LEVI700L。   1 DSP 与触摸屏的硬件电路连接   TI 公司的TMS320F2812 芯片有两组SCI 模块,SCIA 和SCIB。根据不同的需要,可以将这两个串口分别设计转换成RS232 和RS485。本文采用RS485 实现
[嵌入式]
基于触摸屏和DSP的串行<font color='red'>通信系统</font>设计
Linux设备驱动开发 - 混杂设备驱动
混杂设备共享一个主设备号MISC_MAJOR(10),次设备号不同。 混杂设备本质上仍然是一个字符设备,所以混杂设备的操作跟字符设备基本相同。 在字符设备中,描述字符设备的结构体为struct cdev,在混杂设备中同样有一个描述混杂设备的结构体struct miscdevice。 1 struct miscdevice { 2 int minor; /* 次设备号 */ 3 const char *name; /* 设备名 */ 4 const struct file_operations *fops; /* 文件操作 */ 5 struct list
[单片机]
<font color='red'>Linux</font>设备驱动开发 - 混杂设备驱动
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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