基于ARM的无线气象数据通信系统设计

2012-07-13 06:28唐慧强
电子设计工程 2012年9期
关键词:数据通信以太网串口

闾 军,唐慧强

(南京信息工程大学 信息与控制学院,江苏 南京 210044)

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

文中基于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的链路质量,具有高接收灵敏度和强抗干扰性,同时具有低功耗、低成本、时延短、高安全等特点[2]。此外,系统采用Samsung S3C2440AL来实现高分辨率彩色显示、触摸控制、高速数据处理及管理、网络接口扩展等需要。

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

2.2 S3C2440AL外围电路设计

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

图1 数据通信系统结构图Fig.1 Structure of data communication system

图2 CC2530与S3C2440AL连接电路图Fig.2 CC2530 and S3C2440AL connection circuit

图3 S3C2440AL外围电路图Fig.3 S3C2440AL peripheral circuit

3 软件设计

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

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

表1 数据帧格式Tab.1 Data frame format

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

3.1 串口通信程序设计

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

图4 串口设置界面Fig.4 Serial setting interface

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

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

3.2 网络通信程序设计

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

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

图5 服务器设置界面Fig.5 Server setting interface

4 结 论

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

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

[1]胡玉峰.自动气象站原理与测量方法[M].北京:气象出版社,2007.

[2]Texas Instruments,CC2530 product web site[EB/OL].(2010)[2011-10-10].http://www.ti.com/lit/ds/symlink/cc2530.pdf.

[3]李文仲,段朝玉.ZigBee无线网络技术入门与实战 [M].北京:北京航空航天大学出版社,2007.

[4]三恒星科技.ARM9原理与应用设计[M].北京:电子工业出版社,2008.

[5]Thelin J.Foundations of Qt Development.Expert’s Voice in Open Source[M].Apress,2007.

[6]成洁,卢紫毅.Linux窗口程序设计[M].北京:清华大学出版社,2008.

猜你喜欢
数据通信以太网串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于快牙平台实现全站仪与计算机的数据通信
监测系统接口数据通信方式
谈实时以太网EtherCAT技术在变电站自动化中的应用
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
一种高效可靠的串行数据通信协议及处理算法
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
一种90W高功率以太网供电系统的设计