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

分享到:

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

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

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

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


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的设备类型设置为协调器,实现无线接收各个传感器节点发送的气象数据。


2.2 S3C2440AL外围电路设计

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


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 结论

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

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

 

 

 

 
 
 
继续阅读
意法半导体推出STM32MP1,支持Linux,加快物联网和智能工业创新

中国,2019年2月26日 – 横跨多重电子应用领域的全球领先的半导体供应商意法半导体 利用多年积累的Arm® Cortex® 研发知识扩大STM32 MCU的功能,使这一市场领先的微控制器产品组合覆盖到处理性能和资源要求更高且需要大型开源软件的应用领域。新推出的STM32MP1多核微处理器系列具有计算和图形处理能力...

11种基于ARM的嵌入式操作系统,了解一下

11种基于ARM不同的嵌入式操作系统,1、Android 2、嵌入式LINUX 3、TinyOS 4、WinCE 5、μTenux 6、嵌入式实时操作系统(RTOS) 7、VxWorks 8、FreeRTOS 9、eCos 10、μClinux 11、μC/OS-II

基于嵌入式ARM Linux步进电机驱动程序的设计

平台基于Samsung公司的友善之譬QQ2440V3开发板,它采用Samsung S3C2440为微处理器,Samsung S3C2440的内核为ARM920T,且采用Linux2.6.13内核作为它的操作系统。设计了硬件系统,并实现驱动程序对步进电机的控制,在QQ2440V3开发板上的实验结果表明驱动运行正常、稳定。这是实现激光雕刻的核心,为以后实现传能激光雕刻夯实了基础。

基于嵌入式Linux和MiniGUI的SIP电话设计

根据IP电话的功能需求,SIP电话应当实现人机界面的交互、呼叫处理、语音的采集和播放、语音的编码和解码、语音的实时传输。本设计人机界面的交互使用嵌入式系统硬件平台上的LCD和功能按键,采用MiniGUI图形库和Linux按键驱动;呼叫处理模块使用硬件平台上的网络接口,采用eXoSIP协议栈;语音的采集与播放使用硬件平台上的音频接口,采用Linux音频设备驱动;语音的编码和解码直接采用开源G.7-29A源代码;语音的实时传输使用RTP协议,采用开源的JRTPLIB库。

嵌入式Linux实时技术改进与实现

Linux虽然为分时操作系统,但由于其功能强大、源代码开放以及可移植性强等优势,已成为日益流行的嵌入式实时操作系统的解决方案,然而,在实时方面它还不能很好地满足实时系统方面的需要,其本身仅仅提供了一些实时处理的支持。为使Linux满足实时应用的要求,常用的方法是通过对Linux的内核进行裁减和修改,使其能够满足实时性的要求。