历史上的今天
返回首页

历史上的今天

今天是:2025年02月16日(星期日)

正在发生

2018年02月16日 | 基于ARM、嵌入式Linux和CC2530构建的无线气象数据通信系统开发

2018-02-16 来源:eefocus

    自动气象站数据采集器一般基于单片机或PC/104总线控制器设计,具有与PC兼容性好、功耗低、体积紧凑等特点,然而如何设计出功能强大,网络传输功能强的自动气象站数据采集器,满足现代气象检测的要求,是一个值得研究的课题。
    文中基于ARM微处理器和Linux操作系统平台,借助前端无线传感器网络的数据输入,利用嵌入式Qt的开发优势并设计数据通信格式,完成无线气象数据通信系统的设计,实现了数据的可靠传输。为天气预报、科学研究、气象灾害预警等提供实时的气象观测数据。

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

a.JPG

    2 硬件电路设计

    2.1 CC2530与S3C2440AL的连接

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

    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所示。

e.JPG

    

3 软件设计
    下位机软件的核心是串口通信以及Socket通信。系统采用Qt4.5.0、Qt Creator 1.3.0作为数据通信器软件的开发工具,主要包括数据接收显示、存储以及发送给远程服务器等功能。
    系统为了保证气象数据有效、高效、可靠地通信,该系统建立了如表1所示的数据帧格式。

f.JPG

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

    3.1 串口通信程序设计

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

b.JPG



    
    下面是串口设置的部分代码:
    g.JPG
    其中,getPortSettings()函数返回一个PortSettings型变量,包含了对波特率、数据位、停止位等的设置,getPortName()函数返回字符串型变量,用于串口号的设置。

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

c.JPG

    
    下面是网络传输相应槽函数:
    h.JPG
    i.JPG

4 结论
    首次使用时,在系统设置界面对服务器地址、服务器端口、经度、纬度、台站号进行设置,在串口设置界面对串口的波特率、数据位、停止位等信息进行设置。设置完成后连接服务器并打开串口,在数据显示界面将会实时动态显示各传感器节点发来的气象数据。与服务器的连接状态等信息在程序状态栏会有相关提示,一旦与服务器断开,系统将会自动连接服务器并将这段时间内收到的数据保存起来等待连接成功后重新发送。
    系统已经完成制作调试,效果良好,可以成功地实现数据通信、处理、存储、网络连接以及网络异常处理等功能。本系统低成本、无布线、可扩展性强等特点,在自动气象站应用中具有广泛的潜在市场和应用空间。


推荐阅读

史海拾趣

Graseby Infrared公司的发展小趣事
确保电路中的互锁机构工作正常,防止两个接触器同时吸合导致短路事故。
Accuride公司的发展小趣事

作为一家专注于商用车零部件的公司,Accuride始终致力于技术创新和产品升级。其产品线涵盖了商用车车轮、卡车车身和底盘部件等多种零部件,且拥有多个知名品牌,如Accuride®、Gunite®、ImperialTM和BrillionTM等。通过不断研发和创新,Accuride成功提升了产品的质量和性能,赢得了客户的广泛认可。

粤翔(FlyWin)公司的发展小趣事
在系统断电的瞬间,储能元件(如超级电容或电池)会提供短暂的电力支持,确保处理器有足够的时间完成数据保存。
Datalinear公司的发展小趣事

在竞争激烈的电子行业中,Datalinear公司意识到单打独斗很难取得长远的发展。因此,公司积极寻求与其他企业的合作。通过与上下游企业的紧密合作,Datalinear公司不仅降低了生产成本,还提高了产品质量和交货速度。此外,公司还与一些科研机构建立了合作关系,共同研发新技术和新产品,实现了共赢的局面。

Aces Electronics Co Ltd公司的发展小趣事

作为一家具有社会责任感的企业,Aces始终关注环境保护和社会公益事业。公司积极推广绿色生产和循环经济理念,通过采用环保材料和节能技术,降低产品对环境的影响。此外,Aces还积极参与社会公益活动,为当地社区和弱势群体提供帮助和支持,展现了企业的良好形象。

DURAKOOL公司的发展小趣事

随着电子行业的快速发展和变革,DURAKOOL公司也面临着新的挑战和机遇。为了保持竞争力,公司不断调整战略和业务结构,积极寻求新的增长点。在这个过程中,公司开始涉足电动汽车高压继电器等新兴市场领域,并取得了显著成果。

问答坊 | AI 解惑

arm网口通信成功利用!

各位大虾好: 小弟在坛子里发贴寻求帮助解决44B0的网口通信问题,可惜至今没有人来帮我啊 无奈之下,只能在网上down别人的程序,然后用用工具一步一步走,每一个函数都 认真的看,在小弟的不懈努力下,总算是将这个网口用起来了,虽然现在还没有 ...…

查看全部问答>

【求助】USBASP制作中遇到的问题

我用的资料是从这下载的:https://bbs.eeworld.com.cn/thread-73210-1-8.html 板子上元件排布基本上也是参照照片上的,只是想在使用时,实验板的电源就用USB的VCC,所以去掉了J2。 烧固件时,用编程器烧的,USBASP板子连接电脑后,绿灯闪烁了三下 ...…

查看全部问答>

dsp电平转换的方法介绍

最近看到些关于dsp电平转换的好资料!发上来大家看看 电平转换 1. 常用的电平转换方案 (1) 晶体管+上拉电阻法     就是一个双极型三极管或 MOSFET,C/D极接一个上拉电阻到正电源,输入电平很灵活,输出电平大致就是正电源电平。 ...…

查看全部问答>

CPLD最实用的50例设计

详细说明:CPLD实用设计50例,非常经典的CPLD设计,包含50个实际的典型应用,涉及直流电机PWM驱动,编码等内容,有了这50例,举一反三,就会了很多应用 文件列表:   CPLD实用设计50例   ................\\基于DSP+CPLD的 ...…

查看全部问答>

5.0模拟器下有没有编辑注册表的软件

如题 类似WINXP下regedit的功能。 我现在编写程序写注册表好像都对,但是读的时候有时返回错误 GetLastError为1814。 我想找个软件看看我写进去的东西对不对。 另外,我把一个键保存在HKLM下 \\\\Drivers\\\\BuiltIn\\\\XXXX目录下, 那么 ...…

查看全部问答>

wince平台下的t9输入法

wince平台下的t9ime,包括拼音、笔画、字母、数字输入。有兴趣联系t9ime_wince@163.com.…

查看全部问答>

用STM32做音频项目,三种方案

现在用STM32做一个语音到站钟的项目,音质要求不高,就是报“一楼到了,上行”,“二楼是酒店”之类的语音,CPU上资源有PWM/DAC/IIS,通过上网查资料,网上解决的方案大体有以下三种: 1 PWM+SPI PWM模拟时钟时序,SPI传输数据,采用PCM编码 ...…

查看全部问答>

深圳大型通信公司FPGA工程师招聘-内部推荐

如题,要求有ASIC/FPGA设计或验证工作经验,本科三年,硕士二年以上工作经验。有意请发简历到qjyong@126.com,合适的话会尽快安排面试。详情请QQ联系48945024。…

查看全部问答>

LPC1700系列芯片内存注意问题

在AMR芯片中内存空间是越来越大了,而我们的使用需求也是水涨船高。而不同ARM芯片的内存分配也是截然不同。例如同样是64K的STM32,只要你的数组定义在64K内就可以操作的,而64K的LPC芯片则不能定义64K的数组。这个问题恐怕困扰了不少网友。产生这一 ...…

查看全部问答>